Category: Development

A shout out to Brent Simmons regarding his take on code formatting style.

Personally I tend to agree with Brent that opening braces at the end of lines is easier to read. Perhaps this comes from the fact that he and I both spent lots of time writing UserTalk code in Frontier’s outliner.

Typically code written in the outliner didn’t have curly braces at all – code blocks were defined by indentation, though occasionally we’d use braces on a single line:

Multi-line example:

Single-line example:

But when you take the same code and copy/paste it from the outliner into a text document (or save the script to a text file), you get this from the multi-line example above:

Note the left-brace at the end of the first and third line. (The same text could be pasted back into the outliner to get the braces-free, indented version.)

Another reason I like the brace at the end of the line is that when you collapse a block in Xcode, the whole block lands on a single line in the editor, instead of on two lines. Personally I find this a lot less distracting than having two lines for every collapsed block, and being an outliner guy, I use expand/collapse in Xcode quite a bit.

Anyway, just a thought…

Ps. I totally agree with Brent that consistency is more important than the specific style rules.

Development

I’m super-late to this but wanted to shoot the link out there since I’ve also written about this before. Over on evilbrainjono.net, acknowledgment that Firefox updates are driving users away from the browser.

In particular, I love this paragraph:

“I’ve been thinking a lot about the fundamental disconnect between the developers and the users. I think it comes down to: Software developers have a perverse habit of thinking of updates/new releases as a good thing.”

[Edit] Jono also has a follow-up post with some juicy bits. My favorite:

“… Let me revise my statement: Rarely is a UI change such a big improvement that the efficiency gain from adopting it outweighs the efficiency loss from relearning. Designers tend to overestimate the benefit of a change and underestimate the importance of habituation. That’s what I was trying to say.

“Look down at your hands. Are you using a DVORAK keyboard? Why not? It’s theoretically more efficient, right?”

Development Open Source Web

PowerBook_G4_17.jpg:
I’ve had a 17-inch PowerBook G4 sitting around gathering dust for a few years. It was my development machine for a couple of years at UserLand, until I got a quad-core G5 tower machine, at which point it became my field-recording rig.

I’ve decided to resurrect it as an Ubuntu machine for mucking around with modern Linux tools, which it should run just fine. (I’ve been playing with Linux for years in various flavors, but mostly server machines with no GUI, and it’s time I tried out a modern Linux OS.)

So the first step is to image the drive. It would be nice if I’d been rigorous about backing this machine up, but I hadn’t. It’s got years of work on it, all of which exists… somewhere… but if I ever need to go back and find something that didn’t make it into my working directories on the G5 tower, the chances of my finding it are slim-to-none. Enter SuperDuper!

SuperDuper.png: I considered using rsync to mirror my files onto either my Synology NAS, or my G5, but that would have made an assumption that I actually knew what files I might need in the future. Instead I decided to create a bootable disk image (dmg format). If I ever need to restore this machine I can, and if I just want to find a file, I can mount the disk image and navigate it just like the contents of the original disk.

SuperDuper! is running now, and will take about four hours to creat the image on my NAS.

Next, I need to create an Ubuntu install disc. This might be a challenge, since it’s an older machine with a PPC processor (not Intel), and I haven’t fully investigated the challenges around graphics, sound and network drivers. With any luck it shouldn’t be too difficult to get working, since lots of Linux geek types have had this or similar laptops at some point. It’s going to have to be a 32-bit install, and the machine is single-CPU, single-core, so figuring out what kernel to use for multi-processor or 64-bit support shouldn’t be an issue.

PS: Found a starting point for Ubuntu 11.10 “Oneiric Ocelot” for this machine. The Minimal CD should be a good start…

Development Open Source

Back in August, I switched to Chrome, when a Firefox update broke some of the extensions I was using. I was reluctant to switch at the time, but the breakage was annoying enough that I turned off Firefox (i.e. stopped launching it), and switched to Chrome for my personal browsing when on mine or my wife’s Mac at home, or when I need access to a personal bookmark while at work. (I keep IE’s bookmarks segmented to work-related links.)

The Firefox update glitches were most likely transient, and may have been peculiar to my installation, but even so I haven’t switched back…

The main reason: Startup performance.

I haven’t done any real measurements, so what I’m writing here is purely from the standpoint of my own personal perception but the feeling I get when launching Chrome is that it’s somewhat satisfyingly fast. The feeling I get when launching Firefox is that it’s slow to very slow to start.

