Tuesday, July 7, 2009

Windows installer tip: passwords

Updated below!

When specifying a password for the Windows PostgreSQL one-click installer, you get this message:

Please provide a password for the database superuser and service account (postgres). If the service account already exists in Windows, you must enter the current password for the account. If the account does not exist, it will be created when you click 'Next'.

If you have already installed Postgres as a service, you will need to enter the current user postgres service user password to get past the password dialog box. Meaning, if you're logged in to Windows as 'selena', you need to enter selena's password. As a non-Windows user, this baffled me, and a few other people on this thread.

Otherwise, you can just enter a password that will be used for the 'postgres' database user. Hope this helps someone!

Update:

Further explanation from Dave Page, the maintainer of the windows package:

Selena: It's not the password for the user that you are logged in as that you need to enter, it's the password for the service account (ie. postgres).

Unlike *nix & Mac, service accounts on Windows need to have passwords so unfortunately we need to ensure we have the correct password to install the service. Hence, if there's an existing postgres account, we need the existing password, otherwise the account will be created with whatever password you specify.

In all OSs, we use the password entered on that page as the database superuser password.

Sunday, July 5, 2009

In Nigeria: Weekend exploring

Yesterday, I traveled to a Michelin (yes, the tire company!) plantation for a party thrown in honor of the new Secretary to the Ondo State Government, Dr. Aderotimi Adelola.

Michelin grows rubber trees on this sprawling estate. It took nearly 20 minutes to get from the highway to the primary school deep inside the plantation where the celebration was held. Tapped rubber trees pictured below!

I was invited to a table inside the Governor's main tent, and spent most of the time just looking around at all the government officials, and chatting with the Chairman of SITEDEC, Cyril Egunlayi.

The high point of the afternoon was Dr. Olusegun Mimiko's speech welcoming Dr. Adelola to the government. He's a charismatic speaker. The people around the perimeter pressed closer, and were attentively silent for his 10 or 15 minute speech. He emphasized education -- his hometown's slogan is "Home of Education". He also said that despite Ondo State's history of leading Nigeria in educational opportunities, the state had regressed and needed to catch up again. Mimiko speaking:

The car ride out and back to the plantation took about two hours each way. I spent much of that time talking about open source options for various IT infrastructure, where something like Google Apps might fit in for them, and passed on information I'd I'd gotten about microwave links from a Portland WiMax provider, Stephouse Wireless. I also told Cyril about feedback regarding a replacement for Exchange. My followers on Twitter universally recommended Zimbra, and that was confirmed by at least one End Point coworker, Adam Volrath.

We also stopped by the office on our way home to check in on a new wireless repeater the engineers were installing on the tower they have out behind the SITEDEC center. We still have a few details to work out for the class arrangements.

In the evening, I enjoyed some Nigerian barbecue with Deji Agbebi. Originally from Lagos, he worked for a Canadian firm in the early 90s who's goal was to provide clean drinking water to villages in Ondo state. For various reasons, including a military coup, that business failed. Now Deji works in the US. He's a friend of Cyril's, and is here in Akure, hoping to help with the work the government is trying to complete before January.

Friday, July 3, 2009

Nigeria PostgreSQL Training: Day 1

I am in Lagos, Nigeria this morning, preparing for a half-day car ride to Akure in Ondo State. I'll be spending the next seven days with programmers from Ondo state, who are six months or so away from deploying a system to provide government-provided services using a centralized card system. They are designing their database using PostgreSQL!

Ondo state has a little over 3 million people, and plans to integrate a half-dozen government services under the centralized data system. They conducted a census in 2006, and will be using their new system to gather data yearly going forward.

Their plan is extremely ambitious, given obstacles like lack of power in most of the rural areas, and social issues like people not wanting to give accurate information about themselves to the government. Some biometric information, like finger prints, will be gathered electronically using special machines that they will primarily lease (instead of buying - significant cost savings), and these machines require power. They have been specially outfitted with dry-cell batteries, that operate for about 8 hours before needing to be recharged.

For the social problems around data collection, a marketing campaign to explain exactly what benefits those who provide accurate information are entitled to. After I mentioned to my host the American aversion to centralized government identification cards, he explained that in Nigeria they had the same issue. In addition to the marketing on TV, radio, newspapers and even leaflets, data collection volunteers will be trained on exactly how to collect accurate information. I am looking forward to having a look at the surveys and data collection strategy.

