Projecthosting on Bettercodes

A few days ago, I got an invitation from a registered user, to register on Bettercodes.org, a project hosting platform. I am really suspicious about such mails, if they are not eaten by my spam filter automatically. But my curiosity was too big.

Bettercodes is a platform, on which software projects can be hosted. The page is really new and so far there are about 4000 developers registered. It is based on a WordPress blog using the plugin Buddypress, to create a social network. Who registers his project there, can upload the sourcecode in a SVN or GIT repository. It is possible to create milestones and tasks. I could not (yet) find any bug tracking features. It is possible to ask questions and create groups. There is a chat available, and it somehow feels like Facebook for software developers.

I asked the Community Manager of Bettercodes some questions via E-Mail. Here are the answers. Originally, I asked in German but I translatet my questions here. The answers I got, were in English.

How can you describe bettercodes.org in three sentences?

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.

The project is currently in a beta phase. When will it be completely opened?

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.

You are the Community Manager there. What does that mean?

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.

You do not have any advertisement on the website. How is the project funded?

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.

The chat on the website reminds me of the Facebook chat. What can you say about that?

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.

Why should I put my project on bettercodes.org and not use pages like Launchpad or 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 promotes the networking of developers on their platform. How is this done?

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…

What will happen to my data, I leave on the page? Is it possible for not registered users or crawling bots to see my participation in groups, etc.?

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…

You have code hosting using Git and Svn. What about for example Mercurial or Bazaar?

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…

What are your plans for the future?

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…

Many thanks to Sandra Jüssen for the interview.

Packaging a Script #1

As I am doing some programming for the last time, and want to create Debian packages from my scripts, I needed to read something about it. I could not find a really short and easy understandable tutorial, there is one now.

The whole thing will be (as it is a lot of stuff) devided into some parts.

  1. The Makefile
  2. Packaging
  3. Upload into a PPA

I will only talk about a small Python script.

First the program has to be written, and should be working on your machin. Mine is an easy “hello world” script, printing this on the terminal and using the Ubuntu messaging system. The script should be placed in an own working directory. All other files will be created in and commands are run from this directory.

First I create the file world-example (the script itself):

#!/usr/bin/python

import os
print("Hello World")
os.system('notify-send "Hello World"')

The first line is the shebang and is needed for the computer to know how to run the program. In this case this is Python.

The second line is importing a needed library.

Line three prints “Hello World” in the terminal.

And line four tells the operating system to use the programm notify-send for a grafical message.

For everything to run propperly you need Python 2.6 and the package libnotify-bin. If this is the case you need to give the file rights to be executed. Now you can try to run it using ./world-example.

Installing the script is mainly to put it in the right directory of your system. The makefile is responsible for this (and compiling programs in other languages). Therefore we create the file Makefile and fill it with the following content.

# 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)

The first part is configuring some variables. We do not need it for a small file like this, but you should get used to it for bigger programmes.

USERBINPATH is the path where the file, starting the program, should be placed. In our case this is the whole program.

INSTALL is the path for the program used for installing.

INSTALL_PROGRAMM is also setting the access rights.

The targets tell, what is done while running the Makefile. We only have one target here, the installation. First the programme install is anked to create the directory DESTDIR/usr/bin if it is not existing. DESTDIR is needed for the packaging, that is coming later. It will be ignored, if not given. Then we move the program into the created directory and give it the right to be executed. Targets like clean (as used in big programs) are not needed here, as we do not compile the program. The uninstallation will also be done by the package manager later.

Now the program should be ready for installation.

$ sudo make install

Now try to run it from the terminal.

$ world-example

The next issue will talk about creating a .deb package

Blogparade: Ubuntu installed, and then?

Picking the idea frmo Virtualpixel.de I hereby present what I am doing after installing Ubuntu.

Depending on my time, I did everything already. Setting every programm new, leave the home-partition, as it was, and everything between. But a few things are done (nearly) every time:

Install programs

  • Thunderbird + Plugins
  • Gimp
  • Chromium (Begining with the next installation) + Plugins
  • Gnome-Do
  • KeepassX
  • Banshee
  • GnuCash
  • Xmind
  • Scribus
  • Dropbox (Using a PPA)
  • VLC Player
  • VirtualBox (Using a PPA)
  • ubuntu-restricted-extras
  • Ding
  • TrueCrypt
  • Apache Server + PHP + MySql + phpMyAdmin
  • vim

Install Update

Recover Data

  • Documents
  • Photos
  • Music
  • ~/bin
  • ~/development

Recover Settings

  • Thunderbird
  • Chromium (especially my bookmarks)

Set startup programmes

  • Decrypt my documents (with are in a TruCrypt container, that is synced via Dropbox)
  • Gnome-Do

Some more settings

  • Use Neo systemwide
  • Wlan
  • Compiz

Computer in Uganda

Unfortunately this article, “Computer in Uganda” is only available in German. You can try to use Google Translate to get a version suitable for you.

Facebook Friends?

I just recognized a new function on Facebook. I can see news from people, I requested to befriend with, but who have not (yet) confirmed, on my wall.

Those news have to be (at least I think so) available for everybody to be shown there. Nevertheless I am a bit scared, that everybody can subscribe to my contents like this. Especially as status updates are visible for everybody by default.