Forgot your password?
typodupeerror
Technology

Journal: I Know I Am Going AIM-Speak Here But This Is How It Feels

Journal by Linux Ate My Dog!

OMG!! I just made my cellphone browse Amazon's catalog without using a browser! With a J2ME program! OMG! OMG!!!11 It works! I wrote it in three days from the first time I saw Amazon's WSDL! Un-fucking-believable! This WSDL / SOAP thing's really simple, even from a phone!

(Ok, so it is not really "browsing", more like it made contact with Amazon with a keyword in a SOAP message, and Amazon sent it a proper SOAP message back. Telling me the keyword I entered, "sly", has 102 results, and here they are.

Now I just need to make it automatic.)

Hardware

Journal: Stream

Journal by Linux Ate My Dog!

The joke used to be that every program expanded until it could read e-mail. Now it seems no piece of consumer electronics will rest before it can play MP3s and MPEG2s off your network's harddisk.

Wireless Networking

Journal: Travelling In The Netherlands

Journal by Linux Ate My Dog!

I used to be able to tell my computer that dialing *99# on whatever modem was on the other end of the Bluetooth port was a really great idea because there would be a PPP link waiting for it. My computer would try to do so, and the phone would know that what it really should do was switch on the GPRS radio, get on that network and hook up to a special datastream I had told it would be at wap.voicestream.com. Then the datastream should be passed back to the computer just as if it was a standard data-call. The stream would produce a PPP sequence, the computer would follow it, and find itself with an IP pipe with DHCP and all, which was actually running over the GPRS network at 56k.

Well, my phone is now on the KPN mobile network, and this still works. For about 2000 bytes. Then somehow no packets come through to the computer anymore. That is it. Since T-Mobile (the former VoiceStream) has been locking down its data access points, I can't help thinking they are responsible for us losing that facility. I asked my father for his settings and am now using my mobile phone as a straight modem over Bluetooth. Except that you can't do good data over GSM. Incredibly slow rate. Feels like 9k6. I don't even want to think about the connection charges. But I have to check my work e-mail.

Media (Apple)

Journal: Why Doesn't iTunes...

Journal by Linux Ate My Dog!

...have a facility to fill in the artwork and information tags of the songs I ripped myself with data from the store? When I did my rips, I got song and artist, I'd like the rest too, and Apple has it. (Might it even be a way to collect some revenue?)

...have a utility that "listens" to your MP3s to fill in the BPMs, where it thinks it stands a chance? Would be very handy since it has a BPM autoplay list?

...not have a good analysis feature to suggest purchases based on your library, especially which songs got a high rating?

GUI

Journal: WebServices And The Phone

Journal by Linux Ate My Dog!

I am having my doubts about WebServices.

The premiere issue of Queue, the new magazine launched by the Association of Computing Machinery, most articles were devoted to WebServices, including interview with the guys that came up with the idea. They looked at the great revolution of the Web amd wondered whether it couldn't be generalized further. The Web is very successful as a catlog and a communications medium with very simple tools: as a client you have to understand (meaning that you have to have a program that can make sense of) the HTML that marks up pages into pieces like "this is a headline and this is a button and this is a paragraph", and then you have a human brain to read the information in the HTML messages and make decisions. For a company, makingt this connection on the supplier end was cheap: put up a server, connect it to the database. Now, what if these big pages were made with a generalized from of HTML language that allowed you mark up other things than pages called XML and other languages that defined per industry what was in that XML message ("this is a catalog, this is the thickness of that screw, this is the amount of your interest rate") ? Suddenly this succesful paradigm could be used for far more, like computers talking to computers. And we get re-use all the tools that worked for the Web to connect all this stuff.

Now we have a bandwagon and WebServices is the buzzowrd of the year. Now there have been many attempts at connecting computers to swhare data and compute together in generalized ways, but they all used very fine messages. The dialogs were like "Hi."
-- "Hi."
"What time is it?"
-- "Who wants to know?"
"I do."
-- "Ok, it is 12.34 PM"
"And the date?"
-- "Who wants to know?"
"That other guy using me. He's military."
-- "Oh, he gets to know more. It is exactly ten days since the last secret mission. Also known as October 12th 2003."

Now you could use those old methods, called RPC and CORBA and COM and what not to make coarse queries ("Hey it is me I need the time and the date and the temperature.") but the plumbing of these standards was all defined on very small methods, little things you'd want to do. WebServices, according to inventor guy, was supposed to be just like webpages: you don't go to a page and type everything just to get a minute update, but you exchange these big pieces of data. "Hi, I want the time and the date and widget seven in red and you should sent it here but route it through there and I'll pay for it this way."
-- "Well it is on its way but it will take 12 days and here's the time and the date."

