Older blog entries for Pizza (starting at number 133)

More on Google and XMPP

I should elaborate a little more about the vitriol of my last post.

Google's largest advocates were the more technically inclined. The early adopters and the folks who either made technical decisions or heavily influenced those that did.

This was especially true of Google Talk, which brought the first meaningful interoperable Instant Messaging to the masses, unlike MSN, Yahoo, ICQ, AIM, and several other proprietary networks. This was the driving force to get our organizations to set up XMPP servers, because, hey, it'll interoperate with Google, and we all know Google does the right thing.

Now we're eating our words.

The masses that use Google Talk the same way as they used AIM or Skype or Facebook chat don't care; they were already using the network they started with. Instead, it's the technical folks, and those who listened to us, that are screwed over. Like, oh, our employers.

It was never about "using a single client" -- it was about using a single, universal identifier (not unlike your email address) that let anyone get in touch with you, without having to juggle half a dozen separate logins. With that, clients competed on features, rather than network-effected lockin.

We consequently built our Instant Messaging systems under the assumption that it would be federated, and now we find ourselves suddenly unable to communicate with an increasing part of our contact lists simply becase they clicked "okay" when Google prompted them to "upgrade" to Hangouts. Bang, they're now forced inside Google's walled garden, and all non-google contacts are gone.

If you're going to exist in a walled garden, why not just continue using Facebook? Google is now trying to beat Facebook at its own game, and in doing so, is becoming the very enemy it once decried.

Syndicated 2013-05-30 02:50:20 from Solomon Peachy

Wither Google?

I remember Google's original motto of "Don't be Evil." I believed them, because they backed up those words with actions. Their products were open and interoperable. Where standards didn't exist, they wrote and published them. They were principled, and consistently so.

Not any more.

It's been a slow slide from grace, but the final straw was them half-assedly killing their formerly interoperable IM service, Google Talk. Ironically, this happened the very same day their CEO decried their competitors for not interoperating with open standards.

Why is this a big deal? Simple -- Network effects. Why are telephones (and SMS), snail mail, and email so useful? Because anyone can communicate with anyone else. XMPP was that for Instant Messaging, and Google was its biggest champion. Unlike its competitors, the service was federated, just like email. You could operate your own server and still communicate with anyone else using the standard. Everyone had a walled garden, but Google through their clout started kicking those walls down. Until they changed their minds, using a set of bullshit excuses ("oh, the standard wasn't keeping up with our needs" -- nevermind they had no problem extending said standard before, and indeed, conveniently ignored many already-defined features they claimed they needed)

Now it's effectively dead, because not only has Google actively chosen to wall their garden off, they did it in such a way that renders communication with the outsiders useless -- you're told they're available, but nothing gets through. No errors, just silently dropping everything.

Why am I so pissed about this? My last two employers used federated XMPP to talk to vendors and customers. One had independent servers, one used Google Apps directly. And guess what? Now everyone who uses google can still communicate, as can everyone who doesn't. but those inside the wall can no longer talk to anyone outside.

What the fuck, Google? You just destroyed your primary value proposition over your competitors. We don't want to socailize or "hang out", we want to communicate with people we need to communicate with.
We need the tools to facilitate business. Heck, even Microsoft's communication suites are fully federated (with XMPP!) these days.

I've had it. Google, which I had such high hopes for initially, is just another Facebook now. Only they've done the Embrace, Extend, Extinguish trifecta far more effectively than anyone else.


Today was my first day at the new job. They're using a combination of Hosted MS Exchange and Skype for commnications. It's an utter mess, slow, and won't scale much longer. I'm supposed to give some recommendations on how to grow this cleanly, but what am I going to recommend? Host everything ourselves (naturally) but should I fight for open systems (standard SMTP/IMAP, CalDAV, XMPP, built on LDAP) or just take the easy way out and recommend an all-encompassing Microsoft solution?

After all, I have the only Linux desktop in the office. So what makes the most business sense? Where's the value proposition fighting this uphill battle? Not only to the business, but to me, personally? Heck, would I honestly be better off just doing my Linux work in a Virtual Machine?

On that same note, I don't need Google to communicate. I run the server that hosts my DNS, photos, web pages (ie this blog!), email, and IM presence. RSS feeds adorn everything. It even does calendaring and address books. I'm working on adding federated VOIP services next.
Everything built on open, federated, interoperable standards.

I started this before there was any real choice, but I've kept at it because I believe in the principle that I should control my own data, and not rely on the good graces of an increasingly-arbitrary third party for my digital presence.

The big feature that Hangouts added over Talk was (far) better Google+ integration. But that presumes you actaully care about Google+. What did Google+ offer me that I didn't already have? Or maybe I should rephrase that. What did Google+ have to offer that they didn't just arbitratily take away? (Aside from the ability to be a collosal waste of time, that is...)

So, I've purged my Google+ profile, and told Google why when they asked. It's a token gesture -- about as effective as farting into a hurricane.

