A two-part series on LXC networking (Flockport Labs)

Flockport Labs has a two-part "LXC networking superguide" that covers a bunch of LXC networking concepts, as well as practical ideas on connecting containers (Part1 and Part 2). Part 1 starts with an introduction to LXC networking, then moves into…

Mosh – a robust, responsive replacement for SSH

Mosh – a robust, responsive replacement for SSH

Remote terminal application that allows roaming, supports intermittent connectivity, and provides intelligent local echo and line editing of user keystrokes. Mosh is a replacement for interactive SSH terminals. It's more robust and responsive,…

Show HN: Using SVG to Shrink Your PNGs

Show HN: Using SVG to Shrink Your PNGs

Using SVG to Shrink Your PNGs Wouldn’t it be great if you could get the compression of a JPEG with the transparency of a PNG? Well, you can, sort of. Here’s a little trick that I discovered while working on the new Sapporo Beer website. Notice how the…

SVG Pocket Guide

SVG Pocket Guide

Scalable Vector Graphics (SVG) is a language for describing two-dimensional graphics in XML. These graphics can consist of paths, images, and/or text that are able to be scaled and resized without losing image quality. Inline SVG refers to the embedded…

LXC container networking deep dive

This post is to consolidate all our LXC networking guides and also explore some advanced container networking that have limited use but are interesting nonetheless hence the Flockport labs monicker. Experimental containers will now be posted under this…

Zbackup: open-source, encrypted, de-duplicated, compressed backups

zbackup is a globally-deduplicating backup tool, based on the ideas found in rsync. Feed a large .tar into it, and it will store duplicate regions of it only once, then compress and optionally encrypt the result. Feed another .tar file, and it will also…

Show HN: Run SSH and HTTP(S) on the same port

Switcher is a proxy server which accepts connections and proxies based on which protocol is detected. The use case is running HTTP(S) and SSH on the same port. make To get help: $ ./switcher --help Switcher 1.0.0 usage: switcher [options] Options: …

Identifying useful info from MySQL row-based binary logs

As a MySQL DBA/consultant, it is part of my job to decode the MySQL binary logs – and there are a number of reasons for doing that. In this post, I’ll explain how you can get the important information about your write workload using MySQL row-based binary…

MacID: Unlock your Mac with Touch ID

MacID: Unlock your Mac with Touch ID

Even though my 27-inch iMac is in my home office and usually not apt to be "played with" by unauthorized personnel other than my cats, I make sure that it auto-locks whenever I'm away from the keyboard for even a few minutes. Of course, that means en...

Building Services in Go (lcau-2015)

Building Services in Go (lcau-2015)

Sign in Sign up GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together. Sign up Use Git or checkout with SVN using the web URL. Want to be notified of new releases in …

Add a Telnet server to your iOS app for field debugging and logging

GCDTelnetServer is a drop-in embedded Telnet server for iOS and OS X apps. * Entirely built using Grand Central Dispatch for best performance and concurrency * Support for ANSI colors with an extension on NSMutableString * Can parse line inputs as…

What's new in CSS Selectors 4

Please note that this article is written about an Editor’s Draft of a specification as of January 2015, which means the information may change without notice CSS Selectors Level 4 is the next iteration of the CSS selector spec, the last version of which…

Cool, but obscure unix tools

Cool, but obscure unix tools

Just a list of 20 (now 28) tools for the command line. Some are little-known, some are just too useful to miss, some are pure obscure -- I hope you find something useful that you weren't aware of yet! Use your operating system's package manager to install…

Tips for Intermediate Git Users

UPDATE: This blog post was originally posted to my blog in November 2009, it hasn’t been updated — but a lot of people find it useful so I wanted to keep it around. Please don’t bother commenting saying “these aren’t intermediate tips any more. I’ve been…

Ntopng: High-Speed Web-based Traffic Analysis and Flow Collection

ntopng is the next generation version of the original ntop, a network traffic probe that monitors network usage. ntopng is based on libpcap and it has been written in a portable way in order to virtually run on every Unix platform, MacOSX and on Windows as…

Chris Lamb: Uploading a large number of files to Amazon S3

I recently had to upload a large number (~1 million) of files to Amazon S3. My first attempts revolved around s3cmd (and subsequently s4cmd) but both projects seem to based around analysing all the files first rather than blindly uploading them. This not…

Terminal game to test Git skills

Terminal game to test Git skills

This is a terminal game designed to test your knowledge of git commands. Each level in the game is a task to perform on this repo. Once you perform that task, you will be given your next task. There are a total of ten levels, each one harder than last! $…

Wikipedia on HHVM

Wikipedia on HHVM

If you’ve been watching our GitHub wiki, following us on Twitter, or reading the wikitech-l mailing list, you’ve probably known for a while that Wikipedia has been transitioning to HHVM. This has been a long process involving lots of work from many…

