~/devreads

21 Mar 2016

Stanko 2 min read

Generally when comes to replacing native UI components, I'm strongly against it. But, we've all been there, when the client insists on it. You'll see how to style it via CSS (webkit only), apply pure JavaScipt plugin with native scrolling or apply simple CSS hack. Well, let's go :) CSS solution, but only for webkit # Webkit scrollbars can be…

18 Mar 2016

Nazneen Rupawalla 1 min read

Part One of this series talks about how effectively intent filters could help you avoid the Confused Deputy problem when developing an Android App. In the second part, I discuss how to securely implement a Broadcast Receiver when developing an Android App.

17 Mar 2016

Jacob Kaplan-Moss 15 min read

Today, we’re thrilled to host Jacob Kaplan-Moss. Jacob’s a former Herokai and long-time core contributor to Django, and he’s here to share an in-depth look at something that he believes will define the future of the framework. Django Channels allows Python developers to build real-time, asynchronous web apps with Python and JavaScript. It augments Django’s […] The post Django Channels:…

newsapp architecturedeveloper toolsdjangopython

lukaseder 1 min read

Too many programmers think SQL is a bit of a beast. It is one of the few declarative languages out there, and as such, behaves in an entirely different way from imperative, object-oriented, or even functional languages (although, some say that SQL is also somewhat functional). As a SQL trainer (do visit our training, it’s … Continue reading 10 Easy…

sqldeclarative programmingfunctional programmingrelational algebrasql language

Aneesh Lele, Anupam Kundu 1 min read

If you lead a traditional investment management organization, the storm surrounding the industry may look and feel like what the music and media industries have been facing for 15 years. The transition from disks to downloads and streaming have transformed the music industry. We are witnessing a similar seismic shift that will reshape the century-old banking business model. Changing customer…

Joe Hall 1 min read

This isn't your typical story about the low numbers of women in the technology space or the wage disparities for those workers. I'd like to share from the viewpoint of someone who doesn't really care. Someone who's been willfully ignorant of the statistics and the personal stories behind those numbers. My name is Joe. I'm a software developer. I love…

16 Mar 2016

4 min read

I do a lot of recruiting and have given maybe 50 offers in my career. Although many companies do, I never put a deadline on any of them. Unfortunately, I’ve often ended up competing with other companies who do, and I feel really bad that this usually tricks younger developers into signing offers. On numerous occasions, I’ve gotten an email…

15 Mar 2016

lukaseder 1 min read

Here we go again. THAT TOPIC. But hang on. The approach discussed here (and in the Ceylon language) is not something you see every day. At the same time, it is very cunning. Nulls are baked into the language … or so it may seem. Indeed, in Ceylon, like in Kotlin (and possibly many other … Continue reading Ceylon Might…

ceylonkotlinnullnull pointernullpointerexception

14 Mar 2016

Jafari Sitakange 1 min read

So you receive this unpleasant notification that a server is unreachable. You follow your usual quick fix routines (for example: flip through the logs to see what has happened), only to find out that the server has actually crashed. You freeze! Immediately, you get flashbacks of the hustle that you had to go through while trying to configure that server.…

12 Mar 2016

2 min read

(This is not a very relevant/useful post for regular readers – feel free to skip. I thought I would share it so people can find it on Google.) My blog blew up twice in a week earlier this year when I landed on Hacker News. The first time I was asleep so I didn’t notice that the site went down.…

Stanko 1 min read

I needed simple React slider component, as we are building our new website as a universal React application. But I did not find anything lightweight. There is a crazy trend in JavaScript world - add gazillion dependencies. So again, I made something myself. Check the demo. It has no dependencies, and about 200 lines of code. Very simple and extensible.…

11 Mar 2016

Neal Ford, Rebecca Parsons 1 min read

The microservice architectural style is taking the world by storm. Last March, O'Reilly hosted their first Software Architecture Conference, and a huge percentage of the abstracts the program committee received touched on some aspect of microservices. Why is this architectural style suddenly all the rage?

10 Mar 2016

lukaseder 1 min read

News could hardly get more exciting than this, for a programming language aficionado! There is now a JEP 286 for Local-Variable Type Inference with status “Candidate”. And a request for feedback by Brian Goetz, which I would love to invite you to participate in: http://mail.openjdk.java.net/pipermail/platform-jep-discuss/2016-March/000037.html Please do so, the survey remains open only from March … Continue reading Java 10’s…

javajava 8declaration-site variancejava alocal variable type inference

9 Mar 2016

lukaseder 1 min read

A lot of developers get the distinction between JOIN and SEMI-JOIN wrong. Let me explain… What are JOIN and SEMI-JOIN A little bit of relational algebra first. What is an (INNER) JOIN? An JOIN is nothing but a filtered cartesian product. And what is a cartesian product? Wikipedia explains this very nicely: for sets A … Continue reading SQL JOIN…

sqlcartesian productcross joincross productexists

Matthew Creager 8 min read

Whether they’re publishing notifications, responding to /slash commands or carrying a conversation, bots have become an integral part of the way we work with Slack. A bot can do any number of things for your team as part of your day-to-day work, you’re only limited by your imagination. For some first-hand experience, check out the […] The post How to…

newsdeveloper toolsnode.jsslack

1 min read

We finally got a decent recording of one of my favorite talks. This one is about our Incremental library (which I wrote about here), and in particular about the story of how we got to the present, quite performant, implementation.

8 Mar 2016

7 Mar 2016

lukaseder 1 min read

Good decisions come from experience. Experience comes from making bad decisions. ― Mark Twain Today, let’s look at one piece of experience and how we can turn that into good decisions when implementing UI logic. Please, all UI developers read this. The bad decision When UI developers display tabular data, it is very common for … Continue reading UI Developers!…

javaascendingdefault sortingdescendingsort order

Henrik Warne 5 min read

When I graduated from university with a degree in Computer Science, I wanted to continue and get a Ph.D. But I also wanted to work as a software developer, so I worked for five years in industry before going back … Continue reading →

learningprogrammingworkph.d.

Abigail Bangser 1 min read

An analyst writing a DevOps article. Not what you expected? That is exactly the issue I want to tackle here. We have all heard the stories of QAs who ring bells when they find defects, and we are not surprised when developers on those teams are scared of (or annoyed by) interacting with them. In contrast, teams that truly believe…

Suzi Edwards-Alexander 1 min read

Every six months or so, we publish our Technology Radar. The radar sets out the changes that we think are currently interesting in software development, the things in motion that we think you should pay attention to and consider using in your projects. It reflects the opinion of our Technology Advisory Board, and is based on our day-to-day work and…

6 Mar 2016

1 min read

When designing a new software project, one is often faced with a glut of choices about how to structure it. What should the core abstractions be? How should they interact with each other? In this post, I want to argue for a design heuristic that I’ve found to be a useful guide to answering or influencing many of these questions:…

5 Mar 2016

0xADADA 34 min read

In the style of Michael Chladek, I thought it would be useful to my future-self and others, if I wrote up a summary of installing Arch Linux on Apple MacBook hardware. Of course there are other guides out there, but this one is specific to the needs of someone looking for a minimalist, reproducible, secure, performance oriented installation of Arch…

projectsopen-sourcelinux

4 Mar 2016

2 Mar 2016

Joe Kutner 5 min read

A common challenge when building microservices is providing a unified interface to the consumers of your system. The fact that your services are split into small composable apps shouldn’t be visible to users or result in substantial development effort. To solve this problem, Netflix (a major adopter of microservices) created and open-sourced its Zuul proxy […] The post Using Netflix…

news

Peter Cho 1 min read

Last week MailChimp announced that they are shutting down the Mandrill Heroku Add-on, giving users until April 27th to migrate to another solution. Many of our customers have sought guidance on how and where to migrate, so we have asked our email providers to create guides for migrating from the Mandrill add-on to their respective […] The post Migrating from…

news

5 min read

Here’s a conclusion I’ve made building consumer products for many years: the speed at which a company innovates is limited by its iteration speed. I don’t even mean throughput here. I just mean the cycle time. Invoking Little’s law this is also related to the total inventory of features not being deployed yet. In a hypothetical scenario, clone two teams…

1 Mar 2016

lukaseder 1 min read

With jOOQ 3.7, we have finally added formal support for Java 8 features. This opened the door to a lot of nice improvements, such as: Creating result streams Calling statements asynchronously (jOOQ 3.8+) But obviously, we didn’t want to disappoint our paying customers who are stuck with Java 6 because of their using an older … Continue reading How to…

javajava 8java 9apijava 6

Matthew Green 11 min read

To every thing there is a season. And in the world of cryptography, today we have the first signs of the season of TLS vulnerabilities. This year’s season is off to a roaring start with not one, but two serious bugs announcements by the OpenSSL project, each of which guarantees that your TLS connections are … Continue reading Attack of…

attackstls ssl

Damien Mathieu 1 min read

I spend most of my time at Heroku working on our support tools and services; help.heroku.com is one such example. Heroku’s help application depends on the Platform API to, amongst other things, authenticate users, authorize or deny access, and fetch user data. So, what happens to tools and services like help.heroku.com during a platform incident? […] The post Incident Preparation:…

engineeringapisdeveloper toolsperformance optimization

207 min read

These are archived from the now defunct su3su2u1 tumblr. Since there was some controversy over su3su2u1's identity, I'll note that I am not su3su2u1 and that hosting this material is neither an endorsement nor a sign of agreement. Harry Potter and the Methods of Rationality full review I opened up a bottle of delicious older-than-me scotch when Terry Pratchett died,…

37 min read

These are archived from the now defunct su3su2u1 tumblr. A Roundabout Approach to Quantum Mechanics This will be the first post in what I hope will be a series that outlines some ideas from quantum mechanics. I will try to keep it light, and not overly math filled- which means I’m not really teaching you physics. I’m teaching you some…

1 min read

In my previous post I wrote about Flambda, which is the single biggest feature coming to OCaml in this release. In this post, I’ll review the other features of 4.03 that caught my eye.

29 Feb 2016

Stanko 1 min read

People need to realize that is not enough to have a nice website with a ton of animations and effects. There is no point having such a website if I can't scroll it, while CPU and coolers go crazy. And I use latest MacBook with maxed hardware. Can't imagine trying to use those websites on the old machine (or IE8-9).…

Danielle Erickson, Rae Abileah 1 min read

Thoughtworkers in North America sent a message to the UN Climate Summit (COP21) in Paris last December by creating “Climate Ribbons” reminding negotiators what we stand to lose if a binding carbon-reduction treaty does not succeed. Their ribbons were part of a massive art installation that was central to events surrounding the UN Summit, called the Climate Ribbon, co-organized by…

Aneesh Lele, Anupam Kundu 1 min read

Senior executives at two of the world’s largest asset management firms recently told us that the industry is filled with bloated enterprises...companies that are designed to move slowly, where good ideas die at the hands of local fiefdoms and bureaucratic decision-making. Their chief complaint? Slow and insufficient response to market changes. Read part one in our four-part series exploring the…

27 Feb 2016

Stanko 2 min read

Please note that I'm not using Jekyll anymore, so this post might be outdated. Update, November 2017 # I don't use this setup anymore, it might be outdated, proceed with caution. Original post # As you probably know this blog is powered by Jekyll. It is a really nice platform, but it lacks a few things I'm used to during…

Stanko 1 min read

Please note that I'm not using Jekyll anymore, so this post might be outdated. It is nice to use post.excerpt instead of post.content on your Jekyll home page, but then users can't see if there is more to read until they open the whole post. To add Read more link, you can use this simple snippet. {% if post.excerpt !=…

26 Feb 2016

Nahid Samsami 2 min read

Today we are introducing Add-on Controls for Heroku Enterprise customers. This new feature enables team leads to allowlist specific add-ons for approved use within their organization, choosing from our marketplace of over 150 add-on services. The ability to standardize the add-on technologies being used across all the apps and developers in their organization is something […] The post Introducing Add-on…

news

25 Feb 2016

Per Fragemann 9 min read

Keeping client and server in sync can be tough when building a single page app, and involves tons of boilerplate code. In this write up we’ll combine the best of two worlds by hooking up Angular 2 with Relay, making your workday much more fun and productive! This technology is so promising, that we’re running an […]

frontend

lukaseder 1 min read

If you’re programming in more advanced languages like Scala or Ceylon, or even JavaScript, “nested functions” or “local functions” are a very common idiom to you. For instance, you’ll write things like fibonacci functions as such: (Question from Stack Overflow by Aaron Yodaiken) The f() function contains a nested g() function, which is local to … Continue reading (Ab)using Java…

java 8scalajavalocal functionlocal method

1 min read

2016 was another record breaking year for Direct Debit in the UK. Find out how flexible Direct Debit solutions have opened up the system to businesses of all sizes

1 min read

Back in September, Codinghorror wrote a popular post on the state of android Javascript performance on Discourse’s Meta forum. It drew a lot of attention, and led to some fascinating discussions on our forum and behind the scenes with browser engineers. The poor performance of Discourse on Android was already old news to us at that point: we started paying…

24 Feb 2016

Kenneth Reitz 2 min read

A big update to the beloved Python web framework known as Django was released recently: Django 1.9. This release contains a long list of improvements for everything from the graphical styling of the admin to the ability to run your test suite in parallel. Our favorite improvements to the framework were, of course, all about […] The post Django 1.9’s…

newsdatabasedjangopostgresproduct features

Ben Melbourne 1 min read

Working as part of an agile development team for the first time can be difficult for UX Designers. You need to adjust the way you work and find a different rhythm. This transition can be difficult to make as it’s often about subtle differences rather than a complete change of job. You’re still solving the same problems and doing the…

23 Feb 2016

Stanko 1 min read

Again, I've seen it somewhere on the internet and recreated it. This one uses jQuery, although I plan to rewrite it to vanilla JavaScript. It switches between two sides of the cube, every time you hover. Depending from which side cursor entered the cube, it will rotate in opposite direction. It is fully responsive, and on touch devices, direction depends…

Srinivas Murty 1 min read

It is very easy to forget about performance testing and its importance while delivering software under tight deadlines. It is also a challenge to convince the client to start with performance testing right from the beginning of the project, rather than treat it as a second class citizen.

1 min read

If you know some Sass, you're probably a lot further than you think to understanding and diving into the world of modern JavaScript. This post showcases some of the similarities.

22 Feb 2016

lukaseder 1 min read

This has caught me by surprise. After studying the Kotlin language to learn about how to best leverage this interesting new language for jOOQ, I stumbled upon this puzzler. What do you think the following program will print? fun main(args: Array) { (1..5).forEach { if (it == 3) return print(it) } print("done") } Well… You … Continue reading A Very…

kotlinclosurelambdalambda expression

Stanko 1 min read

Please note that I'm not using Jekyll anymore, so this post might be outdated. Jekyll comes with simple pagination which has only Newer and Older links. I wanted a little bit more, now pagination shows at least five pages, with current in the middle. On the larger screens there are also first and last page links. Newer and Older links…

Stanko 1 min read

Well I saw a pretty nice mockup on Dribbble and decided to make it for fun. It didn't include a mobile/responsive solution, so I came up with my own. Check the demo. This is a pure CSS solution - it uses the :target selector for changing states. Find more about :target on MDN. This is neat, as it also can…

Johannes Thönes 1 min read

“Different clients have different needs and they expect something different from you. If you have only one API gateway trying to fulfill all requirements, it gets messy,” explains Lukasz Plotnicki, software developer and Thoughtworker from Hamburg.

Ken Collier 1 min read

After gazing into my magic crystal ball for the first two months of 2016, I can now confidently (with 63.4% ± 42.3657 certainty) predict what’s going to be hot in 2016 in the world of data. Since it’s unlikely that anyone else in the entire tech community is writing an article like this, I feel compelled to share my prescient…

21 Feb 2016

Stanko 1 min read

Everything starts with a Hello World so does this blog. In the first couple of weeks, everything will be under heavy development, until I get it the way I want. As I really enjoy making stuff, I decided to try to make small JavaScript or CSS (SASS) plugin/script every week. Those are going to be both big and small, proof…

19 Feb 2016

Edward Muller 5 min read

Go-kit is a distributed programming toolkit for building microservices. It solves the common problems encountered while building distributed systems, so you can focus on your business logic. This article starts with a bit of background on microservices, then guidance on how to get started with Go-kit, including instructions on getting a basic service up and […] The post Microservices in…

newsapp architecturedeveloper toolsgo

1 min read

Recently I became enamored with The Witness and after thinking about the game for a long time decided to sit down and record a little essay about it. Check it out below!

18 Feb 2016

lukaseder 1 min read

Have you been writing a lot of code following the Mute-Design-Pattern™ lately? E.g. There’s an easier way with Java 8! Just add this very useful tool to your Utilities or Helper class: Now you can wrap all your logic in this nice little wrapper: Done! Even better, in some cases, you can use method references

javajava 8trick

blog.muffn.io (muffn_) 1 min read

Surprisingly, I don’t have any backups of my stuff. Apart from my Microserver Gen8 FreeNAS replication project which was necessary for my photos and personal media I don’t have any backups of my VM hosts, laptops or machines I use everyday which is very, very bad. A lot of my stuff is stored on RAID or RAID-like systems which I…

17 Feb 2016

Matthew Creager 3 min read

Based in Tel Aviv, Israel, Vitali Margolin is the Head of R&D for Roomer. Vitali leads a team of seven developers who built and operate the travel marketplace www.roomertravel.com and the travel protection service Life Happens, both running on Heroku. What are you running on Heroku? The four big projects are: the Roomer website, our […] The post Building a…

newscustomersproduct featuresredisruby

16 Feb 2016

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-tuesdaysdb2glenn paulleyhanaibm

Sunil Mundra 1 min read

By definition, Distributed Development is difficult due to the ‘tyranny of distance’. In fact, in the early days of Agile adoption, some purists believed that Agility and Distributed Development could not coexist, going by this principle - “The most efficient and effective method of conveying information to and within a development team is via face-to-face conversation”. Distributed Development is a…

15 Feb 2016

1 min read

I'm often asked by other developers about parts of the pixel workflow, and what fires when and why, so I figured it might be worth putting up a little reference for what's involved in shipping pixels to screen.

pixels

14 Feb 2016

12 Feb 2016

kevin 2 min read

This is a pretty common task: encode JSON and send it to a server, decode JSON on the server, and vice versa. Amazingly, the existing resources on how to do this aren't very clear. So let's walk through each case, for the following simple User object: type User struct{ Id string Balance uint64 } Sending […]

code

11 Feb 2016

Ike DeLorenzo 4 min read

Today is a big day for Heroku Pipelines — our continuous delivery feature that provides a visual sequence of app environments in which to test, stage, and deliver code through to production. Pipelines is now released for General Availability (GA). Heroku Pipelines provides teams of all sizes a new way to visualize and manage the […] The post Heroku Pipelines…

newscontinuous integrationdeveloper toolsheroku flow

lukaseder 1 min read

Some APIs are set in stone. For instance, the JDK’s. Or public APIs, like the one between a database and a database client (e.g. JDBC). This makes designing such APIs rather difficult as a lot of thinking needs to be done prior to publishing an API. Which means that being defensive when designing the API … Continue reading Dear API…

javaapi designparameter objectreturn object

1 min read

CSS Filters are awesome, but you can't do individual channel manipulation with them. Enter: feColorMatrix, SVG filter effect method that allows for really in-depth pixel value manipulation for even better image filters.

10 Feb 2016

9 Feb 2016

lukaseder 1 min read

This is usually a tech blog, but every now and then, we make an exception when there’s something important to say. Today, I’m going to criticise a lot of our industry’s understanding of support. Who is this article for? It’s for every software engineer giving support to users and/or customers, and every manager who works … Continue reading The 5…

businesscustomerssupporttech supportusers

kevin 2 min read

You might want/need to check out repos locally as several different Github users. For example, my Github account is kevinburke, but I push code at work as kevinburkeshyp. If I could only commit/push as one of those users on each machine, or I had to manually specify the SSH key to use, it would be […]

code

8 Feb 2016

lukaseder 1 min read

One of the most awesome features of the Oracle database is Oracle AQ: Oracle Database Advanced Queuing. The AQ API implements a full fledged, transactional messaging system directly in the database. In a classic architecture where the database is at the center of your system, with multiple applications (some of which written in Java, others … Continue reading Using Oracle…

javajava 8jooq-developmentinfinite streamjooq

1 min read

Data is abundant, data is big, and big is a problem. Let me start with an example. Let’s say you have a list of movie titles and you want to learn their genre: romance, action, drama, etc. And maybe in this scenario IMDB doesn’t exist so you can’t scrape the answer. Well, the title alone is almost never enough information.…

Jonny Schneider 1 min read

To innovate, is to enter the unknown. Doing this induces anxiety, even among seasoned professionals. In most organisations—where failure is not an option—leaders have many fears. They fear what they do not know. They fear that competitors will outpace them. Most of all, they fear their inability to find success. This fear causes rational leaders with no permission to fail…

7 Feb 2016

Schakko 2 min read

You may have already heard that InfluxDB 0.10 GA has been published a few days ago. In my case the most interesting improvement are the much higher compression rates: At the moment my co-workers of NeosIT and I are collecting performance data from four internal virtual machines. Have been running […] The post Migrating InfluxDB from 0.9.6 to 0.10.0 GA…

devopsinfluxdb

6 Feb 2016

Dave Cheney 2 min read

Sandi Metz’s post on abstraction struck a chord with me recently. I was working with a piece of code which looked like this (in pseudo code): func Start() { const filename = "..." createOuputFile(filename) go run(filename) } It turned out that createOutputFile was written in an obscure way which first caused me to look at […]

goprogrammingabstractiondesign

5 Feb 2016

Peter Cho 1 min read

Three months ago we announced that Parse would be opening their Cloud Code product so that their customers would be able to deploy their mobile backends to Heroku. This allowed Parse customers to use a full Node.js environment with Cloud Code. With Parse’s recent announcement, we’re taking that one step further, by allowing you to […] The post Deploy Parse…

newsapisdeveloper toolsnode.js

Sameer Soman 1 min read

The attack on the four Tanzanian students in Bengaluru, including a young, 21-year old woman, has to be called out for what it is - a case of racist, mass violence. What is shameful is not just the mob's targeting of the African students for an accident at the same spot earlier on, that they were completely unconnected with, but…

4 Feb 2016

Jim Highsmith, Natalie Hollier 1 min read

As companies move to become a digital enterprise they are often faced with a serious disconnect between their desires, strategies and execution. Building a digital enterprise takes considerable time and money, as the business needs to build new high-impact customer facing applications while revamping old, legacy IT systems and architectures.