When it comes to campaigning for a change, it can be difficult to create the momentum needed to make a difference. Unless we are fortunate enough to be in a position of power or influence, we can struggle to make ourselves heard or to see any real progress towards our goal.
16 Nov 2017
15 Nov 2017
14 Nov 2017
A look at what features and capabilities a chat app needs to be successful, and how to differentiate your chat app from the competition.
A look at what features and capabilities a chat app needs to be successful, and how to differentiate your chat app from the competition.
Learn the basics of IAM permissions with your Serverless projects.
13 Nov 2017
Insights from your peers and industry leaders to help you do better business.
How to supercharge your serverless with CRDTs at the edge. Your comprehensive CRDT explainer.
This is the second part of a two-part article. Read Part One here. Testing in production Given that setting up and maintaining fully production-like environments can get ever more costly and problematic there are various approaches for using production to gain confidence in how your evolving system will respond under load.
12 Nov 2017
It's common knowledge that Android device tend to be more out of date than iOS devices, but what does this actually mean? Let’s look at android marketshare data to see how old devices in the wild are. The x axis of the plot below is date, and the y axis is Android marketshare. The share of all devices sums to…
11 Nov 2017
Unveiling the hidden struggles behind a perfect facade.
10 Nov 2017
It’s Radar season at Thoughtworks, which means we’re all working hard to get the next Technology Radar ready for release on November 30. During Radar season, sleeping is overrated.
9 Nov 2017
About once a month, an app that I regularly use will change its UI in a way that breaks muscle memory, basically tricking the user into doing things they don’t want. Zulip In recent memory, Zulip (a slack competitor) changed its newline behavior so that ctrl + enter sends a message instead of inserting a new line. After this change,…
Going to re:Invent 2017? Here's our suggested track for getting the most info on serverless and Lambda.
8 Nov 2017
(Warning: nerdy inside-baseball academic blog post follows. If you’re looking for exciting crypto blogging, try back in a couple of days.) If there’s one thing that academic computer scientists love (or love to hate), it’s comparing themselves to other academics. We don’t do what we do for the big money, after all. We do it … Continue reading A few…
Binary search is one of the most basic algorithms I know. Given a sorted list of comparable items and a target item being sought, binary search looks at the middle of the list, and compares it to the target. If the target is larger, we repeat on the smaller half of the list, and vice versa. With each comparison the…
7 Nov 2017
One of the common required tasks for an application using a persistence store is to initialize the underlying database with basic data sets. Most of the time this contains something like admin users or default roles. Setting the stage To give a proper example, we have the database table role […] The post How to programtically insert versionized initial data…
Use Lambda environment variables and AWS Parameter Store to handle configuration in your Serverless projects
We're posting the full videos and transcripts from Emit 2017! Here's our panel on the future of event-driven compute.
Want to get even better at Serverless, and spread the skills across your whole team? Sign up for a Serverless Workshop!
6 Nov 2017
Usually, this blog is 100% pro window functions and advocates using them at any occasion. But like any tool, window functions come at a price and we must carefully evaluate if that’s a price we’re willing to pay. That price can be a sort operation. And as we all know, sort operations are expensive. They … Continue reading How to…
To multi-cloud, or not to multi-cloud? A frank discussion on the pros, cons and considerations.
We're posting the full videos and transcripts from Emit 2017! Here's Cornelia from Pivotal on models for event-driven programming.
5 Nov 2017
Like most security professionals I am spending a large amount of time helping my company move securely to AWS. Certificate management in AWS is done with AWS Certificate Manager and while they do offer *free* certificates, ACM generated certs are outside your direct control. You don’t get the keys which, at least for some things, should probably be a non-starter…
system-font-i18n-css provides twelve variations for the Sans-serif family of system font. This font stack provides more consistent character typesetting across multiple languages and all modern operating systems. system-font-i18n-css is optimized to select the best system font on a per-character basis, based on the unicode range of that character. system-font-i18n-css provides twelve variations for the Sans-serif family of system font. This…
4 Nov 2017
It's a common, and distressing, pattern to have factories in tests that call out to a library like Faker to "randomize" the returned object. So you might see something like this: User.create({ id: uuid(), email: faker.random.email(), first_name: faker.random.firstName(), last_name: faker.random.lastName(), address: faker.random.address(), }); package = Package.create({ width: faker.math.range(100), height: faker.math.range(200), length: faker.math.range(300), }) This is […]
Preparing Systems for the ‘100-year wave'.
3 Nov 2017
We're posting the full videos and transcripts from Emit 2017! Here's Shawn from Uber on building Catalyst, their serverless platform.
2 Nov 2017
In June we announced Heroku Shield with new high compliance features for Heroku Private Spaces. Heroku Shield enables businesses like AlignTech to deploy apps that handle protected healthcare information (PHI) in accordance with government regulations. Today, we are proud to announce that Heroku Shield Services have been validated as PCI Level 1 Service Provider compliant. […] The post Announcing PCI…
Tips from the Serverless team - how we test serverless applications.
We're posting the full videos and transcripts from Emit 2017! Here's Dave on contract-based testing for event-driven architectures.
1 Nov 2017
Two years ago, we introduced Heroku Private Spaces as a new platform abstraction that combines powerful network isolation features with the seamless developer experience of Heroku. Today we are announcing Heroku Private Space Peering, a new capability to connect the isolated Private Space network to apps and services in Amazon VPCs controlled by you. Now […] The post Announcing Heroku…
Foreword Our Curations engineering team makes heavy use of serverless architecture. While this typically gives us the benefit of reduced costs, flexibility, and rapid development, it also requires us to ensure that our processes will run within the tight memory and lifecycle constraints of serverless instances. In this article, I will describe an actual case […]
In this post, we’re going to discuss a couple of recent efforts to squeeze roughly 10% in terms of speed out of jOOQ by iterating on hotspots that were detected using JMC (Java Mission Control) and then validated using JMH (Java Microbenchmark Harness). This post shows how to apply micro optimisations to algorithms where the … Continue reading Squeezing Another…
Serverless v1.24 - Alexa Smart Home event source, Print content of resolved serverless config file
ServerlessAlexa Smart Home event source, update checker, enhancements, bug fixes and more added in the Serverless Framework v1.24 release.
We're posting the full videos and transcripts from Emit 2017! Here's Matthew from Accenture on transforming core banking with event-driven architectures.
31 Oct 2017
This post is aimed at readers who are already familiar with stochastic gradient descent (SGD) and terms like “batch size”. For an introduction to these ideas, I recommend Goodfellow et al.’s Deep Learning, in particular the introduction and, for more about SGD, Chapter 8. The relevance of SGD is that it has made it feasible to work with much more…
We're posting the full videos and transcripts from Emit 2017! Here's Ajay from AWS on being a good citizen in an event-driven world.
In continuation from my previous blogs (Parts 1 and 2), I write about the direction we intend to take with Workspaces. In this part, I offer my thoughts on the perennial debate around what is BAU and what is innovation.
30 Oct 2017
There are often close relationships between top level business metrics. For instance, it’s well known that retention has a super strong impact on the valuation of a subscription business. Or that the % of occupied seats is super important for an airline. A fun little toy model that I can up with generates a curious relationship between conversion rates and…
How to build a simple Serverless app that reminds you about street sweeping days in your neighborhood. Never get a parking ticket again!
29 Oct 2017
It’s time for our next Jane Street Tech Talk. When we’ve solicited suggestions for topics, one common request has been to talk about our internal development process. Our next talk, How Jane Street Does Code Review, should fit the bill. The talk is being given by our own Ian Henry, and discusses how we approach code review, and in particular…
27 Oct 2017
Need to quickly catch up on this past quarter's announcements? Here are the top three topics to tune in on: Heroku has expanded regions availability for Private Spaces and introduced the general availability of the Dublin region on September 26, 2017. Heroku users are able to run apps in all of the following Private Spaces […] The post FY18 Q3…
We're posting the full videos and transcripts from Emit 2017! Here's Madhuri with her talk on unikernels and event-driven serverless platforms.
Just wanted to share two articles that helped me understand visual design better. I was already aware of the most of these things, but having someone explain it how and why was really helpful. 7 Rules for Creating Gorgeous UI Optical Effects in User Interfaces (for True Nerds) Learn more about design # When asked how to learn more about…
26 Oct 2017
Today we are pleased to announce a significant update to Heroku Connect, one that is a culmination of two years of work to improve every aspect of the service. We’ve focused on three primary areas: improving write speed, geographically expanding the service, and intelligently guiding design and troubleshooting workflows. To that end, we’ve enabled bulk […] The post Heroku Connect…
We’ve developed a hierarchical reinforcement learning algorithm that learns high-level actions useful for solving a range of tasks, allowing fast solving of tasks requiring thousands of timesteps. Our algorithm, when applied to a set of navigation problems, discovers a set of high-level actions for walking and crawling in different directions, which enables the agent to master new navigation tasks quickly.
Droplr is used to share 1000s of screencasts and files every day. Here's how they empowered their growth with the Serverless Framework.
We're posting the full videos and transcripts from Emit 2017! Here's Bobby from CapitalOne with his talk on microservices.
At Thoughtworks, we have seen how technology is never a solution (just) by itself, mainly because of what we have learned from our experience of working with humanitarian organizations from across the world.
25 Oct 2017
We're posting the full videos and transcripts from Emit 2017! Here's Rob with his talk—towards a serverless event-sourced Nordstrom.
24 Oct 2017
In my last last post, I argued that property-based testing and fuzzing are essentially the same practice, or at least share a lot of commonality. In this followup post, I want to explore that idea a bit more: I’ll first detour into some of my frustrations and hesitations around typical property-based testing tools, and then propose a hypothetical UX to…
Integrate GraphQL with Lambda; turn a 3rd party REST API to GraphQL. I built a microservice to interface with the Flickr API using Serverless, GraphQL and Hapi.js.
Just a quick proof of concept I made for transitioning between two react components. It animates height (of the parent) and fades components into each other. In componentWillReceiveProps it checks if children prop has changed. When that happens, it will save currently rendered children and the height of the wrapper. Then it will animate wrapper's height to a new component's…
23 Oct 2017
Today, we are excited to introduce Functions Vault: a secure store in our network for your secrets, such as authentication keys or tokens.
Today, we are excited to introduce Functions Vault: a secure store in our network for your secrets, such as authentication keys or tokens.
Before we get started, fair warning: this is going to be a post about a fairly absurd (but non-trivial!) attack on cryptographic systems. But that’s ok, because it’s based on a fairly absurd vulnerability. This work comes from Nadia Heninger, Shaanan Cohney and myself, and follows up on some work we’ve been doing to look … Continue reading Attack of…
There are a number of Unix commands that manipulate something about the environment or arguments in some way before starting a subcommand. For example: xargs reads arguments from standard input and appends them to the end of the command. chpst changes the process state before calling the resulting command. envdir manipulates the process environment, loading […]
We’re going to reproduce some results from papers on filesystem robustness that were written up roughly a decade ago: Prabhakaran et al. SOSP 05 paper, which injected errors below the filesystem and Gunawi et al. FAST 08, which looked at how often filesystems failed to check return codes of functions that can return errors. Prabhakaran et al. injected errors at…
As the birthplace of Bang & Olufsen, Lego and Pandora, Denmark seemed particularly well-suited to host Shoptalk’s first European conference. Retail leaders from around the globe descended on Copenhagen to hear 225 speakers from brands including Zalando, eBay and Alibaba. Thinking of attending next year? We were impressed by Shoptalk’s content, approach and variety of delegates. Here are our top…
22 Oct 2017
Bazel is a build system that was recently open sourced by Google. Bazel operates on configuration files - a WORKSPACE file for your entire project, and then per-directory BUILD.bazel files. These declare all of the dependencies for your project, using a language called Skylark. There are a number of Skylark rules for things like downloading […]
20 Oct 2017
Whalecome to this blog post 🐳. I want to share with you how we use Docker at Small Improvements, how it helps us to get our everyday tasks done and what we learned from working with it. For starters, I added an introductory section about what Docker actually is – if you are already familiar with […]
GraphQL and Serverless play so well together. Learn how to make your own GraphQL API using Lambda an DynamoDB.
Use Serverless, Google Cloud Functions, and the Cloud Vision API to build an endpoint to classify images.
Almost every business or technical analyst today understand the benefits of exposing business capabilities through APIs. But how can you best achieve this?
19 Oct 2017
Our latest robotics techniques allow robot controllers, trained entirely in simulation and deployed on physical robots, to react to unplanned changes in the environment as they solve simple tasks. That is, we’ve used these techniques to build closed-loop systems rather than open-loop ones as before.
Lessons learned in avoiding startup chaos. Embrace the mini CEO.
18 Oct 2017
17 Oct 2017
Earlier this month, PostgreSQL 10.0 was released. Today, we are excited to announce PostgreSQL 10 is available in beta on Heroku, bringing a number of notable feature and performance improvements to our managed PostgreSQL database service. The beta provides customers who want to try out the new release an easy way to do so, while […] The post PostgreSQL 10…
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:…
16 Oct 2017
It's easier than you think to make a software package installable via Homebrew. If you depend on a very specific version of a software package (say, Postgres 9.5.3 with readline support), I highly recommend creating a Homebrew repository and publishing recipes to it. Then your team can install and update packages as easily as: brew […]
The big news in crypto today is the KRACK attack on WPA2 protected WiFi networks. Discovered by Mathy Vanhoef and Frank Piessens at KU Leuven, KRACK (Key Reinstallation Attack) leverages a vulnerability in the 802.11i four-way handshake in order to facilitate decryption and forgery attacks on encrypted WiFi traffic. The paper is here. It’s pretty easy to read, … Continue…
If you look at “gaming" keyboards, a lot of them sell for $100 or more on the promise that they’re fast. Ad copy that you’ll see includes: a custom designed keycap that has been made shorter to reduce the time it takes for your actions to register 8x FASTER - Polling Rate of 1000Hz: Response time 0.1 milliseconds Wield the…
Growth in code bases come with exciting scalability challenges. As the size of our iOS codebase and team at SoundCloud grew, we faced challenges: long compile times and conflicts. Our productivity started to suffer as a result. We took inspiration from the work done in the backend (Building Products at SoundCloud) and applied it to mobile development. The main goal…
Creating a home for people, however they identify, isn’t just about attracting them. It's about creating an environment where they feel welcome, respected, listened to and where interesting paths are open to them. It’s about retaining and creating opportunities for everyone - whatever kind of leader they are.
13 Oct 2017
How do you design a tool that tows the line between 'exciting new ground' and 'real world practicality'? We asked a lot of those questions with the Event Gateway.
12 Oct 2017
Using your own product consistently — or dogfooding — is a great technique for validating your work, especially when you fit the description of the target user. But it’s just not enough to create a great product. To do that, you need to talk to users and truly understand their needs, goals, and pains. That being said, it’s often easy…
11 Oct 2017
What’s better? Using the JDK’s String.replace() or something like Apache Commons Lang’s Apache Commons Lang’s StringUtils.replace()? In this article, I’ll compare the two, first in a profiling session using Java Mission Control (JMC), then in a benchmark using JMH, and we’ll see that Java 9 heavily improved things in this area. Profiling using JMC In … Continue reading Benchmarking JDK…
Monitoring gives us observability in microservices systems. In this article we theorize what kind of monitoring & instrumentation we'll need in 2018. The post The Future of Microservices Monitoring & Instrumentation appeared first on RisingStack Engineering.
We show that for the task of simulated robot wrestling, a meta-learning agent can learn to quickly defeat a stronger non-meta-learning agent, and also show that the meta-learning agent can adapt to physical malfunction.
We’ve found that self-play allows simulated AIs to discover physical skills like tackling, ducking, faking, kicking, catching, and diving for the ball, without explicitly designing an environment with these skills in mind. Self-play ensures that the environment is always the right difficulty for an AI to improve. Taken alongside our Dota 2 self-play results, we have increasing confidence that self-play…
10 Oct 2017
When you navigate to your project in CircleCI's UI, Javascript from eight different analytics companies gets loaded and executed in your browser. Pusher Intercom Launch Darkly Amplitude Appcues Quora (??) elev.io Optimizely You can see this in my Network tab here: This is a problem because the CircleCI browser context has full access to the […]
Breakdowns of our favorite ServerlessConf talks, plus some high-level takeaways for the serverless community.
9 Oct 2017
In early 2015, I was working at an artificial intelligence startup. My team was planning to build a web application to connect to our neural network platform. The team as a whole had experience (on the AI–side) with Python, and the web team had a lot of experience using Django. We’d implemented a hybrid-app in Cordova using Backbone.js the previous…
Bi-annual retreats - how we improve communication and make remote teams work.
This year, I’ve given a lot of thought to what has made being a developer at Thoughtworks such an important part of my career and life. Much of it’s about working with great people, who default to trust and honesty, with a common drive to make a better software industry. When it comes to our craft of building software, I…
8 Oct 2017
This is an odd one. I’m currently working on Cloud Firestore support for C#, and I’ve introduced a GeoPoint struct to represent a latitude/longitude pair, each being represented by a double. It implements IEquatable and overloads == and != in the obvious way. So far, so good, and I have working tests which have passed … Continue reading Diagnosing a…
7 Oct 2017
Last summer I wrote this post which quickly became my most popular one to day. With webpack 2 and 3 it got outdated, so I decided to write a new one. Before we start # I'll assume you have a basic knowledge of unix terminal, npm and JavaScript. You did some React, but now you want to level up and…
6 Oct 2017
Docker, Kubernetes, Serverless? Let's discuss the respective ups and downs of containers and serverless.
So many talks, which to choose? This is your field guide to getting the most out of ServerlessConf NYC - what to see, who to meet, where to get the best t-shirts.
5 Oct 2017
It was a couple of months or so ago when I came across this conference called FullStack Fest, skimming through the agenda, I was immediately intrigued and thought “I’ve got to check this out”. The coolest bit? The conference was taking part in the beautiful city of Barcelona. September finally came around, and just as […]
4 Oct 2017
Learn how to use the popular Express.js framework to deploy a REST API with Serverless, DynamoDB and API Gateway.