Antons blogg om elektronik och Linux

9 april, 2011

Enkel visitkortsdesign i Ubuntu med gLabels

Filed under: DIY,Ubuntu-tips — Anton @ 10:06
Tags: , , , , ,

Inledning

För någon månad sedan behövde jag göra visitkort till mitt UF-företag Nästa Lektion UF. Du kan läsa om Ung Företagsamhet här. Frågan var vilket program som var bäst till det i en Linuxmiljö, då de flesta exempel jag sett riktar sig mot Microsoft Publisher eller diverse Adobe-program. Det finns ett par mallar till OpenOffice.org att hämta, men dessa är ofta i fel storlek eftersom det inte finns någon självklar standardiserad storlek på visitkort. Dessutom är OOo:s avancerade funktioner tämligen obegripliga för många, mig själv inkluderad. Ett annat vanligt alternativ som många använder är att göra visitkorten i Inkscape, ett fritt alternativ till Adobe Illustrator. Problemet är att Inkscape har en ganska hög inlärningströskel och tiden räckte helt enkelt inte till för att lära mig det. Till slut hittade jag en bra guide för programmet gLabels, ett program för GNOME-miljön som används för att skapa visitkort och etiketter i ett enkelt gränssnitt. Jag tänker därför summera kort hur jag gjorde i Ubuntu 10.10.

(more…)

Annonser

4 februari, 2011

Nybörjarguide till CentOS: Minecraft-server och seedbox

Filed under: Linux,Terminal — Anton @ 22:38
Tags: , , , , , ,

Jag och ett par bekanta har på senare tid blivit smått beroende av spelet Minecraft. Därför tyckte jag att det kunde vara spännande att sätta upp en egen server för oss att spela på. Eftersom mitt eget bredband skulle haverera om jag ens försökte köra en server här hemma så fick det bli någon form av inhyrd server. Dessutom kommer jag eventuellt få möjlighet att komma över en inbjudan till ett privat Bittorrent-nätverk, och då gäller det att ha något ordentligt att seeda med för att inte bli utkastad på direkten. Efter att ha läst lite på diyseedbox.com bestämde jag mig för att försöka komma över en billig så kallad VPS som kommer att köra min Minecraft-server samt en Bittorrentklient.

Efter lite prisjämförelser landade valet på City Cloud. De har en månadskostnad på cirka 180 kr vilket inte är det billigaste alternativet, men fördelen är att servern bara kostar pengar när den används. Avstängd kostar den bara runt 50 kr per månad för själva lagringsutrymmet på servern och ungefär 20 öre i timmen då den är påslagen. Jag räknar därför med att få betala cirka 70-90 kr per månad med min nuvarande användning.

Som operativsystem valde jag CentOS 5.5 eftersom det har ryktet att vara både stabilt och säkert och även är ett av de vanligaste operativsystemen för just servrar. Dessutom ville jag lära mig något nytt efter att nästan uteslutande sysslat med Ubuntu de senaste åren. Nedan följer guider för hur själva operativsystemet konfigurerades och hur Minecraft-servern och Bittorrent-klienten installerades. De båda tjänsterna fungerar oberoende av varandra och du behöver givetvis inte installera båda om du inte vill.
(more…)

16 januari, 2011

Paketinstallationsskript

Jag har i dagarna byggt mig en ny dator – på riktigt den här gången. Det kanske inte är så vansinnigt intressant för er att veta så jag hoppar över detaljerna och nöjer mig med en liten bild:

Något som kanske är betydligt mer intressant för er, kära läsare, är (förutom mitt nya minimalistiska WordPress-tema :)) mitt senaste skript: en paketinstallerare för Ubuntu. Visserligen startade mitt gamla Ubuntu-system upp på den nya datorn som om inget hade hänt (något som inte kan sägas om Windows XP), men eftersom den nya processorn var 64-bitarskapabel krävdes ändå en ominstallation för att kunna använda den fullt ut. Att sitta och manuellt installera om alla program efteråt är dock inte särskilt kul så därför uppfann jag ett skript som gör det åt mig efter kommande Ubuntu-installationer. Skriptet läser paket från en lista som sparas i en separat fil, kontrollerar vilka som finns tillgängliga och installerar sedan allt. Det kan även lägga till PPAn som sparas i en annan fil. Genom att köra exempelvis

sudo ./paketinstallerare.sh ppa install upgrade

kommer skriptet att lägga till PPAn, uppdatera förråden, installera alla paket i paketlistan samt uppgradera alla paket. Du bör ange ppa före install för att skriptet även ska kunna installera de paket som inte finns i Ubuntus standardförråd. För att se alla alternativ kan du köra skriptet utan argument. Det finns en specialare som ser ut så här:

sudo ./paketinstallerare.sh spotify

som lägger till Spotifys förråd, GPG-nyckel samt installerar programmet. Denna specialåtgärd krävs eftersom Spotify angett en deb-rad som ska rakt in i /etc/apt/sources.list istället för en vanlig ppa:-rad.

Nedan följer skriptet i sin helhet. Missa inte heller min helt nya skriptsamling här på bloggen, där jag samlar mina allra bästa skript. Eftersom vi svenskar är lite intelligentare än amerikaner behöver jag säkert inte gå igenom att du använder mina skript helt på egen risk och att jag inte kan garantera deras funktion på ditt system 😉

#!/bin/bash
# Installerar allt du kan tänkas behöva. Lägg alla paket att installera i ./paketlista
# (ett paket per rad) och alla PPA att lägga till i ./ppalista (ett ppa per rad).

if [ "$UID" != 0 ]; then
 echo "Skriptet behöver köras som root (sudo $0)"
 exit 1
fi

show_usage () {
 echo "Användning:"
 echo -e "$0 install\tInstallera paket från paketlista"
 echo -e "$0 remove\tTa bort paket från paketlista"
 echo -e "$0 ppa\tLägg till PPAn från ppalista"
 echo -e "$0 update\tUppdaterar förråden"
 echo -e "$0 upgrade\tInstallerar alla uppgraderingar"
 echo -e "$0 spotify\tInstallerar Spotify för Linux preview"
}

# inga argument
if [ "$#" == 0 ]; then
 show_usage
 exit 2
fi

# kontrollera att angivna kommandon finns
for arg in $@; do
 case $arg in
 install|remove|ppa|update|upgrade|spotify)
 ;;
 *) # skriptet kommer aldrig hit vid korrekt användning
 show_usage
 exit 2
 esac
done

for arg in $@; do
 case $arg in
 install) # installera program från paketlista
 if [ -f paketlista ]; then
 apt_ary=()
 fail_ary=()
 while read paket; do
 apt-cache show $paket &> /dev/null
 if [ "$?" == 0 ]; then
 apt_ary+=( $paket )
 else
 fail_ary+=( $paket )
 fi
 done < paketlista

 apt-get -y install ${apt_ary[@]}

 if [[ $fail_ary ]]; then
 echo "Följande paket kunde inte hittas:"
 echo ${fail_ary[@]}
 fi
 else
 echo "paketlista kunde inte hittas!"
 fi
 ;;
 remove) # ta bort program från paketlista (vad man nu skulle vilja göra det för)
 if [ -f paketlista ]; then
 apt_ary=()
 fail_ary=()
 while read paket; do
 apt-cache show $paket &> /dev/null
 if [ "$?" == 0 ]; then
 apt_ary+=( $paket )
 else
 fail_ary+=( $paket )
 fi
 done < paketlista

 apt-get -y remove ${apt_ary[@]}

 if [[ $fail_ary ]]; then
 echo "Följande paket kunde inte hittas:"
 echo ${fail_ary[@]}
 fi
 else
 echo "paketlista kunde inte hittas!"
 fi
 ;;
 ppa) # lägger till PPAn från ppalista
 if [ -f ppalista ]; then
 while read ppa; do
 add-apt-repository $ppa
 done < ppalista

 apt-get -y update
 else
 echo "ppalista kunde inte hittas!"
 fi
 ;;
 update) # uppdaterar förråd
 apt-get -y update
 ;;
 upgrade) # uppgraderar alla paket
 apt-get -y dist-upgrade
 ;;
 spotify) # installerar Spotify preview (en liten specialare)
 grep spotify /etc/apt/sources.list # kollar först om PPAet redan finns i sources.list
 if [ "$?" != 0 ]; then
 echo | tee -a /etc/apt/sources.list
 echo '# Spotify preview' | tee -a /etc/apt/sources.list
 echo 'deb http://repository.spotify.com stable non-free' | tee -a /etc/apt/sources.list
 gpg --keyserver wwwkeys.de.pgp.net --recv-keys 4E9CFF4E
 gpg --export 4E9CFF4E | apt-key add -
 apt-get -y update
 else
 echo "Spotifys PPA är redan installerat!"
 fi
 esac
done

Du måste själv skapa en fil med paket att installera som du döper till ”paketlista” och lägger i samma mapp som skriptet. En paketlista kan exempelvis se ut så här:

