Why universities should have a central version control server like git for lectures and general for all members?

Table of Contents

Introduction

This article should handle the question why a university or other academical institutions should have a central version control system (VCS) for sharing source code. Both the educator and the learning people should have access to the same platform.
VC has many advantages: For exchange in a team, sharing your code or versionizing just your own work.

si618 makes a nice list of questions about problems that occur during programming. They all result in the same answer: VCS:

How to make an inductive Samsung Galaxy Note Edge Flip Wallet cover yourself (original Samsung wireless cover, Android 5.1.1)

The Samsung Galaxy Note Edge can be extended by an inductive cover to load the battery. Samsung also sell a Flip Wallet cover for the Note Edge. The Flip Wallet cover have the ability to detect if it is closed or not to automatically switch the screen on for example. However there is no product which combine both features. In this blog entry I already described how to do it with a third party coil. Well in this blog entry I describe how make an inductive Flip Wallet Cover with the original Samsung wireless cover yourself. Before Android 5.1.1 it was sufficient to simply put the coil on the flip wallet cover to activate the flip wallet on/off function, but since the update this does not work anymore. Now you have to combine the three pin chip from the flip wallet cover to still use the on/off function. I describe how to do this further on.

How to make an inductive Samsung Galaxy Note Edge Flip Wallet cover yourself

The Samsung Galaxy Note Edge can be extended by an inductive cover to load the battery. Samsung also sell a Flip Wallet cover for the Note Edge. The Flip Wallet cover have the ability to detect if it is closed or not to automatically switch the screen on for example. However there is no product which combine both features. This is a guide to make an inductive Flip Wallet Cover yourself.

Iterate with a tuple and multiple defaulted previous and next elements

In general pythons iterators are a nice way to iterate fast and source-code-clean over iterable. Sadly you can always only iterate over a single element. In general they are not really flexible (for example an iterator can not go back).

Sometimes you need to iterate not only with a single element but rather with a tuple of elements; therefore multiple previous and next elements to your current. There is always the problem what to do with your previous and next element at the borders or on which place of your tuple the iterator has to start and and end. Often calculations with the index are used, but this gets fast very ugly since you have maybe multiple border conditions and not every python iterable has also an index.

Automatically fill up missing values in an python `Enum`

Python 3.4 introduce the missing Enumerations, which I already used multiple times since they have some nice practical features.

In an python Enum you have an name-value pairs. Well in most cases the your Enumeration you defined contains all possible values for your scope.

But in some cases you only define those name-values from which you know that they exists. Then if you want to get the Enum object from an value like YourEnum(3) an ValueError will be thrown if 3 is not defined.

SQL Inheritance: Preventing that a parent have multiple children. Auto insert and delete parent and prevent deletion of child if parent is referenced by a foreign key

If you want to model object inheritance on a SQL Database you came along some problems. First of all inheritance is not implemented, so you need a workaround. There exists three common patterns which are called Single Table Inheritance, Class Table Inheritance and Concrete Table Inheritance. If the existence of a parent row makes no sense if no child row reference it (e.g. parent is abstract) you came into some problems with standard SQL settings to guarantee this invariant. Maybe you also want that a parent row can only be specialized by exactly one child, which is only with Foreign Key not possible. In this article I will face this two problems.

Karaoke: Ultrastar Song: "I Move On (Sintel's Song)"

UltraStar is an OpenSource software on the principle of SingStar™ exclusively available on Playstation®. The Lyrics of the Song will be displayed according to the music. For that you must create a file with the correct timings for the words. Ultrastar also record your voice and rate it after your correct singing.

Well I have created a ultrastar package for the Song "I Move On (Sintel's Song)".

"I Move On (Sintel's Song)" is the title song of the open source, short film Sintel. Sintel is the third one of the Open Movie Project of the Blender Foundation. You can find the complete score for free at sintel.org.

Wach the full movie for free at sintel.org.

How to run KeeChallenge (KeePass plugin) for Yubikey under Ubuntu Linux with Mono

Table of Contents

KeeChallenge is a KeePass plugin, which allows you to protect your password database with a second auth key. It implements a HMAC-SHA1 challenge-response where the key is saved on a Yubikey.

KeePass runs quite well under Linux with mono. However also the KeeChallenge plugin works under Mono, but you have to map some .dll to .so libraries, which I will describe here.

Requirements

Of course you need KeePass

sudo apt-get install keepass2

well you don't have to use this package, but I use the paths which the kepass2 package creates.

You need also the Yubico PPA:

sudo add-apt-repository ppa:yubico/stable
sudo apt-get update

after that you have to install the required packages:

Replace nis (rfc2307) with rfc2307bis schema in OpenLDAP

You are familiar that posixGroup schema in LDAP is structural. This has some disadvantages like you have to synchronise two structural entries of Object Class posixGroup and groupOfNames if you need both Object Class for representing the same Group with the same users. Some further discussion here. For this purpose the old nis (rfc2307) scheme has been extended under the name rfc2307bis. The rfc2307bis schema remove the structural flag from the posixGroup and make it auxilary. With the rfc2307bis schema you can simply add the posixGroup Object Class to a already existing groupOfName (or a similar one) entry to make the group also a unix group This guide was tested on Ubuntu Server 12.04.4 LTS and 14.04.1 LTS with OpenLDAP 2.14.31 but should also work on all openLDAP installations. Installtion Type Fresh Installtion
 
 
 

User login