citizen428.blog()

Try to learn something about everything

Some Quick Ruby Tips

Good news for OS X users: Priit Haamer provides documentation for Ruby 1.9 and Rails as dictionaries for Dictionary.app, which makes them searchable by Spotlight (Ruby documentation, Rails documentation)!

There also was a nice discussion over the last few days on Ruby’s Most Underused Keyword, which is quite an interesting read (make sure you don’t skip the comments).

Last but not least I want to point out isitruby19.com, a website that tests gems for their compatibility with the newest Ruby release.

Zber Fubrf!

Playing with Shoes is kinda addictive, so I wrote my third little app for the Shoebox. This little experiment does ROT13 which in itself is lame, but it was a good way to see how to read from and write to the system clipboard. Altogether this has 20 lines of code, of which 4 only consist of the word “end”, so I think Shoes really succeeded in providing us with a tiny and easy to use cross-platform toolkit :)

Hint: If you don’t understand the title of this blog post, the little app mentioned above might be helpful…

Babysteps

While writing my second Shoes app I ran into the problem of how to require a gem from within Shoes. Luckily the truth is out there, but I wanna share it with you nonetheless:

1
2
3
4

1
2
3
4
<span class='line'><span class="no">Shoes</span><span class="o">.</span><span class="n">setup</span> <span class="k">do</span>
</span><span class='line'>  <span class="n">gem</span> <span class="s1">&#39;foo&#39;</span>
</span><span class='line'><span class="k">end</span>
</span><span class='line'><span class="nb">require</span> <span class="s1">&#39;foo&#39;</span>
</span>

Enjoy!

RubyLearning Got a New Mentor With Shiny Shoes and a Mac

Since I currently have quite a lot of time but am slightly on the poor side (as we all know: ‘money = has_time ? 0 : loads.to_i’) I decided to join batch 10 of RubyLearning’s free online core Ruby programming course. In my opinion the course is very good, so if you always wanted to learn Ruby but couldn’t find the motivation alone, definitely give this a try! But since I myself am not exactly new to Ruby, it so happened that after the first week of the course I now joined the RubyLearning team as a mentor. Glad to be part of the gang, folks! :)

Yesterday I blogged about my first experiments with Shoes and thanks to some feedback by ashbb a newer version of the Little Helper is now available. And since I plan on doing some more experiments with Shoes, I also started a repo called littlesteps on Github where I will keep the source for all those nice little application.

Finally a bit of good news for all you Ruby on MacOS X fans out there: there soon will be new versions of the Ruby One-Click Installer for OSX for Ruby 1.9.1! :) The maintainer is a friend of mine, so I tried to convince him to include rspec and cheats in the next release, let’s see if we’ll get them…

Some links:
waveninja’s Ten Steps in Shoes, part 2
ashbb’s Shoes Tutorial

The First Steps in New Shoes

If you haven’t heard about it yet, Shoes is yet another ingenious brainchild of Ruby hacker extraordinaire _why. Here’s the project description from the website:

“Shoes is a tiny graphics toolkit, designed for beginners. But make no mistake: this is real programming. You can make real, colorful apps in Shoes.”

Since I’m always interested in multi-platform GUI toolkits (and everything _why does) I finally took some time and wrote my first Shoes application yesterday. So I now proudly present the Little Helper, a tiny application for people receiving hourly wages to calculate how much they make a month. To get a few things straight: this is not a great program. It’s not even a necessary program. Ok, it’s hardly a program, just a quick hack. But it was an excellent way to get a first impression of Shoes, which is as follows: As somebody who never worked with it before, it took me a very small amount of time and exactly 33 lines of code to have a working GUI application. No need to learn an interface builder or anything. I didn’t even really have to read the built-in documentation, looking at how other apps do stuff was enough.

