I’ve recently been rediscovering podcasts. I’m particularly fond of the NodeUp podcast, but I also listen to podcasts about Rails, Clojure, and Scala. The Scala podcast is by far the most academic; taking a shot every time they say the word “type” makes for a pretty nice drinking game.
For example, the Scala world has two great web frameworks: Lift and Play. It would be nice to hear how they feel, not just about how type safe they are. Granted type safety is one of the main reasons I’m interested in Scala over node/ruby, but programming is about tradeoffs. Things like programmer productivity anecdotes are really worth something to new-comers and are a great fit for a discussion-centric medium like a podcast.
If Scala is going to become a mainstream language, there needs to be more discussion on these touchy-feely and practical subjects. If you know any, please let me know in the comments. Podcasts about Scala are really hard to find.
Yesterday my wife decided to buy yet another sewing pattern book and I decided to tag along. As a Kindle user, there’s usually very little for me to do at a bookstore. I usually just look around the IT section of the magazine rack and thumb through the amazing Ubuntu magazine, or Nikkei Linux. This time though, a magazine called “Otona no Kagaku” caught my eye.
“Otona no Kagaku” is magazine that comes with some kind of sience related device inside that you can put together. There were all kinds of projects from synthesizers to airplanes, all sorts of fun. Kids today are so lucky, I wish I had a magazine like that when I was a kid.
Anyway I’m too old for most of them to be interesting but one of them came with an Arduino board (branded as “Japanino”). Since the magazine cost about as much as a new pre-assembled Arduino + shipping I decided to buy it. The magazine is filled with a bunch of projects other than the one on the cover and explains how to go about doing them. It’s amazing all the cool things people are doing with the Arduino. One guy uses an array of Arduinos to electricute himself in the face it seems. To each his own I guess.
The Persistence of Vision project was really simple to set up. Just a few screws and the website had all the software you needed already. Here’s what the finished product looks like.
The IDE is really simple. It’s amazing how low the bar is to get code onto these things. Way back when (circa 2005) I still had to build a cross-compiler environment. The language is like a C version of Processing, which is really intuitive and gets rid of having to write a boiler-plate event-loop in the main function.
Now I’m thinking about what to do next. At work I’ve been experimenting with a presence system based on bluetooth which automatically locks the computer when I’m out of range. Unfortunately Bluetooth has a pretty long range. I wonder if there’s any NFC shields for the Arduino. It’d be pretty cool if you could use your phone as a smart-card via NFC.
You’ve been using Emacs for how long and you haven’t figured this out yet?
Yup. Up until now I’ve never really needed to actually get etags working in Emacs. I remember trying to figure it out long ago as a newbie and giving up. It’s initially difficult because it’s not as simple as just saying “etags my-src-dir”, though once you have a couple of UNIX tools on your utility belt though, it’s practically as simple as “etags my-src-dir”.
Just show me the code.
Although there might be other more correct ways to do this, the following works fine for PHP:
find . -name '*.php' -print | xargs etags
Woah find and xargs?
etags (unfortunately) only works on files and not directories. Those files also have to be arguments and not stdin. So we need to use find to give us a list of file names and xargs to convert each filename into an argument for etags.
find is a swiss army knife of file search but mostly you can just memorize “find . -name ‘*.filetype‘ -print”. find needs 3 arguments, the directory to start looking in, some condition, and some action. The “.” tells it to look starting from the current directory. The “-name” part means find matching filenames (We use the single-quotes to keep bash from expanding). Finally -print tells it to print what it found one line at a time.
xargs takes lines from stdin and supplies it as the arguments to some other program. Just what we need for etags. Although xargs is as versitile as find we don’t need to supply it with anything, the default behavior is fine.
Ok, now how do I use it in Emacs?
Just use M-x visit-tags-file and point it to your newly minted TAGS file. After that you can easily find out where the hell that class/function is hiding just by doing “M-.” (You can also return to the file you came from by pressing M-*). Of course “M-.” and “M-*” work in a stack like manner so you can keep “M-.”ing to dig as deep as you need to and easy get back by pressing “M-*” and equal number of times.
So the author of Listen has taken code from Quod Libet (including code from my lyrics plugin) and ripped the copyright section (and my name) out and used it in his software. Now the code is GPL so I’m completely fine with him using it, it’s why I write open-source code, but removing my name from it is not cool. Unlike Joe I’m not mad at him, I’m sure he was just confused on how this all works. I’m really glad the Listen author didn’t make a big scene over the thing and started fixing it. I know Joe’s language in his open letter was pretty harsh, but that’s the way he is–Especially when he’s mad. He’s called me a moron on countless occasions because I was being a moron. In Abaakouk Mehdi’s case, Joe called his program ugly, and to be frank it is. One of my friends (Julie) looked at a screenshot of Listen and said “That music player looks way too busy and complicated for me.” and she’s by no means a computer illiterate. I don’t mean that comment to be stop-energy I mean it as a constructive comment. From the screenshots Listen looks like it can be a very cool program. The iPod support is definitly something I’d like to check out.
I think the reason Joe brought this up in an open letter was to shed some light on the whole GPL version 3 issue. Joe, Linus and many others don’t like it. So it’s really important to nab this problem of GPLv2 and GPLv2 and up issue while it’s still small. The licenses are the foundation of our comunity, and have a tremendous power to change the world. It’s a bigger issue than most of the people who commented on Joe’s blog realize.
Quod Libet is the music player I use and occasionally hack on. In the current revision in SVN my lyrics plugin has been integrated into the main player. I also added a feature to the album list view so that you could access the plugins menu from it. Since I’ve been in Japan for nearly 6 months now and stuck with an iBook and iTunes. It feels really good to be working on a program that kicks so much ass it’s on the top ten list in Gnome Files. I can’t wait for the next few releases. There’s going to be a change to Gstreamer 0.10 and hopefully support for a hard drive based music player. From that I can probably work on iPod support.
So after getting the new laptop, and installing the Microsoft Retail Management System software I learn that the plugin system is based on legacy code, and not .NET code like I was told. I became very annoyed that my uncle didn’t know about this earlier because if I had known I was going to be using COM I would have refused. C++ is a very ugly languge and making COM components is a messy process. Luckily for me, PyWin32 exists and makes it very easy to write COM components in Python. And since Python is the least painful languagae for me to code in at the moment, I think I’ll survive.
In Linux, Bonobo (GNOME’s Component Object Model), seems to be pretty much dead, but I know that lots of GNOME programs still use it, especially gnome-panel for it’s panel applets. So it’s strange how dead Bonobo’s development seems.
I need no conclusion!
PlayStation.com – PSP
The PSP is like the Ring of Power. At first I bought it saying that I’d sell it after I played a couple of games. Unfortunately every time I try to send the PSP back into the fires of Mt. Doom. We wants it.
That being said. I have found a couple of practical uses for my PSP because it comes with a Mozilla web-browser. Since my house has wireless internet I use it in the morning to check the news and the weather. When I switch my website to TurboGears later this year I’m want to make a nice PSP portal site with a couple of little web-apps (Todo-list, iCal compatible callendar?, weather and news agregator) And I especially want to make a way I can syncronize my computer with the portal. I also wonder if in the future I can make a program for my treo that’ll download the information from the portal and synchronize it with the palm applications.
I probably wont even do half of all that, knowing myself. The to-do list, bookmarks and feed agregrator maybe. Computer/Palm syncronizing probably not.
Lately I’ve felt pretty unmotivated to do any programming. A couple of weeks ago I felt like I could code everything, and now I barely have the motivation to finish my Quod Libet plugins. I’ve also been thinking of what type of programming interests me the most. I’m not really sure, I guess web programming is the most interesting right now.
Since I haven’t really been doing any programming I’ve tried to spend more time studying Kanji and brushing up on my Japanese. I really wish I could find someone to practice with over here in Puerto Rico. I heard long ago that the University of Puerto Rico has a Japanese club/class that meets once a week. I should ask Ms. Quesada where I can find them.
I ordered my new laptop from Sharp yesterday, The Actius MM20. It’s really small (10.4″) and light, and I ordered the 9 hour battery too. It has a Transmeta processor at 1GHz and 512 MB of RAM, 20GB HD, and integrated wireless. A nice step-up from my current laptop (PII 300MHz, 288 MB RAM, 6GB HD.) Online I found that it’ll run just fine with a slightly modified kernel. I hope I can manage without a custom kernel because keeping track of kernel security fixes on one’s own is a pain. I’m still not sure what kind of Internet connection I can expect at my host family’s house. Doug is convinced every person in Japan has direct 1-10mbps connections to the Internet. I hear that in Japan you have to pay per minute no matter what call it is, even local so It’d make sense if everyone in Japan had DSL/Cable. Even if there’s no Internet in my host family’s house, there should be at the school.
I recommend http://athome.nime.ac.jp/ to everyone going to do a home-stay in Japan. Especially part 3 with the journals. I hope I learn enough that I can avoid a couple of mistakes.
Now I’m running 1.5.1.
I got Adelphia Cable internet today, I’m not impressed, but it works… kind of. The main problem is how slow it is sometimes. Like if it had some strange QoS rule that makes http slower than anything else. There’s also the terrible ping times, my 56k had better ping times! (this is also sometimes.) In general it’s pretty un-reliable at least today. Big Jesus tells me that Adelphia is experiencing network problems, I hope so because I can’t play bzflag and that doesn’t make me happy.
I’m going to really really try to be productive without using my medication, hopefully my brain will get used to it. Currently my plans are to fix my lyrics plug-in for Quod Libet and work on Background Channels. I love the idea of Background Channels because I’m always looking for good background pictures and just leaving my background on a channel would free me from looking for good ones.
I’m also going to have to find a job soon. My dad wants me to work for him probably pulling cables and stuff. Although it would be a good way to get exercise I really want a job where I can practice my Japanese. That’s nearly impossible here though.
<piman> joshk: The suck of GTK and Python is combining to form some kind of ultrasuck.
<joshk> suckimus prime