Optimize with HTTP/2 Server Push and Service Workers!

Optimize with HTTP/2 Server Push and Service Workers!

HTTP/2 is being used in ~12% of the websites in the World Wide Web, but certainly the number is higher in the websites we visit the most. If you want to understand better how HTTP/2 works and how to debug it, take a look at our latest blogposts:

React Crash Course Announcement! - London, March, 7

React Crash Course Announcement! - London, March, 7

React is regarded as the premier way to build large, fast Web apps with JavaScript. We're excited to announce that we're going to have another React Crash Course in London! YLD already hosted three free events in Lisbon and this will be the second one in London. Whether you have

Alternatives to HTTP!

In one of our latest posts we introduced and debugged HTTP/2. However we'll be exploring some other alternatives to the HTTP protocol in this post. These alternative protocols are quite interesting when we start to investigate them, since it allows us to understand how the Internet is evolving; with

NodeConf Budapest 2017

NodeConf Budapest 2017

What is NodeConf Budapest? NodeConf Budapest was a one-day, single-track conference with a focus on what people need to know about Node. It was the first such event organised by Gergely Nemeth of RisingStack, a Node consultancy and development company. Around 100 people attended from all over Europe and the

YLD enters in a new strategic alliance with ANDigital

YLD enters in a new strategic alliance with ANDigital

We are excited to announce that today marks the first day of the strategic alliance of two of the leading London-based professional services organisations, ANDigital and YLD. The alliance will enable us to serve our clients better, as well as provide a greater source of expertise and learning for our

Build your own community event monitor

Build your own community event monitor

