Projekthosting bei Bettercodes

Vor ein paar Tagen wurde ich von einem Registrierten Benutzer dazu aufgefordert, mich doch auf der Projekthostingplattform Bettercodes.org anzumelden. Solche Einladungsmails werden von mir, wenn sie nicht automatisch von meinem Spamfilter gefressen werden, mit Argwohn gelesen. Meine Neugier hat dann aber doch überhand gewonnen.

Bettercodes ist eine Plattform, auf der man Softwareprojekte hosten lassen kann. Die Seite ist noch sehr neu und bis jetzt tummeln sich etwa 4000 Entwickler dort. Die Seite basiert auf einem WordPress Blog mit dem Plugin Buddypress, welches daraus ein Social Network macht. Wer sein Projekt dort hosten lässt, kann seinen Quellcode auf einem SVN oder GIT Server ablegen. Es ist möglich Meilensteine oder zu erledigende Aufgaben zu erstellen. Bug-Tracking ist eine Sache, die ich noch nicht habe finden können. Fragen lassen sich stellen, und mit Gruppen und einem Chat, fühlt sich das ganze irgendwie, wie Facebook für Entwickler an.

Ich habe per E-Mail der Community Managerin von Bettercodes ein paar Fragen gestellt. Die Antworten will ich nun hier präsentieren. Die Antworten sind allerdings allesamt in Englisch gehalten.

Wie würdest du bettercodes.org in drei Sätzen beschreiben?

bettercodes.org has the vision to become the best place for developers in the Internet. bettercodes.org is a specialized social network for the wants and needs of developers combined with a collaboration platform to run and manage development proejcts. The bettercodes.org is an Open Source project where every developer can participate and contribute in the further developments of the platform. bettercodes.org is free-of-charge and non-commercial.

Das Projekt befindet sich noch in der Beta Phase. Wann wird es für alle geöffnet?

bettercodes.org is now open for all interested developer in an open beta. We will still be in beta since we need to develop a lot of features and functions and eliminate several funcational bugs.

Du bist dort Community Managerin. Was bedeutet das?

As a community manager I take care about what’s going on on bettercodes.org and be a point-of-contact for all questions regarding the bettercodes.org project.

Ihr habt keine Werbung auf der Webseite. Wie wird das Projekt finanziert?

bettercodes.org is a non-commecial and advertising free project. The project is financed thru donations from several firms and institutions, e.g. we received a free credit from Amazon Web Services to build bettercodes.org and the free code hosting on their cloud computing solutions which really works great. Donations are only accepted without any obligations to the project.

Der Chat auf eurer Webseite erinnert stark an den Facebook-Chat. Was hat es damit auf sich?

The chat is a self-developed feature which is not part of buddypress which we use also. The chat will be delivered to the WordPress and Buddypress community. We see the chat as an instant communication tool where people who work on common projects can communicate in a synchron way. Beside the chat we have an internal messaging system for asynchron communication between project members.

Wieso sollte ich mein Projekt bei Euch hosten lassen, und nicht zum Beispiel auf Launchpad oder Sourceforge?

First of all we provide a freedom of choice. Users now can choose between GIT and SVN, but we have the integration of additional repository tools and tools like trac, code analytics, automated bug analysis, code quality reviews on our list. Second we combined it with a comprehensive project management plugin which is not finish yet. Third we offer a free code hosting without any limitations in terms of storage size, number of team mates or number of projects. Fourth the whole code hosting runs on Amazon Web Services with a liability of 99,9999%, so your code is secure. Fifth we are very keen about a great design and great usability. We believe that many site have really a lack here.

Bettercodes.org wirbt mit der Vernetzung der einzelnen Programmierer. Wie wird das erreicht?

We provide to tools that developer can network. We are working now on more comprehensive user profiles and a reputation management system. Our goal is that bettercodes.org will be a place where developers from all over the world can meet, connect and find new and interesting relations to other coders…

Was passiert mit meinen auf der Seite angegebenen Daten? Ist es für nicht angemeldete Besucher oder Crawler Bots meine Partizipation in Gruppen, etc. zu sehen?

Personal data and the protection of data privacy is one of our major goals. We bring the user into full control about his/her data, e.g. compared to other social networks a deletion of a user account is 100% with all related data. We will not use any user data for any commercial activities…

Ihr unterstützt Code Hosting mit Git und Svn. Wie sieht das mit zum Beispiel Mercurial oder Bazaar aus?

Well, as I stated above. We have plans to integrate additional code hosting concepts like Mercurial, Bazaar and others. But we are a small team and we need the support from the community. Than we can speed up and provide it earlier…

Was sind eure Pläne für Zukunft?

We have the vision that bettercodes.org will be the best place for developers in the Internet. But we will not preset this direction or what this really means. We hope that many, many developer will engage with us and participate in the further developments. I don’t know where bettercodes.org will be in 3 or 5 years. It is something like a journey without knowing the final destination…

