Skip to main content


Showing posts from June, 2007

Validation for MySpace Hating

The hating of MySpace is not unique, but any professional-seeming information to back it up is rare. The findings are probably dead on with what I would expect, and I don't even see Facebook or know anyone on it. I do see the people on MySpace and the kind of people that I definitely do not see there. Social classes in the United States are always interesting, because there is a different dynamic than the expected class lines. Although, income certainly comes into play, it is not the definitive factor.

After reading about the division it reaffirms my desire to use Facebook. However, I don't know anyone on Facebook. All of my friends are on MySpace, including those running their own businesses, those with families, any of the younger members of my family, and the ones making far more money than I. The social divisions that mark MySpace are also what tie me to it.

apophenia: viewing American class divisions through Facebook and MySpace

Factual Google

Google is building fact mining into the search engine. Coming across a little article over at The Best Article Every Day, I got wind that Google Spreadsheets can do lookup of certain statistical and financial information. You can have formulas that include things like the latest Microsoft stock quote or the boiling point of sodium. This seemed interesting, so I played with it a bit, but changing the formula quickly to play with it was awkward. "Can I just Google this stuff," I thought? Yes. Read on for my findings.
The documentation for the Spreadsheet function, GoogleLookup, talks about entities and attributes. "Pluto" is an entity and "mass" is an attribute. As it turns out, you can just search for "mass of Pluto" or "birth rate in Canada" and are presented with a new type of search result.
We can see that Google seems to be pulling facts from the websites they index. They are structuring the information into subjects and properties ab…

The Stand Up Desk

My back and legs hurt, but this might be a solution: the Stand Up Desk. There are different ways to implement this. Some people shell out the money for adjustable desks. You could place a shelf with an extra monitor and keyboard at standing height and attached to your machine with splitters. I'm looking into the kind of adjustable mount arm attached to portables in hospitals, to install behind my desk and allow my screen and a set of keyboard and mouse to adjust up easily, without the rest of the desk needed. I think alternating sitting and standing will be nice. Until then, I'll stand up to read.

The Stand Up Desk -

Implicit Interfaces and the Web

The best interface to software might be doing nothing at all. Implicit interfaces are gaining mindshare. This is not a new idea. Amazon improves your experience based on your habits, for example. Google increasingly employs subtle, personal weighting of our search results. In The Implicit Web, Alex Iskold talks about the services of Amazon, Google, and All of them take advantage of the implicit actions of their users. lets us track, publish, and find songs we listen to and like, and after installation, I forget it most of the time I use it.
Implicit Today
A number of services have risen that really should be implicit, but are not. This might be caused by implicit interfaces' very nature of being unseen. Although they can be wonderful ways to interact with our networks, they are difficult to deploy. Developing the algorithms to translate user behavior into user interaction, without hindering the user experience, can be difficult. Even coming up with an idea for emplo…

Google Your Spellchecker

Feature volume rises as applications and services merge and soon we will need the power of Google within single applications. Of course, there are reasons for this that lend to the idea that we will not have single applications in the future. As applications migrate into services, and services combine and interact, the whole of software is evolving into a massive software ecosystem. Every state of software can be integrate, broadcast, and pull from a host of other global services. The number of "features" available at any point is rocketing into unimaginable heights. Until we can automate the integration, filtering, and aggregation of the mass of services we have for working with the same data set, we do not benefit as fully from their availability.
Jeff Atwood brought this up in context of Office 2007's Ribbon and the Scout plug-in that may not see the light of day, for internal political reasons at Redmond. The apparent story is that adding a feature to search their int…

Office 2007 and Blogging

I finally started running my copy of Office 2007, and I wish I had abandoned Open Office earlier.
Everything is a lot more snappy and responsive than I expected. The common wisdom of each new version of Office requiring hardware upgrades seems unwarranted in face of this. Certainly, it is furiously faster than Open Office. I don't expect to make as much use of Google Docs and Spreadsheets, either. Word is taking up 20 megabytes in memory, while Firefox is eating 300 MB. Which one I prefer to keep running is obvious.
Now, I tried to write blogs with Open Office, but I found no plug-ins to get it to post to Blogger. You would really think I could use Google Docs, but somehow they don't properly support posting to their own blogging service from their own word processor service! Multiple blogs on one account is not supported. Posting draws the title from the first line in the document, even if the title is present and differs from this, meaning the title appears repeated in the fin…

