Vista: Windows ME’s Successor

(Apologies if this seems a bit ranty, but it is a rant, so…)

About a month ago, I decided to buy a new computer to use as a home theater PC and backup file server. I opted for a Shuttle, and with it came Windows Vista Ultimate. I had already used Vista a little bit at this point, but not on a day-to-day basis, so I decided I would give it a chance.

It’s a month later and I’m ready to wipe the partition. Vista is Microsoft’s latest greatest failure. Not since Windows ME have I seen an operating system cause so many problems.

Crashing Applications

Let’s start from the base case: Running your applications. Sure a lot of third party programs are marked as being incompatible, but would you expect your device manager or notepad.exe to run without problems? You might be wrong. It turns out a lot of people, myself included, experience crashes in several pre-installed and third party applications. Sometimes it’s while you’re using it, but often just quitting the program causes Vista to think it has crashed.

This makes for an unusable operating system. I have no idea if the program I’m about to run will survive more than a few minutes. The computer is essentially useless, and there’s nothing I can do about it, aside from installing another OS. Now, maybe Service Pack 1 will fix this problem, but it never should have been a problem in the first place. Extensive testing should have caught this. At the very least, my manufacturer should have seen this and never shipped Vista with this problem.

Vista UAC

The Vista UAC, or User Account Control, is Microsoft’s answer to the security problems that plagued previous versions of Windows. It’s brilliant in that it creates an excellent illusion of security, aggressively prompting the user for any action involving the system.

The main problem with UAC, though, is that the user is being bombarded with dialogs. Now, think about what happens when you encounter a dialog. Often times, you don’t read it, you assume what it’s saying, especially if you’ve encountered it before. I know of several non-techy people who blindly click dialogs, and that’s where UAC falls apart. There could be a virus on the system and the user, having had to click through these dialogs time and time again, may not realize that this virus-activated UAC dialog was not caused by their own actions and click through it.

Some people have no idea what goes on in a computer and assume that if the system needs to do something, there must be a good reason for it. Since the UAC dialogs are a bit cryptic at times, I can see users thinking, “My computer wants to do this, it must have a good reason for it!” and proceeding to allow the operation.

The UAC dialogs are also pretty verbose. If you perform a file operation in a system directory, you’ll get 3 confirmation dialogs. The first to confirm you want to do this in a system area, a second to ask if you want to go to the admin confirmation screen (why, I have no idea), and a third to confirm that the whole operation is allowed.

Now, think about when you create a directory. You’re performing two file operations. First, the initial creation of the directory and second, renaming the directory based on the name you gave it. This common operation will punish you with six dialogs!

</rant>

There’s more I could say but I won’t. I’m really looking forward to Vista SP1 with the hope that it will fix a lot of these problems, because as of right now, this is a really unstable, frustrating OS. I think it has potential if they can get these problems sorted out, though.

Vista: Windows ME’s Successor Read More »

iPhone/iPod – The new standard mobile platform?

I’ve been living with a very basic Sanyo phone for many years now, and decided to finally upgrade. My main requirement was a real web browser, and the iPhone fulfilled that nicely. Besides, I wanted to be cool and get all the girls, and what better way to do that than to carry around an iPhone?

I’ll talk in another post about what I think of the device, but one thing struck me as I begun to play with this phone. Apple may have just set themselves in a position to dominate the mobile application market. If they choose to.

Now hear me out. Companies such as Sharp and Nokia have worked hard on creating devices (the Zaurus and 770/N800 respectively) based on open source software in the hopes of creating a developer base. While this worked in both cases to varying degrees (lots of third party apps for the Zaurus and lots of great GNOME/Gtk+ improvements and apps for the Nokia devices), they’ve both had problems in terms of market share. You’re just not going to get every teenager, every student and every businessman wanting one of them.

I love my Zauruses, my Nokia 770 and my N800, but having tried to explain to people in the past what makes them so cool is difficult. They kind of get it with the N800, that they can browse the web and run applications and all that. Most people, though, are still so tethered to the computer that they don’t know why they’d care.

