Think before writing

December 10th, 2009

I need to start thinking before I write. Or at least verify my assertions.

The other day I posted about the n900 and droid root exploit. Well, as Brenton pointed out you can get dev versions of droids that have root without needing to resort to bit twiddling boot loaders. I foolishly assumed that since someone did it, that it was necessary to do. sigh

Then I assumed the drivers for wifi and cell radio were closed binary drivers. Felipe Contreras quickly corrected me on that assertion.

In a previous post I jumped too far ahead of myself and was promptly thwapped by rtaycher.

My mindless ramblings make me look like a fool. However, the upside is that I learn a lot of new info by being corrected in my false reasoning. Which I love. The downside is that by being incorrect all the time, people may stop listening. I suppose as with most things in life, I just need to find the balance to create that elusive moderation.

why the n900

December 9th, 2009

I received a n900 last week and it is several levels of awesome.

I do not really consider myself a gadget geek. My wife might disagree with that assertion due to all the devices littered around the house. However, my previous cell phone was almost ten years old. Thats right, I bought my last phone at the turn of the century. I would say that fact alone removes me from the gadget geek school.

That ancient phone and the n810 were a really nice combination. I could access the net via DUN over bluetooth (http, ssh, etc..) and make phone calls. I wanted to merge the two devices and I knew the n900 would do that. That ability alone made the n900 worth waiting almost a year for. (That was when I started getting sick of having two devices.)

While the n900 is a spectacular device it definitely is not the shiniest. Google and Apple have that covered. With that in mind I keep getting asked why spend more for less? Why not just get a droid or iphone with access to all the apps, multi-touch, etc.. etc..

http://alldroid.org/viewtopic.php?f=210&t=567

You will never see that on the n900. Not because the devs at nokia are security geniuses, nor because the maemo community lacks hackers. That post will never be needed for the simple reason that there is a rootsh in the apps repository. Yes, that is right. My phone comes with immediate and easy access to root.

I am definitely NOT a linux geek, nor an adept hacker. I will probably never use rootsh, but other people will and I can benefit from their efforts. As I discovered with the n810 there will eventually be a need to get access to root. And when some hacker creates /sbin/butterfly they will do it without having to bit twiddle the boot loader.

The n900 is a great compromise between the draconian iphone and the loose freerunner. It has its binary drivers and inaccessible hardware (you probably can’t hack the wifi or cell radio easily.), but offers an open debian based linux distro.

One last point that probably needs yet another post, while the droid is open-ish when compared to the iphone, it is still just another way for google to get ads in front of you. While this is not inherently bad, I am not comfortable paying someone so they can market to me.

Searching for the internet’s tea person

November 21st, 2009

For many years I have been making really great coffee. Everyone who drinks it is amazed at how good the coffee is. While I would love to claim that I am some kind of coffee prodigy, I simply follow Tom at Sweet Marias. The guy is pure passion. All his product recommendations and bean selections have been amazing.

Sweet Marias has a personality too. It is not some slick rounded corner corporate site trimmed down to a bland stub by lawyers. It finds that hard to reach middle above the myspace eyesore. Tom appears to be on this constant search and is tirelessly hunting for good coffee. It is not just the beans, he finds the best tools too. Pure awesome.

I hereby dub Tom of Sweet Marias the internet’s coffee person.

Now I have decided that I like tea. I am starting to like tea enough to invest in making good tea. However, I have run into a road block: I am unable to find the Sweet Marias of tea. I have found Adagio’s and other misc places, but I am not getting the same passion from them. They all look and read too polished to be run by people who really care. Don’t get me wrong, I am sure Adagio and friends are really great people, I am just not seeing the same single minded awesomeness I see at Sweet Marias (If I don’t get any real response from this post I am probably going with Adagio).

Perhaps I am making too brash an assumption that the coffee and tea culture would be similar enough to have Tom’s doppelgänger.

