This tutorial explains how to use Gulp and vinyl-ftp to watch local files for changes and automatically upload updates to a website via FTP. Useful for quickly editing legacy sites only accessible through FTP.
25 Oct 2015
Feedback is an important tool for any professional. If you are a Team Leader, giving feedback becomes an essential tool for your success. As a Team Leader, one of your most important goals is to help the team to improve continuously. Many people are aware of the power of feedback, but they are also aware of the difficulty in giving…
Everyone knows that big cross-organizational change is difficult. However, not all organizational transformation is the same. This is particularly true for businesses looking to become fundamentally more entrepreneurial, the lean enterprises that create original market value as a repeatable core competency. The transformation to becoming a lean entrepreneurial enterprise faces unique challenges for business models; it relies on silo busting…
CSSgram is a tiny (<1kb gzipped) library for recreating Instagram filters with CSS filters, gradients, and blend modes.
22 Oct 2015
Most modern mobile apps depend heavily on the app’s back-end. That’s because many of the expectations users have for mobile apps today — for the application to work regardless of network connectivity, to notify them when relevant content changes, to have integrations with the social networks they use, for appropriate levels of security, and a […] The post Announcing Heroku…
Although Neo4j has very fast read and write performance and it can take this amount of data pressure, we'll stream the data in real time using PubNub.
Although Neo4j has very fast read and write performance and it can take this amount of data pressure, we'll stream the data in real time using PubNub.
Java 8 has lambdas and streams, but no tuples, which is a shame. This is why we have implemented tuples in jOOλ – Java 8’s missing parts. Tuples are really boring value type containers. Essentially, they’re just an enumeration of types like these: Writing tuple classes is a very boring task, and it’s best done … Continue reading The Danger…
If you’re looking for a nice dose of crypto conspiracy theorizing and want to read a paper by some very knowledgeable cryptographers, I have just the paper for you. Titled “A Riddle Wrapped in an Enigma” by Neal Koblitz and Alfred J. Menezes, it tackles one of the great mysteries of the year 2015. Namely: why … Continue reading A…
Some people build furniture. Some people knit. Some people have hobbies that don’t involve HTML specs from the 90s. I am not those people. So here’s a story about <input>, how it got to be the jerk that it is, and why it needs to die in a fire. The early years 1995 was a good year. Friends, ER, Xena…
21 Oct 2015
Today, we are excited to announce that we’ve teamed up with Twitter to bring PubNub’s Global Data Stream Network...
Today, we are excited to announce that we’ve teamed up with Twitter to bring PubNub’s Global Data Stream Network...
HTTP routing on Heroku is made up of three main logical layers: The state synchronization layer ensures that all nodes in the routing stack are aware of the latest changes in domains, application, and dyno locations across the platform; The routing layer chooses which dyno will handle an HTTP request (random or sticky), performs logging, […] The post Heroku Proxying…
Connecting the disruptor and the disrupted to accelerate innovation
“It’s our job as technologists to understand when to use which technology because even 30 years after the ‘No Silver Bullet’ paper there still aren’t any silver bullets in software delivery,” urges Erik Doernenburg, Head of Technology, Thoughtworks Europe.
20 Oct 2015
I just finished taking the course Software Security from the University of Maryland via Coursera. It was a relatively easy course (at least if you know C) that gave an overview of the following areas: buffer overflows and other memory attacks, … Continue reading →
Welcome to the jOOQ Tuesdays series. In this series, we’ll publish an article on the third Tuesday every other month where we interview someone we find exciting in our industry from a jOOQ perspective. This includes people who work with SQL, Java, Open Source, and a variety of other related topics. We are excited to … Continue reading jOOQ Tuesdays:…
This is another post based on my talk at NYC Machine Learning. The previous two parts covered most of the interesting parts, but there are still some topics left to be discussed. To go back and read the meaty stuff, check out Part 1: What are vector models useful for? Part 2: How to search in high dimensional spaces –…
Big banks and other financial institutions are still attempting wholesale Agile transformation by just hiring dozens of Agile coaches and embedding them in development teams. They are sorely mistaken if they think they can improve IT performance as perceived by the business merely by getting everyone to adopt Scrum, hard as that in itself may be.
19 Oct 2015
If you haven’t read the first post on fairness, I suggest you go back and read it because it motivates why we’re talking about fairness for algorithms in the first place. In this post I’ll describe one of the existing mathematical definitions of “fairness,” its origin, and discuss its strengths and shortcomings. Before jumping in I should remark that nobody…
18 Oct 2015
Puppet Labs’ recently published State of DevOps report talks about how Continuous Delivery (CD) practices affect team performance, and specifically calls out trunk-based development as a leading indicator of high performance. (Image below via Puppet Labs’ report)
Bokeh textures are very popular in photography. Let's take a look at how to create our own.
17 Oct 2015
I chose the beautiful city of Medellin, Colombia to say my final goodbye to the awesome Ruby community. 10 years of being part of a community isn’t nothing and I took time to reflect on my personal experience and discuss the future of the language and its community. Video Slides
15 Oct 2015
This post is a continuation of my previous post on bootstrapping Go 1.5 on the Raspberry Pi. Now that Go 1.5 is written entirely in Go there is a bootstrapping problem — you need Go to build Go. For most people running Windows, Mac or Linux, this isn’t a big issue as the Go project […]
About two years ago, we’ve published this post about the 10 most popular DB engines, where we analyzed the data published by Solid IT on their DB Ranking website. In the meantime, the Solid IT measurement system has found to be a credible source, such that the website has also been cited at Gartner, InfoWorld, … Continue reading The 10…
14 Oct 2015
How to build an application that uses text-to-speech to broadcast an audio message using PubNub and Raspberry Pi.
How to build an application that uses text-to-speech to broadcast an audio message using PubNub and Raspberry Pi.
How do you tackle something as complex as understanding how to create an interpreter or compiler? In the beginning it all looks pretty much like a tangled mess of yarn that you need to untangle to get that perfect ball. The way to get there is to just untangle it one thread, one knot at a time. Sometimes, though, you…
Daniel Vacanti’s new book, Actionable Agile Metrics for Predictability, is a welcome addition to the growing canon of thoughtful, experience-based writing on how to improve service delivery.
13 Oct 2015
My employer NeosIT offers a web based SMS notifiyng solution for organizations with security roles named ZABOS. In the last months we extended the ZABOS application to support digital alerting through POCSAG. After some problems with a third party component we implemented the ability to collect all POCSAG telegrams delivered […] The post Collecting and visualizing metrics with statsd, InfluxDB…
How to build a cross-platform Android WebRTC video and voice chat application with Java and JavaScript that works on both web and mobile.
How to build a cross-platform Android WebRTC video and voice chat application with Java and JavaScript that works on both web and mobile.
Relational algebra nicely describes the various operations that we know in SQL as well from a more abstract, formal perspective. One of the most common relational JOIN operations is the “equi-join” or SQL INNER JOIN. The above example “equi-joins” the ACTOR, FILM_ACTOR, and FILM tables from the Sakila database, in order to produce a new … Continue reading Semi Join…
Adrian Colyer wrote a great summary of a recent paper by Peter Bailis et al. In the paper the database researchers examine open source Rails applications and observe that the applications apply constraints - foreign key references, uniqueness constraints - in a way that's not very performant or correct. I was pretty surprised to read […]
Sometimes it seems Eric Ries could have saved himself a lot of trouble when writing The Lean Startup by just printing the phrase “fail fast” on a stack of post-it notes and sending them out to innovation teams around the world.
“Big Data” and “Data Science” are today’s business buzzwords. Many companies today are trying to modernize their data platform and enable their employees to monetize their valuable data, but most businesses are not seeing the benefits. Advanced data science may be driving some of the hottest startups but most mature companies are struggling to get into gear.
11 Oct 2015
In course of the DevOpsDays 2015 in Berlin, Small Improvements is going to host a Docker meetup with John Willis of Docker Inc on October 26th! John’s presentation covers the current state of the DevOps movement as presented by one of the original “Core Organizers” of the movement. The presentation will look at some of the taxonomies that have been…
9 Oct 2015
Java EE ships with its own persistence API: JPA. JPA is most powerful when you want to map your RDBMS entities (tables / relations) to Java entities (classes), mostly following a 1:1 mapping strategy. The idea behind this is that often, business logic isn’t really set-oriented as relational algebra or SQL, but record-oriented, meaning that … Continue reading A Beginner’s…
We all know that the empty struct consumes no storage, right ? Here is a curious case where this turns out to not be true. This is a story about trying to speed up the Go compiler. Since Go 1.5 we’ve had the great concurrent GC, which reduces the cost of garbage collection, but no […]
This week we'll take a look at one of the most popular photo manipulations: adding a vignette to draw attention to the center of an image.
8 Oct 2015
Do you want to know real quick what kind of indexes there are on any given table in your Oracle schema? Nothing simpler than that. Just run the following query: The above query is ran against the Sakila database. Just replace the “FILM_ACTOR” table by your table and you’re all set. The result looks like: … Continue reading How to…
7 Oct 2015
A Value-Driven Approach to Business Intelligence and Data Warehousing This article is the first chapter from the book Agile Analytics: A Value-Driven Approach to Business Intelligence and Data Warehousing.
6 Oct 2015
When people talk about SQL JOIN, they often use Venn Diagrams to illustrate inclusion and exclusion of the two joined sets: While these Venn diagrams are certainly useful to understand (and remember) SQL JOIN syntax, they’re not entirely accurate, because SQL JOIN is a special type of a cartesian product, the CROSS JOIN. In a … Continue reading You Probably…
Congratulations, you have a lot of code!"Congratulations, you have a lot of code!" Remedying Android’s method limit - Part 2
SoundcloudIn part one we described how running into Android’s method limit may leave you unable to build, and offered strategies you can employ to make your app fit into a single DEX file. In this part we share an alternative option: using multiple DEX files.
Do you remember that time at the end of a major release when you found yourself in a meeting room staring and delving into a long list of defects for hours? Did you groan when you were scheduled for a meeting that didn’t inspire much attendance, interest, or focus? How would you feel if you could transform that meeting into…
5 Oct 2015
How to collect pressure data on a sensor running on Arduino, and stream those readings to a live-updating, real-time gauge chart dashboard.
How to collect pressure data on a sensor running on Arduino, and stream those readings to a live-updating, real-time gauge chart dashboard.
How do you make 3D-glasses-like graphics in the browser? We'll look at how blend modes work together to create this effect.
4 Oct 2015
Typical server utilization is between 10% and 50%. Google has demonstrated 90% utilization without impacting latency SLAs. Xkcd estimated that Google owns 2 million machines. If you estimate an amortized total cost of $4k per machine per year, that's $8 billion per year. With numbers like that, even small improvements have a large impact, and this isn't a small improvement.…
3 Oct 2015
Part 3: Exploding The World of Retail Opportunity - Individualized Value with Smarter Big Data
Thoughtworks InsightsThis is the third of a five part series. Read: Part 1 - It’s time to have a crisisRead: Part 2 - Follow the Product Home
2 Oct 2015
The first post in a series on creating custom image effects in CSS. We'll take a look at the vintage washout effect.
1 Oct 2015
PubNub and speakfree are working together to provide a communication platform for aid organizations and refugees during the global crisis.
PubNub and speakfree are working together to provide a communication platform for aid organizations and refugees during the global crisis.
This is a blog post rewritten from a presentation at NYC Machine Learning on Sep 17. It covers a library called Annoy that I have built that helps you do nearest neighbor queries in high dimensional spaces. In the first part, I went through some examples of why vector models are useful. In the second part I will be explaining…
We are happy to announce version 3.0.0 of our SoundCloud JavaScript SDK. The new SDK improves stream security and content uploading…
30 Sept 2015
How to build an iOS heart rate monitor that streams heart rate data in real time to a real-time dashboard from the iOS smartphone app.
How to build an iOS heart rate monitor that streams heart rate data in real time to a real-time dashboard from the iOS smartphone app.
Exciting times are ahead for Java/SQL developers. SQL is strong and popular as ever. It is the right language for relational databases just as much as for Big Data storage systems. Just this week, Pivotal has announced their open sourcing HAWQ and MADlib as a part of their Hadoop Native SQL strategy. At Data Geekery, … Continue reading Let’s Meet…
Every once in awhile, you hear a story like “there was a case of a 1-Gbps NIC card on a machine that suddenly was transmitting only at 1 Kbps, which then caused a chain reaction upstream in such a way that the performance of the entire workload of a 100-node cluster was crawling at a snail's pace, effectively making the…
The 1960s witnessed the creation of Global Distribution Systems. These are worldwide, computerized reservation networks that function as a single point access for reserving anything related to travel; from airline tickets to hotel rooms and everything in between. You could plan an entire journey, irrespective of the number of stops or the mode of travel, with one call to your…
Over the last couple of years, interest in Experience Design (XD) has exploded, yet few experience designers I have met have actually studied “Experience Design” at a tertiary institution. While having majors such as Psychology, Animation and Computer Science can help you carve a path to being an XD, almost every XD I have met is self-taught when it comes…
29 Sept 2015
Introducing mongo-uri-builder, a Node.js module to easily create mongodb connection strings using objects
Luciano MamminoThe mongo-uri-builder Node.js package easily generates MongoDB connection strings from configuration objects, supporting features like authentication, replicas, and options. It integrates well with config for managing different environments.
Our company bootstrapped from one developer (me) into a team of 12 developers. The transition was not always easy: More people means more dev power, but also more communication and alignment needs. When we reached a team size of 10 in July, we decided to split them team into 3 fairly independent subteams. Last month […]
This is just a quick overview of how I did it in antibody’s homepage.
One of the beefs (and there aren’t many) that I have with CSS is that it has a very weak opinion about style encapsulation. That opinion is basically “well, name your classes well” or else bad things happen. Know this: I come from C++, land of rules and disappointed compilers; this hand waviness drives me crazy. This matters because now…
27 Sept 2015
There is a fair degree of disruption happening in industry around us. We see the effects in our interactions with friends, colleagues, vendors and service providers. The reasons for disruption vary, from advances in technology, start-ups inventing new business models leveraging the new technology, to changing demographics like greater income and wealth for millennials.
26 Sept 2015
There's a distressing feeling in the Node.js community that apps without up-to-date dependencies are somehow not as good, or stable, as apps that always keep their dependencies up to date. So we see things like greenkeeper.io and badges that show whether the project's dependencies are up to date (and, implicitly, shame anyone whose dependencies aren't […]
Innovation labs have become a mainstay in the retail scene. Seven of the ten US department stores by revenue set up a lab from 2012-2013. Why? Retailers need to change the way they do business and meet the needs of shoppers. Retailers who are boxed in by conventional retail wisdom and dated processes will quickly find themselves becoming the retailers…
24 Sept 2015
Recently I’ve seen several interesting conversations about ad blocking, and I wanted to remind people about a great offering called Google Contributor. With Google Contributor, you contribute a certain amount of money each month. That subscription means that you see fewer ads on the web, and you support the sites that you visit with your […]
We’re very happy to announce a guest post by Marco Behler, who has been blogging about jOOQ in the past. Marco started out in programming (reverse-engineering, actually) and now mainly programmes on the JVM in his day-to-day work. He also always had a sweet tooth for strategy and marketing. Marco Behler GmbH is the result … Continue reading It is…
I gave a little intro on Docker and talked about when to use it or not.
This is a blog post rewritten from a presentation at NYC Machine Learning last week. It covers a library called Annoy that I have built that helps you do (approximate) nearest neighbor queries in high dimensional spaces. I will be splitting it into several parts. This first talks about vector models, how to measure similarity, and why nearest neighbor queries…
23 Sept 2015
How to collect and stream IoT sensor data in real time to a real-time spline chart on an HTML dashboard with Johnny-Five, Arduino, and PubNub.
How to collect and stream IoT sensor data in real time to a real-time spline chart on an HTML dashboard with Johnny-Five, Arduino, and PubNub.
To try and avoid having interview candidate start every interview with the same "tell me your background" boilerplate, we get every interviewer in the room with the candidate at the beginning of the interview for a few minutes, so everyone can introduce themselves and the candidate can walk through their background. Recently we had a […]
In the process of product delivery, we expect that everyone involved shares a common understanding - from user to stakeholder to analyst to developer to tester and to a user. However, we frequently see communication gaps, because each role uses its own language and vocabulary. Given below, is a real story of something that happened recently in our team.
(and why your marketing team might not be ready for it) Information can tell us everything. It has all the answers. But they are answers to questions we have not asked, and which doubtless don’t even arise.
22 Sept 2015
Using the Johnny-Five framework to create real-time hardware-to-hardware communication between a button and LED.
Using the Johnny-Five framework to create real-time hardware-to-hardware communication between a button and LED.
A couple of people in my old team have been around talking about how Spotify does music recommendations and put together some quite good presentations. First one is Neville Li’s presentation about Scala Data Pipelines @ Spotify: The second one is Chris Johnson’s presentation from RecSys 2015 about Interactive Recommender Systems:
Test automation is not a new practice. Most software teams are trying to automate testing in some way or another, especially as a replacement for long, manual regression testing cycles. If you’re a QA, you’ve probably wondered what this means for your job. In the world of ‘automate everything’ – where do you fit in? Is the role of the…
21 Sept 2015
There’s a well-understood phenomenon in machine learning called overfitting. The idea is best shown by a graph: overfitting Let me explain. The vertical axis represents the error of a hypothesis. The horizontal axis represents the complexity of the hypothesis. The blue curve represents the error of a machine learning algorithm’s output on its training data, and the red curve represents…
Congratulations, you have a lot of code!"Congratulations, you have a lot of code!" Remedying Android’s method limit - Part 1
SoundcloudAt SoundCloud we have been building for the Android platform since 2010. Much has changed since then: the team has grown, the list of features has grown, and our audience has grown. Today, eight engineers are working full time on the official SoundCloud app, across various areas, with contributions pouring in from other parts of the organization. Due to the…
People have shared plans with me on how to change and fix my life. I've heard ideas and suggestions for me to improve and make me successful. I've heard it all and I heard it before I could even spell the word "feedback". However, it wasn't what I was hearing that was bothering me but the fact that I was…
Starting a new job sometimes feels like a rollercoaster ride. The first month is always filled with countless impressions, ideas and new learnings. For me, coming from an old-fashioned, giant IT company, working at Thoughtworks was like opening a door to a new world.
17 Sept 2015
Mario Fusco’s popular tweet impressively shows what the main difference between imperative and functional approaches to similar algorithms really is: Imperative vs. Functional – Separation of Concerns pic.twitter.com/G2cC6iBkDJ — Mario Fusco 🇪🇺 (@mariofusco) March 1, 2015 Both algorithms do the same thing, they’re probably equally fast and reasonable. Yet, one of the algorithms is much … Continue reading Comparing Imperative…
16 Sept 2015
How to collect, store, and retrieve IoT sensor data in real time, updating and syncing data across the application when it restarts.
How to collect, store, and retrieve IoT sensor data in real time, updating and syncing data across the application when it restarts.
“Lenses are a way to focus from a big data structure to a particular focus inside that data structure where you want something to happen,” explains Chris Ford, software developer and Thoughtworker from London.
15 Sept 2015
How to build a real-time buddy list (ie. friend's list) for chat applications using advanced channel groups, Presence, and PubNub Stream Controller.
How to build a real-time buddy list (ie. friend's list) for chat applications using advanced channel groups, Presence, and PubNub Stream Controller.
I’m seeing people do this all the time. They want to hammer a date or timestamp constant into their SQL query, and the only function they know is the TO_DATE() or TO_TIMESTAMP() date parsing function: As observed in this Stack Overflow question, for instance: Date parsing is important only if your date input is really … Continue reading Don’t Format…
This is part 2 of a series. Read part 1 and part 3.
14 Sept 2015
A tutorial was published on how to build a simple Slack bot in Node.js that tells Chuck Norris jokes, for some amusing fun. The bot is open source and available on GitHub and NPM.
“configure: error: libpthread not found!” while configuring ActiveMQ CPP 3.8 and 3.9 on CentOS 6.7
SchakkoThe ./configure script of activemq-cpp for 3.8.x and 3.9 failed with the error configure: error: libpthread not found!” when running on CentOS 6.7. Stupidly i had forgotten to install the gcc-c++ package. “yum install gcc-c++” fixed everything. The error notification is although mentioned in the ActiveMQ FAQ. Stupid me. The post “configure: error: libpthread not found!” while configuring ActiveMQ CPP…
11 Sept 2015
Have you been passively learning the material in these articles or have you been actively practicing it? I hope you’ve been actively practicing it. I really do :) Remember what Confucius said? “I hear and I forget.” “I see and I remember.” “I do and I understand.” In the previous article you learned how to parse (recognize) and interpret arithmetic…
10 Sept 2015
As the world becomes more cloud-centric, and more of our apps and business depend on its capabilities, the trust, control and management of cloud services is more important than ever. Since the first days of Heroku — and Platform-as-a-Service in general — many companies have struggled to balance the impact and success of the cloud […] The post Introducing Heroku…
Apps are at the heart of modern businesses, and are important assets that need a secure platform geared for compliance and security. We launched Heroku Enterprise earlier this year with this in mind and today we are excited to announce the beta of Heroku Identity Federation for Heroku Enterprise customers. This feature unifies the login […] The post Integrated security…