Graph your Airport Express / Extreme data throughput and more.
November 6, 2007 on 6:44 pm | In Code, Hacking, How-To, Personal WorkIn an earlier post, I asked for your interest in a how-to on graphing several network statistics using MRTG, an open-source application that generates graphs using data pulled from SNMP. I used an Airport Extreme (802.11n, gigabit) for this, but it should work with Snow / Graphite Airport base stations and up (Express and Extreme). For other routers, your mileage may vary, and it may even not be possible, so I decided not to make a guide for anything else than Apple’s routers. If you want to have graphs in your desktop, updated in real time, as seen here, read on!
Continue reading Graph your Airport Express / Extreme data throughput and more….
My personal Comm Station.
November 4, 2007 on 5:46 pm | In Code, Graphics, Interface Design, Open SourceI have been working on a few technical things over the course of the weekend; first meshing my home wireless network by letting two routers form a single network, and after I was done, setting up MRTG (Multi-Router Traffic Grapher) for my Airport Extreme, which is the border gateway.
MRTG produces pretty graphs of networks statistics, and I integrated them into my Leopard desktop using a space station icon I am working on, a bit of Photoshopping and Geektool 2.1.2 (since the website is down, I’ll host it here for the interested). Geektool, in turn, is a preference pane that lets you show console output or images on your desktop, refreshed at a certain interval.
I’ll let the result speak for itself (click for larger version over at flickr);
If there’s any interest for it, I’m willing to write a nice how-to for setting all of this up easily. Drop a comment if you want to see such a post.
Computer Art History, only hardcore.
November 3, 2007 on 7:21 pm | In Code, Design, GraphicsI was going on a trip today and I was loading some videos on my iPhone of DEFCON 15. DEFCON is a conference in Las Vegas for security professionals with many ludicrously technical yet casual talks. I found that the Defcon Archive website didn’t offer the videos of this year’s conference up for download, but an excellent blog did; Roysac’s blog also had a small side note of a video dating back a few years, but certainly worth sharing.
This video (over an hour) goes into detail about text art. You have probably seen ANSI or ASCII artworks before in your life, but this is the most complete video I have ever seen about its development and background. Going back a thousand years before the dawn of computing, the speaker demonstrates how humans have been making text art over the ages and how it reached a spectacular peak in the age of BBS’es, before the dawn of the World Wide Web. “Underground” art groups were competing on bulletin boards for pure honour, making textual artwork (sometimes even animations) with painstakingly mundane ‘manual labor’. If you decide to see just one bit, check the last third of the movie for some pretty insane ‘textmode’ 3d animations.
The Roysac blog features a lot of information about the BBS scene, and specifically the art culture around it. Worthwhile addition to the artistically inclined geek’s RSS feeds.
iPhone Dev Center opens.
October 24, 2007 on 12:11 pm | In Code, Interface Design, iPhone
Apple opened the doors of its new ‘iPhone Dev Center‘ website, mainly an ADC on iTunes page where you can download several high-quality video sessions for developing rich web applications tailored to the iPhone.
You can whine about native applications all you want, but this is very interesting to people even looking to just make a second stylesheet for MobileSafari viewing (like me) and get some good pointers on the difference of desktop and iPhone / iPod interaction.
Edit; Jimmy from Gosquared has now registered the (iphonedevcenter.com) domain name.
Art, Design, Programming, Junk food and cuisine.
September 17, 2007 on 8:51 pm | In Code, Design, RamblingsI have an employer with whom I’ve got a very long working record now. That is, he’s one of my longest-running clients, with whom I also have a very good working and talking relationship. We’re always developing new concepts, whether it be in icons, interfaces or other fields of life unrelated to software (hi, D!). Lately, while we were exploring things, we were looking over websites like istockphoto - websites where people can upload and buy stock graphics. Most people I try to reach with Icon Designer and my blog aren’t the people who get their graphics at those places. When I am appealing to people who want to hire me to make custom graphics, it’s like they are pursued go to a very exclusive restaurant that caters to them. They could go to the Fast Food King around the corner and eat what everybody with a disregard for personal health eats, and that’s basically the choice at hand. Considering most people I want to reach want to sell their product, let’s say in this metaphor they are people who need to sell their body. It’s easy, fast and cheap to eat junk food. It’s also bad for them in business.

