Business ideas: Which is the right one?

Honestly, I don’t know. But from what I can tell, the ones solving problems people have, even if they were not aware before, are the ones working. The other ideas usually don’t. What are problems worth solving?

I’d define a problem worth solving as something that has 3 attributes: It is persistent, in a sense that it reoccurs too many times, that it has an impact on some activity or workflow. That is something worth resolving. Another point is the “factor of annoyance”. Remember the  Microsoft’s Paperclip? High factor of annoyance. One dialog asking for a bit of love in the form of a ok-button? Not that annoying. But keep in mind, that’s all a very subjective rating. So if you find Dialog Boxes more annoying than speaking Paperclips, just change the order accordingly.

The third factor is the most important one: the Time spent working around. The attributes mentioned above may be pointless if it takes no time to work around the issue. If something takes a serious amount of time to be worked around, solved, corrected or understood, it’s time to do something. Recently, GMail and my Mac synced. The result was a Address Book disaster. Time to correct it: 3 hours. That’s a problem.

Anything that’s built to return money should solve a problem or improve something. Anything else? Naaa..That’s my point. What is yours?

Donation-Buttons not working, thinking about other ways to collect Payment for Open Source Projects

So finally I’m starting to write something that will certainly end up being tagged as ‘simpleyeteffective’ or ‘improvingtheworld’, hopefully both is true.

There is to date no working revenue model and system for people contributing to open source projects. First of all I want to clearify that from my point of view, it’s not about money creating free software, it’s partially fun, maybe a result of paid work or simply a productive hobby, yet we are living in a world where money counts. So we are happily spending money for everything, while trying to fade out the fact that a lot of stuff we use in our daily lives ( and just be it some free and open source server software we don’t use directly ) is a result of people working for free, out of idealism or whatever.

We need something to show those people our respect. While I’ve been donating like .. 3 times in my live ( each time about 2-5€ ), there are certainly people donating more, and people donating less or not at all. And it depends on how well a project is organised, a good marketing and mostly the project size, it’s highly unlikely that a simple cli-tool meant to be used for just one specific task will be a vital target for money transfers.

So what about a pool, a common adress to receive donations with a ( fair, as far as possible ) system to distribute those amounts among active projects. I haven’t thought about a precise system on how to split those amounts, yet I’m sure that capable people will be able to do so, in a fair manner, which is a cornerstone of this project.

Factors influencing the distribution could take e.g. project activity, team size, download counts etc. into account, although the different uses demand a highly customisable system.

What do you think about it ( Still hoping for comments ) ?

Implementing a Ruby-Based LDAP-Server

Oh yes. Good question. Why would anyone want to implement a LDAP Server? Besides the fact the OpenLDAP is a pain to set up and isn’t really rewarding in terms of perfomance, there are situations demanding LDAP Access to data residing in some kind of RDBMS. And that’s my motivation.

After seriously thinking about doing it all by myself, I plugged in Google to get some answers. And there is ruby-ldapserver, hosted at rubyforge. Unfortunately. the project seems pretty dead, nevertheless the Alpha 0.3.1 Version released there works fine, although without SASL support, only simple ( plain bind ) works. 

How to use it? It’s very straightforward. Download the package, see that it’s in your path, and ready to rock. The package includes a few examples, showing off the beauty of the lib and ruby. That is how you implement a fully working LDAP Server ( okay, doing nothing, but works. )

class MyLdapOperations < LDAP::Server::Operation

  def search(basedn, scope, deref, filter)
    puts scope
    puts basedn
    puts deref
    puts filter[1]
  end

  def simple_bind(version,dn,password)
    puts "Auth: #{dn} + #{password}"
    puts version
  end

end
s = LDAP::Server.new(
	:port			=> 1234,
	:nodelay		=> true,
	:listen			=> 10,
#	:ssl_key_file		=> "key.pem",
#	:ssl_cert_file		=> "cert.pem",
#	:ssl_on_connect		=> true,
 :o peration_class	=> MyLDAPOperations
)
s.run_tcpserver
s.join

You launch it, and it works. Certainly worth giving it a try, and a good piece to start if you want to get involved in the OS community.

Rails Plugin: Superdumper, helps you visualize your database schema

You know the problem. You are agile like hell. You don’t bother doing complicated diagrams to show somebody what you’re doing. That’s okay. But sometimes, you need to show off what you’ve been struggling with, and if that day comes, this little rakefile can save some time.

Simply , Unpack this file ( tar bz btw ) in your rails app’s root folder and call rake db:superdumper. This will create a file called database.dot in your root folder, containing your database scheme, including associations, in the so-called “dot” format, used by the open-source GraphViz package as input. If you don’t have that package, install it, via ports or apt or whatever applies to your platform. 

In Detail what you have to do is here ( assuming you unpacked the file already.. )
 

rake db:superdumper

This task will automatically dump your scheme and call GraphViz, resulting in a pdf file in the root of your app with the name database.pdf. If it’s not your database schema smiling at you, let me know.

Still working on usabilitizing the Web: ideas, cont’d

Hello, today I continue my list of ideas which would make the Web and Computers in General way more easier and safer to use. Although it won’t change anything, I just want to make you think about it and let me know your opinion.

I’m still a bit frustrated that there is nothing like a general file metadata format. While every OS nowadays has its own metadata-supplying filesystem, there doesn’t seem to be a way to exchange that information or reuse it. Neither to publish it online, in a useful manner. I was thinking about a format that enables one to store almost arbitrary information in for a file. Album art, MD5-hashes, Author information, keywords. Anything that helps to categorize a file. Thus, a download would start by clicking on the metadata file, a nice screen would popup showing the file type, the supplied information, giving you the ability to get a quick overview about a file.

This could help to prevent the download of malicious software etc.. And it would help to store files correctly without user interaction. As a teacher of mine noticed correctly, it’s impossible to store and organize files in a useful way using the old-school directory-filename scheme, plus the good old 3-char extension, e.g. avi or txt. Something more sophisticated is needed, and would add a bit more usability to this web.

This is once again just a rough idea, and I would love to hear your comments.

Sharer, Giver, whatever, Filesharing

A short note on a previous post where I talked about my project of a simple File-Sharing applications that basically works using drag’n'drop and some zeroconf to find other peers. I wasn’t exactly surprised to find something that matches that description pretty well, but here it is, it’s called giver and should run on any platform that has support for some kind of .net/mono framework. I haven’t tried it yet, but I’ll sure give it a shot and tell you about it.

I’m already thinking about dropping the Java-project and instead do a client for the giver-protocol in Cocoa. I would be excited to have someone reporting about the actual use of giver! Moritz.

Improving readers user experience by adding links to related external blogs

Everyone is used to Google’s AdSense system offering relevant ads instead of providing static banners. This system not only affects the acceptance of advertising on blogs, but also enhances the user experience. Being able to access relevant products or content by one click is certainly a much more attractive and modern way of offering ads. Continue reading

Zeroconf made easy: Bonjour for Java, Part 2, Client Implementation

I’ve been writing about the server side implementation aspects of Bonjour for Java a while ago, and I promised to explain the client side, which is a bit more tricky. The reasons therefore is that it makes heavy use of asynchronous callbacks, leaving you no other choice but to implement some interfaces and understand the way things work behind the curtain. Continue reading