While both browsers take longer to load the first time you start them after rebooting, and neither is enough faster than the other to win me over on that first-launch experience, Chrome feels significantly faster to launch the second time, while Firefox still feels like it’s pulling its feet out of the mud.

The fact of the matter may be that they’re equally fast to get me to the point where I can type onto the address bar. But feel is important too. The perception of good performance is a super-important part of the user experience.

What does this feel like if it’s a person, not a web browser?

Here’s a real-world example that everyone can identify with: If I say “Hello” to you, I expect that you’ll look at me pretty much right away, and then respond. If you look right away, and then take a second (one second) to say hi back, I probably won’t notice. But if you take that same one second to look at me in the first place, it doesn’t matter if you say hi right away or not – the feeling I get is that you’re either distracted, or you don’t care about our interaction.

In both cases, it takes roughly one second plus the time it takes to say the word hi, but the initial responsiveness makes a huge difference in how I feel about the interaction.

Development Web

Small pieces, loosely joined” is making its mark in the cloud. Adrian Cockcroft on ZDNet UK:

“Everyone is sitting in the middle of a bunch of supplier and consumer relationships and every team is responsible for knowing what those relationships are and managing them. It’s completely devolved — we don’t have any centralised control…

“[We] got rid of the operations … and just have the developers, so you can’t depend on everybody and you have to assume that all the other developers are writing broken code that isn’t properly deployed. And when you write a REST call to them, you might get nothing back or broken code and you just have to deal with that.

“By making everyone responsible for the robustness of their code, we’ve ended up training a whole building full of developers to build their code very robustly…”

Cockcroft’s statements seem almost obvious to me as a platform guy, but it still amazes me how many complex and fragile interdependencies our industry is building. Sometimes it’s NIH at work, and sometimes there’s a perceived competitive advantage in building proprietary systems.

But I also have to wonder if a more general lack of experience isn’t also at play here. Taking a bet on a platform is hard even when you have all the information and understand why generalization is useful. It’s even harder when a substantial number of decision-makers don’t really understand what a platform actually is.

I heard a story recently about a Director of a small IT department (<100 people), who insisted that his team “had to move to The Cloud as soon as possible”. But it was clear to the person he was talking to, that he didn’t really understand what “The Cloud” was, much less how or why their organization should “move to it”.

I don’t know enough about their needs to say whether it’s the right thing for them or not, but it seems obvious to me that this type of infrastructural change needs to be managed carefully, and with as much information as possible.

The fundamental question that the Director never seemed to ask is, “What is a platform?”, and then “What is a cloud platform, and why might I want one?” — And not, “How fast can we switch to the latest [insert-buzzword-here]?”

Cloud Development

frontier.gif:
I posted some of my initial thinking on how to integrate source code control (SVN) with Frontier’s IDE over on the frontierkernel Yahoo! Group.

I think this is going to be important if we want developers to take the project seriously, and contribute meaningful code, rather than just a patchwork of fixes and mini-features.

I’ve had bits and pieces of this working in the past, but never all in one place, and never with a rational user interface.

Any Frontier/Radio/OPML Editor types out there: Any thoughts?

Development Frontier

Tonight, shortly after midnight, I’m going to switch my editorial interface over to Radio UserLand.

What does this mean to my readers – all three of them? ;->

I’ll update more often, and the site will look a little different, but not much more than that.

But what will this mean to me?

Lots! It will be so much easier to write here that I might actually do some writing once in a while (believe it or not).

So, I’m drinking the Kool-Aid – or to put it another way, I’m going to start eating my own dog food… And not just as an experiment

(The question is: How do I continue the experiment at the same time?)

Development Jake's Brainpan

Comments closed

Maybe I’m working too hard…

I was just taking a break to surf for a few minutes. I took a glance over here, and I mistakenly read "I’d love to tell you more- but I’ve got to get loaded" instead of , "I’d love to tell you more- but I’ve got to get the car loaded." Ahem… :-

Development Jake's Brainpan

Comments closed

Development Jake's Brainpan

Comments closed

We just released a new macro for use in your Manila sites: rssLink.

If you include {rssLink ()} in your site’s template, you get a little orange icon which links to your RSS channel: XML icon

(Make sure Syndication is enabled for your site)

Development Jake's Brainpan

Comments closed