I am putting this out there to see if anyone is aware of where I can go to get access to a singularly and freakishly awesome tea guru?

Random Observation

November 19th, 2009

I noticed something the other day. It was surprising at first, then the more I thought about it the more I realized it made sense.

You have classic works like Don Quixote that have created iconic cultural terms; "I felt like I was tilting at windmills." There is big-endian vs little-endian created by Gulliver’s travels and popularized by computer culture. There are many more but since this a random musing I can’t think of them.

The surprising thing is that you have a massive thousand page work and what we have left from it is "Tilting at windmills.". I am not aware of any other popular phrase derived from the knight. I am reading Gulliver’s Travels and all that is culturally familiar is the little vs big satire.

Both of these memes occur rather quickly in the works. You don’t have to read all that much in order to stumble onto them. Is this common? Do so few people read the entire work?

Don Quixote has the cave of Montecino(sp?) and Gulliver’s Travels has the floating island kingdom of inept academic fools (which is hilarious.), to name just two off the top of my head.

The real question is: Are there any iconic cultural memes that occur towards the end of the works?

I am afraid we only enrich our culture with the first 25% of great ideas.

There are reasons markets are under served

November 10th, 2009

Things I knew before I started, but ignored: There is usually a reason that markets are under served.

Here is some background before I get to the real story.

I am somewhat involved in boy scouts, my son is a Webelo II and I volunteer for that I can. Last summer I volunteered to coordinate summer camp. This boils down to collecting forms, having parents fill them out, copying the info to different forms, handing forms in to the main office, hoping and praying that they don’t lose track of it,
keeping copies and then transcribing yet more data. All of this is done via paper and pen. I have never spilled so much ink in my life. Keeping track of so much paper and who has done what was a nightmare of epic proportions for someone like me. Other people’s money was involved in a mixture of checks and cash all with different amounts
due and constantly changing based on a mind boggling laundry list of variables. If ever there was a process ripe for automation, this was it.

I thought I found an itch I wanted to scratch.

The ephemeral goal was to provide a basecamp on steroids for scouts to organize themselves. I wanted something less complicated than BigTent, but a bit more custom tailored to scouting than a generic group org system would be.

I am quite satisfied at my current job. I wanted to solve a problem, not alter my life. I quickly realized that I needed to do two things; find a designer/usability guru and figure out if this was going to be a viable project. In other words, will this eventually pay for itself?

I got my friend Brenton Klik to sign on and together we did some research. I try to use conservative numbers, but when they become too bleak I shift to conventional wisdom as found in Hacker News. This is what we found:

There are about 20,000 cub scout packs and troops in the US and that number is shrinking. Right at the beginning there is a limited customer base. If we assume a maximum 10% market penetration over the course of a few years we end up with 2,000 customers.

I didn’t really want to do this myself so I wanted to hire someone, this means a decent developer and tech support person. With a part time support position and full time developer the initial yearly cost would be $80k. I

In order to eventually enter the black within a few years, I would have to charge $10/mo per pack, not per user. I didn’t really see the model working on a per user basis. Nor did I want the uncertainty of ad revenue. Basecamp charges $25/mo for the minimal package, so $10/mo seemed reasonable.

Brenton and I met with a representative from the scouts to figure out whether this was a viable idea. You can read his post for details on that experience.

In my opinion the biggest hurdle is that the scouts is a volunteer run and volunteer funded organization. I wasn’t out to make a living on this project, but I certainly didn’t want to lose any money either. There were significantly cheaper solutions out there. None of them do much of anything particularly well, but they do it cheap enough and
tolerably well enough. Which is what matters.

As Brenton said, for the price of a coffee we found out that the project wasn’t worth it. There are reasons why blue oceans are blue.

To FLOSS or not to FLOSS

October 31st, 2009

I am struggling with a decision I never imagined I would have to make. Most of those who know me would be surprised at what I am considering. The question that is weighing on my mind is whether I should buy an iMac.