So how is my first impression of Shoes? Good, actually very good. While the toolkit is somewhat limited in controls (which is a feature, remember it’s a simple toolkit), it’s straight-forward and easy to pick up, so it’s definitely something I’ll consider for writing quick GUI apps. This blog is likely to see some more Shoes related posts in the near feature, since I signed up for RubyLearning’s upcoming Shoes course.

Links:
The Shoebox
waveninja’s 10 steps in Shoes

Freie Editoren Braucht Das Land

Geht es um Text-Editoren für MacOS X führt kaum ein Weg an TextMate vorbei, als freie Alternative ist Smultron sehr beliebt.

Mit MacVim steht nun aber auch endlich ein vernünftiger Port des Unix-Veteranen Vim zur Verfügung, welcher nichts mit der veralteten Carbon-Version zu tun hat. Vim hat zwar eine deutlich steilere Lernkurve als andere Editoren, hat man die Bedienung aber einmal gemeistert, wird man mit ungeahnter Flexibilität und Effizienz belohnt. Da MacVim typische Tastaturkürzel wie ?Z, ?V und ?A versteht, können sich Neulinge langsam an die Bedienung des Editors heranzutasten ohne sofort eine Vielzahl an Kommandos lernen zu müssen. Darüber hinaus bietet das Programm transparente Hintergründe, einen Vollbild-Modus sowie volle Unterstützung für Multibyte-Text. Insgesamt eine sehr gelungene Portierung, welche die Vorzüge von Vim und MacOS X optimal verbindet.

Links:
MavVim FAQ
The Vi Lovers Home Page
Graphical vi-vim Cheat Sheet and Tutorial
Meine .vimrc (ausführlich kommentiert)

(Originally published by me on open.source.mac on Jan 29th 2009.)

Anniversaries All Around

What a weekend for celebrations! On Saturday this blog turned 4 (first post, first “real” post), on Sunday it’s been exactly one year since I left Austria (although I did go back for 6 days around Christmas) and today is Australia Day. I had a great weekend and the weather actually was nice for a change. Sunshine and lollipops all around… ;)

Werbefrei

Werbung in Webseiten ist lästig, da sie nicht nur die Ladezeit der aufgerufenen Seite unnötig erhöht, sondern – besonders im Fall großer animierter Flashbanner – auch von der Benutzung der Seite ablenkt bzw. den eigentlichen Inhalt manchmal sogar gänzlich verdeckt. Aus diesem Grund gibt es auch diverse Tools um sich ihrer zu entledigen, so zum Beispiel das bekannte Firefox-Plugin Adblock Plus. Anders sah es da bisher bei Safari aus, wo diverse Werbeblocker gemeinhin als Hacks implementiert wurden, welche einerseits die Stabilität des Browsers beeinträchtigen konnten und andererseits nach Updates auch oft den Dienst verweigerten. Damit ist jetzt aber Schluss, denn mit GlimmerBlocker gibt es endlich eine stabile und zukunftssichere Lösung, welche darüber hinaus auch noch browserunabhängig ist.

GlimmerBlocker ist als HTTP-Proxy implementiert, welcher bequem über ein PrefPane konfiguriert wird. Bei der Installation werden auch die Netzwerkeinstellungen automatisch angepasst, so dass alle Applikationen welche ihre Proxykonfiguration von dort beziehen von nun an den neuen Proxy verwenden (Firefox oder der Windows Messenger müssen manuell konfiguriert werden). Diese Architektur erlaubt es GlimmerBlocker und den eingesetzten Browser unabhängig voneinander aktualisieren zu können ohne Wechselwirkungen befürchten zu müssen. Allerdings hat dies auch zur Folge, dass gewisse Funktionen die man von anderen Werbeblockern kennt nicht zur Verfügung stehen, so z.B. das Blockieren eines Bildes per Rechtsklick oder das Filtern von Drittanbieter-Cookies. Durch seine vielfältigen Konfigurationsmöglichkeiten und Flexibilität (CSS-Regeln, JavaScript und HTML-Transformation) macht GlimmerBlocker dieses Manko aber durchaus wett, besonders nett ist dabei die Funktion den Proxy-Server im Netz freizugeben, so dass dieser auch von eventuell vorhandenen iPhones, iPods und anderen Computern verwendet werden kann.

