Motorcycle Adventures and Free Software

Weblog: Archive

2005-03-01 - 2005-03-31

Business according to OpenPSA

Posted on 2005-03-01 21:49:00 UTC to . 0 comments.

  1. Design your product or service. This is the single most important step for business success. You should be clear enough about what you offer to be able to explain it in couple of sentences.
  2. Select the target market. Then either manually or by buying from some marketing firm acquire a list of companies and their contact persons. Import this to OpenPSA Contacts.
  3. Create a campaign from your contacts in OpenPSA and approach them either by phone, email and regular mail. Usually a combination of these works. If your offering is a relevant one expect about 3-8% response rate.
  4. Start sales projects in OpenPSA Sales for the companies that show interest and start arranging meetings. Handle all contacts and documents related to the process in OpenPSA and monitor how your sales are doing by checking out the pipeline report.
  5. Once you get contracts add the delivery tasks to OpenPSA Projects together with the pricing information. Track the projects by scheduling them to the Calendar and then reporting hours, expenses and mileages into OpenPSA. You can also store the project documentation in OpenPSA Documents.
  6. Invoice your work based on the information in OpenPSA Reports. You can also design your custom invoice templates there. Track the payments either manually or using some financial software package.
  7. Make support or maintenance contracts with the clients and handle their questions and problems using OpenPSA Support. Keep track of response times and customer satisfaction by setting SLAs and monitoring the Support reports.
  8. Profit!

This has originally been written as an insert for a PHP Magazine article. Powered by a Dominican El Credito cigar and some Velkopopovicky Kozel in Pullman Bar.

Sponsored links

save money using, phone card

Markdown support for Midgard

Posted on 2005-03-02 20:14:25 UTC to . 0 comments.

Midgard CMS has now support for the Markdown text-to-HTML conversion tool. Markdown is an useful tool for writers that allows creation of web content with a simple text syntax.

Markdown is available in MidCOM's CVS repository as datatype_markdown. The tool utilizes Michel Fortin's PHP Markdown parser.

To use Markdown for a content field in your MidCOM site, edit the datamanager schema and set the field to use the markdown datatype. For example:

"content" => array (
"description" => "Content",
"datatype" => "markdown",
"location" => "content",
),

My blog is still powered by htmlArea, but I'm planning to start migrating new entries to Markdown as soon as I upgrade the blog's version of MidCOM. I'll blog about that later.

Updated 2005-03-03: The blog is now using Markdown as the default editing system for new blogs. As I didn't want to modify existing blog posts, I made two copies of the schema, and named them "default" and "html". Then I ran the following query through my blog entries:

$blog_topic = mgd_get_topic_by_name($GLOBALS["midcom_site"]["root_topic"]->id,"blog");
$blogs = mgd_list_topic_articles($blog_topic->id);
if ($blogs) {
while ($blogs->fetch()) {
$blogs->parameter("midcom.helper.datamanager","layout","html");
}
}

This ensured that the old posts will be using the "html" schema, freeing the "default" schema to be used with Markdown. Now when I post through Metaweblog API (using Marsedit), the post formatting will be Markdown, and when I create posts through the web I can choose between Markdown and HTML:


Sweet! Kaukola also posted some notes on Markdown usage to Nemein's IT policy.


End of European Democracy?

Posted on 2005-03-07 19:41:10 UTC to . 0 comments.

Against the decision of European Parliament, the EU Council has approved the software patent directive against its own rules.

This was a clear example of how big business lobbies can thwart the democratic process, in this case threatening local IT innovation and opening the door to ridiculous US-style intellectual property lawsuits.

This is a sad day for the European economic sphere, the IT industry, and the Open Source movement. Lessig comments:

This struggle continues to astonish me. There's no good economic evidence that software patents do more good than harm. That's the reason the US should reconsider its software patent policy.

But why Europe would voluntarily adopt a policy that will only burden its software developers and only benefit US interests is beyond me.

But maybe there would still be time to do something about this?

