Stark Signal » Programmering http://starksignal.se Just another WordPress weblog Sun, 01 Jul 2012 16:35:42 +0000 sv-SE hourly 1 http://wordpress.org/?v=3.4.1 Få tillbaka gamla filer via Git http://starksignal.se/fa-tillbaka-gamla-filer-commits-git http://starksignal.se/fa-tillbaka-gamla-filer-commits-git#comments Tue, 11 Jan 2011 14:29:34 +0000 Jonas Arnklint http://starksignal.se/?p=567 I´m gonna git you sucka!

I´m gonna git you sucka!

Ännu en “note to self”, kring en fråga som kommer upp ganska ofta nu förtiden. Hur får man tillbaka en gammal ändring i Git? Det händer trots allt att man gör misstag som commitas, vi är väl människor säg. Och Git är ju faktiskt ypperligt i dessa lägen.


git show treeish:file

Där treeish är en commit, branch eller tag och file är sökvägen till filen du vill kolla närmare på.

Efter det kan man skriva över nuvarande fil med filen som den såg ut då:


git show treeish:file > current_file

Kontrollera därefter korrigeringen:


git diff

Ok? Commita och pusha upp!

]]>
http://starksignal.se/fa-tillbaka-gamla-filer-commits-git/feed 0
Användbara vim-kommandon http://starksignal.se/anvandbara-vim-kommandon http://starksignal.se/anvandbara-vim-kommandon#comments Wed, 24 Nov 2010 11:40:09 +0000 Jonas Arnklint http://starksignal.se/?p=557 Jonas vs Vim – jakten på den perfekta editorn. Note to self: några smidiga kommandon till text-editorn Vim.

  • G= – autoindentering på allt under raden du står på
  • ^ – gå till första tecknet på raden du är på
  • A – Insert mode sist på raden
  • % – gå till tillhörande (), {} eller [].
  • 1G – gå till början av filen
  • G – slutet av filen
  • 23G – gå till rad 23
  • cw – ta bort resten av ordet och gå till insert mode
  • o – insert mode på ny rad
  • O – insert mode på ny rad innan raden du är på
  • za – toggla “fold” (dölj ett block exv)
  • :e # – switcha till föregående öppna fil (en gång till för att gå tillbaka till den du började på)
  • CTRL-r – redo
  • u – undo
  • “kyy – ” accessar registret (plats k), yy kopierar raden
  • “p – ” accessar registret (om något register är satt, så letar den där (k i detta fall)), p klistrar in såklart.
  • alt # – Highlight every word that matches the one you stand on

Sök med vimgrep

En funktion jag använder väldigt ofta i TextMate är “Find in project” (SHIFT + CMD + F) för att hitta exempelvis en metod som använts på flera ställen. I Vim kan man använda sig av Vimgrep, vilket fungerar på ett liknande sätt, förutom att du får specifiera vilka filer du ska söka igenom som ett andra argument. Regexp används mer än ofta i vim, vilket också vimgrep använder sig av.

  • :vimgrep /@site.slug/g app/views/**/* – söker efter “@site.slug” i kataloger som matchar app/views/*/*, eller app/views/*
  • Lista sedan sökningarna genom att skriva: :cw
]]>
http://starksignal.se/anvandbara-vim-kommandon/feed 6
SCP Disk quota exceeded http://starksignal.se/scp-disk-quota-exceeded http://starksignal.se/scp-disk-quota-exceeded#comments Tue, 20 Jan 2009 18:36:52 +0000 Jonas Arnklint http://starksignal.se/?p=365 Ibland står det helt still i huvudet på mig. Jag erkänner. Nu innan 24 Hour Business Camp, så tänkte jag förbereda en VPS som jag ska ha till förfogande under campet. Det var bara det att när jag skulle kopiera en del ramverksfiler till den med SCP så gav den ifrån sig ett underligt felmeddelande med tanke på att jag endast använt 20% av totala diskutrymmet.

Efter ett tags Googlande, så visste jag att det har att göra med Linux (Ubuntu) max antal filer, eller sk inodes. Min VPS kan lagra 400.000 filer. En check med kommandot

df -i ger följande:

OBS: David påpekar och jag noter att kommandot rm -rf /tmp/ kan radera filer du inte vill radera såsom db-sockets tex.

/dev/simfs            400000  400000       0  100% /
tmpfs                4111937       2 4111935    1% /lib/init/rw
tmpfs                4111937       1 4111936    1% /dev/shm

Notera dev/simfs kvot. Ajajaj.
Det visar sig snart att jag glömt att ta bort gamla versioner av applikationer jag lagt ut med Capistrano.

Händigt nog gör ju detta susen:

cap deploy:cleanup

Se även på Codepond.net!

]]>
http://starksignal.se/scp-disk-quota-exceeded/feed 1
Nya tag med Rails 2.2.2 http://starksignal.se/rails-222 http://starksignal.se/rails-222#comments Tue, 02 Dec 2008 22:21:03 +0000 Jonas Arnklint http://starksignal.se/?p=335 [Note to self] Det har gått snabbt från det att man använde Rails version 1.2.7. Jag uppdaterade nyligen en kunds webb vilken baserades på just den versionen. Mycket har hänt sedan dess och det är väl på tiden att jag får uppgradera till den senaste versionen.

Det enda problemet jag stötte på berodde på att man i Rails 2.2.2 plockat bort MySQL-bundlen. Detta löste jag genom att installera mysql-gem enligt nedan:

sudo gem uninstall mysql

sudo gem install mysql -- --with-mysql-config=/sökväg/till/mysql_config
Tadaa!

]]>
http://starksignal.se/rails-222/feed 7
Installera Git på Ubuntu eller Debian (server) http://starksignal.se/installera-git-pa-ubuntu-eller-debian-server http://starksignal.se/installera-git-pa-ubuntu-eller-debian-server#comments Sat, 19 Jul 2008 13:38:37 +0000 Jonas Arnklint http://starksignal.se/index.php/2008/07/19/installera-git-pa-ubuntu-eller-debian-server/ Steg 1

Installera git på server och klient:

sudo apt-get install git-core
sudo apt-get update
sudo apt-get dist-upgrade

Steg 2

Installera gitosis på servern:
sudo apt-get install python-setuptools


mkdir ~/src
cd ~/src
git clone git://eagain.net/gitosis.git

Installera:

cd gitosis
sudo python setup.py install

Konfigurera:

sudo adduser \
--system \
--shell /bin/sh \
--gecos 'git version control' \
--group \
--disabled-password \
--home /home/git \
git

]]>
http://starksignal.se/installera-git-pa-ubuntu-eller-debian-server/feed 0
Note to self: Git Push http://starksignal.se/note-to-self-git-push http://starksignal.se/note-to-self-git-push#comments Mon, 14 Jul 2008 12:21:03 +0000 Jonas Arnklint http://starksignal.se/index.php/2008/07/14/note-to-self-git-push/ Jag tenderar att glömma kommandot för att pusha (lägga upp ändringar) i det avlägsna Git repositoryt jag sitter med.
git push git+ssh://user@doman.se/home/user/work/repo.git
Stupid me. Men Git rular fortfarande.

Klona (kopiera och tanka hem) ett projekt:
git clone git+ssh://....

Mer om Git.

]]>
http://starksignal.se/note-to-self-git-push/feed 0
Ut SVN in med GIT http://starksignal.se/ut-svn-in-med-git http://starksignal.se/ut-svn-in-med-git#comments Thu, 26 Jun 2008 12:51:31 +0000 Jonas Arnklint http://starksignal.se/index.php/2008/06/06/ut-svn-in-med-git/ SVN

Jag har tidigare använt SVN till alla mina interna och några externa projekt. SVN hjälpte mig att hålla koll på ändringar och spara gamla versioner av den kod jag skrivit. Jag kan alltså gå tillbaka i tiden och aktivera en gammal version, såväl som att bygga “förgreningar” till ett projekt och sedan samanfoga det med den ursprungliga koden. SVN är alltså ett versionshanteringssystem (phew, långt ord). SVN ihop med Capistrano gör det dessutom busenkelt att lägga upp filer och deploya projekt. Nog om SVN, den gamle trotjänaren.

GIT

Jag tänkte nu gå över helt och hållet till GIT. En av anledningarna är att Ruby on Rails och andra projekt i Railsvärlden nu migreras till GIT och GitHUB. En annan god anledning är att GIT är bättre, snabbare och enklare att hantera.

GIT är:

  • Öppen källkod
  • Skapat av Linus Thorvalds
  • Distribuerad versionshantering
    • Arkiv kan kommas åt via HTTP, SSH, FTP och nsync
    • Alla användare har varsin lokal kopia av ett arkiv vilket gör
      • Snabb åtkomst
      • Offline som online
  • Byggt med snabbhet som mål
  • Kapabelt att hantera stora projekt effektivt
  • Smart och sparar endast en enda .git fil i roten på ditt arkiv

Nu kör vi igång

Börja med att ignorera filer du inte vill ska hamna i ditt arkiv genom att skapa filen .gitignore och ange exempelvis .DS_Store i den (ja, jag arbetar med Mac).

Skapa ett “arkiv”:

$ cd work/gittest/
$ git init
Initialized empty Git repository in .git/
$ git add .
$ git commit -m "Skapade ett repository

Du lägger till filer likt SVN:

$ git add fil1 fil2

Innan vi utför en commit, så kan vi se vad som kommer att läggas in i arkivet genom:

git diff --cached

För att utföra en commit utan att behöva lägga till alla filer använder du:

git commit -a

Bra läsning:

http://www.kernel.org/pub/software/scm/git/docs/repository-layout.html

http://groups.google.com/group/peepcode/browse_thread/thread/fe6f9c1fc9d6e725 – Ingorera .DS-store globalt. (Användbart för macanvändare!

]]>
http://starksignal.se/ut-svn-in-med-git/feed 3
Ruby on Rails 2.0 släppt http://starksignal.se/ruby-on-rails-20-slappt http://starksignal.se/ruby-on-rails-20-slappt#comments Fri, 07 Dec 2007 15:08:31 +0000 Jonas Arnklint http://starksignal.se/index.php/2007/12/07/ruby-on-rails-20-slappt/ I morse runt halv fem släpptes Ruby on Rails 2.0. De nya funktionerna är många, precis som de borttagna. Bland de nya funktionerna finns bland annat:

  • Sexy Migrations, vilket jag finner oerhört smidigt.
  • Foxy Fixtures. Slipp främmande nyckeln.
  • Query Cache, lagrar querys som görs ofta i cachen, vilket snabbar upp din applikation en hel del.
  • Prestandaförbättringar
  • Sessionsvariabler lagrade i cookies som standard. Så länge du lagrar användar-id och möjligtvis en flash i sessionsvariablen så kommer detta förbättra prestandan på din applikation avsevärt. Om inte, använd traditionella sessioner lagrade antingen i databas, eller på disk.
  • Ökad säkerhet vad gäller CRSF-attacker. Rails 2.0 skapar automatiskt nycklar i formulär och vid AJAX-förfrågningar som standard, vilket hindrar attacker utifrån.
  • Bort med SOAP (det var på tiden), in med REST.
  • /people/jonas/edit istället för /people/jonas;edit (backslash istället för semikolon)

Ryan Dagle har sedan länge en blogg där han följer uppdateringar i koden bakom rails och sedan sammanfattar och skriver om det. Kolla in!

Andra bloggar om: , ,

]]>
http://starksignal.se/ruby-on-rails-20-slappt/feed 0
StaticMatic – ramverk i Ruby för statiska webbplatser http://starksignal.se/staticmatic-ramverk-i-ruby-for-statiska-webbplatser http://starksignal.se/staticmatic-ramverk-i-ruby-for-statiska-webbplatser#comments Tue, 18 Sep 2007 08:08:15 +0000 Jonas Arnklint http://starksignal.se/index.php/2007/09/18/staticmatic-ramverk-i-ruby-for-statiska-webbplatser/ Stötte idag på ramverket StaticMatic, som är ett Ruby-baserat ramverk för statiska webbsidor. Det använder sig av templatespråket Haml, vilket jag personligen tycker är ganska smidigt till just mindre statiska webbplatser. Du kan enkelt förhandsgranska sidorna du bygger, för att sedan köra en “build” och kanske ladda upp sidan någonstans.

Det är helt klart värt en koll, då man sparar en hel del tid, som man annars hade lagt på att stänga taggar och kontrollera så att sidan man bygger verkligen blir validerad.

Andra bloggar om: , , , , ,

]]>
http://starksignal.se/staticmatic-ramverk-i-ruby-for-statiska-webbplatser/feed 2
Varför betala när man kan använda gratisprogram? http://starksignal.se/varfor-betala-nar-man-kan-anvanda-gratisprogram http://starksignal.se/varfor-betala-nar-man-kan-anvanda-gratisprogram#comments Tue, 10 Apr 2007 16:55:57 +0000 Jonas Arnklint http://etools.se.digitest.biz/?p=19 Vichar Bhatt jämför på sin ena blogg, Linux Open Source Blog, olika gratis alternativ till kommersiella programvaror. Även om gratisalternativen inte alltid når upp till konkurrenternas nivå och kanske inte alltid har lika många features, borde man nog ta sig en funderare. Man kanske skulle testa en tid och ersätta Illustrator med Inkscape och Photoshop med The GIMP…

Själv har man tagit första stora steget mot Open Source genom att helt och hållet sluta utveckla i Microsofts anda genom .NET och istället valt att satsa på Ruby och Rails, vilket jag hittils inte ångrar det minsta. Nu blev jag “tvungen” att lära mig Linux.

Har du tips på något bra gratis program?

]]>
http://starksignal.se/varfor-betala-nar-man-kan-anvanda-gratisprogram/feed 0