PostgreSQL

 Databas, Webbutveckling  Kommentarer inaktiverade för PostgreSQL
Jun 252016
 

100x58_1Mitt intresse för PostgreSQL (PSQL) beror på att jag skapar en plattform som ska ha stöd för de mest kända databaserna, PostgreSQL är en av dem. När jag programmerar i övrigt så använder jag aldrig PSQL för den har paradoxalt nog för många finesser som du tvingas ta ställning till när du egentligen bara vill skapa en databas men en tabell och några index. PSQL skulle nog bli mer populär om den kom i en enklare version där bra-nog är ledord.

I min plattform kommer du enkelt att kunna använda bland annat PostgreSQL, men det kräver att den är installerad och fungerar. Här berättar jag hur du kommer igång på MacOS 10.11.5

Allmänt om PSQL
Hemsida: https://www.postgresql.orgWikipedia: https://en.wikipedia.org/wiki/PostgreSQL

Continue reading »

 Posted by at 17:44

Felsöka xdebug

 Felsökning, PHP, Problemlösning  Kommentarer inaktiverade för Felsöka xdebug
Jun 112016
 

xdebugI och med att jag uppgraderade till PHP 7.0 var jag också tvungen att uppgradera till xdebug 2.4. Det var inga problem i Ubuntu 16.04 men när jag gjorde uppgraderingen i OSX 10.11.5 då gick något snett.
Det finns många bra guider på nätet för att uppgradera till PHP 7.0 och xdebug, till exempel den här.

Så om det nu går fel med xdebug, hur ska man felsöka?

Continue reading »

Magento 2 – Installera lokalt

 Nyheter  Kommentarer inaktiverade för Magento 2 – Installera lokalt
Mar 132016
 

Magento-logoMagento är en e-handelsplattform som nu i slutet av 2015 kom i en länge väntad version 2.
Jag ska installera den versionen och lära mig alla finesser som finns för att ta certifieringen ”Solution specialist”. Den här artikeln handlar om installation av Magento 2. Häng med!

Ladda ned

Du hittar Magento 2 Community Edition alldeles gratis här: https://www.magentocommerce.com/download
Det finns tre varianter här, jag kommer att använda ”Full Release with Sample Data (ZIP with sample data)” för min utvärdering denna gången.
Om du inte har ett Magento loginkonto måste du skapa ett nu innan du får ladda ned.
Det är ca 230 Mb som ska laddas ned.

Systemkrav

Magento 2 körs bäst i LAMP. Läs mer om LAMP här. http://www.charzam.com/2010/10/30/lamp-install/
Systemkraven är dessa. http://devdocs.magento.com/guides/v2.0/install-gde/system-requirements.html
Har du en hyffsat ny Linux med Apache, PHP, MySQL så är de antagligen av bra version för att köra Magento 2. Vi skippar att kolla alla detaljer, nu kör vi och ser om det fungerar.

Packa upp

Högerklicka på filen och välj att packa upp. Det är en nätt samling på 60 tusen filer och 500 Mb data.
Kopiera filerna i mappen till en ny mapp i din web-root. /var/www/magento2
Se till att du har bra rättigheter på mappen och alla dess filer. Byt ut ”www-data:peter” mot det du använder.

sudo chown -R www-data:peter magento2
sudo chmod -R 777 magento2

Installera

Nu ska vi installera Magento 2. Surfa till http://127.0.0.1/magento2
Du ska nu se välkomstskärmen. Fortsätt…

Steg 1 – Är vi redo?

I det här steget får vi se om vi har vad som krävs. Jag fick nedslag på en PHP inställning i php.ini och en PHP utökning saknades.

Hitta php.ini

Ibland kan det vara knepigt att hitta vilken php.ini som PHP använder. Skapa då en ny fil: phpinfo.php och fyll den med:

<?php
phpinfo();
?>

Surfa sedan till: http://127.0.0.1/magento2/phpinfo.php
Nu kan du se var php.ini finns. Min fil fanns här:

sudo nano /etc/php5/apache2/php.ini

Jag var tvungen att ändra följande:
”; always_populate_raw_post_data = on” till ”always_populate_raw_post_data = -1”
”memory_limit = 128M” till ”memory_limit = 4G” (Temporärt, återställ efter installationen)
”max-execution_time = 30” till ”max-execution_time = 108000” (Temporärt till 30 minuter, återställ efter installationen)

