Een aantal toetsencombinaties die je gewend bent op Linux zijn soms hetzelfde, soms net iets anders op mac. Hier een paar tips.

Diodon: Dé klembordmanager voor Unity?

by Digiplace on 14/05/2013

Gnome Shell of Ubuntu’s Unity komen niet standaard met een klembord manager op de proppen. Maar zoals altijd valt er genoeg te vinden in Ubuntu’s Softwarecentrum. Parcellite werkt echter bij mij niet goed onder Ubuntu 13.04 (Unity).

Clipit is een fork van Parcellite en lijkt dan wel beter te werken, maar als je dan eens gaat kijken onder Gnome Shell dan valt op dat Clipit daar twee keer wordt geladen. En je moet sowieso zelf actie ondernemen om deze applicatie in je opstarttoepassingen te krijgen.

De ontwikkelaar van Clipit heeft overigens grote problemen met Gnome 3 en is zelf overgestapt naar KDE. Kortom..de hoogste tijd om eens een andere klembord manager te zoeken.

Diodon

Gelukkig is er een uitstekend alternatief: Diodon.

Diodon klembord manager

Het is gewoon te vinden in Ubuntu softwarecentrum. Het nestelt zich automatisch in je opstarttoepassingen, je kan het eventueel zelfs integreren in Unity’s Dash. Er verschijnt ook maar één exemplaar onder Gnome Shell en tot slot plaatst Diodon een aantrekkelijk icoon (de paperclip) in je panel.

Diodon paperclip icon

Werken met Github

by tonk on 13/05/2013

Werken met Github

Al enige tijd werk ik met Github, een site waar je
als open source ontwikkelaar, gratis, je projecten kunt hosten.

Ik heb daar in de loop der jaren al wat projecten op gezet die,
natuurlijk, door iedereen vrij te gebruiken zijn.

Sinds enige tijd ben ik ook een van de, hobbymatige, ontwikkelaars van
het Ansible configuratie tool en ik heb ook al een
aantal patches ingediend.

Maar bij het indienen van die patches ontstaat vaak een probleem.
Aangezien git het beleid heeft om vaak te committen (en ik dat ook
trouw doe), blijkt het erg onhandig om dit soort patches op een goede
manier in te dienen. Het verzoek van de beheerder van de hoofdtak zal
dan ook zeker zijn on squashed commits, het tot een commit
samengevoegde commits, in te dienen. Dit gaat goed, totdat er een
aanpassing gemaakt moet worden aan de al ingediende patch. Er blijken dan
altijd conflicten te ontstaan, die weer lastig op te lossen zijn.

Na een tijd zoeken en proberen heb ik de volgende werkwijze ontwikkeld,
die goed werkt:

  • Als je het nog niet hebt, maak dan een account aan op github
  • Zorg dat git goed geconfigureerd is:

    git config --global user.name 'Ton Kersten'
    git config --global user.email 'Ton.Kersten@ATComputing.nl'
    
  • Kopieer het gewenste project op github naar je eigen account, oftwel
    "Maak een vork"

  • Kloon deze vork naar je eigen PC om zelf wijzigingen aan te brengen

    git clone https://github.com/tonk/ansible
    
  • In de meeste gevallen is het wel aan te raden om eerst een nieuwe tak
    te starten, omdat je in github slechts 1 patch-aanvraag per tak
    mag hebben.

    git checkout -b nieuwetak
    
  • Nu kun je allerlei aanpassingen maken, committen, testen en verder
    alles wat je normaal genomen in een ontwikkeltraject doet.

  • Als je nieuwe optie of bugfix de ultieme status bereikt heeft, dan kun
    je deze opsturen naar je eigen github repository. Maar eerst moet je
    alle tussentijdse commits samenvoegen tot een commit

    git checkout master
    git merge --squash -s subtree --no-commit -m 'De ultieme patch' nieuwetak
    
  • en bevestig deze samengevoegde set

    git commit -m 'De ultieme patch' -a
    
  • en stuur hem op

    git push origin master
    

Nu is de patch aangeland in de github repository. Via de web interface
kun je nu een pull request sturen naar de beheerder van de hoofd
repository van het softwareproject. Deze zal de patch beoordelen en
eventueel accepteren.

Maar, wanneer het noodlot en de beheerder wil dat je nog wat
veranderingen aan je patch aanbrengt, dan moet je met wat zaken rekening
houden. De kans is namelijk vrij groot dat het project op het internet
gewoon doorontwikkeld is en dus niet meer in lijn is met je eigen,
lokale, repository. Wanneer je nu gewoon een update (git pull) zou
doen, dan ontstaat er een conflict tussen je eigen aanpassingen en de
aanpassingen op het web. Hier dien je dus terdege rekening mee te
houden.

De juiste manier is dan ook om je lokale boom te updaten en daarna je
eigen veranderingen hier weer overheen te spoelen. Dit klinkt
omslachtig, maar kan met een commando

git pull --rebase

Als je nu weer een checkout doet van je eigen tak, dan kun je daar
verder in ontwikkelen, zonder dat er conflicten ontstaan.

git checkout nieuwetak

en na het maken van de gewenste aanpassingen weer

git checkout master
git merge --squash -s subtree --no-commit -m 'De ultieme patch MK-II' nieuwetak
git commit -m 'De ultieme patch deel 2' -a
git push origin master

Het is hierna niet nodig om een nieuw pull request te sturen, omdat
github aan de commits kan zien dat dit bij de vorige hoort. Er zal dan
ook automatisch een signaal worden gestuurd naar de beheerder van de
hoofdtak.

Op deze manier is het mogelijk om met grote groepen ontwikkelaars,
gezamenlijk aan een project te werken, zonder in elkaars vaarwater te
zitten.

Als je in het bestand ~/.gitconfig het volgende opneemt

[alias]
    timeline = log --graph \"--pretty=format:%C(192)%h%Creset by %C(bold magenta)%an%Creset (%ar)%C(182)%d%Creset%n%s%n%b\" --all

kun je met het command

git timeline

heel mooi zien hoe de takken verlopen.

Een klein voorbeeld uit de Ansible boom is

* |   611705d by Michael DeHaan (2 days ago)
|\ \  Merge pull request #2891 from glensc/make-nosetests
| | | make path to nosetests executable configurable
| * | a067877 by Elan Ruusam<C3><A4>e (2 days ago)
| | | make path to nosetests executable configurable
| | | this is to make use python2 when nosetests points to python3:
| | | 
| | | make NOSETEST=nosetests-2.7 tests
| | |      
* | |   2e2226a by Michael DeHaan (2 days ago)
|\ \ \  Merge pull request #2889 from caredotcom/newrelic_deployment_notification
| | | | newrelic_deployment notification module
| * | | 5e3ccc3 by Matt Coddington (3 days ago)
| |/ /  newrelic_deployment notification module
| | |      
* | |   de7829b by Michael DeHaan (2 days ago)
|\ \ \  Merge pull request #2888 from fabulops/campfire_notification
| | | | Campfire Notification Module
| * | | cebdcaa by Adam (3 days ago)
| |/ /  Campfire Notification Module
| | |      
* | |   cfe86be by Michael DeHaan (2 days ago)
|\ \ \  Merge pull request #2887 from caredotcom/flowdock_notification
| | | | flowdock notification module
| * | | 22ca463 by Matt Coddington (3 days ago)
| |/ /  flowdock notification module
| | |      
* | |   ec18467 by Michael DeHaan (2 days ago)
|\ \ \  Merge pull request #2886 from fesplugas/devel
| | | | Fixed Typo
| * | | 5b6087c by Francesc Esplugas (3 days ago)
| |/ /  s/temlpate/template

Onderstaand script laat op eenvoudige wijze de hierboven beschreven
werkwijze zien, door een omelet te bakken ;-)

#!/bin/bash
# vi: set sw=4 ts=4 ai:

#- Redirect stderr to stdout (just so I can use '| less')
exec 2>&1

width=80
l="$(printf "%-${width}s" "")"
l="${l// /-}"

TOP="$(pwd)"

say()
{   printf -- "\n--- %s %s\n" "${*}" "${l}" | cut -c 1-${width}
}

gitcmd()
{   printf -- "\n--- git %s %s\n" "${*}" "${l}" | cut -c 1-${width}
    git "${@}" 2>&1 | sed 's/^/        /'
    # printf -- "${l}\n"
}

rm -rf upstream developer_1 developer_2

mkdir upstream
cd "${TOP}/upstream"
say 'Creating bare repository'
gitcmd --bare init

say 'Clone into developer_1'
cd "${TOP}"
gitcmd clone upstream developer_1
cd "${TOP}/developer_1"

say 'Adding eggs'
echo 'You need eggs' > eggs
printf "\n"
gitcmd add eggs
gitcmd commit -m 'Eggs are needed for an omelette' eggs

say 'Creating omelette branch'
gitcmd checkout -b omelette

say 'Adding chives'
echo ' And chives are nice' > chives
gitcmd add chives
gitcmd commit -m 'Chives are nice' chives
#
say 'Adding seasoning'
echo 'Pepper and salt is the bare minimum' > seasoning
gitcmd add seasoning
gitcmd commit -m 'Add some flavor' seasoning

say 'Returning to master'
gitcmd checkout master

say 'Squashing omelettes'
gitcmd merge --squash -s subtree --no-commit -m 'Start of the omelette' omelette

say '-> Committing omelettes'
gitcmd commit -m 'Commit of the omelette' -a

say 'Pushing to master branch'
gitcmd push origin master

#- To the second tree --------------------------------------------------------

say 'Clone into developer_2'
cd "${TOP}"
gitcmd clone upstream developer_2
cd "${TOP}/developer_2"

say 'Adding bacon'
echo 'Bacon' > bacon
gitcmd add bacon
gitcmd commit -m 'Bacon for the flavor' bacon

say 'Adding an onion'
echo 'Onion, finely chopped' > bacon
gitcmd add bacon
gitcmd commit -m 'Onion because I like it' bacon

say 'Pushing to master branch'
gitcmd push origin master

#- Back to the original tree -------------------------------------------------

say 'Back to tree developer_1'
cd "${TOP}/developer_1"

say 'Update tree developer_1'
gitcmd pull --rebase

say 'Back to the omelette branch'
gitcmd checkout omelette

say 'Changing eggs'
echo 'You need eggs. At least two of them' > eggs
gitcmd commit -m 'Extra eggs' eggs

say 'Back to the master branch'
gitcmd checkout master

say 'Squashing omelettes with extra eggs'
gitcmd merge --squash -s subtree --no-commit -m 'Omelette with extra eggs' omelette

say 'Commit all'
gitcmd commit -m 'The new and improved omelette' -a

say 'Pushing to master branch'
gitcmd push origin master

#- Resync the second tree ----------------------------------------------------

say 'Resyncing developer_2'
cd "${TOP}/developer_2"
gitcmd pull --rebase

Ubuntu, een iPhone en een iPad, samen in de Cloud zonder iTunes

by McVries 06.05.2013

Aldus, voor mijn werk gebruik ik een laptop (HP) en een iPad (geen HP) en daarnaast heb ik zelf een tweedehands iPhone 4 op de kop getikt.  En ik moet eerlijk toegeven, die apparaten werken best prettig. Het grootste nadeel van de iApparaten (in het dagelijks gebruik!) vind ik eigenlijk iTunes. Daar heb ik in het verleden al wat meer over gepost. Maar inmiddels gebruik ik iTunes al een hele tijd niet meer en langzamerhand kom ik erachter dat ik die software dus ook helemaal niet nodig had.

Een overzicht:

  • Muziek : Spotify heeft een hele leuke linux client. Deze speelt muziek af uit de Spotify spotifybibliotheek, maar je kan er ook je lokale muziek mee beheren, beluisteren en laten synchroniseren met een iPhone die van  hetzelfde wifi netwerk gebruik maakt.
  • Lees verder..

Lees het volledige artikel →

MOD – your next digital pedalboard

by Jeremy 03.05.2013

Tja wat moet ik hier nou over zeggen? Check het zelf uit, fantastisch idee, een digitale gitaar FX processor die geheel op Linux draait en gebruik maakt van het LV2 plug-in framework.

MOD Quadra prototype
En ja het is de bedoeling dat dit apparaa…

Lees het volledige artikel →

Google Keep in Ubuntu Launcher

by Digiplace 03.05.2013

Google heeft met Google Keep een concurrent op de markt gebracht voor Evernote. Je kan Google Keep heel eenvoudig in je Ubuntu Launcher verkrijgen als je ook Chrome of Chromium-browser gebruikt. Installeer eerst Google Keep in je Chrome browser. Eenmaal geïnstalleerd zoek je naar de Google Keep app in je Chrome browser. Klik daar met je rechtermuisknop [...]

Lees het volledige artikel →

Ubuntu 13.04 : wifi als een stoorzender? (Broadcom 802.11 Linux STA-stuurprogramma)

by McVries 28.04.2013

Spoiler alert: Schakel het Broadcom 802.11 Linux STA-stuurprogramma uit en je bent verlost van een aantal ‘vage’ problemen.

Na de schone installatie van Raring Ringtail toog ik als rechtgeaarde Geek fluitend aan het werk. Klikkend op schermpjes (Snel!), bekijken van nieuwe applicaties (Friends!) en het aanpassen en updaten van alles wat aangepast en geupdate moest worden. Geek Play op z’n best. En de eerste indrukken? Af! Netjes! Snel! Het jaar van de Linux Desktop komt er aan! (He, een mens mag dromen, toch?)

Maar na een aantal dagen begon ik een bepaald patroon te zien. Zodra ik tevreden geekend achter de nieuwe installatie zat, (20 tabbladen in Chrome, Walking Dead streamend in vlc vanaf de server, typend in LibreOffice, GooglePlussend en lezend in de het Nederlandse Ubuntu Forum) begon de rest van het gezin te klagen.… Lees verder..

Lees het volledige artikel →

Ubuntu 13.04

by Digiplace 26.04.2013

Je kan er de klok op gelijk zetten. Elk jaar komen er twee releases uit van Ubuntu. De eerste van dit jaar is nu verschenen. Ubuntu 13.04 heeft het levenslicht gezien. Helaas zal dat niet lang duren want Canonical heeft bekend gemaakt dat we maar 9 maanden van haar mogen genieten. Alleen de zogenaamde Long [...]

Lees het volledige artikel →

13.04 is uit.

by McVries 25.04.2013

Raring Ringtail oftwel Ubuntu 13.04 is vanaf ubuntu.com nu officieel te downloaden!… Lees verder..

Lees het volledige artikel →

Linux als ‘Terminalserver’

by McVries 24.04.2013

kw-tutIn de categorie ‘tips’, kijk eens naar deze tutorial van KnighWise. Hij legt hier in uit hoe je op Ubuntu een NX-server van Nomachine installeert. Ik heb de tutorial gevolgd, en om het helemaal volgens de letter van zijn tutorial voor elkaar te krijgen moest ik nog wel lubuntu als desktop er bij installeren (sudo apt-get install lubuntu). Dit omdat de NX server de default desktop schijnbaar niet geladen krijgt.

En waarom wil je dit? Een korte uitleg:

Als echte geek heb je ergens een ‘zwaardere’ machine draaien als hoofddesktop of thuisserver. Maar waarschijnlijk heb je elders in het huis nog een aantal andere, misschien kleinere, machines draaien. Met deze software kun je dan met meerdere mensen tegelijk gebruik maken van de kracht van je ‘hoofdmachine’.… Lees verder..

Lees het volledige artikel →

Optimale configuratie Linux voor herinstallaties

by Leo 23.04.2013

Je kent die situaties wel. Als er een nieuwe versie van je Linux distributie wordt uitgegeven wil je upgraden, maar dat duurt, afhankelijk van je computer, 2 tot 3 uur. Het liefst zou je alles opnieuw willen installeren, maar dan … Lees verder

Lees het volledige artikel →

Herhaling: waarom ik niet op facebook zit

by pablo 17.04.2013

Soms moet je evidente dingen toch nog eens herhalen…

Alternatieven: identi.ca
Reddit en Diaspora

Lees het volledige artikel →

Maak een webapp met behulp van een Google Chrome snelkoppeling

by Digiplace 16.04.2013

Als Ubuntu gebruiker staan er in de starterbar verschillende applicaties klaar voor gebruik. Dat is toch wel een van de mooiste features die Unity heeft te bieden. Maar steeds meer applicaties worden online gebruikt. Zo gebruik ik graag Evernote als kladblok, Tweetdeck als twitter cliënt en Feedly voor het lezen van mijn feeds. Je moet daarvoor dus [...]

Lees het volledige artikel →

Raspberry Pi als virtuele gitaarversterker: MIDI en effecten

by Jeremy 15.04.2013

Live demo van m’n Raspberry Pi, guitarix en een MIDI floorboard.

Lees het volledige artikel →

KDE 4: Desktop verschuift (is groter dan scherm)

by pinguim 15.04.2013

Toevallige toetsencombinatie Midden in een of andere complexe installatie zit ik heen en weer te swappen tussen verschillende vensters en schermen (ALT-TAB of CTRL-F1, CTRL-F2, ..), commando’s te tikken in een Kde Konsole, ondertussen de evolutie van downloads en installatie-stappen volgend op schermen die onder een ander scherm zijdelings uitkijken. In mijn snelle getik gebeurt [...]

Lees het volledige artikel →