Better Source Code Browsing With FreeBSD and Mozilla DXR

Lately I've been reading about the design and implementation of the FreeBSD Operating System (great book, you should read it). However I find browsing the source code quite painful. Using vim or emacs is fine for editing invidual files, but when you are…

Charles Plessy: Browsing debian-private via SSH

I recently realised that one can browse the archives of debian-private via SSH. I find this a good compromise between subscription and ignorance. Here is for instance the command for November. ssh -t master.debian.org mutt -f /home/debian/archive/debian…

How shaving 0.001s from a function saved $400/mo on Amazon EC2

How shaving 0.001s from a function saved $400/mo on Amazon EC2

Update 2014-11-26: so this old post hit the HN front page. Feel free to join the discussion over there: https://news.ycombinator.com/item?id=8661387. If premature optimisation is the root of all evil, then timely optimisation is clearly the sum of all…

PostgreSQL Hardware Performance Tuning (2010)

PSQL is an object-relational database developed on the Internet by a group of developers spread across the globe. It is an open-source alternative to commercial databases like Oracle and Informix. PSQL was originally developed at the University of…

Why programming methodologies are pointless

I’ve come to the conclusion that believing in idealisms is wrong. When I was in my first steps of learning Python, somehow I stumbled across a presentation by the name of Stop Writing Classes. I’m not even sure why I watched it. At the time I didn’t even…

Incremental merge for git

Incremental merge for git

Perform a merge between two branches incrementally. If conflicts are encountered, figure out exactly which pairs of commits conflict, and present the user with one pairwise conflict at a time for resolution. * Reduce the pain of resolving merge conflicts…

CotEditor – Text Editor for OS X

CotEditor is developed as an open-source project that allows anyone to contribute. CotEditor launches so quick that you can write your text immediately when you want to. CotEditor is exactly made for macOS. It looks and behaves just as macOS applications…

Motrr Galileo robotic mount goes GoPro, uses iPhone app for control

Motrr Galileo robotic mount goes GoPro, uses iPhone app for control

We've written about the Motrr Galileo robotic mount before -- it was first a Kickstarter project that received tons of funding, and came to market as a robotic iPhone mount. It shipped a bit late - the Kickstarter campaign ran in early 2012, backers...

Is Docker ready for production?

Disclaimer: opinions are mine, not my colleagues or employers. I’ve been playing with Docker for the past 2 weeks. Everyone around me seems to believe Docker’s best thing in IT since DHCP so I had to make up my mind. At Botify, our infrastructure is…

Go HTTP2 demo

Welcome to the Go language's HTTP/2 demo & interop server. Unfortunately, you're not using HTTP/2 right now. To do so: * Use Firefox Nightly or go to about:config and enable "network.http.spdy.enabled.http2draft" * Use Google Chrome Canary and/or go…

Cache is the new RAM

Cache is the new RAM

One of the (few) advantages of being in technology for a long time is that you get to see multiple tech cycles beginning to end. You get to see how breakthroughs actually propagate. If all you have seen is a part of the curve, it’s hard to extrapolate…

How to Verify an Email Address

Having a long list of emails of your potential customers and partners is very common today. And if you run an online business email marketing is probably on of the tools that you often use. It is thus handy to keep your mailing list clean. Emails in your…

Allen on WebKit

Allen Pike did a great talk at Xcoders a few months ago on embedding WebKit in iOS apps — and it’s up on Vimeo.

A Proper Server Naming Scheme

A Proper Server Naming Scheme

Join over 100,000 subscribers to our newsletterCompanies like Netflix, Spotify, Apple and O'Reilly are reading our articles. This is a guest blog post via MNX.io – a 100% SSD cloud hosting provider built for reliability and performance. Choose your CPU,…

Daniel Hahler: Deploying a website using Git via SSH remote

Git has a concept of "remotes" (tracked repositories), which allows to have arbitrary alternate remote locations besides the typical "origin" remote, like "web". The basic idea is to setup a user on the remote server ($SSH_DEPLOYUSER) which is…

Tips for authoring fast-loading HTML pages

These tips are based on common knowledge and experimentation. An optimized web page not only provides for a more responsive site for your visitors but also reduces the load on your web servers and Internet connection. This can be crucial for high volume…

