Older blog entries for cdfrey (starting at number 30)

Charging the BlackBerry on Linux

    For those of you with BlackBerry devices plugged into your Linux machines, you've probably noticed the frustrating fact that no matter what you do, it only asks for 100mA, and then complains that it doesn't have enough power.

    And yet in Windows, it all works seamlessly.

    Debugging this was a challenge, because I could not seem to find anything special happening on the USB level, when I used either USBSnoop on Windows, or usbfs_snoop on Linux with VMware.

    Turns out there was a bug in the usbfs_snoop logging code, which you can fix with this patch (or wait for the next kernel release).

    With this patch, the full proprietary USB conversation is exposed, and quickly duplicated for Linux. You can download the juicy results at the Barry project site. Look for bcharge in the SourceForge file downloads section.

    Happy New Year!

robogato: Very cool, thanks! If that is an official subversion repository for advogato, it would be cool to have it on the Show me the Code page.
apenwarr:

You're only looking at it from the customer's perspective. What about the stress of competing for that 100kph job? Are the wages the same? If that fast dude gets injured or loses his job, are the safety nets the same? Maybe they are, but you didn't mention them.

I've seen fast sandwich makers in Canada, too; although they don't seem to be that numerous.

My list of mailing lists is getting so large that I now have a class of mboxes that are more archive and reference than something I'm actively interested in.

Here's an update for those following my newmail.cc mailbox reporter program.

I added the capability of listing archive mboxes in your .newmailrc with a value of -2. Then you can selectively hide/show this second-tier list of mboxes with the -H and -S switches.

I also added an environmental getopt() that behaves the same way as getopt(), but prepends the command line options from an environment variable ahead of the argv[] options.

env_getopt() seemed like something that somebody would have implemented before, but I didn't see anything like it in my web search. I may have reinvented the wheel. Anyway, it is now implemented as GPLv2 in case others need the same functionality.

fxn:

Advogato also has XMLRPC, with which you can do programmatic access to your diary. I do this in the hope that it saves advogato bandwidth.

Below is a small python beginner script that I cooked up just for this task. It checks the dates of the posts and saves the new ones as individual files.

If someone finds it useful, please feel free to use it. You can download it here.


#!/usr/bin/python

import xmlrpclib import os import difflib

def Download(filename, entry): print "Downloading: " + filename out = open(filename, "w") create, update = server.diary.getDates("cdfrey", entry) out.write("%s\n" % update) out.write(server.diary.get("cdfrey", entry)) out.close()

def GetTimestamp(filename): inf = open(filename, "r") s = inf.readline() inf.close() return s[0:len(s)-1]

def Update(filename, entry): print "Updating: " + filename filetime = GetTimestamp(filename) webcreated, webupdated = server.diary.getDates("cdfrey", entry) if( filetime != webupdated ): print "Entry %d is out of date" % entry if os.access(filename + ".bak", 0): os.unlink(filename + ".bak") os.rename(filename, filename + ".bak") Download(filename, entry)

oldf = open(filename + ".bak", "r") newf = open(filename, "r") oldl = oldf.readlines() newl = newf.readlines() print ''.join(difflib.unified_diff(oldl, newl))

path = "/home/cdfrey/text/advogato/posts/" server = xmlrpclib.Server("http://www.advogato.org/XMLRPC")

entryCount = server.diary.len("cdfrey")

for entry in range(entryCount): filename = path + "advogato.%03d" % entry if os.access(filename, 0): Update(filename, entry) else: Download(filename, entry)

fzort:

Thanks for sharing the link to those chess problems. It reminds me of a paperback book I picked up last year called Bobby Fischer Teaches Chess. It's full of problems like that, taking the reader from beginning backrank mates to more complex combinations. It's a very fun book to read, especially the second half, as you hold the book upside down.

The thing I've found is that chess problems, and the Bobby Fischer book, only helped my end game, and the planning, if I remember to do that. It is the opening that can make or break a game, and I've had many games broken by a bad opening.

I'm experimenting with lightening games lately, and while I lose almost all of them on time, I find it is a good way to practice openings, and to force my brain to work faster.

Maybe I'll see you on freechess.org. I have the same handle there. I'm still very much an amateur.

The last month has been kind of a mental lull for me. Slow progress everywhere.

But alas, I'm finally back on the Barry project after a few months' detour on other critical issues.

The libusb project has undergone an API redesign over the last few months too. It's all in the devel tree. If you're following libusb, and wondering why things are not being updated, make sure you're looking at the SVN repository, not CVS as its website says. :-)

Since Barry depends on the devel tree of libusb, there has been some porting needed in Barry, and some hacking needed on libusb. The last little while I've been reading through the libusb code, and adding libusb_wait(), libusb_poll(), and libusb_abort() support, which are critical if you want to use async calls and still avoid a threading library.

Still lots of work needed in Barry. It will be nice to have a working libusb and test setup again soon.

redi, thanks for the comment. The Journeyer policy is not about accuracy of the ranking system. That's not really my prime concern. I'm concerned that newcomers that are even remotely worthy have a chance to become part of the advogato community. And since I don't know a newcomer until he's participated for a while, it is improper to judge his merit based on his opening post.

So I'm stuck with two conflicting goals, and a merit system that combines them into one ranking: 1) should he be part of the community, and 2) what is his worth.

I want to answer yes to #1 and never make a judgement on #2. Hence Journeyer is the most appropriate ranking I can give.