Vielen Dank Sandra Jüssen für das Interview.

Skript Paketieren #1

Da ich in letzter Zeit etwas mehr am programmieren bin und auch Debian Pakete von meinen Skripten anbieten will, habe ich mich etwas in die Materie einlesen müssen. Da ich selber kein wirklich umfassendes Tutorial für meine Herangehensweise gefunden habe, kommt hier nun eines:

Das ganze wird sich wahrscheinlich (da es doch sehr komplex ist) über mehrere Teile versteilen.

  1. Das Makefile
  2. Die Paketierung
  3. Hochladen in ein PPA

Es soll nur um ein kleines Skript gehen. Da ich für so etwas meist auf Python zurückgreife wird sich das Tutorial darauf beziehen.

Zuerst wird das Programm geschrieben, wie es später funktionieren soll. Mein Skript ist ein einfaches „Hallo Welt“ Skript, welches dies im Terminal und per Ubuntu Benachrichtigungssystem ausgeben soll. Es empfiehlt sich für das Skript ein eigenes Verzeichnis zu erstellen. Alle Dateien werden dann dort angelegt, und Befehle daraus ausgeführt.

Zuerst wird die Datei world-example erstellt:

#!/usr/bin/python
import os
print("Hello World")
os.system('notify-send "Hello World"')

Die erste Zeile ist das Shebang und wird benötigt, damit der Computer weiß, womit das Programm ausgeführt werden soll. In diesem Fall Python.

In der zweiten Zeile wird eine benötigte Bibliothek importiert.

Zeile drei gibt „Hello World“ im Terminal aus.

Und Zeile vier weißt das Betriebssystem an, via notify-send eine grafische Meldung auszugeben.

Damit das ganze funktioniert wird Python ab Version 2.6 und das Paket libnotify-bin vorausgesetzt. Ist dies der Fall muss die Datei ausführbar gemacht werden und sollte sich dann, sollte sich das Skript auf der Konsole mit ./world-example starten lassen.

Die Installation eines Skriptes besteht im wesentlichen darin, die Datei an den richtigen Ort zu schieben. Dafür (und auch für die Kompilierung bei anderen Sprachen) ist das Makefile zuständig. Es wird die Datei Makefile angelegt und mit folgendem Inhalt gefüllt:

# Define Vars
USRBINPATH=/usr/bin
# install copies files -d = directory, -m = acces rights
INSTALL = /usr/bin/install -c
INSTALL_PROGRAM = $(INSTALL) -m 755

# Targets
install:
	$(INSTALL) -d $(DESTDIR)$(USRBINPATH)
	$(INSTALL_PROGRAM) world-example $(DESTDIR)$(USRBINPATH)

Der erste Teil legt verschiedene Variablen fest. Bei einem Skript wie diesem ist dies zwar nicht nötig, aber bei größeren Projekten aus Gründen der Übersichtlichkeit unerlässlich.

USERBINPATH bezeichnet den Pfad, an den der Programmstarter (da wir nur eine Datei haben, diese) kommen soll.

INSTALL ist der Pfad für das Programm install, welches die Installation vornimmt.

INSTALL_PROGRAMM setzt zusätzlich gleich die Rechte der entsprechenden Datei fest.

Die Targets legen fest, was beim Aufruf der Makefile geschehen soll. Für das Beispielprogramm wird hier nur ein Ziel, die Installation festgelegt. Zuerst wird install aufgerufen und angewiesen das Verzeichnis DESTDIR/usr/bin zu erstellen, falls es nicht existiert. DESTDIR wird für die spätere Paketierung benötigt, und ignoriert, wenn es nicht angegeben wird. Dann wird das Programm dorthin verschoben, und mit den entsprechenden Dateiberechtigungen versehen. Weitere Ziele, wie clean werden hier nicht gebraucht, da das program nicht kompiliert werden soll.

Das Programm sollte sich nun schon installieren und starten lassen.

$ sudo make install

Nun kann das Programm vom Terminal aus getestet werden

$ world-example

Der nächste Teil wird sich mit der Paketierung beschäftigen.

Blogparade: Ubuntu installiert, und dann?

Die Idee von Virtualpixel.de aufgreifend, kommen hier meine Modifikationen, bei einer neuen Ubuntu Installation.

Je nach Zeit, die mir zur Verfügung steht, habe ich von alle Programme neu einstellen, und neues ausprobieren, bis zu die komplette Home-Partition intakt lassen, schon alles gemacht. Ein paar Sachen mache ich jedoch bei (fast) jeder Neuinstallation:

