Mastering PostgreSQL in Application Development

The Book that teaches SQL to developers: learn to replace thousands of lines of code with simple queries! Learn how to deal with SQL in your developer workflow: versioning, testing, code reviewing, deployment. Best practice and tools are covered. Learn…

How Netflix works: the stuff that happens when you hit Play

How Netflix works: the (hugely simplified) complex stuff that happens every time you hit PlayNot long ago, House of Cards came back for the fifth season, finally ending a long wait for binge watchers across the world who are interested in an American…

How to build a wireless street lighting system

From Proof-of-Concept with Off-the-Shelf Hardware to Professional System Street lights can account for up to 40% of a city’s energy cost. Wireless street lighting control can cut that cost by half and remote monitoring can detect broken lamps…

The decentralized WeTransfer

The decentralized WeTransfer

The simplest way to send unlimited files around the world Filenation lets you send files as a link to an email. The files cannot be censored as they are sent stored and transmitted decentralised because it uses the InterPlanetary File System (IPFS). IPFS…

Top books to inspire CIOs and IT professionals in 2017

Top books to inspire CIOs and IT professionals in 2017

Presenting the most talked about books on Hacker News, Stack Overflow and Reddit Best of the Best Top 10 books to inspire CIOs and IT professionals in 2018 Do you love business and technology? These 10 books are good for people who is CIO or…

My VM is lighter and safer than your container

My VM is lighter and safer than your container

an interesting/influential/important paper from the world of CS every weekday morning, as selected by Adrian Colyer My VM is lighter (and safer) than your container My VM is lighter (and safer) than your container Manco et al., SOSP’17 Can we have the…

MySQL vs. MariaDB: Reality Check

MySQL vs. MariaDB: Reality Check

In this blog, we’ll provide a comparison between MySQL vs. MariaDB (including Percona Server for MySQL). Introduction The goal of this blog post is to evaluate, at a higher level, MySQL, MariaDB and Percona Server for MySQL side-by-side to better inform…

How to write a JavaScript-free todo app using just HTML and CSS

How to write a JavaScript-free todo app using just HTML and CSS I wrote a todo app. Unlike TodoMVC (where I took the design from) it doesn’t use JavaScript and instead all interactions are driven by CSS. How does this work? Here’s the short version: it…

iOS 11: How to take great photos with the Camera app

iOS 11: How to take great photos with the Camera app

When it comes to photography with the new iPhones, all the attention goes to the hardware and the improved sensors that can reduce noise and produce photos with better definition in more circumstances. But let's not overlook the software: iOS 11 offers at…

HEML: an open source markup language for building responsive email

HEML is an open source markup language for building responsive email. Native Feel: Do you know HTML and CSS? Check out our docs and you're off to the races! No special rules or styling paradigms to master. Forward Thinking: HEML is designed to take…

For Better Cell Signal, Buy the A1865 Model of the iPhone X

Starting at 12:01 PDT on Friday, Apple will start selling two versions of the iPhone X in the US: the A1865 version and the A1901 version. If you’re not aware that two models exist, Apple won’t give you an option of which to purchase: you’ll be issued one…

Rendering HTML at 1000 FPS – Part 1

Rendering HTML at 1000 FPS – Part 1

This was originally posted on the LensVR blog. Part 2 is also available here. Web page rendering is one of the most interesting and active development areas in computer graphics. There are multiple approaches with pros and cons. In the post I’ll go into…

Amazon EC2 Instances with Up to 8 Nvidia Tesla V100 GPUs (P3)

Amazon EC2 Instances with Up to 8 Nvidia Tesla V100 GPUs (P3)

Driven by customer demand and made possible by on-going advances in the state-of-the-art, we’ve come a long way since the original m1.small instance that we launched in 2006, with instances that emphasize compute power, burstable performance, memory size,…

Remember that $86M license plate scanner I replicated? I caught someone

A few weeks ago, I published what I thought at the time was a fairly innocuous article: How I replicated an $86 million project in 57 lines of code. I’ll admit — it was a rather click-bait claim. I was essentially saying that I’d reproduced the same…