I am a UI guy. And I am trying to let people interface with WebServices. From a phone. That's my current project. And I am just not seeing the big difference between CORBA and WebServices, once the nuts hit the bolts. Because in the end, I will probably have to offer the results to people. And people like to tweak. They like to explore, they like to change little things to make up their minds. Do they have the item in red? In stock? How much does it cost then? How about blue? What if we took that other route? Can we go through a town?

So if I want to stay close to the WebServices ideal, I keep uploading big chunks of catalogs and maps and whatnot, and that's expensive. People still pay by the packet. And it gets even stupider for the project I am doing now: a distributed game. Players end up sending single moves as thse stateless pages that the programs on each end have to stay synchronized on. Next idea was doing IM on WebServices. IM! Single lines of text only useable for humans.

So basically for my purposes, I am not seeing the difference between WebServices and CORBA tunneled over port 80. In fact, WebServices for now will be more complicated since the XML and associated languages (SOAP, WSDL) are not human-readable but not particularly program-readable either, you have to write plumbing to hook up the SOAP and XML messages to your database and clients and what not. Same with CORBA, but there what plumbing to build was defined directly by the CORBA syste, no guesswork. Fortunatly my project is using an experimental toolkit (IBM AlphaWorks WSTKMD) that makes all that work go away, much like CORBA. So why am I trying so hard with these new WebServices again?

Because CORBA didn't look right at the wrong place at the wrong time. CORBA made it look hard, WebServices makes it look easy: you just exchange generalized webpages -- doesn't everyone understand how simple it is to exchange webpages?

Yah. Right. That's why web designers have to work so hard with CSS and JavaScript and Flash: because exchanging big messages and lon swaths of text really doesn't work to well when you are trying to find that one thing in that one catalog that fullfills your needs -- most of these needs you do not even know what they are until you have to think of them? ("Express Delivery or Priority Mail? Will I accept a yellow stripe on the red thingie, eventhough I thought I wanted an all-red thingie?")

WebServices is good if you already know what you want, but bad to find out. People may know exactly what they want, but that is before the real world hits and comes up with all these choices. And for that WebServices offers no compelling advantage over other protocols -- in fact, its messages really have quite the amount of overhead when they get small.

It's funny: studying Uis you find out that people are most comfortable in exploratory environments where they can make little tweaks, with instant feedback, no commitment, no stress they are "breaking the computer" or doing something irrevocable. UIs where everything they can do is visible, in paradigms they quickly understand, tailored to the task, simple building blocks that can be collapsed into powerful tools for advanced users. Yet the plumbing we are working on, the revolutions around us, all end up being about bigger and bigger messages, whole pages of changes being transported around to interact with, catalogs in a medium that make it hard to flip the pages and compare the goods. That very simple universal paradigm of browsing actually makes it very hard to do something complex with. And now it is supposed to start running everything.

OK UIers, just make it work now!

Handhelds

Journal: Symbianetics

Journal by Linux Ate My Dog!

So my title has been settled: my new businesscards will state I am a 'Senior Research Engineer'. I think it sounds cool.

My current research gig is taking over a project from the person whose position in the group I am filling. Its current shape is a collaboration with an IBM Alphaworks project from a group in Austin TX. I want to do a site-visit, but can't find an angle to make it necessary, yet.

The project is about a system that makes it easy for programmers to make programs that communicate between mobile devices and back-end servers[0] at fixed locations. My end is to make the programs that can run on Series 60 phones -- these programs are called "clients" -- in various languages to show off how easy it is for programmers to use their system to do this, co-ordinating server and client objects.

First demo client was coded by my predecessor, it is going to be shown off at some mobile conference. I took a look at it. I have been in a demo-driven lab before, at CHIP, I have even stood on a demo floor at a trade-show for three days, showing off some medical-system prototypes to disinterested CFOs, CIOs, CEOs, journalists, doctors, and other clinical personnel shopping for systems, in a booth sponsored by SUN that was trying to generate medical buzz for their new-fangled JAVA language. I know what a demo needs to have to be credible. This thing was close, but not close enough. I sent a memo in email.

