background preloader


Facebook Twitter

Building a desktop application with Electron. Configuring modifier keys via user settings in a new window.

Building a desktop application with Electron

V8 JavaScript Engine: Getting Garbage Collection for Free. JavaScript performance continues to be one of the key aspects of Chrome's values, especially when it comes to enabling a smooth experience.

V8 JavaScript Engine: Getting Garbage Collection for Free

Starting in Chrome 41, V8 takes advantage of a new technique to increase the responsiveness of web applications by hiding expensive memory management operations inside of small, otherwise unused chunks of idle time. As a result, web developers should expect smoother scrolling and buttery animations with much reduced jank due to garbage collection. In Chrome, we strive to deliver a smooth, 60 frames per second (FPS) visual experience.

Although V8 already attempts to perform garbage collection in small chunks, larger garbage collection operations can and do occur at unpredictable times -- sometimes in the middle of an animation -- pausing execution and preventing Chrome from hitting that 60 FPS goal. Hack This Site! The Old New Thing. Welcome, Slashdot readers.

The Old New Thing

Remember, this Web site is for entertainment purposes only. Sean wants to know what the role of MS-DOS was in Windows 95. I may regret answering this question since it's clear Slashdot bait. (Even if Sean didn't intend it that way, that's what it's going to turn into.) Here goes. MS-DOS served two purposes in Windows 95. It served as the boot loader. When Windows 95 started up, a customized version of MS-DOS was loaded, and it's that customized version that processed your CONFIG.SYS file, launched COMMAND.COM, which ran your AUTOEXEC.BAT and which eventually ran WIN.COM, which began the process of booting up the VMM, or the 32-bit virtual machine manager. Building Resilient Services with Go – Tech Talk.

In this Tech Talk from GopherCon 2015, Blake Caldwell, a former Software Engineer here at Fog Creek who worked on the Kiln team, explains how he used Go to re-write and speed up KilnProxy, our SSH Reverse Proxy.

Building Resilient Services with Go – Tech Talk

Hear how he was able to re-write the service and reduce clone times by half, whilst making it more reliable and less noisy. Blake writes about Go and software development on his blog. He has open-sourced the profiler mentioned and you can get the slides from the talk on his GitHub. About Fog Creek Tech Talks. Wblakecaldwell (Blake Caldwell) Innards On Your Table. DDI. On my first day of physics graduate school, the professor in my class on electromagnetism began by stepping to the board, and wordlessly writing four equations: He stepped back, turned around, and said something like [1]: “These are Maxwell’s equations.


Just four compact equations. With a little work it’s easy to understand the basic elements of the equations – what all the symbols mean, how we can compute all the relevant quantities, and so on. But while it’s easy to understand the elements of the equations, understanding all their consequences is another matter. A little golang way. 05 Aug 2015 by Hugues Bruant TLDR: By porting some of our microservices from Java to Go, we reduced their resident memory footprint by orders of magnitude.

A little golang way

In the beginning there was Java The AeroFS Appliance is composed of many microservices, and a vast majority of them were written in Java. Historically, this has not caused us any problems, as the appliance serves thousands of users at various of our customers without any performance issues. However, after our move to Docker, we noticed a sharp increase of the appliance's memory footprint. NationalSecurityAgency/SIMP. Good Python codebases to read? Functional Programming in a Dysfunctional World. Much has been said about the virtues of functional programming (FP) - conciseness, laziness, and concurrency, just to name a few.

Functional Programming in a Dysfunctional World

While it’s certainly still worth rehashing these areas of discourse, in this article I intend to focus on what I think are two of the most compelling benefits of functional programming: correctness and testability. The idea that FP facilitates correctness and testability does not, by any means, come as a surprise to any reader who is a seasoned functional programmer, so feel free to skip this article if you can code ADTs and applicative functors to get out of a wet paper bag. But if you are an FP skeptic or a closet functional programmer who is struggling to convince your boss and colleagues that your team should adopt FP, then this article is for you. The impact of fast networks on graph analytics, part 1. This is a joint post with Malte Schwarzkopf, cross-blogged here and at the CamSaS blog. tl;dr: A recent NSDI paper argued that data analytics stacks don’t get much faster at tasks like PageRank when given better networking, but this is likely just a property of the stack they evaluated (Spark and GraphX) rather than generally true.

