~/devreads

16 Jun 2015

1 min read

At SoundCloud, we’re building an ecosystem where creativity thrives. Developers are an important part of that ecosystem. We’re continually…

15 Jun 2015

Ruslan Spivak 13 min read

“If you don’t know how compilers work, then you don’t know how computers work. If you’re not 100% sure whether you know how compilers work, then you don’t know how they work.” — Steve Yegge There you have it. Think about it. It doesn’t really matter whether you’re a newbie or a seasoned software developer: if you don’t know how…

13 Jun 2015

Dave Cheney 1 min read

Today I was devastated to learn of yet another women being driven from the tech industry. This is so far from being all right it does not even register on the same scale. The tech industry is a sick, male dominated, misogynistic, flaccid void that continues to permit weak, small, frightened men to abuse and […]

uncategorized

12 Jun 2015

Kim Moir

Here's May 2015's monthly analysis of the pushes to our Mozilla development trees. You can load the data as an or as a . The number of pushes decreased from those recorded in the previous month (8894) with a total of 8363. HTML page json file Trends Highlights General Remarks Records 8363 pushes 270 pushes/day (average) Highest number of pushes/day:…

11 Jun 2015

10 Jun 2015

9 Jun 2015

lukaseder 1 min read

Welcome to the jOOQ Tuesdays series. In this series, we’ll publish an article on the third Tuesday every other month where we interview someone we find exciting in our industry from a jOOQ perspective. This includes people who work with SQL, Java, Open Source, and a variety of other related topics. We have the pleasure … Continue reading jOOQ Tuesdays:…

jooq-tuesdaysmigrationsaxel fontaineboxfusecontinuous delivery

3 min read

You’re confident about the core ideas behind Rails. You can write working code, no problem. And you’re learning more about code quality, refactoring, writing great tests, and object-oriented design. By this point, you’re starting to feel like you’re getting it, that you’re on the path to becoming an expert. When you look backwards, you see just how far you’ve come,…

8 Jun 2015

Dave Cheney 11 min read

A few months ago I introduced gb as a proof of concept to the audience at GDG Berlin. Since then, together with a small band of contributors and an enthusiastic cabal of early adopters, gb has moved from proof of concept, written mostly on trains during a trip through Europe, to something approaching a usable […]

goprogramminggbreproducible builds

1 min read

A while back we featured a post about why learning mathematics can be hard for programmers, and I claimed a major issue was not understanding the basic methods of proof (the lingua franca between intuition and rigorous mathematics). I boiled these down to the “basic four,” direct implication, contrapositive, contradiction, and induction. But in mathematics there is an ever growing…

1 min read

Requests for playlists have always included the full track objects contained within. This representation may be convenient for playlists…

7 Jun 2015

Dominic Steinitz 1 min read

