Frontendrails logo Front End Rails

Monitoring Sidekiq queues with middlewares

Monitoring Sidekiq queues with middlewares

Arkency Arkency 19 July 2017

Sidekiq, similarly to Rack, has a concept of middlewares. A list of wrappers around its processing logic that you can use to include custom behavior.

Data visualisation with D3.js in your application

Data visualisation with D3.js in your application

netguru netguru 19 July 2017

When creating a product you deal with tons of data on a daily basis – think about important information, about your users or details on how they are using your app. It should be reviewed and interpreted regularly – but how to do it efficiently? Regardless of what we are used to, tables are not the most user-friendly way to display data. Most of the time it’s not about reviewing specific numbers, but looking for trends – and this is when data visualisation comes to play.

The Ultimate Guide to API Design

The Ultimate Guide to API Design

Codeship Codeship 18 July 2017

Reading Time: 15 minutes“This article was originally published on Quantum Mog’s Blog by Erich Reich, and with their permission, we are sharing it here for Codeship readers.“ So you need to design an API. Where do you start? Far too often internal services slowly turn into APIs. Hacked together one endpoint at a time. These undocumented spaghetti monsters […]

Realtime with React and Rails

Realtime with React and Rails

Codeship Codeship 18 July 2017

Reading Time: 11 minutesWhen I was thinking about creating something to showcase using ActionCable (websockets) in a Rails app with React, I first thought of building a chat. But everybody builds a chat. So next, I thought about a realtime dashboard. But then I realized I had no data in this demo app with all but one user […]

Rails 5.1 returns unmapped timezones from ActiveSupport::TimeZone.country_zones

Rails 5.1 returns unmapped timezones from ActiveSupport::TimeZone.country_zones

Bigbinary Bigbinary 18 July 2017

Rails 5.1 now returns unmapped timezones from ActiveSupport::TimeZone.country_zones with supplied TZInfo identifier instead of empty response

Non-coding activities in a software project

Non-coding activities in a software project

Arkency Arkency 17 July 2017

Recently in our project, we came up with a list of non-coding activities. Those are the tasks that need be done quite regularly and might be easy to be forgotten.

How to keep yourself motivated for blogging?

How to keep yourself motivated for blogging?

Arkency Arkency 17 July 2017

You got your programming blog, but you don't blog too much? You don't feel like doing it? What can you do about it?

Redesigning GitLab's navigation

Redesigning GitLab's navigation

GitLab GitLab 17 July 2017

After a series of research and brainstorming sessions, we are excited to share with the community our redesign of GitLab's navigation.

Cutting our Blueteeth on React Native

Cutting our Blueteeth on React Native

Giant Robots Smashing into Other Giant Robots Giant Robots Smashing into Other Giant Robots 17 July 2017

Leaving the comfort of the React Native ecosystem and embracing the native frontier with Bluetooth Low Energy.

TIL: How to Correctly Use a Jasmine Spy

TIL: How to Correctly Use a Jasmine Spy

Gaslight Gaslight 14 July 2017

At Gaslight we are all about continuously growing and learning, so we’re starting a “Today I Learned Series”! Stay tuned for more tidbits!

Handle sidekiq processing when one job saturates your workers and the rest queue up

Handle sidekiq processing when one job saturates your workers and the rest queue up

Arkency Arkency 14 July 2017

I saw a great question on reddit which I am gonna quote and try to provide a few possible answers. Ran in to a scenario for a second or 3rd time today and I'm stumped as how to handle it. We run a ton of stuff as background workers, pretty standard stuff, broken up in to a few priority queues. Every now and then one of our jobs fails and starts running for a long time - usually for reasons outside of our control - our connection to S3 drops or as it happened today - our API connection to our mail system was timing out. So jobs that normally run in a second or two are now taking 60 seconds and holding a worker for that time. Enough of those jobs quickly saturate our available workers and no other work gets done. The 60 second timeout hits for those in-process jobs, they get shuffled to the retry queue, a few smaller jobs process through the available workers until the queued jobs pull in enough of the failing jobs to again saturate the available workers. I'd think this would be a pattern that other systems would have and there would be a semi-obvious solution for it - I've come up empty handed. My thought was to separate the workers by queue and balance those on different worker jobs but then that still runs the risk of saturating a specific queue's workers.

How to safely store API keys in Rails apps

How to safely store API keys in Rails apps

Arkency Arkency 14 July 2017

Inspired by a question on reddit: Can you store user API keys in the database? I decided to elaborate just a little bit on this topic.

Why we dismiss negative feedback

Why we dismiss negative feedback

Signal v Noise Signal v Noise 13 July 2017

Those were my physical and mental reactions when an acquaintance gave me some feedback a few years ago. (She told me I had “come across as fake” to her… Ouch!) Why was my first instinct to push this…

Writing Prettier JavaScript in Vim

Writing Prettier JavaScript in Vim

Hashrocket Hashrocket 13 July 2017

JavaScript is an incredibly powerful and fickle language. In the face of quickly evolving frameworks and tooling, it can be cognitively challenging to grapple even with a familiar codebase. Even just having one less thing to think about goes a long way in helping us deal with the rest. Figuring out how to format each line of code is accidental complexity and one less thing we ought to think about.

How to categorize objects

How to categorize objects

Avdi Grimm Avdi Grimm 13 July 2017

How do you categorize software errors? There are several possible axes we might think of: Severity: e.g. notice, warning, error, fatal. Module: what library or group of classes did the error come from? Layer: database, framework, controller, model, view. In Exceptional Ruby, I suggested a different approach for categorizing errors. Rather than thinking of different […]