banana-union.jpg

Flight to Turku, and later to Nummijärvi

Posted on 2005-03-11 20:59:16 UTC to . 0 comments.

We visited the city of Turku in west Finland yesterday with the OH-PRT Piper Lance aircraft flown by Ilkka Koho from MIK. The weather was perfect for aviation, and the snowy Finnish countryside looked beautiful.

OH-PRT on Turku airport apron

Here's our home from the air:

Viiskulma from the air

Tigert has more good pictures.

Touching down to Malmi

Thanks to Ilkka and Tuomas for inviting us!

Nummijärvi Fly-in

On saturday we flew to the Nummijärvi Fly-In meeting with the Alpha-Yankee C172. Very interesting event arranged on a airport built on lake ice, I even got on a short spin in a Morane Rally. Tigert has again a bunch of pictures.

In the other news...

This is my first blog post using the new Midgard support for the Markdown syntax. Really nice and productive! It is even possible to configure MarsEdit to use Markdown for previews.

MidCOM search engine in production

Posted on 2005-03-16 20:47:41 UTC to . 0 comments.

We've today moved the MidCOM search tool into production together with the development release 2.3. Some statistics from Torben:

M-P.org needs 242 MB (Apache+PHP+data) to do a complete reindex, which means that PHP used around 220 MB of memory for this. It didn't bother the indexer much, it stayed at around 20 MB memory load.

During the complete reindex, which ran around 10-15 minutes we indexed 1,583 articles and perhaps one or two hundred attachments.

Not bright, but could have been worse, especially if a reindex should be neccessary very rarely.

Once the initial reindexing has been run all new changes in the Midgard database will be automatically indexed. This means that the search tool will always have fresh results, even if new documents have been added, or old ones have been changed or deleted.

Other advantages from this new search system include the fact that the search results are component-aware, enabling us to display thumbnails for image results etc. The searches are also aware of the Midgard permission system, ensuring that users will get results from all documents they're allowed to see. The possibilities of the Lucene search syntax are also promising.

Searching Midgard site for Seoul

Try out the new tool by searching the Midgard site. It can also be deployed by installing the indexer and setting MidCOM template to use the xmltcp indexer plugin. I've already done this for my site and it seems to work really well.

Great work, Torben!

In the other news, I was interviewed today about flight training for the Finnish youth TV program Buusteri. The show should air on week 14.

MidCOM indexer setup notes

Posted on 2005-03-17 14:47:32 UTC to . 0 comments.

Here are short notes on how I installed the MidCOM indexer for a client. The client has an intranet site running on Midgard 1.6 and MidCOM 2.1.0 on Red Hat Linux 7.3.

Install MidCOM 2.3

Download MidCOM 2.3 and install it:

# cd /usr/local/share/midgard/
# wget http://www.midgard-project.org/midc...1c9/MidCOM-2.3.0.tar.bz2
# tar jxvf MidCOM-2.3.0.tar.bz2
# ln -s /usr/local/share/midgard/MidCOM-2.3.0 /usr/local/share/midgard/midcom

Install the PHP Compat PEAR package:

# pear install PHP_Compat

Upgrade the MidCOM template site installation:

# repligard -a -i MidCOM-2.3.0/midcom-template/midcom-template.xml

Note: if you are using a MultiLang-formatted database you need to install the package via Datagard installer instead.

Install the indexer

Download and install the Java 1.4.2 runtime:

# ./j2re-1_4_2_07-linux-i586-rpm.bin
# rpm -i j2re-1_4_2_07-linux-i586.rpm

Download and install Apache Lucene search engine:

# mkdir /usr/local/share/midgard/indexer
# cd /usr/local/share/midgard/indexer
# wget http://apache.intissite.com/jakarta/lucene/binaries/lucene-1.4.3.jar
# mv lucene-1.4.3.jar lucene.jar

Download and install the MidCOM indexer:

# wget http://www.nathan-syntronics.de/midc...80b/indexer.jar
# wget http://www.nathan-syntronics.de/midc...116/xml-communication-response.dtd
# wget http://www.nathan-syntronics.de/midc...c3c/xml-communication-request.dtd

Deploy the indexer

Start the indexer daemon:

# /usr/java/j2re1.4.2_07/bin/java -jar indexer.jar

Set the site to use the indexer:

  • Point your browser to http://www.example.net/midcom-admin/settings/
  • Log in as administrator
  • Set Which indexer backend to use to xmltcp

Reindex the site:

  • Point your browser to http://www.example.net/midcom-exec-midcom/reindex.php

Note: the current indexer seems to give a big number of iconv() errors if the site is in latin-1 encoding. Switch to UTF-8 instead or wait until bug 201 is resolved.

I needed to also install the mbstring PHP extension for the indexer to work.

Deploy the search engine

Once the site has been reindexed, the only thing needed for setting up the search engine is to create a new topic handled by the midcom.helper.search component.

After that, just run searches and enjoy!

Note: if content is edited outside MidCOM using tools like Aegir, you might want to run the reindexing command from cron periodically to prevent search index corruption. Content edits made in Aegir do not currently update the index.

Clarifying datagard

Posted on 2005-03-18 08:31:17 UTC to . 0 comments.

I helped Tigert to install Midgard yesterday, and the project was quite non-trivial. The main issues were:

  1. "repligard" binary was missing in the repligard debian package (fixed now in 1.6.3-1)

  2. Datagard didn't change the host names of Aegir, Midgard welcome page etc. to the name of the virtualhost we created

  3. MidgardPageCache didn't work at all, causing 404s. This was caused by having both Apache2 and Apache1 Midgard modules installed simultaneously. The DEBs should prevent this from happening

1 and 3 were clearly packaging problems, and 2 was a datagard bug. Having seen Jarkko's Fedora packages, I know the Midgard binaries can be made to work "out of the box". Now we just need to push the DEBs into the same standards.

Besides the host naming bug, the questions in Datagard appeared quite confusing.

Some ideas regarding that:

  • Datagard could start with a "simple mode" where the system would simply set up the database as "midgard" on localhost. Then there would be an option for switching to "expert mode" where different DB hosts and DB names would be possible

  • Datagard could also query whether the user can manage databases without supplying a password. On some distros root can do that with MySQL, and in those cases asking the MySQL root username/password shouldn't be necessary

  • The wording of the different questions in Datagard should be fixed to be more explanatory. Here are two mockups done by Tigert:

Installation mode selection:

[x] Easy installation - your Apache and MySQL run on the same computer and you just want to get things up and running with good default settings. Recommended for most users.

[ ] Custom installation - For people familiar with Midgard. This lets you customize the installation parameters. Also you need to choose this if your database is on a separate server host.

[ Cancel ] [ Continue > ]

Midgard DB host selection:

Midgard Database Host

Midgard needs a MySQL database to work. This can be either on the same server host as Midgard itself, or it could be a separate computer.

If you have both on the same computer, you can just leave the field empty, otherwise enter the hostname or IP address of your MySQL database server.

Database host: [________________________]

[ Cancel ] [ Continue > ]

Another big point would be clarifying the different usernames and passwords used with Midgard. There are three separate:

  1. MySQL root account used for creating the databases
  2. Midgard's MySQL account used by Midgard-Apache and Repligard when connecting to the database
  3. Midgard's administrator account used for logging into Aegir and SpiderAdmin

Both better wording and some automation could help with all of these three. Datagard can probe whether MySQL root password is needed, the Midgard MySQL account can default to "midgard" and a generated password, and the administrator account is by default admin/password.

I know Jarkko has been reordering datagard lately, so we could possibly fit these improvements into that work?

Going to NTC

Posted on 2005-03-22 23:51:17 UTC to . 0 comments.

I'm traveling to the Nonprofit Technology Conference in Chicago, USA tomorrow to present Midgard CMS in the Open Source Content Management "SpeedGeeking" session.

