Poster taggade med ‘ubuntu’

Sida 1/2:12

Under några månaders tid har jag stört mig på att Ubuntu återställer tangentbindningar som jag gjort när datorn bootas om. T.ex. så krockar Ubuntus Alt+F7 Move Window med Intellijs IDEAs find. Det verkar vara en bug i 12.10 och 13.04 som introducerade detta.

Som temporär lösning på problemet har jag lagt följande i filen $HOME/.gsettings som jag sedan läser in i $HOME/.profile.

# Check what bindings are available
# gsettings list-recursively  |grep key|less

gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-left "['<Shift><Control><Alt>Left']"
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-right "['<Shift><Control><Alt>Right']"
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-up "['<Shift><Control><Alt>Up']"
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-down "['<Shift><Control><Alt>Down']"

gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-left "['<Control><Super><Alt>Left']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-right "['<Control><Super><Alt>Right']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-up "['<Control><Super><Alt>Up']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-down "['<Control><Super><Alt>Down']"

gsettings set org.gnome.settings-daemon.plugins.media-keys screensaver '<Super>l'
gsettings set org.gnome.desktop.wm.keybindings begin-move "['<Super>F7']"
gsettings set org.gnome.desktop.wm.keybindings begin-resize "['<Super>F8']"
gsettings set org.gnome.desktop.wm.keybindings show-desktop "['<Super>d']"

gsettings set org.gnome.desktop.wm.keybindings toggle-shaded "['disabled']"
if [ -f "$HOME/.gsettings" ]; then
	. "$HOME/.gsettings"
fi

Vagrant är ett verktyg för att på ett smidigt sätt via kommandoraden kunna hantera olika virtuella boxar (Oracle VirtualBox). Vagrant används för att skapa och konfigurera lättviktiga, reproducerbara och portabla utvecklingsmiljöer.

Grundkrav

Sätt igång

Då är vi redo att börja. För att skapa en ny virtuell box med Ubuntu 12.04 LTS kör du bara följande kommandon:

$ vagrant box add precise64 http://files.vagrantup.com/precise64.box
$ mkdir -p testenv
$ cd testenv
$ vagrant init precise64
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

Kommandot på rad 1 laddar ned en färdig box med Ubuntu 12.04 LTS. Denna box namnges till precise64 och kan sedan återanvändas för flera virtuella maskiner. Nedladdning sker endast en gång. Rad 2 och 3 skapar en katalog där din virtuella maskin sparas. Kommandot på rad 4 skapar en så kallad Vagrantfile som beskriver hur just din box ska konfigureras (bland annat port forwarding). Vagrant själva skriver att:

A Vagrantfile is to Vagrant as a Makefile is to Make

Innehållet i vår nyskapade Vagrantfile ser ut ungefär så här:

Vagrant::Config.run do |config|
  # Setup the box
  config.vm.box = "precise64"
end

Den katalogen som innehåller Vagrantfile mappas (per default) upp som en shared folder så din maskin och den virtuella boxen kan dela filer där på ett smidigt sätt.

För att sedan starta vår virtuella server används följande kommando:

$ vagrant up

Och för att koppla upp dig via SSH mot servern körs detta kommando:

$ vagrant ssh

När du kopplat upp dig via SSH kan du accessa dina delade filer i foldern /vagrant

Om du gör förändringar av din virtuella box som du sedan vill återanvända kan du skapa egna paket (boxar) som du senare kan utgå från. Detta sker enkelt via kommandot:

$ vagrant package

Då skapas en box – package.box – som kan läggas till bland dina befintliga boxar med hjälp av

$ vagrant box add my_box /path/to/package.box

När du känner att du är färdig med din virtuella box kan du använda följande kommando för att stänga ned maskinen (och därmed spara CPU/RAM):

$ vagrant halt

Alternativt, om du bara vill göra en suspend (det går snabbare att starta maskinen senare isf):

$ vagrant suspend

För att starta maskinen efter halt eller suspend är det bara att köra:

$ vagrant up

Om du vill ta bort din virtuella box från disken helt och hållet kör du bara kommandot:

$ vagrant destroy

Vagrant erbjuder också stöd för mer avancerade features såsom provisioning mha Chef eller Puppet. Allt detta finns att läsa på Vagrants hemsida.

Så, superenkel hantering av virtuella boxar med hjälp av Vagrant – rekommenderas varmt!

Lathund:

$ vagrant init Skapar en Vagrantfile
$ vagrant up Startar en virtuell box
$ vagrant halt Stoppar den virtuella boxen
$ vagrant suspend Pausar den virtuella boxen
$ vagrant destroy Stoppar och tar bort den virtuella boxen från disken
$ vagrant package Skapar ett nytt box-paket baserat på en befintlig box
$ vagrant box add my_box /path/to/package.box Lägger till en ny box-typ (my_box) som pekas ut via path eller HTTP
$ vagrant box list Listar tillgängliga boxar för din lokala miljö. En lista över boxar nedladdningsbara boxar finns här.

Rewrite-modulen för Apache brukar av någon outgrundlig anledning aldrig fungera bra för mig. Nu har jag återigen spenderat någon timme med att konfa upp den för wordpress och skriver därför ner vad jag gjort för att komma ihåg det till nästa gång.

Innehållet för min site mysite pekas ut av en konfigurationsfil i /etc/apache2/sites-available (virtual host-fil). Den innehåller följande: Läs mer >>

Protobuf är en kodningsteknik för att serialisera datastrukturer till ett binärt format som tar mindre plats än t.ex. XML eller JSON. På så sätt lämpar sig protobuf bättre för transport över kanaler där bandbredd är en avgörande resurs.

Protobuf är utvecklat av Google och används enligt uppgift mycket mellan deras interna tjänster. Ramverket tillhandahålls med stöd för C++, Java och Pyton, men en mängd andra språk stöds också genom tredjepartsprojekt: C, C#, JavaScript etc.

Protobuf använder sig av en s.k. schemabaserad kodning, vilket innebär att ett kodat meddelande inte kan avkodas (i alla fall inte fullständigt) utan en beskrivning (ett schema) av datastrukturen. Datastrukturerna definieras i ett speciellt språk.

Läs mer >>

Tänkte tipsa om ett trevligt verktyg vid namn Ack som jag hittade häromdagen. Det är en ”bättre version” av det gamla klassiska grep-kommandot.

Ponera följande, om du vill hitta alla förekomster av strängen ”Test” i dina javafiler men hoppa över alla filer i dina dolda subversion-kataloger kan du köra följande grep-kommando:

grep Test $(find . -name '*.java' | grep -v .svn)

Med verktyget ack ser kommandot ut så här:

ack-grep --java Test

Lite trevligare tycker jag. Ack stöder en rad filtyper såsom perl, java, C# etc och installationen är smidig – i alla fall om du kör Ubuntu. Dessutom är output:en från kommandot lite lättare att tolka…

Kolla in Ack vetja!

Efter det att jag uppgraderat till Ubuntu 9.10 så uppstod det lite problem med min Eclipse 3.5 installation, vissa knappar i olika dialoger slutade att fungera. Efter en snabb googling så visade det sig att det är en bug i Eclipse som är fixad i Eclipse 3.6 M2. För att få Eclipse 3.5 att fungera i Ubuntu 9.10 så kan man starta Eclipse med följande lilla skript:

#!/bin/sh
export GDK_NATIVE_WINDOWS=1
/path/to/your/eclipse/installation/dir/eclipse

Sida 1/2:12