Friday, April 28, 2006

 

Mr. Zappa!

Check out this footage of Frank Zappa defending the 1st ammendment on Crossfire!
Maybe Crossfire used to be a half credible show?

And also this footage of Frank with Johnny Carson!

This censorship stuff was pretty important, eh? We take all this for granted now, but I'm glad there were people like Zappa around to fight for this type of freedom. Who wouldn't want to be able to hear "Hot For Teacher" on the local classic rock station?

Thursday, April 27, 2006

 

A Brief History Of RSS

So, it's come to my attention that at least one of my readers isn't using RSS to ease their web browsing. It's not that everyone should be using RSS for their web browsing. It's probably not even the best way to get your browsing done. But it certianly simplifies my life, and I think it can help yours too.

The most logical place to start is probably the wikipedia page on RSS, which states :
Web feeds provide web content or summaries of web content together with links to the full versions of the content, and other metadata. RSS in particular, delivers this information as an XML file called an RSS feed, webfeed, RSS stream, or RSS channel. In addition to facilitating syndication, web feeds allow a website's frequent readers to track updates on the site using an aggregator.

That's all there is to it really. The details go a little something like this...

XML is a way of creating a file that contains data in a universally readable way.

What happens is, the website providing an "RSS feed" has some type of script running on the server that creates and XML file that contains the data from the website the "feed" pertains to. The "feed" is simply an XML file that has a web address. The feed file changes as the web page changes, but the URL stays the same, so you can always go to the same place to get the newest up-to-date feed. Doing this (going back to the feed to get the newest up-to-date version) is called "syndication" (like in the TV world). The XML file defines the "story" titles, sometimes a summary of the content in the story, or even the whole story, links, etc, etc. Actually there isn't a really strict formula, so the server script that creates these things can put whatever it wants in there.

"Well," you might be saying, "what the heck does this have to do with me and my web browsing? Can't I just go to the webpage itself to see the new content? Why do I want some weird intermediate file to tell me about what's on the page?"

The answer is, and you might not know this already, you probably don't want to read the whole page. And even if you are reading the whole page, or skimming for what you want, you're not doing a very good job of it - machines are really good at this kind of stuff, and people really aren't.

This is where an "aggregator" comes into play. An "aggregator" has bookmarks to lots of different RSS feeds, checks them regularly for you, and displays the results.

Actually, RSS is the technology behind all those podcasts the kids are listening to these days. RSS is how iTunes knows when there's a new episode and where to find it.

How does this make you browse faster/better? Often it will display the info in a way that lets you only view the titles of stories, or just the titles and a small summary of the story (instead of the whole story), so you don't have to scroll through pages and pages of stuff you're not interested in. You can just watch the feed results come in, and pick the stories you want to read.

There are LOTS of aggregators out there to use.