(All the following is NOT derived with scientific rigor. It is merely the ramblings of a floss purist questioning his ideals via personal anecdotes.)

A long time ago I realized that I am not a typical computer user. I use Firefox to surf the web and emacs for everything else. These preferences, which tend towards a positive feedback loop , have brought me to a small isolated area of the Venn diagram.

However, I do have a wife and son and they fall into the larger section of that imaginary Venn diagram. They browse the web, use email (predominantly through the web), IM (again web based), manage photos via f-spot, watch videos through mplayer, play some time wasting games,etc.

Of course my son does a bit more with various tools like scratch.

The core problem and reason for this post is that he wants to do more, but can’t. Editing videos on linux is near impossible. Cinelerra is about as useful to an impatient ten year old as mowing the lawn with a pair of scissors. Kdenlive looks promising, but crashes constantly with segfaults and other weird errors. After hours or days of stubborn persistence his natural response it to give up. I don’t blame him.

The core philosophy of floss is freedom. Freedom is a hollow concept without pragmatic consequences. “Given enough eyeballs, all bugs are shallow”, thus for popular systems at least stability is approachable. Of course there are caveats and other problems with this which I will punt. With FLOSS one also has the ability to make an application do what they want (the freedom part). If a package comes close, but not quite, then you have the ability (whether you do it yourself or higher it out) to get the feature you need. This saves you writing a system from scratch.

Non-free systems in the floss view are bad because you can become entrapped in that system. In order for Digital Restrictions Management to ‘work’ it has to be infused throughout the system from the hardware level up to user level apps including network services. Enforcing whimsical industry group policies through fallible systems is always a poor judgement call.

Expanding closed systems through undocumented, broken api’s is an exercise in frustration. While there are exceptions they are exactly that, rare exceptions.

One can easily observe some real world consequences that are surprising for a floss purist. Floss tends to be a copycat of the closed giants. One can easily argue that the closed giants also copy each other.

Another observation that contradicts the philosophy of floss is that the media apps tend to crash. Sure, mplayer and co. will play most codecs perfectly fine. Creating or manipulating media is a different experience entirely.

A naive observer would be forgiven wondering what benefit there is to all this freedom when innovation is not the de facto emergent property.

Bringing all these tangents together I am back where I started: Do I buy an iMac so my son can create media with relative ease or do I hold onto ideals and contribute to an immature ecosystem? In other words do I side with short-sited pragmatism or hold out for potential long term rewards?

why eBook readers are great next year.

September 8th, 2009

I recently succumbed to gadget lust and bought an ebook reader, BeBook to be precise.  I read a lot of books and luckily they tend to be public domain works from long dead authors. My tastes allow me to take advantage of the reader while not compromising my DRM == Evil stance.

The overall experience of reading on the BeBook is quite good. Needing light to view a display on an electronic device is still surprising. The screen is a bit smaller than I expected (though I am not sure what I was expecting exactly.) which means more page turns to read a book. Turning a page does take a few moments, however, it is easy enough to anticipate and click the button while you are close enough to the end. You can then finish reading while the reader does whatever it does to render then next ‘page’.

I often end up reading in bed. It is a habit I got into while I was single and luckily I have an understanding wife so I am able to continue doing this. It is so much easier using a reader while laying down than a book. Unfortunately, the buttons emit a clunky click when pressed. I initially thought this was the death knell for reading the BeBook in bed. Luckily, the wife has yet to complain.

For reasons I have yet to figure out, the default zoom level of some pdfs can be illegible. Zooming involves pressing the number key with the magnifying glass on it. NOT the buttons with the + and -, which are for volume. That took me longer to realize than I care to admit. The zoom button cycles through the various modes in one direction. This means that if you go one step too far you have several more page refreshes to go through to get back to where you want it. This can feel like it takes a while due to the slight delay in display refresh. I don’t really plan on using this to play audio, so it would be really nice to remap the volume buttons to zoom.