Programme installieren

  • Thunderbird + Plugins
  • Gimp
  • Chromium (Ab der nächsten Neuinstallation) + Plugins
  • Gnome-Do
  • KeepassX
  • Banshee
  • GnuCash
  • Xmind
  • Scribus
  • Dropbox (Über PPA)
  • VLC Player
  • VirtualBox (Über PPA)
  • ubuntu-restricted-extras
  • Ding
  • TrueCrypt
  • Apache Server + PHP + MySql + phpMyAdmin
  • vim

Updates installieren

Daten Rücksichern

  • Dokumente
  • Fotos
  • Musik
  • ~/bin
  • ~/development

Einstellungen Rücksichern

  • Thunderbird
  • Chromium (vor allem Lesezeichen)

Autostart Programme einrichten

  • Dokumente automatisch entschlüsseln (sind in einem extra TrueCrypt Container, der über Dropbox synchronisiert wird)
  • Gnome-Do

Restliche Einstellungen

  • Neo Systemweit als Standardtastatur
  • Wlan
  • Compiz

Computer in Uganda

Nachdem ich Jonas Artikel über Tansania immer aufmerksam lese, melde ich mich hier mal mit meinen Eindrücken aus Uganda zu Wort. Es wird auch langsam Zeit für mich, da ich Anfang September auch schon wieder nach Deutschland zurück kehre. Bei den ganzen Eindrücken eines Jahres, kann ich euch vorwarnen, der Artikel wird etwas länger werden.

Ein Erfahrungsbericht eines Deutschen in Uganda

Als kurzer Einstieg: Ich bin seit August 2009 in Uganda, wo ich einen Anderen Dienst im Ausland anstatt des Zivildienstes ableiste. Ganz genau, bin ich in Mbarara, im Süd-Westen Ugandas. Ich arbeite bei „Conversation Efforts for Community Development” (CECOD), wo ich für all das Zuständig bin, was mit Computern zu tun hat. Seit Mai 2010 bin ich in der Linux User Group Uganda aktiv.

Bei Jonas tauchte in einem Kommentar die Frage auf, wozu die Leute hier Computer brauchen, wo es doch dringendere Probleme gibt. Die Antwort ist einfach. Für genau die selben Sachen, wie in Deutschland. Es ist wahr, es gibt Probleme hier. Ich hatte das ganze letzte Wochenende kein Wasser, allerdings ist dies eher die Ausnahme. Wenn ich richtig mitgezählt habe, ist es nur vier mal passiert, seit ich hier bin, dass ich den Wasserhahn aufgedreht habe, und außer heißer Luft nichts heraus kam. Und das ich im Oktober 3 ¹/₂ Wochen am Stück keinen Strom hatte, ist auch zu vernachlässigen. Das ist halt so, und die Leute hier wissen damit um zu gehen. Aber um internationale Bankgeschäfte zu tätigen sind Computer mit Internet nun mal Voraussetzung. Die Geldautomaten sind nichts anderes als Computer. Und wenn mal einen Nachmittag kein Internet geht, sind die Läden der großen Handy Provider leer, weil ohne Internet keine Aufträge bearbeitet werden können; Von Leuten, die sich beschweren, dass ihr Internet auch nicht geht, mal abgesehen.

Wenn für mich ein Paket ankommt, dann ist im Postfach von CECOD ein Zettel, auf dem steht, dass ich das Paket innerhalb von 14 Tagen bei der Post abholen kann. Dort angekommen, zeige ich den Zettel, bekomme ein riesiges Buch vorgelegt, in dem alle Paketeingänge vermerkt sind, muss sehen, wo mein Paket zu finden ist, und unterschreiben. Dann wird mein Paket, durch eine Nummer, welche auf meinem Zettel handgeschrieben vermerkt ist, eindeutig identifiziert aus einem extra Raum geholt. Ein meist sehr langwieriges Unterfangen. Ich muss eine kleine Gebühr bezahlen, dass die Post das Paket für mich verwahrt hat, und bekomme eine handgeschriebene Rechnung (zumindest auf einem Rechnungsblock) ausgehändigt. Ein Verfahren, das sich durch den Einsatz von Computern, die es auf der Poststation gibt, und die zum surfen auf Seiten wie Facebook exzessiv genutzt werden, sicher beschleunigen ließe. Auch die Vernehmung als Zeuge bei der Polizei, wo das Protokoll handschriftlich angefertigt wird, ging nur sehr schleppend voran. Dass die Polizei schon eine Tatortbesichtigung am Vormittag gemacht hat, ist zwar nichts, was der Computer hätte erahnen können, und damit die erneute Besichtigung am Nachmittag überflüssig machen, aber ich glaube trotzdem, dass der Einsatz von Computern auch hier nicht schaden könnte.

Gehen wir vom öffentlichen Sektor in die Privatwirtschaft.

