HomeRamblings  ⁄  General


Working on a Referral Pre-Launch Site

Since I'm at zero followers, I'm crafting a plan to bring in as many emails as possible in a week's time so I'm not "launching to crickets" as the Harry's founders phrased it. What Harry's did was nothing short of remarkable. They acquired more than 100,000 email addresses in seven days on a referral campaign where they awarded products to those who participated. The more referrals a person garnered, the greater the reward. If you're interested in the whole story, [check it out here](http://bit.ly/2onK38o). I was so impressed with how they ran their campaign, I decided to follow in their footsteps. Since they released their code as open source, I was able to fork it and quickly make changes in preparation to launch my own campaign. I was close enough I could launch, but then I… read more

Making Commitments, Reaching Out

In a very real sense, today is monumental for me. Today, I committed developer resources (not just my own) to my upcoming mobile app. I don't quite have the specs together for the developer, but I have enough now that I can get him started on building some of the foundational components of the app. We're making room in our collective schedule to get this project formally under way. So far, I have built the user management component of the system that allows a new user to register an account and log into the system. We have a little more work to do on the user onboarding experience, but we've got enough that a solid API scaffold is in place in the budding app and I can start assigning user stories to the developer. I'm… read more

Preparing for Countdown

Today, I focused on setting up email and twitter accounts so I could begin to get the word out for [Matchpoint](http://matchpoint.io). When you're getting started it's tough to know what to do if you've never done this sort of thing before, so here's a quick walkthrough on some of the steps I've taken so far. ## Domain name registration The very first thing most online businesses are faced with is registering a domain name. A lot of experts say your domain has to be .com or don't bother. These days, it's mattering less and less if you're .com, .io, .us, or dot anything else. Dot com is cybersquated to the point you have to string three full words together to have find a name that's not taken. When was the last time you strictly judged a… read more

Ground Zero

I am at ground zero for a new venture I'm launching. So, let's talk about what I'm planning and where I hope to go with it. # First Thing's First Let me talk about what I mean by "ground zero" with just a few bullet points. First and foremost, my newest venture is nothing programming or computers, which means... * I have virtually zero followers in my traditional core audience. * No store, no products, no sales * No page views * No Inventory * No mobile app built, let alone tested, approved, and available in the App store. * No marketing, sales, or publication attempt other than limited sharing with a few close friends. # That's About to Change I am about to launch my very first mobile app and it's written in… read more

A Reflection of the Technologies I Built Things With

Sometimes, a random event triggers a walk back down memory lane. That moment came for me the other day when I came across a CDR containing the code I ever wrote the first 15 years of my programming career. For just over 30 years, I've been building software professionally and I have kept backups of nearly everything I've ever written. What somewhat surprised me as I looked through all this old code is the breadth of machines, operating systems, and languages I touched along the way. As I thought on this list, I wondered what all I made use of during my career and wondered what that list might look like, so I set out to compile just such a list. If I used the language, operating system, or platform and built a complete application that was deployed and used… read more

Weak Password will get you Hacked!

# Weak Password will get you Hacked! If you're like me and you are online a lot, you probably have more website accounts than you can count from Facebook and Twitter all the way to your banking and blogging accounts. Today, I got an alarming email from my email provider saying that multiple attempts were made to log into my account from Argentina. Fortunately, my provider blocked the attempt, sent me an alert and I was able to act promptly! How did they do it? Well, over time, the major web services collect a lot of data on break in attempts and patterns of behavior and, whether you like it or not, know your general behavior, frequency, and geographical areas where you log in most. If you live in Georgia and then fly to California and attempt to log into… read more

Ramaze vs. Padrino Benchmarks

I have been developing all of my web-based projects in Ramaze since January 2009 when I switched from Rails to Ramaze. At that time, I did some [benchmark comparisons][1]. The other day, I heard about [Padrino][2], the micro-framework for [Sinatra][3], which is comparable to the [Ramaze][4] micro-framework for [Innate][5]. What caught my eye was the benchmark tests the Padrino folks had run that put Ramaze at the bottom of the stack. I thought to myself, "no way!" and set out to run my own benchmarks comparing Padrino to Ramaze as I know at the very least, Ramaze quite outshines Rails' performance. Something ain't quite right. ## What was tested? There are two things I have grown to love since switching from Rails to Ramaze and that's Sequel as the object relational mapper (ORM) and Erubis as the templating engine. So… read more

A comparison JRuby vs. Ruby MRI with Sequel

For the most part, I stick with Apache 2, Phusion Passenger, and Ruby MRI as my deployment stack. Even so, I regularly foray into other territories to see what's going on in the wide world of Ruby. This weekend, I turned my eyes to JRuby again for the first time in almost 18 months. I wanted to explore how what JRuby would do performance-wise with a database intensive application. I have been doing some data loading from one database into another using [Pentaho's Kettle][1] and that got me curious about JRuby since Pentaho's toolset is built upon Java. Quite simply, my work with Kettle got me wondering, "why not JRuby?" I've been hearing some great things about JRuby and how it greatly leverages the Java stack to bring you all manner of improvements over Ruby MRI, notably scalability on any… read more