There was some consternation among my manager and my predecessor who would make the demo better, since I have to work on the next client, in C++. They were stopping in my cube to tell me I should ask some of the other researchers in my group for help, because I might be overloaded. I smiled and nodded and fired up Eclipse, configured Antenna, spent half a week learning my way around J2ME, and made the changes. JAVA is my native tongue now, people. J2ME only makes it smaller, which makes it even easier. The demo is good now. The person organizing the collaboration, managing getting it to the conference, and a source of future funding, likes it, likes the touches I added. That's what I do, baby, get used to it.

The next client is not in the confines and simplicity of J2ME, it is in C++. Symbian's version of C++. A fucked up version of C++, no exceptions, no polymorphism, and tons of traps and macros and double-stage constructions, all designed to deal as resource-starved as possible with the possibility that somewhere, in some call, the phone will say "fuck you and your program, I ain't got the free memory / connection / screen" and yet still be able to run for years uninterrupted. It is a nightmare for the novice of resource files, utilities to change one type of descriptive file into another, packagers, linkers, more linkers. I have spent a week now just acquainting myself with the tools and the strange organization of programs. The OS pratically enforces a Model-View-Controller separation, and everything is a also a library. Oh, and don't use standard C++ types. Ever. Only Symbian derived-variable types, please.

I am having the worst case of Empty-Project sydrome, I can't get myself to start. The only way this is going to work is by pilfering one of the many, many example programming projects supplied and reworking it. I must start tomorrow.

On the other hand, eventhough I haven't coded a single line, I feel how powerful this system is I am working in. I have access to all the systems on the device, going through the endless APIs I even found the calls to use the voice-commands sub-system. JAVA shields you from the computer, gives you a neat little sandbox, but also shields you from the raw power, the real windowing system (which is why all JAVA programs look slightly out of place), the real sound system, the real libraries of other programs. I got used to it over the last, oh, 6 years, and coded around it, always making approximations, little wanna-be's. Now I am back suffering the pain of touching the real OS and the fucked up memory- and resource modles, but there is also the reward of the power, all the possibilites. Pity I won't I have to time to explore it.

[0] Jargon: the communication-protocol is SOAP, a protocol for marshalling and unmarshalling objects, so that to a client it looks like the objects on the server, the ones with all the data, look like they are running locally. Offering objects over SOAP like that is called "WebServices". IBM's WebServices for Mobile Devices Toolkit is supposed to make generating the client- and server-stubs very easy. Austin sends me the library of client-stubs, I code a little program around them.

Handhelds

Journal: DRM Goes Ever So Handy 4

Journal by Linux Ate My Dog!

Forward Lock

Combined Delivery

Separate Delivery

Note these terms. These terms are the new world of Digital Rights Management [DRM] in the mobile phone world. And remember, as much as people bellyache about Palladium and computers locking your data in, there are more mobile phones in use than actual PCs.

These three terms, specified by OMA, govern what you can do with stuff you get on your mobile phone. Right now phones can get ringtones, screensavers, text messages -- and it is a huge industry. The money spent by consumers to download Robbie William's latest hit as a ringtone is very significant compared to what consumers spent on buying his latest single, if my sources are to be believed. Very significant.

But if you download it to the phone, you can get it off, exchange it, send it forward, and content owners hate that. So there mobile phone makers specified a new datatype, the DRM datatype, which is basically about taking content -- a JAVA midlet, an image, a ringtone -- and encrypting it, wrapping it up. And you can only decrypt it if you have the rights to go with it, which contains the key to decrypt the content.

In the case of Forward Lock the little envelope around the content doesn't contain a key. Fortunatly, the content is also, in this special case, not encrypted. However, your phone sees the little envelope and says 'aha, this content is forward locked', and then your phone will not let you forward your image or ringtone to anyone or anything. You can install it, use it, play it, delete it -- but it don't go off the phone to another CPU, nuh-uh, never.

In Combined Delivery, the little envelope around your content will actually encrypt your content, but also ship with the key right in the envelope. But this key is a special key, it can contain all kinds of directives to the phone like 'hey phone, only play this twice' or 'hey phone, only let the user see this image for a year' or 'hey phone, let the user forward this only to two other people, and the people forwarded to can't forward it at all'.

The most sophisticated one is Separate Delivery. It is like Combined Delivery, but the key can be shipped separatly. So say you get your video, your MP3, your program, you download it from somewhere on to your phone, or it is pushed -- and you won't be able to do anything with it. It'll be encrypted. All it will say is 'Purchase Rights Now?' with some icons and info of what it is, and if you say yes, it'll take you to a WAP website where you can enter your credit card. And then the owner of the content can send you a key, and that key can have the same restrictions like in Combined Delivery. So you can all share and download the same cool content, but each phone will have to purchase its own key and rights.