Experimental KVM-based VMM, Written in Go

Experimental KVM-based VMM, Written in Go

This is not an official Google product. novm is a legacy-free, type 2 hypervisor written in Go. Its goal is to provide an alternate, high-performance Linux hypervisor for cloud workloads. novm is unique because it exposes a filesystem-device as a primary…

Hacking web forms to support iOS8 card scan feature

Hacking web forms to support iOS8 card scan feature

If your church or organization hasn’t moved to online giving yet, the idea might seem overwhelming. Or maybe you have gone digital, but you’re not yet reaping the benefits. In either case, help is here.

Docker Part One: Containers

Docker Part One: Containers

Sysadmin Blog Docker, meet hype. Hype, meet Docker. Now: Let's have a sit down here and see if we can work through your neuroses. For those of you who don't yet know about Docker, it is a much-hyped Silicon Valley startup productising (what a horrible…

Researching a new form of HTTP caching optimization

Researching a new form of HTTP caching optimization

Founded in 2008, Phusion creates top of the line server software to power businesses like Apple, Intercom and Autodesk. It's been a while since we released the first beta of Phusion Passenger 5 (codename "Raptor"), the application server for Ruby,…

Open Sourcing Our Go Libraries (2014)

Dropbox owes a large share of its success to Python, a language that enabled us to iterate and develop quickly. However, as our infrastructure matures to support our ever growing user base, we started exploring ways to scale our systems in a more efficient…

How GitHub Uses GitHub to Document GitHub

How GitHub Uses GitHub to Document GitHub

Providing well-written documentation helps people understand, make use of, and contribute back to your project, but it’s only half of the documentation equation. The underlying system used to serve documentation can make life easier for the people writing…

Serve your GitHub pages with SSL using CloudFlare's free plan

Serve your GitHub pages with SSL using CloudFlare's free plan

On September 29, 2014, CloudFlare, a web security company and CDN provider, announced that they would begin offering free, automatic SSL to all its customers (including those on their free plan). This is an enormous step forward for enhancing security and…

How to Handle Code Complexity in a Software Company

Here’s an obvious statement that has some subtle consequences: Only an individual programmer can resolve code complexity. That is, resolving code complexity requires the attention of an individual person on that code. They can certainly use appropriate…

Cuthbertson: NixOS and Stateless Deployment

Here is a lengthy post from Tim Cuthbertson on the virtues of building servers with NixOS. "It should hopefully be obvious at this point why NixOS is better than puppet: Both are declarative, but puppet is impure and non-exhaustive - when you apply a…

A/B test for Telemetry histograms

A/B tests are a simple way to determine the effect caused by a change in a software product against a baseline, i.e. version A against version B. An A/B test is essentially an experiment that indiscriminately assigns a control or experiment condition to…

CGI Using Node.js

CGI Using Node.js

CGI-Node provides the ability to run JavaScript on any web server just like PHP as a CGI using Essentially allowing developers to use a single programming language, JavaScript, for both client and server. You can even run the same code (libraries) on the…

ZFS vs. Hammer

JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding. I am starting this thread in desire to document ZFS (FreeBSD) and HAMMER1 (DragonFlyBSD) feature differences for people who are interested in…

Why you should not use AngularJs

Why you should not use AngularJs

Much time has passed since AngularJS birth (given the fact how fast front-technologies evolve). Now on the internet, there are a huge amount of posts praising this framework, and the critics are not so many as it deserves. But such posts are slowly…

Index and Search Hacker News Using Elasticsearch and the HN API

Index and Search Hacker News Using Elasticsearch and the HN API

Hacker News officially released their API this October, giving access to a vast amount of news articles, comments, polls, job postings, etc and via JSON, perfect to put it into Elasticsearch. Elasticsearch is currently the most popular Open-Source search…

The MySQL Query Cache: How it works, plus workload impacts (good and bad)

Query caching is one of the prominent features in MySQL and a vital part of query optimization. It is important to know how it works as it has the potential to cause significant performance improvements – or a slowdown – of your workload. The MySQL query…

Hidden Costs That Engineers Ignore

Join over 12,000 others, and learn how to start spending your time on what matters most. Plus, immediately get the single most valuable lesson I’ve learned in my professional life — one that took me years of trial and error to discover. Get the first…

HomeControl: HomeKit bridge written in Go

HomeControl: HomeKit bridge written in Go

HomeControl is a HomeKit implementation in Go. It helps you to bridge existing Home Automation accessories to HomeKit. You can also use it to create your own HomeKit accessory. HomeControl is available on Github. Fork on Github LIFX Bridge LIFX offers…

Web Performance APIs

Web Performance APIs

Generally, I prefer to mention the bad news first: * Websites will continue to become more complex and bigger. * Our demand for speed and patience will certainly not decline. These facts shouldn’t come as a surprise to anyone who cares about web…

Runtime-Compiled C++

Runtime-Compiled C++

Runtime-Compiled C++ is a way to reliably make major changes to your C++ code at runtime and see the results immediately. It's aimed at games development but could be useful in any industry where turnaround times are a bottleneck. * Windows XP+, Visual…

The Secret to Learning a Foreign Language as an Adult

The Secret to Learning a Foreign Language as an Adult

Welcome! Meredith collects data to deliver the best content, services, and personalized digital ads. We partner with third party advertisers, who may use tracking technologies to collect information about your activity on sites and applications across…

Vasudev Kamath: Notes: LXC How-To

LXC - Linux Containers allows us to run multiple isolated Linux system under same control host. This will be useful for testing application without changing our existing system. To create an LXC container we use the command, it can accepts the template…

So you're thinking about using React

I was in the same boat: at the Mozilla Foundation we're considering using React for the next few months as client-side framework of choice for new apps, and that means learning a new technology, because you can't make a decision on something you don't…

Why the Raspberry Pi sucks

Why the Raspberry Pi sucks

OK so people keep waffling on about the Raspberry Pi. They say it’s sold 4 million units, is being used to teach real kids in real classrooms, has a load of free resources and a World wide fan base but what’s so great about all that? According to the…

Reverse-engineering the Kayak app with mitmproxy

Reverse-engineering the Kayak app with mitmproxy

Kayak– the popular fare comparison web site– recently discontinued their API service. To the dismay of travel hackers, fare comparison APIs frequently come and go. But that doesn’t mean we can’t hack together our own Kayak API. Web scraping is the most…

Dogpatch: HTTP API testing framework, written in PHP using curl

Dogpatch: HTTP API testing framework, written in PHP using curl

$dogpatch = new Dogpatch(); $dogpatch->get("https://api.github.com") ->assertStatusCode(200) ->assertHeadersExist(array( "X-GitHub-Request-Id", "ETag" ->assertHeaders(array( "Server" => "GitHub.com" ->assertBody(IS_VALID_JSON) …

Store UUID in an optimized way

Store UUID in an optimized way

A few years ago Peter Zaitsev, in a post titled “To UUID or not to UUID,” wrote: “There is timestamp based part in UUID which has similar properties to auto_increment and which could be used to have values generated at same point in time physically local…

How Pipedrive went from 0 to 10,000 paying customers in SaaS

How Pipedrive went from 0 to 10,000 paying customers in SaaS

Short answer: great product, some marketing and a bit of luck. These things got Pipedrive to pass the 10,000 paying customers milestone earlier in the year. The longer answer is below. This is the post I would have liked to read back in 2010 when I had…

Making HAProxy 1.5 replication lag aware in MySQL

Making HAProxy 1.5 replication lag aware in MySQL

HAProxy is frequently used as a software load balancer in the MySQL world. Peter Boros, in a past post, explained how to set it up with Percona XtraDB Cluster (PXC) so that it only sends queries to available nodes. The same approach can be used in a…

Google Concedes Google Code Not Good Enough?

Google recently released an update to End-to-End, their communications security tool. As part of the announcement, they said: We’re migrating End-To-End to GitHub. We’ve always believed strongly that End-To-End must be an open source project, and we think…

Fake2db – Generate fake but valid data-filled databases

Fake2db – Generate fake but valid data-filled databases

Generate fake but valid data filled databases for test purposes using most popular patterns(AFAIK). Current support is sqlite, mysql, postgresql, mongodb, redis, couchdb. The installation through pypi retrieves 'fake-factory' as a main dependency. pip…

What Happened When Marissa Mayer Tried to Be Steve Jobs

What Happened When Marissa Mayer Tried to Be Steve Jobs

Yahoo also lured a slate of expensive journalists to helm a series of new “digital magazines.” Mayer hired David Pogue, The New York Times’s gadget columnist, to be the editor of Yahoo Tech. She personally recruited Joe Zee, the creative director of Elle,…

Faster Builds with Container-Based Infrastructure and Docker

Faster Builds with Container-Based Infrastructure and Docker

Stability and reliability in your builds is the one thing we aimed to give since Travis CI came about. But we haven’t always been able to live up to this expectation. Network issues, insufficient build capacity (for open source projects) which in turn lead…

How Skype Used AI to Build Its New Language Translator

Very soon now, a select group of Skype beta testers will have a new Microsoft technology that seems borrowed from the world of Star Trek. It's called the Skype Translator—a Skype add-on that listens to the English words you speak into Microsoft's internet…

I’m not Panic Inc. Apple just keep reject my binary

I’m not Panic Inc. Apple just keep reject my binary

I’m trying hard update my recent application, with essential issue workaround (yes, workaround) and yet… I still get rejected with completely absurd reasons. I was thrilled about new TestFlight, regardless of fact that review process slow down testing, I…

Creating a custom Git flow visualization

Creating a custom Git flow visualization

When we decided to make the switch from Subversion to using git for funda's version control, I had a number of worries. The main one was if we (me, actually) would ever understand git well enough to deal with the complications of having five teams working…

How to Start a Startup Video

How to Start a Startup Video

Sendwithus has a ton of great features and we recently realized that we didn’t have a simple way to show the true awesomeness of our product, so we decided to make a product video. The process of making the video was interesting so we wanted to share with…

Favorite Apps

On the Omni blog, several Omni employees write about their favorite apps of 2014. Waterlogue, MarsEdit (that’s mine), Overcast, 80 Days, Prompt 2, BBEdit 11, Aeropress Timer, Editorial, and Pinswift.

Stripe's AWS-Go and uploading to S3

Yesterday, I discovered Stripe's AWS-Go library, and the magic of auto-generated API clients (which is one fascinating topic that I'll have to investigate for MIG). I took on the exercise of writing a simple file upload tool using aws-go. It was fairly…

Predicting Hard Drive Failures with SMART Stats

Predicting Hard Drive Failures with SMART Stats

I’ve shared a lot of Backblaze data about hard drive failure statistics. While our system handles a drive failing, we prefer to predict drive failures, and use the hard drives’ built-in SMART metrics to help. The dirty industry secret? SMART stats are…

Bone – Lightning Fast HTTP Multiplexer in Go

Bone – Lightning Fast HTTP Multiplexer in Go

The Original repo have move to https://github.com/go-zoo/bone Bone is a lightweight and lightning fast HTTP Multiplexer for Golang. It support URL variables, http method declaration and custom NotFound handler. After trying to find a way of using the…

Graph everything with Graphite

Graph everything with Graphite

I believe that a graphing tool should be flexible enough for the user to decide what metrics are important to their environment, and it should be able to accept metric data from any source. There are pretty good graphing tools out there for the Linux…

Getting Started with WebRTC Using Node.js, Socket.io and Twilio

Getting Started with WebRTC Using Node.js, Socket.io and Twilio

It’s been an exciting few weeks of launches for Twilio. My favourite was the launch of our Network Traversal Service. Whilst that may sound a bit dry it’s an important service for WebRTC applications as it removes the overhead of deploying your own network…

Incident Report – DDoS Attack

This past Monday, we experienced a major volumetric DDoS attack which caused significant downtime for our site and the sites of our customers. The attack included sustained traffic of up to 25gb/s and about 50 million packets per second sent to our…

Why the data center needs an operating system

Why the data center needs an operating system

Developers today are building a new class of applications. These applications no longer fit on a single server, but instead run across a fleet of servers in a data center. Examples include analytics frameworks like Apache Hadoop and Apache Spark, message…

Auto-bootstrapping an all-down cluster with Percona XtraDB Cluster

One new feature in Percona XtraDB Cluster (PXC) in recent releases was the inclusion of the ability for an existing cluster to auto-bootstrap after an all-node-down event. Suppose you lose power on all nodes simultaneously or something else similar happens…

Eric Hammond: Before You Buy Amazon EC2 (New) Reserved Instances

understand the commitment you are making to pay for the entire 1-3 years Amazon just announced a change in the way that Reserved Instances are sold. Instead of selling the old Reserved Instance types: * Light Utilization * Medium Utilization * Heavy…

How Naive AB Testing Goes Wrong and How to Fix It

How Naive AB Testing Goes Wrong and How to Fix It

Although classical hypothesis tests are probably still the most widespread technique for online A/B tests, they are not the most appropriate. In this post, I will describe the shortcomings of hypothesis testing for web optimization and propose a method of…

Eric Schmidt's book is wrong about how Google works

Eric Schmidt's book is wrong about how Google works

Google is a great company — from its record $23 billion IPO in 2004 (at a time when Nasdaq was below 2000!) to its dominant mobile OS. My associates and I have such an admiration for Google that we built our latest web conferencing platform with Google’s…

“Invalid username or password” is a useless security measure

Login attempts fail because computer users can't remember their email or didn't input the right password. Most websites on the Internet won't tell you which one is actually incorrect. If you tell an attacker the email address is wrong, they'll try a…

Monolithic Nodejs (2013)

Are large-scale Node.js systems possible? Empirically, the answer is yes. Walmart and Paypal have both shown that it can be done. The quick criticism is that you need 10X engineers. This a classic, and well-founded criticism. New ways of doing things are…

Why I vertically align my code (and you should too)

There was an interesting discussion on HackerNews last week about the Linux Kernel coding style. During the discussion, I kicked off a minor holy war about whether one should vertically align code. I'm all for it! Let me explain why. Take this trivial…