Visar inlägg med etikett django. Visa alla inlägg
Visar inlägg med etikett django. Visa alla inlägg

Django, perfect fit

Posted by Kenny Eliasson | Posted in , , , | Posted on 12:20

Har under min vintersemester haft möjligheten att fördjupa mig i Django.

Det enda jag gjort i Django tidigare är ett par väldigt lätta exempel som jag visat upp för kompisar men nu skulle jag göra ett riktigt projekt, om än väldigt litet.

Sidan jag skapar är en personlig hemsida till en släkting och det enda som behövs är ett nyhetsarkiv och ett bildgalleri, allt annat kan vara statiskt till en början då hemsidan inte är tänkt att uppdateras allt för ofta.

Så jag satte igång med att generera mina modeller, admin-gränssnittet ändrade inställningar för språk och databaser tills jag stötte på mitt första problem, inlänkning av stylesheets, javascript och bilder.

Först trodde jag att det hade med mina urls, att jag skulle mappa "media"-filer rätt, men det funkade inte! Efter att ha gjort en snabb google-sökning så visade det sig att man skulle använda sig av en inställning som heter MEDIA-ROOT.
Som tur är har vi ett Django projekt på jobbet, så jag drog helt sonika hem det för att se hur dom hade löst det.

if LIVE:
SITE_URL = 'http://www.skarp_hemsida.se'
else:
SITE_URL = 'http://localhost:8000'

DJANGO_ROOT = os.path.dirname(os.path.realpath(django.__file__)).replace("\\", "/")
SITE_ROOT = os.path.dirname(os.path.realpath(__file__)).replace("\\", "/")
MEDIA_ROOT = SITE_ROOT + '/m/'
MEDIA_URL = SITE_URL + '/m/'
ADMIN_MEDIA_PREFIX = '/media/'

En alldeles utmärkt lösning som funkar live och lokalt. Nu var det bara att länka in stylesheetsen med "/m/css/xxx.css"

Andra problem som jag stötte på är att alltid glömma ":" efter class och for-loop deklarationer (class MyClass: resp. for i in ints:).
Att kopiera kod från andra dokument eller ifrån webben förstör verkligen tab-indentering och får Python att fräsa ur sig felmeddelanden.

Saker som jag verkligen avundar folk som sitter och jobbar med Django är template-systemet. Jag som kommer ifrån .NET med sina fula <% %> taggar och for/if-satser avundas verkligen {% %} syntaxen och alla hjälp-metoder som finns.

ActiveRecord, dvs databashantering, spara, querya etc är nåt som funkar out-of-the-box och inget man tänker över. Skönt att slippa behöva skriva kod för att få detta att funka.

PIL, Python Image Library, har jag jobbat en del med för att förminska bilder. Av det lilla jag jobbat med det har det varit helt underbart, man märker att utvecklarna bakom har tagit ett steg till och tänkt till hur vi som utnyttjar API:et vill använda det, inte hur man proppar det med fullt "low-level" funktioner som t.ex. .NET's System.Drawing.

Det har varit mycket lärorikt att sitta och jobba med ett helt annat språk ett tag, ett dynamiskt språk har verkligen sina fördelar men även nackdelar, men mycket av nackdelarna just nu är antagligen för att jag inte har 100% koll på Python.

Någon av er andra som testat ett par andra språk? Ruby har det ju varit mycket snack om men jag har inte riktigt gillat syntaxen. Kanske nåt funktionellt, F#, Lisp, Haskell? Skriv gärna en kommentar :)

Hobbyprojekt, förr, nu och i framtiden.

Posted by Kenny Eliasson | Posted in , , , , | Posted on 09:00

Efter att ha startat och lagt ner ett flertal hobbyprojekt så börjar nu lusten att starta upp nåt nytt att leka med på fritiden komma tillbaka.

Efter att ha startat upp en budget-site, en e-shop lösning till min pappa och massa annat småpill utan att komma i mål med nåt av projekten så känns det nästan lite dödsdömt från början. Jag undrar varför det blir så? Varför kan jag inte slutföra mina hobbyprojekt?

Dels är det såklart tidsaspekten, jag orkar helt enkelt inte sätta mig vid datorn och fortsätta programmera när jag kommer hem. Som tur är har jag ett jobb där jag har möjlighet att utforska nya grejer på arbetstid. Samtidigt missar jag ju tekniker som jag inte jobbar med på jobbet, och om vi då bara snackar om .NET stacken så missar jag t.ex. Silverlight och WCF . Python och Ruby skulle vara oerhört intressant att lära sig mer om även om jag får sitta med Python ibland så vill jag gärna sitta mer med det för att komma in i det "dynamiska tänket"

Men de hobbyprojekt som jag ändå drar igång har en tydlig tendens att dö ut när jag kommer till design-biten. Jag är inte världens bästa designer och tröttnar lätt på nåt jag knåpat ihop själv, vilket får mig att tappa intresset för hela projektet.

Med denna kunskap i bagaget kanske man skulle ge sig på att bygga nåt utan ett alltför grafiskt gränssnitt.

Idag hade jag tänkt mig att bygga en "Nytt projekt mappstruktur" så att man slipper skapa mappar för lib, src, doc och att den automatiskt skapar en solution fil. Och allt detta ska skötas ifrån consolen :)

En annan tanke är att skapa ett väldigt lätt ramverk ovanpå .NET MVC. Det jag vill uppfylla är nåt liknande Django där modellerna och admingränssnitt autogenereras, samt att mycket av de kommandon man kör i Python-consolen har sina motsvarigheter i mitt proejkt (t.ex. startproject, syncdb etc). Alltså nåt som man lätt kommer igång med.

VMWare player och mig

Posted by Kenny Eliasson | Posted in , , , , , , | Posted on 09:30

Satt och kikade på Tekpubs senaste avsnitt om NHibernate när jag kikade på vidare på vad de erbjöd för mer videos. Hittade då en om Linux och Ruby on Rails och i den visade dom hur man installerar Ubuntu på en virtuell maskin.

Och eftersom jag aldrig använt virtuella maskiner innan så tänkte jag att nu var det dags. Så sagt och gjort gick hem installerade VMWare player och laddade hem nyaste Ubuntu.

Installationen gick hur smidigt som helst och tog inte mer än 10 minuter innan jag var inne i operativet och började utforska Linux igen. Sist var nog för 5 år sedan och då körde jag Slackware. Och jisses sicken skillnad på operativ då och nu, kan absolut se mig gå över till en dist av Linux i framtiden. Synd bara att Visual Studio och C# inte finns fullt implementerat.

Saker man direkt faller "in love" med är apt-get för att hämta hem t.ex. Ruby och Django med alla dependencies. Så allt installeras utan att du behöver tänka på nåt. Sen är det skönt att ha en vettig terminal, det är trots allt lite "h4xX0r" känsla på det :)

Man får kanske installera VMWare och köra Windows virtuellt så att man kan fortsätta programmera på .NET plattformen? :)