Monday, October 13, 2008

VimMate - TextMate like editor for Linux

I've been looking for ways to speed up Rails development with vim. So, after installing rails.vim, allml.vim and surround.vim things got faster. When coding, I'm using vim's buffer splitting extensively. This way I can see multiple files all at once. What I was missing was tabs.

I have 24" screen but still, sometimes this is not enough. It was not uncommon for me to have 10 or more buffers on the screen. Usually I work with up to four, which is still bearable, but anything more is really painful to work with. So I wanted tabs, like seen in TextMate. And of course, vim has tabs (did you doubt this?).

Just after I've got tabs working I found VimMate. Go figure. VimMate is TextMate clone, works on Linux and has all the power of vim plus some of TextMate. Killer combo. Compared to pure vim, VimMate feels a bit slow, but hey, what'd you expect from GUI app?

Things I'm missing in VimMate (or still have to find it):
  • keyboard tab switching
  • keyboard shortcuts to file searchfield on the left side
  • how to start vimmate with non-default color scheme
  • how to get console window to show
Combined with a few .vim modules (rails.vim, allml.vim and surround.vim) gives me a quite nice speedup in my Rails development. Exactly what I was after.

Friday, October 10, 2008

Agile Web Development with Rails

I was again blown away by Rails's simplicity and elegance. Of course, I wanted to know more about developing on edge. I've googled "Agile Web Development with Rails pdf" and there it was, plain on the open. Book that says it all.

From what I've seen, I'm buying my copy of this one.

Monday, October 6, 2008

New era of computing is right ahead of us

Did you notice? It's slowly happening. It actually started happening 6 years ago but almost noone noticed it back then. It should be more obvious now...

Computers are at the point of no return. Soon this laptop I'm typing on right now will be thing of a past. A past we'll remember. 30+ years of Von-Neuman technology will soon be looked back at as the era of spectacular achievements, big success stories and amazing evolutionary steps. It is what I think the peak of this computer era. Multicore CPUs are common these days, computer clouds are popping up just about everywhere, everything is connected. How long do you think current technology (which is based on 30 years old foundations) can keep up? Ever increasing CPU clock speed and number of cores, memory hacks to bypass old screwups and similar fun stuff. Where does it all stop?

Let's take your bank for example. You're sleeping sound knowing your bank accounts are safe. Software you're using to manage your bank accounts is brand new addon to few year old system which manuals are long out of date. They just slapped web interface on to it. But under the hood there's still 80x25 style text mode interface which show it's real age. 10+ years old at least. Sure, system is tested, secure and it works. Why change it? Good point, read on.
Video Floppy Disk from Canon.
Remember those 3.5" disketes? Still using them? I don't think so. They were safe bet and they worked. CDs anyone? No, we just have DVDs now. See the pattern? Hardware is changing and is changing very fast. Bet you can't play latest 3D shoot-em-up on your computer without hardware upgrade.


My point is software will change. It has to change to be able to cope with hardware. Your Java or C++ or .NET application is probably using threads already but that's not good enough. You're puting a nice image on your customers eyes and sooner or later they will look trough it and see the real situation, much like what Neo saw in the matrix. Can you imagine having few thousand CPU cores on your desktop computer? No? Few years back noone could imagine computers in every household. "What would ordinary people need computer for?" Rings a bell? Can you truly manage few thousand threads in your current application? How about 20.000 or 50.000 threads?

We, progammers, still have few years to adopt. To make sure we won't be forgotten. To learn. I don't propose we drop all what was done till now. This is good software and we need to stay "backward compatible". But we should look ahead and try to see what's comming. I have hard time imagining programs will run in a single thread on single computer on one location. What it will be like? I don't know. But next 20 years will be fun to watch and participate.

Monday, September 22, 2008

Seth's top posts

Seth Godin, the Internet's well known marketing guy has published his top blog posts, voted by readers. Interesting read, I recommend.

The thing is, you'll lose few hours reading and clicking on all related links (at least I did). But I take it as research, something I'll use in the future, so I think time investment was smart. Thanks Seth.

Tuesday, September 16, 2008

Little things that matters

Is this great or what?

Local news following for web sawy

Few days ago my girlfriend has asked me how I track what's going on in our country. I had no answer. It's pre-election time and whole country is covered with posters of mostly bald headed political star wannabe's (I have nothing against bald headed people, just to be sure). How can I not know what's going on?

Well, I don't watch TV, don't read local newspapers or listen to local radio stations. All I see are these posters standing by the road while driving to work and back home. How can I know who's saying what and who did what to whom. Frankly, I don't even care too much. It's all just different tones of color yellow press for me.