Now, I don’t want to generalize to say that all stock art is bad. Sure, some stock art can look very good. The problem with stock art is that it’s akin, but worse than, going to a company like “Logo Farm 2000″. This company doesn’t exist (hopefully) but they make a logotype for $200, in 2 days, with 99 designs to choose from. This company also doesn’t really need a brief for the design; a company name will do. With stock art, you buy something and integrate it into your visual identity; the imprint you leave on people, visually, and the emotions and messages you convey are a part of that. With stock art, you go off on your own blind faith in your judgement to chose whatever you like and put it into a context where you feel it fits. There are a few problems with this.
A. Stock art is not made for your company. It’s not made for your product. It’s simply not made for you.
B. Most people are not designers.
Design, especially in logo’s and icons, isn’t about ‘art’. Creativity helps make new, innovative, and inspiring metaphors and ideas to lay a foundation for a well-executed and polished design. Design itself is all about solving problems and finding a great solution for it. There is purpose in all things, in a sense that it is very akin to the development of applications. These two fields meet in the type design business, where people develop a lot of little solutions to make one, unified working whole for which they sell licenses, exactly like software. Although in the software and typeface business, there’s also a market to make custom software for a particular case, which is almost the same as the work I do.
Coming back to my point, if I design something for you, it wouldn’t be cheap. I have had enough email transactions in which people have had second thoughts about the price of my services. I don’t really make concessions (in rare cases) - I’d much rather point you to this post. It surely won’t be as cheap as a logo farm or stock art. The design I make for you will benefit from the working knowledge I have as a full-time designer; I’ve been living and breathing visual design since I was born, and have been sustaining myself with it for years. When I design something, I don’t feel like I’m sitting behind my desk ‘doing my job’; I feel like I’m doing what I was put on this Earth to do. I will strive to create something that you will completely agree to in every aspect; it will communicate to people, at a glance, what you want it to communicate. It’s a unique graphic, tailored to you. It’s also the visual identity of your product, or your company; something that’s hard to put a price on. You can look around you for examples of visual identities; they are ubiquitous today. I’d happily ask some other clients about what they think of the final product I delivered to them; I strive for something that will change your perception of this indefinitely. You’ll start craving the cuisine and never even bother to consider junk food.
Development, for applications, is considered blindly outputting code where the problem is -a- problem, and the only solution is the right one. Non-developers rarely see programming as a creative process, while it’s a very creative one, that touches art on as many (if not more) fields as design. Design, nowadays, is integrated into all the aspects of our life. Everything you meet has been involved with a process of designing visuals for a purpose. Think about type design again; making typefaces changes the actual appearance of our language. You can truly invent in every choice you make. It is exactly the same for software. They’re also goods which require purchase and installation to be useful; that’s much less akin to designing. If you develop software, every choice you take is important and has everything to do with design. Still think of it in black and white? Consider scripting ligatures in OpenType fonts. This means you have to script in certain conditions to make automatic letter contractions work. Great fonts have this. Is this design? Most definitely.
I have presented two matters in which I think people don’t see black and white and people fail to see the weight of custom design. I want to show you, and many others, that design is such an important matter, that we should be grateful for every developer, designer and artist out there. In reality, we are all working together for a grand goal; making everything better.
Truths on Resolution Independence.
May 31, 2007 on 2:10 pm | In Apple, Cocoa, Code, Design, GraphicsLooking back, the Iconfactory’s post on resolution-independence has some holes in it (and looking back now, this post has too - see the end of the post and the comments).
Why, you ask? They claimed that PDF’s in the user interface as a new format instead of the current TIFF files, the entire OS would come to a screeching halt, that icons would go beyond megabyte sizes and general mayhem would throw all resolution-independence craving Mac users into a purgatory. We knew different then, we know different now. A few months back, I posted about the ‘new’ Oxygen icon suite for KDE, being all SVG-vector based, and it didn’t wipe Linux off the face of the Earth. Instead, some optimized SVG files and rendering tricks made it work quite good, and these days, some ‘dock’-applications for GNU/Linux put the SVG’s to good use.
You can test this kind of stuff on OS X too, you know. First of all, as we all know from the rather public Resolution Independence segment of the “Leopard Features in Cocoa” session, free on the ADC Online iTunes page that we can define image resources of varying DPI values. You’d have the same size images if you open them in, say, Preview, but once zoomed in, it’s obvious that one contains four times as much pixel data. Assume that drawing units (points) are independent of screen pixels - if you take a 100*100 point image with 72 DPI, it’s 100*100 pixels. if you take a 100×100 image with 288 dpi, you get 400*400 pixels, but this 288 DPI image isn’t ‘larger’ on-screen; it would be as large as the 72 DPI image on a 288 DPI screen.
But you can be more flexible with vector resources. Now, I wouldn’t really use my own icons in vector format, because it -would- put the OS to a screeching halt, but we all know that there is no plan to make the Dock icons vector - instead, we are simply putting 512 pixel icon resources in all new ICNS files to keep the scaling possible. Toolbar icons, on the other hand, are often very simplified graphics. Take the GNOME Tango icon set’s trash icon as an example;
![]()
As you can see on the right, this SVG icon has a 72 dpi version in which the dark outline is exactly one pixel wide - we could compare this to toolbar icons, which generally have the same characteristics. One pixel-outlines, and often a lot of pixel-art to get it all looking proper in the 32*32 pixel space. No more! In OS X 10.5, we can do it the Tango way. It takes two to Tango, doesn’t it? In our case, one PDF vector resource (we don’t generally use SVG’s, OS X has a PDF graphics subsystem with Quartz) and either include a DPI-ready vector resource in the PDF (one that has a 1 pixel border on 72 DPI, for instance), or a separate file (a multi-representation TIFF) that is used with a little bit of Cocoa’s help. Apple has been kind enough to give you something to grab the screen’s DPI value and thus, do something with that. In the session, a solution like this was suggested;
NSImage (pointer) Name=Imagename Size={100,100} Reps=(
  NSBitmapImageRep (pointer) Size={100,100} Pixels=100×100
  NSBitmapImageRep (pointer) Size={100,100} Pixels=400×400
)
Of course, assumed here is that we are talking about our earlier resources; one 72-dpi 100*100 pixel image, and a 288 dpi 400*400 pixel image get put in place conditionally. Cocoa will chose the resource accordingly. If we can, however, we should use vector resources. They won’t ever give problems because they scale with our interface - you can set the PDF as the icon resource and as the workspace scale factor gets higher, the graphic scales accordingly and loss-less. I hear you say that perhaps, some high-end systems with high scale factors are able to render vector graphics of increased complexity without too much strain, and all systems with a smaller scale factor (I assume laptops and low-end desktop systems) don’t really want to render out vector graphics because they are both hard to parallelize and take battery life in the case of portables. Although there is an argument that rendering out vector resources smaller is faster anyway, representing vector graphics still is a lot more intensive than just displaying bitmap data. Perhaps an if switch is needed?
- (CGFloat)userSpaceScaleFactor;
This method returns the workspace’s scale factor and lets you act on it accordingly. It’s simple to set up this method and make a switch of resources (I will leave that as an exercise to anyone who has a ‘Leopard to build on’). Afraid this might make your application bigger? I wouldn’t worry about this too much. If you would upgrade your toolbar to this dual-resource system, all your 32*32 resources wouldn’t need the 128*128 resources, whereas the vector resources included are generally smaller than any bitmap data. It’s a small price to pay for a better looking app. Now go forth, and make sure I see some both efficient, pretty, and resolution-independence ready apps soon! If you need help, you can get information about my services at icondesigner.net.
Edit: Craig Hockeberry of the Iconfactory has commented on the whole matter, and after a bit of chatting I agree that it is overboard for an interface designer to talk about these matters of switching resources - however, it was meant in a ways of throwing around idea’s. I must say that I was wrong in a few other points; vector in PDF cannot yet be seen as a medium for all toolbar icons because it’s not efficient enough. I’d like to thank Craig for all the input.
iPod innovation.
May 26, 2007 on 7:06 pm | In Code, Personal Work, TimezonesI came, in my stumbling around for iPod innovation, across this neat snippet of code. It’s by Keith Wiley, who also has a method on his site for trapping fourdimensional objects and counting to 1023 on two hands, and 31 on one. I think he’s awesome already, big credit to him. Now, on to the code.
What does this do? Well, it essentially reverses everything iTunes does when it stores images on your iPod in the opaque ithmb format. This snippet of code ‘decodes’ the interlaced images of 720*480 (apparently, a TV format for the AV output), and there are a multitude of other sizes present in the files. What does this mean to me? Uh, I got to up the resolution of Timezones to let you be able to check it out in high resolution on a TV. You want that, right?
Now, actually, what I am going to do is reverse the coding of the tiniest thumbnail graphics - the one the iPod displays when you enter your Photo Library. You’ll see why, but it’s obvious that it’s usable for many cool things. I might open-source it.
Since the people at Macthemes already had the love, I have to share it with all my subscribers too. Man, I hope you buy in the next week, because you’ll get a beta invite for this;