The impact of fast networks on graph analytics, part 1

A different framework (timely dataflow) goes 6x faster than GraphX on a 1G network, which improves by 3x to 15-17x faster than GraphX on a 10G network. I spent the past few weeks visiting the CamSaS folks at the University of Cambridge Computer Lab. Together, we did some interesting work, which we – Malte Schwarzkopf and I – are now going to tell you about. Recently, a paper entitled “Making Sense of Performance in Data Analytics Frameworks” appeared at NSDI 2015. Jekyll Now – Create a Jekyll Blog in minutes. Using logstash, elasticsearch and Kibana to monitor your video card – a tutorial. A few weeks ago my colleague Jettro wrote a blog post about an interesting real-life use case for Kibana: using it to graph meta-data of the photos you took.

Using logstash, elasticsearch and Kibana to monitor your video card – a tutorial

Given that photography is not a hobby of mine I decided to find a use-case for Kibana using something closer to my heart: gaming. This Christmas I treated myself to a new computer. The toughest decision I had to make was regarding the video card. In the end I went with a reference AMD R9 290, notoriously known for its noisiness.

Because I’m really interested in seeing how the card performs while gaming, I decided to spent some time on my other hobby, programming, in order to come up with a video card monitoring solution based on logstash, elasticsearch & Kibana. Everything Under The Sun. Embedding assets in Go – Mathias Lafeldt. February 27, 2015 One of the things chef-runner can do for you is to install Chef on a machine before provisioning it.

Embedding assets in Go – Mathias Lafeldt

This allows you to set up bare servers that have nothing installed but the base operating system. Cache them if you can. “The fastest HTTP request is the one not made.” I always smile when I hear a web performance speaker say this. I forget who said it first, but I’ve heard it numerous times at conferences and meetups over the past few years. It’s true! Caching is critical for making web pages faster.

16 Free Data Science Books. Implementing a Virtual Machine in C. Introduction Here's the GitHub to show what we'll be making, you can also compare your code to this repository in case you have errors. GitHub Repository I thought I would write an article about building your very own virtual machine in the C programming language. Algorithmic surrealism: A slow-motion guide to high-frequency trading. I say 'perhaps', because it really depends on how long you pause on those commas I put in the sentence.

If you’re an individual with great respect for commas you might give the algorithm a chance to throw in a few hundred more orders. Let’s just clarify this. That means computers owned (or leased) by a firm somewhere can 1) suck in data from a stock exchange, 2) process it through a coded step-by-step rule system (algorithm) to make a decision about whether to trade or not, 3) send a message back to the exchange with an order for shares of ownership in a company – for example, a company that makes children’s toys – 4) get the order executed and confirmed, and 5) repeat this maybe 250 times a second. Well, it could be more or less than that, too, and to be honest, few people seem to actually know how fast these algorithmic engines trade.

But even if it’s only trading 50 times a second, or even a mere 10 times a second, it’s still inhumanly fast. Nowadays, this is no longer the case. David Morin books: Mechanics, Electricity and Magnetism. Software Tutorials. Preface — Introduction to Statistics 6.4 documentation. Perplexing Permutations: Web Scale Document Clustering: Clustering 733 Million Web Pages.