When she mentioned, I should be more aware of situation around me, I instantly and maybe even subconsciously started thinking how I could get relevant info with minimal effort. Browsing all news related web sites was out of the question. While they deliver, it's still too much noise around and it's hard to separate good content from weed. What is kind of strange is that all major news web sites provides RSS feeds. Strange because they're relaying on page views and ads sold. So I figured, they want users clicking on the web site to generate page views, not getting news from RSS feeds and bypassing their money making machinery. Good for me.

So I've writen my own little digg/reddit/YCnews like news page. A barebone and minimalistic news site with relevant information about my country lined up in order of creation. No noise, just pure info, updated every 10 minutes. With only minimal CSS and html, it's perfect for mobile browsing. Just what I wanted.

I've been using this site for a few days now and result is obvious. Now I usualy know about things way before everyone else around me. What's confusing is that they know I didn't start reading local newspapers or watching news on TV, but I still know what's going on. How can that be? :-)

I just love web and it's usefullness.

Saturday, September 13, 2008

Rails 2.1, attachment_fu and MiniMagick

I've just spent 2 hours trying to get thumbnails to work with Rails 2.1 and attachment_fu using MiniMagic as image processor.

This is how the before_thumbnail_saved callback works now:

before_thumbnail_saved do |thumbnail|
record = thumbnail.parent
thumbnail.item_id = record.item_id
end

Sunday, August 17, 2008

Back from US

It's relaxing.

We've seen a lot and it was worth it. Check out our gallery and let us know what you think.

Wednesday, August 13, 2008

Visiting the Valley



A lot has been happening in the last few days, too much to write it all down. Of all things viewed and done, visiting YCombinator was the coolest one. My eyes started to shine when I first saw company sign from the parking lot near by.

YCombinator & Anybots
I didn't met neither Paul or Trevor, but the guys there were so cool and friendly. They showed me what they're working on - live. They fired up the robot and demoed it's capabilities. I've got my first robot-hug! Awsome! And wall of fame is very interesting too.


Google & Apple
Been there, seen almost nothing. They take security seriously, maybe even a bit too much. As a visitor, you cannot even reach Visitor's lounge... Go figure. Google is huge, could easily be called a village or even small town. Apple is smaller but still nice to see. Oh, and Apple's main address is 1 Infinitive loop... because you can drive around main building in almost perfect circle. Nice hack :-)

All in all a fun trip. A big thanks to Anybots guys! You rock!

Saturday, August 9, 2008

America is different




We're here in sf bay, all settled and almost jet lag free. I'm sitting in Aeron chair with 30" screen in front of me. This place, feel and all of he technology around me is pure porn for engineers. Let me start from the beginning.

The 26 hour trip from Ljubljana to San Francisco offered quite some insights on how America works. Business for example. They take it seriously. Not like us, they really push it all the way. On JFK Maja bought Oprah magazine and it has 350+ pages. Oprah's foreword in on page 59. Those 58 pages are all pure commercials. Nothing else! The magazine has articles written on every fifth or sixth page. Everything else is commercials. You can't get away with something like this in Europe. And it's not just Gossip... The Wired magazine I've bought is no different. I expected to be at least as interested as online version. I was wrong. All commercials and only one or maybe two articles worth of reading. It may be just me, but I've expected more from Wired. For a tech-sawy it's worth nothing. But is sells...

Prices. It's a bit more expensive than in most of the Europe. An people still pay. $10 for 2-minute ride it's just a bit too much! I walked. But people still pay. Again, I don't think this would fly in Europe.

SF's vibe. You can really fell it. It's nothing like I've seen or tried before. People are relaxed, kind and mixed in so many different ways. It takes a bit to get used to it. And it's quite windy and foggy.

All in all it's still the best trip I ever had. We'll rent some bikes and cycle the city trough then, we'll head south to visit the Valley.

Thursday, August 7, 2008

D Day

It's 6:30am and we're sitting on the airport in Ljubljana waiting for boarding to begin. It's 1:15h flight to Zurich. Still kind of sleepy, 4:45 is just too early for me.

I only took one book this time, as I belive time will be short once we get to SF. We have some plans, but nothing too specific. Sure, I'd like to see Alcatraz, their sea museum (or something similar) and of couse the famous old little train which drives up&down the hill. But we'll see, I don't really want to spend every day chasing museums and sites t see. The beach with my girlfriend and maybe a cup of tea... That's what I'd like.

Wednesday, August 6, 2008

San Francisco trip gallery

As we'll stroll trough West coast from SF to LA, I'll post some photos and comments on my web album at http://picasaweb.google.com/dh5114/SanFranciscoTrip. Please feel welcome to comment and ask questions.

Sunday, August 3, 2008

Content based advertisement, takes two