But an iPod? iPhone? People care about that. It’s trendy, it’s sexy, it plays their music and videos. Yes, the N800 does that too, but the out of the box experience is very different, and well, the kids just want an iPod. My little 7 year old sister has no idea what an “mp3 player is” but knows damn well what an iPod is.

Web development

Now, where Apple did well was to bundle both the iPhone and iPod with Safari and to put up guidelines for how best to optimize your websites for the iPhone/iPod form factor and visual style. Since then, many sites have provided optimized versions that work quite well, including Amazon, Meebo, NetVibes, Facebook, and Google Reader. And this all turns out to be quite easy to do, especially with Joe Hewitt’s iUI JavaScript framework for the iPhone.

So, we now have a de facto standard for miniaturized AJAXy web UIs for mobile devices, do we not? I don’t see anybody else developing for other mobile devices en mass in such a way that allows all this fancy web 2.0 stuff. What’s great is that aside from the CSS 3.0 support needed for some of the look and feel of these sites, and the viewport meta tag, they’ll work in any browser, mobile or otherwise.

Native applications

The one thing that these other devices do have over the iPhone/iPod is that you can actually develop applications for them. When the iPhone was announced, we were told that they would not be opening up support for third party applications. Of course, it didn’t take long for people to figure out how to jailbreak the device and install custom applications.

Now anybody with an iPhone can easily put their iPhone in a state where they can install custom applications on it. The installer that ships with the modern jailbreaking software is, from a user’s point of view, surprisingly nice and easy to use. It even handles upgrades for you effortlessly.

The pieces are now together for developers to create applications and for users to quickly find them and install them. The only gotcha is that this is not officially sanctioned by Apple, and we may find that this will break in future firmware updates.

If Apple was to reverse their stance and provide an open framework for developing applications for the iPhone and iPod, they would make these devices much more tempting to a wide variety of people. The gaps left by Apple (proper Exchange support, calendar synchronization, document publishing, instant messaging, etc.) would be provided by third party developers and downloaded by possible millions, legally. New companies would form to develop applications. Existing companies would port applications over. Life would be good.

Why didn’t Apple do this from the beginning? Maybe they’re just against a community of developers forming around this product, but I have a hard time believing that. Maybe it’s pressure from AT&T, but you can develop for other phones.

My hunch is that they just didn’t have enough time to do it right, given how much work it was just to get the thing out the door in the first place. If so, perhaps we’ll see official approval for third party application development someday.

iPhone/iPod – The new standard mobile platform? Read More »

Review Board Status Update

It’s been just over a month since the last Review Board status update. I thought this time I’d start off with a few stats.

  • Bugs open: 19
  • Bugs fixed: 97
  • Feature requests open: 27
  • Contributors: 10
  • Companies using Review Board: at least 13

If you’re part of an open source project or company using Review Board, we’d love to hear from you and your experience. We’d like to make a list of who’s using Review Board, so if you’re able to list your project/company, please let us know!

Now on to the feature updates.

  • Internet Explorer compatibility. Internet Explorer should now work properly with Review Board. A lot of work was recently done to make this happen and it hasn’t been as extensively tested as we’d like just yet, but things do appear to be working. Firefox is still the preferred (and targetted) browser, but do feel free to try IE and let us know if anything breaks.
  • CVS support. Review Board now supports CVS repositories. Right now there’s only :pserver support, though, but patches are welcome.
  • Improved post-review script. post-review, the script of choice for creating and updating review requests from the command line, now supports both Perforce and Subversion, with support for more systems on the way. A single post-review script can now handle a variety of repositories for different projects, and projects can be set up to point post-review to the right Review Board server.
  • Column sorting and list paging. Columns in the dashboard and review request lists can now be sorted by summary, submitter, posted time or last updated time. There’s also an improved pager at the bottom for skipping to other pages in the list.
  • Collapsed diff sections can now be expanded. The brown “n lines hidden” boxes in the diff viewer can be individually expanded without reloading the page by clicking a little “Expand” link on the box. This makes it easy to get more context when needed without expanding the entire diff and having to reload the page.
  • Cross-platform CRLF support. Diffs generated on Windows will now apply correctly on Review Board instances running on Linux, and vice-versa.
  • Improved diff loading times. Large diffs take a while to load, but we’ve improved this slightly by caching much of the resulting diff so that it doesn’t have to be regenerated again. More work is planned in this area to improve loading times, but it’s a lot more usable now.
  • More reliable database migration. The database migration scripts didn’t scale very well due to the existing Django libraries we were making use of being problematic for large database sizes. We’ve now fixed this, and they should be more reliable and hopefully a bit faster as well. There’s now a percentage complete indicator when loading back in.
  • Anonymous access to Review Board. It’s no longer necessary to have an account in order to view review requests and diffs. This is desirable for most open source projects. The old behavior of requiring an account for site-wide access can still be enabled, but is disabled by default.