CTRL + W för att söka. CTRL + O för att spara. CTRL + X för att avsluta.

Eftersom jag använder xdebug så måste jag lägga till ”xdebug.max_nesting_level = 500” i min xdebug.ini-fil. Sökvägen till filen syns i phpinfo.php
Startade om Apache och såg att parametern ändrats i phpinfo.

Apache läser bara php.ini och övriga ini-filer när den startar. Du behöver starta om Apache så här:

sudo service apache2 restart

Lägga till php extension

För mig saknades en PHP extension som heter ”xsl”.

sudo apt-get install php5-xsl
sudo service apache2 restart

Nu får jag grönt ljus på allt. Vi kan fortsätta installationen.

Steg 2 – Lägg till en databas

Magento klarar sig inte på enbart sina 60 tusen filer, den behöver dessutom en databas att lagra data i. I det här steget vill den veta var databasen är och hur man loggar in. Vi måste fixa något.

Starta phpMyAdmin och skapa en ny användare ”magento2” och klicka för ”Skapa databas med samma namn och tilldela alla privilegier.”. Se till att ”Värd = Lokal = localhost”. Logga ut ur phpMyAdmin och testa att logga in me det nya kontot. När du fått det att fungera, använd det i Magento 2.

Gå in på din nya databas ”magento2” på fliken ”Operationer”, ”Kollationering” (Vad är det för svenska?) och där väljer du teckenkodningen ”utf8_unicode_ci”, tryck på ”Kör”.

steg2-teckentabell

Steg 3 – Web adress

Jag fick ett förslag på web adress som jag kommer att behålla: ”http://127.0.0.1/magento2/”.
Anteckna det förslag på admin adress som du får.
Det finns också avancerade inställningar, men allt sådant kan ändras senare, behåll det som står där.

steg3-web-config

Steg 4- Grundinställningar

Här ställer du in tidszon, valuta, språk. Under avancerade inställningar finns den nyhet, det ser ut som du kan avmarkera moduler som du inte vill installera. Låt allt vara som det är och fortsätt.

step4-valuta

Steg 5 – Skapa ett admin loginkonto

Ganska enkel uppgift. Fyll i boxarna och gå till nästa steg.

Steg 6 – Installera nu

I det här steget finns bara en installationsknapp. Jag trycker väl på den då.

Starta om installationen

Om du behöver starta om installationen (vilket jag behövde göra massor av gånger) så kan du göra så här:
Rensa i katalogerna magento2/var/cache och ta bort app/etc/config.xml och app/etc/env.xml
Läs om webbsidan. (CTRL + R)

Success (Framgång)

Nu segade den upp till 100% och jag är klar.
Surfar in på siten: http://127.0.0.1/magento2/ och får se förstasidan på Magento 2.

Klickar på en länk och får ”Sidan kan inte visas”. Vi behöver .htaccess som dirigerar om alla anrop till index.php

success

Installera .htaccess

Med en .htaccess-fil kan vi dirigera alla anrop till index.php så att Magento 2 kan ta hand om dem.

#1 Redigera webserverns inställningar

Vi behöver aktivera stödet för .htaccess i Apache 2.

sudo nano /etc/apache2/apache2.conf

Hitta raderna som ser ut så här och ändra AllowOverride till All.

<Directory /var/www/>
   Options Indexes FollowSymLinks
   AllowOverride All
   Require all granted
</Directory>

Om du behövde ändra något så behöver du också starta om Apache 2, det vet du nu hur man gör:

sudo service apache2 restart

#2 Kopiera .htaccess om den inte redan finns

Jag vet inte varför min lokala kopia av Magento 2 saknade .htaccess filen, men vi får väl kopiera den då direkt från Magentos repository på Github.
Surfa in på: https://raw.githubusercontent.com/magento/magento2/develop/.htaccess
och spara ned filen i din web-root (För mig är det /var/www/magento2)

Testa

Du ska nu kunna surfa fritt på startsidans alla länkar.

http://127.0.0.1/magento2/

Du ska kunna komma in i admin med de inställningar du angav under installationen.

http://127.0.0.1/magento2/admin

Allt fungerade nu för mig. Äventyret kan börja!!

adminproducts

Nästa grej är att aktivera ”cron”, men det får bli en separat artikel.