curl | sh

curl | sh

JavaScript is required to view this site.

How to safely store a password

Use bcrypt. Use bcrypt. Use bcrypt. Use bcrypt. Use bcrypt. Use bcrypt. Use bcrypt. Use bcrypt. Use bcrypt. These are all general purpose hash functions, designed to calculate a digest of huge amounts of data in as short a time as possible. This means…

A fast HTTP request/response parser for Common Lisp

A fast HTTP request/response parser for Common Lisp

This is a fast HTTP request/response protocol parser for Common Lisp. * Exports low-level APIs which don't any memory allocations during parsing. The API is quite similar to http-parse, although there's some differences. * http, http-request and http…

Syncing MySQL slave table with pt-online-schema-change

I recently encountered a situation in which after running Percona Toolkit’s pt-table-checksum on a customer system, 95% of the table on the MySQL master was different on the MySQL slave. Although this table was not a critical part of the infrastructure,…

Swift Policy

Now that Swift is at 1.0, I need to set a policy for when to use Swift code and when not to. Swift is a peer of Objective-C and you can ship apps written (all or in part) in Swift. And I expect that the share of Swift code will grow fairly quickly. I also…

Adobe releases free font: Source Han Sans

In celebration of its 25th year of typeface development, Adobe has released Source Han Sans, a new family of free, open source fonts that harmonizes East Asian and Latin font designs. More than three years in the making, this is one of Adobe’s most complex…

Simple MySQL Master HA with mysqlnd_ms

I had the pleasure of presenting to the PHP Users Group Philippines a few days ago about mysqlnd_ms. The mysqlnd plugin, MySQL Master Slave, is a transparent layer on top of mysqlnd extension. This allows you to do read-write splitting and slave reads load…

PHP vs. Node.js: The REAL statistics

When it comes to web programming, I’ve always coded in ASP. NET or the LAMP technologies for most part of my life. Now, the new buzz in the city is node.js. It is a light-weight platform that runs javascript code on server-side and is said to improvise…

Implications of New Apple Swift Language for Developers

We literally wrote the book on it – the Amazon best-selling iOS Programming: The Big Nerd Ranch Guide. From a macOS app used by millions of people every day to an innovative iOS app that communicates to your connected home or even a top-rated Apple Watch…

Btns.css – All the button styles you need in 653B of CSS

This light-weight* css module is a set of simple utilities you can use to create a variety of button style links. Easily customize or extend btns.css to fit your sites styles. This light-weight* css module is a set of simple utilities you can use to…

What Developers Should Know About Apple’s TestFlight

When Apple acquired Burstly, makers of TestFlight, earlier this year, many were hopeful that Apple was finally ready to provide developers with an easy way to manage beta testing. So naturally, developers responded to Apple’s official announcement of the…

Swift impressions

Occasionally I have a good reason to pull an idea out of the queue and start writing a new computer program. Today marks one of those happy occasions. Apple announced a nifty new programming language called Swift, and as a long-time Objective-C developer,…

Node.js in Production

When running a node application in production, you need to keep stability, performance, security, and maintainability in mind. Outlined here is what I think are the best practices for putting node.js into production. By the end of this guide, this setup…

Learn how to work with Apple's new programming language, Swift

Learn how to work with Apple's new programming language, Swift

Curious about Apple's new programming language, Swift? The company has put out a free 500-page ebook for interested developers on the iBooks Store.(itunes.apple.com)To read this article in full or to leave a comment, please click here

Apple's HomeKit will bring smart home control to iOS 8

Apple's HomeKit will bring smart home control to iOS 8

iOS 8 is coming for your house. One of the many new developer tools Apple unveiled Monday at the Worldwide Developer Conference is HomeKit, a new suite of tools that will let the makers of smart home products integrate their wares more deeply into Apple’s…

High Availability with MySQL Fabric: Part II

This is the third post in our MySQL Fabric series. If you missed the previous two, we started with an overall introduction, and then a discussion of MySQL Fabric’s high-availability (HA) features. MySQL Fabric was RC when we started this series, but it…

Experiments at Airbnb

Experiments at Airbnb

Airbnb is an online two-sided marketplace that matches people who rent out their homes (‘hosts’) with people who are looking for a place to stay (‘guests’). We use controlled experiments to learn and make decisions at every step of product development,…

