Archive for the “computing” Category
Posted by JS in computing, qotd
The first is about what makes a good blog:
To really work, Sierra observed, an entrepreneur’s blog has to be about something bigger than his or her company and his or her product. This sounds simple, but it isn’t. It takes real discipline to not talk about yourself and your company. Blogging as a medium seems so personal, and often it is. But when you’re using a blog to promote a business, that blog can’t be about you, Sierra said. It has to be about your readers, who will, it’s hoped, become your customers. It has to be about making them awesome.
So, for example, if you’re selling a clever attachment to a camera that diffuses harsh flash light, don’t talk about the technical features or about your holiday sale (10 percent off!). Make a list of 10 tips for being a better photographer.
Now about those Apple patents:
What worries me is that idea that Apple, or even just Steve Jobs, believes that phones like the Nexus One have no right to exist, period, and that patent litigation to keep them off the market is in the company’s interests. I say it’s worrisome not because I think it’s evil, or foolish, or unreasonable, but because it is unwise, shortsighted, and unnecessary.
No Comments »
Posted by JS in computing
I know you probably don’t care about what goes on inside my head most of the time, but here’s a taste anyway. I was rehashing the iPad in my head while perusing my iPod Touch and thinking about the bezel size — a subject of some criticism and a certain amount of defensive posturing:
People are complaining about the wide bezel around the display, but without that, where would your thumbs go? You don’t want your thumb that’s holding the device to cover on-screen content or register as a touch. Trust me, it’s just right.
For some reason I really hate bezels. Well, maybe I don’t hate bezels so much as I admire places where we both expect them and they are somehow missing. The aesthetic I’m after is the infinity edge pool. This is a good example of the kind of random stuff I think about for no reason. Anyway what are the user interface implications of a bezel-less iPad?

