Monitoring Sidekiq Queue Latency Using AWS CloudWatch

When you have a Rails app that depends on Sidekiq (and Redis) for processing background jobs, it is critical to monitor queue latency to make sure there are enough Sidekiq workers running based on the volume of jobs at any given time. In Sidekiq, queue latency is the difference between when the oldest job was enqueued and the current time. To take full advantage of distributed job processing, the latency of each job queue must remain very low.
Read more →

m3u8 v0.4.0: EXT-X-MEDIA support

There is a new release of the m3u8 gem available that includes support for EXT-X-MEDIA attributes. This extends the library to support features such as subtitles, closed captions, and alternate audio/video in master playlists. Several fixes and improvements have also been included from contributors recently and it is nice to see there is some interest in the project. EXT-X-MEDIA is handled through the new MediaItem class: hash = { type: 'AUDIO', group_id: 'audio-lo', language: 'fre', assoc_language: 'spoken', name: 'Francais', autoselect: true, default: false, forced: true, uri: 'frelo/prog_index.
Read more →

m3u8 v0.3.0: Playlist Parsing

I just released a new version of my m3u8 gem, this new version provides parsing of m3u8 playlists used in HTTP Live Streaming (HLS). It represents a significant refactoring since the original scope of the project was limited to only generation of playlists. You can now read a playlist into the newly extended object model, modify or add segments/child playlists, and generate a new m3u8 output file. There is a new items array made up of either PlaylistItem instances for master playlists or SegmentItem instances for regular playlists containing MPEG transport stream files (MPEG-TS).
Read more →

m3u8: Generate m3u8 playlists for HTTP Live Streaming in Ruby

m3u8 is a ruby gem facilitates the generation of m3u8 playlists for HTTP Live Streaming (HLS). You can use this to serve up playlists from a rails application for the integration of authentication and other customizations, while serving the actual MPEG transport stream files (.ts) from a CDN. You can also use m3u8 to generate playlist files as part of an encoding / production pipeline. Creating a master playlist for adaptive bitrate streaming is very straightforward.
Read more →

Gull: Ruby Client for Parsing Alerts from NOAA/NWS

I recently published a ruby client called Gull for parsing alerts from the National Weather Service. The core feature is downloading the alerts from the NWS xml feed and parsing them into objects. These alerts contain tornado warnings as well as a slue of other advisories, watches and warnings that can be issued. Why Gull? It’s the type of bird featured on the NOAA logo, otherwise known as a seagull, which sounds better but was already taken in Ruby Gems.
Read more →