Object Orientation Has Little to Do With “Objects”

I would like to declare that the word "Object" from "Object Orientated Programming" is damaging to any benefits. If this seems counter-intuitive, you should keep reading. This is a case where the title is harmful to the subject. Some people take things too far and imagine some requirement for the concept of an object, and forbid anything outside their definition. If we understand the real benefits of OOP, the inappropriateness of such object-enthusiasm becomes clear.
Do objects matter? Using a traffic simulation example, we'll say we have instances of a Car class. We add lots of methods, such as accelerate(speed_diff) and implement logic to stop the virtual car at a virtual red light. The non-OO alternative would be functions operating on data describing the state of the vehicle. When we add motorcycles, we non-OO version requires a new function to operate on the new kind of data; or, so we are told. We know the OO way of doing things is to create a Vehicle cla…

The Software Prosumer

The affects of prosumerism are well documented in the evolving economy of content, but the pattern applies equally well and valuably to software creation.

You are most likely a consumer, and if you're an American you think that is a Really Good Thing, most likely. The producers pushed that, and benefit from it. That is not to say we don't benefit from the relationship. Have you seen the price of tube socks at Wal-Mart? I can live with that.

Nonetheless, someone always has to complain, attack the norm, and think they know better. Anyone betting on the dominate future of the “prosumer” is likely right on that current negativity. We don't just read the news. We filter, amend, and combine it. Every novel today spawns even more words of fan fiction. Slashdot1 would be completely worthless without their prosumer users. The barriers between those who produce and those who consume are blurring and the two are mingling. The party is just getting started.

Prosumerism in Software Develo…

Advertising Forgot You Remember

Do you remember when you were walking down the street and you saw that billboard for an injury law firm, so you punched the billboard and were teleported magically to their offices?

How about that commercial break during an episode of Friends, for a brand of tooth paste. Do you remember kicking your TV and bottles of toothpaste falling out of it with the shattered glass and smoke?

If you don't remember these events, why do online advertisers want you to hit their banners right then and there, which is so different from how you are used to getting advertisements? Because, you know and they know, that if they do their job right, you'll remember them later, when you need to.

In this light, I propose a new advertising model for the Web: AdMarks. I see ads for things all the time that I would buy, or want to buy, but that doesn't mean I can buy them right now, or have an immediate need for them. I'm not about to follow the banner, open a new window up, read about it, bookmark …

Python, IronPython, Apples, and Oranges

While Fuzzyman is over at the voidspace, talking about how great it is that, in IronPython, str and unicode are the same things, I'm over here getting more worried every day about the segmentation of Python and IronPython.
IronPython is a new implementation of the Python ... maintaining full compatibility with the Python language.From the IronPython homepage.

They should go ahead and drop that last qualify. I want to make something very clear, and that is that I absolutely hate writing this post. The IronPython project is really great, and I've been impressed by what it has done, and my Microsoft's embrace of the language. Admiration does not trump worry, in this case. A number of issues make IronPython simply not Python. I've been advocating this issue more and more recently, so it is about time I wrote at a moderate length about the issue.

In IronPython, str is unicode

Now, it may be true that Python plans to drop the current behavior, make str unicode, and add a separat…

What Human Beings Can Do

Humans beings are capable of some truly amazing feats.

Somehow, I still can't get that twitter app to list my updates for me. The web-based editor I'm writing this in has odd bugs in the buttons. At least twice a day, I need to restart Firefox, so the rest of my computer doesn't crawl and cry. We can move upside down mountains, yet common bugs in our software still elude us.

Something is seriously wrong with this picture.

Patent Peer Processing

Finally, some good news about technology patents. We have known of the problems with the system for a long time, and now that things are starting to turn around, the burden is on the people to take the power being given them and make a difference and show that this works.

I am calling on everyone who has the slightest time and knowledge to contribute to this new system, because the results affect you just as much as the rest of us. That includes all non-US citizens, because we do live in an global village, and anything anywhere can affect everyone everywhere.

We need to make sure the new system is setup in a way that we can consume and digest the information in the same way we filter, rank, pass, and project information around the blogosphere today. That means ensuring that feeds are setup from the PTO, establishing aggregators, tagging conventions, and working toward trusted patent review bloggers. We can use the same tools we have been employeeing to digest insane am0unts of our own i…

I'm Backpacking it Now