The server push technology I wrote about few days ago really got me going. I've came up with so many ways to improve site's responsivness it's almost silly. And I can't stop thinking why didn't someone already exploit this opportunities? Where's the catch?

Site chat and user status updates are one of the first things that come up when you start thinking in reverse order. Event based pushing data in user's direction opens many doors, one of them are named content based advertisement. And I don't mean displaying relevant content based on search terms. Searching in this context will only be reasonable when you first start using Internet. Later, all of your online history will be relevant to things you'll see, find and buy online.

Pageviews and banner clicks are what's bringing money theese days. Unique users also count. Ad generators are sending ads to sites on every search action and page reload. It's quite common theese days to have ads displayed in flash object and rotate them lineary without really knowing what users are doing on the site. What a waste of money.

Why wait for user to do something and then send targeted ads? Why not push relevant data to the user right away? You know on what page the user is, what is the page's content and from where he got here. Why wait for user to do something in order to send him ads? You can even track his mouse movement and look over which words or pictures the mouse pointer is. Based on this information you can decide what ads to show him. All this without user's single action. Just using push, instead of pull.

Pushing the ads to the user based on page content, mouse position, browsing history and maybe even time of the day shouldn't be too hard. It's just updating content of an object on the page with some AJAX javascript. How hard can it be?

Thursday, July 31, 2008

About me

Who am I and why is it so important for you to know who I am?

The question may sound a bit egoistic but I'm OK with that. I'm a Unix/Linux sysadmin turned software developer (call me hacker if you like). I'm what you'd call a whitebeard (as opposed to greybeards, who are even older than whitebeards) in computer years. I'm the kind of a guy you probably don't even know to exists in your corporation.

With 10+ years of proffesional Unix/Linux system administration and 5+ years of various development projects under my belt, I'm the guy you just might need for your next project. And I'm into design now!

Combine Unix/Linux knowledge (clusters, high availability/high performance systems, round the world deployments and such things) with fast and agile development skills in today's most praised programming languages (ruby, python, perl, lisp and some smalltalk) and sense of a good design, you know it's dangerous to have me working for your competition.

Oh, and I also like snorkeling, BBQ and salsa.

Wednesday, July 30, 2008

Server Push with Rails

The web project I'm currently working on just got server-push enabled live web chat. Whole web thing is written in Rails (with Mongrels, Nginx, Memcached and zillion of gems and plugins) and It's quite amazingly simple. I sure didn't expect it to be so simple and straightforward.

First version of this live web chat was made by using Rails periodically_call_remote helper. Every second a request was dispatched to get the fresh set of chat data. This was banging our server quite hard with few tens of users using different chat rooms. We couldn't scale this way. I found several Rails based (or at least being capable of use within Rails) server push options but one stood out - Juggernaut. It uses Flash to keep connection to the client open, supports sending to individual clients as well as sending to groups of clients (with use of channels).

After deploying Juggernaut based live chat code, server load fall dramatically and web app responsiveness increased. It's probably just my enthusiasm but a whole new dimension of possibilities has occurred to me. Presence information and event based actions are just two of what I think endless array of options available with using push instead of standard poll.

Tuesday, July 29, 2008

Working with Apple Mac's is easy (or so they say)

Today I watched my new co-worker as he tried to install OS X on his new Mac mini. Cute little box it is. After struggling for about an hour with single input field (a phone number text field, requires 10 digits) which only allows 8 characters, he decided it was time to see what Google has to say about it. Nice catch, Apple. :-)

He somehow found the way to get pass that screen and went on trough the rest of the installation procedure. About 15 minutes later, the process hanged. Not sure why, he started reading the manual. You know, after trying few times and failing it's wise to look up the answer in the manual. Only he found nothing. Another 15 minutes later, he looked at installation CD (or maybe DVD...) and found big patch of grease on it. And it was originally packed within the cardboard box. Go figure.

About two hours later he was finally ready to do some real, money bringing work. And from this point on his Mac was working flawlessly. He was smiling again.

I (still...) have no first hand experience with Apple computers. After seeing this guy struggle for at least three (3) hours with his brand new Mac mini, I must say I have some doubts about buying one. I mean, for a 12 year Unix/Linux veteran, installing and working with Mac should be like being on a vacation. And since I'm leaving for San Francisco in a few days, not buying one will probably be a huge temptation.

Monday, July 28, 2008

On seeing Apple, Google, Yahoo! and Y Combinator

On 7th of August I'm flying to US to see San Francisco and hopefully Los Angeles. It's almost 24 hour trip from Slovenia (southern Europe) and I'll take 10 days to see the companies I read about on almost daily basis. Who knows, maybe I'll even run into Steve or Larry or Sergey or Paul. I'd realy like to meet anyone of them.