29 May 2015
28 May 2015
How to calculate geolocation proximity to other locations, and compare that first location to surrounding locations using the GoogleMaps API.
How to calculate geolocation proximity to other locations, and compare that first location to surrounding locations using the GoogleMaps API.
Saw this link on Hacker News the other day: The Highway Lane Next to Yours Isn’t Really Moving Any Faster The article describes a phenomenon unique to traffic where cars spread out when they go fast and get more compact when they go slow. That’s supposedly the explanation. There’s a much simpler explanation that works for any queue. Let’s consider…
27 May 2015
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…
26 May 2015
Go's empty interface: Flexibility at a cost.
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.
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”…
Sometimes you have these awesome insights. A few days ago I got an idea for how to improve index building in Annoy. For anyone who isn’t acquainted with Annoy – it’s a C++ library with Python bindings that provides fast high-dimensional nearest neighbor search. Annoy recursively builds up a tree given a set of points. The algorithm so far was:…
Wealth, asset and investment management firms are experiencing record results. In 2013, assets under management grew to a record $68.7 trillion, while operating margins grew 39%. Things couldn’t be brighter for the industry. But as we all know, current performance is not indicative of future results.
Nearly a quarter of American workers work from home at least once a week, and that number is expected to continue rising. But is working from home actually productive? Definitely, say many studies: it not only increases productivity, it also increases employee retention and reduces absenteeism. And with project management tools like Mingle and Trello, location is no barrier to…
In my previous post, I argued how IT has become strategic owing to the demands of a digital business. Strategic IT cannot justify itself with IT metrics such as velocity or even with delivering to plan. It has to make a difference to business outcomes.
25 May 2015
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…
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…
22 May 2015
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 […]
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…
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 […]
21 May 2015
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…
This tutorial shows you how to remote control your Tessel Servo remotely and track the Tessel Servo movement and current position in real time.
This tutorial shows you how to remote control your Tessel Servo remotely and track the Tessel Servo movement and current position in real time.
How to receive a Tessel RFID event and act on it, triggering an action in real time. We'll receive and interpret RFID events, & match it against code.
How to receive a Tessel RFID event and act on it, triggering an action in real time. We'll receive and interpret RFID events, & match it against code.
The potential for wearable fashion is
Innovation is losing its luster. I see it in meetings and conversations every day. After years of being the darling of leadership gurus, the craft of creating original value is facing a growing skepticism that borders on antagonism.
20 May 2015
“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…
19 May 2015
Today we’re announcing a feature that is going to change the way teams test and evaluate code changes. Continuous delivery works best when all team members — designers and testers included — can efficiently visualize and review the result of proposed changes. With Review Apps enabled, Heroku will spin up temporary test apps for every […] The post Heroku Review…
Pay people more! It’s really that simple. If you care so much about retention, put your money where your mouth is.
In this part, we'll use the Tessel to detect a Tessel RFID module scan and send the information in real time to trigger an action.
In this part, we'll use the Tessel to detect a Tessel RFID module scan and send the information in real time to trigger an action.
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…
“We’re concerned that people see this hype in the marketplace and they see [the Microservice] style of architecture as a panacea. So they might jump into it more quickly than they are actually ready to,” explains Scott Shaw, head of technology for Australia.
Pixar’s 22 rules of storytelling adapted for UX — because both are about creating great experiences.
“Alone we can do so little. Together we can do so much” - Helen Keller This quote came to be very true for five of us when we put together “DevOps 101” Workshop for vodQA Bangalore’s “Push the Envelope” edition.
On several occasions I’ve witnessed companies, who have decided to develop software using agile methodologies, view the QA role in teams as basically a waterfall tester who is involved with automated tests. By this I mean someone who performs all the manual testing of the product required within the team, and who is also exposed to test code (the latter…
18 May 2015
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…
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
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…
15 May 2015
At ContaAzul, we had 31 Windows machines powering our Selenium tests - one running the grid and 30 more running clients. Needless to say, this is very expensive.
14 May 2015
How to display broadcasted Android location data on a live-updating map, in real time, using the Android MapBox API
How to display broadcasted Android location data on a live-updating map, in real time, using the Android MapBox API
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…
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
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…
"Unexpected compassion bridges divides in a world of conquest."
In my role at Thoughtworks, I assist enterprises by driving data-driven approaches into their operations, developing market-aware products that learn from data, and encouraging data-smart cultures among the c-suite of executives. I have had the privilege to work with many talented professionals looking to disrupt their industries while remaining true to their organization's values. As you might expect, many of…
12 May 2015
Developers increasingly need a variety of datastores for their projects — no one database can serve all the needs of a modern, scalable application. For example, an e-commerce app might store its valuable transaction data in a relational database while user session information is stored in a key-value store because it changes often and needs […] The post Heroku Redis…
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…
We're hosting an Android webinar! Learn to build a real-time app for Android using the PubNub Java SDK, and other real-time features.
We're hosting an Android webinar! Learn to build a real-time app for Android using the PubNub Java SDK, and other real-time features.
Or “what the hell is this Docker thing?”
I’m often asked, “How do you set priorities in an agile environment?” The situation behind this question is usually, “We suck at setting priorities.”
11 May 2015
The flickr-set-get command line app makes it easy to download entire Flickr galleries. It uses the Flickr API and Node.js asynchronous programming to download photos in parallel. The post explains the motivation behind the project, the technologies used, and how the asynchronous code works.
In April 2015 I gave a presentation to the GDG Berlin meetup group (slides, video) discussing my views on reproducible builds using the Go programming language. As part of that presentation I demonstrated a replacement build tool that I had been developing, gb. From the feedback I received after the meetup it was clear that […]
How to build a real-time temperature sensor with an Atmel MCU that collects, streams, and visualizes temperature data on a real-time dashboard.
How to build a real-time temperature sensor with an Atmel MCU that collects, streams, and visualizes temperature data on a real-time dashboard.
In the Beginning... ...there was no inheritance and no composition, only code. And the code was unwieldy, repetitive, blocky, unhappy, verbose, and tired. Copy and Paste were the primary mechanisms of code reuse. Procedures and functions were rare, newfangled gadgets viewed with suspicion. Calling a procedure was expensive! Separating pieces of code from the main logic caused confusion! It was…
10 May 2015
Like my old post on git, this is somewhat a collection of useful Docker commands/tricks/whatever.
‘Prioritisation’ is a concept that product owners and business stakeholders often have issues about. I asked myself why and came up with only one answer - “Fear of not getting what they wished for in their product.”
8 May 2015
How to receive broadcasted iOS location data and display it on a real-time, live-updating map using the Mapbox API and Swift programming language.
How to receive broadcasted iOS location data and display it on a real-time, live-updating map using the Mapbox API and Swift programming language.
7 May 2015
Today, we’re introducing a suite of new dynos. These dynos introduce new capabilities and price points and reduce the cost of scaling businesses on Heroku. These new dynos enter beta today. We’ve always provided a developer experience so you can create amazing apps, from hacking on new technologies and personal projects to building production applications […] The post New Dyno…
Heroku comes from and is built for the developer community; the values of experimentation, openness and accessibility have been part of the product from day one, and continue to drive its development. From our first days, we have provided a free tier that followed in the tradition of making it as easy and fun as […] The post Heroku’s Free…
How to receive broadcasted iOS location data and display it on a real-time, live-updating map using the Google Maps API and Swift programming language
How to receive broadcasted iOS location data and display it on a real-time, live-updating map using the Google Maps API and Swift programming language
PostgreSQL has a lot of secret data types. In recent times, PostgreSQL’s JSON and JSONB support was hyped as being the NoSQL on SQL secret (e.g. as advertised by ToroDB) that allows you to get the best out of both worlds. But there are many other useful data types, among which the range type. How … Continue reading PostgreSQL’s Best-Kept…
6 May 2015
How to receive broadcasted iOS location data and display it on a real-time, live updating map using the MapKit API and Swift programming language.
How to receive broadcasted iOS location data and display it on a real-time, live updating map using the MapKit API and Swift programming language.
5 May 2015
Important update We've recently made some big updates to our support for Docker and the feature described in this blog post has been deprecated. Learn more in the container registry and runtime dev center documentation. When Heroku launched the Cedar container stack 4 years ago, we became one of the first companies to use Linux […] The post Introducing ‘heroku…
How to build an iOS location tracking app and stream location data to a live-updating map using Swift programming language.
How to build an iOS location tracking app and stream location data to a live-updating map using Swift programming language.
There are many, many questions on Stack Overflow about both parsing and formatting date/time values. (I use the term “date/time” to mean pretty much “any type of chronlogical information” – dates, times of day, instants in time etc.) Given how often the same kinds of mistakes are made, I thought it would be handy to … Continue reading Common mistakes…
In the recent past, we’ve explained the syntactic implications of the SQL GROUP BY clause. If you haven’t already, you should read our article “Do You Really Understand SQL’s GROUP BY and HAVING clauses?“. In essence, adding a GROUP BY clause to your query transforms your query on very implicit levels. The following reminder summarises … Continue reading How SQL…
The ‘text to get’ model is set to change the way we shop. It’s simple; send a text of what you want and when you want it. An associate will confirm your order and it’s on its way. Great examples include Melbourne based Three Thousand Thieves, a subscription coffee service and New York based Stefan’s head, a ‘concierge of cool’…
In Building Microservices, Sam Newman explains why services choreography may be a more appropriate integration model for supporting complex business processes across domains. In this article, I would like to stress the challenges of using a point-to-point integration model, and present services choreography as a foundation of a more expandable microservices architecture, where services are highly cohesive and loosely coupled.
4 May 2015
A while back Peter Norvig posted a wonderful pair of articles about regex golf. The idea behind regex golf is to come up with the shortest possible regular expression that matches one given list of strings, but not the other. “Regex Golf,” by Randall Munroe. In the first article, Norvig runs a basic algorithm to recreate and improve the results…
Why are people so concerned with hardware power consumption nowadays? Some common answers to this question are that power is critically important for phones, tablets, and laptops and that we can put more silicon on a modern chip than we can effectively use. In 2001 Patrick Gelsinger observed that if scaling continued at then-current rates, chips would have the power…
3 May 2015
The size of binaries in the Nim programming language seems to be a popular topic recently. Nim’s slogan is expressive, efficient, elegant, so let’s examine the efficient part in this post by exploring a few ways to reduce the size of a simple Nim Hello World binary on Linux. Along the way we will: Build a regular program into a…
Annoy is a C++/Python package I built for fast approximate nearest neighbor search in high dimensional spaces. Spotify uses it a lot to find similar items. First, matrix factorization gives a low dimensional representation of each item (artist/album/track/user) so that every item is a k-dimensional vector, where k is typically 40-100. This is then loaded into an Annoy index for…
When armed with an abundance of ideas, how do you recognize the valuable ones? The ideas that are worthy of being picked out and worked on to explore their potential business impact? Thoughtworks’ The Sift does exactly that. It allows you to ‘sift’’ through a trough of your ideas to identify the one with the most prospects. Using the The…
Pixel art is so much fun! This blog post walks through how to read a matrix-like list with Sass and generate Mario pixel art from box shadows.
1 May 2015
When I started on the Firebird team at Bazaarvoice, I was happy to learn that they host their code on GitHub and review and land changes via pull requests. I was less happy to learn that they merged pull requests with the big green button. I was able to convince the team to try out a new, rebase-oriented, workflow […]
30 Apr 2015
At Heroku and at Salesforce, we’re always looking for ways we can help increase the number of young women with access to careers in science, technology, engineering and math. Recently, thanks to a Heroku engineering manager’s involvement on this issue with a local school, we hosted a Technovation Challenge event at the Heroku offices. We […] The post #WIT: Inspiring…
Let me get this straight. We have an emulator for 1985 hardware that was written in a pretty new language (Go), ported to a language that isn’t even 1.0 (Nim), compiled to C, then compiled to JavaScript? And the damn thing actually works? That’s kind of amazing. — Summary by haberman I spent the last weeks working on NimES, a…
How to retrieve, publish, and display live geolocation data with JavaScript and the Google Maps geolocation API to create transportation tracking apps
How to retrieve, publish, and display live geolocation data with JavaScript and the Google Maps geolocation API to create transportation tracking apps
I admit, we’ve been lured into using this technique as well. It’s just so convenient, as it allows for avoiding a seemingly unnecessary cast. It’s the following technique here: Now you can type safely assign anything from the wrapper to any type: This is actually the API you can use when you’re using jOOR, our … Continue reading This Common…
29 Apr 2015
Since today Nim 0.11 has been released, I guess it’s a good time to release this as well: NimES is a NES emulator written in Nim. More info in the GitHub repository and the JS demo. Discussion on Hacker News and Reddit.
How to retrieve, publish, and display live geolocation data with JavaScript and the Mapbox API to create transportation tracking applications.
How to retrieve, publish, and display live geolocation data with JavaScript and the Mapbox API to create transportation tracking applications.
28 Apr 2015
Today we’re excited to announce public beta support for HTTP session affinity, a feature that makes building real-time applications easier than ever. Session affinity improves end user experience in certain types of applications and architectures where you require some level of extra state within your application code, because it ensures related requests get routed to […] The post Introducing Session…
A walkthrough on how to detect and broadcast geolocation data in real time using JavaScript and HTML5 location services.
A walkthrough on how to detect and broadcast geolocation data in real time using JavaScript and HTML5 location services.
I keep encountering situations where RDBMS users think that one second for query execution is anything near fast. Most recently, in this Stack Overflow question: Hibernate SQL In clause making CPU usage to 100% The poster’s original question was why a similar query executes in one second when executed in SQL Server Management Studio whereas … Continue reading Do Not…