August 21

Somehow it was in the last 2 weeks is not much content on the web, the link is on my list at zootool managed. But it's also about quality and not quantity :-) .

iTunes: iTunes library and save it back together again

iTunes may not be the best program to manage your music collection, but also not the worst. The diffusion rate because of iPods, iPads, iPhones and Macs, but it could be quite high.
In the current iTunes version 10.4, backing up to DVD and CD was removed from the menu. How alternatively on a network drive and secures iTunes libraries together again describes this support page from Apple.

Therefore be worthwhile VPN connections (on Win, Mac & iOS)

Have you ever wondered why you need VPN connections? This short video tutorial from ifun.de answered this question and shows how they are set up.

knockout.js - what it is, what it does?

If I recommend a blog by and for web workers would, then Guido Mühlwitz. This post is about knockout.js only one of many very good articles on the topic of web development.

Apple's Disk Recovery Assistant for Lion

Apple's new operating system will no longer be delivered to Lion conventional installation media, but is given solely on the Mac App Store.
In the case of recovery, you can rely on a hidden partition. But what do you do when the entire disk (or SSD) is broken?
There are the Apple Disk Recovery Assistant.

gklinkmann written by \ \ tags: , , , ,

August 15

The version control system git is gaining in popularity, so that even Google has now decided to git google code svn and in addition to supporting mercurial. But unfortunately it is not just pressing a button in the admin section of Google Code.

Before the changeover should be secure his project in a separate directory.

After you have switched from svn to git, you should first perform a reset of the repository with the following options:

HTTPS is the only protocol that Google supports for git. For authentication you should generate a password and account details (on Linux or Mac OS) in a .netrc file saved in the home directory.