In the works is a much improved diff parser that won’t require lsdiff on the server hosting Review Board. This should make things a little easier for people installing on Windows, and it also cleans up the code quite nicely. This should be in sometime this week.

Review Board Status Update Read More »

I’m ready to smash my ThinkPad

I know I’m in the minority here, but I’m beginning to despise ThinkPads. I’ve had such amazing trouble with these things and while IBM/Lenovo has attempted to repair them, they just keep failing in new ways. I’m not even being that hard on them, really. Every problem just feels like a manufacturing defect.

My latest problem is that my ThinkPad no longer detects that I have an extra stick of RAM in here. I upgraded from 1GB to 2GB and thinks were fine for a while until it started giving me bootup errors and failed the POST. I figured the RAM had gone bad and shelled out for another stick, which the laptop only recognizes a fraction of the time. It will take me 5 power cycles to get it to see the RAM, and that’s if I’m lucky.

Furthermore, memtest86 fails at times when probing for RAM.

Now I know I probably need the motherboard replaced, but last time I had to do that, Lenovo charged me $700 and gave me one that barely turned out. They then charged me a little bit more to get the laptop replaced altogether (which was needed since they also warped my plastic and caused other damages). They never refunded any of the money, despite their negligence.

It wasn’t that long ago that I had to send this in for a fan replacement. And after that I had to get two keyboard replacements (the first one they sent had a busted key).

Let’s see, with this problem, I’ll now have:

  • 3 faulty motherboards
  • 2 dead fans
  • 2 broken keyboards
  • 1 cracked case
  • 1 damaged LCD
  • 1 dead drive

I want to send this in and get it fixed, but I’m scared to death that they’re going to screw this up like last time I needed a motherboard replacement.

You listening Lenovo? Anyone want to help reaffirm my faith in your company?

I’m ready to smash my ThinkPad Read More »

Syntax Highlighting in the Diff Viewer

I was up late last night experimenting with a new feature for Review Board. The idea was to introduce syntax highlighting for the code in the diff viewer through use of the Pygments library. Actually getting syntax highlighting to work was pretty easy, and before long I had it working. The trick, it turned out, was to get it working with our interline diff support.

Pygments generates a nice HTML-formatted string with span tags, but we need to insert our own span tags for the highlighting. This was a pain, since you need to make sure you place them at the correct locations, keeping in mind the existing span tags and entities. The code also needed to avoid messing up the nesting of tags. After working with it a bit, I had that working as well, and now the code is up for review. In a couple of days, Review Board will have nice syntax-highlighted diff output!

I have some new improvements in the works for the diff algorithm that should result in much better diffs (especially when moving functions around) and improved UI for that case as well. I’ll blog about that later when I have something to show 🙂

Syntax highlighting

Syntax Highlighting in the Diff Viewer Read More »

Why’s there a little person in my button?

I was walking around the new VMware Promontory campus today and found this button.

Little Person in a Button

I’m tempted to press it, but I’m not sure what it will do. Send little stick figures to attack me? Stick me in a little house?

Any ideas?

Update: My apologies to anyone who couldn’t comment. My cache plugin cached the captcha. Oops. That’s been disabled now, so try again.

Why’s there a little person in my button? Read More »

Recent Happenings in Review Board