GlimmerBlocker ist freie Software und steht unter der GPLv3.

(Originally published by me on open.source.mac on Jan 14th 2009.)

Nützliches Für Die Kommandozeile

Nachdem MacOS X ja bekanntlich über einen Unix-Kern verfügt, steht ein Großteil der bekannten Kommandozeilen-Werkzeuge zur Verfügung. Zusätzlich gibt es aber auch noch einige macspezifische Kommandos, von denen wir heute einige vorstellen wollen.


  • pbcopy / pbpaste: mit Hilfe dieser beiden kleinen Helfer hat man von der Kommandozeile aus Zugriff auf die Zwischenablage. So kopiert z.B. cat .ssh/id_pub.dsa | pbcopy einen öffentlichen SSH-Schlüssel in diese, so dass man diesen dann einfach mittels Apfel-V in der grafischen Oberfläche einfügen kann. Analog kann so im GUI kopierter Text im Terminal verwendet werden, beispielsweise um diesen mit “grep” zu durchsuchen: “pbpaste | grep foo

  • say: dieses nette Tool erlaubt die Verwendung des systemeigenen Speechsynthesizers in der Shell: say “Hello”. Alternativ kann man mit dem Parameter “-f” auch ein zu lesendes File übergeben. Standardmäßig kommt dabei die in den Systemeinstellungen verwendete Stimme zum Einsatz, dies kann mittels “-v” aber geändert werden. Dies ist einerseits eine unterhaltsame Spielerei, kann aber andererseits auch von echtem Nutzen sein, zum Beispiel wenn man über die Beendigung eines lange laufenden Shell-Prozesses benachrichtigt werden will, in diesem Fall einem Download mittels curl: curl -O http://link.to.file/bigfile && say “Download finished”

  • softwareupdate: dieses Kommando erlaubt das Einspielen von Systemaktualisierungen von der Kommandozeile. So zeigt etwa softwareupdate -l eine Liste aller verfügbarer Aktualisierungen, während softwareupdate -i -a alle verfügbaren Updates automatisch installiert, womit es sich hervorragend für die Automatisierung mittels at oder cron eignet.

  • screencapture: OS X-Neueinsteiger fragen sich oft wie man denn auf einfache Weise einen Screenshot erstellen kann, die nicht unbedingt intuitive Antwort lautet Apfel-Shift-3. Alternativ kann dies aber auch von der Kommandozeile erfolgen. So erzeugt beispielsweise das Kommando screencapture ~/Desktop/`date +"%Y%m%d"`.png einen Screenshot mit dem aktuellen Datum (im Format JJJJMMTT) auf dem Desktop des jeweiligen Benutzers. Das Tool verfügt über einige Parameter, mit denen sich auch interaktive Screenshots (Apfel-Shift-4) anfertigen lassen.

Viel Spaß beim Arbeiten mit der Kommandozeile!

(Origally published by me on open.source.mac on Jan 21st 2009.)

Blog Reactivated, Feedburner Feeds History

Although I do love my Soup, Twitter and all those other microblogs, tumblelogs and whatgotyou, I recently feel the urge to sometimes write proper long blog posts rising again. Therefore I once again resurrected this blog (I slowly start feeling like the George Romero of blogging), gave it a proper facelift and am now ready to roll again.

On a related note, I’d like to inform you that my 2 Feedburner feeds will get deactivated in 30 days. To be honest, I can’t even remember why I got them in the first place, but I’m pretty sure I had a really good reason back then (“Are you pondering what I’m pondering?”). Anyway, there’s still plenty of subscription options here and on Soup, so you really don’t have to stop stalking me if you don’t fell like it.

Copyright © 2016 - Michael Kohl - Powered by Octopress