A Better Approach to A/B Test Analysis

A Better Approach to A/B Test Analysis

We’ve made some radical changes to the math behind our open-source A/B testing library, Confidence.js. We want to bring you up to speed on how it works. When we originally wrote Confidence.js, we took a very traditional approach. We looked to the…

How to become a millionaire web developer

I have come up with a strategy to become a millionaire web developer. Spoiler alert - you don’t have to be a web developer for this to work! This post might seem like a massive brag but that’s not my intention - it’s to look at a solution to what…

Writing a File System in Linux Kernel

Writing a File System in Linux Kernel

There are no complex or difficult concepts in this article, all required is a basic knowledge of the command line, the C language, Makefile and a general understanding about file systems. In this article I am going to describe the components necessary for…

SteamShovel, a Node.js code coverage tool (Ghostalk Podcast)

We talked with Christopher Giffard, who is the author of the SteamShovel code coverage and profiling library, and is one of the olden developers of Ghost. We touch on working with node, staying motivated, his project: Behaviour Assertion Sheets and a few…

WWDC 2014 Attendee Map

Adam Swinden created an attendee list for WWDC. And a Glassboard board that anyone can join. And a map showing where people are coming from.

Wouter Verhelst: kFreeBSD and ZFS

At one particular customer, increasing storage needs require that we add a large file server which should be as fast as possible. In that context, I'm currently evaluating using Debian GNU/kFreeBSD ("Debian," from now on) on ZFS. Not being hampered by a…

Is LG's New Ultra Widescreen Display Better Than "Normal" 4K?

Iddo Genuth (903542) writes "Forget about 4K displays, are Ultra Widescreen 'cinematic' displays the real deal? Earlier this year LG announced its new 34UM95 – a 34-inch Ultra Widescreen monitor with a cinematic 21:9 aspect ratio and a generous 3440 x1440…

"Host your own GitHub" using Gitlab and Dokku

"Host your own GitHub" using Gitlab and Dokku

Last week, I wrote a tutorial on using “git push” to deploy Ruby applications to your own server using Dokku, a tool that lets you create an environment similar to Heroku on your own server. I demonstrated an example using a simple Ruby app to test the…

Introducing the 3-Minute MySQL Monitor

Introducing the 3-Minute MySQL Monitor

There are many cool, new things happening with Percona Cloud Tools. To avoid “tl;dr” I will highlight only one new feature after a brief, general announcement. The new feature is a 3-minute MySQL monitor. I’ll blog later about other features. The general…

Manifesto for Async Software Development

That is, while there is value in the latter items, there is more value in the former items. Modern tools and flexible work environments over meetings and office hours After many years of developing software using Agile methodologies like Scrum, the time…

How to adjust your iPhone camera's settings

How to adjust your iPhone camera's settings

Unlike a compact camera or a DSLR, your iPhone doesn’t let you adjust the most popular settings: aperture, lens length, shutter speed, and white balance. That said, several tools within the Camera app (and other third-party programs) can aid you in taking…

WWDC Parties 2014

There’s a list. Main thing to remember: drink water. Drink water. Drink water. You may or may not drink other things too. Either way’s cool. Just don’t skimp on the water. Second thing: everybody’s shy. Just talk to people and don’t worry about it. You’ll…

Erlang and code style

Correct Erlang usage mandates you do not write any kind of defensive code. This is called intentional programming. You write code for the intentional control flow path which you expect the code to take. And you don’t write any code for the paths which you…

Remote Working: One Does Not Simply Spend a Year Without Pants

Remote Working: One Does Not Simply Spend a Year Without Pants

My name is Luca Sartoni, I’m a Growth Engineer and I work at Automattic. Automattic is the company behind WordPress.com, Akismet, Polldaddy, Jetpack and many others. Our company is fully distributed and my 237 colleagues work from home, cafes, lounges,…

Proxy.app Lands In App Store

Proxy.app Lands In App Store

After several months testing and improving features, Proxy.app is now officially available for purchase from Mac App Store. It has been an interesting journey and we can proudly say that we have put all of our hearts into making this tool. Proxy.app was…

Algorithmic tagging of Hacker News or any other site

Algorithmic tagging of Hacker News or any other site