ubuntu-restricted-extras
amsn
build-essential
conky
gimp

Om du vill att skriptet ska lägga till PPAn åt dig behöver du skapa filen ”ppalista” som du också lägger i samma mapp som skriptet. En ppalista kan exempelvis se ut så här:

ppa:ubuntu-mozilla-daily/ppa
ppa:philip5/extra
ppa:stebbins/handbrake-releases

Skriv gärna en kommentar här nedan om du gillar skriptet eller om du har förslag på förbättringar 🙂

4 december, 2010

Komma åt ext4-partitioner i Windows med hjälp av VirtualBox forts.

Filed under: Linux,Terminal — Anton @ 14:04
Tags: , , , ,

För ett par månader sedan skrev jag om hur man med hjälp av en virtuell maskin kan använda filsystemet ext4 i Windows. Under tiden som har gått har jag ändrat några saker i konceptet. För att starta och stoppa maskinen lättare skrev jag ihop två små Batch-skript. Det första som startar maskinen döpte jag till Yeesha START.bat och innehåller följande:

@echo off 
echo Startar Yeesha... 
C:\Program\Oracle\VirtualBox\VBoxManage.exe startvm Yeesha 
echo Monterar Everdunes på W: 
pause 
net use W: \\yeesha\Everdunes /USER:anton 
echo Klar!

För att Windows ska få lite tid på sig att upptäcka Samba-utdelningen la jag in ett paus-kommando mitt i skriptet. Användaren måste alltså vänta någon sekund och sedan trycka enter för att montera hårddisken som en nätverksenhet.

Det andra skriptet som stoppar maskinen, eller egentligen pausar den och sparar tillståndet till nästa uppstart, döpte jag till Yeesha STOP.bat och innehåller följande:

@echo off 
echo Avmonterar Everdunes från W: 
net use W: /DELETE 
echo Stoppar Yeesha... 
C:\Program\Oracle\VirtualBox\VBoxManage.exe controlvm Yeesha savestate 
echo Klar!

Jag fick en kommentar från en läsare som undrar hur prestandan skiljer sig om man använder inställningen ”Paravirtualiserat nätverk (virtio-net)”. Jag är inte helt hundra på vad den inställningen gör, men enligt Virtualbox-manualen handlar det om att gästen använder ett särskilt sorts nätverkskort som inte behöver emuleras av värden, vilket ska ge ökad prestanda. Tydligen är det inte svårare att använda än att ändra i Virtualbox inställningar från ”Intel PRO/1000 MT Desktop” eller vad som nu är standard till ”virtio-net”. Det är fortfarande bryggat nätverk som används, men med en annan drivrutin. Efter det startade den virtuella maskinen utan problem tack vare att Linuxkärnan redan hade inbyggda drivrutiner för virtio-net. Jag gjorde ett par nya läs- och skrivtest med en 600 MB stor fil där jag även jämförde med det emulerade nätverkskortet ”Intel PRO/1000 T Server”

Lästest virtio-net: 12 MB/s
Skrivtest virtio-net: 11,4 MB/s
Lästest Intel PRO/1000 T Server: 11 MB/s
Skrivtest Intel PRO/1000 T Server: 12,2 MB/s

Resultaten skiljde sig mindre från varandra än jag hade väntat mig. Efter det tänkte jag testa med Intel PRO/1000 MT Desktop igen men råkade då klicka på knappen som genererar en ny MAC-adress och det var inte bra. Nästa gång jag startade den virtuella maskinen ville den nämligen inte kännas vid nätverkskortet! Efter någon timmes googlande efter en lösning utan resultat gav jag upp och återställde helt enkelt Virtualbox från en backup.

3 oktober, 2010

Ta bort reserverade block från en Truecrypt-volym

Filed under: Linux,Terminal — Anton @ 20:53
Tags: , , ,

Jag är en flitig användare av Truecrypt. Eftersom jag bara använder programmet i Ubuntu så formaterar jag alla krypterade volymer med ext3. Standard när ett sådant filsystem skapas är att 5 % av utrymmet reserveras till root. Detta bidrar till högre säkerhet på systempartitioner men på rena lagringsvolymer fyller det ingen annan funktion än att ta upp utrymme i onödan.

Många har nog hört talas om programmet tune2fs som kan användas direkt mot blockenheter för att minska antalet eller helt ta bort de reserverade blocken. Något jag upptäckte alldeles nyss är dock att programmet även kan användas på Truecrypt-volymer. Kommandot mount avslöjade att Truecrypt skapar en blockenhet under /dev när en volym monteras:

$ mount
...
/dev/mapper/truecrypt2 on /media/truecrypt2 type ext3 (rw)

Det gjorde det enkelt att ta bort de reserverade blocken med

$ sudo tune2fs -r 0 /dev/mapper/truecrypt2
tune2fs 1.41.11 (14-Mar-2010)
Sätter antal reserverade block till 0

Och vips har man fått lite mer plats i sin hemliga låda!

5 september, 2010

Komma åt ext4-partitioner i Windows med hjälp av Virtualbox

Filed under: Linux,Terminal — Anton @ 09:30
Tags: , , ,

Det har blivit dags för ny lagringshårddisk igen och jag står återigen inför det svåra valet om vilket filsystem jag ska välja.  Visserligen kör jag nästan enbart Ubuntu nuförtiden men de få gånger jag använder Windows XP behöver jag komma åt hårddisken även därifrån. NTFS hade varit det enklaste men det stödjer tyvärr inte POSIX-rättigheter och dessutom vill jag inte behöva defragmentera hårddisken hela tiden. Så det var uteslutet. Det finns ett par Windows-drivrutiner för ext2 (som även fungerar till ext3 eftersom det är bakåtkompatibelt), men det är kanske inte den optimala lösningen heller. Det finns dock ytterligare en lösning (förutom att använda en lagringsserver som kör Linux ständigt) som jag läst om på denna bloggen, och det är att köra någon minimal Linux-distribution i Windows genom Virtualbox. I den monterar man sin hårddisk med hjälp av ”raw disk access”, därefter delas den ut till Windows-värden med VirtualBox delade mappar eller Samba. Det tänker jag försöka täcka i denna guide.

(more…)

3 augusti, 2010

4chan download script for Linux

Filed under: Okategoriserat,Terminal — Anton @ 14:10
Tags: , , ,

Jag brukar ju vanligtvis skriva på svenska, men eftersom detta inlägget riktar sig mot en internationell publik tänker jag ta tillfället i akt och skriva det på engelska.

The 4chan download script

This is an update of the 4chan download script for Linux written by Daniel Triendl, http://blog.pew.cc/blog/4chan+download+script/

The modified script downloads every image file in a 4chan thread, preserving the original file names (not the incrementing numbers given by 4chan). Perfect for downloading entire sets of pictures or other original content. Tested on a few different boards but should theoretically work on all.

Last update: August 2012 (after 4chan’s HTML5 redesign and switch to HTTPS per default). Known bugs and limitations:

  • If there are several files in the thread with the same original filename, only the first will be downloaded.
  • If an image file from another thread is linked to in a post, it will also be downloaded and the link-filename relationship will be messed up.
  • Network errors are treated like 404 errors.
  • Threads that has a slash (/) in the subject breaks the link-filename relationship because the subject is treated like a filename. No known workarounds at this time.
#!/bin/bash
# A bash script for downloading all images in a 4chan thread to their original
# filenames. Updates every 60 seconds until canceled or the thread disappears.
# 
# Copyright 2008, 2010, 2012 Daniel Triendl, Anton Eliasson
# http://blog.pew.cc/blog/4chan+download+script/
# https://antoneliasson.wordpress.com/2010/08/03/4chan-download-script/
# 
# 
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#

if [ "$1" = "" ]; then # no arguments
	echo "Usage: `basename $0` <4chan thread url> [optional: download directory]"
	exit 1
fi

if [ "$2" = "" ]; then # only one argument
	LOC=$(echo "$1" | egrep -o '([0-9]*)$' | sed 's/\.html//g' ) # find out the thread number
else
	LOC=$2 # use download dir specified by user
fi
echo "4chan downloader"
echo "Downloading to \"$LOC\" until canceled or 404'd"

if [ ! -d $LOC ]; then
	mkdir -- $LOC
fi

cd -- $LOC # new directory named after the thread number

while [ "1" = "1" ]; do
	thread=`mktemp` # thread is the html thread
	links=`mktemp` # links will be a list of all image addresses
	names=`mktemp` # names will be a list of all original file names

    # get thread
    echo "Updating..."
	wget -q -k -O "$thread" "$1"
	if [ "$?" != "0" ]; then
		echo "Update failed, exiting"
		date
		rm $thread $links $names
		exit 1
	fi

    # get file list, space separated
	grep -E -o 'http[s]?://images.4chan.org/[a-z0-9]+/src/([0-9]*).(jpg|png|gif)' "$thread" | uniq | tr "\n" " " > "$links"

	# get original file name list, space separated (spaces in filenames changed to underlines)
	sed 's/ /_/g' "$thread" | grep -E -o '<span_title="[^"]+' | awk -F \" '{print $2}' | tr "\n" " " > "$names"

	COUNT=`cat $names | wc -w` # total number of files/names
	for ((i=1; i<=$COUNT; i++)); do
		wget -nv -nc -O `cut -d ' ' -f $i $names` `cut -d ' ' -f $i $links` # now download all files, one by one
	done

	rm $thread $links $names

	echo "Waiting 60 seconds before next run"
	sleep 60
