cubeXcontrol - a Rainbow Cube Editor
UPDATE:
Please express your Love and vote for cubeXControl here - Thanks!
UPDATE2:
Apparently the current Version doesn’t work with Windows. I’m very sorry for that, but at the moment I don’t have any Win machine to test this. So please feel free to try yourself and fix it! Thx!
I’m proud to present a first version which was on my this years TODO list for so long, but due to all the changes therefore very less time never got startet. But thanks to the Seeedstudio Rainbowduino Carnival 2010 I got a big motivation boost and found some time to get my fingers dirty again. So check this out, my this years contribution for the carnival:
cubeXcontrol - a Rainbow Cube Editor
Well, you know the mtXcontrol, the Rainbowduino Editor and the awesome Seeedstudio Rainbow Cube I mentioned here ? Now it’s time to bring them together:
cubeXcontrol is an editor to control and create patterns for the 4x4x4 RGB Rainbow Cube powered by a rainbowduino. It comes with an extra window showing a 3D model of the Cube, allowing to rotate in all directions and to zoom. Click on boxes to set the LED color easily.
The editor is of course heavily based on the latest mtXcontrol version, with the latest rainbowduino firmware. Both are unfortunately still in beta stage, but come with great new features like auto port detection.
Get the sources here:
https://github.com/rngtng/mtXcontrol/tree/cubeXcontrol
And the Rainbowduino driver:
https://github.com/rngtng/rainbowduino/tree/master_slave
Happy cub’ing!
AppleScript to create keyboard shortcuts
Last week my company laptop got stolen, so I had to setup my system again using this list. The positive part of each new system setup is you think more and more how to automate your setup..
This time I was really annoyed with setting up keyboard shortcuts, so I came up with this little AppleScript which does the work:
[gist id=652031 file=create_shortcuts.scpt]
The key is ‘GUI scripting’ - a specify way of AppleScript to simulate clicks, keystrokes etc. for *any* (native?) App. You only have to know the ids of the GUI elements which you can get with this very nice tool:
-> http://pfiddlesoft.com/uibrowser
Good source to start your Mac Os X Automation is:
-> http://www.macosxautomation.com
What? - irb extension gem to find your methods
http://www.youtube.com/watch?v=2u3c5z45V8g
If Samuel just would have asked me, I got an answer:
Oldies, but Goldies: ‘Methodfinder’ is a really nice extension for your ruby/rails irb and shipped with the ‘what_methods’ gem. I’m using quite a lot and can’t go without it anymore (aka. I’m too stupid to remember all those method names ;-).
gem install what_methods
http://redhanded.hobix.com/inspect/stickItInYourIrbrcMethodfinder.html
See more hints by Dr. Nic blog here
mtXcontrol sneak preview - rainbowduino beta library goes master and slave
Now, as I’m finally getting settled, it’s time to kick of mtXcontrol development again. So first, I’ll continue working on the raw rainbowduino interaction which is the firmware, a communication protocol and a processing library, all summerized in the Processing library -Rainbowduino-. Current development going on, here, check it out. It’s still in a beta state, but ready and good for testing.
Just to make you curious here some new cool upcoming features:
* support for multiple & cascading Rainbowduinos
* auto port detection
* plug and play
* (auto) firmware upload
* Rainbow Cube support
* updated, more robust protocol
The video above show a quick preview of the upcoming Rainbowduino Firmware release ‘Master and Slave’.
You see two Rainbowduinos, the left one as Master connected via Serial to Mac, the right one as Slave connected via I2C to master. The blinking LEDs are merely debug output, interesting part is the changing brightness of the slave. The command to change brightness is send via Serial, received by the master and forwarded to the slave via I2C. With that multiple rainbowudinos can be connected in a row easily.
And the Best: both run the same(!!!) firmware. The master/slave role and I2C address are auto detected on startup. As easy as that!
Stay tuned!!
SoundCloud it is....
After having enjoyed a wonderful summer with lot of travels and being in more or less ‘offline’ mode, I’m back ‘online’ and I started my new Job at soundcloud.com.
It’s like Fickr but for Music - upload your tracks and share them among the community and fans.
It’s kick ass! ;-) Take a look around the office, check this out: http://www.wechsellook.com/post/read/90
By the time I was working at Qype, I often had to deal with OAuth APIs. Doing example request works to a certain point quite good with a Plugin the for Firefox. But when it comes to Authorized or POST Request you’re stuck!
So I developed a tiny command line client, which allows you to send request easily. It comes as a gem and easily to install:
gem install oauth-cli
After installation, execute oauthc. You either make onetime calls, with giving all required data as parameter, or just go into interactive mode, to get a shell for multiple calls and history. For not stating all connection data over and over again, it comes with multiple profile support, a wizard to create those easily and presets for Twitter and Qype.
See this nifty example call:
oauthc -p twitter get statuses/friends.json
I hope you like it - Bug reports, suggestions, updates go to:
http://github.com/rngtng/oauth-cli/issues
See Readme:
http://github.com/rngtng/oauth-cli/blob/master/README.rdoc
See Source:
http://github.com/rngtng/oauth-cli
Skypehotdeploy - How to autocommit & deploy a file
At Qype we had the problem of a college sending me a file which needed to get into the development trunk and updated on the production system. Problem was, he had
Skype auto accept file,
folder action on download folder.
[plain]
my hotdeploy()
on adding folder items to this_folder after receiving these_items
my hotdeploy()
end adding folder items to
on hotdeploy()
set usr_home to “/Users/tobiasb/”
set prj_folder to usr_home & “Sites/qype_admin/”
set filename to “report_queries.yml”
set srcs to usr_home & “Downloads/” & filename
set dest to prj_folder & “config/” & filename
try
tell application “Finder” to set file_exists to exists srcs as POSIX file
if file_exists then
say “here we go”
do shell script “mv “ & srcs & “ “ & dest
set diff to do shell script “/opt/local/bin/svn diff “ & dest
if not diff is equal to “” then
#set commit to “/opt/local/bin/svn ci –quiet -m’SkypeAutoCommiter: updated report queries’ “ & dest & “;”
#set hotdeploy to “cd “ & prj_folder & “; /usr/bin/cap production qype:hotdeploy FILES=config/” & filename & “;”
#set out to commit & hotdeploy
set out to do shell script “/Users/tobiasb/bin/update_report_queries.sh”
my message(“done”)
say “done”
else
my message(“no changes”)
end if
else
return “no file”
end if
on error the error_message number the error_number
my message(“error”)
say “error”
set the error_text to “Error: “ & the error_number & “. “ & the error_message
display dialog the error_text buttons {“OK”} default button 1
return the error_text
end try
end hotdeploy
on message(msg)
tell application “Skype” to send command “MESSAGE justalii SkypeAutoCommiter: “ & msg script name “to Alli”
#say msg
end message
[/plain]
- updated to Lion -
Here’s a (maybe incomplete) list of my Mac OS X Development system setup. Mainly for me to remember, but maybe a help for you too:
Main Development Setup
Snow Leopard Lion
xCode (or latest iPhone SDK)
Mac Ports, now I prefer Homebrew
Ruby: rvm + rubygems + rails etc.
Database: Mysql 5.1 + Sequel Pro
OpenVPN: Tunnelblick, or Cisco VPN client + Shimo VPN Menubar Addon
Terminal Console Extension: SIMBL + Visor iTerm 2
TextMate + Missing Drawer + Get Bundles + Rails + AckMate …
jEdit + FTP + …
Git + GitX (Experimental)
FTP & Co: Cyberduck
Hudson status: CCMenu
Share Files: Dropbox
Google Chrome
Safari
Firefox + Firebug
Extended Development
Arduino
Processing
Fritzing
Eclipse
Nice to have:
System Notification: Growl + Growl Mail
Read RSS: NetNewsWire Now using RSS within Apple Mail
IRC Client: Colloquy and hide join messages Adium
Skype and Tweetie original Twitter client
Control iTunes: SizzlingKeys Bowtie
Spotify and Spotify Menubar and more goddies
Last.fm: iScrobbler
All Codecs: Perian
Dasboard widgets: IP + App Update
Copy&Paste History: Flycut
Track Work: MacTimeLog
Word replacement: iWork
Keep your Notes: Journler
Extend Finder: TotalFinder
Mail Archiver and other MailPlugins
Install hints
mac ports
sudo port selfupdate
sudo port install git-core +svn +bash_completion
sudo port install ImageMagick +no_x11
sudo port install wget
ruby gems
http://stackoverflow.com/questions/991708/rails-mysql-and-snow-leopard
sudo gem self update
sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
sudo gem install rails
sudo gem install passenger
sudo gem install piston
Safari open always in tabs:
http://www.456bereastreet.com/archive/200812/make_safari_open_targeted_links_in_new_tabs_instead_of_new_windows/
defaults write com.apple.Safari TargetedClicksCreateTabs -bool true
Safari enable Development mode:
defaults write com.apple.Safari WebKitDeveloperExtras -bool true
defaults write com.apple.Safari IncludeDebugMenu 1
Safari Plugins:
http://alexstaubo.github.com/keywurl/
TextMate install bundle
cd ~/Desktop && svn co <http://svn.textmate.org/trunk/Review/Bundles/GetBundles.tmbundle/
>
Well, that’s it! Stay tuned for updated…
BCD3000 Djay Midi Mappings
Some while ago I bought this nice Midi Controller BCD3000 by Behringer. It’s an easy to use device which brings way more fun mixing your MP3. For easy party playing mode I very like Djay, which is a simple but very powerfull mixing software. It now support Midi devices as well!
Unfortunately I couldn’t find any predefined Midi Mappings for Djay and BCD3000. So I created my own. Please download the file here. For now, all basic features are mapped, I may add sophisticated ones soon. It’s hosted on github, so please fork it and add you changes.
Happy DJing!
Rainbow Cube - here it is!
Yay, I finally got my Rainbow Cube from Seeedstudio. It came in various parts which required happy soldering. Now, I can start experimenting and porting mtXcontrol to support Rainbow Cube as well - stay tuned!
My Rails Patch: reload on default scope - committed!
uiuiui, long time no read, as I’m quite busy lately. Just a quick update, my rails patch - fixing ‘reload’ on a AR with default scope - got finally committed - nice:
http://github.com/rails/rails/commit/4db72b702f7faca7da30a64e45daeee13733762a
mtXcontrol meets Launchpad meets Rainbowduino
That’s it! I just released mtXcontrol version 1.1 with lot of updates and improvements. One major improvement is full support for Novation Launchpad: just draw your sequences and display them on your Launchpad! Even better, push the buttons to change the color, add, remove, copy & paste frames. For that mtXcontrol makes usage of the Launchpad Processing library which I released some days ago.
But Rainbowduino support improved as well. I fixed lots of bugs and implemented requested features. Now you can control the display brightness, save up to 10 frames onto the device and serial port is auto detected. In general, I defined an basic API to communicate with the devices, which allows you to add more devices easily (e.g. monome!). With that, all Rainbowduino stuff is moved in a separate Rainbowduino Processing library.
See official mtXcontrol project page for more.
Here it is: Launchpad Processing lib!
Yay, I finally released my Launchpad Processing Library. Please see it’s project page and source at github.
Videos & more are coming soon. (Yes, this includes an updated mtXcontrol Version with Launchpad support!!)
Hacking the Nabaztag
Alright, I spend some time with my new toy Nabaztag ‘Nabaccia’
What confused me most: there have been two Firmware version out there. Some project depend on the old one, some other on the, new Jabber based, version.
Here are some interesting projects I’ve found:
http://nabaztools.sourceforge.net/ (outdated, MAC OS X)
http://sourceforge.net/projects/opennab/ (PHP)
http://code.google.com/p/nabazlib/ (python)
http://nabazlab.sourceforge.net/index_en.htm (windows only)
A working Proxyserver: jNabServer
http://code.google.com/p/jnabserver/
A good summery how to start ‘nabazhacking’ is here:
http://www.saraproft.org/?p=912
http://blog.makezine.com/archive/2006/03/more_nabaztag_hacking.html
A very detailed look into the electronics of the rabbit:
http://www.petertyser.com/2007/03/11/nabaztag-nabaztagtag-dissection/
Forums:
http://nabaztag.forumactif.fr/ (french)
http://www.mynabaztag.de (german)
http://www.nabaztalk.com (english)
Blogs:
http://www.nabaztag-blog.de (german)
Quite complete list of other sources:
http://www.nabzone.com/?frG=/liens.php
GPG - up and running with Snow Leopard and Mail.app
Ok, I finally managed to set up my GPG Mail System. Thanks to the latest version of GPGMail and gpg (1.4.10) (via macports sudo port install gnupg
) it’s running fine and smooth again with Snow Leopard and Mail.app. Perfect!
See MacGPG and GPGMail for more…
UPDATE: btw. to get GPGP work with gmail, check out FireGPG, a nice plugin for Firefox, which works perfect for me on Mac OS X. Unfortunately I haven’t found any Safari solution yet…