Since my employer doesn't use Google services, I've also purged all but the essentials from my Android phone; the stuff I personally find useful. Which boils down to Voice (far better than my carrier's voicemail system) and Maps (OSMand is catching up quickly though!)

It's a shame there aren't any meaningful alternatives to Android; while I may be more than a little disgusted with Google these days, at least I still have the ability to recompile the entire Android system from scratch, and that's nothing to sneeze at. And as increasingly bad as Google's garden walling is, it has quite a ways to go before it catches up with its competition. If you can't beat them, join them. Or beat them, then join them anyway.

Anyway. Time for bed. Maybe I'll wake up with a better idea about what battles to fight.

Syndicated 2013-05-29 03:37:31 from Solomon Peachy

Anyone looking for a kernel hacker?

For reasons I won't bother getting into here (other than to throw some token insults at Congress -- but they only hastened it along), I've been notified that, as of tomorrow and until further notice, I've been cut back to four day work weeks.

So it's time I kick myself into active job hunting. Anyone looking for an experienced software engineer that's highly proficient in C and is quite comfortable slicing and dicing low-level kernel (Linux, RTOSes) and device driver (Wireless Network, Sound, Printer, etc) code?

I've done high-level systems design, low-level board bringups, database backends, Web UIs, data mining, test engineering, you name it. Python, Perl, C, Shell, and Java. Javascript, C++, and even C# in a pinch. What I don't know, I pick up as needed.

My current resume is available, naturally.

I'm based out of Melbourne, Florida, but for some time I've been wanting an excuse to move on.

It can't hurt to try, eh?

Syndicated 2013-03-08 00:47:11 from Solomon Peachy

Linux wifi driver hackery, yay

Since it's still a little too chilly outside for me to take apart my car to replace a defective seatbelt buckle, it's time for a writeup on what I've been up to with my wifi driver hacking.

First, the venerable . For some reason, I keep being surprised at the amount of major surgery between the releases. Since my last posting to linux-wireless, there's been a lot of work:

  • Completely rewrote BSS join logic -- IBSS now works!
  • Respect TKIP/CCMP group key rx sequence counter
  • Improved 802.11g (ERP) coexistence
  • Eliminated callback function pointer structures
  • Detect CW1160/CW1260 chips (fw load is different though)
  • Greatly simpified BSS loss detection
  • Fixed deadlocks and/or OOPSen when hot-unplugging non-idle devices
  • Pulled support for Sagrad SDIO modules into a separate module that provides the appropriate platform data
  • Simplified Beacon filter configuration
  • Many, many, many checkpatch-suggested cleanups

I'll probably prepare another upstream submission this weekend, seeing that the driver is now handling everything I'm throwing at it. Finishing CW1260 support needs to wait until I have hardware to test aginst.

Next, I've also spent time on the rt2800usb driver, adding the ability to write changes back to the eeprom and embedded eFuses

. This lets folks update the production data baked into the module at manufacture time, which is occasionally necessary when your module vendor sends you seven hundred modules with a single bit flipped that breaks a legacy product's driver. As an aside, Ralink's official drivers are... painful, to say the least. But kudos to Ralink for maintaining them!

Finally, I started adding support for my employer's STLC4560-based modules to the p54 driver. They come in both SPI and SDIO variants, and have an onboard EEPROM for storing the Production Data. The existing p54spi driver is hardwired to have the PDA loaded from userspace, and there's no support for SDIO devices at all. This is a lower-priority project, but it is nice to be working with the venerable NWN/Intersil/GSV/Conexant/ST 'ARM MAC' again.

Syndicated 2013-03-02 13:15:16 from Solomon Peachy

Gah, Another youtube posted in the recentlog, breaking it thanks to illegal HTML syntax. According to the w3c validator:

Error Line 15, Column 228: Self-closing syntax (/>) used on a non-void HTML element. Ignoring the slash and treating as a start tag.

<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/DR_wX0EwOMM" width="420"/>

Domain registrar recommendations?

In a couple of months, one of my domains is up for renewal. I've been using Dotster for years now, ever since I ran screaming from Verisign nee Network Solutions back in the day, but my eye is wandering.

Mainly because Dotster does not, nor does it have any plans to, support DNSSEC and IPv6 glue records.

If this goes well, then I'll be moving the rest over as they eventually expire.

Syndicated 2013-02-14 03:27:43 from Solomon Peachy

Sunday Hackery

Faced with no getting-my-hands-dirty offline projects today, I decided to spend some time on various F/OSS projects that I've neglected as of late.

The morning started with a flurry CW1200 driver hacking; this time focusing on simplifying its interrupt handling. In the process I eliminated two more compile options and three bus-level virtual functions. As nice as it is to write code, it's even nicer when you delete it without any loss of functionality!

After that, I put my money where my mough was and wrote a systemd unit file for Photo Organizer's background workers. For years I've been using screen and a sudo-driven cmdline to fire them off, because I could never come up with a reliable (and portable) init script to do the trick. No longer. As an aside, systemd is brilliantly put together and worlds beyond anything that's come before. It JustWorks(tm).

Then I pulled out my notes and turned my attention to Gutenprint. The Kodak 1400's unexpected complications derailed my plans a bit, but there were still three related printers whose spool formats I'd decoded -- The Kodak 8500, the Mitsubishi CP3020D/DU/DE, and the Mitsubishi CP3020DA/DAE. They are now all supported by Gutenprint, and awaiting testing. The latter two are the ones I'm most concerned with, as I took a few liberties with the spool format.

Basically, the Mitsubishi-branded printers don't spool the data linearly into the printer; they basically write the color-interleaved data in backward chunks. Consequently, the printer can't start printing until all the data is received. To simplify things, I'm sending the data linearly in one big chunk. Hopefully it will work. We'll find out.

On that note, if there's someone out there with one or more of these printers, care to help out? Either by doing some test prints for me, or better yet, sending me the printers? :)

... and the day is far from over.

Syndicated 2013-01-27 21:06:45 from Solomon Peachy

23 Jan 2013 (updated 23 Jan 2013 at 14:08 UTC) »

Okay... this is certainly strange..

Date: Tue, 22 Jan 2013 20:49:36 -0500
From: Jay Ronkonkoma
To: undisclosed-recipients: ;
Subject: Thank You for your hard work

I'm a big fan of your work on Wireshark. I was wondering what else you had
going on, what you were doing that was new, anything I could read would
be greatly appreciated.

Also, if you have the time and inclination. please mail a postcard to my
daughter Amanda. She would love to get a little post card from you. she
is now 7 going on 15 if you know what I mean.
I would appreciate it, and I know she would love it. If you don't I
appreciate your time

Amanda Elia
[[ address snipped ]]
Ronkonkoma, NY 11779


Jay Elia

I can't help but think this a soliticitation for highly illegal
activities, if you know what I mean.

It's also been something like six years since my last contribution to
Wireshark, so it would seem someone's busy harvesting addresses from
old commit logs or somesuch.

EDIT: I've reported this email to google via gmail's abuse form.
Going to pass this on to the feds too, once I figure out how to do that.

EDIT2: I've reported this to the feds.

EDIT3: Two others have told me they've received this too.

Syndicated 2013-01-23 02:34:48 from Solomon Peachy

Success with the Kodak Professional 1400

About a week ago a massive box was left on my doorstep containing a lightly-used Kodak 1400 large-format dye-sublimation printer. Lightly used to the grand total of a whopping 72 prints, according to the self-test page.

Unfortunately, my elation turned sour when I discovered that I couldn't just dump the raw spool file to the printer. Firing up a USB sniffer under WinXP, I discovered that the to-the-printer protocol bore little resemblance to the spool file -- even the image data itself used a different format. To top it all off, the printer needed intelligent buffering.

So, armed with the USB sniffer output, I heavily modified the spooler I wrote for the Canon SELPHY printers. Last night, I achieved success, and succesfully printed the WinXP test page I'd previously generated, but also an image printed using gutenprint.

The Kodak 805 printer that replaced this one probably needs a similar treatment (given that it uses the same spool file format) but unless someone sends me a printer (or cash) I won't be able to test that theory out.

I still have to generate another couple of test prints under WinXP to decode two remaining protocol options, but other than that, the Kodak 1400 printer is now usable under Linux!

Oh, this is the first image I printed on this thing via Gutenprint. I wish I could say it was something I took.

Syndicated 2013-01-20 13:38:44 from Solomon Peachy

More driver hackery

This morning, I submitted the third pass at the CW1200 WLAN driver to the linux-wireless list. The changelog is too long to list here, but the bulk of the changes were teased from a code dump that Sony released. It seems they went through much the same pain as I did, and of course none of the changes made it upstream.

Aside from the Sony changes, the single biggest change was a rebalancing of the tx/rx handling, so that it's now considerably fairer. Of course, there was the usual pile of small changes, including a fix for an OOPS triggered by the broken IBSS code. It's still broken, but at least it's not crashing anything now.

We'll see where v3 goes. Hopefully merged into linux-next, or barring that some meaningful feedback on what I need to do next.

In other news, Before the new year I added support to Gutenprint for the Kodak 9810 dyseub printer. None of the code's been committed yet, but there's no real rush. I'm now waiting on a Kodak 1400 printer to show up -- Once I've verified my core gutenprint changes are sound and that printer works, I'll commit everything, marking the untested models as experimental.

Then I'll tackle the Kodak 8500 and the Mitsubishi CP3020D/CP3020DA, not that I'll be able to test those either.. Afterwards, I'll see about the more modern Mitsubishi printers if I'm feeling so inclined.

I really need to start getting rid of this pile of Canon dyseub printers. Maybe four, instead of twelve. At least the incoming Kodak 1400 is a large-format model!

Syndicated 2013-01-13 03:10:34 from Solomon Peachy

124 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!