If you’re worried about touch, then the solution is easy: no touch sensors in the “bezel” region. Or, better yet, allow touch in the bezel region for touch commands that originate outside the bezel. Even better, ignore touches that result from holding the device. (This assumes that it is possible to classify touches into support and intentional types.) As for obscuring the screen, the right kind of design guidelines could deal with a lot of the problem there. The problem of margin maintenance would move from the hardware to the app designer, shifting a bit of work. But the gain in real estate and the aesthetic power of the bezel-less screen would be huge!
No Comments »
This editorial on Microsoft in today’s NYTimes is interesting on many levels. Part elegy, part exposition, even the choice to run an editorial of this sort is in many ways a bit of a puzzle to me. I suppose I’m too far down the Ubuntu rabbit hole to remember how common Microsoft is for most people. In the eternal war between Coke and Pepsi, I’m drinking RC cola in the corner like some kind of deviant.
I don’t really disagree with anything in the editorial, but there is one sin of omission that is worth noting. Microsoft had (and may still have) a reputation among entrepreneurs as a place startups go to die the brutal death of being copied into obscurity instead of acquired. This led to a situation where people running startups would accept invitations to speak at Microsoft and end up giving comically (and purposely) misleading presentations about the various ideas they were trying to develop. (Compare this with the kind of talks given at Google, who’ve shown a real willingness to spend some serious money in pursuit of good ideas.)
This attitude and reputation extended Microsoft’s own internal problems with innovation out into the community at large. Microsoft was for a key period of time a cash rich but thrifty intellectual property aggressor. Change meant a threat to market dominance in the same way that internal innovation created threats to the working order of various company power silos. That’s probably why when web 2.0 became viable, Microsoft had such a small part in it. It’s also probably why Apple has such an easy time hitting out of the park on a regular basis. Microsoft’s business model created such a rut that just getting out of it was enough to guarantee intellectual capture among technological elites.
Unfortunately, I don’t see how Microsoft can change. They make a lot of money bringing poor user experiences to people on a daily basis, yet their mindshare among process oriented business people remains high. They’ve been doing anti-competition so long they’ve forgotten what real competition looks like (say, for example, that between Apple and Google).
No Comments »
Posted by JS in computing
The entire prefix-i naming scheme is silly in a way that all really excellent marketing is silly. The iPad device itself is not silly, and in many ways proves that freedom zero does not matter, nor do any of the inter-operable hardware or software ecosystems that drove Wintel.
What matters is design, capability, and price. The iPad is designed and priced to dominate. Apple is pushing out a premium product into a market dominated by un-premium products. Users will be driven by the need not just to purchase, but re-purchase leases on all kinds of intellectual content just to run an iPad instead of a Kindle or netbook. Apple is hoping to expand on their virtuous cycle of content distribution and content creation. The upfront cost of the iPad may be lower than most estimates, but the tail cost is the kind of thing that can bankrupt a poor graduate student like me.
Freedom is always subordinate to incentive. Apple has captured mindshare and profits by offering a closed, curated technological experience. This will be great for content providers (DRM has a compelling foothold in closed ecosystems) with the exception of certain longstanding dynamics that have more to do with the idea of the Internet itself than any particular mechanism for fairly pricing intellectual property.
No Comments »
The shorthand “WTF” is common among developers. It does not actually stand for “worse than failure” but I run a clean ship here people. [Hint: let's just say that WTF is a somewhat crude interrogative. Sample usage: "Dude, WTF?" or, if you prefer, comic form.]
I just spent two days looking for a bug in my code whose fix was simply replacing
A = A + np.dot(features, features - env.gamma * newfeatures)
with
A = A + np.outer(features, features - env.gamma * newfeatures)
In my defense, I didn’t spend two full days looking for this mistake, but the process was so demoralizing that I couldn’t find much willpower to do productive work when I wasn’t actively debugging.
Takeaway lesson, triple check your linear algebra. If you get something wrong, you’re likely to have a hard time figuring out why, or worse, you may mistake the junk for the correct answer. [Aside: note that I was really burned by the fact that '+' is overloaded in this case, and so is valid for both matrix, matrix addition and scalar, matrix addition. Despite the scorch marks, I do like this feature.]
No Comments »
I compared two Python implementations for computing shortest paths in a previous post. This was all inspired by some Matlab code for computing Isomap that contained the following version of the Floyd-Warshall algorithm:
for k=1:N
D = min(D,repmat(D(:,k),[1 N])+repmat(D(k,:),[N 1]));
end
Of course, mirroring my Python comparison, I decided to recreate the Matlab version using outer products instead of repmat.
for k=1:N
D = min(D, D(:,k) * D(k,:));
end
As with my Python comparison, the implementation using outer products was faster (31.6 seconds to 59.3 seconds). The time difference between approaches was again about 30 seconds, which is very similar to the previous Python comparison.
The Matlab code ran about 10 seconds faster than the corresponding Python code in both cases, though you should probably take that result with a grain of salt as I was not careful to control for a number of possible confounding factors between the two experiments.
No Comments »
Posted by JS in computing
I’m a little late to the party on Google Wave, but I just got an invitation today. Contrary to early Google Mail, Wave is clearly a beta (or even really an alpha release) during this preview-by-invitation-only period.
[Aside: Did Google invent the preview-by-invitation-only concept? Or bring it to the Web 2.0 world? I have a feeling that this release strategy will still be around long after Google bites the dust.]
The user interface is clunky. Copying hyper-links between Waves results in a hot mess of misaddressed links. When you use the link edit item to repair these links, the tool invariably inserts a new link in front/back/between the existing link. Google Wave highlights how clunky Web 2.0 image manipulation is, since it lacks the drag-and-drop desktop paradigm, opting instead for file browsing dialogue boxes. I’ve heard that Google Gears can make this problem go away, but as yet I’ve had no success.
Settings and profile information are stored as Waves along with everything else. This does not make sense to me, as these are privileged ways of interacting with the program, unless of course, Waves can somehow alter my administrative state, a stupidly dangerous state of affairs if true.
At least on Firefox everything is extremely slow. I run Ubuntu so Chrome is not yet an option. I find myself constantly clicking on a too small button in the upper right to select edit on various components of a Wave. The menu appears after an aggravating amount of time, and the semantics for switching between editing and reading are totally button and menu driven, slow, and entirely non-intuitive. Everything should be editable all the time without having to perform some kind of mouse pointer target practice followed by a second or two of impatient waiting.
Not ready for prime time.
1 Comment »
Posted by JS in computing, misc
Sifting through my Akismet spam filter today I noticed a number of comments in Cyrillic. Clicking the associated website links led me to Russian language default themed Wordpress blogs. It seems like splogs are easy to identify, even when written in another language.
[Aside: Even though I'm 99% sure these are spam blogs, and so won't link to them, I'm basing this solely on the way the blogs appear, and not on any kind of semantic understanding of the content. Interestingly, this is actually quite close to the way most spam filters "view" spam, as a collection of semantically meaningless but connected word bags.]
No Comments »
Posted by JS in computing
The problem with random theorizing on the web (and I include myself in the category of people subject to this critique) is that it often causal theories are presented without evidence or with only anecdotal evidence. Moreover, evidence and arguments are often used to delineate amongst classes of people whose mode of division actually has nothing to do with the causal theory being presented.
[Those sharp observers among you will note that the previous sentences were, themselves, examples of precisely these kind of errors. The observation of this observation may itself be kind of hypocritical. Turtles all the way down and all that. Let's denote this phenomenon Observation One and be done with it.]
Such is the case with this argument:
But, by and large, despite the success of open-source on the backend, open-source end-user applications have failed. In fact, when it comes to end-user applications that people other than open-source developers actually use, you’re pretty much limited to a single application: the web browser.
The linked post makes two points. Front end software lives and dies by usability and that open source projects offer inferior user experiences. While I disagree with both points (for example, I doubt even a fully feature rich usable open source equivalent would replace Photoshop or that open source projects lack focus on user interface issues), I’d like to point out that the arguments presented actually have nothing to do with “open source” versus “closed source.”
[If this were the case than all software developed under a closed-source model would always be a more user friendly experience than software developed under an open source model. I don't think this is true, though it appears true because bad closed source software tends to disappear into the ether of intellectual property, never to be heard from again. (Also note that I fully acknowledge that this is another example of Observation One.)]
The causal argument presented does not have anything to do with the open or closed nature of development. Instead, the argument depends on the disposition of the developers, whether they work for BigSoftWareCompany or HippyLinuxCommune.
No Comments »
Posted by JS in computing
Testing out the new Firefox (3.5) with Wordpress visual editing. Speedier, but does not seem quite as responsive as Opera.
No Comments »
|