Öppna APIer

 Filosofi, Nyheter, Webbutveckling  Kommentarer inaktiverade för Öppna APIer
Feb 072016
 

Du har kanske hört talas om begreppet API. Med ett API kan du fråga saker, lagra data och utföra saker.
Till exempel om du vill veta vilka Bring uthämtningsställen som är närmast postnummer 12345 kan du ställa en fråga och få ren data tillbaka.
Ett annat exempel är att hitta radiosändningar från Sveriges radio där ett speciellt lag förekommer.

Ett API kan också vara skyddat av ett loginkonto för att skydda dina data.
Till exempel har Twitter ett API som du kan använda för att skapa inlägg mm.
Alla stora webbsiter har ett API för att sedan bygga ett gränssnitt ovanpå det.
En del tillhandahåller sitt API helt gratis men av praktiska skäl begränsar hur många frågor du får ställa per tidsenhet.
Med ett API som är gratis att använda kan alla programmerare skapa tilläggstjänster som gör att ursprungstjänsten blir mer populär.

Sedan har vi de som håller hårt i sitt API och sin data. Här är Garmin Connect en sådan aktör. Se här:
”The Garmin Connect API is available for a one-time licensing fee of $5,000 for approved developers only.”
Det betyder i klartext att det inte räcker att du betalar, du kommer också att få avslag om det du vill använda APIet till inte faller Garmin i smaken.

Garmin skyddar sin egendom hårt. I detta fallet är deras egendom den GPS-data som du laddar upp till ”ditt” konto från ”din” GPS-klocka.
GPS-klockan är ingen universalhårdvara, den är att betrakta som en tjänst som Garmin tillhandahåller, och den är hårt knuten till Garmin connect.

Så vad skulle jag göra om Garmin Connect öppnade upp sitt API?
Först skulle jag göra ett backupprogram så jag har en lokal kopia av ”mina” löprundor i en sökbar databas.
Därefter skulle jag ladda upp alla löparpass som jag har manuellt inskrivna i en databas. Ladda upp data från andra tjänster så jag har allt samlat på Garmin Connect för att ha en komplett datasamling. Ladda upp vikt från min Beurer våg. Och skapa ett lapptäcke med alla GPS spår jag sprungit för att hitta nya områden att upptäcka.

Garmin connect är en toppenbra tjänst, men den skulle bli bra mycket roligare om det fanns tilläggstjänster som bygger på deras API.

På jobbet använder vi heiaheia.com för att inspirera varandra att röra på oss mer.
Där går det att skriva in träningsdata men även ladda upp data från Polar, Fitbit, Microsoft Health, Beddit. Men det går inte att utbyta data med Garmin Connect.
Givetvis har heiaheia ett öppet API. Hade Garmin gjort lika dant hade jag kunnat utbyta data mellan de två tjänsterna.

Patchar – snabblagningar

 Webbutveckling  Kommentarer inaktiverade för Patchar – snabblagningar
Nov 132015
 

heart-48522_1280Tänk dig att du är mjukvaruutvecklare och har en gedigen kedja med hur du hanterar uppgifter, utvecklar kod, dokumenterar, granskar, testar, levererar.
Det är ett bra sätt att jobba men det tar tid från uppgift till leverans.
Senaste leveransen hade, trots alla tester, ett litet fel i sig och nu går det inte att köpa något på siten, detta måste fixas nu.

Vi tar den enkla vägen och gör en patch – en snabblagning.
När vi hittat var felet är tar vi en kopia av filen som ska ändras.
Vi åtgärdar felet, ser om det fungerar lokalt och skapar en patch.

Continue reading »

MediaWiki – Din egen Wiki

 Nyheter  Kommentarer inaktiverade för MediaWiki – Din egen Wiki
Nov 132015
 

Du känner säkert till Wikipedia. Skulle du vilja h en egen Wikipedia för dina egna texter?
Mjukvaran som Wikipedia använder heter MediaWiki, och du kan också använda den.

Webserver (LAMP)

Du behöver en webserver som kör PHP och en databasmotor.
Tänkte du köra mediawiki på ett webhotell såsom Loopia så är chansen stor att de har en snabbknapp för att sätta upp detta.
Vill du däremot ha lite mer kontroll kan du göra detta själv.

Häng med så beskriver jag hur man gör.

Continue reading »

Uppgradera till OS X El Capitan

 MacOS, Nyheter, Operativsystem  Kommentarer inaktiverade för Uppgradera till OS X El Capitan