I seem to be on an opinion editorial streak lately. A reply to another blog post turned into a blog entry of its own that I thought I should post again here.

    I don't know why people are buying radio either. Sirius satellite radio seems to me to be a replay of cable TV. I'm sure someday people will want to play commercials on it after sufficient people have paid and joined.

    If you're already paying for something, you shouldn't have to watch commercials with it as well. But greed and cost cuts seem to make things continually worse in our commercial world.

    I was reading more information on Sirius at Wikipedia. One of the interesting things mentioned there is that the Howard Stern show was voluntarily not available in Canada. i.e. the company itself chose not to make it available.

    This should send warning flags to anyone technically savvy, and anyone concerned about freedom for the consumer. Isn't satellite radio supposed to be available everywhere in North America? Isn't that one of the draws of satellite? Then how can the company choose who gets to listen to certain shows?

    From the wikipedia article, it notes that satellite radio receivers can display the name of the song. That implies digital.

    So either there are different satellites for the US and Canada (could very well be, I don't know), or it's digital and protected with some form of DRM-like technology (Digital Rights Management). Maybe both.

    DRM is coming to your computers, your TVs, your computer monitors, and your radios apparently. And its primary purpose is to shift control away from you the listener, and to the broadcaster or content producer.

    This leads to grey market activities, just like with satellite TV. People pay to get hacked or "illegal" access to content that should be available anyway, or that would be available if older technology was used. There is no way to segment your audience with conventional radio, but apparently there is with satellite radio. And you're paying for the privilege!

    This kind of thing burns me up, if you haven't already guessed. I urge everyone to be wary of technology like this, and vote with your pocketbooks. Unfortunately, not everyone has the technical savvy to notice when these chains are placed on them, or they just don't care. The former I can try to help with information. The latter are aiding their own captors.

    On a political note, Sirius Satellite radio in Canada is backed by the government-funded CBC. This is even worse. For one thing, it calls into question the entire business model of Sirius radio. I'm sure CBC programming is being funded publically. What does this imply for the other shows? Is Howard Stern completely funded by his share of the Sirius subscription fees? Or does he get other funding? What about the other radio shows? If the subscription fee doesn't cover the whole cost of production, it's almost guaranteed that commercials will arrive someday.

    Then we'd have the worst of all worlds: a content restricted by DRM, with commercials, that you pay for! Agh, why doesn't anyone see this?

    In addition, CBC shouldn't be anywhere near commercials, or subscription radio. This is a publically funded operation, not a commercial enterprise. The minute you allow commercials and alternate streams of revenue to influence your public broadcaster is the minute you undermine the whole reason for having a public broadcaster.

    I'm sure this is what some people want. It is definitely not what I want. I want a strong, publically funded broadcaster that is not beholden to any commercial advertisers, and whose only goal is to produce quality, Canadian news and entertainment. There has to be a balance, and we already have lots of commercial media. It's the public media that is hard to maintain and needs to be maintained.

    Even the CBC website has banner ads now. What am I paying my taxes for!?

A recent diary entry welcomed a new user to Advogato, and urged folks to help make him feel at home.

Let me get the greeting out of the way first. Welcome Hossein! I hope you find this place more welcoming than I have.

Don't get me wrong: I think it's a great site that needs to exist. But the barrier to entry is high. Perhaps too high.

While I haven't spent a lot of time studying trust metrics, I do have my own experience with Advogato.

There is the occasional spam attempt in the recentlog, and they don't last very long. Some may attribute that to how well the trust metric system works here, but in my view, it is more due to inertia than a technical improvement. Make it hard enough for new users to join, and even spammers give up. That's saying something. :-)

Taking Hossein as an example, even with a personal introduction by chalst, and with 4 other regular users vouching for him, he still can't post a reply to a front page article. If that's a welcoming welcome, what hope does a virtually unknown programmer have for becoming a full participating member of Advogato?

From the vouching side of the equation, a regular user has to go through a list of decisions before certifying a user:

  • Do I know who he is?
  • Does he participate in free software?
  • Does he have some productive articles or software he's written to prove he's not just a spammer?
  • How can I be sure the guy posting is who he says he is?
  • Do I care enough to go through 3 clicks (more if you're not logged in) to certify him and put my name on the line for mostly a stranger?
  • What level of certification does he deserve?

The last question brings politics into the equation. Perhaps not explicitly, but it is there. If I don't know who ncm is, and I certify him as an Apprentice, what does that say? About him? About me?

What if raph certifies someone as an Apprentice? What does that say about the new user? What message is that sending to people who have visited the site for the first time?

When I first found Advogato, I viewed the Apprentice, Journeyer, and Master labels as declarations of skill. It implies, at least to the uninformed, that someone certified as a Master has more experience or should be taken more seriously than someone else of lesser credentials. This is of course not true, as the current credentials any one user has are only the product of a number of factors which are more concerned about preventing abuse and gaming of the system than setting an honest rating.

I think the terms used are unfortunate. They add a connotation to the process that, in my opinion, should not be there. Do we want to judge a newcomer based on his productivity before we get a chance to know him? Or should the first question we deal with be more of a welcome mat than a pay grade?

Hossein states he is here to study trust metrics, and I'd be really interested in seeing his conclusions from his study.

Please post at least a link to your results if you publish them, Hossein. I'll be watching. In the meantime, I'll be heading over to your account to add a Journeyer to your list of certifications, but please know that it is in no way a judgment of your skill level. I don't know you, and I don't want to be making such a judgment on a website, even if it were appropriate. As such, my policy is to certify everyone who needs certification, and seems relatively worthy of it, as Journeyer. My interest is in helping you get a foot into the Advogato door, and once in, to help you avoid having your statements branded before you even open your mouth.

21 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!