Is Microsoft really clumsy and stupid, or a malcious beast?

There have been reports of Microsoft forcing Firefox extensions on users without their permission. If you're too lazy to click on that link, it all boils down to this. Windows Update, the automatic update tool will install an extension in Firefox without asking, one that will enable running .Net applications in Firefox. The problem is the uninstall button is disabled. Never mind the afront to the user, to install plugins for other programs they may never want, but the real chutzpah is to take away the user's choice to remove it.

(Supposedly there are removal instructions that involve editing the registry, which may or may not protect them legally, but from all practical points of view, it's not removable by the user.)

What's also really troubling is that this opens up the browser to all sorts of new vulnerabilities there used to not be. Up until now, if malware managed to get itself installed in Firefox, it was the fault of Mozilla, for not securing Firefox enough. Now, any bug in Microsoft's crapware is yet another vector to get junk into the browser and honestly, Microsoft's track record is far from stellar. Now, the only way to get a secure Firefox experience is to use any OS but Windows. This includes OS X, Linux, *BSD, Haiku, and many others.

Microsoft did this sort of thing once before, but to their own browser. They had this piece of technology, which even got them lawsuits, called ActiveX. If the very name doesn't have you shaking and crying for mommy, then congratulations, you must have been using Linux since 1991. For everyone else, we all know what kind of a failure that was, and Microsoft had no one to blame but themselves. This time around, if something goes wrong, they can just blame Mozilla. You might almost think that Microsoft is doing this on purpose.

Jet Lag is a %^%$^#$#@%$

Just when you think your body has adjusted to jet lag, and you're on a relatively normal schedule, albeit in need of some extra sleep, your body decides it's randomly a good idea to wake up at 4am and not go back to sleep.

That said, i've moved to Holland. For the next month, i'll be taking care of paperwork, bumming around until work starts, and then going to Linuxtag. Hopefully between there and now, there'll be some quality Devshell work going on.

As for the move, it's been pretty simple. The airline schedule a zig zag trip from Pittsburgh to Detroit to Boston to Schiphol that no sane human being could make, even if the plane was on time. Instead i got upgraded to business class in Detroit. Because of the switch, the airline managed to lose my luggage. All in all though, if i ignore the fact that i didn't shower or change my clothes for two days, it wasn't really so bad, because in the end, the airline delivered my luggage all the way here. Saved me the trouble of having to haul twice my body weight in baggage. I even got a discount on my next flight. In otherwords, the airline paid me to deliver my luggage here.

As for my house, it's unfortunately only temporary. I can say, though, that if you want to live like an American with a large house in the Netherlands, you have to live as far away from civilization as possible, which is really only 10 minutes away from town.

What are functional languages?

Yesterday, Conal Elliott wrote on his blog that C is really a pure functional language called cpp that can be reduced to a monadic construct called C. Fortunately for us, there is alot of prior knowledge in reducing C into highly optimized machine code.

I would like to add that Make is also a pure functional language. It is a set of rules that can be reduced to a set of shell scripts, which unfortunately do not share the same optimizations. Fortunately, shell scripting lets you insert code in the form of a variable with some amazing metaprogramming consequences.

If you're on the fence about FP, it's really more pervasive than that silly academic language, Haskell.

Building blocks for world domination

I've been throwing around an idea for a few days that might be useful for the python ecosystem.

It's really easy to praise the bazaar way of doing things. Because of it, i can find four different libraries for manipulating pathnames in Python. There's the built in os.path which comes with every python distribution. There's pathtool which provides a nice api for walking a file system, which can replace the function 'walk' that's ordinarily provided by the Python Standard Library. There's Unipath which replaces paths as strings with paths as objects, to avoid a certain class of type based bugs. It also overrides standard behavior with what the author presumes is more logical behavior. There's which provides the same but is 2 years old, and as far as i can tell, dead upstream. There's a fork of which is in paver, which provides an interesting feature available to Python 2.5 and up, 'pathd'. This is a context manager that works in a different directory than the surrounding code. (No, i won't translate that for non Python users.) I've also had to do something similar in devshell, for the obviously similar reasons.