Yeah, we’ve come a long way.
Gus Mueller, you’re the man!
May 1, 2007 on 3:37 pm | In CodeBeing a graphic designer myself, I have always tended to somewhat orient my projects towards the graphic side of life. Randleaf, my ‘abstract artist killer’ rendering tool, actually has a pretty complicated source tree in which two images are supposed to match exactly (if Randleaf receives the same data) as the rendering portion isn’t changed often in one branch. Gus Mueller makes FlySketch, a Cocoa app that also does graphic tasks (I don’t feel like going deeply into what it does here) and needless to say, it’s very important that two versions of FlySketch between builds make the same image after say, applying a fixed set of transformations or other application-specific functions.
The excellent, excellent Late Night Cocoa podcast (guys, I am donating, the ‘cast rocks) had an interview about a month back with Gus and it was about automated builds, source control (SVN) and unit testing. Nothing new to me, apart from unit testing; I hadn’t given it a lot of thought, but after the podcast (which I could conveniently listen to while washing the dishes thanks to my new Nano) I was amazed by the simplicity and elegance of such a solution for your built products. It also makes me painful bi-daily reminders of my sloppy code revisions and frequent refitting of the rendering engine. I must say, Gus, you saved my life code-wise.
I am doing a lot of different projects now. While I do give Randleaf some attention, I have taken a look at HMBlkAppkit (by the guys at Shiira, mad props), an open-source framework that you can use to make very beautiful black panels, and I think I’ll do a small app to demonstrate what I think it can do very well, and what developers should do with it. It should really be a one-day project, but it has turned out to be a bit slow in development, seeing it doesn’t have a lot of priority. But it’s getting there.
I have read up more on OS X security on the application level - especially Widget and Cocoa malware. The notion of a ‘widget-wall’ that makes widget resource control (a widget’s access to local or network resources, for example) as easy as Dashcode makes it is really a necessity for any security-consicous user, but it’s apparently not out there. The same goes for my complaints in my last post; why has nobody tried to read out a battery life status from their iPod for easy showing in the OS X menu bar? It’s quite possible (I have looked into it, and from here I think it’s about a day or three to a working app that does just this).
![]()
Convenient? Well, I wouldn’t even care if nobody uses it. It’s just essential to me. My nano, first of all, doesn’t seem to be able to show me it’s battery status accurately and without having to pick it up. iPod shuffles are even worse.
I am also working on a quick and dirty Quartz Composer how-to. I can spend hours in QC just making visualisations for music and doing miscellaneous stuff. Mostly, Quartz is also something i want to use when I finish a long-time standing project involving making the terminal prettier. So there’s a lot of stuff coming up, along with this first May post. I hope you regular readers and new arrivals enjoy this month of fast-paced releases and innovations from my side.
Little Snitch deserves a post on it’s own.
April 24, 2007 on 2:01 pm | In Code, Hacking, SecurityLittle Snitch, together with Glowworm FW got a mention on my “Secure OS X” article. When I started doing more work on a PowerMac G4 of a company, which had Little Snitch installed, I wanted to inject an F-Script workspace into Praetorian for some clean testing. Little Snitch amazed me.