Looking forward to meeting fellow Summer Sourcers and other interesting NGO people in the event...

First day of Nonprofit Technology Conference

Posted on 2005-03-24 16:51:19 UTC to . 0 comments.

The first day of Nonprofit Technology Conference 2005 started with a breakfast session where Mena Trott of Six Apart was telling about community building with blogging tools. Her examples included Save Karyn and the Star Wars Kid raising money through popularity in the weblog world.

Jacob asking a question

The main idea with weblogs is to capture the personal voice of the author, and to make publishing that as easy as possible. Most blogging tools are either inexpensive or Open Source, and allow easy publication of media rich content. Another important point is that all blogs share some common user interface elements like archives, RSS feeds, comments and posts arranged by date. This makes it easier for readers to use and follow the site. The presentation ended with a demo how Ryan Jacobs from Ungana-Afrika (yes, a familiar organization) created a blog for himself in couple minutes.

The TypePad blog creation UI is quite similar in concept to the Midgard Site Wizard:

  • You create an user account (in Midgard, an organization)
  • You give a name to the website
  • You select a layout from set of templates provided
  • You select whether the blog is public or password protected

...and that's it, then you're online and ready to publish. Now the challenge for the Midgard Community is to ensure that this all happens out-of-the-box with the upcoming 1.7 release.

Another interesting point regarding blogging would be the usage of moblogs to report the field work of NGOs. For example, my roommate Jacob Patton from Free The Slaves saw this as an interesting opportunity for reporting in real time how freed slaves and human trafficking victims are being rehabilitated.

Data security

The next session of the day was Data Security in High Risk Organizations held by fellow Midgardian, Robert Guerra from Privaterra and Matt Kestian from Microsoft. An important point made in the presentation is that security is not only computer security, but also physical security.

Robert's presentation

Defense in Depth is the concept of building several layers of security. For example, one layer is the perimeter of an internal network, then comes the security of actual applications, and then things like backups and disaster security. However, data security is still just one layer. For example, one network security company I've visited had a very strongly firewalled working environment where online access would've been difficult. However, backup tapes containing all the confidential data were just lying on shelves in corridor near the office lobby. It would've been childishly easy to walk in, grab a tape, and then examine it in good time.

It is important to know what devices and services run in the network of a company, and to periodically check that they're present, working and not tampered with. It is also important to scan the network to see that nothing unknown has popped in there. The question to ask about each asset is "Is this a device I can trust?"

All devices should be examined to ensure they have all required protection like automated security patches, antivirus software, host-based firewalls and that they run only services that are really needed. It is also a good idea to keep in mind that it is usually possible to switch insecure or troublesome applications to more secure ones, like switching from Internet Explorer to Firefox.

Email communications can be secured easily by running the email protocols encrypted by SSL. Most email applications support encryption in their preferences. While this secures the communication between the email application and the server from password sniffers, it doesn't actually protect email transmitted between organizations. Solution to that is to encrypt the actual emails using tools like S/MIME or GPG. For human rights groups there is also a special-purpose email-like bulletin system named Martus.

After lunch

After lunch I helped Robert to set up SSL encryption for his Midgard sites running on Ubuntu. I also briefly met Ben Ramsey who criticized us of making Midgard too hard to install.

In the evening we went to a dinner with some people from EngenderHealth to discuss possibilities of using OpenPSA for project portfolio management in NGOs. Apparently this would require a higher-level tracking of targets and initiatives in a Balanced Scorecard-like fashion. However, as my fortune cookie reminded, "Too much confidence has deceived many a one."

After the lunch the evening ended in the Microsoft party in House of Blues. A night walk through the center of Chicago showed the old skyscrapers very beautifully.

Second day of Nonprofit Technology Conference

Posted on 2005-03-25 21:36:36 UTC to . 0 comments.

