torsdag 27 juni 2013

Lås fokus med iPhone-kameran

Kameran i 3gs och senare modeller har autofokus. Om man bara trycker på foto-knappen försöker telefonen själv hitta en lämplig fokuspunkt, om den inte duger kan man alltid trycka på skärmen. Igår lärde jag mig att om man håller inne på skärmen en liten stund, så kommer kameran låsa fokuspunkten. Något som kan vara väldigt användbart om man vill fokusera bakom någonting eller har problem att fota något som är väldigt nära.

onsdag 26 juni 2013

Could not open a connection to your authentication agent.

När jag försöker lägga till en privat ssh-nyckel med hjälp av ssh-add möts jag av följande;
"Could not open a connection to your authentication agent."

Problemet ligger i att antingen ssh-agent inte körs eller att systemvariablerna som behövs inte är uppsatta.

Jag börjar med att försäkra mig om att ssh-agent inte körs.
sudo killall ssh-agent

Därefter lägger jag till systemvariablerna från ssh-agent med eval.
eval `ssh-agent`

Efter detta går det fint att köra
ssh-add minNyckel

En alternativ lösning är att sätta upp ett temporärt skal med miljövariablerna.
exec ssh-agent bash
Efter man kört kommandot kommer en ny bash-instans startas upp där man kan köra ssh-add.

Källor:
tmtk75
techotom

tisdag 25 juni 2013

Vilket apt-paket tillhör en fil?

Om man vill ta reda på vilket apt-paket en fil tillhör kan man göra det med verktyget apt-file.

Installera
sudo apt-get install apt-file

Uppdatera apt-files databas
sudo apt-file update

Sök efter filen
apt-file search mittFilnamn

lördag 15 juni 2013

Internetradio via pls-filer i mpg123

När jag skulle spela upp internetradio med min raspberry pi märkte jag att mpg123 inte hanterar pls-filer som ofta är standard.
Lösningen är att ladda hem pls-filen, öppna den i en texthanterare och sedan välja en av de mirrors som finns i filen.

Som exempel kan vi använda radioseven. Deras ström finns på www.radioseven.se/128.pls

Jag börjar med att hämta pls-filen
wget www.radioseven.se/128.pls

Jag tittar sedan i filen
pi@raspberrypi ~ $ cat 128.pls
[playlist]

File1=http://sc5.radioseven.se:80
Title1=Radioseven - www.radioseven.se
Length1=-1

File2=http://sc5.radioseven.se:8500
Title2=Radioseven - www.radioseven.se
Length2=-1

File3=http://sc9.radioseven.se:8500
Title3=Radioseven - www.radioseven.se
Length3=-1

File4=http://sc2.radioseven.se:8500
Title4=Radioseven - www.radioseven.se
Length4=-1

File5=http://sc3.radioseven.se:8500
Title5=Radioseven - www.radioseven.se
Length5=-1

NumberOfEntries=5
Version=2


Här kan man se de olika strömmarna, jag väljer att spela upp den första.
mpg123 http://sc5.radioseven.se:80

Färdigt!

Autostart av network-manager i Xubuntu

Jag hade mycket problem med att tjänsten network-manager inte autostartade i Xubuntu. Det första jag prövade var att återställa tjänsten så den hamnade som ett uppstartsjobb.
sudo update-rc.d network-manager defaults

I mitt fall hjälpte dock inte detta, så jag bestämde mig för att kolla skriptet som styr över uppstartsjobbet för network-manager.

sudo nano /etc/init/network-manager


I filen hittade jag följande:
start on (local-filesystems
and started dbus
and static-network-up)
stop on stopping dbus


En snabb googling visade att static-network-up är en signal som kommer när jag fått ip-nummer. Men utan network-manager kan jag inte få ip-nummer till mitt wlan-kort, därför kommer network-manager aldrig att autostarta.

Jag tar därför bort static-network-up ur /etc/init/network-manager
start on (local-filesystems
and started dbus)
stop on stopping dbus


Efter en omstart vaknar network-manager precis som den ska, datorn ansluter till wlan och jag får ip!

lördag 8 juni 2013

Ubuntu väntar på nätverk vid uppstart

En av mina Ubuntu-maskiner har oftast inget nätverk vid uppstart. Av någon anledning förväntar sig installationen att det ska finnas nätverk. Av denna anledning väntar den först 40 sekunder på nätverksanslutning och sedan ytterligare 60 sekunder när detta misslyckas.

Under uppstarten står meddelandet "Waiting for network configuration" och "Waiting up to 60 seconds for network configuration".

En lösning på detta är att modifiera skriptet som körs vid uppstart;
sudo nano /etc/init/failsafe.conf

Leta reda på och kommentera bort följande rader:
$PLYMOUTH message --text="Waiting for network configuration..." || :
sleep 40

$PLYMOUTH message --text="Waiting up to 60 more seconds for network configuration..." || :
sleep 59

$PLYMOUTH message --text="Booting system without full network configuration..." || :


onsdag 5 juni 2013

Gerrit och Gitweb i Ubuntu Server

Installation av gerrit & gitweb i Ubuntu server.

Detta är en grundläggande guide som tar med samtliga installationssteg. Guiden är utförd på Ubuntu Server 11, men samma steg bör gälla även för nyare versioner.

Jag har valt att använda OpenJDK och MySQL, men så klart fungerar även andra databaser och JDKer.
Huvudsakligen kommer mina instruktioner från den officiella gerrit-dokumentationen. När artikeln skrevs, 2012, var en del fel i dokumentationen och det var därför jag skrev denna artikel.

