Arkiv för kategori ‘Projekt’

ExtJS

torsdag, 19 augusti, 2010

Jag har nu lekt med ExtJS i två veckor, jag gillar det! :) Väldigt smidigt, enkelt, snabbt och snyggt. Jag gillar tänket :)

Nackdelen är väl att det mer eller mindre enbart bygger på javascript, men till en del saker så spelar det ingen större roll. Just nu har jag bara byggt en enkel bildvisare med det (ihop med ASP.NET MVC, passar väldigt bra ihop), blir ganska trevligt resultat. Nästa plan är att det admingränssnitt jag håller på att bygga i ett annat projekt ska byggas om ifrån grunden till det här, bland annat just därför att jag kan spara väldigt mycket tid här på att återanvända saker, samt att mycket kan ske av sig självt; ExtJS har t.ex. egna datakällor som kan köras ifrån ASP.NET via JSON. Sedan kopplar man ihop den där datakällan med någon vy (templates!) + en paging toolbar och vips: färdigt!

Dessutom finns trevligheter såsom att man kan “exportera” metoder på servern till klienten dynamiskt, så ExtJS bygger egna wrappers runt serverns metoder. Rätt snyggt faktiskt.

Till ExtJS så finns det även en designer för att designa fönster, formulär etc. grafiskt. Jag har köpt in licens till dels ExtJS och dels till ExtJS Designer, väl värda pengar.

Zimbra - Updatera feeds / Update Feeds

onsdag, 11 februari, 2009

(English below)

Svenska:  

Jag kör ju Zimbra som mailserver, och en finess är att man kan skapa mappar som läser rss-feeds. Kruxet är dock att det inte finns någon automatisk uppdatering av de här “rss-mapparna” utan tanken är att man ska göra det själv. Vad gör man då? Jo, man löser problemet :) Ramlade på en lösning i Zimbras forum, genom att köra zmmailbox med lite parametrar så kan man uppdatera en utvald mapp hos en viss användare. Jag har byggt på det lite.. :)

Jag har knackat ihop en windows service som via ssh ansluter till en Zimbraserver, loggar in med valfritt konto och lösenord, kör ev. “su” om det behövs för att köra som användare “zimbra”, och kör sedan zmmailbox på de mappar det behöver köras på. Man kan lägga upp flera mappar och konton, med olika intervall, tjänsten ser själv till att köra dem med rätt intervall. Vid ev. exceptions och liknande så ska det i teorin loggas i eventloggen, men jag rekommenderar nog att man ändrar inställningarna för tjänsten så den startar om sig ifall den dör av okänd anledning.

Efter man installerat tjänsten måste man konfigurera den, titta i Onkelborg.Zimbra.Feeds.Sync.exe.config, och ändra det som är lämpligt. Konton och mappar lägger man upp under “ZimbraAccountFolders” genom att lägga till <string>MINUTER;anv@ända.re;/min/mapp</string>. Den som redan är inlagd går självklart jättebra att ta bort ;) Glöm inte bort att starta/starta om tjänsten efter ändringar i config-filen!

Tjänsten är skriven i C# för .NET Framework 3.5 SP1, även om det mest troligtvis går jättebra att köra med .NET Framework 2.0, men jag har inte testat det. Koden använder sig avGranados för SSH.

Det finns tre alternativ för nedladdning, samtliga med källkod:

English:

I’m using Zimbra as my mailserver, and a pretty nifty feature is that you can create folders that are able to read rss-feeds. Of course, it’s not perfect; there so automatic update of these folders, you are expected to update them manually. What to do? Since I’m a programmer I solve the problem :) I stumbled upon a solution in Zimbra forums, by running zmmailbox with some parameters you can update a selected folder for an account. I’ve built some stuff upon that.. :)

I”ve built a windows service that’s able to ssh into the zimbraserver, log on with a username and password, execute “su” if needed to run as the user “zimbra”, and then execute zmmailbox on the folders that’s about to be updated. It’s possible to add multiple folders and accounts, with different intervals, the service will take care of updating them with the proper interval. In case of exceptions, the service should (in theory) log them to the eventviewer, although not tested. I recommend changing the settings for the service to automatically restart it in case the service unexpectedly dies.

After installing the service you have to configure it, take a look in the Onkelborg.Zimbra.Feeds.Sync.exe.config file, edit what’s needed. To add accounts and folders, find the “ZimbraAccountFolders” and add new -entries there. The syntax is <string>MINUTES;user@na.me;/my/folder</string>. Feel free to remove the entry already added ;) Don’t forget to start/restart the service after editing the config!

The service is written in C# for .NET Framework 3.5 SP1, however, it might work well with .NET Framework 2.0, but I haven’t tested that. The code relies on Granados for SSH.