Events, events... and more events! YLD team members help to organize community meetups, both in Lisbon (require-lx) and London (#LTM - London TensorFlow): require-lx is a JavaScript meetup, with two types of events: nodeschool, where we help people to learn JavaScript and NodeJS (using https://nodeschool.io/ workshops), and require-lx,

HTTP/2: A look into the future of the web

HTTP/2: A look into the future of the web

This article aims to be theoretical and practical, not only giving an overview about the HTTP/2 protocol, but also giving and explaining how to dig in with some tools. HTTP/2 is the next version of the HTTP protocol and aims to be more performant in comparison with the

Web Summit 2016

Web Summit 2016

Web Summit is said to be one of the biggest tech conferences. With over 50,000 attendees, this year was Lisbon's turn to host the event from the 7th to the 10th of November. First and foremost, what you're about to read expresses my views on what I perceived and

React Component Profiling

The React library is still evolving and Facebook's React team is working on a set of features to improve it, both internally (e.g the new reconciler algorithm) and to upgrade developer experience. In this quick blogpost we're going to take a look at a feature that was presented in

Node.js databases: Using CouchDB

Node.js databases: Using CouchDB

Much like the previous two databases we presented here, CouchDB is an open-source key-value store. But it's also a bit more than that. Each record is not an opaque string: it's a JSON document that the engine understands. By default, CouchDB does not impose any specific schema to the documents

Node.js databases: Using Redis for fun and profit

Node.js databases: Using Redis for fun and profit

Redis is an open-source database server that has been gaining popularity recently. It's an in-memory key-value store. It keeps all the data in-memory for fast access, but also keeps the data in-disk if you tell it to. It's a basic key-value store where the keys and values are strings, but

Node.js databases: an embedded database using LevelDB

Node.js databases: an embedded database using LevelDB

Node.js has been designed to do quick and efficient network I/O. Its event-driven streams make it ideal to be used as a kind of smart proxy, often working as the glue between back-end systems and clients. Node was originally designed with that intention in mind, but meanwhile it

Using RabbitMQ and AMQP for Distributed Work Queues in Node.js

Using RabbitMQ and AMQP for Distributed Work Queues in Node.js

This is the last article in the Work Queue Patterns series. In the past article, we examined how to manage distributed work queues using Redis as a queue service. In this article I now explain how you can replace this Redis implementation with a RabbitMQ one. Besides Redis, Rabbit-MQ is

Lessons from YLD Innovate

Innovation in a fast-growing environment YLD Innovate is a series of events covering relevant business topics for the CIO. The first event in this series covered the lessons learnt by Joe Steel when setting up Virgin Mobile. In particular, some of the challenges they faced and how the company managed

Why your application needs to be offline-first — typical use cases

Why your application needs to be offline-first — typical use cases

I recently attended the first Offline Camp, a gathering of a very diverse group of people that were interested and invested in the Offline-first subject. Thanks to organisers (and to YLD, IBM Cloud Data Services, Meetup, Hoodie, Bocoup and Make&Model's sponsorship), for three days we convened in this

A Distributed Work Queue

A Distributed Work Queue

So far, we've seen that creating a local queue can be very useful for streamlining the workload and persisting the work throughout process restarts. However, depending on the type of work that you're doing, this approach could still present some issues: if this work is somehow CPU-intensive you may need

Building a React Native offline-first application using PouchDB and CouchDB

Introduction At YLD we have been doing some work with offline-first applications and, with the release of Service Workers, a major step has been taken in building these kind of applications in the browser. We have also been using CouchDB and PouchDB to access data while the Application is offline.

NodeConf Oslo 2016

I had the pleasure of attending NodeConf Oslo, a one day event on June 4th. As this was my first JS/Node conference ever, I didn’t quite know what to expect, but I was really looking forward to it! In the end I can honestly say it was an

How to build a reliable transaction experience for your customers

How to build a reliable transaction experience for your customers

...by using replicated transaction documents and a clerk TL;DR HTTP RESTful APIs are the wrong level of abstraction to deliver complex transactions. Proposed solution: The client app puts all the data in a document and saves it locally The client app continuously syncs it with a remote replica The

On attending React-Europe 2016

React-Europe was an amazing 2-day conference held in Paris on June, 2 and 3. On this second edition, there were a lot of talks about React, React Native, Redux, performance optimisations, and data fetching using GraphQL or Falcor. The conference started with Dan Abramov explaining how Redux has grown in

Sharing code between native and web: React and Relay

Sharing code between native and web: React and Relay

Choosing React Native comes with a set of unique advantages, such as a single ecosystem (JavaScript vs. Java/Swift/Objective-C), faster feedback loops and code reuse. All of the above makes for happy developers and, when a fully native user experience can be achieved, we can see why more teams

Using a Persistent Local Queue in Node.js

Using a Persistent Local Queue in Node.js

As we've seen in the previous article of this series, an in-memory queue can be useful in streamlining a work load and retrying by recovering from errors, but it's subject to some problems. If, for a period of time, the production of messages exceeds the worker capacity, the queue may

Introducing Queues in Node.js

Introducing Queues in Node.js

This is the first of a series of articles that will be diving into using work queues to manage asynchronous work in Node.js, extracted from the Node Patterns series. Enjoy! It is common for applications to have workloads that can be processed asynchronously from application flows. A common example

Container Camp San Francisco 2016: Wrap-Up

Container Camp San Francisco 2016: Wrap-Up

The fourth incarnation of Container Camp, and the second in San Francisco, took place on Friday April 15th. YLD were in attendance and we've put together this follow-up blog post for those who couldn't be there. One of the great things about Container Camp has always been the broad representation

Encrypting Communication

Encrypting Communication

In the previous post of this series we saw how we could perform RPC on top of a multiplexed duplex stream. In this article we're going to show you how you increase the security of the client and the server applications by encrypting your communication channel and adding authentication. Enjoy!

My internship experience at YLD

I got in touch with YLD for a 6 month marketing internship position and was interviewed in September 2015. After an initial Skype call, I was invited to the YLD office for an one-to-one interview with Head of Marketing, Laura Plaga. A week afterwards, I was offered a position and

Container Camp Day Zero

Container Camp Day Zero

On the evening before Container Camp we attended the Joyent-sponsored "Day Zero" event at New Relic - an evening of demo-focused presentations around containers. Masterfully emceed by New Relic's Jacob Groundwater and boasting speakers from Mesosphere, Hashicorp and Joyent, I knew we'd be in for a treat. Building Containers in

Turning a stream into an RPC channel

Turning a stream into an RPC channel

Further developing our refrigerator project, you may want to add not only new sensors, but also some new functions like changing the fridge target temperature, starting a defrost cycle, or even turning it on or off. We could expose some of these functions as events to be sent by the

The Linux Container Ecosystem - A pre Container Camp Primer

The Linux Container Ecosystem - A pre Container Camp Primer

Container Camp number 4 is just around the corner on the 15th of April 2016 at Bespoke in downtown San Francisco. As proud supporters of Container Camp, keen Linux Container enthusiasts, and early adopters, we thought we'd take the opportunity to put together a Linux Container ecosystem overview as your

Multiplexing Streams

Multiplexing Streams

In the previous article of this series "Using a Remote Emitter", we showed you how we can easily propagate events between Node.js processes. This next article builds on this, showing you how you to apply a duplex stream to it, inside it, transport several streams, and create independent channels

QCon London 2016

On March 7-9 in London I attended my first QCon. Organised by InfoQ, QCon is now in its tenth year and appears to be going from strength to strength. QCon is a developer conference that aims to appeal to a broad range of developers; from enterprise Java developers to cutting-edge

Using a Remote Emitter

Using a Remote Emitter

In a previous article we covered the Event Emitter pattern, which allows you to somewhat detach the producer of events from the consumer. This pattern may also be useful for providing a means of communication between two processes: process A connects to process B, and they can both send events

Getting Started with rkt

This February, CoreOS announced that their rkt container runtime had graduated to version 1.0. rkt has come a long way since its initial announcement in December 2014, so now’s a good time to take a closer look and consider how it fits into the rapidly changing container ecosystem.

Building a TCP service using Node.js

This is the eighth article from a new series about Node.js. In the previous article we talked about how we can use CouchDB to deliver configuration changes without needing to restart your processes. In this one we'll build a simple TCP service. Building a Web application using a framework

Using CouchDB to store and propagate configuration changes

This is the seventh article from a new series about Node.js. In the previous article we started talking about how you can deliver configuration data to your Node.js processes. In this one we'll see how we can use CouchDB to deliver configuration changes without needing to restart your

Using a singleton module for config data

This is the sixth article from a new series about Node.js. In the previous articles we talked about flow control: how to use callbacks, event emitters and streams. In this article we'll start covering a new subject: configuration. Enjoy! - Pedro Teixeira, CTO @ YLD! (Some of the code samples

The hapi.js eco-system

Overview The hapi.js (HTTP API) framework provides a RESTful API that is a perfect match for projects with large teams working on different parts of the application. It was created by Walmart back in 2011, and right now it's used by a large group of companies. hapi.js recommends

Performance-Driven Development

If DevOps means anything, it's that developers don't just write code anymore for the sole purpose of chucking it over the wall to Ops. In modern teams, developers often manage a lot of infrastructure for their applications themselves. This is thanks to the combination of platforms like AWS and Azure

Using Streams - Readable, Writable, Transform Streams and Flow Control

This is the fifth article from a new series about Node.js. In the past article we covered the Event Emitter, which is a convenient pattern for getting notifications of complex state changes in a decoupled manner. But some objects may be simpler than that: they're a source of data

Using an Event Emitter - Common Use and Edge Cases

This is the fourth article from a new series about Node.js. In the last few chapters we covered some ways of controlling the flow of asynchrnous operations: the callback pattern, using the async package to orchestrate them and using an in-memory work queue. In this article we'll cover a

YLD announces new appointments to Advisory Board

PRESS RELEASE London, 9th December 2015 London-based software engineering consulting firm, YLD, has announced that entrepreneur and former Axon Director, Stuart Hamilton, along with PayPal’s VP of Next Gen Commerce Bill Scott, have joined the company’s Board of Advisors. Stuart Hamilton was a Director of Axon from startup

Post-systemd.conf Fest - videos and slides

As Lennart Poettering of systemd fame put it: Last week our first systemd.conf conference took place at betahaus, in Berlin, Germany. With almost 100 attendees, a dense schedule of 23 high-quality talks stuffed into a single track on just two days, a productive hackfest and numerous consumed Club-Mates I

Building realtime collaborative offline-first apps with React, Redux, PouchDB and WebSockets

tl;dr: remote HTTP APIs enabled the development of native web apps, but they're not really suited to the real world of mobile users. A sync-capable client-side database enables you to build offline-first applications. PouchDB is a JavaScript-based database that runs on the server and on the browser and that

NodeConf Barcelona 2015

21st November 2015 marked the Barcelona edition of the longest running community-driven Node.js conference. As part of the conference - the day after - Tom Gallacher, Hassy Veldstra and Igor Soarez from YLD delivered a hand-on Node.js Performance workshop. Many thanks to the organizers, had a great weekend!

Happy Birthday, YLD!

November 5th was quite an exciting night for the YLD family. Joined by colleagues from both London and Lisbon, as well as clients and friends, we celebrated our second birthday in style. The festivities took place on the 28th floor of the Milbank tower, in an open warehouse-sque space offering

Using a work queue

This is the third article from a new series about Node.js. In the last article we saw how we can use the async package to control the asychronous callback flow. In this article we'll also be using async, this time to provide a queue, which will allow us to

Docker 1.9

With the advent of Docker 1.9 comes a number of ecosystem milestones. The team has now released production-ready Swarm (to orchestrate container deployment) and multi-host networking (to facilitate communication between containers, even as they move between hosts). Dockerfile Perhaps the most interesting update for Node users is the addition

Embracing the Digital Transformation Revolution

There is no denying that the era of digital innovation is upon us. But what exactly is it? This phenomena is roughly defined as "increasing applications of digital technology into the various fields of business and enterprise"*. Not only does it boost the efficiency of a company overall, but increases

Node.js 5!

It's this time of year again, Node.js 5.0.0 has been released and it the next stable release of Node.js. Now, Node.js 4.x.x is still the goto release if you have large roll outs of Node.js within your organisation. 4.x.x will

Orchestrating Callbacks

This is the second article from a new series about Node.js. We began by covering by covering the fundamental pattern for controlling flow in Node.js: the callback. In this new article we'll discuss how we can further use this basic pattern to coordinate asynchronous operations. I hope you

The Callback Pattern

This is the first article from a new series about Node.js. We begin by covering some basics like asynchronous flow control, modules, event emitters and streams. We then proceed to some more elaborate patterns for providing configuration, networking, asynchronous work distribution and data persistence. In this first article we

Node.js 4!

The time has come, a new stable version of Node.js is upon us! (We have also had a minor release since this article has been written). Version 4 is special release for the Node community as it is the first stable release since the reunification of Node.js and

Weaveworks Partnership

YLD are happy to announce a new partnership with Weaveworks. Weaveworks is the software company that develops Weave, the most productive way for developers to connect, observe and control Docker containers. This partnership reflects YLD’s early embrace of Docker as a key part of our approach to continuous deployment

Debugging memory leaks in Node.js - a walkthrough

Memory leaks are quite common in production applications. Fortunately, they usually aren't difficult to find. What follows is a walkthrough of an exercise that was part of the curriculum of a Node.js performance workshop that Igor Soarez and I taught at WDCNZ recently. Edits: - 23/11/2015 -

Nano client donation to the Apache Software Foundation

YLD! just donated Nano to the Apache Software Foundation. Nano is a minimalistic http client for CouchDB that was mostly developed by Nuno Job and Pedro Teixeira. Currently it is maintained by Johannes J. Schmidt. The Nano client donation further strengthens commitment to Open Source and to technological innovation, following

require('lx') goes International

Require('lx') is a meetup group for Javascript developers, lovers, enthusiasts and explorers in Lisbon. Its community organises NodeSchool Lisbon as well as a monthly meetup with talks from the community to the community. Last month the date for the meetup coincided with the presence of most of our London

Getting started with React and Node.js

While building client-side apps, a team at Facebook reached a conclusion that a lot of web-developers had already noticed: the DOM is slow. They did, however, tackle this problem in an interesting way. To make it faster, React implements a virtual DOM that is basically a DOM tree representation in

Nodeschool International Day

Node International Day was a global event, aimed at providing educational web events around the globe. The main goal is to learn Node.js and have fun with it. That’s why I started to look at the event and, quickly, more people got involved. Organizing Fábio was excited to

Container Camp SF 2015: What you missed

For those who do not know Container Camp is a community conference on software virtualization geared towards the infrastructure and deployment of containerized applications. After Container Camp's first success in London, Container Camp is back in action, hosted in San Fransisco and better than ever. First up was Bryan Cantrill,

Using JSCS and jscs-fixer for Atom.io

In this post we'll take a brief look at JSCS and take a peak at jscs-fixer, an Atom.io package that allows you to automatically apply JSCS code-style rules to your scripts. Enter JSCS If you don't know JSCS and decide to visit it's website, jscs.info, you are greeted

The return of Node Tuts

When I first started developing in Node (back in version 0.1) there weren't many resources around that you could learn from. I had to learn mostly by myself, experimenting and reading the node source code. I was then challenged by a friend to produce some screencasts on the subject.

Announcing the Node Patterns mini-book series

tl;dr: New mini-book series about Node-based code and networking patterns here: http://nodepatternsbooks.com I first started playing around with Node back in 2009, shortly after version 0.1 was released. A lot of things have changed insince then: some API changes, NPM happened and grew, the community grew

Skiff: Raft Distributed Consensus in Node.js

The problem At YLD we are building some new customer-facing products, and every now and then we need to decide on which persistent storage mechanism to use for implementing a particular service. We are fans and have used several, ranging from LevelDB, Redis, CouchDB, PostgreSQL, Riak and others. The problems

Node Performance and Security Training comes to London

I’ve seen an app that has terrible performance. It's written in Node. Ergo Node doesn't scale. Q.E.D. Something like this happens frequently on Twitter and Hacker News — mostly because performance is usually an after-thought: often code gets deployed without being properly benchmarked (or tested for security). When

LXJS 2014

On the weekend of 27-29th of June I had the pleasure of attending LXJS 2014, my first LXJS. The Venue The conference was held in Estufa Fria, which I think translates to something like "The Cold Greenhouse". It's beautiful: The conference hall is inside Estufa Fria; you can see it

YLD! Conference Season

Conference season is heating up! We already had Nuno speak at WebRebels about the performance work we often do for our customers Now we are very excited to announce our upcoming events. If you are attending make sure you come and say Hi! LXJS Pedro and Nuno are part of

Node + Angular

On May 15th we are coming to now sunny shoreditch to deliver a training course about using Node.js with Angular. If you care to join us, you can buy your tickets here: https://ti.to/yldio/may-16-london-node-js-angular-workshop See you there!

Adding RSS to your Node.js app with Primus and feedparser

Serving a static website in Node.js is simple: mkdir wtfjs npm init mkdir public touch public/index.html touch index.js Install the node-static dependency npm install node-static --save If you want to use the npm start command you need to replace the script property in your package.json

Migrating a Production CouchDB database with Joyent and Stud

tl;dr Step by step how to install couchdb in ubuntu. But really, you should use iriscouch for your production couchdb needs. If you need help don’t forget to go to #couchdb on irc.freenode.org, these guys are incredibly helpful If you love node.js don’t forget

Digital Ocean Logo

Node.js Deployments with Docker, Dokku, & Digital Ocean

DigitalOcean is a really nice cloud hosting company that offers excellent performance at affordable rates Docker is an abstraction on top of LXC Containers. Docker introduces a workflow that makes operating containers straightforward and lots of fun. Dokku is a tiny program that allows you to easily deploy your applications.


    Recent Posts

    Recent tweets

    Tag Cloud