The newest version of Safari comes with an RSS reader built in, but I don't think it's particularly good at the aggregation thing (it can read one RSS feed really well, but it's up to you to go read the RSS feeds yourself). As the linked article suggests, just click on the RSS button in the address bar to get started.

Firefox has a really cool concept called "Live Bookmarks" which works really well. You bookmark the RSS feed, and you can read the titles of the articles in the feed out of a submenu that appears when you click on the live bookmark. Still though, this is only half way to real aggregation.

I use a Firefox extension called Sage to do my aggregating.

A really popular one for Mac OS X is NetNewsWire (though the full version isn't free). Newsfire looks good too. Vienna also looks good. There's a ton of these things in the downloads section at Apple.com.

The reason this has all come up is because every blogger.com blog has an RSS feed. I use them to keep on top of my friend's blogs, as well as bigger blogs as well like Digg.com and Slashdot.org.

So, may your browsing be quicker and your reading more efficient.

Tuesday, April 25, 2006

 

Hanni Contrary

So, a new friend (re)joined the blogosphere recently, and I put a link to his blog in the friends section here, but I messed up the link to point only at his archive somehow. Oh well. The right link is up now and he's been posting like mad so go check it all out.

And leave comments. Everyone loves getting comments.

Wednesday, April 19, 2006

 

New Infusion : Foo Infusion!

So, in light of some ideas I've had recently, I'm starting a new blog, to be run concurrently with Sonic Infusion.

The new blog will be called Foo Infusion, and will reside here. (a link has been added to the side bar as well)

This new blog will center around my life as a developer. Specifically, challenges I have technically and politically (office politics that is)(though I'll try to keep this to a minimum), concerns and wishes for the industry and for my job/career, and interesting things I read or learn about no matter how theoretical or how pragmatic.

From my new blog's handy sidebar:
foo: jargon /foo/ (jargon file)
  1. interj. Term of disgust.
  2. [very common] Used very generally as a sample name for absolutely anything, esp. programs and files (esp. scratch files).
  3. First on the standard list of metasyntactic variables used in syntax examples. See also bar, baz, qux, quux, garply, waldo, fred, plugh, xyzzy, thud.
infusion: n. (in-'fyü-zh&n) (wikipedia)
  1. An infusion is a beverage made by steeping a flavoring substance in hot or boiling water. Infusions include coffee, tea and tisanes. Infusions can also be made in another substance, such as alcohol or vinegar, instead of water.
  2. In medicine an infusion is a treatment in which a patient is attached to a device (a drip) that constantly delivers a liquid into the bloodstream. See route of administration for some further details.
  3. In other contexts, an infusion can mean the introduction of a modifying quality or element. Thus it could be used to describe the addition of new subject matter into a curriculum, or the addition of talented individuals into an organization.
I thought this was fitting. Sticking with the 'infusion' theme, I've coupled in the time honoured hackerism, 'foo'.

I'll link to a few of my favourite blogs from this domain as well. JoelOnSoftware (a completely different Joel, by the way), Call Me Fishmeal, etc.

This all came about while I was reading an article on productivity and happiness at work which included a section on how being a contractor is better than working full time somewhere (?) where the author suggests that blogging has helped him develop his name/fame. Maybe I'll say something decent someday and someone will be able to find it on this new forum I'm setting up.

Also, it's a great tool to use as part of my resume. If someone shows interest in my resume or in me as a developer in general (even outside the context of possible employment) I'll be able to point them to a collection of ideas I've had on development, spanning a significant period of time, that shows how my ideas have evolved (or not) over time.

Anyway, I hope anyone who wants to follow along will.

 

13.1. Making a high quality MPEG-4 ("DivX") rip of a DVD movie

This is a great article on video compression that showed up on Digg today. It’s very detailed but worth the time if you’re truly looking to get good quality video into small file sizes (ie: for your iPod) It specifially deals with using the encoder in MPlayer, but I the information all applies to using the Quicktime Pro or Handbrake tools as well.

I hope I find time to read it soon.

 

Another Great Idea From Google: Recipes

Google released a new service called Google Recipes recently and I think it looks great. I don't know what the recipes it finds are like... certainly looks like a good idea though. I especially thought Morgan would like this one, but I know it will be right up Hanni and Flechbot's respective alleys.

Tuesday, April 18, 2006

 

A Face To The Name

I need an image for my "About Me" thing on this blog. This is what I'll use if it's okay with Morgan.

 

Kernel Updates

For those who found my last piece on kernels a little too much to handle, here's a briefer rundown, with a lighthearted simile and another look at whether Apple is ready to switch it up....

 

Pirate Radio Hits A Nerve In My Hamm

So Craig On Wheels wrote this week to discuss some of his thoughts on what's up with the whole John Hamm-transfer payments-keeping students in the NS debate that's been going on in the provincial news lately (in NS, anyway)

Here's a couple of thoughts I have on the subject.

  1. Punishing people for leaving the province is a bad idea, plain and simple. If John Hamm thinks this is the way to go about this he's even more wacked out than I thought.
    Keeping people who studied in Nova Scotia is not a bad idea - in fact I think it's a great idea. But if students from away come to study in Nova Scotia, and are then essentially 'fined' for working outside the province, it won't take long for those students to stop coming to NS altogether - our schools will dry up and die within 10 years.
    What COULD work, though, is a REWARD system that rewards kids who work in Nova Scotia. If losing them when they leave is causing such a financial drain as it is, why not offer to take some of that money we would be losing if they left, and give it back to them if they stay - they will be paying income tax in NS if they're living and working there right? Give the poor kids a break on their income tax based on some formula that takes into account how much they spent on education in NS, how long they studied, how long they've been working there, etc, etc. Make it attractive to stay.
    It won't lure everyone, but there's a lot of people out there who LOVE the town where they went to school for whatever reason and would find it quite natural to work there for 3 - 5 years after they graduate IF THEY COULD. (The problem with this is that the economy of a school town is often based around the school - there's a school, and a bunch of business to support the school. That's it. Sackville, I'm looking at you)
  2. Let's start training people who WANT to work in NS! I've said this for a long time. Let's look at an example of something to illustrate what I'm saying here:
    Two students apply to go to med school at Dalhousie:Sally, just graduated from Mount St. Vincent, has pretty good grades (~3.0), and is from Clark's Harbour; Lee, just graduated from Dalhousie, has really good grades (~3.8), and is from Nanjing.
    According to the Dal website, a Canadian citizen's costs for a year of training there (it would likely be different for the med school, but we'll use this as a comparison tool because it was easy to find) are ~ $15,000. A non-citizen's costs are up around ~$22,000. As a matter of fact, they list the 'differential' cost to be $5,640. (let's ignore, for a moment, the ridiculous money-laundering mechanism that is our post-secondary education system, and pretend like it really does cost this much money to deliver the training.)
    The school obviously wants to take Lee because he will bring them $5K more cash/year than Sally, he will probably go work in some big city when he's done so he'll have lots of cash to send their alumni association, and plus they'll push the cost of dealing with language and cultural barriers off on to him anyway, so it really won't cost that much extra to teach him. Plus his grades are a little better.
    Oh whoops, that's the last position at our med school, sorry Sally, try again next year.
    What this system fails to take into account is that Sally would more than likely LOVE to take her medical degree back to Clark's Harbour with her when she's done school, and do her doctor thing THERE, in health-care-poor rural NS, taking care of her family and her family's friends and their families, where she can see the water and walk her dog and head in to Yarmouth for a night out every now and again.
    Lee on the other hand wants the hell out of Dodge/Hali as soon as he can. He wants to live in t-dot but he didn't get in to school there. He wants to send money back to his family and live in a metropolitan area that's diverse enough to both accept him and his culture and SUPPORT it (I defy you to try to buy some of those squid egg things that Shaggs sent Glen ANYWHERE in Halifax).
    What's the POINT Joel?
    The point is, if they REALLY want people who go to school in NS to stay in NS when they're done, what they need to do to start off is TRAIN NOVA SCOTIANS!! They LIKE rural life, and they'd love to stay if they thought they could get trained and make a life. Which brings me to point #3:
  3. I like Craig's idea to set up some real partnerships with industry to get some of these kids working. Soybeys, NS Power, Aliant, Maple Leaf, Michelin, I'm looking at all of you.
    It's in both the interest of these Corporations and of the Province and its residents to get some real entry-level hiring/training going on. Craig's article elucidates this much better than I could.

Monday, April 17, 2006

 

Popcorn Update

UPDATE :
Success on the pop-corn front! Here's the "recipe":
  1. Open the microwave popcorn bag and empty it into a large pot. The pot has to have enough room to hold ALL the popcorn in its post-popped state, and ideally it doesn't have one of those heavy bottoms - thin bottoms are best I think.
  2. Turn on a burner the same size as your pot, and set it good and hot. Not all the way up, but at about 90% I'd say.
  3. Cover the pot with a lid you can hold on to while shaking (sliding, waving, whatever) the pot.
  4. That burner is going to get hot, so shake, shake, shake your sillies out, and wiggle your waggles away (Bonus points to anyone who gets THAT musical reference) and don't stop moving it until everything's popped in there. Try to take if off the burner a few seconds before everything stops popping for the best taste. It's okay if a few kernels don't quite finish.
  5. Tada! Beautiful popcorn, old-fashioned style, plus all the yummy microwave-era chemicals and flavours!

 

iTunes Essentials to Check Out

Poking around on the iTMS this morning I noticed some pretty sweet stuff that needs to be mentioned.
There, that should keep you busy for a while, eh?

Sunday, April 16, 2006

 

Kernel Problems in Apple Town...

This week's I, Cringely|Pulpit article again (surprise, surprise) includes a discussion about Apple.

I think most people will glaze over when it comes to his brief mention of Apple's 'kernel problems' (as he puts it) but it really made the hair on the back of my neck stand up.

For those of you who don't make a habit of following the trends of kernel innards, Mac OS X is built on what is a 'barely not experimental' kernel architechture called 'Mach' - the specific implementation is called XNU. Wikipedia is a great reference on this subject as usual:Mach, XNU.

One of the major 'drawbacks' that critics have made of the microkernel architechture in general is that it's 'slow'. What they mean by this is that it can often be 'slower' than other architectures (read "Linux") because it specifically forbids ANYTHING but the kernel to run in 'Kernel Mode". This means that ANYTHING that has to interact with hardware (memory, hard drive, network card, USB, etc, etc) has to first ask the kernel for access, LOCK the kernel preventing anything else from using the kernel, use the resource, and then release the kernel. All this switching things around takes up a little bit of overhead time, but it is SAFE because all these extra processes run in user space, and problems in user space don't affect kernel space.

Linux (and I think the Windows NT kernel does this too, though the NT kernel is considered a microkernel hybrid...) puts things like the network stack RIGHT IN the kernel (this is called a monolithic kernel), to make then FAST, but it makes them unprotected - anything that runs in the kernel space can bring the kernel down if a problem occurs.

Personally I'm of the 'nothing in kernel space except the kernel!!!' mind, but many people are in favour of more speed regarless of the cost.

In the early days of Mac OS X things were way worse than they are now. There is a concept called 'locking granularity'. 'Fine grained' locking means that every resource can be locked individually, wereas 'coarse grained' locking means that you have to lock everything up to use anything - it's a spectrum from fine to coarse and everywhere in between.

You might think the ideal situation is completely fine grained locking, so that absolutely every hardware resource can be locked individually and used without fear of conflicting hardware requests. BUT eventually you can get to a point where the kernel is doing so much 'book-keeping' to take care of all these locks and who has which ones and who's allowed to use which ones when, etc, that you get LESS performance with finer grained locking than if you had coarser locking and less overhead. The balance is tricky. Tricky-er with more hardware execution threads (hyperthreading, multi-core, multi-processor, all permutations of these).

It used to be that if you wanted ANY piece of hardware you had to lock the ENTIRE kernel, blocking anyone else who needed hardware at the same time. But this is kind of silly because if one process is using the hard disk and another program needs to use the network card there should be no conflict there.

The problem is that completely fine grained locking is very hard to do, and very hard to coordinate, and very difficult to maintain and debug. It's hard. Most importantly it's hard for third party DRIVER writers, like HP and Canon and Sony and Belkin and ... It's easy when you can assume the kernel only has 1 or two locks. Much harder when there's many locks and you need to get the right ones at the right time and release the right ones at the right time, etc, etc, etc... it can be a lot of pressure for a driver to handle. (read "it can lead to shitty drivers that lock up the whole OS just to write 10 bits to the network card")

Mac OS X has gotten considerably better since it's inception, but it's still not perfect, but a long shot. (I think there's something like 4 locks now instead 1, but that's still pretty coarse)

There's a great Ars Technica article about all of this in case anyone's interested in a bit more of a technical run down of how this stuff works. Especially check out the section entitled "concurrency".

Now, Bob Cringely says that Mac OS X has 'kernel problems'. I don't know how I feel about that. Yes, I think that Mac OS X is starting to be 'long in the tooth' engineering-wise in the kernel department. But I think it's been progressing quite nicely (as the Ars article linked above should point out). I don't think there's an engineer out there who would deny that Apple's approach (actually NeXT's approach, as this stuff was pretty much all decided way back in ~1988 when NeXTSTEP was written) is gutsy and technically bold. Technically brillant in many ways. They're heading off in a very different direction than other commercial kernel developers (Windows NT, Windows 'Vista' which was supposed to be rewritten but probably won't be now but will be in the future, Linux, BSDs, Solaris, everyone).

In actual fact, XNU is a hybrid between FreeBSD's kernel and a true Mach kernel. Plus I/O kit. It's weird. But good. (I think generally people love I/O kit)

So, is Mac OS X slower at network operations (as an example) than Linux and Windows? Probably.
Is it significant? Probably not...
Is it safer? Definitely.
Is it workable and/or improveable? For sure.

But, the big question is: Does Mac OS X have kernel 'problems' as Bob Cringely says they do?
I don't know. Maybe.

Maybe they'd like to go with a stright up FreeBSD kernel, with the I/O kit stuff on top.
Maybe they're writing a new one?
Maybe they're reimplementing lots of stuff to essentially remake the XNU kernel they have?

I don't know.

But I do know that what Mac OS X has is an architechtural advantage, and a technological differentiation, over the other kernels out there. It seems like it'd be a shame to give up on it now.

Wednesday, April 05, 2006

 

Apple - Boot Camp

And, from the "Strange But True" category comes this bit of news:

Apple has released a piece of software (more like a 'solution' but whatever) to allow Intel Macs to boot Windows. WINDOWS!

Not the weird hacks you've seen reported online -this is the real deal, supported-by-Apple, dual boot scheme, including Apple supplied Windows drivers, and a way to easily partition your hard disk.This is seriously cool, and seriously bold.

I'm impressed and a little taken aback. I hope this goes well for them. Also, I'm starting to see clearer why the big switch to Intel happened - this type of thing would not have been possible with the PPC stuff.

Read more at www.apple.com/macosx/bo...


[geeky thought]
Another thought about the Boot Camp stuff.... this is probably not only directed at Windows - this is what is more commonly referred to as a bootloader. In fact they're probably using the BootX software that was used with Mac OS X since the begining.

And as a general bootloader technology, it should work just fine for installing different versions of Linux, *BSD, and possibly even separate installs of Mac OS X or a Solaris x86 install. I think this is the first time a major consumer OS has included bootloader functionality like this, and I think the 'geek' world will take very kindly to this, if what I have suggested is in fact possible. If it's something that ONLY works with Windows it's impact will lessened.


Monday, April 03, 2006

 

POPCORN

After my first not-having-a-microwave-has-slightly-inconvenienced-my-life incident this weekend with Morgan, I've been doing some popcorn research.

It seems that microwave popcorn (The popcorn sold in "microwave" packaging) is nothing special at all. Just regular old popcorn and bunch of chemicals to make things taste pseudo-buttery and pseudo-salty (in true microwave-pseudo-warm fashion) and to make them last longer. Or so this guy says anyway.



UPDATE :
Success on the pop-corn front! Here's the "recipe":
  1. Open the microwave popcorn bag and empty it into a large pot. The pot has to have enough room to hold ALL the popcorn in its post-popped state, and ideally it doesn't have one of those heavy bottoms - thin bottoms are best I think.
  2. Turn on a burner the same size as your pot, and set it good and hot. Not all the way up, but at about 90% I'd say.
  3. Cover the pot with a lid you can hold on to while shaking (sliding, waving, whatever) the pot.
  4. That burner is going to get hot, so shake, shake, shake your sillies out, and wiggle your waggles away (Bonus points to anyone who gets THAT musical reference) and don't stop moving it until everything's popped in there. Try to take if off the burner a few seconds before everything stops popping for the best taste. It's okay if a few kernels don't quite finish.
  5. Tada! Beautiful popcorn, old-fashioned style, plus all the yummy microwave-era chemicals and flavours!

 

Auto Maintenance For Everyone!

AutoBlog is running a great series of articles that go through the basic auto maintenance that anyone can do and everyone should do, but that often gets forgotten about in the daily grind and the lease-return-lease again cycle many of us are swept up in.

These articles are about the basics, and pretty much only require the basic tools (screwdriver set, socket set, drain pan, lots of newspaper and rags) and consequently only require a basic knowledge as well.

One thing I have to add to their articles that they've left out though:
Don't EVER climb under a car that's only supported by a jack, especially if it's one of those scissor jacks. ALWAYS use a stand - jacks cannot be trusted.