Otherwise, I've had a lot of fun talking with people. My car trip from the airport and remaining evening was mostly spent with me making funny vocabulary errors (tshirt == vest - who knew?), and explaining that Americans were mourning and in shock just like Nigerians because of Michael Jackson's death. I made an offhand comment about the number of people walking around outside at dusk because a friend had said a similar thing about Portland, OR's nightlife, and my escort commented on how peaceful and free people are in Lagos.

Wednesday, June 24, 2009

Open Source Bridge: the aftermath

I've been planning the Open Source Bridge conference in my spare time over the past 9 months here in Portland, OR. We finally made it happen June 17-19, 2009 at the Oregon Convention Center. I had the pleasure of co-chairing the event with Audrey Eschright, and was extremely happy that End Point decided to also sponsor the event.

The conference was organized around the idea of "open source citizenship", and what things we as individual contributors, companies and users of free and open source software do to participate. We came together to share how we do things, what we've already done, and what we might be doing in the future.

The conference held 76 sessions, from over 100 speakers and panelists and 475 total participants over three days. There were 8 rooms full of talks for about 9 hours every day. We had a 24-hour hacker lounge at the conference hotel, and it was packed every evening -- including our closing night, when we wrapped right at midnight.

Above, are my slides for the opening remarks, and there's even a video of the opening session, the keynotes and all the sessions that happened in the Fremont room will be available at osbridge.blip.tv.

Some really great reviews of the conference are coming through. If you'd like to relive it in text through a few other people, have a look at these writeups below. Forgive me for quoting the exuberant titles. I am so pleased that people had a great experience at the conference.

We're definitely holding the conference again next year in June!

LinuxTag 2009 day 1

Today was the first day of LinuxTag 2009. Representing the Interchange project are Stefan Hornburg of LinuXia Systems in Germany, Davor Ocelić of Spinlock Solutions in Croatia, and I, Jon Jensen, of End Point in the U.S.

Tuesday afternoon we set up the booth (here still underway):

That was a fairly quiet affair since many exhibitors showed up later that afternoon or early Wednesday morning. But it was nice to get it all done early. The setup involves the network and power wiring behind the scenes, hanging the signs, unloading the marketing materials, and getting all the equipment tested (and then put away again for the night). At night back in our apartment we made some updates to the slide presentation to include many more examples of some of the busy and interesting sites we have current data on that appear in the Interchange Hall of Fame.

We're sharing a booth with the YaCy distributed search project, and have had a few good discussions with their people.

Booth traffic was probably about the same this year as it was the first day last year -- a little slow. We talked with several people who were interested in hosted e-commerce solutions such as Interchange is.

In two cases, very interested visitors were not at all clear about how the open source partnership between project, individuals, and businesses works, and we were able to explain it. (Hopefully clearly enough that it still made sense after we were done talking!)

Specifically, one visitor represents a hosting company that wanted to pay to include Interchange in their hosting offerings. We are of course happy to take his money but have no set price to offer because, as he later succinctly put it, "Sie leben von Ihren Dienstleistungen." That is, "You live from your [custom] services." Exactly.

We explained the service model, his ability to download the software for free not just to evaluate, but to permanently use and resell as a hosted service to others. At the end it was clear it would've been simpler for him to hear it costs something like €500 or €5000 per year to be part of our hosting partner program. Yet that wouldn't have answered the question of what support we provide, how his programmers can contribute back to the Interchange community as they customize the software, etc. So the elaboration is necessary. And we explained that each of us three Interchange developers represents our three different consulting companies, and that's who you actually do business with, not "Interchange" per se.

The other visitor who didn't have a background with open source software wanted something similar, a fixed price to be allowed to deploy the software and customize it for his own consulting customers. A similar discussion was had. The bottom line is, the software's free, but work you hire us to do specifically for you is not. That's not too complicated once you get used to it!

In between talking with visitors, we talked about some work Stefan's been doing on the WellWell catalog, the need for new experimental Interchange branches which is much easier now with our new Git repository, and some custom work that's been done before that needs to be genericized and committed to mainline Interchange. We also dropped in on the Freenode #interchange IRC channel and worked a bit with Gert van der Spoel, René Hertell, David Christensen, and others.

