Archive for the ‘News’ Category

New Customer

Monday, August 25th, 2008

We’re happy to announce that 3 Plus (a swiss TV broadcaster) has chosen Simplificator GmbH to implement a new Tool for their Website. For this project we combine Flex, Amazon S3 and Rails.We can not give more details yet but the technologies mentioned point in the “video” direction. There i said it. When will i ever learn :-)

The Ruby Language Will Reach 4 Million Programmers by 2013

Wednesday, August 20th, 2008

I missed this when it first came out. Gartner sees Ruby as a mayor player for the next five years. Unfortunately, Gartner sells the content they’re producing so normal people don’t get to see it. I came across a german translation where the main points are

  • 4 Million Ruby programmers by 2013
  • Focus on Convention over Configuration gives impressive functionality to developers
  • Rails-Framework is currently the killer app for ruby, other applications will follow
  • Domain Specific Languages will be the strongest attractor for professional developers
  • Tools will mature over the next year

There’s a graph of it somewhere on the web:

Gartner Ruby

Findings: The Ruby Language Will Reach 4 Million Programmers by 2013

Techworld - Ruby faces off against PHP, Java

Ruby Is on the Rise - Application Development

Don’t play with IFS when you play with git

Tuesday, August 19th, 2008

IFS is the ‘intrafield separator’ bash and others use to figure out what a separate argument is - normally it contains at least a space, a tab and a return character. Most applications are immune to changes to this variable so when dealing with a list of files containing spaces it can be cool to reset IFS to a return character only:

godot@eco:~/tmp$ echo “hello” > bla\ bla
godot@eco:~/tmp$ echo “there” > bla\ bli
godot@eco:~/tmp$ for dada in $(ls); do cat $dada; done
cat: bla: No such file or directory
cat: bla: No such file or directory
cat: bla: No such file or directory
cat: bli: No such file or directory
godot@eco:~/tmp$ export IFS=”
> “
godot@eco:~/tmp$ for dada in $(ls); do cat $dada; done
hello
there

Now after all this, some work with loops, convert, imagemagick and some lunch I came back to the same shell and wanted to clone a repository:


godot@eco:~/git$ git clone git@github.com:simplificator/uptimehq.gitInitialized empty Git repository in /home/godot/git/uptimehq/.git/
remote: Counting objects: 4253, done.
remote: Compressing objects: 100% (2658/2658), done.
remote: Total 4253 (delta 1289), reused 4253 (delta 1289)
Receiving objects: 100% (4253/4253), 3.71 MiB | 138 KiB/s, done.
Resolving deltas: 100% (1289/1289), done.
cd: 518: can’t cd to /home/godot/git/uptimehq/.git/refs/remotes/origin
Warning: Remote HEAD refers to nonexistent ref, unable to checkout.

Trying to pull manually gives:


godot@eco:~/git/uptimehq$ git pull origin master
fatal: b3392429416c77e1242c5307f160b51b75c57057 : not a valid SHA1

In the deep confusion which followed I got more very telling errors which I would like to post here.

godot@eco:~/git/uptimehq$ git merge origin/master
fatal: Not a valid object name 897a76b11443dfa7f3ba37a39dcb9831a47d445a
fatal: Could not resolve ref ‘897a76b11443dfa7f3ba37a39dcb9831a47d445a ‘
Merge with strategy recursive failed.
godot@eco:~/git/uptimehq$ git rebase origin/master
Current branch master is up to date.
godot@eco:~/git/uptimehq$ git pull
897a76b11443dfa7f3ba37a39dcb9831a47d445a - not something we can merge

So whenever you get here - check your shells IFS. Or get a new shell.

inplace bugfix

Friday, August 15th, 2008

Tiny bugfix for our inplace plugin. Hitting the cancel button sometimes yielded an error. This was not visible on all browsers. Thanks to Mina for reporting. 

the all new simplificator.com

Friday, August 8th, 2008

With every new project we executed for our customers we postponed the launch of our own website… In one sentence: here is the all new simplificator.com Oh… and expect at least another 18 months until we move our blog to the new design :-)