Okt 172015
 

Klicka på äpplet uppe till vänster, välj ”App store..”, sök efter ”El Capitan”, Installera.
Jag vet inte hur mycket den laddade ned men den sägs behöva 6Gb.
Efter uppgraderingen är allt som tidigare. Inga synliga ändringar.

De program jag har installerade fungerade, utom PHP Storm. Där säger OS X att det behövs en äldre Java och det ges en länk att fixa detta på en gång.
Efter Java installationen fungerar PHP Storm utan problem.

Jag uppgraderade på en Core2 dator som är många år gammal. Från snabba Yosemite 10.10.5 till lika snabba El Capitan 10.11.

 

Uppgradera till Windows 10

 Nyheter, Operativsystem, Windows  Kommentarer inaktiverade för Uppgradera till Windows 10
Okt 172015
 

Idag uppdaterade jag Windows 8.1 till Windows 10. Det är för tillfället en gratis uppgradering så jag passade på att skapa en DVD skiva och även uppgradera datorn.
Svensk information och nedladdningssidan.

Jag använder alltid de senaste versionerna av Ubuntu, OS X, Windows. Enligt mig så ska ett operativsystem göra absolut ingenting förrän jag berättar vilket program jag vill starta.
Jag är som mest nöjd när jag enbart ser ikonerna på de få program jag använder.

Startmenyn

För att få Windows 8.1 och nu Windows 10 att fungera som på den gamla goda tiden (Windows 2000) så använder jag ett program som heter Classic Shell.
Det är en enastående programvara som gör Windows 8.1 och Windows 10 användbart.

Med Classic Shell kan du berätta exakt hur startmenyn ska se ut. Läget ”Classic” är bra för då fungerar startmenyn som i Windows 2000, det passar mig utmärkt.
Sedan stänger jag av allt som heter metro och allt som heter appar. Kvar är de skrivbordsprogram som du har installerat.

Jag har ett problem med appar, de öppnas inte i vanliga fönster. Istället tar de upp hela skärmen. Den som körded MS DOS på 80-talet vet hur jobbigt det är.
Dessutom så finns numera allt på webben som webbtjänster. Det är bara ett fåtal programvaror som behövs lokalt. Till exempel Firefox webbläsare och tyngre spel.

Continue reading »

Funktionsvariabler

 Javascript och jQuery, Nyheter, PHP, Webbutveckling  Kommentarer inaktiverade för Funktionsvariabler
Okt 042015
 

Du kan skicka in variabler i funktioner i de flesta programmeringsspråk. Det kan se ut så här:

function MyFunction($myData1 = 123, $myData2 = 'Hello')

Om du skriver så här:

MyFunction(,'Hej');

så betyder det att du nöjer dig med standardvärdet på första variabeln, och sätter ett eget värde på den andra variabeln.

Om du råkar blanda ihop det hela och skriver:

MyFunction('Hej', 456);

Då måste MyFunction göra en kontroll av varje variabel att den innehåller det som förväntats.
Programmeringsspråk som har en inbyggd kontroll av variablernas datatyp kommer att protestera. Men PHP och Javascript har inte detta (PHP har en svag kontroll i senare versioner av PHP)

Jag ska presentera ett förslag för dig så får du fundera på det. Det här förslaget fungerar i alla programmeringsspråk men jag ger dig ett exempel i PHP och i Javascript.

Continue reading »

Capistrano – första kontakten

 Nyheter  Kommentarer inaktiverade för Capistrano – första kontakten
Sep 192015
 

Wikipedia säger ungefär: ”Capistrano är en ett verktyg för att köra scripts på flera servrar; Huvudsyftet är att installera web applikationer”. Källkoden till Capistrano är open source och finns på Github. De scripts som nämns är skriva i språket Ruby.

z35W7z4v9z8w

Målet

Mitt mål är att förstå hur Capistrano kan användas till att installera en angiven version av Magento tillsammans med specifika versioner av olika moduler.
När jag säger angiven version så menar jag en textfil där allt står uppskrivet, den filen heter composer.json och skapas av ett system som heter Composer.
Så det är tre komponenter att lära sig här: Composer, Ruby, Capistrano

Det finns två guider på nätet, en hur man deployar WordPress, och en hur man deployar Magento – med Capistrano.

Continue reading »