contribute cs4 download windows 7 discount code buy roxio software autodesk lustre price buy windows vista oem buy microsoft office frontpage buy windows xp used buy windows 7 code microsoft office 2003 license key download cyberlink powerdirector 8 deluxe buy corel draw for mac buy solidworks best price adobe photoshop elements 6 cheap windows xp oem buy microsoft office outlook 2007 buy microsoft frontpage 2003 dreamweaver for mac download autodesk 3ds max 2010 system requirements indesign for mac where to buy windows xp oem windows xp best buy cheap microsoft office software uk buy sony vegas pro 9 navisworks manage 2009 windows 7 price for teachers buy photoshop elements cheap purchase windows xp professional sp3 should i buy windows 7 now guitar pro 5.2 download buy deskshare videoeditmagic 4.3 buy windows 7 licence best buy windows 7 oem purchase microsoft word 2007 buy adobe framemaker buy corel draw 14 buy quicken rental property manager autodesk autosketch 10 download purchase windows 7 online buy ms office 2003 standard conceptdraw download download adobe audition 2.0 purchase mcafee total protection 2009 purchase office 2003 professional download adobe illustrator cs2 buy microsoft vista buy web page maker 3 download final cut express 4 buy adobe acrobat standard 9 download propellerhead reason 4 dragon naturally speaking 10 discount mcafee total protection 2009 download autodesk inventor professional 2008 download buy microsoft office activation key buy matlab 2009b corel wordperfect x4 oem buy windows 7 ultimate cd key cheap nero 9 adobe captivate cheap windows 7 home premium coupon buy photoshop program buy adobe captivate 3 best price windows 7 microsoft excel 2007 product key buy windows 7 not upgrade autodesk 3ds max design price purchase archicad 13 download archicad 12 excel 2003 to buy purchase vista business windows 2008 enterprise price purchase windows 7 licence cheap roxio creator 2010 how to buy powerpoint 2003 buy mathcad online best price photoshop cs4 mac norton ghost 12 download full buy photoshop templates purchase windows 7 ultimate 64 bit autodesk architecture suite where to buy microsoft office 2010 3ds max design 2009 download microsoft money home and business 2009 avid media composer 4 download buy microsoft word 2003 software xilisoft video converter ultimate 5.1 buy microsoft frontpage price buy windows 7 home starter adobe pagemaker download buy windows vista upgrade download acronis true image 11 cheap pdf converter cheap windows 7 australia best price adobe after effects for mac cheap corel photoimpact x3 windows 7 ultimate cheap buy quicken 2008 purchase adobe after effects cs4 microsoft office price student purchase windows 7 ultimate full version best price microsoft project 2007 buy powerpoint 2007 only acdsee activation code download fl studio 8 xxl buy windows 7 serial number norton ghost 12 download norton 360 sale cheap quickbooks enterprise solutions 9.0 buy windows 7 deals propellerhead reason 4 mac buy adobe photoshop elements 8 mappoint 2009 european buy microsoft frontpage 2002 purchase microsoft office download mappoint europe 2009 windows 7 home premium price buy windows xp x64 buy native instruments traktor dj studio 3.4 cheap microsoft word 2007 purchase windows xp operating system buy windows 7 64 bit cheap vmware workstation 6.5 windows xp buy download purchase windows 7 for students buy adobe photoshop cs3 extended buy windows xp 64 bit buy windows xp canada buy guitar pro 6 dreamweaver cs4 price cheap windows 7 professional (64 bit) buy windows 7 ultimate full version windows 7 discount student uk purchase corel draw x4 buy i.r.i.s. readiris pro 11 buy windows 7 in china purchase windows 7 australia buy windows 7 wholesale windows 7 ultimate 64 bit download buy photoshop 5.0 cheap microsoft project 2003 best price cakewalk sonar 7 buy microsoft office in hong kong buy windows xp home product key abbyy finereader 9.0 price digital image suite 2006 autocad electrical sales cheapest microsoft office mac buy windows xp professional online adobe after effects cs4 price final cut express 4 cheap adobe flash price cheap windows 7 on ebay buy autoroute 2009 best price photoshop cs3 buy adobe acrobat for mac download quicken 2010 buy turbotax 2009 premier buy photoshop cs4 mac buy windows 7 online download symantec winfax pro 10.4 download zonealarm antivirus 8 system requirements best price microsoft office 2003 professional buy cheap windows 7 online cs4 photoshop buy adobe cs4 web premium trial buy windows xp serial where to buy windows 7 software cheap quarkxpress 8 office 2007 price student buy adobe cs4 online cheap quickbooks 2009 premier buy windows 7 digital river purchase windows xp sp2 buy photoshop windows buy parallels 4 download corel video studio 11 buy adobe cs4 suite cheap access 2007 windows 7 price euro where to buy windows vista ultimate buy windows vista cd buy windows 7 ultimate price pdf converter professional 6 promotional code buy contribute cs4 windows xp price list in india windows 7 ultimate licensing buy vista os cheap windows 7 ultimate retail buy windows 7 mumbai autodesk lustre pricing buy windows vista online windows 7 price comparison purchase windows xp disc buy adobe illustrator mac web page maker 3 download purchase adobe lightroom download guitar pro 5 full version purchase microsoft office adobe premiere elements cheap autodesk autocad architecture 2010 download buy microsoft office enterprise 2007 cheap microsoft office suite windows 7 price in dubai cheap vista ultimate download microsoft expression web 2 download ashampoo burning studio buy adobe photoshop mac where to purchase windows 7 starter buy guitar pro 5 mac ms excel 2007 download windows 7 price vmware workstation 7 coupon code buy ms access 2003 windows vista discount for students cheap microsoft expression web 2 microsoft windows 7 home premium 64 oem how to get photoshop for cheap cheap photoshop cs4 for mac nero 8 ultra edition price buy quicken 2009 windows 7 price tesco windows 7 discount for vista owners purchase windows xp oem best buy archicad 12 download matlab 2009b download fireworks cs4 adobe cs3 cheap purchase windows xp service pack 2 where can i buy windows xp cd buy streets and trips 2009 buy windows 7 nz download corel draw 13 buy photoshop for mac buy windows 7 media center microsoft office 2008 discount buy dvd ripper platinum 5 buy adobe premiere elements 8 buy cs4 mac adobe premiere pro for mac buy microsoft office in canada pinnacle studio 12 buy cheap autocad architecture get parallels desktop 4.0 for mac purchase windows 7 product key online best buy powerpoint acronis true image download download adobe creative suite 4 design premium buy adobe cs4 master collection adobe contribute demo cheap steinberg nuendo 4.3 grahl pdf annotator 2 download roxio creator 2010 special edition microsoft expression price cheap windows 7 canada download matlab r2008a buy microsoft office 2008 mac cheap sound forge audio studio 9 after effects for mac norton 360 buy download adobe premiere full download wavelab download full version can you buy windows 7 starter edition cheap windows 7 discount buy office 2007 licence buy parallels for mac photoshop price in india cheap dragon naturally speaking buy photoshop elements 6 windows 7 price kenya buy adobe robohelp 8 buy office 2007 professional upgrade adobe contribute trial buy production premium cs4 cheap adobe cs4 master collection mac buy windows 7 thailand cheap windows xp home where to buy corel video studio x2 quarkxpress 8 license archicad 12 cost adobe after effects cs3 for mac purchase windows xp software buy windows 7 3 license cheap windows vista home basic adobe cs4 production premium for mac cheap adobe creative suite software how to purchase windows 7 oem buy vista 64 bit home premium cheap pinnacle studio 14 windows 7 ultimate price buy maya 2009 sony vegas cost buy microsoft office for xp adobe photoshop elements 8 purchase purchase windows xp home edition product key purchase quickbooks license best price microsoft excel 2007 where to buy windows 7 full dreamweaver mac cs4 purchase windows 7 home buy acronis disk director suite best buy norton 360 buy microsoft autoroute 2007 europe adobe cs4 mac price purchase autodesk 3ds max 2010 download nero 8 ultra edition windows 7 price guide buy windows 7 touch screen monitor buy cubase sx3 buy windows xp recovery cd buy windows 7 pro 64 buy photoshop textures buy visual studio 2005 pro best price photoshop elements 8 buy windows 7 upgrade family pack buy adobe cs3 design premium mac purchase powerpoint 2007 ms streets and trips 2009 download adobe after effects student discount buy windows 7 oem version buy windows enterprise purchase adobe photoshop elements 8 microsoft office discount for non-profit windows 7 price japan buy microsoft office home u0026 student 2007 buy windows 7 hong kong dragon naturally speaking cost acdsee coupon code photoshop cheap version buy corel photoimpact x3 purchase windows 7 in south africa buy avid media composer 3.5 cheap windows 7 buy download home designing software download roxio creator 2010 pro buy adobe photoshop for mac adobe premiere pro price purchase quicken 2010 buy windows vista india buy microsoft office key online buy microsoft office 1997 buy office 2007 product key buy windows 7 price cheap avanquest powerdesk pro 7 windows 7 ultimate best buy buy windows 7 3 pcs windows xp buy cheap cheap microsoft money 2007 deluxe download grahl pdf annotator 2 purchase microsoft office home windows 7 home premium sale how much does windows 7 professional cost will windows 7 price come down

Archive forJanuary, 2004

All in Unison now (well, maybe not quite yet)

Panic announced Unison tonight. I’m absolutely astonished — it’s 2004, and yet here’s a new Usenet news reader. Wow.

I paid for Unison less than five minutes after I downloaded it. I didn’t do that because I think it’s the best Usenet client ever. I’ve been waiting so long for a terrific Usenet client on Mac OS X that I view my $25 as a way to encourage Panic to make Unison as good of a Usenet client as Transmit is an FTP client.

And while it’s OK, it isn’t Transmit-caliber yet. I’ve run into a crash, a variety of minor bugs, and a large number of missing features. The UI is a bit overloaded for someone like me to just wants to read a series of newsgroups without downloads, images, or music; it’s very slow to display each message; it doesn’t seem to have any way to refresh the articles in a newsgroup on a timer; and it doesn’t support custom headers or per-group reply addresses. That’s just a quick list.

On the other hand, for a 1.0 release, it’s quite good. It’s a shame that it can’t sync newsgroup or read-article information with MT-NewsWatcher, since if I could I wouldn’t have a dilemma on my hands about switching to it. And with Simon Fraser working on a new release of MT-NW, maybe I should stick with MT-NW in anticipation of its 3.4 release. It’s a tough call. I’ll be sending a lot of bug reports and feature requests to Panic; if they take care of the important ones in a reasonable time frame, I won’t have to debate this any more.