rwebthumb RubyGem updated

Tuesday, August 5th, 2008

We’ve added support for the Easythumb API to the rwebthumb gem. Just grab the latest version from github (sudo gem update simplificator-rwebthumb) and see the README. rwebthumb is a ruby wrapper for the Webthumb API.   

Resources:

rwebthumb gem updated

Friday, July 11th, 2008

There is a small update of the rwebthumb gem:

  • Added support for the videothumb feature
  • Fixed some bugs
  • Added CHANGES history file
  • Added more tests

Version is now 0.1.0 and you can get it with
sudo gem update simplificator-rwebthumb

RubyGem for webthumb

Thursday, July 10th, 2008

Webthumb is a service to create thumbnails from websites (descriptive name, isn’t it…). It creates different sized thumbnails by default and you can request custom sizes.It offers an API to access it’s services and we wrapped up some code i wrote while on vacation and bundled it as a gem.The code is still a bit clumsy (as i wrote it on vacation :-) ) but it works nice for us. There is already another ruby wrapper for the API but it is not available as a RubyGem and does not expose some of the latest webthumb functionalities so we decided to write our own library. Josh gave us some extra credits so we could develop the API. Thanks. The gem is available on Simplificator’s github repo. To install do following:
sudo gem update --system (in case you are not yet on version 1.2.0 or higher)
sudo gem sources -a http://gems.github.com (only once)
sudo gem install simplificator-rwebthumb

To create thumbnails:
require 'rubygems'
require ‘rwebthumb’
include Simplificator::Webthumb
# main access point for the Webthumb API
wt = Webthumb.new(’YOUR API KEY HERE’)
job = wt.thumbnail(:url => ‘http://simplificator.com’)
job.write_file(job.fetch_when_complete(:large), ‘/tmp/test.jpg’)

For more info check the README file and (currently) the source code. All the features from a the request element are supported but currently not documented. I’ll look into that in some days.If you want to use the Gem you’ll need an account for webthumb. You’ll get 100 free credits every month so it’s easy to try it out.

git Cheat Sheet

Thursday, July 10th, 2008

If you are not a git-ninja (like me) then this cheat sheet by Zack Rusin might come in handy.And: You know you’ve been on vacation for too long if you can not find this fç%& power switch on the printer.

Don’t write from scratch

Wednesday, July 9th, 2008

It’s several years now that I am out of school. I have a BS in software engineering and run my own company. I was taught stuff about compilers, queues, patterns, languages, mathematics, datastructures, … you name it. Asked what I was not learned in school I would answer: “how to fight the urge to rewrite everything”.

To a die hard software writer “rewrite it” seems like the perfect solution to every problem. The silver bullet to all failures in IT. After all the others are just a bunch of loosers losers and I am Mr. Super-Design-Software-Pattern-On-The-Edge-Flavour-Of-The-Day-Framework-User. Just tear everything down and start from scratch. WRONG. WRONG. WRONG. Whenever you have to touch a software system, be it for enhancements or for fixing bugs, and you feel like you should dump the whole codebase and just start from scratch (after all it’s so easy to do it. It probably takes 3 days) step back and take a deep breath. The authors of this system were not just a bunch of idiots. They had reasons to do it the way they did:

  • The business is not as easy as you might think at a first glance
  • Technical restrictions from inside or outside
  • The system evolved over time
  • Your state of the art framework/programming language/tool was not available when the system was written
  • They knew less than you know now (unlikely…)

So think twice. And then think again. Wouldn’t a tiny update or bug fix do ? You need to add new features and the original system was written in Cobol/Fortran/Delphi and you do not have a clue of these languages ? Perhaps you can add the new stuff with your super-duper framework/language and just integrate it. Find someone who knows the language, chances are hiring someone is less expensive as you rewriting the whole system.Yes. This is something I was not taught in school. This was something I had to find out for myself. I made my own errors … not that i tried to write Mozilla from scratch… it was on a smaller project. Lessons learned!

Resources: Years ago I read an article on this topic. I think it was it in Joel’s book ? Anyway. Here it is: Things you should never do, Part 1