Jeff and .NET

The .NET musings of Jeff Putz



My Sites


June 2007 - Posts

First play with the iPhone

Well, Jeff Putz Week started last night with a fun date to see a community theater show. Big River was the show. It wasn't terrible at all, though my date used to work professionally as a stage manager in NYC so she had some comments.

The point was that I wasn't going to go out of my way to find an iPhone after the 6pm release. And as it turns out, it would've been silly. The AT&T stores seemed to have limited quantities, because none of the nearby locations I called had any, but the Apple Store had many, many available. I arrived a little before 11am, and was in and out with the phone in ten minutes. I saw three sold while I was there. The buzz around the table where they had them out was pretty intense.

Before I talk about the phone, going to the Apple Store is always such a surreal thing. As I got in the queue to pick up my phone, I watched a college girl leaving with her parents, a MacBook box in her arms, hugging it like a doll. It's so odd that products can cause such a strange emotional response in people. Say what you will about the marketing... I still think that it's the quality of the product that makes people respond this way.

Any way, setting up the phone via iTunes, getting the number transferred and all that, went pretty smoothly and without incident. It took almost an hour for the number to switch from Verizon, not that I was getting any new calls. The only issue I had was that trying to sync my mail account reveals a bug. Because I use Google Apps for Your Domain, I have a account that goes through Gmail servers. iTunes, or whatever the sync mechanism is, decides to append my mail user name with, which is not correct. It's like it's protecting me to configure it right since it sees the Gmail servers.

Typing on the touch keyboard is weird at first, but after some practice it works quite well. The UI in most everything on the phone works pretty well. The weather and stock widgets are cool.

The most amazing thing to me is the mapping stuff. Pull your address out of the bookmarks or contacts, get directions to another address or contact, bam. There it is. Search for "brunswick oh pizza" and find where you can get it in town. It's just awesome. This is the killer app for the phone, hands down.

The Web browsing works reasonably well. I've been using strictly the EDGE connection instead of my local Wi-Fi so I can get a real feeling about how well it performs. It's cool to see sites that get you to the right place by default. Fandango bumped me to the mobile version, for example.

Phone stuff is like any other phone, but the contact management is nice. I like pinning a photo to someone, and seeing their smiling face full screen when they call. That's pretty cool. The "visual voice mail" is very, very slick.

I don't like that you can't send picture messages in the traditional sense, because I can't send to Facebook or Campusfish in the usual way. Aside from the mail bug, that's the only real issue I've had.

The build quality is very solid. The screen is indestructible it seems. Did you see the video where they put it in a bag with keys and shook it? Not a scratch. Here's the thing... most every phone I've touched since my 1999 Motorola Star-Tac has been a disposable piece of crap. While I believe that the iPhone hype is worthy, and that the device is damn close to perfect, I do believe it's a starting point. It's just that the starting point is so many light years from anything any phone manufacturer has tried thus far. What took so long?

I really like my new toy!

Posted: Jun 30 2007, 10:56 PM by Jeff | with 8 comment(s)
Filed under: , ,
New Digg comments better, commenters are what sucks, forum threading, AJAX

I love Digg for a lot of reasons, but the problem is that stories and comments are not dug or buried for their merit, people do so based on whether or not they agree with it. For the comment system in particular, that makes it broken.

The new comment system demonstrates this very well. While I think the new system is pretty cool, some people hate it. If you read the comments on that story, the people who do like the new system just get dug down anyway, even if they have an opinion with merit.

There are a great many things to think about though in terms of what they've done here. Daniel Burka has a blog post explaining many of their design decisions. I think that for the most part he makes a great many compelling arguments. There's a constant battle in my mind about how to build a forum discussion. In real life, even a large group of people talk in turn, one after another. A linear style thread, like those found on most forum apps, is recorded this way but it's not real time the way a human conversation is. To compensate, that means you have to quote previous posts, and far too many people never bother to trim those quotes so you end up with a ton of repeat or distractionary data.

On the other hand, you can do the Usenet-style true threading, but the problem is that a conversation can then splinter off into a thousand different directions, which is, frankly even harder to follow. It can lead to many posts spread out by the same user too, often saying the same thing.

So I think that the linear threading is still better in most ways, but you still have that problem with quoting. I'm not sure how you solve that problem.

The thing I do like is the AJAX loading of posts. The theory of it at least is interesting, in that you have less database activity, less initially transmitted HTML and a more manageable page for the browser to render. I'd be very curious to know what the measurable impact of this is.

The online discussion has not really evolved all that much in ten years. I wonder now what imagination will lead us to.


AJAX woes in Safari

I'm really frustrated right now with some issues we're having with the AJAX framework and Safari. Our stats show that's about 5% of our market, so naturally we can't ignore it.

We dynamically render a series of controls and validators (the compatible variety), and a series of dropdowns are set to auto-postback. All this stuff lives in update panels. For some reason, in Safari, when the partial rendering postback happens, it comes back with no UI rendered at all. We can't figure out why. There's just a big blank nothing in the middle of the page.

I keep thinking we can't be the first people to encounter this, but I haven't found any solutions. Any going theories on this? 

Posted: Jun 19 2007, 03:40 PM by Jeff | with 6 comment(s)
Filed under: ,
Windows Safari != OS X Safari (AJAX issues)

For those of you expecting a level of comfort that the Windows version of Safari works just like the Mac version, think again. We just encountered a pretty serious problem that happens only in the Mac version surrounding the ASP.NET AJAX framework. I haven't been able to nail it down yet, but stuff coming back to the UpdatePanel on the client is either not there or garbage (haven't figured out which). I'm not sure if it's because we have dynamically created UpdatePanels and validators or what, but it's ugly.

Make sure you test your stuff on an actual Mac. If your stats are like mine, 5% of the market is too much to ignore.

iPhone Web-based apps: The right thing to do

Apple fan or not, people seem to be annoyed that Apple is not opening up the iPhone for application support on the device itself. It's not just the Windows developers who are annoyed, it's the faithful Apple developers too. But why? This is the point we've been trying to get to for years!

When I worked at Penton Media back in 2000, a B2B rag/tradeshow company,  we internally talked about how cool it would be to do Web-based CRM, among other things. The short-sightedness of the execs of course poo-poo'd this, and it never got beyond discussions. (Morons. Said execs managed to nearly kill the company and get it delisted from the NYSE, while continues to thrive.) Knowing that eventually most computers would be connected from virtually anywhere, and that handheld devices were getting more powerful, this seemed like a no-brainer to me. Who wants to maintain and deploy software to the devices themselves?

So while I can see the Apple move as being a cop out, I have to ask why you'd want to develop for anything other than a browser anyway? I mean, most of the ASP.NET AJAX junk works in Safari today, so if the iPhone has Safari, and the device is intended to be connected, why would you want to build a clunky device-based app?

Some days I don't get developers. 

Agility: The most important thing about Web development

 One of my biggest struggles in the last few years is that, outside of my normal day job (and I still can't believe I have one that I actually like), is that I don't seem to deliver anything. When you run Web sites that people get a lot of use out of, and they stay the same for four or five years, they feel stale.

The issue is one of agility. Simply put, I didn't know how to stay agile four or five years ago (and I mean "agile" in a last century way, as in able to move quickly, not in a development methodology sense). Back then, I wasn't writing loosely coupled components that were easy to glue together. My efforts at source control were half-assed at best. Frankly, my skills were less developed.

There is a pretty good, evolutionary reason for this state of affairs too. If you think back to 1999, when I first started to write code for a paycheck, we were largely in a script world. Perl and ASP (the old kind) were what people were using, and this thing called PHP started to get popular. Every kid and 20-something with a computer instantly recognized there were neat things you could do on the Web with a little bit of code.

And so a generation of developers hatched with an unprecedented lack of educational background. To this day, 75% of the people I work with went to school for something else (double major in radio/TV and journalism here!). Script was easy to learn, and even easier to use in away that was totally incorrect. Object-oriented programming? Seemed like voodoo to me.

But ASP script monkeys like me, who wrote really bad scripts, got laid-off and had lots of time to learn this new .NET thing. It was a struggle I think for a lot of people, myself included, but I got up to speed pretty quickly. Realizing that people like me were not being spoken to, I even wrote a book.

But with a lack of formal education and at least some background on evolving development techniques, design patterns and general computer science, we weren't writing the best stuff, that's for sure. Fortunately, the servers running our applications were plenty powerful enough to compensate in most cases.

Now I feel that we, the people who hacked our way into the profession, are catching up. We might even be moving ahead of the academics because we creatively look at things differently. Where we may get held up is in our legacy.

I have a lot of code baggage, so to speak. I have photo library code running on at least three of my sites that is totally inflexible. It sucks. I've written something new that I really like, but it's hard to do any kind of wholesale change because I'm dealing with old legacy systems, incomplete code bases, and worse, .NET v1.1, the old stuff. Snapping things in is a little harder than I'd like.

I have a reasonably functional forum app ready to go, but can't use it in my sites until the sites themselves are changed. It all feels so close and ready to go, but I can't get out of the legacy quickly enough. I could be tweaking and optimizing every little thing that a user responds to, if I could only completely make the old stuff go away. I'm ready to cut the cord, I just need to let the birthing begin. Then I'll have the agility I seek.

More Posts