Comments off

Could NetNewsWire use a smiley face?

It looks like Brent Simmons spent most of today writing about strictness in parsing in NetNewsWire. From my rather-out-of-the-loop perspective, pretty much everything he says is right on target.

Some of his comments imply that improving the validity of the various RSS feeds out there is hopeless. While that might be right, Brent and the other newsreader authors could do something that might make a difference here. About five years ago, a small company in Germany introduced a web browser called iCab. It has never quite caught on as much as many people hoped, but it includes one feature that I haven’t seen in any other web browser — a built-in HTML validator. When you browse the Web with iCab, you get a smiley face at the top right of your browser window if the page validates, a cautious face if the page has warnings, and a frowny face if the page has errors. Better yet, you can click on the cautious and frowny faces and find out exactly what’s wrong with the current page.

I’m not sure how a feature like that would fit in to NetNewsWire or any other RSS reader, but it’d certainly be interesting to see someone try it. It might even decrease support queries from users who wonder why a particular feed isn’t displaying correctly.

Comments (5)

Debugging without line numbers

A few days ago, someone asked me for some help tracking down a problem. While the problem itself isn’t interesting here, the techniques might be interesting to the Mac programmers out there.

With function names sanitized, here’s the question:

I have a crash log that looks like:

Thread 4 Crashed:
 #0   0x00000000 in 0x0
 #1   0x003eecf8 in FunctionOne (FunctionOne + 268)
 #2   0x003eeddc in FunctionTwo (FunctionTwo + 88)
 #3   0x003eb714 in 0x003eb714
 #4   0x90a3a168 in forkThreadForFunction (forkThreadForFunction + 108)
 #5   0x900247e8 in _pthread_body (_pthread_body + 40)

