Discogstagger

1. August 2013 Kommentare ausgeschaltet

If you have read my blog lately, you know already, that I am in the process of ripping all my CDs into flacs. I am using RubyRipper (since I am on a ArchLinux Box) to rip the CDs. Since the quality of FreeDB (used by RubyRipper) is not really good, when it comes to certain (in my case most) of the CDs. Therefor I am using Discogs to get the correct Metadata. In the beginning, I used Puddletag to Tag all the Tracks. Later I discovered a nice tool, called Discogstagger, which is able to tag a whole album by using the releaseId from Discogs. Unfortunately, this tool did not provide all the needed functionality (e.g. multi disc albums were not supported). Jessewards (the owner of Discogstagger) was quite interested in my changes and accepted all of my pull requests (and I am not really a Python Expert). Since the whole application grew out of itself quite fast, I decided to fork discogstagger and provide a new version of it. I am still in the process of extending discogstagger and right now this version is not working at all (unfortunately), but all tests I have written (and I wrote quite some unit tests for it) are running ;-)

If you are interested in helping out just take a look on the version2 Branch of discogstagger. I am more then happy to accept pull requests, but keep in mind, that I would like to increase the code coverage with every single commit ;-)

Every type of pull request is very welcome, if it is just a bug fix, an extenstion to the current functionality or “just” documentation.

Greetz

KategorienProjects Tags:

What do I want from my personal NAS

22. Juli 2013 Kommentare ausgeschaltet

In this post I would like to gather some personal requirements for a NAS System I am going to build.

Right now, I am in the process of ripping all my CDs (around 950 unique releases – More than half of it is already finished). The target is to store all these releases on a personal NAS with the ability to stream those to my stereo. For this I have already selected minimserver as the UPNP-Server. This server has the requirement of a JDK to let it run. Therefore the NAS I am going to build must have the ability to run JAVA.

Since I am already using Linux quite heavily I do not like to let FreeNAS or NAS4Free run on this NAS, also I am very interested in the underlying File System (ZFS) and/or FreeBSD.

Since Linux offers a “similar” File System (btrfs) I would like to use this one for the NAS.

The services which I would like to run on the NAS are then the following:

There some other options, which would be nice, but are not as “necessary”. There is e.g. Ajenti, which provides a nice WebGUI for the administration of the NAS, but this does not really correspond to the way Arch Linux works ;-) A possibility would be to use e.g. CentOS or
Ubuntu as a distro, but I am unsure, if this is really going to work out, just for a nice GUI????

The above mentioned requirements are not really tough for todays hardware and therefor I would like to stick to the Stack provided in the nas-portal forum (see here).

Since I am going to use a filesystem, which seems to be picky about power outages, I am in need of a UPS, and I am currently thinking about this one.

So I am going to explain some more interesting stuff about the tagging of my FLACs for the minimserver and about the used tool (discogstagger) in some future posts. Stay seated, so that you can see how an absolute Hardware Noob tries to build his own NAS ;-)

KategorienArch Linux, Common, Java, Linux, Projects, Ubuntu Tags:

Software Development in the 21st century

12. Mai 2013 Kommentare ausgeschaltet