Now you can clone the git repository from Google Code into a new directory. Then copy the old data into the new project directory, and add to local Git Commit (commit).

  clone https: // code.google.com / p /< projectname >/ < projectname > > Git clone https:// code.google.com / p / <project name> / <project name>
  < projektname > > Cd <project name>
  -R < pathToOldProject >/* . > Cp-R <pathToOldProject> / *.
  add . > Git add.
  commit -m "inital import" > Git commit-m "import inital" 

What's missing is the first upload to Google Code.

  push origin master > Git push origin master 

On subsequent uploads is an indication of the branches are no longer necessary.

  push > Git push 

Links:
Tutorial - Getting Started with Git

gklinkmann written by \ \ tags: , , , ,

April 26

The versioning tool Git has long been on my list of things I want to look at me once. Right now I still use subversion . But while you can save with subversion changes only in a central repository that provides decentralized Git repositories that can be merged on demand from a central repository.

But before the first use is to install. Certainly, one can also translate Git from source, but both Linux [1] and for the Mac [2] are there any packages. The first steps in these two German tutorials [3] [4] explained. Is a detailed tutorial is German from Stanford University [5] .

Scenario


My scenario is as follows:

  • a central repository on my Mac mini (which I used as a server)
  • a distributed repository on my Mac mini (if I'm sitting times before)
  • a distributed repository on my Ubuntu laptop (with you)

It starts with the project that you want versioned with Git. The terminal is the developer's favorite friend and why the full functionality of Git is addressed only to them (is an Eclipse integration, it also [6] ). But one step at a time.

Step 1: versioning of existing project with Git


First you have to git his name and an email address be known. Git uses this information later in the release comments.

  config --global user.name "Gero Klinkmann" > Git config - global user.name "Gero Klinkmann"
 config --global user.email me @ example.com > Git config - global user.email me@example.com 

Then you can be first git repository with git init ersellen. For me it is on the Mac mini, to be built on the next step, the central repository.

  ~ / workspace / testGroovy > Cd ~ / workspace / test groovy
 init > Git init
 add . > Git add.
 commit > Git commit 

The commands speak for themselves. When commit can open the vi editor, so you can add a comment for the current state. The command syntax of the vi is not very intuitive, so by all who know them not, just add the necessary commands to the comment:

  • [I] change in the insert mode.
  • Leave a comment.
  • [Esc] switch to the command mode.
  • [: Wq] spoke and exit the vi.

Step 2: Create a centralized git repository


The newly created repository then the repository on the remote Mac. The clone of it is about the argument bare to the central repository on the Mac.

  ~ / git > Mkdir ~ git /
 ~ / workspace / testGroovy > Cd ~ / workspace / test groovy
 clone --bare .git ~ / git / testGroovy.git > Git clone - bare git ~ / git / testGroovy.git. 

Step 3: central Git repository clone


On the Linux laptop is supposed to create a distributed repository. Therefore it is necessary to clone the central repository on the Mac. Both computers are connected via ssh. Furthermore, when cloning the git-upload-pack (and that of the computer, where the central repository is - for me that is the Mac) is required.
To avoid problems, such as bash: git-upload-pack: command not found prevention should be the place (in my case it is / usr / local / git / bin / git-upload-pack) to specify the command to clone.

  ~ / projekte > Cd ~ projects /
 clone --upload-pack / usr / local / git / bin / git-upload-pack \ > Git clone - upload-pack bin / usr / local / git / / git-upload-pack \
    username @ server / full / remote / path / to / testGroovy.git testGroovy ssh: / / username @ servername / full / remote / path / to / test testGroovy.git groovy 

This one does not always pay attention to is this can also be deposited in the git configuration file.

  ~ / projekte / testGroovy > Cd ~ / projects / groovy test
 .git / config > Vi. Git / config
    ] [Remote "origin"]
         :refs / remotes / origin /* fetch = + refs / heads / *: refs / remotes / origin / *
         username @ server / full / remote / path / to / testGroovy.git url = ssh: / / username @ servername / full / remote / path / to / testGroovy.git
         usr / local / git / bin / git-upload-pack upload pack = / usr / local / git / bin / git-upload-pack
         usr / local / git / bin / git-receive-pack receivepack = / usr / local / git / bin / git-receive-pack 

Step 4: from local to central repository


Changes to the sources are first in the local repository git commit -a versioned. Also in this commit opens the vi editor for a version comment. With git push the changes to the local repositories are communicated to the central repository.

  ~ / projekte / testGroovy > Cd ~ / projects / groovy test
 commit -a > Git commit-a
 push > Git push 

Step 5: Local and central repository on a server


I had started with a local repository on my Mac. About git clone-bar, an additional central repository was created. But still there is no connection between the two. This is done through an entry in the configuration file of the local Git repositories.

  ~ / workspace / testGroovy > Cd ~ / workspace / test groovy
 .git / config > Vi. Git / config
    ...
    # Connect to the central repository
    ] [Remote "origin"]
         :refs / remotes / origin /* fetch = + refs / heads / *: refs / remotes / origin / *
         path / to / git / testGroovy.git url = / full / path / to / git / testGroovy.git
    ] [Branch "master"]
         remote = origin
         master merge = refs / heads / master 

Conclusion:
A little configuration is necessary even if you want to use to speak with both centralized and decentralized Git repositories. For this effort, but you get a very powerful, very stable and fast version control system that does not require a connection to a central repository.

Links:
[1] git-core - Core packages for Ubuntu
[2] git-osx-installer - Google Code Project
[3] German short git tutorial - on interaktionsdesigner.de
[4] German short git tutorial - on-line tutorials.net
[5] detailed German Git Tutorial - Stanford University
[6] EGit - Eclipse plugin for Git

gklinkmann written by \ \ tags: , , , ,

September 30

I just got an article on the 100 vim commands read that every programmer should know.
The vim (Vi IMproved) I've been here on the blog once briefly .

In reviewing the list of 100 best vim commands, I have once again learned a lot about these consoles editor, but also well-known old and cherished features discovered. My absolute favorites are:

  • : To turn syntax on syntax highlighting (syntax highlighting)
  • the commands to indent code
    : Set autoindent Indent turn
    : Set switch on smart indent smart indenting
    : Set shiftwidth = 4 Set of 4 spaces as Einrückgröße
    ctrl-t, ctrl-d A / disengagement of the insert mode
    Engagement in the command mode >>
    Disengagement in the command mode <<
  • Interacting with Unix
    : Run the pwd "pwd" unix command and then return to vim
    ! Run the pwd "pwd" unix command and insert the output into the file
    Sh temporary trip to the Unix Shell
  • :% S / old / new / g replace "old" with "new" in the entire file

What are editors for the console you use? And if vim is, on what commands could not do without her?

gklinkmann written by \ \ tags: , , ,

September 14

Linux for old rabbit is a Klax, but because it usually only once per computer, makes me wonder every time when setting up a computer with Windows and Linux - what was that?

Actually, it's not that hard. First you have the UID's of the Windows partition to determine:

  blkid > Sudo blkid
 sda2: UUID = "8A4831E44831CFA5" LABEL = "Volume" TYPE = "ntfs" / Dev / sda2: UUID = "8A4831E44831CFA5" LABEL = "Volume" TYPE = "ntfs"
 sda5: UUID = "A020173420B4E2A8" TYPE = "ntfs" / Dev / sda5 UUID = "A020173420B4E2A8" TYPE = "ntfs" 

then create directories for the mount points:

  / media / windows > Sudo mkdir / media / windows
 / media / windows / C > Sudo mkdir / media / windows / C
 / media / windows / D > Sudo mkdir / media / windows / D 

then the file / etc / fstab to permanently integrate the partitions:

  / etc / fstab > Sudo vi / etc / fstab
 # Add rows
 media / windows / C ntfs-3g defaults, nls =utf8, uid = 0 , gid = 46 0 0 8A4831E44831CFA5 UUID = / media / windows / C ntfs-3g defaults, nls = utf8, uid = 0, gid = 46 0 0
 media / windows / D ntfs-3g defaults, nls =utf8, uid = 0 , gid = 46 0 0 A020173420B4E2A8 UUID = / media / windows / D ntfs-3g defaults, nls = utf8, uid = 0, gid = 46 0 0 

To mount the ntfs-3g driver is used, which is already part of the major distributions (tested on Kubuntu 9.04). What's missing is the very first:

  -a > Sudo mount-a 

Finish.

Links:
ubuntuusers.de - integrate Windows partitions

gklinkmann written by \ \ tags: , , , , ,