I have the source code that was used to build the binary. How can I translate the 268 offset in FunctionOne() above into an actual line number so I can tell where the exact crash is?

Rather than translate the offset into a line number, I tracked down the bug in the code. While having line numbers can make tracking down bugs a lot easier, they’re not always necessary if you know what to do.

I started by finding the binary in question and running otool -tV on it, piping the output to less. I searched for the definition of FunctionOne in the output and saw this:

...
_FunctionOne:
00013bec        cmpwi   cr7,r3,0x0
00013bf0        mfspr   r0,lr
...

We’re looking for offset 268, so I added 268 to 0×00013bec to get 0×00013cf8. Frame 1 in the backtrace is somewhere around there (plus or minus an instruction, depending on how addresses in backtraces are reported). Looking at the otool output again, I scrolled forward to 0×00013cf8 and saw this:

...
00013cf0        li      r6,0x0
00013cf4        bl      0xc860  ; symbol stub for: _LibraryFunction
00013cf8        or      r3,r30,r30
00013cfc        bl      0xc580  ; symbol stub for: _CFRelease
00013d00        or      r3,r29,r29
...

Since the backtrace included one stack frame past FunctionOne, I figured we must be inside a function call from FunctionOne. Chances are that the real location of a function is one instruction before its first actual instruction, so we’re actually at 0×00013cf4 instead of 0×00013cf8. That means we crashed inside LibraryFunction.

Fortunately, I had the code for that library handy. I took a look at the code for LibraryFunction and saw this:

void LibraryFunction(void *arg1, int arg2,
	             MyCallbackFn callback, void *arg4) {
	int status = DoSomething(arg1, arg2, arg4);
	if (status != noErr) {
		(callback)(arg1, arg4);
	}
}

Think about what happens if callback is NULL. If we’re unlucky and DoSomething fails, we end up calling through a NULL function pointer, and we’d actually end up with a crash looking very similar to the one in the backtrace with NULL as the last frame on the stack.

So far, so good…but why was callback NULL? I took a look at the original binary and saw this line at about the right place in FunctionOne:

	LibraryFunction(foo, 0, NULL, NULL);

And there’s the bug. Once the third argument was changed to be a real callback function, everything worked.

That’s my quick lesson for the day on tracking down bugs from crash logs for binaries that don’t include full debugging information. Hopefully it’ll be useful for somebody.

Comments (1)

ecto

Practically everyone has been raving about ecto lately. ecto is the next version of Kung-Log, which is a widely used weblog posting tool. Inspired by Chuq and Judi’s praise, I downloaded ecto and gave it a shot.

Unfortunately, I can’t stand it. The first thing I noticed was that it uses metal windows. I don’t have a problem with metal windows in general, but they rarely seem to stand out as much to me as they did in ecto. It uses metal sheets! Safari and the Finder don’t do that. ecto uses lots of drawers, too. I don’t find those easy to interact with. I found myself trying to resize one of its drawers wider to see the contents of a text field. Unfortunately, the drawer was at the bottom of the window, so I couldn’t make it wider.

I was also confused by the multitude of windows. My weblogging needs are simple — I have one weblog, no categories, and no special features. I don’t even customize my HTML except under extreme duress. (It’s 2004 and I still don’t know how to write a style sheet.) I’d like to type in my weblog settings once and never see them again. With ecto, though, I started off with something like six different windows on the screen…including a confusing error message because I guessed at the RPC URL for my weblog and got it wrong at first. I then flipped through its preferences briefly and got lost in the plethora of options there. I quit it and deleted the app.