Making Ruby talk to MSDE

Getting Ruby to talk to Microsoft SQL Server 2005 is one thing. Getting Ruby to talk to Microsoft SQL Server Developer Edition 2000, has one twist that threw me off for hours. Here, I'll show you how to do and hopefully save you lots of frustration and brain damage from banging your head against the wall. I won't cover a complete Ruby and Rails/Ramaze/Sinatra installation. This post assumes you have that much down pat, so we'll pick up the ball with installing FreeTDS, unixODBC, Ruby ODBC If you're using Ubuntu 8.10, you can get away with installing everything from packages with the following: ~~~ bash apt-get install unixodbc freetds-common tdsodbc \ libodbc-ruby1.8 \ libdbi-ruby1.8 libdbd-odbc-ruby \ autoconf make ~~~ **NOTE: I wrote this article and right before publishing, attempted to replicate these results on both mac OS X and CentOS… read more

What makes a top award candidate, anyhow?

In our local Linux user group mailing list, one of the participant asked the group for recommendations for open source software projects that should be considered for a prominent publication's top 100 awards. The ensuing discussion got me to wondering: What is the purpose behind doing the awards? Most of what I see talked about are all well-known and well-used, such as git, mercurial, word press, joomla, django, and so on. Usually, when I look at a list like this, I'm looking to uncover new and undiscovered projects that have real potential to make a real impact in my daily life and thus was somewhat surprised that such mature projects are being so heavily promoted in the discussions. Its not that I don't think these tools are worthy contenders. Most of them, I have used fairly extensively myself over the… read more

Rails vs. Ramaze Performance Comparison

One of my biggest concerns of late is that my "more than just a little trivial" Rails projects seem to find their way straight into the heavyweight category in no time at all. While I am quite hopeful that Merb being the 3.0 version of Rails will resolve many of the issues I face today, I have no idea when I can truly count on Rails 3.0's arrival at the party. Thus, I have begun looking at other frameworks that are available today. ## Introducing Ramaze One I found is [Ramaze][1]. I have to say that Ramaze is a very minimalist approach to a framework that is actually rather enlightening. For one coming from a Rails' world, it can feel a bit sparse at first. But lately, I'm attributing my lack of comfort to being put on my toes to… read more

Ultraviolet gives new life to Syntax highlighting

I am tired of Google's Syntax highlighter.  If I accidentally switch to Visual mode in the editor and do some edits and switch back to HTML mode, then I lose the class="code" moniker and I have to go through the entire post and fix. Another drawback I have with Google Syntax highlighter is that the page renders without highlighting and then all the code listings change to syntax highlighted text a few moments later. Introducing [Ultraviolet][1], a syntax highlighter supporting over 50 syntaxes and any [TextMate][2] theme.  Ultraviolet is based on [Oniguruma][3], a regular expression library that comes standard with Ruby 1.9. Ultraviolet requires a little more effort for me to cut and paste, but I am definitely much happier with the end results and Wordpress no longer mungs my posts. Only real complaint I have is that I can't… read more

Ramaze and ActiveRecord

