I was interviewed for the CodeNewbie podcast, where I talk about life, IBM Design, open source, and personal goals.
3 Aug 2015
2 Aug 2015
When introduced to someone for the first time, I stay away from asking the cliché question “so what do you do?” This seemingly benign question is steeped in the cultural heritage of the New England colonial Puritan/Protestant work-ethic. Hard work, frugality, perseverance in the face of hardship (without complaint) is the mark of Grace and this will allow you to…
1 Aug 2015
When using the Mail facade in Laravel it is not so easy to test the output of the parsed mail template. Like http://stackoverflow.com/questions/31120567/unittesting-laravel-5-mail-using-mock I received the error Method Mockery_0__vendor_Swift_Mailer::getTransport() does not exist on this mock object. I ended up in listening to the mailer.sending event: public function testRegistrationMailIsSend_afterSubmittingForm() { // […] The post Integration testing the mail dispatching in Laravel…
31 Jul 2015
"GopherCon 2015: Where infrastructure meets innovation and inclusivity"
It is difficult to overstate the importance of data in today's economy. The tools we use and actions we take consume and generate a digital version of our world, all captured, waiting to be used. Data have become a real resource of interest across most industries and is rightly considered the gateway to competitive advantage and disruptive strategy.
30 Jul 2015
An introduction to the Babel JavaScript compiler, the future of JavaScript, JavaScript standards, and a review of Babel's architecture.
An introduction to the Babel JavaScript compiler, the future of JavaScript, JavaScript standards, and a review of Babel's architecture.
Earlier this month, the OpenSSL project team announced that three days later it would be releasing a new version of OpenSSL to address a high-severity security defect. In the end, this vulnerability resulted in another non-event for our customers, but we thought it might be useful and informative to share the process we went through […] The post Preparing Our…
Equality in the digital realm: Where technology levels the playing field.
In Go, it’s dead simple to get the value from an environment variable:
29 Jul 2015
A look at what's been done with Apple CarPlay, what the future holds, and where PubNub sits with Apple CarPlay and connected car as a whole.
A look at what's been done with Apple CarPlay, what the future holds, and where PubNub sits with Apple CarPlay and connected car as a whole.
Growing cabbage in Uganda, my home country, is pretty easy. All you need is a piece of land, know when it will rain, and plant your cabbage. The land is fertile with two rainy seasons so you can have a good crop without applying fertilizer or irrigating the land.
Papertrail is an awesome log aggregation service we’ve used for long time. There are many ways to send logs to Papertail service, but we found the following solution is the most straightforward and secure for Rails apps like ours. Add remote_syslog_logger to Gemfile [codeblock 1 ruby] Configure logger in config/environments/production.rb [codeblock 2 ruby] Create papertrail.config in .ebextensions folder with following…
Popularized by Extreme Programming enthusiasts a couple of decades ago, the act of programming together with another developer on the same workstation gained massive adoption within Thoughtworks. Nowadays, Pair Programming is seen as an effective way to keep our folks happy, productive and learning, as is described in the article.
28 Jul 2015
Method overloading has always been a topic with mixed feelings. We’ve blogged about it and the caveats that it introduces a couple of times: You Will Regret Applying Overloading with Lambdas! Keeping things DRY: Method overloading Why Everyone Hates Operator Overloading API Designers, be Careful There are two main reasons why overloading is useful: To … Continue reading Java 8’s…
In my last post I wrote about how to define the test environment for database integration tests. Now I want to describe, how the database can be populated with test or stam data. First of all, every test inherited from the generated TestCase class executes the Artisan migrate command (TestCase::prepareForTests()). […] The post Seeding the database for integration tests in…
Intro # So I started off my IT career as an intern for a rather large company in London. I was doing a lot of misc stuff, mostly desktop but always pushed for as many networking bits I could, networking is great. A year later and here I am as a junior network engineer on the path to my CCNA…
The Onshore Anchor is critical to the success of any distributed delivery team, as it plays a key part in helping to overcome the artificial construct that is having software development teams split across different cities and time zones. The Onshore Anchor is not an additional role or person for a project team, but rather a specific responsibility that needs…
27 Jul 2015
First note: this blog post is very much tongue in cheek. I’m not actually planning on using the idea. But it was too fun not to share. As anyone following my activity on GitHub may be aware, I’ve been quite a lot of work on Protocol Buffers recently – in particular, a mostly-new port for … Continue reading “Sideways overriding”…
As far as I have read, in Laravel 4 you could define your database integration test environment by adding a testing/database.php or .env.testing.php file containing your configuiration. In Laravel 5 both ways does no longer work. To switch your environment you have two options: Put both configuration definitions (testing, dev/production) […] The post Test environments for database integration tests in…
A journalists take on my OSCON talk — Open Source Design, A Love Story.
25 Jul 2015
This post highlights 6 important rules to keep in mind when developing performant web applications: avoid premature optimization, do the minimum required work, defer non-critical tasks, leverage caching, avoid N+1 queries, and design for horizontal scaling. Following these guidelines will help you write efficient code from the start and build apps ready to handle growth.
In this post, we interview management consultant and coach Johanna Rothman.
24 Jul 2015
For two weeks I have been heavily developing a new web application based upon Laravel. Tonight I searched for an easy filtering solution like Zend_Filter so that the request strings are automagically trim’d, lowercased, and so on. Lucky me, the repository https://github.com/rmasters/filter is available with a composer.json but latest commit […] The post Using GitHub forks or local Git repositories…
Seamlessly bridging Go and C++: A practical guide to shared libraries.
Here’s a problem that I used to give to candidates. I stopped using it seriously a long time ago since I don’t believe in puzzles, but I think it’s kind of fun. Let’s say you have a function that simulates a random coin flip. It returns “H” or “T”. This is the only random generator available. How can write a…
23 Jul 2015
I’ve been a professional creative for quite a while now, a print specialist and concept guy, mainly working on business-to-business communications but with a fair amount of consumer-facing stuff along the way too. I was lucky enough to be trained by some amazing, award-winning creative folks who were also very harsh critics – an experience that can make anyone run…
22 Jul 2015
A short while ago, I gave this answer on Quora. The question was “What is the significance of NULL in SQL?” and most of the existing answers went on about citing C.J. Date or Tony Hoare and unanimously declared NULL as “evil”. So, everyone rants about NULL all the time. Let me counter-rant. Academics Of … Continue reading NULL is…
How to get started with the Raspberry Pi 2 and PubNub in the Python Programming Language for real-time streaming of sensor data and triggering device action.
How to get started with the Raspberry Pi 2 and PubNub in the Python Programming Language for real-time streaming of sensor data and triggering device action.
The word “hackathon” may conjure images of a group of programmers huddled around glowing screens, pounding out code 24-7 over a long weekend - empty Red Bulls and pizza boxes strewn about.
21 Jul 2015
How to get started with the Raspberry Pi 2 and PubNub in the C Programming Language for real-time streaming of sensor data & triggering device action.
How to get started with the Raspberry Pi 2 and PubNub in the C Programming Language for real-time streaming of sensor data & triggering device action.
20 Jul 2015
The past several months have seen an almost eerie re-awakening of the ‘exceptional access’ debate — also known as ‘Crypto Wars’. For those just joining the debate, theTL;DR is that law enforcement wants software manufacturers to build wiretapping mechanisms into modern encrypted messaging systems. Software manufacturers, including Google and Apple, aren’t very thrilled with that. … Continue reading A history…
Oracle will remove the internal sun.misc.Unsafe class in Java 9. While most people are probably rather indifferent regarding this change, some other people – mostly library developers – are not. There had been a couple of recent articles in the blogosphere painting a dark picture of what this change will imply: Dripstat‘s Removal of sun.misc.Unsafe … Continue reading What the…
This is part 1 of a series. Read part 2 and part 3.
While coding in XP ways for the past few years, I have realized that in any Agile project which crosses the one year mark, there is a definite chance that the code base is not as flexible as it was during the start of the project. As releases happen, more and more stories are churned out by the developers. This…
19 Jul 2015
What does it mean to be green in this day and age? We have moved a far cry from the lentil eating, hemp wearing eco-warriors of the late 80’s into a digitalised push button fulfilment economy – by 2020 the conventional retail store will be unrecognisable from the homogenised high street of the last decade, with same bland 'pile it…
17 Jul 2015
If you’re familiar with nearly any mainstream programming language, and I asked you to draw a diagram of an array, the array indices, and the array elements, odds are good you’d produce a diagram something like this: In this post, I want to persuade you to replace that image, or, at least, to augment it with an alternate view on…
A technology preview for Apple Watch and PubNub, to build real-time communication for Apple Watch apps including chat, home automation, and IoT.
A technology preview for Apple Watch and PubNub, to build real-time communication for Apple Watch apps including chat, home automation, and IoT.
“I’ve been a technical leader for eight years now and I guess I’m also still on my journey,” says Pat Kua, principal consultant at Thoughtworks and author of “Talking with Tech Leads”.
16 Jul 2015
How to build real-time bidirectional communication into your Microchip PIC32 microcontroller IoT app, including Pub/Sub messaging for triggering action.
How to build real-time bidirectional communication into your Microchip PIC32 microcontroller IoT app, including Pub/Sub messaging for triggering action.
15 Jul 2015
Unleash Go's power: Create shared libraries for seamless language integration!
14 Jul 2015
Heroku Connect provides seamless data synchronization between Heroku Postgres databases and Salesforce organizations. Without writing a single line of integration code, you can sync hundreds of millions of Salesforce records in near real time using a simple point-and-click UI. Resiliency and data consistency are assured with robust automatic error recovery and easy to use Salesforce […] The post Heroku Connect:…
A quick start guide on using the ESP8266 module as an IoT device powered by PubNub publish/subscribe messaging.
A quick start guide on using the ESP8266 module as an IoT device powered by PubNub publish/subscribe messaging.
With preparations for the fall conference season coming up, here are some travel tips to help make your life a little bit easier.
13 Jul 2015
In 2014 the White House commissioned a 90-day study that culminated in a report (pdf) on the state of “big data” and related technologies. The authors give many recommendations, including this central warning. Warning: algorithms can facilitate illegal discrimination! Here’s a not-so-imaginary example of the problem. A bank wants people to take loans with high interest rates, and it also…
Recently, I attended a talk on Enterprise Microservices Architecture by Darren Smith, a general manager for Thoughtworks, Sydney. The talk helped address questions I had about microservices architecture in large enterprises. Here’s a quick recap to help you as you explore the pros and cons for your team.
12 Jul 2015
How It All Began for Me It is hard to believe that I have worked for the same company for 23 years. A situation that is nearly unheard of in 2015 and nearly never in the technology industry. I am both proud and at times embarrassed by this fact.
10 Jul 2015
Diving deep: How to allocate memory without malloc in Linux assembly.
How to build a Raspberry Pi text-to-speech app where text is entered remotely and played back as audio using Windows 10 IoT SpeechSynthesizer.
How to build a Raspberry Pi text-to-speech app where text is entered remotely and played back as audio using Windows 10 IoT SpeechSynthesizer.
9 Jul 2015
In February, we announced Heroku Enterprise, with collaboration and management capabilities for building and running your app portfolio in a governable and secure way on Heroku. We also introduced fine-grained access controls with app privileges as a beta feature. Today, we are pleased to announce general availability of this feature: Heroku Enterprise accounts are now […] The post Managing apps…
How to collect humidity and temperature data using a Raspberry Pi humidity sensor (DHT 22), and stream the data to a real-time, live-updating dashboard.
How to collect humidity and temperature data using a Raspberry Pi humidity sensor (DHT 22), and stream the data to a real-time, live-updating dashboard.
Or: how to ship your app in a <20Mb container.
8 Jul 2015
How to build a collaboration app that allows multiple users to play music with one another, where notes and beats are recorded and synced in real time
How to build a collaboration app that allows multiple users to play music with one another, where notes and beats are recorded and synced in real time
Many executives are getting tired of the “D” word. Yet, even longtime market leaders with a reputation for innovation-led growth are stumbling in the face of fast-changing customer expectations. Importantly, this is not a technology industry issue. It’s a business issue that is cutting across industries and geographies. Here are a few examples.
How designers can contribute to open source, an interview for the OSCon Speaker Interview Series.
7 Jul 2015
Today, we're excited to introduce Go as the newest officially supported language on Heroku. Over the last 2 years we’ve fallen in love with Go, an expressive, concise, clean, and efficient language with built-in concurrency, making it easy to write and maintain network services, microservices and high-traffic API endpoints. Now when writing Go you can […] The post Go support…
A ridiculous frankenstein of a name for a legitimate approach to CSS that pulls ideas from the most popular approaches.
6 Jul 2015
How to build chat user identification with digital signature message verification, an important part of chat security for protecting users & privacy.
How to build chat user identification with digital signature message verification, an important part of chat security for protecting users & privacy.
5 Jul 2015
There are a lot of Java API’s and Frameworks which rely on static methods and the sort. Arguably, this is a bad OOP practice, but let’s not enter this particular subject just yet.
In 2014, I helped an organization form and start a group of internal Lean-Agile coaches as part of an organizational transformation. Prior to that, I trained many people, coached many teams and facilitated multiple meetings and ceremonies. But I had never formally trained another coach except for pairing with him or her to train him or her on-the-job.
4 Jul 2015
Annoy is a library written by me that supports fast approximate nearest neighbor queries. Say you have a high (1-1000) dimensional space with points in it, and you want to find the nearest neighbors to some point. Annoy gives you a way to do this very quickly. It could be points on a map, but also word vectors in a…
3 Jul 2015
In their amazing book “The 5 Elements of Effective Thinking” the authors Burger and Starbird share a story about how they observed Tony Plog, an internationally acclaimed trumpet virtuoso, conduct a master class for accomplished trumpet players. The students first played complex music phrases, which they played perfectly well. But then they were asked to play very basic, simple notes.…
2 Jul 2015
This is a short blog post explaining why I believe that Go and Rust are not competitors. Why people think Rust and Go are competitors To explain why I think Rust and Go are not competitors, I want to to lay out the reasons why I think the question is being asked in the first place. Rust […]
The workflow engine battle has intensified with some more interesting entries lately! Here are a couple I encountered in the last few days. I love that at least two of them are direct references to Luigi! Airflow (Blog Post) (GitHub) Airflow from Airbnb is probably the most interesting one. I’ve only glanced at it, but here are some very superficial…
1 Jul 2015
How to get started with Storage & Playback, History, and Presence using the PubNub Objective-C SDK for Swift for real-time iOS apps.
How to get started with Storage & Playback, History, and Presence using the PubNub Objective-C SDK for Swift for real-time iOS apps.
We’re excited to announce $20 million in Series C funding led by Sapphire Ventures, joined by prior investors Scale Venture Partners and Relay Ventures.
We’re excited to announce $20 million in Series C funding led by Sapphire Ventures, joined by prior investors Scale Venture Partners and Relay Ventures.
This tutorial gets you up and running with Swift and PubNub publish/subscribe messaging to build real-time iOS apps.
This tutorial gets you up and running with Swift and PubNub publish/subscribe messaging to build real-time iOS apps.
There are innumerous ways to slip up when creating a user story. These can lead to implementation defects if not validated before development. Details that are apparently clear in the head of the Business Analyst, or even the client, could end up not being properly expressed in the description of a story.
For any leader in business one of the most challenge aspects (and a question I get asked a lot) is how to manage failure — especially in large organisations? Typically, workers within organisations fear how executives will respond to lack of success. On the other side, executives cannot seem to get the message through to workers to embrace experimentation and…
Recently, Steve Blank, a luminary who developed the Customer Development methodology, a precursor to the Lean Startup movement, said that organizational debt is like technical debt in software but worse: “Organizational debt is all the people/culture compromises made to 'just get it done' in the early stages of a start-up.”
30 Jun 2015
How to build a real-time Raspberry Pi security camera system that streams video and sends real-time alerts when motion is triggered.
How to build a real-time Raspberry Pi security camera system that streams video and sends real-time alerts when motion is triggered.
(Notice, this post has been written a while ago. jOOQ now supports JSR 310 data types) There was an interesting discussion recently on the jOOQ mailing list about jOOQ’s current lack of out-of-the-box support for TIMESTAMP WITH TIME ZONE data types. No one said that date, time and timezones are easy! There’s an amusing piece … Continue reading What’s Even…
Maps vs. slices: Choose wisely for optimal performance.
Fun fact: the Heroku API consumes more endpoints than it serves. Our availability is heavily dependent on the availability of the services we interact with, which is the textbook definition of when to apply the circuit breaker pattern. And so we did: Circuit breakers really helped us keep the service stable despite third-party interruptions, as […] The post Improved production…
People think they are good listeners, but the fact that almost every project suffers from miscommunication proves they are not. It took me eight months of being a consultant to realize that. Hopefully, it will take me only a few questions to convince you of it. Do you remember the last time you had a heated discussion with a client?…
In October 2010, under the heat of the mid-afternoon sun, a 27-year-old woman presented to a small hospital in the rural town of Lacolline, Haiti. She had lost consciousness shortly after falling ill with abdominal pain, vomiting, and severe diarrhea. Her family, who lived in a remote village, carried her more than four kilometers on a makeshift stretcher to the…
29 Jun 2015
Download our brand new, free white paper, A New Approach to IoT Security: 5 Key Requirements to Securing IoT Communications, and learn about IoT security!
Download our brand new, free white paper, A New Approach to IoT Security: 5 Key Requirements to Securing IoT Communications, and learn about IoT security!
go build generates a binary for the platform you run it in. So, if I build antibody in a Linux machine - which uses Mach-O, it will not work in OS X - which uses ELF.
Recently I became infatuated with TIS-100, a game which aptly describes itself as “the assembly language programming game you never asked for!” The point of the game is to program the (imaginary) TIS-100 CPU to solve problems. For example, you might need to take input from two ports and swap them, then write the outputs to two other ports. The…
28 Jun 2015
6 tips for navigating a graphical career in a user experience world.