Search Results: "andy"

23 July 2007

Evan Prodromou: 3 Thermidor CCXV

My brother Ted and his partner Nabil had a great commitment ceremony yesterday afternoon in Dolores Park in San Francisco. It was a beautiful day, and they had lots of friends who came out for them. I came up from Los Altos Hills with our parents, and my brothers Nate and Andy came with their friends and/or families, too. Ted and Nabil march to a different drummer, to put it mildly. Their ceremony was remarkably like a Quaker wedding, although I don't think they planned it that way. They had a nice picnic and tea party in the park for a few hours, let the guests get to know each other, and then called everyone together to listen to their promises to each other. (Very sweet, by the way). They then exchanged bejewelled carabiners -- those funky little mountain-climbing metal loops that people also use as keyrings. "We may lose necklaces or rings, but we're not going to lose our keys." The carabiners were decorated with the California state gem, benitoite (Benito-ite), which is rarer than diamonds. Brilliantly, their friends who designed the carabiners also managed to include a USB thumbdrive, on which they're going to copy all the pictures, stories, movies, and other digital paraphernalia from the ceremony itself. Ted and Nabil will be carrying around those pictures as long as they have the carabiners. Clever! After they'd exchanged the carabiners, they hooked them to their belts, and then hooked them together. "And now... we're HITCHED!" Thunderous applause. They then invited up anyone who wanted to make a toast. My brother Nate went first, and girt in a bastard sword (for unclear reasons), he made a great toast. A dozen other people, including my Dad, came up to speak. By then, Ted and Nabil were falling over with fatigue, so we had mercy on them and stopped coming up to say nice things about them. Everyone dug in to champagne and cake, and Amita June and her two cousins Elena and Tessa ran around on the huge playground in the park. Definitely a good, good wedding-like event. tags:

Long day This morning we had a Skype conference call relatively early in the morning, and then a brunch with Nabil's family (who are visiting from Virginia and Philadelphia). It was really nice -- my folks decided to build a huge patio in their backyard, and it's great for having kids and family running around, as well as for outdoor brunches. (We haven't had a meal inside since we got here, actually.) This afternoon we drove up to Novato to visit Maj's grandmother Jeannette and her Uncle Kevin and Aunt Robin. Also present were Jeannette's lifelong friend Roseanne and Kevin's highschool pal Jim. Amita June loved running around their big backyard and playing with their sweet old dog Holly. She also got a lot of mileage out of their porch swing. Maj and Robin swapped cooking tips and renovation horror stories, and I got to listen to Jeannette and Roseanne tell gambling stories from various Southern California Indian casinos. Jim, meanwhile, was on his cell phone in another corner of the yard, negotiating with another gold prospector with a hand injury to work the friend's claim. Quite an evening. After a dinner of barbecued salmon, caprese salad, and corn-on-the-cob, Kevin and Robin's neighbors came over, and we talked more about statistical analysis, sheep-farming in Marin County and driving through Austria. A long drive back to my folks', but Amita slept the entire time, thankfully. Good for us all. tags:

Voice jail I had to call Air Canada a few days ago to get our tickets to come out here to California, and I had a terribly frustrating time working my way through their automated systems to get to a human being that I needed to talk to. And I thought to myself, "Why do I hate these automated voice systems so?" I never call a 1-800 number or another voice system if my problem could in any way be handled automatically. I always go to the Web first, and only try to get on the phone if the particular special-purpose request I have hasn't been, or can't be, built into the Web interface. But the economics of call centres makes the company want to shunt me into one or another automated voice systems in hopes that I'll be satisfied and not bother a real human being. My only goal with a phone call is to talk to an intelligent human being who can handle my exceptional situation. But the interface is designed precisely to deny me that goal. Can that interface ever be anything but frustrating? tags:

Least likely to succeed Ross Mayfield posted a nice pic of me offering to run his company in exchange for a hot meal. It's a good shot of me, actually. In other linking issues, my Technorati "Authority" value is now 101, putting me squarely into B-list Bloglebrity territory. Hooray for the second string! tags:

22 July 2007

Andrew Pollock: [life] Best. Ribs. Ever.

It's our second wedding anniversary on Monday, and because Sarah's not been to Napa Valley yet, and because this is probably the last opportunity to spend a bit of quality time away together before the pitter-patter of little feet, we've lashed out for a nice weekend away. We're staying two nights at the Gaia Napa Valley "hotel". It's really nice, but a lot more like a motel in most respects. I really like the environmentally-conscious initiatives they've taken though. I can highly recommend it, and the day spa attached is also excellent. Oh, and they have free wireless, which whilst surprising given how much they charge for things like in-house movies, is also a bonus. It was good enough to make laptop-based VoIP calls with. Today, we drove around aimlessly after our massages, in search of wine tastings (it was handy having a a ready-made designated driver). It seems the wineries here are all into charging for tastings, which in my opinion is a bit of a deterrent (in some cases) to purchasing. The charge varies between $5 and $15. Some wineries seem to refund the cost of the tasting if you make a purchase (which seems like the way to go in my opinion). We stopped for a late lunch at the Rutherford Grill, where I think I've had the most awesomely delicious rack of barbecue pork ribs I've ever had in this country. I cannot recommend that place enough. Apparently their rotisserie chicken is also to die for. We picked up thirteen bottles of wine in our travels this afternoon, so for the first time in ages, we'll actually have something in the wine rack at home. Tomorrow we're going on the Napa Valley Wine Train, which looks like it'll be fun. So now Sarah can say she's seen Napa.

15 July 2007

Julien Danjou: rebuildd 2.0 features

Ahaha, no sorry, no 2.0 features for rebuildd yet. I'm a bit lazy about implementing the Web interface, The problem is that everything is quite ready for it as you can see on demo server, but I can't convince myself to do HTML. I'm bad and even using mako templates and looking on different Python Web frameworks can't help me. I can't bear doing HTML pages, I don't know how to do clean things with CSS. And I don't want to learn. A friend pointed me to Paste which should do a lot of things for me, but I'm too lazy to try to read this. Actually, everything on the job-management side is quite ok. I'm just lacking of a Web interface to have a nicer overview of what's going on. Anyway, I still like to do useless coding on client eye candy: rebuildd-job stats By the way, any help would be welcome.

14 July 2007

Russell Coker: Memory Errors and Memtest86+

Early this year I deployed a server. As part of my normal procedure I ran the Memtest86+ memory test program (which showed no errors) before deploying it. After some time running the machine started to become unreliable, yesterday it crashed twice and I had to replace it. I ran Memtest86+ before removing it from where it was installed and found several memory errors. When a server crashes I highly recommend running Memtest86+ before removing it so that you at least know the cause of the problems. As I want to use the machine elsewhere I want to discover the cause of the problem. The machine has two DIMM sockets (I’ll call them A and B) and two DIMM modules (again I’ll call them A and B). After getting the machine home I first tested the machine with DIMM A in socket A (and DIMM B removed) which passed, then I tested it with DIMM A in socket B which also passed. I removed DIMM A and tested DIMM B in each socket and those tests passed. Then I installed both DIMMs and again the test passed! I now realise that I made a mistake in removing a DIMM when I got the machine home. I should have tested it again with the DIMMs in place. If the problem was due to heat or a poor contact made worse by vibration then the problem might have gone away during the trip home - it would have been handy to know that I would be unable to reproduce the problem! My mistake here was to change multiple factors at the same time. When diagnosing faults you should try to change one thing at a time so that you will know what fixes it! Now, I am wondering what I should do next? Assume that it was just a bad contact and put the machine back in service? Suggestions appreciated.

11 July 2007

Martin F. Krafft: Creating a git branch without ancestry

Robin Rosenberg introduced me to the simplest method of creating a new git branch without any ancestors:
$ echo ref: refs/heads/newbranch > .git/HEAD
$ git branch
  master
[...]
$ git commit -m 'creating newbranch'
$ git branch
  master
* newbranch
This comes in handy if you want to maintain two separate components without any common files in the same repository. I am using it currently while experimenting with a new method of storing my home directory in git, which is still far from anywhere. I shall report once I reach a point of success or failure. NP: Rush: Moving Pictures Update: Johannes Schindelin taught me how to do the same without touching files in .git/:
$ git symbolic-ref HEAD refs/heads/newbranch
[...]
and also addressed the issue which would have all files already committed to the "master" branch now appear in the git status output as staged. This is because the index contains the full copy of a revision of a file, as it would be if committed at any point. git status shows the differences between what has been committed, what would be committed, and what is available in the working tree. Since we pointed HEAD to nowhere ("newbranch" does not yet exist), the index and what has been committed (nothing in this case) diverge, the files are still staged, and thus are scheduled to be part of the impending commit. The way to fix this is to remove the index:
$ rm .git/index
This may seem weird, but it works, because git recreates the index whenever you switch branches:
piper:~> git init-db
Initialized empty Git repository in .git/
piper:~> echo 1 > a; git add a; git commit -m.
Created initial commit e774324: .
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 a
piper:~> git symbolic-ref HEAD refs/heads/newbranch
piper:~> rm .git/index
piper:~> git status
# On branch newbranch
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       a
nothing added to commit but untracked files present (use "git add" to track)
piper:~> echo 2 > b; git add b; git commit -m.
Created initial commit 54ff342: .
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 b
piper:~> git branch
  master
* newbranch
piper:~> git checkout master
fatal: Untracked working tree file 'a' would be overwritten by merge.
piper:~> git checkout -f master
Switched to branch "master"
piper:~> git status
# On branch master
nothing to commit (working directory clean)
piper:~> ls
a
piper:~> git checkout newbranch
Switched to branch "newbranch"
piper:~> git status
# On branch newbranch
nothing to commit (working directory clean)
piper:~> ls
b
As you can see, the creation of the branch is a bit complex, but once you (forcefully) switched back to master, you can then freely switch between and commit to them.

Neil Williams: gpe-cash and GPL3

Made some progress with gpe-cash today - fixing compiler warnings, stripping out yet more source code and fixing the debian packaging. It does build from SVN but it needs libqof1 >= 0.7.3 which is an unreleased version from QOF CVS.

gpe-cash.

It's now down to < 1Mb installed binaries with less than 500kb of additional libraries (liqof1, libsqlite) compared to a basic Gtk installation. It may creep up to 2Mb all-in by the time the rest of the Gtk code is complete but an Emdebian build should be able to cut that back towards 1.5Mb or so, installed, by dropping the docs. The SQLite backend is fully functional and the default backend. An optional libxml2 backend adds libxml2 and bumps the size requirements substantially but is worth using on the desktop as it adds support for a command-line mode that combines SQL-type queries with XML results. (Eventual plan is to rsync the sqlite from the handheld and use XSL to generate reports etc.) Still a lot smaller than any other double-entry financial package I can find and with none of the dependency problems of the original GnuCash, despite using the same objects. Managed to remove the need for GConf too which is quite handy for an embedded application.

gpe-cash will be my first GPL3 upstream - all the code I'm forking from GnuCash is GPLv2 or later, as is QOF, and GPL3 code can be linked against the LGPL2 or later libgpewidget so I'm making the new Gtk frontend GPL3 or later and I will eventualy release the whole thing under the GPL3 "or later". Thanks to Joe Smith and Anthony W. Youngman for their help with all that. I had it nearly right, just tweaked debian/copyright a bit.

Actually spent a fair bit of time migrating my upstream projects to Anjuta2 and getting used to the new interface. It is a bit twiddly at times and one or two bits are annoying (bit too much eye candy for my liking - repetition of labels and buttons) but overall it's a lot better than when v2 was first uploaded. The integral DevHelp window is handy. I'm still waiting for the svn plugin though and I've no idea what is going wrong with the anjuta manual. It is being installed and yelp can load it when passed the URL directly but I can't get it to show in the normal Gnome Help browser lists - only the man pages show.

3 July 2007

John Goerzen: Sierra Wireless 595U / Sprint on Linux

Here's how you use a Sierra Wireless 595U USB modem to connect to wireless Internet service with Sprint:

Insert the modem into the USB slot. lsusb should show:

Bus 001 Device 005: ID 1199:0120 Sierra Wireless, Inc.

rmmod usbserial

Then:

modprobe usbserial vendor=0x1199 product=0x0120

You should see /dev/ttyUSB0, ttyUSB1, and ttyUSB2 appear. See also instructions for automating this with a similar card (modify vendor and product to above settings).

Now you will need to configure PPP for this. On Debian, run pppconfig. Your settings will be:

Phone number: #777
Username: 1234567890@sprintpcs.com (replace 1234567890 with your data card's "phone number", no dashes)
Password: your sprint password
Speed (BPS): 921600 (use lower numbers such as 115200 if you have trouble with this)
Port: /dev/ttyUSB0
Init string: ATZ

Here are some other helpful pages:

Verizon EVDO
Sprint and Linux
Cingular AT&T UMTS
Sierra's Linux page

27 June 2007

Joey Hess: ditto Keith

Like everyone else with an Intel graphics chipset and some X bug at DebConf, I was happy to have Keith there to debug it. But I'd go one step futher, and recommend anyone who doesn't have an Intel graphics chipset and some X bug, to go find one of each (and Keith). It's worth the price of admission just to experience his debugging process. If your experience is anything like mine, you'll have a lot of fun. You'll learn about some graphics-related thing, such as PCI configuration space and the LCD brightness register. And you might learn some new things about debugging. How twenty years of experience do come in handy at diagnosing what kind of crash happened, at a glance. That it's possible to still have fun working on something after those twenty years of experience. How to keep the bug submitter involved by letting them follow your thoughts as the problem is debugged, and letting them handle some of the skut-work. How to teach them what they need to do to handle the skut-work, without talking down, or wasting any time. How important it can be to have things like good hardware documentation. And probably lots more that I missed.

20 June 2007

Edd Dumbill: Why Bazaar rocks, and the highs and lows of its use with Rails

While Subversion is for many the source code revision system of choice, I've never stopped long with it myself. Why? Because it's mostly a fixed-up CVS, and doesn't fix the really gnarly problem with revision control: merging.Mark Shuttleworth has written an insightful little article on the key aspects of merging source code. Some of the points he makes underpin my choice of revision control system.For several years now I've been a very contented user of Bazaar, in its first arch-based incarnation, and now in its latter form. The key reason has been ease of merging.While most articles praising Bazaar are reports of open source development, I've also found it very handy for small in-house teams working on web applications.There are very often multiple arcs of development going on at once, and the ease of merging makes it easy to ensure that long-running development arcs don't get ridiculously far from the main trunk of development. Bazaar's merging also makes it easier for lead developers to police the merging of the code base.Using Bazaar with Rails and other toolsWorking mostly with Rails, one repeatedly runs up against the assumption that Subversion is the golden path for revision control. This is perhaps a little telling about the level of participation most Rails-based projects have reached.The tools story for a Bazaar user is both good and bad.The goodThe bad

17 June 2007

Romain Francoise: A .dsc/.changes aware scp

Every time I make a new emacs-snapshot release I have to copy the source package from my amd64 desktop to my i386 laptop to build it, then copy the built packages back in order to upload them. This scp'ing gets tiring after a while, so I wrote a trivial script called dscp which acts as a Debian-aware wrapper around scp, using python-deb822. It's similar in spirit to Myon's dget script, which does pretty much the same thing with wget.

Note that unlike scp it can only copy files to other machines, and currently does no command-line parsing at all, so you cannot pass options to scp (other than the user@host:/bla part, of course).

Also note that if the destination is local it will serve as a .dsc/.changes aware cp, which is also handy in some situations.

If there's interest I could probably add some sanity checks and propose it for inclusion into devscripts.

12 June 2007

Biella Coleman: Housebreaking Your Health Insurance

Are you having trouble with your health insurance? Are they stalling on paying a bill? Denying a claim? Not telling you what the heck is going on?? Well you can and should take action to eliminate some of the mystery and move forward, and possibly win fight against the health insurance company. Thanks to my unpleasant ordeals with BCBS of NJ, I have compiled some handy resources and tips to get you started. Good luck and I welcome any other tips that you think should be here. Please email them to me at biella(at)gmail(dot)com Can’t get a straight answer when dealing with health insurance representatives on the phone? Are different representatives providing different and contradictory information? Does talking to the representatives leave you with a pounding headache? Then the following may be helpful: 1. Ideally you should tape record all conversations. If this is not possible, get the name or employee number of the person you are talking to and write down what they told you along with the time and date. If they have agreed to something, make sure they send it to you in writing. This sort of documentation may come in handy later when you are trying to contest or prove something. Is your insurance company flip flopping on a claim? For example telling you that the claim is still being “reviewed” but sending you statements that indicate it has not been paid and never will be? What action can you take to inch things forward? The following may help: 1. Most states have a Department of Banking and Insurance and they are there to help you. Many (perhaps all) provide a service for filing a complaint against your health insurance company and other insurance and banking companies too. When I used the service in NJ , I got assigned an investigator and their service was prompt and helpful. It was my experience that even though they were not able to resolve my issue, the insurance company started to make firm decision on many claims and this alone has been helpful. Before this, it was impossible to get a clear answer from them as to the state of all sorts of claims. They said “NO,” & you think they should say “YES, YES, YES, YES!!!!” In other words, appealing a denial: 1. This site has some great information on how to avoid a denial and what you can do to fight one. 2. Included on their site is the Health Insurance Laws and Benefits Tool which will provide specific information about your rights in different states. For example, you will want to know if there is an external or independent grievance system to appeal your plan’s decisions. In the case of NJ, which is the state I am fighting, the tool provided the following helpful information:
Does New Jersey require an external or independent grievance system to appeal your health plan’s unfavorable decisions? Yes, for all health plans.

On what grounds can you file your external grievance?
Investigational treatment appeal, medical necessity. What is the status of the external grievance panel’s decision?
Binding. External grievance systems allow you to take a dispute with your health plan to a doctor or review board unaffiliated with your health plan. Thus, both you and your health plan receive an impartial ruling on its decision to deny coverage of services or treatment. Additionally, you can file a complaint against your health insurer with your state’s department of insurance.
Additional Helpful Information and Resources 1. The message boards on lawyers.com are a great place to hit for information. I have found folks there helpful.
2. You many want to blog about your experience as you may get an unexpected response directly from your insurance company. I think there are pro’s and cons to blogging about your experience but it does provide a public face to your ordeal and allows you to chronicle exactly what has transpired.
3. If your cases is particularly shocking, do not hesitate to hit the local media.
4. If your claim has been denied by an external review panel, you may not have much luck suing but if there is no external review panel, you can and should also try Small Claims Court or other legal action. Further, even if your claim was denied by an external review board, you may have other options for suing, for example, due to their bad faith handling of a claim. And on that note, here is a great legal resource covering the topic.

11 June 2007

MJ Ray: Aside: Redway Pictures and Signs

Mark Brown wrote:
"My major problem with the redways when I tried to use them was that they had very bad signage so it was often hard to figure out where you are and where you were going. The last time I walked any distance in MK I actually ended up walking along the side of the road mostly (there are very wide verges where there's no footpath) since that way I could at least tell where I was."
Well, when I was there, the signs were very good. They had a standard white-on-blue format, with major destinations in capitals and cross-city route identifiers. Sadly, it seemed lots of them could be spun around on their round posts and they went missing an awful lot. Once, I even saw a route sign being used as a washing line prop somewhere near Linford! (I'm not sure where - I was lost because so many signs had been nicked!) I think the Redways could teach us three lessons about signs: how to design a clear route sign, how not to secure the signs and always carry a route map! Michael Greb commented:
"I want pictures! I went to the Milton Keynes cycling page but all they have are some tiny thumbnails. I want to see some pictures of the various types of junctions and what not. ;) This is the first I've heard of such a system and it sounds just dreamy. I understand of course your contention that it isn't ideal but surely it beats the nothingness that we have hear in my medium sized American town."
I'm not sure. The few North American cities that I've visted had far wider roads than is typical in England (even in Milton Keynes) and the Franklin papers suggest that having no cycle tracks would be better than these cycle tracks. I suspect wide roads with cycle-friendly junctions would be the best, with some car-free cycle tracks as extras. I don't have any pictures handy and PedNet's article doesn't have very big pictures either. Next time I'm visiting MK, I'll see if I can take an hour out with my camera. Or has another kind reader got a good picture collection?

Russell Coker: Prius vs small non-hybrid car

In response to my comment and post about the cost of driving to work there was a comment on the blog post I responded to suggesting that a small car is better value for money than a hybrid car. The claim was made regarding a Nissan Pulsar, but to investigate this I decided to compare the Prius with the Corolla Hatchback, as far as I can tell the Corolla Hatchback is the nearest non-hybrid car to the Prius that Toyota sells (being similar in size, weight, and performance). Comparing cars of different make adds extra variables into the equation. Unfortunately the Toyota web site fails to provide specifications for the Prius and only provides a PDF file with minimal information on the Corolla, but it is enough for some minimal calculations. A car company run by intelligent people would publish the specs on all their vehicles and provide a search form to compare selected models. The Standard Performance Evaluation Corporation has a good search method that allows easy comparison and ranking of items in their database (here is an example). It would be good if Toyota would permit us to compare models in their car range in a similar manner. According to the Toyota web site the Prius uses 4.4L/100Km when driving in the city and the manual transmission version of the Corolla Hatchback uses 7.4L/100Km (7.7 for the auto). For the average 16,000Km that an average Prius owner drives that would save 480L of petrol which would save about $700 at current petrol prices. The Corolla Ascent Hatchback (the cheapest of all Corollas) is $21,000 while the cheapest Prius is $37,400. If you compare the Prius with the cheapest Corolla then it’s a $16,400 price difference. If you save $700 per annum then it won’t cover the interest on a $16,400 loan or match the interest rates earned by a bank term-deposit if the $16,400 was invested. So it seems apparent that at current petrol prices (NB petrol prices are expected to increase) and with average Prius driving patterns a Prius will not be more economical than a cheap Corolla. Currently the Commonwealth Bank of Australia offers 6.05% interest on term deposits of between $10,000 and $25,000. This means that $700 per annum would be the interest on a term deposit of $11,500. If we compare the Corolla Ultima Sedan at $32,000 with the Prius at $37,400 the difference in price is less than $11,500 - but the cars have incomparable sets of luxury and safety features. The Prius i-tech appears to have a super-set of the luxury and safety features of the Corolla Ultima Sedan but at $46,900 is again going to cost more for the average Prius driver. The Prius is a very quiet car to drive, there is almost no engine noise (when driving at speeds where the Petrol engine is operating there is usually more noise from other vehicles) and no gear changes (handy if passengers are consuming hot or sticky drinks). It has a good set of safety and luxury features and is also a prestige car (no-one will say “oh wow, you’ve got a Corolla”). If you assign a dollar value to these features then a Prius may be the most economical car that meets your requirements! Finally, let’s keep in mind the fact that petrol prices are steadily increasing. If you save $700 by driving a Prius this year then you may save $1000 next year. There is also the option of converting a Prius to a plug-in hybrid which will be a useful option if petrol prices hit $10/L! Also the amount of money saved will depend on the use of the car. If you are running a courier or taxi business then a Prius will probably be a lot more economical than a Corolla due to the greater distances travelled and the travel in the slow city traffic that the Prius was designed for. PS All prices are in Australian dollars and concern products on offer in Australia, I would like to see comments from other people who perform the same calculations for their countries.

9 June 2007

Matthew Palmer: Good DNS Hygiene

How sure are you that the DNS infrastructure for your domains is in good health? Are they all properly delegated to the right place, with correct NS records and glue? Are all of the domains that you rely on to get your names resolved properly configured themselves? Although everyone out there is probably saying "pfft, of course!", don't be so sure. Before you assume the best, try running one or two of your domains through Squishywishywoo's DNS checker, which does a recursive query for the given record from the root servers all the way down, giving you complete information on what's being checked and what the results are. From that report, you can easily work out what's wrong with your DNS lookups, and correct the problem at it's source. It's also handy for seeing exactly how a DNS lookup works (and explaining to random nitwits how DNS queries actually work). It's actually interesting to run a few domains (run by people who should know better) through the checker and see what actually happens. There's a surprisingly large amount of breakage in people's DNS setups. So the next time you find someone's website is slow to load, perhaps run their FQDN through this DNS checker and see if it's their server or their DNS lookups that is slowing things down.

6 June 2007

Simon Richter: The Internet is really, really great...

Quite often I wonder whether not having Internet access would make me work more effectively. So I tried it out, resisting the urge to go on IRC, not reading email during a compile run, just focusing on the task at hand. Surely enough, after 10 minutes, I needed a piece of documentation I didn't have handy, and the whole project failed. This is probably the single advantage an IDE has over the "traditional" model: an integrated browser that only shows documentation and does not play flash games. Documentation is distracting enough as it is.

5 June 2007

Martin-&#201;ric Racine: Buzzword opportunism won't do

Being involved in no less than four different projects, all with excellent prospects for a permanent job, reminds me of why riding the Free Software bandwagon as yet another opportunistic buzzword won't do: In three of the projects, people insist upon communicating using the closed source VoIP application Skype. There indeed is a crude port for Linux on i386 (though not for amd64, powerpc, or any other architecture), but the dependencies are broken and my friends at Skype emphasize that Linux is a non-market for them, so I should not expect any solution any time soon. Still, the people behind some of these projects regularly threaten that I'm wasting their time by "refusing" to install Skype on my computer. Free Software promoters who don't understand what "non-free" means. In two of the projects, the corporate homepage is made as a single Flash animation. Mentioning that Flash support is extremely broken and thus essentially non-existent on Free Software platforms is pointless: the people behind the project are Windows users and yet they insist that their project is about promoting the free circulation of ideas using Free Software. Free Software promoters who don't understand interoperability. In one particular project, the product follows the Googlesque model of "the Web as my application and file server". Great idea, except that ― once again ― the people behind the project are Windows users and they insist that the Thin Client hardware must have a standard set of applications pre-installed and some storage media, thus defeating the purpose of this business model. Promoters of "the Web as my application and file server" model who don't understand the implications of a Thin Client solution. In all cases, the people behind the project mean well, but ― not being Free Software users themselves ― they clearly don't understand the profound implications of the Free Software agenda; they only see it as a license-free technology to connect the masses for cheap and they evidently find it difficult to think outside the Windows PC framework. Free Software as a business model, in a nutshell: data interoperability and the client-server model. Either get it or you're wasting my time ...and yours too. Nothing personal; just business. PS: I sincerely hope that anybody who recognizes themselves in the above rant will acknowledge my honest concerns and embrace this opportunity to truly adopt Free Software. Just do it! It doesn't matter where you get the FOSS. Just make sure that the FOSS gets you! (inspired by a great Candy Dulfer song currently blasting through the headphones).

4 June 2007

David Welton: Rails Distributions

A random idea: rails distributions that include what "should be included in the core". I'm not the first to think of it (google finds several others), but I have been mulling it over lately, and I think it's a good idea. Nothing too fancy, simply a tarball or gem that includes rails + the stuff that you end up installing every time you set up a real web site with rails. Of course, "what to include" is the big question, so the best thing would be for lots of people to try, and see what sticks. Here's what I always end up installing: Acts as Authenticated Exception Notifier And I recently found another one that seems to be pretty small, and very handy: Condition Builder because I usually always end up having to build up complex queries with dynamic components with any sort of more advanced search, and this makes it much easier, and more fun. However, I'm sure more advanced Rails users can add to that list. The trick is to nail those things that you pretty much always end up installing sooner or later as your project grows in complexity. Perhaps at that point a gem could be created that installs them...

1 June 2007

Edd Dumbill: Launching Expectnation

I'm very pleased to announce the launch of Expectnation, a web application for managing conferences. Expectnation logo What does it do? Expectnation is intended to replace the ad-hoc collection of emails, spreadsheets, documents and hacks that hold together the organization of most conferences. The aim is to improve the quality and reliability of communication between the organizers, speakers and attendees. But it doesn't stop there. What I'm really excited about is the chance to enhance the conference experience through the web. Expectnation is capable of managing the complete web site for a conference, which provides many opportunities for bringing the best of the social software world to augment events. Our tagline is "build your conference into a community", which underpins a key aim: to help organizers make events more relevant and useful to attendees, and to live on beyond the event itself. We do this in two ways: saving time, so you can spend it on improving your conference, and providing online tools to support community building.
Right now Expectnation is able to manage the proposal, review, scheduling and publication of presentations, along with the conference web site and smart emailing to speakers, reviewers and chairs. Over the next two months we'll be introducing our registration module, with optional online payments, and working on extending the social software features available for attendees. Take a look  I'm really excited about letting users get started with Expectnation, and seeing the uses it gets put to. We believe Expectnation will be just as handy for organizing events inside an organization as for traditional conferences. So, if you organize, speak at, or attend conferences of any sort, please check out Expectnation and recommend it to a conference organizer near you!Related links

30 May 2007

David Welton: Missing rails feature: cache everything but this

It's pretty common to have a front page that has content that is very cacheable, except for a little section with something like "signup" or "my page", depending on whether the user is logged in or not. It would be very nice to have a handy solution in rails for this problem, which seems to be a fairly common question. Here's my stab at an answer: cache everything but... However, I'm not entirely happy with it because of the very hacky approach taken to make the render_as_string work - I have to fiddle with an instance variable in the controller:
controller.instance_variable_set '@performed_render', false
Not good. In the thread linked to above, Paul Gustav posts a link about a system for having two different cached pages, but that's not entirely satisfying either, because it gets you from 1 version to 2 versions, but going beyond doesn't look real appetizing. It would be a very nice problem to solve once and for all with a clean solution.

22 May 2007

Eddy Petri&#537;or: gettext: lesson 2

The first lesson was about wrong assumptions that people do when it comes to i18n. This article is mostly targeted at developers which want to support i18n properly, in particular, plural forms.

This is my second n?getetxt lesson.
This is about making your update-po target to include all the strings you want localized in the pot file.

Probably, at some point you, as a developer have written something like:

print("You won %d point%s", points, points>1?"s":"" ) ;


Well, is nice and dandy that you want to make the proper choice of words when you have more than one point. I appreciate that, but you are doing it wrong. There is a tool for that, as I explained before.

Now, lesson 2.

You have understood what you have to do, but you just hate typing ngettext/gettext all over the place, so you probably defined something like:

#define _(X) gettext(X)
#define _n(sg,pl,n) getext(sg,pl,num)

So now you can write trhis piece of code:

print(_n("You won %d point", "You won %d points", points), points ) ;

The problem: how to convince xgettext to add those strings to the pot file?

Nothing simpler... just add _n as an additional keyword when invoking xgettext... but you have to specify that this is a definition for ngetetxt, so, you will end up having in your update-po target something like this:

xgettext ../src/*.c --keyword=_ --keyword=_n:1,2


TADA!

Next.

Previous.