The end result is that there are so many good ideas out there that we really don't know what to do with them. An intermediate Python developer looking to put together a large application doesn't quite know what to do with all these different options. Does he pick which appropriately follows the os.path behavior? Is Unipath better with it's object oriented behavior? Should he use the fork in Paver and require Paver to be installed with the application? Is doing this kind of research even a good use of time that would be better off spent just writing the tools in a util module on the side? Without prior knowledge or experience, this can muddy up the ecosystem.

This is of course not unique to manipulating pathnames. I'm finding that i'm looking for a wide range of reusable components in my Python work. It is hard for me to decide if i want to build my own parts or work with prior ones. Browsing the Python Cheese shop can be a daunting experience sometimes, although great when looking for brilliant ideas.

I think there is alot of room for a reusable component library. The goal of this library would to pick the best of the breed components and collect them all in one repository. As new ideas spring up in other libraries, we could cherry pick them and port them to the upstreams where necessary. It would exist outside other large projects like Zope and Twisted which provide other large building blocks for certain domains of problems.

Potential types of building blocks could include:
  • Pathname manipulation
  • Configuration file and runtime options management
  • A unified set of functional programming inspired functions (I see way too many implementations of them)
  • Implementations of more advanced functionality than provided by the Python Standard Library
  • Add your own itch here.

I think the end goal would be to provide a platform of libraries that are blessed by the community at large, but don't necessarily have to be included in a default Python distribution. It'll hopefully let systems programmers and application developers do their jobs with one place to find all the information they need.

Anyone interested?

New Slogan?

I was thinking that sometimes when a Linux distribution claims to have a target audience, it can be a bit discriminatory. For example, Exherbo claims it is not for you. Perhaps we need a new slogan to show how inclusive Fedora is. For example:

Fedora - Linux for Humans and Space Aliens.

Fedora 11 Presentation at WPLUG

As seen on the WPLUG Mailing List:

Hello WPLUG! (and other wplug-announce subscribers)

It's that time again! This Saturday, at the Wilkins School Community
Center, there will be a General User Meeting and presentation on
Fedora 11 by Yaakov Nemoy from Red Hat.

Doors open at 10:30, meeting starts at 11:00, presentation at 11:30,
lunch at 12:30.

"Yaakov Nemoy will talk about what features are new in the upcoming
Fedora 11 release. Many of these features are upstream contributions
and are also showing up in many other distributions. Come find out
what the next six months have in store for Linux. "

Yaakov is obviously a big fan of Fedora. But if you're not a Fedora
user, you will still probably find his presentation interesting.
Yaakov doesn't hate Ubuntu - in fact he has a picture of Ubuntu
founder Mark Shuttleworth on his wall* (though the picture is in front
of his dart board.)

Sign up to help out by adding your name to the "Meeting Staff" section
of the page listed above. Don't expect someone else to help if you
are able, though they probably will.


Mike Semcheski

*OK, I made that up.

Fedora Devshell is now packaged in Fedora

Tonight, Fenzi filled my cvs request to put Fedora Devshell in Fedora, so for all those of you who have been waiting so long to use it, (all three of you), there are builds available in koji.

Pick your poison^Wrelease here

Are all Fedora developers Contributors?

I'm watching this video hosted by the Linux Foundation of a panel at the LF Collaboration Summit on why we want to measure community contribution. One of the issues that gets discussed is the need for better testing. In some ways, this is as important as code contributions itself.

I was thinking about how Fedora tends to take the more experimental route. Every Fedora release really pushes what we can do with Linux each time, in order to get the widest use of it possible. PackageKit, Pulseaudio, KMS, Ext4 and Btrfs are all perfect examples of this. Here's an open ended question. Does using Fedora in some way automatically make you a contributor? Obviously you need to report on it, even if everything does just work. But when you consciously make the decision to use Fedora in order to make sure the latest and greatest technology works for you, does that count as a de facto contribution?

(Better yet, if you do use Fedora, participate in a Test Day. It's simple, and it gives you a good heads up about future versions of Fedora.)

You can watch the video here.