There really isn’t much to say about the software. It just works. Which is both surprising and good. As far as I can tell the UI is just a file browser, if there are more ways to browse your library, I don’t know about it. Since the file view has worked well enough for me I haven’t bothered to look.

I read mostly pdfs and epub books. Rendering epub is definitely superior to that of pdfs. If I had to guess, I would say this is because epub is an open standard, pdf is extremely complex while epub has a single purpose, and it appears there is more epub content. I have not tried any other formats since they tend to have DRM and I don’t want to throw away money or support such a horrid concept.

OpenInkpot needs mention. It is a linux distro for the Hanlin v3 (BeBook) and other ereaders. It is an interesting idea and deserves some attention. I want to use it some more before I decide whether to switch. The few times I have booted it, Inkpot seems to be very similar in how the BeBook functions. At least I haven’t noticed any marked difference yet. I am definitely going to play with it again and would recommend taking a few minutes yourself.

Content. The single reason to buy these things is to put books on them. If you can’t do that, they are quite pointless. Sure, you can put feeds into ebook format and consume them that way, but then links are dead and I have found it to be rather constraining. However, I do use zinepal.com and for what it is, it works very well. (more on that in another post.)

If you don’t care whether your soul is sucked into the maw of giant corporate blobs, then DRM is for you. There are two big buy offers on your soul; Amazon and Sony. You can give them lots of money for the privilege of temporarily accessing big name authors and other pop-culture trends. Then they will take it away at a whim. Who wouldn’t want that?

Even if you did decide your soul was worth their baubles you would still have to run a vbox/vmware image of windows. Most of their spyware is not cross platform.

Your other choice is to travel into the world of Public Domain, Tech Tomes, and Unknowns. Lucky for me, this happens to be where I enjoy traveling. Reading authors that were around before the Brimstone Puking Demon was envisioned is extremely entertaining and rewarding. O’Reilly has decided that their customers are not amoral savages so there is a wealth of cool, but expensive, content. There is also a bunch of places offering self-published authors and a few publishers that have functioning brain cells, http://www.baen.com

There is enough content out there allowing you to avoid DRM altogether. It just requires a bit of work to find. I am still looking for good sources of books. I love that O’Reilly doesn’t have DRM. However, building a library of their material would be extremely expensive at $30+ a pop.

Is the BeBook worth it? Yes. It allows me to easily read classic lit, all the tech tomes I could want and find great unknown authors. Using it for only a week and I am hooked.

Qunu RIP?

December 12th, 2007

First, I would like to apologize to everyone who put so much effort into qunu.

Current Status:

The server has been taken offline. There are no backups which are current, the latest is one month old.

Why:

The server that was just taken offline was to be a temporary home lasting one, maybe two months. We were then going to find a more permanent setup. As with most things that have a deadline it received no attention until it was necessary.

Apparently there was some confusion as to the date which the account was to be canceled. It was scheduled to be taken offline on December 21, 2007. However, the server was taken offline nine days before the scheduled time (e.g. today)

A few weeks earlier, Mickaël at process-one had generously offered to take qunu off our hands. So we had finally found the home we had been looking for. I had even started the process of getting all the data off the server. Unfortunately, the transition is not going as smoothly as I had hoped.

Once again, qunu will suffer through a period of downtime before it is finally resurrected again. Maybe qunu should be renamed Phoenix or Lazarus

At some point when all the kinks are worked out, probably next month, qunu will be started at its new home. Don’t hold your breath, but don’t give up hope either.

Justin

Selecting whole buffer

December 6th, 2007

Just ran into this emacs key binding. Someday I need to just read the manual and mark all the stuff I wish I knew already for later study. But since I will probably never do that here is yet another cool thing in emacs which I didn’t know about:

