Användandet av goto i programkod

 Javascript och jQuery, PHP, Webbutveckling  Kommentarer inaktiverade för Användandet av goto i programkod
Apr 262015
 

goto-jailNär man skriver programkod är det av yttersta vikt att det ska vara lättläst. Hellre lättläst än snabbt brukar jag arbeta efter. Ofta är det sällan någon större skillnad i snabbhet mellan kod man förstår och krånglig kod som ingen vågar röra.

Den här artikeln handlar om kommandot ”goto” och dess dåliga rykte. Goto finns i språket PHP sedan v 5.3 men tyvärr inte i Javascript. Det är på inget sätt dåligt att använda kommandot goto. Alla kommandon kan användas på ett sätt som gör det svårare eller lättare att läsa programkoden.

Här kommer ett exempel i Javascript som innehåller en massa if-kommandon.

Continue reading »

Designmönster

 Filosofi, PHP, Webbutveckling  Kommentarer inaktiverade för Designmönster
Apr 092015
 

catdoor

[Designmönster] [Skapandemönster] [Strukturmönster] [Beteendemönster]

Det finns en bok som heter ”Design patterns”, skriven av fyra författare redan 1994. Boken kallas ”gang of four”. Den handlar om återanvändbara designmönster i objektorienterad programmering.

Har du funderat på varför dörrar som människor använder oftast har gångjärn på höger eller vänster sida, medan kattluckor oftast har gångjärnen högst upp, och smala garageportar åker upp medan breda garageportar åker åt sidan. Alla de här dörrdesignerna har visat sig ge mest fördelar och minst nackdelar av alla de designmönster man skulle kunna ha.

När det handlar om objektorienterad programmering är saker än mer komplicerade. En bra idé kan till slut bli en börda och man kan till och med få förkasta kod och börja om. Då är det bättre att använda beprövade designmönster för att undvika de värsta problemen redan från början.

Det finns massor av designmönster i objektorienterad programmering. Tänk på att en del objektorienterade språk inte behöver vissa designmönster, språkets design har gjort dem onödiga. Tänk också på att dessa designmönster är för objektorienterad programmering. Det finns andra kraftfulla sätt att programmera och de har sina egna designmönster (beprövade lösningar).

Det jag saknar på Wikipedia och i boken är exempel i PHP och en enkel förklarande text med när och varför man ska använda detta mönster. Därför samlar jag PHP exempel här.

Continue reading »

Bugghanteraren Mantis

 Nyheter  Kommentarer inaktiverade för Bugghanteraren Mantis
Apr 042015
 

Du har ett eller flera projekt och inser att återrapporteringen med buggar och finesser är svårt att hantera med epost. Det behövs ett överskådligt system där flera kan samarbeta.

Du har kanske hört talas om BugZilla och att den är bra. Jo det är den säkert men den bygger på Perl och kräver bibliotek som ditt webbhotell antagligen inte har.

Ett bättre alternativ är Mantis. Den är byggd med PHP, lagrar data i MySQL och licensen är GPL v2.
Det går snabbt att installera och den har svenska språkpaket redan inbyggt.

Ladda ned paketet här.
Lägg alla filer i din WWW-root, till exempel i katalogen ‘mantis’.

Skapa en databas på din MySQL server och låt den ha ett eget loginkonto.
Surfa till www.dinadress.se/mantis för att starta installationsprogrammet.

När du är klar efter ett par sekunder så kan du logga in:
Administratörskontot heter : administrator
och har lösen: root

I Mantis i inställningarna till ditt loginkonto kan du ändra språk till svenska. När du sparar byts språket ut omedelbart.

Du kan lägga upp många loginkonton med olika rättigheter i Mantis. Du kan skapa många projekt och underprojekt. Du kan dela in ärenden i kategorier och sätta taggar på dem.
Mantis verkar vara väldigt bra.

Magento API – ett exempel i Python

 Magento, Nyheter, Webbutveckling  Kommentarer inaktiverade för Magento API – ett exempel i Python
Mar 272015
 

Jag har tidigare visat hur man kommer åt Magentos API med ett PHP exempel. I den här övningen ska jag göra exakt samma SOAP-exempel men i Python istället.

Vad som behövs

Börja med att få igång PHP-exemplet innan du börjar med det här Python exemplet.
Jag använder PyCharm Community edition för att redigera, köra och testa exempelkoden.

Installera SOAP

Först behöver Python kunna använda SOAP. Det finns olika SOAP bibliotek till Python, jag har valt att använda ett som heter SUDS. Så här installerar du SUDS om du använder ett Unix-system såsom MacOS eller Ubuntu.

sudo pip install SUDS

Continue reading »

Magento API – ett exempel i PHP

 Magento, Nyheter, PHP, Programmerare, Webbutveckling  Kommentarer inaktiverade för Magento API – ett exempel i PHP
Mar 272015
 

soapDu kan kommunicera med Magento via dess API och till exempel hämta ut ett urval av produkter. Lägga ordrar och allt annat du kan tänka dig. Det här är perfekt om du vill koppla ihop två olika plattformar, till exempel Magento och en app, eller hämta ordrar från Magento in i ett ekonomisystem, eller få din kampanjsite att hämta data från Magento.

Målet med den här övningen är att ge produkt ID till Magento och få ut data om den produktens relaterade produkter genom att använda Magentos API.
Inspiration kommer från certifieringsfrågorna för Magento och från den här hemsidan.