An jeder Ecke gibt es Internetcafés und Läden, an denen man seine Dokumente drucken, kopieren, scannen oder abtippen lassen kann. Ich würde allerdings jedem davon abraten seinen USB-Stick auch nur an einen dieser Computer anzuschließen. Ca. 10 verschiedene Vieren, die sich in allen Ordnern einnisten, im Zweifelsfall den Schreibschutz aktivieren, alles löschen, oder den Stick gleich unbrauchbar machen, sind einem sicher. Ich lobe mir da mein Ubuntu. Im Büro ist eine meiner Aufgaben alle zwei Tage jeden Stick zu überprüfen, da sich auch innerhalb des inzwischen mehrfach gereinigten Organisationsnetzwerkes immer noch ein Virus tummelt.

Dabei sollte ich mich glücklich schätzen. Der Traum eines jeden Studenten hier ist, gleich nach ‚nach Amerika oder Europa auswandern‘ ist nämlich für eine Nicht-Regierungsorganisation zu arbeiten, da hier „das Geld” sitzt. Und da die meisten dieser Organisationen aus dem Ausland finanziert sind, stimmt das wohl auch. Von Netzwerk kann man allerdings auch bei CECOD nicht wirklich sprechen. Man stelle sich fünf Computer vor, die durch einen Switch verbunden sind, und von denen einer per „Telefon” (was genau das für eine Verbindung herstellt, weiß ich nicht) ans Internet angeschlossen ist, und dieses für die anderen Computer im Netzwerk frei gibt. Unter der Bedingung, dass es gerade mit Guthaben aufgeladen ist. Als ich den Drucker im Büro als Netzwerkdrucker eingerichtet hatte, waren alle so davon begeistert, dass ich Testseiten in Massen drucken musste. Die Freude war allerdings nicht von langer Dauer, da die Haken an den Netzwerkkabeln fehlen, und diese damit regelmäßig aus dem Switch und den Netzwerkkarten rutschen. Auch an surfen ist so nicht wirklich zu denken.

Ein paar Initiativen, wie zum beispiel das S7 Lab, einen Klasse für Schulabgänger, in der diese verschiedene Computerkentnisse erlangen können, und welches nur Ubuntu Systeme einsetzt, und die auch ein schönes funktionierendes Netzwerk haben, sind positiv hervor zu heben.

Direkt angeschlossen ist ein Ubuntu Internet Café. Leider gibt es nicht all zu viele davon.

Inzwischen bin ich in der Linux (und FLOSS) Community in Uganda sehr aktiv. Nach der Ubuntu Release Party Anfang Mai in Kampala, von der Linux User Group Uganda, habe ich hier in Mbarara eine Linux User Group gegründet. Das war die zweite in Uganda, inzwischen ist noch eine dritte in Jinja hinzu gekommen. Es ist ein bisschen, wie in Deutschland. Der normale Nutzer muss nichts von Linux mitbekommen, wenn er nicht will. Wer interessiert ist, kommt allerdings fast nicht daran vorbei. Der Webserver meiner Organisation, der hier in Uganda steht, und von einer hiesigen Firma bereit gestellt hat, ist ein Linux Server. Auf der Universität hier haben, noch bevor die Linux User Group gegründet war, einige Studenten die Linux Distribution Ultimate Edition genutzt.

Es gibt verschiedene Großveranstaltungen, in denen Linux gefördert wird, oder freie Software, wie zum Beispiel Python, vorgestellt werden. Für den Software Freedom Day am 18. September ist derzeit Planung für das Auftreten der Linux User Groups in Kampala am laufen. Die treibenden Kräfte hinter vielen dieser Sachen sind allerdings viel zu oft Weiße. Freie Software wird hier, nicht, wie in Deutschland, einfach mal schnell aus dem Internet heruntergeladen. Meine Ubuntu 10.04 CD habe ich auf der Ubuntu Release Party in Kampala bekommen.

Die 20 weiteren CDs, die ich mitgenommen hatte, gingen auf dem ersten Linux User Group Treffen in Mbarara weg, wie warme Semmeln. Fedora habe ich mir zum ausprobieren heruntergeladen. Meinen Laptop habe ich dazu drei Nächte hintereinander laufen lassen.

Dieser Artikel ist ebenfalls veröffentlicht auf dem Uganda Blog.

Facebook Freunde?

Ich habe gerade eben eine neue Funktion von Facebook entdeckt. Ich bekomme Nachrichten von Leuten auf meiner Pinnwand angezeigt, denen ich die Freundschaft angeboten habe, die diese aber (noch) nicht angenommen haben.

Die Inhalte müssen dazu (so nehme ich an) für jedermann sichtbar sein. Trotzdem finde ich es erschreckend, dass jemand die Inhalte so abonnieren kann. Gerade, da Statusänderungen ja in der Standardeinstellung für jeden sichtbar sind.