It’s only been a couple of weeks since the last update about Review Board, but too much is happening to stay quiet.

New Features

  • Interdiffs

    Ever go through a long patch review process only to find it’s getting harder and harder to review any new changes due to the size of the patch? I’m sure most large projects have had to deal with this at one point or another.

    Review Board can now display interdiffs, which are diffs between versions of diffs. This makes it easy to see what was modified since the last change. Currently, there’s no UI for this, as there’s still a few backend changes that need to be made before we allow commenting on interdiffs, but it’ll be a full, proper feature very soon.

  • New Diff Algorithm

    We were previously using Python’s SequenceMatcher, along with some hacks, to generate the diffs. SequenceMatcher, unfortunately, just isn’t a desirable diff generator, due to its algorithm, quirks (assuming every change between matching blocks consists entirely of inserts, deletes, or changes instead of a mix of them), and lack of extensibility (no leading whitespace trimming to simplify diffs containing lots of indents).

    I’ve known for a while that we needed a new algorithm, so I finally sat down to write one. The obvious choice was the algorithm used in GNU diff (amongst other programs) — Eugene Myers’ O(ND) Difference Algorithm. After a few frustrating nights that left me nearly bald (ok, not really), it worked! And the diffs were much better than the older diffs. I think this is the first Python implementation of this algorithm.

    This also gives us the ability to add some heuristics and other logic to clean up the diffs. The result is much more readable diffs that no longer show indentation changes or huge misaligned fragments.

  • Improved support for project maintainers

    Project maintainers can now quickly download the uploaded diff from the diff viewer in order to apply the patch to their own tree. They’re also able to mark contributors’ review requests as submitted. While small additions, these make Review Board much more useful to open source projects.

  • Better browser and SCM compatibility

    We’re working on better browser compatibility and better SCM compatibility.

    CVS is almost implemented. Contributors are working on Git and BZR support. We’re working on the best ways to get these distributed systems integrated cleanly into the system.

  • Subversion post-review script

    We just received a patch for adding a Subversion-specific post-review script. Soon, we’ll combine the two and add support for CVS and other systems. This will give us one tool for creating review requests in all systems.

We’ve had a number of good contributors come out of the wood work, and from the sounds of it, several companies are using it now. I’m planning to put up a page listing teams, companies and projects using Review Board, so let me know if you’d like to be on the list! 🙂

Recent Happenings in Review Board Read More »

Unity is now “real” – VMware Fusion Beta 4 released

Yesterday I briefly wrote about the new feature in VMware Fusion called Unity and linked to a video demonstrating what it can do. The buzz we got from that has been a lot of fun. Some people commented on various sites saying it was fake, even, which I found pretty funny having watched this thing being developed. I personally didn’t work on this feature, but I work with those who did, and they’ve sure looked sleep-deprived lately trying to get this feature and the next VMware Fusion beta ready.

They can finally sleep peacefully. We just put out VMware Fusion Beta 4. I want to issue a public congratulations to the developers who have put in a huge amount of time into this product. They’re not done yet, but I think they’re starting to see the light at the end of the tunnel.

Regis Duchesne, one of the developers of Fusion, talks briefly about where things stand and where things are going.

So again, congrats guys. I think I’m finally going to have to buy myself a Mac.

Unity is now “real” – VMware Fusion Beta 4 released Read More »

Unity

I remember the day I interviewed at VMware. I was asked what I would do to improve Workstation, and one of the things I said was that it would be nice to make a VM go rootless. That is, pull application windows out of the VM and make them integrate well with the operating system.

I wasn’t the only one. A lot of people wanted this type of feature. It’s been discussed for years, but it’s always been hard to find the manpower to do it. But competition is good, and we finally got some people on this feature. And it turned out spectacularly.

Check it out.

Kudos to the people who have spent many nights practically living here. They’ve pulled off an amazing feature. And we’re not done yet.

I know I’m going to be asked if we’re doing this on Linux or Windows. It’s too early to say what our feature list is like for the next major product. So feel free to just speculate 😉

Update: They moved the link on Digg, so updated my link.

Unity Read More »

Scroll to Top