I don’t know how it achieves this (trapping system calls, most likely) but it’s quite a feat to be able to stop an arbitrary code injection like that. Firewall? No, this has gone beyond and above firewall. This is a program for security-oriented users. How’s that for being in control?
If these people start adding even more features (and I have no doubt that they will) I will become a great, great fan of Little Snitch. Now, if only the icon were better. But there are designers like me and other far greater people (Adam Betts, I’m talking to you!) who love to design replacement icons. I think both firewall programs, in general, could use more interface and icon design love. But they already provide excellent, stable functionality. Go check them out.
Fun with the Terminal.
April 23, 2007 on 7:52 pm | In Apple, CodeMan, I really enjoy this.
It’s a very old app (supposedly by the Apple OpenGL team) that emulates those hyper-old phosphorous displays. It takes a whopping 30-40% of CPU, has configurable settings, and well, as I said, looks very cool. This is with 1800 baud modem emulation, it can run at regular speed as well.
Anyway, I have lots of fun in the Terminal. From telnetting towel.blinkenlights.nl, playing an old game of nethack, just having good old shellscripting fun, I love my terminal. There are some things, though, that I cannot live without when I get my hands on a ’standard’ OS X terminal. Here are my additions.
Visor.
Number one by far. It allows you to have a drop-down or fade-in terminal at a keystroke. I won’t have to explain why this is just super handy. It’s by the folks who made Quicksilver.
X11
X11 is a great addition to any Terminal lover. Terminal prompt themes like bashish and other fancy Linux-esque graphic addition to terminals often work properly with Xterm or Rxvt and only that. Or you might want to use Eterm, like I do - Enlightenment is really one of my favorite window-managers on Linux or BSD, and it works great with OS X. It’s on the Install DVD that came with your Mac, in the ‘Optional Installs’ folder. Why install it, you ask?

(click for full size)
This particular setup lets me use my favorite old Winamp skins, lets terminals slide into a simple bar that you can ‘unslide’ by scrolling over the window (sounds complicated, but it’s super smooth)
Although GNU Screen comes standard, it deserves a mention. It’s like a window manager in a terminal. It allows for split screens, virtual terminals, and detachable screens. Check it out; type ‘man screen’ in the Terminal. Memorize the shortcuts and get rolling!