done;

This should run on any Linux-based OS using the bash shell. Feel free to contact me if you find any bugs and/or improve the script.

26 juli, 2010

Köra Truecrypt i Ubuntu utan root

Filed under: Linux,Terminal — Anton @ 10:15
Tags: , , , ,

Varje gång en Truecrypt-volym ska monteras krävs root-tillgång. Det blir lite jobbigt att skriva in lösenordet varje gång så här följer en enkel guide hur man gör så att vanliga användare kan använda Truecrypt.

  • Lägg till en ny grupp som heter truecrypt:
sudo groupadd truecrypt
  • Ändra i sudo-konfigurationen med kommandot:
sudo visudo
  • Lägg till följande rader i slutet av filen:
# Users in the truecrypt group are allowed to run TrueCrypt as root.
%truecrypt ALL=(root) NOPASSWD:/usr/bin/truecrypt
  • Till sist lägger du till din egen användare i den nya gruppen:
sudo gpasswd -a din_användare truecrypt

Nu ska du inte behöva ange ditt lösenord nästa gång du monterar en krypterad volym i Truecrypt. Guiden kommer ursprungligen från http://wiki.archlinux.org/index.php/TrueCrypt#Mount_volumes_as_a_normal_user. Den här är dock förenklad något genom att jag tog bort några steg som inte var nödvändiga så länge bara Truecrypt endast användst i grafiskt läge.

8 april, 2010

Smarta saker jag kommit på ikväll!

Filed under: AVR,Eagle,Terminal — Anton @ 21:04
Tags: , , , , ,

Jordplan i Eagle Layout Editor

En sak jag läst mig till nu är att jordplan inte renderas förrän man kör Ratsnest, innan dess visas de bara som streckade linjer. Inte helt uppenbart om man aldrig jobbat med jordplan innan.

Före ratsnest

och efter ratsnest. Ser lite bättre ut!

It’s not a bug, it’s a feature

För den som vill läsa den långa versionen finns den här. Sammanfattat var det så här:

(more…)

16 mars, 2010

Förminska många bilder samtidigt

Filed under: Foto,Terminal — Anton @ 20:02
Tags: , ,

Behöver förminska ett stort antal bilder för uppladdning till Facebook. Vet inte om något grafiskt program för detta men som tur är så använder jag gärna terminalen i Linux och då öppnas fler möjligheter. Det finns ett skitbra program som ingår i Imagemagick som heter convert kort och gott. Jag har tidigare använt det och det har fungerat bra, men i det här fallet behövde jag skriva till samma fil som öppnades. Det klarar inte convert men det finns ett annat program i Imagemagick som heter mogrify. Hittade en bra guide här. Vissa av bilderna behövde dessutom roteras, eftersom Facebook tydligen inte kan läsa EXIF-datan i bilderna. Kollade först vilken storlek Facebook klarar av genom att ladda upp en bild i full upplösning, 12Mpix. Den skalades sen ner till 720×540 pixlar. Sen la jag alla roterade bilder i en mapp ”roteras” och alla andra i mappen jag stod i. Sen såg kommandona ut så här:

mogrify -format jpg -path klara/ -rotate 90 -resize 540×720 roteras/*
mogrify -format jpg -path klara/ -resize 720×540 *

Eftersom mogrify faktiskt läser EXIF-datan ser den de roterade bilderna som ”stående”, och kommer därför vara liggande efteråt. Men i själva verket är de stående efter att kommandot har körts, medan EXIF-datan vill rotera bilderna 90° till. Därför skalar vi först ner bilderna till 540×720 och sen roterar vi dem 90°. Nu är de första klara. Det andra kommandot skalar endast ner bilderna till 720×540. -format ändrar filändelsen från JPG till jpg. Det är viktigare än det ser ut eftersom Linux är skriftlägeskänsligt och WordPress bland andra kräver jpg-ändelsen och inget annat. -path sparar filerna till ./klara med samma filnamn, originalen skrivs alltså inte över. Så var det klart 🙂

Nästa sida »

Skapa en gratis webbplats eller blogg på WordPress.com.