So notice who is enforcing this? Yup, the phones. The phones have to be good boys and girls and not let the nasty user do nasty things with the content like save it to a computer, forward it to a friend, watch or listen to it more often than the content owner says you have paid for.

Remind you of anything? Region-coded DVDs. DVD players are supposed to have a region code, Region 1 is the US, region 2 is for EU, ect, etc, and a region 2 DVD is not supposed to play on a region 1 player, and such. Well, why do I have a South-Korean -- or is Sampo Chinese? -- DVD player that plays every region? Because someone decided consumers would pay more not to deal with silly restrictions. In fact, I heard that in the EU, region coded DVD players are on their way out since it may legally not be enforceable from a consumer-rights POV.

How long before one rogue Chinese manufacturer makes a DRM-capable phone that is not compliant? It will download the little envelopes just fine, and decrypt the content just fine, but it won't be all mean and not allow you to forward. Or maybe it will ignore the key directives and let you play as often and as long as you want, and beam the content to all your friends. It will happen.

Or maybe it will happen by accident. These DRM OMA specs are convoluted and difficult to implement. A mistake may creep in, and suddenly Nokia or Sony-Ericsson will release a model that don't play content cop right, if you press the right keys and look at it sideways just so. The model will be recalled, fixed, ammended the moment this becomes known, but baby, will it sell on eBay.

So one of the guys on High School bought the superbad Chinese DRM-capable-but-DRM-less phone. Or that 'buggy' Motorola. Guess what: he's now the most popular kid in school, who will take the pooled cash and buy the MP3s and videos legally -- and then beam them to everyone who payed the pool.

I swear, this whole mobile/handy DRM thing can't last. There are just too many phone-makers, and not all of them play nice. China is big on making its own phones, being independent. They'd love to stick it to those overbearing big mobile companies trying to invade their turf -- and free content will be the ticket.

Music

Journal: Hey, I Bought A Harddisk

Journal by Linux Ate My Dog!

[Cloned from my LJ]

I engaged in some willfull consumerism today. pinkfish is ripping his complete CD collection, and, together with my music directories, we simply didn't have the disk space anymore. We went to microcenter to price external hardd-disks (IEEE 1394 and USB 2.0 capable) and found out to our surprise that each 50 Gig is around 100 bucks. That's not much for serious space.

This is making me think about the future of music. The reason Dino is ripping his CDs is so he can stream them to our stereo using the TiVo. That he is willing to go through this with all his discs shows how ubiquitous home MP3s of your own collection end up being really nice. Listen to everything wherever. iPods et. al only make it more compelling. We listen to music more often now that the whole collection is available with a simple remote control, instead of trying to find a CD among your stacks and stacks on stuff.

So before I cracked one-third of my laptop's LCD screen into oblivion, I was actually wondering if I could allocate the funds to buy a 500 buck old apple laptop and an iPod so I could buy iTunes. The Apple iTunes store is not just getting great reviews, it is getting great downloads. People like having music choices, not being stuck to the structure of CDs, being able to impulse buys for one, ten, fifty songs, after they have been able to decide they like them, on the spot. I would like to be able to find a lot more new stuff.

On my friends and freindsfriends list there are many people who recommend all kinds of tracks they are listening to. I'd love to be able to click a link when they write it and then get my iTunes or Rhapsody 30 second pre-listen and then know whether I like it or not. Download, store, transfer to iPod, have. Perhaps a special link isn't necessary, a mozilla or safari plugin that will look terms up in iTunes (Mac or Windows, when the latter comes out) and then take you there. Read a friend rave about music, right-click, find it.

It is total materialism, but at only one dollar a pop, and actually not at such egregious terms for the actual artists as CD sales. They get 12 cents. Why is this good? Because the big labels don't subtract all kinds of shady deductions like 'breakage', an old holdover from when vinyl and wax rolls and other product actually broke. Artists on big labels get a small fixed percentage of breakage deudcted from their royalties since that product was assumed to have broken and thus unsold. It is still being deducted now that artists have musci shipped on the non- or way less- breaking format of CDs. Behold the corporate masters, they will recoup from artists even what they didn't advance or charge.