Otherwise, I had time to attend one talk, Die Mathematik hinter RAID, by Michael Schwartzkopff. He worked through the math to show the probability of various kinds of failures when using RAID 1 and RAID 5, discussed RAID 6 and Sun's ZFS RAID-Z2. It was quite interesting and a good reminder that as hard disk capacity grows, what once seemed like incredibly small chances of failure (a one-bit read error, or a failure of a disk's mechanism) become both more likely and more catastrophic when they do occur.

So we're off to a good start, with three more days to go.

nofollow in PageRank Sculpting

Last week the SEO world reacted to Matt Cutts' article about the use of nofollow in PageRank sculpting.

Google uses the PageRank algorithm to calculate popularity of pages in the web. Popularity is only one factor in determining which pages are returned in search results (relevance to search terms is the other major factor). Other major search engines use similar popularity algorithms. Without describing the algorithm in detail, the important takeaways are:
a) PageRank of a single page is influenced by all inbound (external links) links
b) PageRank of a single page is passed on to all outgoing links after being normalized and divided by the total number of outgoing links

So, given page C with an inbound links from page A and B, where page A and B have equal page rank X, page A has 3 total external links and B has 5 total external links, page C receives more PageRank from page A than page B.

From an external link perspective, it's great to get as many links as possible from a variety of sources that rank high and have a low number of external links. From an internal site perspective, it's important to examine how PageRank is passed throughout a site to apply the best site architecture. In addition to designing a site architecture that pleases users and passes link juice throughout a site effectively, the rel="nofollow" tag was adopted by several major search engines and was used as an additional tool to stop the flow of link juice from one page to another. The nofollow tag can also be used to identify paid links (early implementation) or to avoid passing links to external sites completely.

In the example above, rel="nofollow" could be added to 2 links on page B which would result in the same PageRank passed from page B to page C as from page A to page C.

Then, at a recent SEO conference, Matt Cutts (head of the Google spam team) made a comment about how the PageRank algorithm changed its use of nofollow and just last week, it was announced that the PageRank algorithm would no longer use the nofollow attribute in PageRank sculpting. Any link with the nofollow attribute will no longer reduce the count of outgoing page links to improve link juice passed on to other pages, but link juice will still not be passed from one link to another with the nofollow attribute.

In the ongoing example, the link juice passed from page B to page C will be less than from page A to C because it has more outgoing links, even if they are nofollow links.

One SEOMoz article I read suggests that SEO best practices will now be to recommend blog owners to disallow comments that may contain external links to prevent the dilution of link juice. Other potential solutions would be to filter out links from user generated content (comments or qna specifically), use iframes to display any user generated content, or embed flash or java with external links. The nofollow attribute may be used to stop the flow of link juice to external pages, however, it may no longer be used for internal PageRank sculpting.

Tuesday, June 23, 2009

Getting Started with Demand Attach

As OpenAFS moves towards a 1.6 release that has Demand Attach Fileservers (DAFS), there is a need to thoroughly test Demand Attach. Getting started can be tricky, so this article highlights the important steps to configuring a Demand Attach fileserver.

OpenAFS CVS HEAD does not come with Demand Attach enabled by default, so you'll need to build your own binaries. You should consult the official documentation, but the major requirement is to pass the --enable-demand-attach-fs option to configure. You should also note that DAFS is only supported on namei fileservers, not inode.

Once you've built and installed the binaries, you need to be careful to remove your existing fileserver's bos configuration (i.e., fs) and put a dafs one in place; e.g.,

$ bos stop localhost fs -localauth
$ bos delete localhost fs -localauth

Once the fs bnode is deleted, you need to install the new binaries and create the dafs entry. You should pass your normal command line arguments to the fileserver and volserver processes:

$ bos create localhost dafs dafs "/usr/afs/bin/fileserver -my-usual-options" \
    /usr/afs/bin/volserver \
    /usr/afs/bin/salvageserver /usr/afs/bin/salvager

Once the entry is created, the bosserver will automatically bring up the processes, so you should check the logfiles to make sure everything is ok. Note that a vos listvol will show volumes as online, even if they are only pre-attached (pre-attached means that the fileserver was able to read the volume header, but has not yet brought the volume fully online). You can watch the FileLog to see when the fileserver requests a salvage be done.

After initial configure, build, and bos configuration, your Demand Attach fileserver is not significantly different from your normal fileserver. You create, move, back up, restore, and move volumes just as with a traditional fileserver.

For more details about DAFS, take a look at the OpenAFS wiki entry. Be sure to give feedback to the mailing list.