There are three options for downloading, everyone with sourcecode:

 

    Min stationära burk

    söndag, 18 januari, 2009

    Jag har en stationär burk som varit död i över ett halvår pga. en trasig disk (eller snarare, jag har inte velat slita på de som lever då en till krash => korrupt filsystem; nackdelen med raid 5 istället för raid 6..)

    Hur som haver, jag håller på och grejjar med burken nu, och det verkar som att jag kanske har fått igång disken ändå (har en teori om att det är någon kabel som glappar, har prövat några gånger förut, men inte fått till det, men nu verkar den gilla läget..?) och funderar på vad jag ska göra sedan. Jag har trots allt klarat mig bra utan burken rätt länge, och det är nog inte så jättemycket på den som jag känner att jag måste spara - vad ska jag hitta på sedan?
    En idé jag har är att stoppa in linux på den istället för win xp, troligtvis kör jag då på ubuntu (stor användarbas - mycket support på nätet, mycket i pakethanteraren) och slänger in en virtuell maskin, frågan är bara vad? Xen verkar intressant, men jag måste utvärdera lite mer..
    Hårdvarumässigt så måste jag ändra lite, grafikkortet får nog åka, jag stoppar in något gammal pci-skräp istället (bättre ur miljösynpunkt, nuvarande kort drar nog rätt rejält med strömming, dessutom hoppas jag vinna lite stabilitet.) Dessutom tänker jag nog köra 64-bit, såvitt jag förstår så klarar nämligen Xen att köra både 32- och 64-operativsystem, vilket gör att jag kan leka lite som jag vill där :)
    Anledningen till det här är att jag känner att jag skulle behöva banta ner mitt förråd av servrar, samt göra allting enklare och smidigare: två servrar känns helt ok, dels min gamla “stora” server, en P4:a, och dels den här stationära.
    Den med Xen kör då som sagt Linux och den andra kommer då köra win2k8 (spännande att testa nya saker :) ), även den med en virtuell maskin (gissar på den som kommer med win2k8)
    Linuxburken kommer då ha en config bestående av 2 gb ram samt 2*250 gb + [2/3]*320 gb diskar (beroende på hur pålitlig den där sista 320 gb-disken är..) På det kör jag då LVM så jag kan göra lite vad jag vill med diskarna. En idé på config är raid 1 på system + swap, data ligger sedan på kombinerad raid 1 + raid 5 (raid 5 så långt det går, det som blir över få blir raid 1)
    På windowsburken är config 2 gb ram samt 2*160 gb disk. Just nu är diskarna i raid 0-config (läskigt..), men det ska nog blir raid 1 istället.
    En variant är att flytta över diskarna från windowsburken till linuxburken för att sedan stoppa i några smådiskar i windowsburken, typ 2 små IDE-diskar i raid 1 - klarar diskkrash. Idé är sedan att lagra allting på linuxburkens diskar. Styper dock på en punkt; har bara ett s-ata-uttag kvar på linuxburken :/ Å andra sidan, diskar i windowsburken skadar inte, då har man lite disk att ha backup på när det gäller det viktigaste, samt att om en server kraschar så är det inte kört att hålla t.ex. mail igång.
    En vidareutveckling kan sedan vara att t.ex. stoppa in 4 gb ram till i linuxburken för att få totalt 6 gb ram, något som nog inte skulle skada :)
    Men, men, steg 1 är att burken ska få reparera all raid 5, vilket kommer ta ett tag.. :P

    Projekt Hemligt

    tisdag, 18 mars, 2008

    Jag driver ett projekt hemligt ihop med en till programmerare och en säljare. Ett intressant projekt. Det finns en tänkt kund, som är den primära kunden, med många fler potentiella kunder bakom hörnet.

    Projektet är ganska stort, och det är mycket som måste tänkas igenom. Det viktigaste är att få ett grepp om hur stort det är, och dela upp det. Vad kan förbättras i den här produkten jämfört mot konkurrenterna? Vad måste våran produkt klara av? Hur ser juridiken ut på de områden vi kommer in på?

    Sedan, vilken bolagsform ska vi driva som? HB ligger nära tillhands, för att sedan sikta på ett AB när kapital börjar strömma in.

    Projektet, vars produkt är en mjukvara, omfattar mycket. Hur ska mjukvaran se ut? Det är klart att den till stora delar kommer vara webbaserad. Det måste finnas en databas i botten. Vilka krav ställer vi på databasen? På gränssnittet? O/R-mapper? Hur ska arkitekturen se ut? Hur ska den officiella utvecklingsmiljön se ut?

    När det gäller samarbete, hur löser man effektivast sådant? Alla deltagare i projektet måste kunna komma åt all information, det är nästan ett krav. Det måste vara smidigt.

    Alla verktyg vi väljer måste i första hand bidra till att utvecklingen av våran produkt kan ske så snabbt som möjligt, och vara enkla att använda. Vi måste sträva efter att skapa en arkitektur som tillåter förändringar i efterhand, dels förändringar pga. krav från kunden, dels förändringar pga. ändrad lagstiftning, dels förändringar pga. nya funktioner och dels förändringar pga. rena “feltänk” i designen. Vi måste sträva efter att göra enkla lösningar, och göra rätt ifrån början.

    En fundering, ej noga genomtänkt, är att vi borde bygga modulärt. Jag tänker mig att man skapar ett GUI/gränssnitt (även på affärslogiksnivå?) som bygger på att man plockar ihop “moduler”? Olika “typer” av information som ofta presenteras “packas ned” i moduler, där en modul kan presentera en viss typ av information.

    Mina preliminära förslag på lämplig miljö att arbeta i är virtuella servrar med windows 2003, asp.net 3.5, postgresql, vs.net 2008, sharepoint, telerik rad kontroller, llblgen pro/npersist (måste undersökas mer noggrant, och jämföra fler alternativ.)

    När det gäller just GUI-kontroller, jag tror att man borde “packa om” dem och skapa egna klasser och interface för att inte skapa beroenden på dem. Dessutom, som sagt, kan man skapa moduler. En modul som kan presentera, ev. editera, en viss typ av information på ett bra sätt. En större bit av applikationen kan sedan sättas samman med enbart moduler, något som borde förkorta utvecklingstiden, förenkla underhållet och förbättra produkten.

    Vidare, jag tror att MVC är vad som kommer gälla, samt någon form av unit-testning.