JAN KUBR

  1. Voice telephony applications developer

    I create flexible voice telephony applications that can change their behavior instantly based on the state of the database and that can integrate with other systems (such as CRMs).

    An example of a voice application is Google Voice. I mainly use Freeswitch, Freec, Ruby on Rails, and Sinatra for such applications. I am the author of:

    Telfa - Virtual PBX as-a-service with easy to use GUI
    Freec - Ruby framework for voice applications using Freeswitch event socket API.

  2. Ruby on Rails web applications developer

    I have been using Ruby and Rails since early 2006 and created or contributed to:

    KPI Library
    Fuga
    Open source
    Flempo
    Telfa (GUI)
    Tutor

I have been working on commercial software projects since 2002 and received my master's degree in Computer Science from Charles University in 2006.

Though living in Prague, Czech republic, I have worked and served clients abroad. I have been called responsive, talented, even a gem. Your high expectations will be exceeded.

Jan Kubr

 @jankubr:

How would you rate your programming skills? About 90% of all programmers will answer "Above Average." http://is.gd/djJ58

Google Voice now available to everyone: http://googlevoiceblog.blogspot.com/2010/06/google-voice-for-everyone.html

Got an email from Amazon saying they want to interview me for a job

37signals are looking for a hosted PBX solution, nice:)

You'll need the latest devise from its repo to avoid infinite loops in Cucumber tests in Rails 3.

Rails: If you need to add devise columns to an existing model, these migration lines did it for me:


t.string    :encrypted_password, :limit => 128, :null => false
t.string    :password_salt, :null => false
t.string    :confirmation_token
t.datetime  :confirmed_at
t.datetime  :confirmation_sent_at
t.string    :reset_password_token
t.string    :remember_token
t.datetime  :remember_created_at
t.integer   :sign_in_count
t.datetime  :current_sign_in_at
t.datetime  :last_sign_in_at
t.string    :current_sign_in_ip
t.string    :last_sign_in_ip

Learned about bundle open , really useful!

Turned on "Inbox preview" in Gmail Labs. Loading becomes more bearable.

Registration for EuRuko 2010 is now open: http://euruko2010.org Should be worth the pain with polcard.pl:)

rails.js (and thus e.g. :method => :delete links) didn't work for me until I added "csrf_meta_tag" to the head of my layout in #rails3

Easy way to do 5 * * * 2,3,4,5 using the whenever gem?

a Ruby regular expression editor: http://rubular.com/

send_file in Rails 3 relies on X-Sendfile support by the web server:

http://bit.ly/9BjO5y

For Apache you'll need to install mod_xsendfile (http://tn123.ath.cx/mod_xsendfile and http://iprog.com/posting/2008/04/compiling_mod_xsendfile_for_mac_os_x) and make sure you have the following in your httpd.conf:

LoadModule xsendfile_module /usr/libexec/apache2/mod_xsendfile.so
XSendFile on
XSendFileAllowAbove on

WavPlayer is flash player designed to play files recorded by a telephone system: http://git.datacompboy.ru/?p=WavPlayer.git

Is having emergencies often a sign of bad management? I think it is.

@jankubr It works if you make the method public in the controller, wtf

default_url_options doesn't seem to work with resources routes:(

Meetings Are Toxic: http://gettingreal.37signals.com/ch07_Meetings_Are_Toxic.php #in

Nice one, "Scope a variable to a block in your template code": http://37signals.com/svn/posts/2144-scope-a-variable-to-a-block-in-your-template-code

Read about ROWE: First time realized the strange difference between the amount of freedom you get in college vs. traditional workplace.

Rails 3.0 goes beta: http://weblog.rubyonrails.org/2010/2/5/rails-3-0-beta-release

Best $10 I've spent in a long time: http://theappleblog.com/2009/04/15/fix-macbook-air-streaming-video-and-overheating-problems/

What Pythonistas Think of Ruby: http://blog.peepcode.com/tutorials/2010/what-pythonistas-think-of-ruby

Funny screencast about a call center in Ruby: http://is.gd/6xvdT #in

Finished reading 'Crossing the Chasm.' What a great book.

Using Tarantula to crawl a Rails app and locate dead links: http://github.com/relevance/tarantula

There are no shortcuts on the path to success.

School - real world = database normalization

"Most of the uber-successful entrepreneurs I know place small bets." Bill Gates wasn't such a risk taker you might think - http://bit.ly/E0U0S

Nice use of a voice app: Have your servers call you when there is a problem - http://www.pagerduty.com

Talent doesn't matter if you don't invest the hours.

More good ones: http://bit.ly/TCCKi http://bit.ly/DVqAJ :)

More on Google Voice transcription (and your voicemail in the public index...): http://bit.ly/17ZnEl

"This is my usual English pronunciation" transcribed by Google Voice as "This is my you know standard formal the yeah." Hmm..

SELECT DISTINCT and ORDER BY - learned a new thing today: http://weblogs.sqlteam.com/jeffs/archive/2007/12/13/select-distinct-order-by-error.aspx

2.5 years old and still so current; product management advice from Tien Tzuo of Salesforce: http://ecorner.stanford.edu/authorMaterialInfo.html?mid=1648

Work on the right thigns, think about product building rather than fund raising: http://www.caterina.net/archive/001196.html

Set up God monitoring for some Telfa processes. Pretty handy: http://god.rubyforge.org/

Your next step: Find 1. What you are passionate about, 2. What are you the best at in the world, 3. What drives your economic engine

Lessons Learned from Three Years of PeepCode: http://nubyonrails.com/articles/lessons-learned-from-three-years-of-peepcode

5 Ways Voice 2.0 Will Change Your Life: http://www.voip-news.com/feature/5-ways-voice-2-0-will-change-your-life-080607/