Thanks to the great folks on IRC over at Freenode#ramaze, I was able to not only get Ramaze working with Erubis and Activerecord for a pseudo apples to apples comparison of Rails vs. Ramaze performance benching, but I was also able to get Apache 2.2.9 talking to Passenger to Ramaze. This quick post will take you through the basics. ## Environment This post will guide you through setting up the following environment on Ubuntu Intrepid (8.10): * [Apache 2.2.9][1] * [Passenger 2.0.6][2] * [ActiveRecord 2.2.2][3] * [Ramaze 2009.01][4] * [Erubis 2.6.2][5] * [MySql 5.0.67 (assumed installed)][6] To get started: ~~~ bash sudo apt-get install apache2 passenger sudo passenger-install-apache2-module ~~~ Install the Rack, Ramaze, Activerecord, and Erubis gems ~~~ bash sudo gem install rack, ramaze, activerecord, erubis ~~~ ## Establishing Project Now create your first ramaze project with: ~~~ bash ramaze… read more

Changing ANSI colors in Terminal on Macs

Probably the most frustrating experience I have had with Macs so far is figuring out how to change the ANSI colors in Terminal (Terminal.app) so that I can read the outputs of **man** and most especially **ls** and comments in **vi** when colorization is activated and I have chosen a dark background theme. I am using Mac OS X Leopard 10.5.4 at the time of this writing. These are the steps I took to fix that most hideous of all colors, dark blue on black background: 1. Set your terminal theme colors to your liking 2. Set up **ls** to colorize directory listings by default. There are two ways to do this: Either set the CLICOLOR Environment variable or add an alias for ls to include the -G flag. I chose the CLICOLOR flag: ~~~ config export CLICOLOR=1 ~~~ 3.… read more

Configuring ntpd to hand out time to local servers

Syncing your servers to public time servers is one of the most common ways of keeping server times in sync. Apparently the less common approach of configuring one server to sync with public servers and it in turn becomes the authoritative time keeper for the rest of your servers is less well-known. Digging through the copious ntp documentation, I have to say, its some very, very dense documentation mainly because the jargon isn't well translated to a layperson's "How do I?" inquiry. I combed the documentation for days trying to figure out exactly how to set up a server to hand out time to all my other servers. Normally, my Google-fu can pierce just about any need, but "time" "server" "local" and so on are all too common terms in both client-and-server and client-only configurations and by far and away,… read more

Pradipta's Rolodex

Something funny happened last night. A one, Max Archie from Indiana hired an India-based Call Center to find a couple of Ruby developers. Well, by and by, the recruiter mass-mails some 400 developers asking if they're interested. Within about 10 mins, I had to 10 emails of somewhat ticked off developers begging for people to stop replying! Unfortunately, it was getting on late and stressed out developers up after midnight tend to get a little cantankerous and start poking real fun at the world in ways only we can do. Today, we have [Pradipta's Rolodex][1]! [digg link][2] [Reddit][3]. To all developers out there unfortunate enough to get caught in this web, thanks, for you have made me laugh out loud harder than I have in a good while! Cheerios! [1]: http://groups.google.com/group/pradiptas-rolodex [2]: http://digg.com/programming/recruiter_stupidly_CC_s_400_coders_and_one_replies_all [3]: http://www.reddit.com/info/6scl4/comments/… read more

DRYing your Views

Let me start out by saying that I am finally beginning to understand a bit about that magical Ruby block notion and how implementing methods through block passing can really empower you as a Ruby developer. Thanks to, a most excellent [Ruby tutorial][1], I am definitely feeling a good bit more empowered about getting my Views in Rails all DRY'd up. The problem: I wanted to introduce a property editor metaphor for the website I'm working on where properties could expose edit forms for just about any situation, much like wordpress' widget interface does. That is, there's an area of the current page that shows basic information about the property in a read-only (and preferably compact) form, and user could click an "edit" button and exposed an editable version of the properties. The "edit" link becomes a "cancel" link, which,… read more

Hello world!

_Welcome to WordPress. This is your first post. Edit or delete it, then start blogging_ ...and with that, I almost did delete this post to begin start blogging. But alas, every programming example seems to start with "Hello, world!" so I figured this is an appropriate beginning to this blog about myself and programming. (Is this code reuse?) My interests span both programming and hardware, you'll find a mixture of discussion ranging from software development to actually deploying the systems. I have been working with computers since 1984 and had my first consulting gig by 1987 and have been hooked on computers ever since. As I begin this very public journey (for the Internet does not forget!), I aim to focus the bulk of my discussions to the nitty gritty details that often aren't covered in basic how-to's...the things you… read more