After finally trying to spend some time using Backpack, to really get an idea of what it is all about, I decided it was to stick with. I was already at the 5 page limit for free accounts, so I went to upgrade to Basic for $5 a month. Thankfully, at the last minute I remembered that 37signals themselves post coupons. First month is free, so no risk.

This also means I can try the calendar service, and have file upload capability. I'm trying out the use of page sharing to coordinate with a client.

The Chaos Theory of User Ingenuity

There is just no telling what those crazy users are going to do. As a recent post at Worse Than Failure makes us realize, they can simply do some impressively unpredictable things. The case in question has bank tellers using the Windows Task Manager (ctrl+alt+del) to manually kill a process for an annoying dialog their employers had the developers make un-cancellable as an error checking precaution. I am simultaneously dumbfounded at their incompitence for thinking it fine to repeatedly hard kill processes as a form of annoyance reduction and my sheer amazement that the users knew enough to even try it in the first place.

The lesson can be applied in a lot of places. We need to do more than predict what the user will do: we need to make our software robust enough to stand up to the random environmental attacks it will take from the users' strange and completely unpredictable behavior. The user could be clicking on our links or importing our packages (end user versus developer) and …

Pythonic Defined

Losing is Good
IntroductionVeterans and novices alike of Python will hear the term "pythonic" thrown around, and even a number of the veterans don't know what it means. There are times I do not know what it means, but that doesn't mean I can define a pretty good idea of what "pythonic" really means. Now, it has been defined at times as being whatever the BDFL decides, but we'll pull that out of the picture. I want to talk about what the word means for us today, and how it applied to what we do in the real world.

Languages have their strengths and their idioms (ways of doing things), and when you exploit those you embrace the heart of that language. You can often tell when a programmer writing in one language is actually more comfortable with another, because the code they right is telltale of the other language. Java developers are notorious for writing Java in every language they get their hands on. How can you wr…

Standard Gems: collections

This until-recently-lonely module only houses two alternative collection types, deque and defaultdict, but promises useful things today and more to come. Anytime we have a good place to put things, we find more things to put there. With the new defaultdict type, collections is finally more than just that thing you use to get a deque: its a full fledged utility library. More optimized collection types (chains, B-Trees, and bags, anyone?) are sure to come, so keep your eye here every new Python release changelog, and maybe you'll get an early Christmas present.

Here is a quick rundown of what is offered today, using possibly silly examples.

d = deque()
while d:
print d.popleft()
What you see here is that deque acts like a list but has mirror versions of many end-modifying operations, like append, extend, and pop, which operate on the 'left' side. A list is far less efficient with insertion and popping from anywhere but the end of the list. This makes deque g…

Dynamic Hell in Python Names

There is a question I often see from Python newbies: How to use the contents of a string as a variable name. In other words, to dynamically create a variable based on some runtime-found name. A lot of these users come from more static backgrounds and have heard the benefits of dynamic languages. I have to wonder if these are signs of their over-eagerness to exploit that dynamic nature.

exec "%s = %d" % (raw_input(), input())
Example of dynamic variable names in action. To a pythoner, obviously not pythonic.

d = {}
d[raw_input()] = int(raw_input())
Less bad. This is why dictionaries exist, so we use them. Also, we remove the potentially dangerous and frivolous use of input() in favor of int(raw_input()).

There are a lot of things that different programming languages are good for and things they are bad for. There are times when their negative points can be exploited, of course. There are far more times when their positive points can be exploited, and turned into disaster. Pointers …

Giving Google My Soul

This is about Eric Schmidt's comments on Google's future in personalized searches and the outcry around it. It is a little bit delayed, I know.

Like any of us are private today. You can find me on MySpace and follow my friendlists to pictures of my sisters kissing their boyfriends. Do you think we live in a private kind of world? Nearly every page I surf to I tag somewhere and everyone has a tracking of where I've been in this web of the world. We put our family photos up on Flickr for complete strangers to sit back and enjoy, in whatever way they happen to enjoy them. We are not private kind of people, regardless of what we might think. Privacy is both an illusion and a pain in the ass. Now, before you call me a moron, a push over, or a sell out, just bare with me for a moment and keep reading.
We Are Not Private People Orwell warned us and boy are we scared as hell. Big Brother, Echelon, unauthorized wire tapping, and a whole host of other threats to our privacy are ou…