2008-08-28

Why has opinion turned on Apple?

(in response to /. comment.)

In the past long while, Apple has becoming a media darling, while simultaneously an counter-culture of dislike has sprung up. If I were to wax philosophical about the topic, I guess it has to do with some pseudo-shared Utopian ideals of society that Apple fought for in 1984. Apple since then has become another bit player on the corporate stage. They sell DRM'd music, as if bits weren't copyable; 'rentable' video, as if bits rot, and they skip merrily along as if this were just fine. Sure, their DRM isn't onerous, but the fact that it exists is an affront to this mythical Utopian future. As a pragmatist, I accept that the providers of media need reassurance that their world hasn't fallen into P2P digital anarchy, even though is already has.

High minded ideals die hard. They may have a bigger walled garden, but they've walled it off all the same, and for our own protection, of course. Bluetooth profiles on the iPhone are limited to the headset, and GPS is inaccessible on a basic level within the sponsored SDK sandbox. Jailbreakers have no such limits. They trot out boogiemen like viruses and battery life and say you can only sell through their store, after they take their cut, or course. Better end user experience be damned, why do I have to sell my AwesomeWidget through your store? And only after I get 'approval' from brother Jobs to do so?

Apple made a promise that things were 3-step easy, with 'thats it, there is no step three' as the third step. Everybody knows somebody who's been tried to sync their iPod with a new computer and despite warnings that it would, had iTunes delete all their songs with varying reactions.

They broke that promise if you want do anything 'unsupported'. I want to share my wired desktop's internet with my laptop via 802.11 but I want something something stronger than WEP. Thats... not gonna to work. HostAP from *nix land may be able to do it, but I'm sure that's not 3-step easy. Problems with their cifs client aside, I'm not bitter.

Sensible? Maybe not.

2008-08-14

gen_bridge_metadata

On OS-X to get ruby/python bindings for frameworks, there is a program called 'gen_bridge_metadata' that ships with Leopard. Unfortunately, it is broken. It complains of an undefined local variable or method:

Exception `NameError' at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rexml/document.rb:187 - undefined local variable or method `trans' for ... :REXML::Document

The fix is to edit the document.rb, located at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rexml/document.rb, directly. Here's a patch that should should be applicable for anyone that comes across it.

--- a/document.rb 2008-08-14 16:45:08.000000000 -0400
+++ b/document.rb 2008-08-14 16:45:11.000000000 -0400
@@ -184,7 +184,7 @@
output = Output.new( output, xml_decl.encoding )
end
formatter = if indent > -1
- if trans
+ if transitive
REXML::Formatters::Transitive.new( indent, ie_hack )
else
REXML::Formatters::Pretty.new( indent, ie_hack )

2008-02-26

froogle

Who uses froogle?

Yes, it's a convenient interface to stores that use google checkout, but that is about it. By the time I hit Froogle, I'm probably pretty sure what I am looking for. An Nokia N95, an 8G iPhone, a V3 RAZR; a specific thing. And there's a reason for that. If search for cell phone on froogle, and what do I get? Cellphones, to be sure, but the 3rd hit is a listing priced at $8,000, for 50 cell phones.

Wheres my ease-of-use, my "I'm feeling lucky" option? Sure, "I'm feeling lucky" isn't as useful now, but where's the daring value-add to online search-and-buy, that hubris to say "Buy the first result". I don't know what it's doing, and that's certainly not what I am asking for. The smallest concession to that is "Sort by: Relevance", and thats only because sort by cheapest invariably gives you all the cheapest accessories. 20 pages into a froogle search for "printer", sorted by cheapest, and it is still at $1.18 for printer paper and dividers. An arguably better search for "hp 2605dn" (a specific printer) when sorted by cheapest, still gives me pages of $1.50 cables and etc.

Wheres the magic product finder that helps me figure it out? Froogle seems like a normal google search, with a picture of the item, and a smaller database of things to return. I want to compare all the possible hits, build a grid listing features, and then be able to sort. I want to search for "laptop" and then be given a list of possible options. I want to be asked what monitor size, operating system, ram, etc. For the hardware hacking version, try taking a look at Digikey's search. They have a fixed dataset to work with, so their search is just implementation. Search for 'post', they then offer a variety of ways to further filter your search if you got too many results.

Why can't Google do that for /everything/? Yes, it isn't an easy problem, but that's what Google's first product was. Smarter search.

I'm absolutely not saying Google should start doing user product reviews. That is certainly not a direction everyone could agree on, but Froogle could certainly find out features listed for anything sold on Froogle. There are some devilish details to be worked out; how to sort out "PC Webcam" as being different products; how to differentiate 4G iPod and 4G iPod as being fourth generation or four gigabyte capacity. But I bet it could be done. Because even though I've stopped using C|Net, laptops.cnet.com is still a very nice place to find out what ultraportable laptops with 11" screens and 4 gigs of RAM are out there. What are my choices if those are the important qualities? Are there even any out there?