Installation av nödvändiga paket
1. Se till att alla paket är uppdaterade
sudo apt-get update
sudo apt-get upgrade

2. Installera nödvändiga paket för denna guide
sudo apt-get install mysql-server apache2 openjdk-7-jre git

The installation will ask you for a root password for the mysql database, choose a secure password. This password is only for the mysql database.

3. Jag väljer att installera gitweb separat, eftersom det kan bli problem om man försöker installera den före Apache:
sudo apt-get install gitweb

Installation av gitweb
1. Redigera konfigurationsfilen för gitweb
sudo nano /etc/gitweb.conf

Ändra
$projectroot = "/var/cache/git";

till
$projectroot = "/home/gerrit2/gerritSite/git";

2. Starta om Apache
sudo /etc/init.d/apache2 restart

3. Lägg till ett användarkonto för Gerrit
sudo adduser gerrit2

Konfigurering av MySQL

1. Nu ska vi skapa tabeller för Gerrit, börja med att starta MySQL som root.
mysql -u root -p

Observera att detta är rootlösenordet till MySQL-databasen och inte till Linux.

2. Skriv av följande rader nedan, tryck enter för varje ny rad. Har du en vettig terminal går det även att göra copy paste. Glöm inte att byta ut "myPassword" mot något säkrare!

CREATE USER 'gerrit2'@'localhost' IDENTIFIED BY 'myPassword';
CREATE DATABASE reviewdb;
ALTER DATABASE reviewdb charset=latin1;
GRANT ALL ON reviewdb.* TO 'gerrit2'@'localhost';
FLUSH PRIVILEGES;

Avsluta genom att skriva
exit

Installation av Gerrit
1. Byt till gerrit2-användaren.
sudo su gerrit2

2. Gå till hemmappen
cd ~/

3. Ladda hem gerrit (länk är till senaste versionen 2013-06-05)
wget https://gerrit.googlecode.com/files/gerrit-2.5.4.war

4. Kör war-paketet, detta kommer starta en installationsguide.
java -jar gerrit-2.2.1.war init -d gerritSite

5. Starta gerrit
./gerritSite/bin/gerrit.sh start

Gerrit kan också startas om eller stoppas med följande kommandon
./gerritSite/bin/gerrit.sh restart
./gerritSite/bin/gerrit.sh stop

Mercurial-server och hgweb i Ubuntu Server

Jag installerade Mercurial Server på jobbet. En programvara för att administrera rättigheter och repon till Mercurial. När jag ändå hade det färskt tänkte jag passa på att posta det här.

Jag utgår från att man redan har en färdiginstallerad maskin med Ubuntu Server. Maskinen som jag installerade detta på körde Ubuntu Server 11, men proceduren borde vara precis samma på nyare versioner.

1. Börjar med att se till att alla paket är uppdaterade.
sudo apt-get update
sudo apt-get upgrade

2. Installera mercurial-server och apache2
sudo apt-get install mercurial-server apache2

3. Skapa hgweb.config
sudo nano /var/lib/mercurial-server/repos/hgweb.config

Lägg till följande text i filen:
[collections]
/var/lib/mercurial-server/repos/ = /var/lib/mercurial-server/repos/

4. Skapa index.cgi och folderstruktur
sudo mkdir /var/www/cgi-hg
sudo cp /usr/share/doc/mercurial-common/examples/hgweb.cgi /var/www/cgi-hg/index.cgi

5. Redigera index.cgi
sudo nano /var/www/cgi-hg/index.cgi

Ändra följande rad från:
config = "/path/to/repo/or/config"

till:
config = "/var/lib/mercurial-server/repos/hgweb.config"

6. Lägg till en root-användare för mercurial-server
Kopiera din publika SSH-nyckel till /etc/mercurial-server/keys/root/

Om du behöver skapa en SSH-nyckel kan detta göras med putty-keygen från Windows.
I unixoperativ kan man använda ssh-keygen kommandot.

Efter att SSH-nyckeln blivit tillagd behöver mercurial-server uppdateras för att hitta nya användare.
sudo -u hg /usr/share/mercurial-server/refresh-auth

7. Lägg till fler användare
Börja med att klona ut hgadmin-mappen från servern
clone ssh://hg@your-server/hgadmin

I din utklonade mapp ska du nu skapa följande undermappar:
keys
keys/root
keys/users

För att skapa en användare gör du en ny mapp med användarens namn, du lägger sedan hans SSH-nyckel i denna mappen. Slutligen lägger du detta i antingen root eller users och pushar tillbaka ändringarna.

Exempelvis
keys/root/enAdmin/publikNyckel
keys/users/SvenH/publikNyckel

Om du behöver ta bort en användare så tar du bort hans mapp och pushar in ändringen.

8. Konfigurera Apache

Vi börjar med att skapa en virtuell host åt Apache för att peka ut mercurial-repon.

sudo nano /etc/apache2/sites-available/default
Lägg till följande i botten av filen men ovanför taggen.
Alias /hg /var/www/cgi-hg

DirectoryIndex index.cgi
AddHandler cgi-script .cgi
Options ExecCGI
Order allow,deny
Allow from all


Slutligen, ge Apache access till hg-mapparna
sudo chown www-data:www-data -R /var/lib/mercurial-server/repos

Källor
Mercurial-server http://dev.lshift.net/paul/mercurial-server/docbook.html
Apache Configuration http://redline6561.livejournal.com/362393.html