~/devreads

6 Jul 2017

Schakko 1 min read

For our Ethereum mining rig a coworker of mine wrote a systemd template unit so it is relatively easy to configure which graphic card in the rig is assigned to whom. For each of the GPU owners exist a custom configuration file /etc/sysconfig/ethminer-$USERNAME (/etc/sysconfig/ethminer-ckl in my case). The file contains […] The post How to pass multiple parameters to systemd’s…

cryptocurrency

5 Jul 2017

3 Jul 2017

jgamblin 1 min read

I recently saw this SSH/HTTP(S) multiplexer on Github and tweeted that it looked amazing: An amazingly cool tool to run a webserver and a ssh on the same port: https://t.co/Z2eel3aIq5 — Jerry Gamblin (@JGamblin) July 2, 2017 A couple of people responded that you should be able to do the samething with HAProxy or something similar but my experience with…

uncategorized

lukaseder 1 min read

Notice, this issue has been fixed in Java 8 (8u222), thanks for the comment Zheka Kozlov In a recent article, I’ve shown that programmers should always apply a filter first, map later strategy with streams. The example I made there was this one: In this case, the limit() operation implements the filtering, which should take … Continue reading Are Java…

java 8flatmaplazy processinglazy streamstream

2 Jul 2017

Matthew Green 13 min read

One of the saddest and most fascinating things about applied cryptography is how little cryptography we actually use. This is not to say that cryptography isn’t widely used in industry — it is. Rather, what I mean is that cryptographic researchers have developed so many useful technologies, and yet industry on a day to day basis barely uses … Continue…

uncategorized

1 Jul 2017

30 Jun 2017

{"twitter"=>"hlaueriksson"} 3 min read

Content for the modern web development architecture: Headless CMS = Content Management System for JAMstack sites This blog post covers: Netlify CMS for a JAMstack site built with Hugo + jQuery + Azure Functions This blog post is part of a series: Building a JAMstack site with Hugo and Azure Functions Managing content for a JAMstack site with Netlify CMS…

29 Jun 2017

lukaseder 1 min read

In recent days, I’ve seen a bit too much of this: Something is very wrong with the above example. Can you see it? No? Let me rename those variables for you. Better now? Exactly. The above algorithm is O(N) when it could be O(1): (Let’s assume the lack of explicit ordering is irrelevant) I’m working … Continue reading A Basic…

javasqlalgorithmic complexityperformancestream

28 Jun 2017

lukaseder 1 min read

In this article, I will establish how the SQL language and its implementations distinguish between changed values and modified values, where a changed value is a value that has been “touched”, but not necessarily modified, i.e. the value might be the same before and after the change. Many ORMs, unfortunately, either update all of a … Continue reading ORMs Should…

javasqlactive recordhibernatejooq

10 min read

A method for signing in to a device that doesn’t have a keyboard When we were developing our SoundCloud app for Xbox One, something became very obvious during usability testing: signing in with a game controller really sucks. Entering text requires navigating a virtual keyboard to individual letters, numbers, and characters one at a time – such a nightmare! Plus,…

27 Jun 2017

1 min read

We all love to write new stuff and learn about things. But when we’ve got to do something in one of the older applications we’d rather avoid it and lag as long as possible hoping that someone else will handle it. You shouldn’t be afraid of legacy code (as long it is not ball of mud). You should take the…

26 Jun 2017

Stanko 1 min read

I use the same wallpaper for a long time now. But with high resolution displays, wallpaper started to look blurry and noisy, so I stopped using it. But recently, my girlfriend reminded me of this great website which super-scales images using magic. Ok, not magic, but it uses "Deep Convolutional Neural Networks", which is pretty much the same thing. Results…

25 Jun 2017

jonskeet 5 min read

9 days ago, I posted Imposter Syndrome (part 1) and then immediately listened to Heather Downing‘s excellent NDC talk on the topic. This is the “reflections afterwards” post I’d expected to write (although slightly more delayed than I’d hoped for). I’m not going to try to recap Heather’s talk, because that wouldn’t do justice to … Continue reading Imposter Syndrome…

general

23 Jun 2017

Stanko 5 min read

On the frontend, we do a lot of animations. Most of the simple animations I create by using CSS transitions. Either I will change class or inline style of the element, and define transitions in CSS file. Easiest way to do this in React is to render initial state, and then when it renders, change the state to apply class…

22 Jun 2017

1 min read

As a fun side project to distract me from my abysmal progress on my book, I decided to play around with the math genealogy graph! For those who don’t know, since 1996, mathematicians, starting with the labor of Harry Coonce et al, have been managing a database of all mathematicians. More specifically, they’ve been keeping track of who everyone’s thesis…

21 Jun 2017

20 Jun 2017

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. I’m very excited to … Continue reading jOOQ Tuesdays:…

jooq-tuesdayscouchbasedocument databasesgerald sangudijooq tuesdays

Dave Cheney 2 min read

This is a short post describing the procedure for discovering which version of Go was used to compile a Go binary. This procedure relies on the fact that each Go program includes a copy of the version string reported by runtime.Version() . Linker magic ensures that this value will be present in the final binary irrespective […]

goprogramminggdbldbllvm

11 min read

Once upon a time, we had a single monolith of software, one mothership running everything. At SoundCloud, the proliferation of microservices came from moving functionality out of the mothership. There are plenty of benefits to splitting up features in this way. We want the same benefits for our data as well, by defining ownership of datasets and ensuring that the…

19 Jun 2017

18 Jun 2017

Dave Cheney 7 min read

In my previous post I discussed my concerns the additional complexity adding generics or immutability would bring to a future Go 2.0. As it was an opinion piece, I tried to keep it around 500 words. This post is an exploration of the most important (and possibly overlooked) point of that post. Indeed, the addition of […]

goprogramminggenericsimmutability

16 Jun 2017

3 min read

This year I had the privilege of attending WWDC for the first time. I knew the labs were very important, and I want to share a resolution to fix a problem for our big project at Peak: Autocompletion on Swift code was not working most of the time in the IDE, and with the help of an Apple engineer in…

jonskeet 5 min read

Note: this is a purely personal post. It has no code in. It’s related to the coding side of my world more than the rest of who I am, so it’s in my coding blog, but if you’re looking for code, just move on. As part of a Twitter exchange, I discovered that Heather Downing … Continue reading Imposter syndrome…

general

15 Jun 2017

1 min read

At Datadog we see and gather metrics everywhere by using Datadog to monitor our applications and infrastructure. So our team thought it’d be fun to come up with creative solutions to “where can we display metrics?”

14 Jun 2017

Dave Cheney 2 min read

Fifteen years ago Python’s GIL wasn’t a big issue. Concurrency was something dismissed as probably unnecessary. What people really was needed was a faster interpreter, after all, who had more than one CPU? But, slowly, as the requirement for concurrency increased, the problems with the GIL increased. By the time this decade rolled around, Node.js and […]

goprogrammingsmall ideasgenericsgo2.0

13 Jun 2017

1 min read

I don’t really do technical interviews anymore, I am lucky to be able to rely on a great VP of engineering and team that take care of the process. I still meet with the candidates but I do that more as a way for us to get to know each other and to answer their questions from both a CTO…

2 min read

The Release Engineering team fully-automated the publication of Firefox for Android in version 53.0. Let’s see what was already there and how things have changed since version 53.0. The initial publication was the first big step of the project. The next big one will be to expand the release workflow to simplify .what percentage of the user base is getting…

1 min read

One step towards building safe AI systems is to remove the need for humans to write goal functions, since using a simple proxy for a complex goal, or getting the complex goal a bit wrong, can lead to undesirable and even dangerous behavior. In collaboration with DeepMind’s safety team, we’ve developed an algorithm which can infer what humans want by…

safety alignment

13 min read

Which is faster, keyboard or mouse? A large number of programmers believe that the keyboard is faster for all (programming-related) tasks. However, there are a few widely cited webpages on AskTog which claim that Apple studies show that using the mouse is faster than using the keyboard for everything and that people who think that using the keyboard is faster…

1 min read

Some time ago I noticed new library in our code base - Random Beans which as the name suggests is a tool developed to easily create random data and random objects for testing purposes. Unfortunately, we used it in the wrong way. Here’s how we backed up from the random test data to regain control over testing. Read more

12 Jun 2017

Nikita Sobolev 3 min read

When npm@5 was just released this question was the first one I have googled. No doubts it comes to mind since new npm version introduced a lot of yarn’s features. In other words: should I still use yarn after installing npm@5? Yarn features Why do people use yarn in the first place? npm had some known issues. Well, we all…

javascriptsoftware-developmentweb-development

Jack Tarantino 7 min read

It's time that we took back our work day from our calendars and Calendar Tetris is the first thing that has got to go. Calendars are a tool and like every tool they should be used appropriately. What is "Calendar Tetris"? Does your calendar look like a Jackson Pollack painting?

calendar tetrisagilebest practices

jgamblin 1 min read

Often while doing research I need temporary access to a bunch of different virtual machines. While it is possible to do this on my Macbook using VMWare Fusion or Virtualbox the overhead seems unnecessary for something I will delete in under a week. My goto solution is a virtualization stack of: 16GB DigitalOcean Droplet + Wok + Kimchi Here is…

careerhacking

5 min read

The Release Engineering team fully-automated the publication of Firefox for Android in version 53.0. Let’s see what was already there and how things have changed since version 53.0. This part is more oriented to personal takeaways and a couple of questions that remain unanswered. A few checks done in pushapk_scriptworker are actually because of previous errors. The number of locales…

1 min read

This post is a sequel to Formulating the Support Vector Machine Optimization Problem. The Karush-Kuhn-Tucker theorem Generic optimization problems are hard to solve efficiently. However, optimization problems whose objective and constraints have special structure often succumb to analytic simplifications. For example, if you want to optimize a linear function subject to linear equality constraints, one can compute the Lagrangian of…

11 Jun 2017

1 min read

Back when I was an undergraduate, as part of a class called “Computer Systems Engineering”, we read numerous classic papers of systems design. I enjoyed and learned a great deal from many of these papers, but one that paper that has stuck with me in particular was Saltzer et al’s “End-to-End Arguments in Systems Design”. The paper is a very…

jgamblin 1 min read

I love OWASP (I wanted to get that out of the way) but they let their TLS certificate expire yesterday: Should it have happened to an organization whose whole goal is to secure web applications? No. There are a million reasons why their TLS certificate could have expired and plenty of reasons it shouldn’t have (OWASP uses letsencrypt for their…

uncategorized

Dave Cheney 7 min read

This is a thought experiment, what would Go look like if we could no longer declare variables at the package level? What would be the impact of removing package scoped variable declarations, and what could we learn about the design of Go programs? I’m only talking about expunging var, the other five top level declarations would […]

goprogrammingsmall ideas

9 Jun 2017

lukaseder 1 min read

It was hard to limit ourselves to 10 Nice Examples of Writing SQL in Kotlin With jOOQ, recently, because the Kotlin language has many nice little features that really help a lot when working with Java libraries. We’ve talked about the nice with() stdlib function, which allows to “import” a namespace for a local scope … Continue reading Using Kotlin’s…

kotlindynamic sqljavajooq

8 Jun 2017

1 min read

Multiagent environments where agents compete for resources are stepping stones on the path to AGI. Multiagent environments have two useful properties: first, there is a natural curriculum—the difficulty of the environment is determined by the skill of your competitors (and if you’re competing against clones of yourself, the environment exactly matches your skill level). Second, a multiagent environment has no…

research

1 min read

Recently we extended the Datadog Agent to support extracting additional metrics from Kubernetes using the kube-state-metrics via protobufs.

7 Jun 2017

5 min read

The Release Engineering team fully-automated the publication of Firefox for Android in version 53.0. Let’s see what was already there and how things have changed since version 53.0. Mozilla, and more specifically the Release Engineering team, uses to implement the Firefox release workflow. The workflow can be summed up as:Taskcluster Each step is defined by its own set of tasks.…

25 min read

I often talk to startups that claim that their compensation package has a higher expected value than the equivalent package at a place like Facebook, Google, Twitter, or Snapchat. One thing I don’t understand about this claim is, if the claim is true, why shouldn’t the startup go to an investor, sell their options for what they claim their options…

6 Jun 2017

1 min read

The primary job of a CTO is to leverage technology to empower the business and the team. Sometimes that means making boring but safe choices, sometimes that means more risky or controversial choices. I am starting a new series to discuss some of the bets we are making at Splice and the thinking behind those choices. Realizing that some of…

2 min read

The Release Engineering team fully-automated the publication of Firefox for Android in version 53.0. Let’s see what was already there and how things have changed since version 53.0. This is true for desktop (Windows, Linux, Mac) and Android. However, we don’t ship that often to every user. We have different channels, receiving updates at different frequencies: You may have heard,…

10 min read

img.otter { max-height: 220px !important; } iframe.otter { height: 250px; width: 100%; margin: 0 auto; border: 5px solid #E0F7FA; border-radius: 3px; } iframe.otter-two { width: 100%; height: 320px; border: 5px solid #E0F7FA; border-radius: 3px; padding: 0px 10px; } I work on a library called Polymer, which helps you write web components faster and easier. This is awesome, but it’s only…

5 Jun 2017

Gary Spillman 12 min read

A while ago, I published a blog post that presented a tutorial overview of how to use Jmeter for load testing a typical RESTful API. This post builds upon that original post with handy information on some updated reporting features of Jmeter as well a quick dive into how you can better propagate your load […]

uncategorized

1 min read

The hypothesis and the setup This blog post has an interactive demo (mostly used toward the end of the post). The source for this demo is available in a Github repository. Last time we saw how the inner product of two vectors gives rise to a decision rule: if $ w$ is the normal to a line (or hyperplane) $…

1 min read

Payment processing presents many obstacles for the modern SaaS company. From managing failed transactions effectively to handling payments smoothly across different devices --there’s no shortage of challenges to deal with..

2 Jun 2017

Dominic Steinitz 35 min read

Introduction Summary Back in January, a colleague pointed out to me that GHC did not produce very efficient code for performing floating point abs. I have yet to produce a write-up of my notes about hacking on GHC: in summary it wasn’t as difficult as I had feared and the #ghc folks were extremely helpful. … Continue reading Haskell for…

haskellllvmnumerical methodsnumerics

lukaseder 1 min read

ANOTHER SQL Post this week? I got nerd-sniped: Lazy Internet: In Oracle, how do i query for where (A, B, C) in (('a', 'b', null), 'a', null, 'c') considering Oracle's null handling? — Rafael Winterhalter (@rafaelcodes) June 2, 2017 Oooooh, challenge accepted! So, let’s assume we have a table T with columns (A, B, C) … Continue reading How to…

sqlexists predicatein predicateintersectnull

1 Jun 2017

lukaseder 1 min read

The following two indexes are redundant in most SQL databases: It is usually safe to drop the first index, because all queries that query the LAST_NAME column only can still profit from the second index I_ACTOR_2. The reason being that LAST_NAME is the first column of the composite index I_ACTOR_2 (it would be a different … Continue reading How to…

sqlindexingoracleperformancepostgresql

31 May 2017

{"twitter"=>"hlaueriksson"} 4 min read

Modern web development architecture: Static site generators + JavaScript + Serverless = JAMstack This blog post covers: Hugo + jQuery + Azure Functions = JAMstack This blog post is part of a series: Building a JAMstack site with Hugo and Azure Functions (this post) Managing content for a JAMstack site with Netlify CMS The example used in this blog post…

Edward Faulkner 1 min read

“A lot of beginners under-appreciate the degree to which googling things is part of a programmer’s job,” says @steveklabnik #wednesdaywisdom pic.twitter.com/FnXo3rBfPb — Glitch (@glitch) May 31, 2017 That quote is true, and it's a specific example of a more general

lukaseder 1 min read

I stumbled upon an interesting question on Stack Overflow recently. A user wanted to query a table for a given predicate. If that predicate returns no rows, they wanted to run another query using a different predicate. Preferably in a single query. Challenge accepted! Canonical Idea: Use a Common Table Expression We’re querying the Sakila … Continue reading How to…

sqlcommon table expressionoraclepostgresqlsql performance

8 min read

.highlight .err { color: inherit; background-color: inherit; } .highlight .s1, .highlight .s { color: #336699; background: inherit; } pre { margin-bottom: 30px; } pre, code { background: #f4f6f8; } p > code, li > code { font-weight: bold; } pre { border-bottom: solid 1px #CFD8DC; } This is a cheat sheet for the Polymer 2.x library. If you’re looking for…

1 min read

Clang-Tidy is a linter from the LLVM ecosystem. I wanted to try to run it on the Linux kernel to see what kind of bugs it would find. The false positive rate seems pretty high (a persistent bane to static analysis), but some patching in both the tooling and the source can likely help bring this rate down. The most…

1 min read

Some time ago I’ve been trying to dynamically create spring beans. After fast stackoverflow check I decided to drop it and go with something else. Lately I’ve been trying to implement more complicated bean registration mechanism in which skipping dynamic bean creation wasn’t an option. Here’s how you can create spring beans “from code”. Read more

30 May 2017

Jan Heuermann 5 min read

Recently three of our developers attended the CSSconf 2017 in Berlin. The talks have been inspiring for us and once again we got clear about what a mature language CSS has become by now. The steady addition of new features continue to amaze and the enthusiasm of the community is infectious. The conference itself was […]

frontendproductdesignhow we work

Michael Carroll 1 min read

How to use the XHR module with Functions to trigger webhooks and integrate 3rd party webservices directly into your data streams.

lukaseder 1 min read

Users of jOOQ, PL/SQL, T-SQL are spoiled as they hardly ever need to worry about bind values. Consider the following statements: Using jOOQ The method parameters firstName and lastName will be automatically mapped to bind values in the generated SQL statement. Here’s the debug log output when running the above, where the first statement is … Continue reading When to…

sqlbind parametersbind variableshibernateinline values

29 May 2017

jgamblin 2 min read

Have you ever wanted to control a vast medium small network of Honeypots but only had an hour and about $40 a month to spend on your project? So did I! So with the help of Digital Ocean and Anomali‘s Modern Honey Network we can now do it! For a basic distributed Cowrie network you will need: 1 – $20…

uncategorized