Fully remote work for everyone was something that only a few companies did prior to earlier this year. Now, we're all doing it. In this post, I'm going to be discussing the impact this has on the tech industry and how it will change remote working forever.
As mentioned in part 1 and part 2 of this series on Ruby's EventMachine, Thin is where most folks encounter EventMachine for the first time, even if they do not realize it. EventMachine is at the core of Thin and allows for the high concurrency that Thin provides to your Rails application. In this post I will look at Thin's usage of EventMachine.
In this post I am going to demonstrate, step-by-step, a way to A/B test new features from within Ruby-On-Rails using FluidFeatures. FluidFeatures is currently in closed-beta and requires request for inclusion in the beta program. We are looking for enthusiastic A/B testers, so we can get feedback on the service before releasing it to the masses.
In this post I will look synchronous vs asynchronous programming with Ruby's EventMachine, to show that asynchronous does not always mean that your code will run faster. In part 1 of this series on Ruby's EventMachine I discussed the benefits of event-based programming in general. I am a big fan of event-based programming, as you will see in these posts, but I wanted to flip the coin over and look…
In this first post, of a series on Ruby's EventMachine, I will introduce EventMachine and explain why event-based programming is good for your wallet. EventMachine, which just turned 1.0.0 this week, is more than just a gem, it is a new paradigm for many Ruby programmers and is not always easy to just drop into your existing stack. As the name suggests, it gives you event-based programming.
In this blog post I am going to introduce a new service for Ruby On Rails developers called FluidFeatures that helps you manage rolling out new features to your site and provides a way to easily do A/B testing (competing versions of a feature) right in the belly of your code.
Recently, we hit a problem with Ruby's exit command. If something went horribly wrong and it made no sense for our application to continue in its current state then we would abort with exit 1. We use supervisord to manage processes, so in this case when we exited with exit status of 1, supervisord would assume something went wrong and restart the process for us. Or at least that is what we…
In this blog post I will demonstrate a quick and easy way I have found to syntax highlight your Ruby code in pretty colors for your blog posts or other HTML-based display purposes. Please note, this blog post is designed for use with color monitors only, obviously. The focus of this post is Ruby, but this method also applies for syntax highlighting C, C++, Python, CSS, Clojure, diff, Groovy, HAML,…
In this post I will walk you through how to setup your own gitolite server and start hosting your own git repositories. Gitolite is a great tool for doing this and works in a very git-like way for managing users, access-rights and setting up new repositories for collaboration between your team. A common reason to setup Gitolite is to remove reliance on services like GitHub.
Remember, Startup Weekend equates to about 21 hours of development time and that includes brainstorming, planning, talking to mentors, other meetings, eating and a bit of fun. Also, skill-sets between developers do not always line up. The key phrase is “ship it!” whether it is good, bad, ugly or broken. The clock is ticking.
In this blog post I'll go through an example, in repeatable steps, of how to get up and running with the Tornado chat demo on ActiveState's public sandbox for Stackato. ActiveState's Stackato PaaS (Platform-as-a-Service) is based on VMware's open-source PaaS, Cloud Foundry, and offers an enterprise PaaS solution that will run on any public cloud, private cloud, laptop or desktop.
Geohashing is a simple way to encode latitude and longitude and grouping nearby points on the globe with varying resolutions. It was created by Gustavo Niemeyer. This blog post looks at how it's implemented any why it is such an elegant solution for encoding and managing location-based data.
Last week I attended a presentation by James Golick, CTO of fetlife.com. Intriguingly advertised as Scaling a Website to 300 Million Page Views Per Month with
In this post I will look at the technology infrastructure behind Summify.com, a website that strives to make our lives easier and helps us deal with the information overload we all experience every time we sit down at our computers. Summify has aggregated over 200 million stories from the web and serves them up on-demand through a series of different mediums. The website uses Tornado to push…
In this blog-post Bradford Stephens, Drawn To Scale's founder, answers a series of technical, business and personal questions to give an overview of what Drawn To Scale is and where it is going. Who are the founders? What is their background, technology and business model? How were they going to manage other people's big data? Can one tool fit the demands from a broad range of data challenges that…
In this blog post I will delve into the snippets of information available on Quora and look at Quora from a technical perspective. What technical decisions have they made? What does their architecture look like? What languages and frameworks do they use? How do they make that search bar respond so quickly?
In this blog post I will introduce SQLShell and demonstrate, step-by-step, how to install it and start using it with MySQL. I will also reflect on the possibilites of using this with NoSQL technologies, such as HBase, MongoDB, Hive, CouchDB, Redis and Google BigQuery. SQLShell is a cross-platform, cross-database command-line tool for SQL, much like psql for PostgreSQL or the mysql command-line…
Today I received my invite from Google Google Storage for Developers. Yes, like most of us, my life if wrapped in layers of googliness. In this post I'm going to review briefly what Google Storage is and upload the image files, for the images you see in this post, using the Google Storage Manager.
In this post I will explain the concept behind zero-copy, which is feature of the Linux allowing for faster transfer of data between pipes, file-descriptors and sockets. I will demonstrate how you can use this functionality in your Ruby projects using a code example. This functionality has been implemented in C, Java, Ruby, Perl and nameless other languages, but in this blog I will focus on the…
In this post I will define what I believe to be the most important projects within the Apache Projects for building scalable web sites and generally managing large volumes of data.
In this post I will show, in repeatable steps, how to install PostGIS, load in geospatial data found in a KML file and run queries against that data. The focus of this geospatial data will be landslides and our resulting database will allow us to query, using longitude and latitude co-ordinates, the landslide status of a specific geographical point.
Here I demonstrate, with repeatable steps, how to fire-up a Hadoop cluster on Amazon EC2, load data onto the HDFS (Hadoop Distributed File-System), write map-reduce scripts in Ruby and use them to run a map-reduce job on your Hadoop cluster. You will not need to ssh into the cluster, as all tasks are run from your local machine. Below I am using my MacBook Pro as my local machine, but the steps I…
This is demonstration of installing Homebrew, the new Mac OS X package installer. Step-by-step instructions on installing Homebrew and using the brew command.
There are data sources out there, but which data source you choose depends on which technology you wish to get experience working with. The experience should be of the technologies you are using, rather than what the data is. Certain datasets pair better with certain technologies. Simulating the data can be another approach. You just need a clever way of generating and randomizing your fake data.…
This is a common theme I've heard in many of the books I've read. Although, in the books I've read, this pearl of wisdom is phrased a little differently. The way to build a successful business is to help as many people as you can. Apparently, the cash will follow, if you concentrate on the helping part. The number of people you help is also important. The more people you help, the better. For…
In previous projects at MailChannels I have used Flot.js for graphing. There were many reasons I chose this originally. The graphs are interactive and can be
I was just reading An appeal from Wikipedia founder Jimmy Wales, where he is asking for donations for supporting the continuation of Wikipedia, ad-free. I do
I'm getting stuck into learning Ruby On Rails and the topic of which tools / frameworks to use for testing came up. Here's some notes. I'll be reading up on
Customer service has been on my mind recently. Funny, because I do not currently have any customers. I've been reading (listening to an audiobook, but it sounds
I've been meeting other Vancouver entrepreneurs at various networking events and discussing ideas with them. A common theme I'm seeing is that most of them are
This is a follow-up to my recent blog-post on Working With Large Data Sets. That post had some interest, so I thought it would be a good idea to go through the
A situation in which an entrepreneur starts a company with little capital. An individual is said to be bootstrapping when he or she attempts to found and
For the past three and a half years I have been working for a start-up in downtown Vancouver. We have been developing a high performance SMTP proxy that can
When I signed up to Apple's iPhone Developer programme I had full intention of developing some really cool apps. It has not happened yet, but I have been able
Gmail Priority Inbox is a great idea. Prior to this the Inbox was split into 2 levels - Inbox and Spam. This Priority Inbox creates a third middle level, which
$200,641 has been pledged for the development of Diaspora, the decentralized web implementation, which intends to replace Facebook with a version that is
This week I attended Mobile Geeks Vancouver where we were given a presentation by Samir Agarwal, Head of Maemo Operations at Nokia in Mountain View, California.
Well, I guess I have to be now, because I have just won a Samsung Galaxy Spica Android phone from Rogers. They kindly donated it to the Vancouver Android
After seeing the iPhone 4G on Engadget and the front facing camera that will be included, I started to think about what Apple intends as the future of the
This is what I've been looking for all my life. Well, all my take-a-screenshot-to-help-explain-which-button-to-click-on life, anyway. It doesn't happen very
I recently purchased my first iPhone. Here in Canada, like every other country, there's only one provider of the iPhone, which is Rogers. I've really not
I'm finding the battery 3G iPhone is dying very fast. Hopefully the 2.1 iPhone firmware update being released on Friday will do as they say it will and make the
Like most people nowadays my computer's music collection has grown out of all proportion. I have more music on there than I could ever hope to listen to.
I use Windows on my iMac using Parallels and Firefox runs very well. There's not really anything I cannot do, since it is actually the fasted experience of