LightQuanta. Title. The Anatomy of a Recommendation Engine - LightQuanta. Recommenders have been around since at least 1992. Today we see different flavours of recommenders, deployed across different verticals: What exactly do they do? Definitions from the literature In a typical recommender system people provide recommendations as inputs, which the system then aggregates and directs to appropriate recipients. — Resnick and Varian, 1997Collaborative filtering simply means that people collaborate to help one another perform filtering by recording their reactions to documents they read. — Goldberg et al, 1992In its most common formulation, the recommendation problem is reduced to the problem of estimating ratings for the items that have not been seen by a user. Notation U is the set of users in our domain. Useful Python Tricks - LightQuanta.

Originally inspired from this blog post. But many have been customized and rewritten into an IPython Notebook. Note: Written for Python 3 Unpacking. The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) Hacking Starbucks for unlimited coffee. Archive – I, Hacker. The 12 most important announcements from Google I/O 2015. If you currently have a username with "@" in it, please email Forgot password? What a Distributed, Version-Controlled ARP Cache Gets You - Some Random Idiot. Alexander Podelko's Performance Design Links. Scalability Techniques for Practical Synchronization Primitives. Concurrency. Alf Relational Algebra - Context-aware Database Viewpoints.

It is not hard to edit Lisp code. It is not hard to edit Lisp code. Effectively managing memory at Gmail scale. Introduction. Tutorials. Basics - Docker, Containers, Hypervisors, CoreOS. Stuff I find interesting. 17 Jul 2014. A quick tutorial on implementing and debugging malloc, free, calloc, and realloc. The offline cookbook - MDBM - High-speed database. Lisp: Common Lisp, Racket, Clojure, Emacs Lisp. Debugging in the Time of JITs. Two Simple Steps Helped Me Learn Vim. Dockercon Europe 14 review about all the talks&annoucements. We're a digital studio that melds strategy, design, and technology. Evansd/whitenoise. Valgrind is *NOT* a leak checker « Modern Maintainable Code. Invent with Python Bookshelf - Free Python Programming Books. How to Set Up a Home Server with an Intel NUC. Vim After 11 Years - Ian Langworth's Things of Variable Interest. A quick tutorial on implementing and debugging malloc, free, calloc, and realloc.

How to set up a Private Continuous Deployment Server with Drone. Great Works in Programming Languages. Judge me by my C++, not my WordPress. How To Learn Hacking. Vidar Hokstad. The Magic of strace - Chad Fowler. Why Python is Slow: Looking Under the Hood. Rethinking PID 1. Partial Evaluation and Immutable Servers. GTD in 15 minutes – A Pragmatic Guide to Getting Things Done. Is Docker ready for production? Feedbacks of a 2 weeks hands on. Khan Academy Computer Science: Algorithms on Khan Academy, a collaboration with Dartmouth College professors.

Drone Adventures, Pt. 1: Building a drone. Scrap your MapReduce! (Or, Introduction to Apache Spark) All Hacker News Evergreen Stories Ordered by Score - Context. Introducing data center fabric, the next-generation Facebook data center network. Getting Started with Java Development on Docker. Tour.golang exercise solutions. CS17: Home. The complete correctness of sorting. Facebook Go · GitHub. LEGOengineering – Inspiration and support for LEGO-based engineering in the classroom. Using Docker in your development environment — Good Code. Linear vs Binary Search. The Magic of strace - Chad Fowler. JavaScript Promises: There and back again.

Gobot - Golang framework for robotics, physical computing, and the Internet of Things. Vim After 11 Years - Ian Langworth's Things of Variable Interest. Community · Urbit. Building a CustoMac: Buyer's Guide October 2014. /Articles/Mapping-High-Level-Constructs-to-LLVM-IR. Why I love databases. Vim After 11 Years - Ian Langworth's Things of Variable Interest. Luciano Fiandesio - VIM configuration for happy Java coding. Building C Projects. Kickstarting Flask on Ubuntu - setup and deployment. Security Research Lab. CS510 Advanced Programming Language Implemenation. Exercises In Chronological Order. How Long Does An ID Need To Be? — Eager Blog. Explains: Calculus (with pics and gifs)

Distributed big balls of mud.