The eBay "Pez" creation story is a myth: http://www.37signals.com/svn/posts/1814-the-ebay-creation-myth-and-other-corporate-origin-stories

RT @jsgoecke Adhearsion has joined Voxeo to launch Voxeo Labs! http://www.voxeo.com/about/press_reader.jsp?date=072209_voxeo_labs.jsp

Are you ambitious? You should listen to this talk: http://ecorner.stanford.edu/authorMaterialInfo.html?mid=1651 Feel free to skip Q&A.

"SMBs clearly understand the immediate benefits of hosted telephony as an alternative to investing in a premises-based PBX." Wishful thinking? http://broadbandignite.com/2009/07/09/the-future-will-be-hosted/

Top 5 must-read books according to Tim Ferriss and Kevin Rose: http://tinyurl.com/top-books-ferriss-rose

So how do you listen to a sound file when your sound card is not working? Make Freeswitch play it and call in :-)

Google Voice on NBC: http://lifehacker.com/5302430/google-voice-invites-going-out-to-reservations-list

Really enjoyed watching the RailsConf 09 keynote with Tim Ferris. http://railsconf.blip.tv/

Good to Great: Letting the wrong people hang around is unfair to all the right people.

Good to Great: The best people don't need to be managed. Guided, taught, led - yes. But not tightly managed.

Good to Great: No company can grow revenues consistently faster than its ability to get enough of the right people to implement that growth

Might be the first time I used the :lock => true thingy in ActiveRecord

Tom Siebel: IT won't grow faster than the economy anymore, go find opportunities elsewhere: http://tinyurl.com/siebel-opportunities

Good to Great: "Hire attitude, not skills." "Find great people and only then decide on strategy, not the other way round."

Quite enjoying using Passenger in development

OK Festival Lite text2speech engine not so useful..

Installed Windows 7 into Sun Virtual Box

Enjoying Background feature in Cucumber: http://wiki.github.com/aslakhellesoy/cucumber/background

Reminding myself of Ricardo Semler's "Thinking needs to be scheduled just like any other activity"

Migrated Freec from using EventMachine to GServer from reasons that should have been obvious to me earlier

Many Cucumber features I hadn't heard about: multiline strings, tables of data, scenario outline, background, tagged execution

Aslak Hellesoy (Cucumber creator) likes neither fixtures nor factories, generates data in feature files. I second that

Neat gem for testing ActionMailer: http://github.com/bmabey/email-spec/tree/master

Enjoyed Jason Goecke's talk on Adhearsion even though I'd already known a lot about it. Great presentation! #euruko

Another great episode of Venture Voice: http://venturevoice.com/2009/04/fabrice_grinda_olx.html

Added support for events with body to Freec (http://github.com/jankubr/freec)

.sort_by {|c| -1*c.count} is quicker .sort_by {|c| c.count}.reverse

Celebrating first fork of Freec on Github: http://github.com/jankubr/freec/network :-)

Just deployed a prototype of a voice app for a client. Freeswitch + Freec + Sinatra: the combination that can do magic :-)

Personal branding in the age of Google: http://sethgodin.typepad.com/seths_blog/2009/02/personal-branding-in-the-age-of-google.html

Having "fun" with GROUP BY & MySQL: http://rpbouman.blogspot.com/2007/05/debunking-group-by-myths.html

What a joy going home knowing I didn't waste my day on feeds, Twitter, or Facebook :p

Finished Seth Godin: Tribes. It encourages you to lead a group of people with a common interest because it is so easy today.

It's important you don't do it for the money. Only to start a movement and make the change you want to see in the world happen. The money will follow (or maybe not, but you don't care anyway).

It is important you do something that has never been done before. Otherwise you are following and not leading. There is a significant difference between managers and leaders. Managers only try hard to preserve the status quo.

Anyone can be a leader these days, it is easy to spread an idea. Only it needs to be compelling so enough people care.

The way to start a tribe is to connect people around an idea and let them communicate among each other and spread the word further.

"Leadership is a choice. It's the choice not to do nothing."
"This isn't about having a great idea (it almost never is). The great ideas are out there, for free, on your neighborhood blog. Nope, this is about taking initiative and making things happen."

"Isn't it sad that we have a job where we spend two weeks avoiding the stuff we have to do fifty weeks a year?" Not only do you have the choice to like your work, it is the only way you can possibly succeed.

To summarize: If you want to change something and don't do anything about it, you have no excuses left these days.

Just found out you can run the whole IVR menu without charging the caller.

Seth Godin: "Instead of wondering when your next vacation is, maybe you ought to set up a life you don't need to escape from."

Microsoft getting into VOIP: http://www.microsoft.com/uc/voipasyouare/default.aspx The movie is actually quite funny.

The ultimate presentation tool now made available to the whole world: http://github.com/jankubr/slides.rb/tree/master

Finished Ricardo Semler: The Seven-Day weekend. The book is encouraging people to treat employes like adults.

Which is already boring for me.

The great thing about Ricardo is that he not only talks about these things. He practices them! Everything of the above is reality in his - successful - company called Semco. Awesome, a proof that is it works in practice! However, it is not enough "fuel" for the whole book. Watch this presentation of his instead and you'll be just fine: http://mitworld.mit.edu/video/308 . Then go practice it.


Two interesting points though:

  1. "I learned that stress is the difference between your expectations and reality."
  2. Leadership is situational (different people emerge as leaders in different situations).

Prepared slides for my tomorrow's presentation about voice apps in Ruby. The slides are extremely geek-friendly :-) Plus lots of live coding

IT people are known to work too much

Re-learned caching features in Ruby on Rails

Will enjoy these especially: Hash preserves order, Newlines allowed before ternary colon operator, String#each_line

I am my own God (http://weheartit.com/entry/261511)