C-x h runs the command mark-whole-buffer
which is an interactive compiled Lisp function in `simple.el’.
It is bound to C-x h,

.
(mark-whole-buffer)

Put point at beginning and mark at end of buffer.
You probably should not use this function in Lisp programs;
it is usually a mistake for a Lisp function to use any subroutine
that uses or sets the mark.

If you didn’t know about this, enjoy.

Emacs, the lisp OS

December 3rd, 2007

Not only can you edit videos in emacs now, but you can also create music. My initial response was WTF!? However, after watching the demo videos, I can see the practical uses.

nyc erlang/ejabberd meetup

November 25th, 2007

I am going to be meeting with Mickaël Rémond at an adhoc ejabberd meeting. afaik, the location is undetermined, however, I am flying out in the morning and have decided that Gramstand is as good of a place as any for now. (primarily thanks to stumbling onto a coworking blog). Will probably move onto a more pub-like venue later on.

I am hoping to meet a few erlang/ejabberd devs on this trip. If not, the chance to chat with Mickaël f2f will definitely be worth the 1.2hr plane ride.

I am taking Jetblue flight1 from Buffalo to JFK and landing around 10:00am. Then finding my way from Queens to Manhattan via the subway. It looks like I will have about 8hrs to play with in nyc.

If you have the time or inclination give me a ring at 585-705-1877 I will be hanging out at gramstand writing erlang.

Impressive Incompetence

September 25th, 2007

Open letter to NYSIF:

https://www.nysif.com/include/BrowserDetect.asp?browserNM=Netscape

You should be congratulated. This is a level of incompetence of which I have not seen since ’90s.

My scathing insult aside, what is that? The world has moved on. There are ther platforms out there such as OS X and Linux which have fully capable web browsers. You really should look into hiring a new web team if thats the best they can do.

Lisp Tutorial

September 20th, 2007

This is a good idea.

Lisp Tutorial

I am now a jaiku lemming

August 30th, 2007

I have been avoiding these social hype sites for a while now. I have
simply failed to see the benefit. (besides sucking yet more of my time.)

Today, stpeter posted that jaiku had a jabber interface. Anything that
allows me to quickly utilize their service via emacs is very
enticing. Since I use emacs-jabber jaiku was
simple.

While I was able to setup a profile quickly and get it setup
in jabber via xmpp:jaiku@jaiku.com I
have yet to find anyone I know on there. I have 348 people in my roster
and not one of them is on jaiku. Oh well.

I suppose the price one pays when they ignore all the social crud
crusting up the edges of the web is that they don’t know anyone
there. (Also, not blogging for a while probably might have something to
do with it.)

presence pendanticity

August 3rd, 2006

I just had an interesting chat with hawke about presence and transports. It may seem pedantic, but I think it strikes at an important point. A lot of clients assume that a jid must have a node; miranda,iChat,gtalk come to mind. If that jid lacks a node then it must be a transport, e.g. behave fundamentally different than a typical IM client connection. In other words the jid is being used to determine the basic functionality of an entity on the xmpp network.

Below is the chatlog, but it can be summarized as:

  • hawke asserts that presence is a mutual agreement for communication
  • I assert that presence is a reflection of an entities availability

This post is a solicitation for opinions.

Below is the chat log

[12:11] hawke> since most clients will show the quser
service as a transport, instead of (or as well as) sending the
message, just send offline presence.
[12:11] hawke> then they can just log back in
[12:11] hawke> instead of the ’status on’ message
[12:12] zion> thats a bit client specific though
[12:12] hawke> How so?
[12:12] zion> quser is not intended to be a transport
[12:12] zion> just because it doesn’t have a node in the jid
[12:13] hawke> I’ve not seen a client that determines
transport vs. other contact any other way.
[12:14] zion> emacs-jabber ;)
[12:14] zion> yeah… that semantic is annoying
[12:14] zion> so I don’t want to encourage bad habits
[12:14] zion> the client should disco to find out what it is, not use
the jid to assume
[12:14] zion> to many clients to that, and it sucks
[12:15] hawke> True
[12:15] zion> the jid is an identifier, nothing more
[12:15] hawke> But even so, the same thing applies to
quser as actual transports
[12:15] hawke> you still log on and off by sending
presence
[12:15] zion> no… there is not log on/off
[12:15] zion> I added that ability because it was requested
[12:16] zion> its a presence aware node on the jabber network
[12:16] zion> it doesn’t proxy your messages to another network
[12:16] hawke> I think the distinction between
“list/delist” and “logon/logoff” is pretty unimportant for this
purpoose.
[12:16] hawke> too many “o”s.
[12:16] zion> it is important actually
[12:17] hawke> oh?
[12:17] zion> if you go ‘away’ on aim/msn/yahoo then you are still
reachable
[12:17] zion> you are still connected to that network
[12:17] hawke> How does that relate?
[12:17] zion> so there is a diff between list/delist and logon/logoff
[12:18] hawke> Going “away” is different from logging
off though
[12:18] zion> thats my point!
[12:18] hawke> If I send offline presence to a
transport, I am logged off not set away
[12:18] zion> exactly
[12:18] hawke> if I send offline presence to quser, I
am delisted/no longer reachable to the qunu web service
[12:19] zion> there is NO logoff from qunu
[12:19] zion> you will not be listed
[12:19] zion> but quser can still contact you
[12:19] zion> since you are still on the jabber network
[12:19] hawke> Obviously.
[12:19] zion> qunu is a jabber service, not a transport
[12:19] zion> there is a distinct difference and the semantics of a
transport do not apply
[12:20] hawke> I know that; the logic is the same
though — log off/on.
[12:20] zion> if you log off aim, can the aim network still contact
you?
[12:20] zion> no
[12:20] hawke> Only the terminology is different.
[12:20] zion> no its not
[12:20] hawke> but that’s “can’t” vs. “won’t” isn’t it?
[12:21] zion> presence is significantly different than network
connection
[12:21] hawke> if I log off of quser, it
won’t/shouldn’t be inviting me to rooms.
[12:21] zion> inviting is only one activity
[12:21] zion> and there is no ‘log off’ quser
[12:22] hawke> Sure there is
[12:22] zion> *sigh*
[12:22] hawke> if I send offline presence, I am logged
off
[12:22] hawke> am I not?
[12:22] zion> if you send me offline … does that mean I am a
transport?
[12:22] hawke> I am no longer listed in the web
service, and I won’t be invited to rooms any more.
[12:23] zion> just because your client forces those terms in the UI
does not define it
[12:23] hawke> No. I’m not saying it is a transport.
I am saying that the particular action of sending online/offline
presence that applies to transports also applies to quser
[12:24] zion> right. if you send directed offline pres to quser, then
it will think you are offline and treat you accordingly
[12:24] hawke> Yes.
[12:24] hawke> though it will still respond to
messages.
[12:25] zion> I lost track of where we are… we seem to be
disagreeing about something, but saying the same things
[12:26] zion> you want quser to behave like a transport by sending
presence offline instead of using status on/off
[12:26] hawke> Let me restate my suggestion: The status
of quser should reflect the user’s listed status on the quser web
service.
[12:26] hawke> yes
[12:26] zion> my argument is that is not appropriate, because quser is
not a transport
[12:26] hawke> quser is a presence proxy.
[12:27] hawke> (and metadata bot, but that’s not
relevant for this purpose)
[12:27] zion> so quser should send an offline presence to the user
[12:27] zion> which will hide it from the roster ui
[12:27] hawke> I think so, yes. Sending the message,
so that they notice is also valuable.
[12:28] zion> but quser is not offline
[12:28] zion> and the user is not offline
[12:28] hawke> True.
[12:29] hawke> Well
[12:29] zion> imo, pres should indicate the availability of an entity.
[12:29] hawke> the user is “offline” as far as the
website is concerned.
[12:29] zion> not exactly correct. the website is just a jabber
client.
[12:30] zion> so the user is delisted from results, but not offline
[12:30] hawke> and with transports, presence doesn’t
indicate whether the service is available either
[12:30] hawke> it indicates whether or not you’re
logged in to it.
[12:30] hawke> For the purposes of the website, what’s
the difference between being delisted and offline?
[12:30] zion> currently, nothing ;)
[12:31] hawke> QED.
[12:31] zion> qed?
[12:31] hawke> http://en.wikipedia.org/wiki/Q.E.D.
[12:32] zion> ex: we are going to be incorporating pubsub into the
service
[12:32] hawke> OK..
[12:33] hawke> Does the users presence have any effect
on pubsub?
[12:33] zion> it should
[12:33] zion> e.g. if they are really ‘offlien’ vs ‘away’
[12:34] zion> if pres != chat || online then they are delisted
[12:34] hawke> OK..
[12:34] zion> if pres != chat || online || dnd || away || xa then send
them pubsub events
[12:35] hawke> So, only send them pubsub events when
they’re offline, or am I missing a status there?
[12:36] zion> only send them pubsub events when they are connected to
jabber, if they are offline don’t
[12:36] zion> there is a diff between ‘I am connected’ and ‘I am
online/away/xa/etc..’
[12:37] hawke> but surely you can send pubsub events
regardless of quser’s status?
[12:38] zion> of course… we could set it to offline and still send
stuff
[12:39] hawke> As I see it, the user sending directed
offline presence [to quser] means “I don’t want you to talk to me any
more”; quser then sends its own offline presence confirming that.
[12:40] hawke> So when quser decides “I’m not going to
talk to you any more” it should do the same thing.
[12:41] zion> you assertion is that presence is a mutual agreement of
communication
[12:41] zion> my assertion is that presence is a reflection of an
entities availability
[12:41] zion> regardless of its role
[12:42] hawke> OK, so amend that to add “…unless you
talk to me first.”

unnecessary pain

July 5th, 2006

No plan survives contact with the enemy. This was made abundantly clear when Qunu was released as alpha for the public to abuse. As with any alpha there were countless problems that I dealt with on a daily basis. Clients insisting that a jid must have a node, xdata limitations in iq:register, double subscriptions, broken muc support, etc…

For some of these problems I was able to hack up a work around, such as quser@qunu.com as a subscription proxy for quser.alpha.qunu.com. A few of them had no decent solution and I had to suggest other clients. The wiki page, http://qunu.com/wiki/index.php/Documentation, has a list of clients which have the bare minimum feature set.

The default gtalk client does not support muc or groupchat. Since a lot of people had a gmail account they naturally tried to use their gtalk clients. Making the brash assumption that gtalk behaved like every other xmpp server I directed them to the above list of working clients to try. After several confusing chats and some poking of my own I quickly discovered that gtalk is not xmpp.

That may sound rather harsh so let me qualify that. While google’s xmpp-like servers may follow the letter of the xmpp RFC’s they most certainly do not follow the spirit. The reason I say this is that the gtalk servers will block any stanza which their default client will not understand regardless of which client you are actually using. This means that even if you wanted to get cool new features by using another jabber client, gtalk will block the stanzas before they get to your client. Not only do you have to get a different client, but you have to use a different server. *sigh*

The biggest issue, at least for qunu, is muc invites. GTalk silently drops them regardless of which client is on the other end. disco requests are reported assuming the default client. iq:version is always reported as not implemented, again ignoring the client.

Of course there is no bug/issue report system at google. Thus this blog post. Hopefully someone at gtalk will see this and file a bug. Of course, if you need further clarification, feel free test this yourself or ping me at zion@openaether.org

announcement: open qunu trial

June 8th, 2006

After many long nights and lots of bug squashing we are finally ready to open up Qunu for general abuse. This is an invitation for everyone in the jabber community to try it out. Let us know what you think and how Qunu can be made better.

So what is Qunu?

<marketing-speak>
In a nutshell, Qunu is a Jabber-based ‘ask-an-expert’-style service that you can ‘tag’ yourself with. Qunu allows you to use your existing jabber client instead of forcing you to lurk on a web forum, irc channel or muc room. In essence, people looking for help come straight to you, the expert.
</marketing-speak>

How it works

Someone on our site searches for help in an area in which you have tagged yourself. They can request an anonymous chat with you. We then send a MUC invite to your jabber client which you can accept or reject. We only send thru invitations when you’re online and available, and you can change your presence with us at any time. You have total control.

<marketing-speak>
It’s a great way to give your expertise back to the community in a non-annoying,
non-intrusive way. You can give help when it’s convenient for you, and best of all, you get to see the ‘thank you’.
</marketing-speak>

How to get in

In order to accommodate the various ‘quirks‘ of all the jabber capable clients out there we have setup lots of ways to get in.

The end result of all this is to get quser.alpha.qunu.com on your roster.

Let us know
This is an alpha release. We would love your feedback.

General discussion is in alpha@muc.alpha.qunu.com. The wiki at http://qunu.com/wiki and of course using qunu via http://alpha.qunu.com/search/qunu

making useless things almost useful

March 27th, 2006

Ever wonder what the point of that rss icon in firefox is? Ever go to a blog that you know has an rss feed, but you can’t find that stupid orange XML icon?

It is suppose to make subscribing to rss feeds easier. The problem with firefox’s icon is that you can’t use anything except firefox to read the feeds. Why isn’t there a “copy RSS url to clipboard” context menu?? Features that have such great potential but fail to really do anything are worse than useless, they are frustrating.

How this little icon works is that when firefox sees a <link/> in the header part of the html page pointing to a rss feed, it turns on and allows you to bookmark it. Blarg! I would rather it just go away.

I have resorted to Ctrl+U too many times. I am quite sick of it. So grease monkey to the rescue. I hacked up a quick script that grabs all link elements in the html head and puts them in a simple drop down menu.

Give it a shot and let me know how it goes.

Script is at: http://blogs.openaether.org/data/headerlinks.user.js

muc decline invitation second try

January 22nd, 2006

here is the second version of the patch.

Fixes:

  • The decline code now checks to see if it is indeed a muc packet via a namespace check.
  • It also verifies that the decline is sent to someone, i.e. there is a to attribute value on the decline element
  • It now determines the real jid of the declinee. Since the inviter’s nick will be used in nonpublic rooms. If the decline@to is not a jid, then it tries to convert the decline@to from a nick to a jid.
  • I moved the hash remove code into the decline function. Since the invitee should only be removed on a successful decline.

I would appreciate it if someone could look at the code and let me know if everything is being freed properly. I am still not sure about the room->member hash table content. It is a duplicated xmlnode. However, if I try to free it a segfault occurrs.

ping me for any feedback, xmpp:zion@openaether.org

http://blogs.openaether.org/data/muc-decline-2.patch

muc decline invitation

January 21st, 2006

I just hacked this up. It works, kind of

The patch is against 0.6 and not the latest cvs.

Basically, the problem is that when an invitation is declined, it is sent to the room. but the sender is not in the room, so they get an error back. Of course this is incorrect behavior.

Since the jid is added to room->member and not room->remote, mu-conf thinks it is getting a message from the outside. What this does is check to see if the sending jid is a member and try to process it as a decline.

I need to hack some error checking into it before its releasable. Figured I would get some feedback first.

Things I am not sure about:
- does the item in the room->member hash need to be freed? I tried and it causes a segfault.
- is everything that needs to be freed done right in the new func?

http://blogs.openaether.org/data/muc-decline.patch