Continue reading »

Mac OS 10.10.2 Yosemite och TrueCrypt 7.1a

 MacOS, Nyheter, Operativsystem  Kommentarer inaktiverade för Mac OS 10.10.2 Yosemite och TrueCrypt 7.1a
Feb 142015
 

Det nya operativsystemet Yosemite är toppen. Dessutom får man det gratis från Apple.

TrueCrypt utvecklas inte längre men är ett enastående program för att skapa krypterade filer som du kan lagra data i. TrueCrypt finns för Linux, Mac och Windows.

Om du försöker installera TrueCrypt på Yosemite så säger den att du behöver minst Mac OS 10.4.
För att kunna gå förbi detta kan du göra så här:

Metod 1:
1. Öppna .dmg filen.
2. Nu syns .mpkg filen. Högerklicka på den och välj ”Show package Contents”
3. Öppna katalogen ”Contents”
4. Öppna katalogen ”Packages”
5. Nu syns fyra filer. Installera dem i den här ordningen:
OSXFUSECore.pkg,
OSXFUSEMacFUSE.pkg,
MacFUSE.pkg,
TrueCrypt.pkg

Metod 2:
1. Öppna .dmg filen.
2. Nu syns .mpkg filen. Högerklicka på den och välj ”Show package Contents”
3. Öppna katalogen ”Contents”
4. Redigera filen Contents/distribution.dist i en texteditor
5. Hitta funktionen pm_install_check() och ändra den till:

function pm_install_check() {
   return true;
}

Nu kan du installera programmet.

Kaboom, programmet kraschar.
MacFUSE är nedlagd och fungerar inget bra på 64bitars operativsystem. Ladda istället ned osxfuse och installera den.
Nu fungerar CrueCrypt som det ska.

Källor:
Yosemite: https://itunes.apple.com/us/app/os-x-yosemite/id915041082?mt=12
TrueCrypt: https://www.grc.com/misc/truecrypt/truecrypt.htm
OSX Fuse: http://sourceforge.net/projects/osxfuse/
Info1: http://tips.tinyiron.net/yosemite-to-truecrypt-never-gonna-get-it/
Info2: https://lazymind.me/2014/10/install-truecrypt-on-mac-osx-yosemite-10-10/

Snabba upp din Mac

 MacOS, Magento, Nyheter, Operativsystem, PHP, Webbutveckling  Kommentarer inaktiverade för Snabba upp din Mac
Nov 122014
 

Min MacBook Pro från 2011 har fått jobba i nästan ett helt år utan någon större genomgång och den börjar bli seg. Det märks i Magento Admin där alla klick tar några sekunder. Å ena sidan har jag inte tid att fixa detta, å andra sidan har jag inte tid att vänta tusen gånger om dagen i små bitar heller.

Det vart en seg dag men resultatet blev över förväntan. Nu klickar jag och Magento reagerar omgående. Jag kommer att spara massor av tid framöver.
Här kommer några tips samt sidor som jag följt.

Reparera hårddisken
När du startar din Mac kan du hålla inne CMD+R för att komma in till menyn med reparationsprogram. Där kan du köra Disk utility och kontrollera rättigheter och status på din hårddisk. Här kunde jag reparera disken och fixa rättigheter.

Fem tips
Jag hittade en bra sida som ger fem effektiva tips till en snabbare Mac.
OnyX och Monolingual var två nya bekantskaper som gjorde mycket nytta.

Minne har jag redan 8Gb och hårddisken är en snabb SSD på 256 Gb men annars är SSD disk absolut en bra prestandaökare. Jag kommer aldrig att köra en mekanisk hårddisk igen.

Byt till Chrome
Firefox har varit hörnstenen när jag utvecklar. Men Google Chrome är så mycket snabbare. Och det är nyttigt för dig att byta och lära nytt. På jobbet räknas enbart snabbhet och då är Chrome bra, men privat värderar jag andra saker högre och då är det Firefox som gäller.

Uppgradera till Mac OS 10.10 Yosemite
Uppdateringen är gratis från App store. Det är viktigt att följa med och uppgradera. Säkerhetshål stängs (och nya öppnas) men oftast blir datorn också snabbare av en uppgradering. Själva uppgraderingen till MacOS 10.9 och till 10.9.5 gick nästan smärtfritt så jag körde igång Uppgraderingen till 10.10. Den fungerade som den skulle men MAMP slutade fungera. Trots mycket tid och ansträngning fick jag MAMP att bara delvis att fungera.
Nu fanns inte mer tid att mecka, jag måste arbeta. Alternativet är att köra de inbyggda programmen.

Byt ut MAMP mot de inbyggda alternativen
MAMP är bra, enkel att använda och tyvärr inte så rapp som man skulle önska.
MacOS har inbyggda versioner av Apache och PHP, och du kan enkelt ladda ned den senaste MySQL. Här är en bra guide.

Slutsats
Varför gjorde jag inte detta för ett år sedan? Väntetiderna i Magento är nästan borta. Det är rappt och snabbt. Inte så snabbt som en stationär dator med Ubuntu men en betydande förbättring. Det var värt ansträngningen. Nu ska jag bara kolla att xdebug fungerar så det går att debugga kod imorgon med Chrome och PHP Storm.