Now take CD Baby. Their model is to be some kind of Internet store for indie artists, but they structure themselves as a record label. Unlike the big record companies hey don't advance money for an artist to record, they won't promote an artist, they won't fork money to get the artist played on radio, nor ship their CDs to stores, of which they own none themselves anyway. What they will do is pure order fulfillment, and give most of the cash to the copyright holders who partner with them to sell their stuff on the label. mondragon reports that his partner, who sells some CDs through CD Baby, actually gets real checks.

Apple has said they only want to deal with aggregate entities like record labels, they do not want the hassle of being like mp3.com and have to deal with all these copyright holders individually. But CD Baby has been offered by Apple to join the iTunes online music store. CD Baby has said that they want to, and not only that, they will allow anyone with music to offer it on the music store through them, for a very small cut, thus allowing independent artists access to the iTunes virtual store shelves while Apple gets to keep not having to deal with masses of independent artists and tiny labels. Everyone gets what they want.

Now take a look at [Slashdot and Salon articles about ProTools] These are articles and questions about how recording actually getting cheaper, to the point that you can make something very decent by yourself at home. Ok, so people whose music depends on acoustic recordings will always have to fork big-ish money for mics and soundbooths to do great recording, but electronic music is already at the stage where it is born on a harddisk and never need leave there. Mixing can then all be done on a good modern PC with ProTools -- no need for a huge expensive mixing console. Making Pop quality music is coming to the masses.

So, distribution electronically is kinda taken care of, you no longer need a huge advance to make a record -- just gamble on your maxed out credit-cards... so what exactly can BMI or Sony Music with their leeching contracts do for an artist? Well, only they can create phenomenons the size of Britney and Madonna. Only they have that promotional muscle. But suppose you don't want to take the crapshoot when you signt to a big label to be the one of the 100 they sign who gets backing, suppose you want to retain all creative and copyright control, suppose you don't want tobe molded, suppose you aren't as radio friendly as Madonna and Britney, and suppose now that all you want is to make a living, or a side-gig, and not be the biggest act in the world. Suppose you only want to get heard. What do Sony and Bertelsmann have for you now? Nothing. They aren't interested in small fry. Their businessmodel is structured around that one who makes it really big compensating for all the advances and promotions they never recoup from the 99 failures.

But you still need some form of promotion. People need to know you are making stuff (Dino is telling me to say 'Hi!' to my livejournal because he actually thinks I am chatting) before they will flock to iTunes to buy it. How do you do that? Read a couple of paragraphs upstream: I wanted to try all this music that other people were mentioning. (In marketing/business speak, what I am saying is that sabin and astounded are 'opinion leaders and taste-shapers' for me. Perhaps for many others in our interconnected communities too.)

Hmmm. So I am seeing a new direction for independent labels, that doesn't involve trying desperatly not to go out of business dealing with the distribution channels of the big labels -- no matter how indie they are as labels, they end up needing those channels, and all kinds of licensing and rights-management hilairty always ensues. One that is a simple extension of what small labels already do. Get your related bands together, sign reasonable contracts for artists whose music works with each other. Make their webpages, help them manage their merchandise through the volume contracts you as a label can get, offer the artists music on iTunes and other electronic stores, do the CD fullfillment when people want CDS, take all the minor promotional things off the artists hands. But also, identify the people who are opinion leaders in their groups: Djs, clubbers, programmers of background music in bars and stores, the cool kids, etc, etc. Get them product, they'll tell others.

Do this on a small scale, no need to create a Britney or Justin. Keep contracts with your small roster of local or perhaps geographically very dispersed talent simple. Organize their electronic presences together so people finding one artist find others in your group. Take your cut from the sales. Nobody gets exploited. Everyone makes a small living. Shift away from having to deal with RIAAs and payola and ClearChannel, but go whole hog on mainly electronic distribution and promotion, tapping the interconnected networks that arise around any taste, any sensation, any social trend. The web groups everything together. Eschew billboards and MTV, go for bloggers, journalers. Don't spam, though. Never spam.

Hell, if a mainly electronically organized label actually makes enough money, they could perhaps advance money for studios, organize tours, the works. And we consumers get our friends to tell us what is good.

The only real problem left? What to do when our harddisks crash now that all our music has been acquired in non-physical form. I foresee a market for very easy, very cheap backup solutions.

Java

Journal: Jobs in CA

Journal by Linux Ate My Dog!

Strange. A subtext on Slashdot and Plastic is that the Canadian economy is doing great. Then why does monster have only a smattering of JAVA jobs, all server side? Why am I not finding anything for a user interface guy, a visualizer guy, like me? What am I missing?

The reward of a thing well done is to have done it. -- Emerson

Working...