I can't be the only person out there who wants that kind of searchability on my next shoe purchase, or my next TV purchase. And Google, and more pointedly, Google checkout should be there to help me make my purchasing decision. If I'm already there, and now I've decided to buy it, I'm going to want a way to actually buy it. And that's Google's two-percent and twenty-cents.

2008-02-03

Recompile ubuntu vmhgfs for -generic instead of -virtual

Ubuntu jeos has not enough kernel, and for some reason, the version of the module struct between 2.6.24-5-generic and 2.6.24-5-virtual disagrees. First solution I managed to do was:

mkdir generic; cd !$
apt-get source linux-image-2.6.24-5-generic

cd -; mkdir virtual; cd !$
apt-get source linux-ubuntu-modules-2.6.24-5-virtual

cd virtual/linux-ubuntu-modules-2.6.24-2.6.24/ubuntu/vmhgfs

make TOPDIR=../../../../generic/linux-2.6.24/ SRCROOT=.

This should produce ../vmhgfs.o , which loads just fine into booted 2.6.24-5-generic.

2008-01-30

linux-2.6 typo commit

I came across this while poking around changesets:


commit 3f6dee9b2a22cc66050682287a77d5fccadb9733

Fix some typos in Documentation/: 'A'

This patch fixes typos in various Documentation txts.
This patch addresses some words starting with the letter 'A'.



Trimmed changeset inside.



-parameter. The default adrress range will not be used when a smb_addr
+parameter. The default address range will not be used when a smb_addr
- A useful ammount of documentation can be found in the hardware
+ A useful amount of documentation can be found in the hardware
- The archicture has been designed to support as many machines as can
+ The architecture has been designed to support as many machines as can
-It does not cover the support needed from aplications to enable the BIOS to
+It does not cover the support needed from applications to enable the BIOS to
- implements bus probing (detecting EISA cards avaible on the bus),
+ implements bus probing (detecting EISA cards available on the bus),
- - try to implement accel on voodoo2 , this board can actualy do a
+ - try to implement accel on voodoo2, this board can actually do a
-the subsystem to provide feedback as to whether the attibutes are
+the subsystem to provide feedback as to whether the attributes are
- highmem can be used for, but it is also availble for the
+ highmem can be used for, but it is also available for the
-is exited. This is acomplished with the help of the lower-privilege
+is exited. This is accomplished with the help of the lower-privilege
-ariety of new computer products. Product variations in a number of
+variety of new computer products. Product variations in a number of
- Forces specified clocksource (if avaliable) to be used
+ Forces specified clocksource (if available) to be used
- clocksource is not avalible, it defaults to PIT.
+ clocksource is not available, it defaults to PIT.
- The assumed authorititive key is inherited across fork and exec.
+ The assumed authoritative key is inherited across fork and exec.
-with approriate commit interval options. When this option is set to 0, this
+with appropriate commit interval options. When this option is set to 0, this
-6) Future Domain MCS-600/700, OEM'd IBM Fast SCSI Aapter/A and
+6) Future Domain MCS-600/700, OEM'd IBM Fast SCSI Adapter/A and
- The size should be atleast PAGE_SIZE (4k) and should be a power
+ The size should be at least PAGE_SIZE (4k) and should be a power
-cachelets for normal memory accesss. The semantics of the Alpha removes the
+cachelets for normal memory accesses. The semantics of the Alpha removes the
- keyboard activitiy.
+ keyboard activity.
- You may also provide a timer latency value while disabling adpative-rx:
+ You may also provide a timer latency value while disabling adaptive-rx:
-You can install this driver without any addtional parameter. However, if you
+You can install this driver without any additional parameter. However, if you
- Your IP Adress
+ Your IP Address
- - Gap, chosen so that packet data (Start+tp_net) alignes to
+ - Gap, chosen so that packet data (Start+tp_net) aligns to
-pktgen creates a thread on each CPU where each thread has affinty it's CPU.
+pktgen creates a thread on each CPU where each thread has affinity to its CPU.
-Most important the devices assigend to thread. Note! A device can only belong
+Most important the devices assigned to thread. Note! A device can only belong
-( there is a gap on z/Architecure too currently between 0xc00 & 1000 which linux uses ).
+( there is a gap on z/Architecture too currently between 0xc00 & 1000 which linux uses ).
-9) type it in again or alernatively cut & paste it on the console adding the -g option.
+9) type it in again or alternatively cut & paste it on the console adding the -g option.
-accumalate the status in a struct irb and then call the device interrupt handler.
+accumulate the status in a struct irb and then call the device interrupt handler.
-bus/iucv/drivers/netiucv. Piping to this attibute creates a new netiucv
+bus/iucv/drivers/netiucv. Piping to this attribute creates a new netiucv
-distribution. The following URL provides informations on latest avalaible
+distribution. The following URL provides information on latest available
-Driver achive for old drivers:
+Driver archive for old drivers:
-as the ncr53c8xx is perfectly supporting these adpaters since some time.
+as the ncr53c8xx is perfectly supporting these adapters since some time.

2008-01-22

tinyurl

Whats the limit on those things? Can I UUEncode data as a rediculously long url, and use tinyurl or a similar service to shorten it?