Don’t Build a Startup, Build a Movement

Don’t Build a Startup, Build a Movement

MailChimp’s giveaways were unconventional, too. Free monkey hats for cats were delighting their superfans like me who were ready to pay more. Monkey mascot billboards with no mention of their name … “MailKimp” and other name-teasing campaigns that reached…

Learn to use Awk with hundreds of examples

$ awk --version | head -n1 GNU Awk 4.1.3, API: 1.1 (GNU MPFR 3.1.4, GNU MP 6.1.0) $ man awk GAWK(1) Utility Commands GAWK(1) NAME gawk - pattern scanning and processing language SYNOPSIS gawk [ POSIX or…

GraphQL Fragments Are the Best Match for UI Components

To build anything complicated, the one and only truly helpful strategy is to split what needs to be built into smaller parts and then focus on one part at a time. Ideally, those parts should be designed in a way that does not couple them with each other.…

SSH Escape Sequences

Did you know that when you’re using OpenSSH from the command line you have a variety of escape sequences available to you? SSH somewhere, then type “~” and “?” (tilde, then question mark) to see all the options. You should get something like: Supported…

Google wants to help developers make better websites

Developers already have access to a number of tools that let them see how real-world users experience their websites, but until now they weren't able to see how their website user experience compared to others. Enter the Chrome User Experience Report...

Management: Organization Design

I recently watched a couple of talks and read a few books on management that I thought were amazing soContinue Reading

Paw – macOS HTTP client for testing and describing APIs

Paw – macOS HTTP client for testing and describing APIs

Add new features to Paw through easy-to-build JavaScript-based extensions. Whether you want to have generated client code for your favorite yet exotic language or you want to compute custom authentication schemes on the fly, extensions give a way to make…

MySQL Point in Time Recovery the Right Way

MySQL Point in Time Recovery the Right Way

In this blog, I’ll look at how to do MySQL point in time recovery (PITR) correctly. Sometimes we need to restore from a backup, and then replay the transactions that happened after the backup was taken. This is a common procedure in most disaster recovery…

How Retailers Use Personalized Prices

Orbitz, the travel website, offers slightly different prices to customers who are shopping through its app or a computer, and even between two different users on the same platform. Some of this may be due to experimentation and testing, but it’s also a…

Reusable and type-safe options for Go APIs

In this blog post, I would like to describe an extension to the popular “functional options” pattern that has been described by people like Rob Pike and Dave Cheney. I recommend reading one of these articles if you are unfamiliar with this pattern, as…

The best DSLR for beginners

The best DSLR for beginners

By Mike Perlman This post was done in partnership with Wirecutter, reviews for the real world. When readers choose to buy Wirecutter's independently chosen editorial picks, it may earn affiliate commissions that support its work. Read the full artic...

React is the new Dojo

The Web is much bigger than we think.“Dojo has already won.” said Alex Russell. We sat at a long chest-high table on the top floor of 543 Sansome st in San Francisco. The top two floors had been renovated and decked out by Mitch Kapor to house several of…

Librestd: a library to create C++ RESTful API services

Librestd: a library to create C++ RESTful API services

A low dependencies and self contained library to create C++ RESTful API services ( UNDER HEAVY DEVELOPMENT ). This library and the underlying HTTP server component do not support the full HTTP specs but were rather implemented with speed and simplicity in…

Percona Monitoring and Management 1.4.0 Is Now Available

Percona Monitoring and Management 1.4.0 Is Now Available

Percona announces the release of Percona Monitoring and Management 1.4.0. This release introduces the support of external Prometheus exporters so that you can create dashboards in the Metrics monitor even for the monitoring services other than those…

Sonnet launches Thunderbolt 3 to Dual HDMI 2.0 Adapter

Sonnet launches Thunderbolt 3 to Dual HDMI 2.0 Adapter

Sonnet Technologies has announced the $89.90 Thunderbolt 3 to Dual HDMI 2.0 Adapter. The compact bus-powered device enables users to connect up to two 4K ultra-high-definition (UHD) HDMI monitors with just one Thunderbolt 3 port on a Mac or Windows…

Writing a Bootloader

This article series explains how to write a tiny 32-bit x86 operating system kernel. We won’t do very much other than print Hello world! to the screen in increasingly complicated ways! We’ll start off in assembly and then build up to writing C++! A…

How to Get 100/100 Google Page Speed Score with Middleman and Nginx

October 17, 2017 I recently worked on a Google AMP (Accelerated Mobile Pages) project, which was created to mitigate bloated websites from being at the top of Google results on their mobile web index. I personally think AMP is a bad thing for us but…

Serverless computing: economic and architectural impact

Serverless computing: economic and architectural impact

an interesting/influential/important paper from the world of CS every weekday morning, as selected by Adrian Colyer Today we have another paper inspired by talks from the GOTO Copenhagen conference, in this case Gojko Adzic’s talk on ”Designing for the…

Front-End Checklist

Front-End Checklist

How To Use • Contributing • Roadmap • Website • Product Hunt It is based on Front-End developers' years of experience, with the additions coming from some other open-source checklists. All items in the Front-End Checklist are required for the majority of…

Microservices in Java? Never. – A Second Look

So recently I published an article titled “Microservices in Java? Never.” And it seriously split the camps. Java developers who were passionate about the language, the tools, the frameworks etc posed some very good counterpoints and having read these…

Active cooling your Raspberry Pi 3

Raspberry Pi 3 devices tend to overheat when they run prolonged heavy loads. When the processor’s internal temperature approaches 85 degrees Celsius, it protects itself by downclocking or shutting down completely. This can adversely affect performance of…

ApsaraCache: A Redis branch originated from Alibaba Group

ApsaraCache: A Redis branch originated from Alibaba Group

ApsaraCache is based on the Redis official release 4.0 and has many features and performance enhancements. ApsaraCache has proven to be very stable and efficient in production environment. There are many features in ApsaraCache, the following two are…

Swift-Keylogger – Keylogger for MacOS written in Swift using HID

Swift-Keylogger – Keylogger for MacOS written in Swift using HID

It is a simple and easy to use keylogger for macOS. It is not meant to be malicious. There are only few keyloggers available for Mac and none of them are in Swift. Another problem is with Apple high-level APIs. I don't know the reason but Apple suddenly…

6 Myths of Progressive Web Apps

Terms like “Progressive Web Apps” (PWAs) are useful to help spread concepts, but they come with a risk of misuse and misunderstanding. As a fairly new and evolving concept, PWAs may be defined and understood differently by different people. In this post,…

My 20-Year Experience of Software Development Methodologies

My 20-Year Experience of Software Development Methodologies

Recently I read Sapiens: A Brief History of Humankind by Yuval Harari. The basic thesis of the book is that humans require ‘collective fictions’ so that we can collaborate in larger numbers than the 150 or so our brains are big enough to cope with by…

How to Do Code Reviews Like a Human

How to Do Code Reviews Like a Human

Lately, I’ve been reading articles about best practices for code reviews. I notice that these articles focus on finding bugs to the exclusion of almost every other component of a review. Communicating issues you discover in a constructive and professional…

Why PostgreSQL is better than MySQL

Someone recently tweeted about the fantastic news that MySQL fixed a bug. Now in my world, bugs get fixed quickly and well. Bugs happen and they need to be fixed. It never occurred to me that we should ever tweet or blog about the fixing of a bug. I guess…

How JavaScript works: Event loop and the rise of Async programming

Welcome to post # 4 of the series dedicated to exploring JavaScript and its building components. In the process of identifying and describing the core elements, we also share some rules of thumb we use when building SessionStack, a JavaScript application…

Coding Interview Cheatsheet

Coding Interview Cheatsheet

This is a straight-to-the-point, distilled list of technical interview Do's and Don'ts, mainly for algorithmic interviews. Some of these may apply to only phone screens or whiteboard interviews, but most will apply to both. I revise this list before each…

Some Insights from a Julia Developer

Some Insights from a Julia Developer

In this post I would like to reflect a bit on the Julia programming language. These are my personal views and I have had more than a year developing a lot of packages for the Julia programming language. After roaming around many different languages…

Traceroute Lies: A Typical Misinterpretation Of Output

Traceroute Lies: A Typical Misinterpretation Of Output

Sometimes a user with performance issues will proudly present me with a traceroute and point to a particular hop in the network and accuse it of being the problem because of high latency on the link. About 1 time in 1000 they are correct and the link is…

Starting a Web Design Firm from Scratch

This Tuesday I decided to start a Web Design firm. Here is my progress so far (4 days) What does this mean? This means I am starting a Web design firm which will make websites for Dog Trainers. I believe selecting a niche makes a lot of things easier: *…

Yale releases HomeKit-enabled smart locks

Yale releases HomeKit-enabled smart locks

Yale Locks & Hardware says its Assure Lock family is now Apple HomeKit compatible. The new Yale iM1 Network Module, which provides support for the Apple Home app and Siri, will be available for purchase as of Oct. 16 in major retail stores in the U.S. and…

SIP.js v0.8.0 Supports All Major Browsers and Renegotiation

SIP.js v0.8.0 Supports All Major Browsers and Renegotiation

We recently released version 0.8.0 of SIP.js, which allows codec renegotiation to occur during WebRTC calls. This enables several new features, including music on hold and the ability to add video to an ongoing audio call. With this update, SIP.js is also…

A Mystery with open_files_limit

A Mystery with open_files_limit

In this blog, we’ll look at a mystery around setting the open_file_limit variable in MySQL and Percona Server for MySQL. MySQL Server needs file descriptors to run. It uses them to open new connections, store tables in the cache, create temporary tables to…

Announcing Rust 1.21

The Rust team is happy to announce the latest version of Rust, 1.21.0. Rust is a systems programming language focused on safety, speed, and concurrency. If you have a previous version of Rust installed, getting Rust 1.21 is as easy as: $ rustup update…

You Should Learn Regex

Regular Expressions (Regex): One of the most powerful, widely applicable, and sometimes intimidating techniques in software engineering. From validating email addresses to performing complex code refactors, regular expressions have a wide range of uses and…

Celebrating Coming Out Day: Portraits of LGBTQ+ Googlers

Celebrating Coming Out Day: Portraits of LGBTQ+ Googlers

As someone who identifies as non-binary, transgender and gay, I’ve come out a lot. As the co-creator of a "Transgender 101" course that introduces Googlers to trans issues, I come out to my coworkers every time I facilitate a session. Yet I still feel…

How to set up Universal Clipboard on macOS High Sierra and iOS 11

How to set up Universal Clipboard on macOS High Sierra and iOS 11

The Universal Clipboard feature in macOS High Sierra and iOS 11 allows you to copy content, including text, images, photos and video from one Apple device and paste it in another. For example, you can browse a recipe on your Mac and paste the ingredients…

Reverse Engineering MacOS High Sierra Supplemental Update

Reverse Engineering MacOS High Sierra Supplemental Update

Reported by Matheus Mariano, a Brazilian software developer, a programming error was discovered in Apple’s most recent operating system, High Sierra, that exposed passwords of encrypted volumes as password hints. A serious bug that quickly made the…

Linux Kernel LTS release is now for 6 years instead of 2

Linux Kernel LTS release is now for 6 years instead of 2

A major change in the maintenance lifecycle of Linux kernels is coming. During a Linaro Connect 2017 presentation on Android's Project Treble, Googler Iliyan Malchev announced that Linux LTS (Long Term Support) kernels were switching from a two-year…

Ask HN: Why Isn't the Construction of CRUD Web UIs 90% Automated?

Ask HN: Why Isn't the Construction of CRUD Web UIs 90% Automated? It seems silly to write the same types of code over and over to build CRUD web user interfaces. There have of course been hundreds of UI builders. Why aren't they used? Styling should…

Tensorflow sucks

Every few months I enter the following query into Google: “Tensorflow sucks” or “f*** Tensorflow”, hoping to find like-minded folk on the internet. Unfortunately, although Tensorflow has been around for about two years, I still cannot find a bashing of…

Setting Up Webpack, Babel and React from Scratch

Setting Up Webpack, Babel and React from Scratch

This article will take about 17 minutes to read. Last summer I wrote this post which quickly became my most popular one to day. With webpack 2 and 3 it got outdated, so I decided to write a new one. I’ll assume you have a basic knowledge of unix…

Why many developers still prefer Objective-C to Swift

For several years after the iOS SDK was announced, developers were flocking to Objective-C as they sought to get their slice of the app development gold rush. But those times are gone: Swift has been with us for over three years now, and has largely pushed…

Beauty of the Go Programming Language

I recently started exploring Go for some of my side projects and was really struck by its beauty. I realized how beautifully it made a balance between ease of use (generally associated with dynamically typed, interpreted languages), and performance and…

A Branchless UTF-8 Decoder

This week I took a crack at writing a branchless UTF-8 decoder: a function that decodes a single UTF-8 code point from a byte stream without any if statements, loops, short-circuit operators, or other sorts of conditional jumps. You can find the source…

TKLX – A super slim container image based on Debian GNU/Linux

TKLX – A super slim container image based on Debian GNU/Linux

A super slim root filesystem specifically designed to be used as a base image for application container images. Based on Debian GNU/Linux, the rootfs.tar.xz weighs in at only 12MB, and has access to largest GNU/Linux software repository with over 56,800…

Security.txt

A proposed standard which allows websites to define security policies. Read the latest Internet draft → Your security.txt file has been copied to your clipboard! “When security risks in web services are discovered by independent security …

AutoRest: OpenAPI Specification code generator

The AutoRest tool generates client libraries for accessing RESTful web services. Input to AutoRest is a spec that describes the REST API using the OpenAPI Specification format. AutoRest is an open source tool -- if you need assistance, first check the…

Visual Studio Code 1.17 released

Visual Studio Code 1.17 released

Welcome to the September 2017 release of Visual Studio Code. There are a number of significant updates in this version that we hope you will like, some of the key highlights include: If you'd like to read these release notes online, go to Updates on…

Ethereal Email – A fake SMTP service

Ethereal is a fake SMTP service, mostly aimed at Nodemailer users (but not limited to). It's a completely free anti-transactional email service where messages never get delivered. Instead, you can generate a vanity email account right from Nodemailer,…

Iain R. Learmonth: MAC Catching

As we walk around with mobile phones in our pockets, there are multiple radios each with identifiers that can be captured and recorded just through their normal operation. Bluetooth and Wifi devices have MAC addresses and can advertise their presence to…

Books I've read in the third quarter of 2017

The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities The Art of Software Security Assessment is the definitive guide to finding software vulnerabilities by reading source code. Vulnerability research is not my area…

Understanding SOLID Principles: Dependency Inversion

Understanding SOLID Principles: Dependency Inversion

This is the 1st part of the series of understanding SOLID Principles where we explore what is Dependency Inversion and why it helps deliver software that is loosely coupled and testable. When reading books or talking to other developers, you might come…

MyRocks Metrics Now in PMM 1.3.0

MyRocks Metrics Now in PMM 1.3.0

One of the most exciting features shipped in the Percona Monitoring and Management 1.3.0 (PMM) release is support for MyRocks metrics via a new Metrics Monitor dashboard titled MySQL MyRocks Metrics. The support in PMM follows the recent Percona Server for…

Guacamole – A clientless remote desktop gateway

Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH. We call it clientless because no plugins or client software are required. Thanks to HTML5, once Guacamole is installed on a…

The Curious Case of the Longevity of C

Menu Careers The Curious Case of the Longevity of C Despite a reputation for fast change some technology choices have stayed remarkably static over the past few decades. In this article we look at the C programming language which is over 40 years old…

Big Dataset: All Reddit Comments – Analyzing with ClickHouse

Big Dataset: All Reddit Comments – Analyzing with ClickHouse

In this blog, I’ll use ClickHouse and Tabix to look at a new very large dataset for research. It is hard to come across interesting datasets, especially a big one (and by big I mean one billion rows or more). Before, I’ve used on-time airline performance…