I think ecto is aimed at power bloggers. Actually, it has to be aimed at power bloggers, since that’d be the only market for a weblogging tool trying to compete with Blogger, LiveJournal, and other free tools. There’s nothing wrong with aiming for that market, and in fact I think it’ll be a great tool for those folks. I’m just not one of them. NetNewsWire’s weblog editor is good enough for almost all of my needs, so I’ll stick with it for a while longer.

Comments (7)

Congrats, Adrienne!

Huge congrats to Adrienne Roeder, a good friend of mine from Stanford (and current Ph.D. student at UCSD) who just had her primary undergrad research project published in this week’s issue of Cell. It’s been more than four years since she finished her work on the project so it’s terrific that it was published at all. Having it in Cell is simply fantastic. Way to go, Adrienne!

Comments off

Congrats, Nick!

Congratulations to Nick Fang, who as of today can finally tell people what he’s working on. Nick is a good friend of mine from Stanford and was one of my roommates when I worked for Microsoft. Though I knew he was working on something related to Media Center, I didn’t know what his project was. Now we know.

It must very nice for him to be able to tell people what he’s doing after such a long wait, though it sounds like he’ll still have to wait another six months or more before he can point to his stuff in stores. I’m quite jealous either way, since I still can’t tell folks what I’m doing. For the time being, I’ll just keep pointing to Alexei’s comments.

Comments off

Hybrid Accords!

I don’t know how this managed to get buried in the news today, but Honda announced today that they’re planning to ship hybrid Accords in the U.S. this fall. I’ve been waiting for this for a very long time. Honda says that the new Accord will have the power of an Accord V6 with the fuel mileage of a four-cylinder Civic. That’s not astonishing mileage — it’s maybe 50% better than the current Accords — but it’s still better than I get today, and I’d have a more powerful car, too. Tempting. So very tempting.

I can’t wait to see what Honda ends up shipping and how much the hybrid Accord costs. If the cost isn’t totally ridiculous, maybe I can convince myself to get a new car when my current Accord turns five next February. That’s a stretch, but it’s possible. I’ve wanted a hybrid for long enough that I just might have to be a little bit financially irresponsible for once.

Comments (4)

NASA TV

For those who don’t get NASA TV from their cable company, go here for a variety of RealMedia feeds. It’s showing some rather cool stuff at the moment — the first pictures from Spirit, to be exact.

Comments off

Mars comes to Mountain View

I rarely read Robert Scoble’s weblog, mostly because he posts too often. But yesterday Joseph Heck pointed to him, so I followed the link and read a few of Scoble’s posts from the past week.

I’m glad I did that, because otherwise I wouldn’t have seen this post about the NASA Ames Research Center’s nifty new Mars Center. It just opened a few days ago, and it’ll be around for the next six months while Spirit and (hopefully) Opportunity explore the Martian surface.

My parents and I stopped by the Mars Center today and had a great time. It isn’t big, but it has a lot of interesting information about the current Mars missions, a cute demo rover that you can direct in a similar way to how the actual Mars rovers are operated, and some nifty space rocks. (Oh, and a whole bunch of Macs.)

We timed our visit perfectly, since a JPL press conference started just after we showed up and the Mars Center was showing it live. We got to hear all about Spirit’s landing process from the folks in charge of the project, all of whom seemed both very excited and very nervous about the mission’s then uncertain fate. Ten hours later, it appears to be a huge success. I’m very, very excited. Go NASA!

Comments (1)

Sometimes you’re lucky….

I was driving to my apartment this morning after picking up my parents at their hotel in downtown San Jose. In the left lane of Almaden Expressway near Koch, someone came driving at me at what seemed like 45 miles an hour. That’s the same speed I was going. I swerved to the right and barely missed him. Fortunately, nobody was on my right at the time; I didn’t have a chance to look beforehand.

I’ve seen cars turn into the wrong side of a two-way street before, but I’ve never had someone going full speed the wrong way on a road that’s nearly a freeway. And coming right at me. I’m glad I’m here posting about it rather than depending on my car’s airbags to protect my parents and me.

Comments off

google