Here’s the same analysis of estimating population growth using Stan. data { int<lower=0> N; // number of observations vector[N] y; // observed population } parameters { real r; } model { real k; real p0; real deltaT; real sigma; real mu0; real sigma0; vector[N] p; k <- 1.0; p0 <- 0.1; deltaT <- 0.0005; sigma … Continue reading Population Growth…

bayesianmachine learningstatistics

4 min read

This is a tale about how we use Docker to test Docker. Yes, I am familiar with the meme. Puhlease. Many of you are familiar with the fact I work on the Docker core team. Which consists of fixing bugs, doing releases, reviewing PRs, hanging out on IRC, mailing lists etc etc etc. But what you may not know is…

1 min read

Hacking the :visited selector to show unread posts. We'll look at the limitations and my little work-around.

6 Jun 2015

Dominic Steinitz 4 min read

Introduction Let us see if we can estimate the parameter for population growth using MCMC in the example in which we used Kalman filtering. We recall the model. And we are allowed to sample at regular intervals In other words , where is known so the likelihood is Let us assume a prior of then … Continue reading Population Growth…

bayesianhaskellstatisticsmarkov chain monte carlo

5 Jun 2015

Dave Cheney 3 min read

bytes.Buffer is a tremendously useful type, but it’s a bit large1. % sizeof -p bytes Buffer Buffer 112 … and that is just the overhead, we haven’t put any data into the buffer yet. This Friday’s2 challenge is to write a replacement for bytes.Buffer that implements io.ReadWriter and allows the caller to discover the length and capacity of the […]

goprogramminguseless trivia

3 Jun 2015

jonskeet 7 min read

At the moment, I’m spending a fair amount of time thinking about a new version of the C# API and codegen for Protocol Buffers, as well as other APIs for interacting with Google services. While that’s the context for this post, I want to make it very clear that this is still a personal post, … Continue reading Backwards compatibility…

c#evil code

2 Jun 2015

lukaseder 1 min read

You probably know about “ordinary views” already, but I’m sure you’ll find one or two things in this article that you haven’t thought about in this way yet… What exactly are SQL views? Views in SQL are a means of treating complex queries in the same way as “ordinary” tables. In fact, SQL is all … Continue reading What Exactly…

sqlcommon table expressionsderived tablesoptimiserrdbms

2 min read

The keypress event works maddeningly differently in Chrome/Safari and Firefox, and this is the story of how I spent two hours discovering that, so that hopefully you don’t have to. Keypress what? A keypress event is one of the events you get when you mash on the keyboard. It’s special because according to the spec, you should only get a…

1 Jun 2015

3 min read

When you use Ruby to wrap an API, you have to have a way to configure it. Maybe the wrapper needs a username and secret key, or maybe just a host. There are a few different ways to handle this. So which one should you choose? The easy, global way You might want your service to act like it’s always…

31 May 2015

5 min read

If you've followed any tech news aggregator in the past week (the week of the 24th of May, 2015), you've probably seen the story about how SourceForge is taking over admin accounts for existing projects and injecting adware in installers for packages like GIMP. For anyone not following the story, SourceForge has a long history of adware laden installers, but…

Jan Lelis 1 min read

This is a summary of reasons why you should still use Ruby: It is a language with a terrific community (welcoming and always questioning itself) and ecosystem (a lot of problems already solved), which is beautiful (focus on productivity), a little conservative (in the sense that it is easy to work with), and general purpose (a good choice in most…

30 May 2015

Dave Cheney 2 min read

I’m going to be speaking at OSCON this year about Go performance. The title of the talk is High performance servers without the event loop and will focus on the features of the language and its runtime that transparently let Go programmers write high performance network servers without resorting to event loops and callback spaghetti. As the […]

goprogrammingoscon

Jan Lelis 2 min read

Ruby's regex engine defines a lot of shortcut character classes. Besides the common meta characters (\w, etc.), there is also the POSIX style expressions and the unicode property syntax. This is an overview of all character classes: Meta Chars Char Negation ASCII Unicode . - ¹ Any ¹ Any \X - Any Grapheme clusters (\P{M}\p{M}*) \d \D [0-9] ² ASCII…

29 May 2015

Jan Lelis 1 min read

If you take a closer look, you'll notice that Ruby's grammar has quite a few edge-case where its syntax is inconsistent or ambiguous: Binary Minus vs Minus taken as Unary Method Argument >> [1,3,4,5].size - 1 # => 3 >> [1,3,4,5].size -1 # wrong number of arguments(1 for 0) No Simple Rule, if a Symbol can be Displayed Without the…

28 May 2015

Jan Lelis 2 min read

There is an operator in Ruby, that does nothing: The unary plus operator. It is part of the language for keeping symmetry with the unary minus operator! This is awesome, an operator for free! How can we utilize it? Update: In Ruby 2.3, the plus operator got its first purpose: Create an unfrozen copy of a string string = "frozen…

27 May 2015

3 min read

TIL that Bell Labs and a whole lot of other websites block archive.org, not to mention most search engines. Turns out I have a broken website link in a GitHub repo, caused by the deletion of an old webpage. When I tried to pull the original from archive.org, I found that it's not available because Bell Labs blocks the archive.org…

Jan Lelis 2 min read

Code Golf is the art of writing the shortest program possible. The less bytes the better. And the competition is just ridiculously strong! Head over to Anarchy Golf if you want to see more! A good beginner's problem is printing out Pascal's Triangle: Spend a few days to get to 45 bytes. Spend a few months to get to 43…

26 May 2015

Luciano Mammino 2 min read

Keybase.io is a new service that combines asymmetric cryptography with a social network. It allows users to easily share public keys and authenticate messages by linking keys to profiles on Twitter, GitHub, Reddit, etc. The service provides encrypted messaging and bitcoin wallet pairing to make adopting cryptography seamless.

securitycryptography

Schakko 1 min read

CMDBuild supports the usage of SQL queries inside the “filter” options if the type is a REFERENCE. Given: A lookup table named “Software Type” [{Code: DBMS}, {Code: App}] A class Application [{Code: MySQL, Type: DBMS}, {Code: PostgreSQL, Type: DBMS}, {Code: Tomcat, Type: App}]; “Type” references the lookup table “Software Type” […] The post Using Subselects with CQL in CMDBuilds “filter”…

databases

Jan Lelis 1 min read

Ruby has three default encodings. One of them is the default source encoding, which can be set using a magic comment in the file's first line, or in the second line if the first line is taken by a shebang. Default source encoding (UTF-8): p "".encoding #=> #<Encoding:UTF-8> With encoding comment (file_with_magic_comment.rb): # coding: cp1252 p "".encoding #=> #<Encoding:Windows-1252> See…

25 May 2015

Schakko 1 min read

CMDBuild is a free (“free” as in GPL v2) ITIL solution. The installation of the 2.3.1 version has been a pain in the ass. After applying the database information in the setup wizard, I always received an org.cmdbuild.exception.ORMException: ORM_GENERIC_ERROR. CMDBuild stores its log files (cmdbuild.log, cmdbuild_dd_sql.log) in the “logs” folder […] The post Trying to install CMDBuild and receiving an…

uncategorized

6 min read

Boring languages are underrated. Many appear to be rated quite highly, at least if you look at market share. But even so, they're underrated. Despite the popularity of Dan McKinley's "choose boring technology" essay, boring languages are widely panned. People who use them are too (e.g., they're a target of essays by Paul Graham and Joel Spolsky, and other people…

Jan Lelis 3 min read

Ruby clutters its objects a lot with methods for metaprogramming other methods: Class.instance_methods.grep /method/ => [:instance_methods, :public_instance_methods, :protected_instance_methods, :private_instance_methods, :method_defined?, :public_method_defined?, :private_method_defined?, :protected_method_defined?, :public_class_method, :private_class_method, :instance_method, :public_instance_method, :methods, :singleton_methods, :protected_methods, :private_methods, :public_methods, :method,

1 min read

Interpreters and compilers are interesting programs, themselves used to run or translate other programs, respectively. Those other programs that might be interpreted might be languages like JavaScript, Ruby, Python, PHP, and Perl. The other programs that might be compiled are C, C++, and to some extent Java and C#. Taking the time to do translation to native machine code ahead…

24 May 2015

Zoli Kahan 5 min read

The CoffeeScript Web Framework Zorium (source) is the web framework we use at Clay.io. This has been one of the most challenging projects I've worked on, with many great lessons learned. What follows is how Zorium came to be what it is today, and an explanation of design decisions in the framework. With Zorium (or any framework), the code is…

Jan Lelis 1 min read

If you change one line in Ruby's source, it will support goto statements! You can install a patched version via RVM's patch feature: $ rvm install 2.2.2 -n goto --patch http://git.io/vfxF2 $ rvm use 2.2.2-goto What to do to play around with this new feature? Let's reimplement this famous bug in Ruby: # prepare some dummy data hashCtx = hashOut…

23 May 2015

Jan Lelis 1 min read

Tired of good old, but slow Ruby? Try one of Ruby's successors: Name Compiles To Description Crystal Machine Fast Ruby Mirah JVM Fast Ruby in Java Opal JS Ruby for JavaScript CoffeeScript JS JavaScript for Rubyists Elixir BEAM Ruby for Erlang Scala JVM Multi-Paradigm Ruby Rooby Machine Simple Ruby Rubex Machine Ruby Extensions Ruby Goby Machine Go meets Ruby All…

22 May 2015

David Gee 8 min read

In this blog post David Gee, a Senior Product Manager on our Product team, discusses challenges to building and maintaining technical partnerships between organizations as well as provides advice on how to overcome those challenges. Every company comes to a point, early or late, where it realizes that it must partner with other companies to […]

software businessintegrationpartnershipplatform

Matthew Green 13 min read

In case you haven’t heard, there’s a new SSL/TLS vulnerability making the rounds. Nicknamed Logjam, the new attack is ‘special’ in that it may admit complete decryption or hijacking of any TLS connection you make to an improperly configured web or mail server. Worse, there’s at least circumstantial evidence that similar (and more powerful) attacks might already be … Continue…

attacksnsatls ssl

Ramon 1 min read

In this tutorial I’ll explain how to set a local gerrit server that hosts Android source code. After completing the tutorial you’ll have a fully runnable local AOSP mirror with local Gerrit server. First thing first. we need a Linux server. if you don’t have one available, you can use a pre-installed Ubuntu 15.04 Server I […]

androidaospgerritreporepo mirror

Dave Cheney 2 min read

This is a quick Friday blog post to talk about a recent experience I had working on a piece Juju code that needed to capture the data being sent over a net.Conn. Most Gophers know that the net package provides a net.Pipe function which returns a pair of net.Conns representing an in memory network connection. net.Pipe […]

goprogrammingmockingreaderstesting

Jan Lelis 1 min read

Ruby has a built-in feature that is much like Literate CoffeeScript. In contrast to it, this Ruby option will not ignore literature, but garbage: -x[directory] Tells Ruby that the script is embedded in a message. Leading garbage will be discarded until the first line that starts with “#!” and contains the string, “ruby”. Any meaningful switches on that line will…

21 May 2015

lukaseder 1 min read

Most of your code is private, internal, proprietary, and will never be exposed to public. If that’s the case, you can relax – you can refactor all of your mistakes, including those that incur breaking API changes. If you’re maintining public API, however, that’s not the case. If you’re maintaining public SPI (Service Provider Interfaces), … Continue reading Do Not…

javajava 8api evolutionspispi evolution

Jan Lelis 1 min read

Ruby's URI standard library contains a very sophisticated regex for matching URLs: "At https://idiosyncratic-ruby.com you can learn about the " \ "obscure parts of Ruby"[URI.regexp] # => "https://idiosyncratic-ruby.com" This regex is built in uri/rfc2396_parser.rb and looks like this: $ ruby -v ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux] $ ruby -r uri -e 'p URI.regexp' / ([a-zA-Z][\-+.a-zA-Z\d]*): (?# 1: scheme) (?:…

20 May 2015

Ruslan Spivak 32 min read

“We learn most when we have to invent” —Piaget In Part 2 you created a minimalistic WSGI server that could handle basic HTTP GET requests. And I asked you a question, “How can you make your server handle more than one request at a time?” In this article you will find the answer. So, buckle up and shift into high…

Jan Lelis 6 min read

A guide to Ruby's stdlib and available alternatives. Please note: The standard library was turned into gems, see stdgems.org for up-to-date information on all standard gems! Standard Library Overview Library Sources Description Alternatives abbrev mri Small library that finds the shortest abbreviation to identify one string amongst many - base64 mri Encodes and decodes strings to a Base64 representation. Implemented…

19 May 2015

lukaseder 1 min read

While the JVM is a stack-based machine, the Java language doesn’t really offer you any way to access that Stack. Even if sometimes, in rare occasions, it would be very useful. An example Method result values are put on the stack. If you look at the following example: If we ignore the halting problem, error … Continue reading How to…

javafinallyfinally-blockstack

Jan Lelis 3 min read

This episode takes a look at the unusual use of symbols in one of Ruby's core APIs: Enumerable#chunk The chunk method splits the receiver object into multiple enumerators, using the rule defined in the block. It keeps together the parts that match in series. It then passes the result of this rule and an enumerator of the successive elements to…

18 May 2015

1 min read

When addressing the question of what it means for an algorithm to learn, one can imagine many different models, and there are quite a few. This invariably raises the question of which models are “the same” and which are “different,” along with a precise description of how we’re comparing models. We’ve seen one learning model so far, called Probably Approximately…

Jan Lelis 3 min read

Ruby's Struct class is a convenient way to create Ruby classes, which already have some attributes defined. If you are not familiar with structs, you should watch Avdi Grimm's introduction to structs! But in many cases there is something better than structs: Gems that Define Attributes for "Plain Old Ruby Objects" Instead of using a specialized struct-class (which has different…

3 min read

In October 2014, Apple announced that all submissions to the App Store must include 64-bit support by June 1, 2015. The SoundCloud API for…

17 May 2015

8 min read

Here's a conversation I keep having: Someone: Did you hear that Facebook/Google uses a giant monorepo? WTF! Me: Yeah! It's really convenient, don't you think? Someone: That's THE MOST RIDICULOUS THING I've ever heard. Don't FB and Google know what a terrible idea it is to put all your code in a single repo? Me: I think engineers at FB…

Jan Lelis 3 min read

One of Ruby's goals was to replace popular unix stream editors like awk or sed, which both have the concept of manipulating files in a line-based manner. Ruby has the -n option for this: Causes Ruby to assume the following loop around your script, which makes it iterate over file name arguments somewhat like sed -n or awk. while gets…

16 May 2015

2 min read

It’s a bit of a sensationalistic title, but hear me out. And sorry for the boring-ish example in this article. This is designed to only excite people who really get it. :) AWS Lambda lets you run NodeJS code or any binary (or code of any language) as a fast starting and stopping EC2 instance. You can use it to,…

Jan Lelis 1 min read

Ruby allows you to change key functionality of the language. This means, it is also possible to break key functionality! Six examples of Ruby code you should never use: Undefining Core Methods The simplest way to change Ruby's global behavior is monkey patching: Nothing stops you from altering important core methods: class Module; undef append_features; end This line will break…

15 May 2015

Jan Lelis 1 min read

All Ruby syntaxes¹ that represent the R string literal: (1) Double Quoted Literal "R" (1) Single Quoted Literal 'R' (1) Single Char Literals ?R (9) Heredocs <<"STRING" R STRING <<'STRING' R STRING <<STRING R STRING <<-"STRING" R STRING <<-'STRING' R STRING <<-STRING R STRING <<~"STRING" R STRING <<~'STRING' R STRING <<~STRING R STRING (66) Percent Syntax / Q %Q\0R\0 %Q\x01R\x01…

14 May 2015

lukaseder 1 min read

Who doesn’t know them. The good old JFace dialogs in Eclipse that give you a visual representation of what is really a rather simple XML or properties file. In the case of m2e, it looks like this: Unfortunately, this screen is a bit slow to load, and it doesn’t offer much value beyond checking version … Continue reading Use This…

javaeclipsem2emaven

Jan Lelis 1 min read

There are two very different ways to create local variables in Ruby. You are probably familiar with the classical way: a, b = "$", "€" a # => "$" b # => "€" It is simple to understand and looks good. But Ruby would not be Ruby, if there weren't for more obscure ways to assign variables: You could rewrite…

blog.muffn.io (muffn_) 1 min read

Intro # BT is an alright ISP, I get good speeds (150D/40U), never get throttled and have yet to hear anything about my internet activity which involves a fair amount of P2P.. their hardware however is god awful, and the BT HomeHub 5 is no exception to that. I won’t go into how bad it is because if you’re reading…

13 May 2015

Moritz Dausinger 6 min read

illustration by Adrien Griveau Last week, Point Nine Capital invited the CTOs and VPs of Engineering of their portfolio companies. The event took place in Google’s offices in Berlin. I was flattered to get invited and had the opportunity of spending the day next to great people from famous startups such as Morten Primdahl , Co-founder and CTO at Zendesk,…

lukaseder 1 min read

We’re very happy to announce a guest post on the jOOQ Blog written by Daniel Dietrich, Senior Software Engineer at HSH Nordbank, husband and father of three. He currently creates a pricing framework for financial products as project lead and lead developer. Besides his work, he is interested in programming languages, efficient algorithms and data … Continue reading Functional Programming…

javajava 8daniel dietrichfunctional programmingvavr

Jan Lelis 1 min read

Ruby puts a lot of effort into its Enumerable module, offering a lot of different ways of iterating through collections. It is one of the reasons for Ruby's success, but you can also call it idiosyncratic, sometimes. This episode portraits enumerables' three handy slice_* methods. Slicing Enumerables Slicing lets you divide a collection into sub-collections. Take this array: a =…

12 May 2015

lukaseder 1 min read

Whenever you feel that itch… Can’t I calculate this with SQL? The answer is: Yes you can! And you should! Let’s see how… Calculating time differences between rows Let’s consider the following database containing timestamps (e.g. in a log database). We’re using PostgreSQL syntax for this: Obviously, you’ll be adding constraints and indexes, etc. Now, … Continue reading Use this…

sqlfirst valuelaglast valuelead

Jan Lelis 1 min read

Some of IRB's command-line options can be called idiosyncratic as well. Take math mode¹ as an example: It will require the infamous mathn library on start up: $ irb -m >> Math #=> CMath >> 3/2 #=> (3/2) >> !!defined?(Vector) #=> true ¹ Math mode actually has been removed in Ruby version 2.5 And another one surprised me: You can…

11 May 2015

Jan Lelis 2 min read

You are here for a collection of 10 advanced features of regular expressions in Ruby! Regex Conditionals Regular expressions can have embedded conditionals (if-then-else) with (?ref)then|else. "ref" stands for a group reference (number or name of a capture group): # will match everything if string contains "ä", or only match first two chars regex = /(.*ä)?(?(1).*|..)/ "Ruby"[regex] #=> "Ru" "Idiosyncrätic"[regex]…

10 May 2015

1 min read

Like my old post on git, this is somewhat a collection of useful Docker commands/tricks/whatever.

Jan Lelis 1 min read

Ruby's ENV object gives you access to environment variables. It looks like normal Ruby hash: ENV["TERM"] #=> "xterm" ENV["SOMETHING"] = "NEW" #=> "NEW" But this is only the surface. Turns out ENV is a special object: ENV.class #=> Object It is hash-like, but lacks some functionality: ENV.flatten # NoMethodError ENV.default = "MyNullObject" # NoMethodError Besides this, it behaves like an…

9 May 2015

Ramon 1 min read

I created pre-installed Ubuntu Server 15.04 64bit Virtualbox image to be used for various server side setups. It can be freely downloaded and used by you. all packages were updated to the current date (9/5/15). openssh server was installed and set to default port File can be downloaded from here: Link: UbuntuServer1504VboxImage.tar.bz2 MD5: eff64b08b8e2fc4ceb668a4e1a62b82d The […]

linuxubuntu 15.04ubuntu 15.04 virtualbox imageubuntu serverubuntu server virtual box image

Jan Lelis 2 min read

This is an overview of all the special, two-letter (and other) global variables in Ruby, which Ruby inherited from Perl. For the purpose of improving code readability, Ruby comes with English.rb in its standard library (or Deutsch.rb as gem), which provides non-cryptic aliases and some documentation. Ruby also defines some three-letter global variables that mirror CLI options ($-…) Types of…