Part of making algorithms more discoverable is creating meta-data tags to classify them. Often sites will allow users to pick their own tags but what if the content had already been generated? This is the problem we faced when trying to tag all the…

Mac 101: How to manage website Push Notifications in OS X Mavericks

Mac 101: How to manage website Push Notifications in OS X Mavericks

OS X Mavericks added a new feature to Safari that allows websites to send you push notifications when there is breaking news and other new content. Websites that support this function will display a pop-up asking you if you want to receive alerts...

Computer hardware

I built a new computer last week to replace my old one. My computer is running 24h a days, so I focused on low power hardware with good peak performance. Next to a low-power computer I have a computer built for performance (gaming and heavy development).…

Zero Downtime Front End Deployments with Vulcand on CoreOS

Zero Downtime Front End Deployments with Vulcand on CoreOS

Update: Vulcand has been updated since this post was written. Jump to https://github.com/vulcand/vulcand for more info. You can follow the concepts of this post, but the commands are no longer up to date. Running a distributed system across many machines…

New Firefox HTTP cache now enabled on Nightly builds

Yes, it’s on! After a little bit more than a year of a development by me and Michal Novotný all bugs we could find in our labs, offices and homes were fixed. The new cache back-end is now enabled on Firefox Nightly builds as of version 32 and should stay…

Reading QR Codes

Reading QR Codes

Copyright © 2019 - K Harrison Privacy and Cookies Terms of Use, A while back I had the idea that I should create my own implementation of the Time-based One-time Password (TOTP) algorithm used by applications such as Google Authenticator. The TOTP…

Set up your own email server in 5 steps

There are a load of guides to setting up email on a server, but many of them don’t cover the extra useful features that make hosting your own email a viable experience. If you’re going to wean yourself off Gmail, then you need usable webmail, (push) IMAP,…

MySQL databases are all setup in BuildAPI-app docker container!

As I stated in the previous post, the next step here was to setup databases. I spent time attempting to have sqlite work in this situation, but ran into issues with buildapi connecting to the sqlite databases. Rather than chase…Read more ›

Bootstrap 3 Tips and Tricks

Bootstrap 3 Tips and Tricks

Bootstrap 3 has a ton of features and helpers to speed up front-end development. Sometimes you need something and you end up writing your own custom CSS and JavaScript without even realizing that Bootstrap could have done it for you. That's not necessarily…

[PowerDNS] Backends in detail: PipeBackend

This document is about PowerDNS 4.0. For other versions, please see the documentation index. The PowerDNS Authoritative Server is a versatile nameserver which supports a large number of backends. These backends can either be plain zone files or be more…

Row-based replication, MySQL 5.6 upgrades and temporal data types

Whither your rollback plan? MySQL 5.6 upgrades are in full swing these days and knowing how to safely upgrade from MySQL 5.5 to 5.6 is important. When upgrading a replication environment, it’s important that you can build a migration plan that safely…

How to: code JavaScript using Twitter bootstrap best practices

Bootstrap was created at Twitter in mid-2010 by @mdo and @fat. It provides a lot of UI plugins easy to implement. You’ve probably already used it but have you looked at how it worked? Together, we will try to make another plugin using the same best…

GlusterFS 3.5 released

Version 3.5 of the GlusterFS cluster filesystem has been released. New features include better logging, the ability to take snapshots of individual files (full volumes cannot yet be snapshotted), on-the-wire compression, on-disk encryption, and improved…

A live HTML5 editor made with Node.js

Can be used for Javascript and CSS coding. Utilizes the incredible Codemirror text-editor for highlighting and indentation. Lightweight and easy to setup. Anyone can use it. Customizable UI. You can change the primary UI color at any time. (more…

Coping with the TCP TIME-WAIT state on busy Linux servers

The Linux kernel documentation is not very helpful about what net.ipv4.tcp_tw_recycle does: Enable fast recycling TIME-WAIT sockets. Default value is 0. It should not be changed without advice/request of technical experts. Its sibling,…

Map Reduce: A simple introduction (2010)

See all my projects and blogs → Ever since google published its research paper on map reduce, you have been hearing about it. Here and there. If you have uptil now considered map-reduce a mysterious buzzword, and ignored it, Know that its not. The basic…