In earlier days sourceforge was THE development plattform for open source project. This has changed nowadays. SF.net has now been overcome by github and additional services. SF.net was still adding services like e.g. git repositories (http://sourceforge.net/apps/trac/sourceforge/wiki/Git) and additional apps like Trac and stuff. Sourceforge is furthermore converting the whole infrastructure to the Apache Foundation under the name Allura. The whole world is going into cloud based services (this is especially true for software development services like e.g. bug tracker and source code management systems) and one of the formerly biggest ones is going to open source their whole stack. Quite interesting, don’t you think?
github.com is still very specialized on git repositories and also some more stuff like issue tracking and a wiki and also some static page stuff (pages.github.com). But the real interesting stuff is the git repository stuff. Even though there are some competitors in this area (think: bitbucket.org from one of the great companies in the software development area (atlassian, which bougth bitbucket quite some time ago and also added git quite quickly), as well as gitorious, github is still the largets in this area. All added values like e.g. Continuous Integration tools (think: travis-ci) are using the interfaces github is offering (called service hooks) to integrate their services. And, I have to admit, these services are doing a great job with this, and even offer so called “badges” to integrate their services even further into the project home page at github. Very smart. The whole business is going into the direction of the old unix philosophy (doing one thing, but doing it very good).
Basically the whole industry is going into the cloud business and github and cohorts are the expression of this. Earlier on one big service like sourceforge offered the whole stuff, nowadays it is several small companies doing the same in different entities. I really do like this. What are the services I do like really and I do use in my latest developments?

There is one more thing about these services, they do not offer these services for one language or environment, but for several languages and environments, like Ruby or javascript/nodejs. This is rather interesting. Even though some (if not most) of these services are written in Ruby, they do offer their services to other languages as well. This means, that the whole community recognizes, that there is more then just one language. While open source communities like e.g. jboss or apache are focused on one/some specific languages (in the beforementioned Projects it is mostly Java) these are staying this way, but are still opening up to the rest of the world (e.g. HornetMQ at github.com.
If you take a look on the nodejs modules, it is clear that smaller modules are more welcome in the community then larger ones (e.g. expressj vs. geddyjs). This is a nice trend going back to the “small but good” design principle, which I definitly acclaim. Basically this is all about “KISS”, and, just to mention it again, my preferred linux distribution is also all about the same principle (ArchLinux).
So having said all this (and I believe this developed into a small rant) I still believe in the KISS principle and I am very glad to develop software in the 21st century ;-) Furthermore I believe that this is also a principle which is represented by Uncle Bob and his Manifesto for Software Craftsmanship.
I hope, that I follow the above mentioned principle in the following new projects, I just published to github and the npmjs.org:

What does this mean for us Developers? Basically I strongly believe, that Software Development in the future is more like building a castle with already existing lego blocks with the design of some Architect and the business logic concepts of some Product Owner. All we have to do is using the right tools for the right job (the selection is up to us fortunately) and implement the business logic with the right algorithms. This sounds like a abasement, but I do strongly believe that we are still Craftsman and can do a fine job on this one. It would be a decision, if we need an Architect, but the business logic should (at least IMHO) be designed by the guys and gals who know this better (Product Owner should know this better).

KategorienCommon, Projects Tags:

nodejs and ports

20. April 2013 Kommentare ausgeschaltet

During my development with nodejs I stumbled over a very annoying problem. The server started, but I was not able to connect to it on the specified port. Furthermore, after a restart of the server, it reported an “EADDRINUSE Address already in use” failure. On further investigations, it looked like that for each time the server started with a port it created a new directory in the application root.

It took me about one hour, to figure out, that changing the port to a value outside the “root range” (up to 1024 on Linux, but it looks like the same is true for e.g. 3000), everything was working normal. Lesson learned ;-)

KategorienCommon Tags:

Open Source Projects and their Teams

12. April 2013 Kommentare ausgeschaltet

In any Open Source Project you will find the same players like in most (say all)  teams.

I have just participated in a Leadership Training and got introduced to the roles in teams. At the same time I started to program in an open source team to implement a small application. Since this is not my first involvement in an open source team, I thought, it would be quite interesting to map the “official company environment” onto the open source world. Not really to my surprise I found out, that the company environment is quite similar to the open source environment.

There are some differences in open source teams and teams in a company (eg. there is usually no money involved at the beginning of an open source project), but there are also a lot of common things. I was involved in quite some OSS projects and all projects which are successful there is a strong leader (see maven. There are, of course, other open source projects, which totally belong to the community (see Debian, but there are no commercial interests and also all decisions in these projects do take quite a long time (see: http://lxer.com/module/forums/t/29437/).

IMHO this is also true for companies. With strong I mean somebody able to sell his vision and got people interested in
the technology behind. Nowadays technology is mostly something new and interesting like eg nodejs or nosql. In a company environment you do not need a nice technology to gather people around you, but to gather bright people you do need it as well.

KategorienCommon Tags:

nodejs version 0.8.x instead of 0.10 on ArchLinux

18. März 2013 Kommentare ausgeschaltet

Right now, I am developing a node application. Since we are using 0.8 and on ArchLinux 0.10 is installed if figured to install nave and n. This is all working fine, as long as I am not using a binary npm package, like node-expat. To install this, I needed to remove the node_modules folder after the change of the node version, and furthermore I needed to define the python-version. The install of packages is then possible with the following command:


npm install --python=/usr/bin/python2

KategorienCommon, Linux Tags:

Sympa Mailinglist Server on CentOS 6.4 using PostgreSQL

17. März 2013 Kommentare ausgeschaltet

To install Sympa on a CentOS 6.4 machine is not as easy as one would expect. I found this entry in one of the mailing lists, and I have to admit, it works like a charm ;-)

So, here once again, for reference:


cd /etc/yum.repos.d
wget http://sympa-ja.org/download/rhel/6/sympa-ja.org.rhel6.repo

cd /var/tmp
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -i epel-release-6-8.noarch.rpm

yum install sympa-httpd

Review /usr/share/doc/sympa-6.1.17/README.RPM-install

After this, I needed to install a RDBMS, and since I do prefer PostgreSQL I installed it (using the tutorial from here) via:


yum install postgresql postgresql-server postgresql-contrib postgresql-devel

# Initialize database directory
service postgresql init

# Start service
service postgresql start

# create sympa db
su postgres
>createdb sympa
>psql sympa
>>CREATE ROLE sympa WITH SUPERUSER LOGIN PASSWORD 'sympa';
>>\q
>exit

Furthermore, I adopted the file pg_hba.conf:


#host all all 127.0.0.1/32 ident
host all all 127.0.0.1/32 md5
#host all all ::1/128 ident
host all all ::1/128 md5

To check, if the connection is working, try:


psql -h localhost -U sympa sympa

Also the perl package DBI:Pg is needed for the connection of sympa to postgres.


yum install perl-DBD-Pg

After all these preparations, we are going to install sympa.


sympa_wizard.pl

Note, that it is possible to change the made settings in the /etc/sympa/sympa.conf file. Since we are using PostgreSQL we do have to adopt the setting db_port in this file to 5432.

To create the DB correctly (basically, the DB is already created above), I had to comment out the database creation in the file /usr/share/sympa/bin/create_db.Pg:


--CREATE DATABASE sympa;

Unfortunately the script sympa.pl --create_db was not working correctly for Postgresql, and therefor I tried to run the DB creation script manually:


psql -h localhost -U sympa sympa
>\i /usr/share/sympa/bin/create_db.Pg
>\q

After this, everything seemed to be alright ;-) And another thing, CentOS seems to be pretty restrictive, so please stop iptables or adopt the settings, otherwise it is not possible to connect to the server from the outside.

Not everything is alright here, I needed to change some of the premissions of the fcgi-Scripts in /usr/libexec/sympa as well as the description for the file /etc/sympa/sympa.conf. Furthermore centOs is making heavy use of SELinux, therefor some additional settings need to get applied:


setsebool -P httpd_can_sendmail 1

Since I am using this only in a virtual box, I disabled SELinux completely, therefor the above statement is not necessary at all anymore.

After all this, sympa is still running in maintenance mode, because of several permission restrictions of sympa (which are fine for productions environments, but for a development environment these are just nasty). Therefor I followed this guide (specifically: run apache as the user sympa).

Btw, if you wander, why the heck CentOS is now on my list of OSes, this is mainly to work with the same environment like my hoster and on ArchLinux I did have a lot of trouble to install Sympa as well ;-( I am working with Sympa now in a VBox, so that it does not disturb my normal system usage.

KategorienCommon, Linux Tags:

Installl Logitech Unified Receiver

2. November 2012 Kommentare ausgeschaltet

I just bought some new Input devices (the same I already use at work with Win7), a Performance MX Mouse and a K350 Keyboard from Logitech. Both devices use the Unified Receiver from Logitech. I used the Unified Receiver of the Keyboard initially and after starting the Laptop with the Receiver connected and the Keyboard and the Mouse turned on I did not get a connection from the mouse.

After fiddling around I stumbled across the following article, which described exactly what I had to do. Thanks to the Archlinux community another device is ready to be used ;-)

https://wiki.archlinux.org/index.php/Logitech_Unifying_Receiver

But there is more to come, because I want to use all the nice little buttons on the mouse and on the Keyboard as well, so lets see how this is going to work out ;-)

KategorienCommon Tags:

tonidoplug 2 and Western Digital Blue Scorpio 1TB

30. August 2012 Kommentare ausgeschaltet

I just bought a 2,5″ Blue Scorpio from Western Digital. Basically I thought that it is 2,5″ and should fit into my Tonido Plug 2. Unfortunately this is only true with some minor “Hardware modifications” on the Tonido Plug. I had to use a Scissor to adopt the Tonido Plug to the HDD and also the cover does not fit anymore. Anyway, the drive seems to work and I am now in the process to install ArchLinux ARM on this new device and boot permanently from it.
More on this one in a later post.

KategorienCommon Tags:

Tonido Plug 2 – Wlan

12. August 2012 5 Kommentare

I have the problem, that after a certain amount of time, the wlan is not responding anymore on my Tonido Plug 2. I have now updated the Power Management on the device to “off” using the following commands:


sudo iwconfig mlan0 power off

Hope, that this helps ;-)

KategorienCommon Tags: