JSON Formatter & Validator
Categories: Uncategorized.
Xdebug - Debugger and Profiler Tool for PHP
För de som har problem med PHP och behöver verktyg för att felsöka och profilera sina php filer så är Xdebug ett bra ställe att börja på speciellt om man gör det tillsammans med kCachegrind
För mig del så la jag till detta i min php.ini för apache.
; Set to 1 when you want to enable profiler and kcachegrind
xdebug.profiler_enable = 0
; Where should profiler store files?
xdebug.profiler_output_name = cachegrind.out.%p.%s.%u
; Show exception trace when error occurs
xdebug.show_exception_trace = On
; Print out all local variables if error
xdebug.show_local_vars = 1
; Controls whether the values of the superglobals should be dumped on all error situations (set to Off) or only on the first (set to On).
xdebug.dump_once = On
; Dump the global vars
xdebug.dump_globals = On
; If you want to dump undefined values from the superglobals you should set this setting to On, otherwise leave it set to Off.
xdebug.dump_undefined = On
; Dump REQUEST variable
xdebug.dump.REQUEST = *
; Dump Server variable
xdebug.dump.SERVER = REQUEST_METHOD,REQUEST_URI,HTTP_USER_AGENT
; Trace format
xdebug.trace_format = 0
; No auto tracing, must manualy call trace functions
xdebug.auto_trace = Off
; Where to store trace files
xdebug.trace_output_dir = /home/johan/DiskEtt/traces
; What to name them
xdebug.trace_output_name = trace.%c.%p
; Control what to trace
xdebug.collect_params = 4
xdebug.collect_includes = Off
xdebug.collect_return = Off
Länkar:
Xdebug - Debugger and Profiler Tool for PHP
http://www.splitbrain.org/blog/2008-02/21-understanding_php_code_better_with_xdebug
http://devzone.zend.com/article/2803-Introducing-xdebug
Categories: Uncategorized.
Lighthouse >> Redmine
Looks like a reasonable idea. Trying Lighthouse issue tracker now. But migrating will be an issue later on when more people get involved in the project (and paying for lighthouse is not an option).
Comments Off
Categories: Uncategorized.
Tanke
Categories: Uncategorized.
Webbutveckling med Ubuntu.
Vad handlar det här inlägget inte om? Det handlar inte om en setup som är till för webbdesigners som självklart behöver tillgång till alla webbläsare och använda sig av de typsnitten som är standard på internet.
Linux är inte speciellt bra på att hantera grafik, det kan ingen påstå. Och det har jag inte heller något intresse av att hävda. Denna guide är framför allt till för mig själv och folk som fungerar som jag. Det vill säga människor som spenderar sina dagar med att programmera för internet, och inte har speciellt mycket med den slutgiltiga designen att göra.
De miljöer jag riktar in mig på är speciellt den klassiska LAMP varianten. Linux, Apache, Mysql och PHP. Jag kommer inte heller prata något om de tekniker som finns för att sen “ladda” upp sina filer via FTP eller sFTP till något webbhotell. Mest för att jag inte använder den typen av webbhotel och har inte riktigt koll på vilka problem man träffar på i den typen av miljö.
Val av Linux distro.
Personligen så gillar jag att använda Ubuntu. Anledningen till detta val är ganska enkelt. Det finns alltid en helt enormt stor mängd hjälp att få på internet vid eventuella problem. Samt att det är enligt min mening den dist som kommer bäst lämpad för skrivbordsklienter från start.
Och ser man på det som webbutvecklare så bygger ju Ubuntu på Debian som är ett tämligen populärt val på produktionsservrarna sen vilket gör att man kan använda mycket av den kunskap man bygger upp om sin utvecklingsdator även under driften av projektet.
Men i övrigt så finns det inte direkt något som gör Ubuntu till ett bättre eller sämre val när det handlar om webbutveckling. De flesta programmen finns till alla de stora distarna, så länge man inte har några väldigt speciella behov av konstig programvara så ska det nog gå bra.
Webbserver, Apache 2.2
För mig så är det alltid Apache som gäller, trots att jag tittat en del på andra webbservrar så som Lighttpd och liknande så faller jag alltid tillbaka på Apache känns det som. Trots att det är en gammal webbserver så känns det enormt stabilt. Tror aldrig jag varit med om att Apache har hängt sig under en körning.
En smidig sak som fungerar väldigt bra i Apache är virtuella domäner (vhosts). Dvs att jag inte behöver skriva ip eller localhost i webbläsaren för att komma till just mitt projekt. Istället kan jag sätta upp valfritt namn som pekar rakt in i min projektmapp istället.
Det är några steg man måste gå igenom för att lyckas med det dock.
Regigera /etc/hosts filen med de custom namn man vill ha med.
# gksudo gedit /etc/hosts
Lägg till dina egna namn på raden som börjar med 127.0.0.1
Till exempel så här.
127.0.0.1 localhost projekt1 projekt2 projekt3 minblogg dev.localhost
I princip kan man skriva vad man vill på den raden, det är alltid den filen som din dator kommer fråga först innan den skickar ut en förfrågan till DNS servrarna för att se vilken dator som ligger bakom ett specefikt ip.
För att sen få Apache att leverera ut en speciell sida när man skriver in den som address i sin webbläsare så kräver det att man sätter upp en s.k vhost i Apache.
# gksudo gedit /etc/apache2/sites-enabled/000-default
Lägg till följande i slutet anpassat till vart du valt att spara dina utvecklingsfiler.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName minblogg # Det här är kopplat till det namn du angav i /etc/hosts filen.
DocumentRoot "/home/johan/dev/minblogg" # Här skriver du vart du har ditt utvecklingprojekt
DirectoryIndex index.php
<Directory "/home/johan/dev/minblogg"> # Här behöver du med skriva det för att htaccess ska fungera.
AllowOverride All
</Directory>
</VirtualHost>
Några andra inställningar som kan vara bra att göra är att ändra vilken användare som skall köra webbserven. Finns som jag ser det ingen anledning att låte www-data ligga kvar som ägare av Apache processen. Blir mest bara problem med rättigheter till filerna då. Bättre är då att låta din egen användare äga Apache processen.
Detta görs genom att man redigerar /etc/envvars konfigurationsfilen.
# gksudo gedit /etc/apache2/envvars
Redigera:
export APACHE_RUN_USER=johan # och bytt ut johan mot ditt användarnamn
export APACHE_RUN_GROUP=johan # här med.
Andra saker man kan göra om man vill är att ändra sessionstider och max filstorlekar som apache och php kan hantera. Dock är detta inte helt nödvändigt för mindre projekt då minneshantering och liknande inte är lika aktuellt.
Editorer och IDE’s
Valet av editor för utveckling är alltid lika svårt. Det beror självklart mycket på vad man är för typ av person. Personligen så ser jag det som att det finns två och en halv typer av olika editorer. De som gör allt och de som inte gör något (och de som gör allt utan att någon vet kan använda den).
De som gör allt.
Dessa IDE’s är alltid stora och ofta klumpiga att ha att göra med. Ofta krävs att man sätter upp speciella projekt och har ordning på sina filer. Exempel på editorer som hamnar i denna kategori är Eclipse (Aptana), NetBeans, Komodo Edit.
Av dessa så har det blivigt så att jag kommit att föredra NetBeans. Mest för att den är stabilare än Eclipse med kommer med i princip samma funktionalitet. Autocompletion, Subversion integration, Goto definition och massor av annat smått och gått som är perfekt när man sitter med ett större projekt och ska hålla koll på flera hundra filer och många tusen rader av kod.
De som inte gör något
Helt vanliga texteditorer, perfekt för att redigera en enstaka fil eller ändra något i en konfigurationsfil. Listan över dessa editorer kan i princip göras hur lång som helst men för att nämna några som finns tillgängliga antingen som standrad i Ubuntu (med Gnome) eller enkelt kan laddas ner.
Den som jag använder av dessa är oftast gEdit. Mest för att den har ett bra stöd för egna färgteman och smidiga plugins som kan göra livet lite lättare. Och normallt sett om det inte är väldigt stora filer så har den laddningstider som är nära noll.
Och de som gör allt utan att någon kan använda dem
I mitt dagliga arbete så är det många gånger man är inne på någon server och harvar runt i olika konfigurationsfiler eller gör små modifikationer i redan befintlig kod som körs på dessa servrar. Av denna anledning kan det vara bra att kunna hantera någon editor som är textbaserad med. Mitt personliga val har landat på Vim. Mest för att jag kan göra allt jag behöver göra där hyfsat enkelt. Men det finns självklart andra man kan titta på med så som Emacs eller Nano.
Jag har märkt att just Vim är väldigt mycket krafigare än vad man först kan tro, men det tar lite tid att lära sig alla de olika kommandona som finns tillgängliga och att man hela tiden jobbar i två olika lägen, ett kommando läge och ett edit läge.
För att komma igång med Vim så rekomenderar jag följande länk.
http://tips.webdesign10.com/another-vim-tutorial
Subversion eller git.
För alla som jobbat med ett större projekt där ni är flera stycken inblandade så finns problem med olika versioner av olika filer. För att lösa det problem så kommer versionshanteringssystemen in och hjälper en. Självklart finns ingen versionshanterare som perfekt kan lösa alla konflikter om två personer redigerat samma fil. Men det underlättar i alla fall. Jag kommer inte gå in så mycket på det här men det är i alla värt och nämna. Och om du inte redan jobbar med någon form av versionshantering så det är npg dags att du börjar. När det kommer till versionshantering finns idag två stora system. Subversion och Git.
Subversion är ett centraliserat system för att hålla koll på olika versioner av massor av filer i ett eller flera olika projekt.
Git är decentraliserat vilket betyder att alla projektmedlemmar har sitt eget privata repo som de kan skicka in filerna till som sedan synkas med de andra deltagarna i projektet. Git är bland annat det versionshanteringssystem som används för linux kärnan på grund av att det har väldigt mycket bättre prestanda än Subversion.
Det kan vara lite omständigt att lära sig något av dessa system, men det är väl värt sin tid trots den relativt höga inlärningskurvan. Om inte annat så finns det grafiska klienter tillgängliga för båda systemen.
Mer info hittas på följande länkar.
Subversion Git
Virtualisering, gör livet lättare för alla.
Om du har behov av att prova hur ett javascript eller en sida ser ut i en annan webbläsare än firefox som följer med som standard i linux så rekomenderar jag faktiskt att köra en Windows instans i en virtuell maskin. På det sättet så kan du ha flera olika uppsättningar av webbläsare i olika maskiner. Dock kan det vara ganska komplext att sätta upp en virtuell maskin och få den att fungera som den skall.
Jag använder mig av VirtualBox med mycket bra resultat och har flertalet olika maskiner som jag kan prova nya saker med och se att allt fungerar som det ska även på andra datorer än min egen.
Länkar om hur du sätter upp VirtalBox.
https://help.ubuntu.com/community/VirtualBox
http://ubuntu-se.org/wiki/Program/Virtualbox
Finns självklart mycket mycket mer man kan göra för att underlätta sitt liv som utvecklare. Och självklart mängder med smarta kommandon man kan använda sig av i terminalen för att göra livet lättare.
Avslutar med några fler länkar för att komma igång med terminalen och göra livet lite lättare.
http://cubiq.org/terminal-tips-for-web-developers/
http://muffinresearch.co.uk/archives/2006/10/16/six-useful-shell-commands-for-web-developers/
http://www.seomoz.org/blog/web-developers-command-line-tricks
Comments Off
Categories: Ubuntu.
Hello World!
Allt börjar alltid med ett ‘Hello World’, så även denna s.k blogg. Målsättningen är lika enkel som självklar. Att öka min egen närvarenhet på internet.
Det finns inte så många svenska intressanta bloggar för oss “riktiga” webbutvecklare på nätet idag. De flesta som jag hittar handlar oftast om nya fina saker med runda hörn eller toplistor på de tio bästa twitter applikationera. Visst kan det vara kul, men jag känner att vi svenskar kan bättre.
Lite mer om mig då, 25 år gammal. Utvecklar mest saker som har med php, python och internet att göra. Jobbar på ett svenskt Open Source företag som php utvecklare.
Öppen källkod är och kommer att förbli huvudtemat för allt som jag gör när det kommer till datorer. Så självklart kommer även denna enkla blogg att handla om det. Ska även försöka hålla mig borta från de ständiga jämförelserna med andra operativsystem och programvaror. Men personligen så intresserar det inte mig vilka program som jag kan använda istället för photoshop, office och itunes. Jag håller mig gärna till min terminal, tycker man kan komma ganska långt med det.
Självklart syftar även hela detta domän till att vara en virtuell lekplats för mig där jag kan testa nya idéer och tankar.
Categories: Uncategorized.