The friday started with Esther Dyson's breakfast talk about the importance of Internet for philanthropy and human interaction. After that we had the Online Publishing and Content Management with Open Source Software session chaired by Ryan Ozimek. Ryan and Usha Venkatachallam of Beaconfire opened the talk by introducing the audience to Open Source Content Management in general and then we had the SpeedGeeking introductions of the different CMSs present.

Usha's CMS presentation

What is the Matrix?

What surprised me was that Usha and Ryan recommended the OpenSourceCMS.com service as a definitive resource on Open Source Content Management. In reality that service showcases only a very narrow selection of CMS tools, all of which are low-end PHP and MySQL systems. The service also more or less feels like just an advertisement for OpenSourceHost, the company hosting some of those systems.

It should always be remembered that Open Source CMS is much more than just the lightweight tools like PostNuke and Drupal. A service like OpenSourceCMS.com misses all of the major systems like Zope, Midgard, Lenya and OpenCMS. When I refuted Usha's point on OpenSourceCMS.com being a definitive resource we ended up in argument about what then would be the recommendable resource. Unfortunately the OSCOM CMS Matrix is in really bad shape, so only service we came up with is CMS Matrix. It would be good if OSCOM could rise up to provide a better comparison service.

The Midgard Points

The SpeedGeeking model meant giving a short 5 minute "elevator speech" presentation about the system to circling groups. As the time was short, we had to keep to the point. I decided to focus on the points that differentiate Midgard from the other systems, an approach familiar to my earlier blog posts. The main ones were:

  • Midgard uses PHP for scripting but provides its own Application Server that is provided as an Apache module
  • The application server enables us to do cool things like NTLM single sign-on with Windows networks
  • Midgard's replication system enables offline usage in low-connectivity environments like Africa, and supports real staging/live setups with multiple servers
  • Besides PHP, Midgard also has native Java and Ruby support
  • The "Edit this page" model reduces overhead with publishing content
  • All modifications in Midgard are stored in RCS version control repository

I also introduced the group to the Exorcist concept of migrating content between different CMSs using the Java Content Repository standard.

Open Source Project Management

The CMS discussion continued over lunch, and I was invited to speak in the How to make a successful open source project panel in place of Karl Fogel of Subversion fame who had had to cancel.

People in the panel

The challenges of building an Open Source community include:

  • Keeping the project goal clear
  • Providing support and documentation
  • Making the software installable
  • Predictability, providing a believable roadmap and release schedule
  • Ensuring that the application or component is attractive to developers

The question of roles is also important. In a balanced project there would be not only developers, but also project managers and usability experts. However, that rarely happens in a for-free Open Source projects. Developers ready to work on pro bono basis usually want to be free from the constraints of typical commercial development projects. The easiest way to ensure the availability of also non-coding resources in an Open Source project is to pay for them. The OpenUsability project tries to bring usability expertise into Open Source projects, but its impact will remain to be seen.

All Open Source projects need a selection of tools. There should at least be a bug tracker, version control system and a mailing list. Wikis can be very useful for developer conversations and user documentation. In several projects Planet-aggregated weblogs and instant messaging are beginning to override mailing list as the communication medium. Project management tools like BaseCamp could also be useful.

To get the project really rolling:

  • Invest into making a working version 1.0, then recruit volunteers
  • Get people who know the community the project is for
  • Built usability into the development process
  • Enable users and beta testers to get feedback directly to the developers

The question of documentation and "final polish" has traditionally been difficult for Open Source projects. One way to make things easier is to get the consultancies and value added resellers utilizing the projects to contribute good-quality documentation. Extreme usability sprinting can also help.

Wrapping up NTC

NTC was a nice event. Much bigger and more commercial than the typical Open Source conferences, it still had lots of interesting people and conversations to offer. However, the scope of the event being everything related to technology in NGOs, the discussions fragmented quite easily.

I've only moblogged the event, but for better pictures, there is the nten05 Flickr tag.

Tomorrow would be the Chicago Penguin Day. However, my flight is leaving quite early, so I probably will rather do some sightseeing instead. The historic skyscrapers of the center are really begging to be photographed...

Back