Arkiv för kategori ‘Programmering’

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.

Dags att lära sig Php?

lördag, 17 oktober, 2009

Det är kanske dags att lära sig Php?

Min upplevelse hittills av php är att det är ett ganska ostrukturerat och ogenomtänkt språk, men visst, det fungerar att knacka kod i det med. Eftersom anledning till att jag ens börjat med Php mer än på nivån “hacka till saker så det fungerar som jag vill” är tåg så har jag släppt ut en liten testsida på nätet: http://trafik.onkelborg.se/trafik.php

Sidan visar, i skrivande stund, bara avgående tåg ifrån en viss driftplats (Cst, Stockholm C), samt alla stopp varje tåg gör. Sidans existensberättigande är motiverat med att jag behöver ett konkret projekt att testa på, och just nu är det projektet att se vad man kan hitta på med php, screenscraping, regexp och lite annat. Till råga på allt har jag hunnit bli irriterad på det värdelösa stödet för Unicode i Php (eller snarare, stödet för encoding - all text hanteras som den kom in, en sträng verkar bara en behållare med bytes, och beroende på vad man hittat för text så kan man använda rätt funktion.) Men, men, det går att hacka sig runt.

Målet med sidan är väl att bli av med beroende på banverkets trafikinformation som källa för tågnummer utan istället försöka använda tågplaner och annat roligt istället, finns i xls-format som jag hittat hittills (om man behöver veta operatör) och pdf (alla trafikplatser + tider.)

Mobil kommunikation

fredag, 27 februari, 2009

(Nej, rubriken är inte särskriven)

Jag har skaffat en ny telefon nu i veckan och krånglar lite med den. Det första problemet var att jag ville ha mail i den, och det finns ju inbyggt. Fast det fungerar bara halvbra.. Kruxet är att den stödjer IMAP (med push, tack och lov!), men inte fler mappar än just INBOX-mappen :/ Jag har testat allt möjligt, massvis med klienter, funambol (skrotskräp, fick bara ordning på en enda mapp där med, samt att push inte fungerade..) osv, till sist gav jag upp. Jag gjorde en fullösning: vidarebefodra mail från intressanta mappar till ett nytt mailkonto, och det mailkontot bevakar jag. Det fungerar faktiskt bra :) (Har dessutom satt att den ska synka varje timme, utifall att den tappar anslutningen, grunkan verkar inte veta hur man gör för att återansluta automatiskt?)

Nu till mitt andra problem: Jag vill ha msn i mobilen, fast även på datorn, samtidigt. Med Live Messenger 9 så kom stöd för det i protokollet (MSNP16+ tror jag?), men tyvärr så är det inte riktigt bakåtkompatibelt, utan så fort en gammal klient blandas in så är det tillbaks på “sparka ut alla andra för här kommer jag”. Men, men..

Problemet är att det är helt omöjligt att hitta någonting som fungerar på en mobiltelefon (vanliga klienter, som är tråkiga, verkar det finns några stycken av) som stödjer den funktionen (MPOP, Multiple Points Of Presence vill jag minnas att det står för), jag har prövat allt möjligt, men gett upp. Att slänga ut laptopen (dvs. andra msn-klienten) är inte ett alternativ..

Lösning på problemet? Jag har hittat msnp-sharp, ett c#-lib för att skriva msn-klienter, som faktiskt har implementerat den här grejjen. Frågan är bara hur man går vidare? Att knacka ett eget program till mobilen känns för jobbigt, java är inte riktigt mitt favoritspråk, dessutom har jag aldrig skrivit för mobiler tidigare. Utöver det så tillkommer en del praktiska problem - vilka fönster är uppe? Visa dem? osv.

Den lösning jag spånar lite på just nu är att köra den som mail den också; man skulle kunna skriva en kombinerad mailserver och msn-klient som agerar “proxy” mellan just email och msn. Den klienten behöver i princip bara se till att skicka ett email till rätt adress för alla inkommande chatmeddelanden, med en speciell adress som avsändare (något i stil med typ foobar++a++hotmail.com@msnklient.onkelborg.net), och när man svarar på det meddelandet så hamnar det i den inbyggda mailservern, och skickar ett meddelande till rätt kontakt på msn. Ganska enkelt? På mobilen behöver man inte bry sig om någonting alls egentligen.. :)

En variant på temat är att göra någonting med sms, wap och email. SMS för att skicka ut meddelanden till telefonen, fast bara en länk till en wap-sida, wap för att köra själva chatten, hur det nu skulle gå till, och antingen i wap, med sms eller email svara på meddelanden. Gissningsvis med wap. Den här lösningen känns både bättre och sämre, med definitivt krångligare att genomföra.

Nackdelen med första lösningen är att det lätt kan bli mycket mail, det är inte helt ovanligt att man kan hålla “monologer” och skriva en hel drös med inlägg innan den andra varken hinner läsa eller svara. Det tänkte jag att man skulle kunna komma ifrån lite med wap..? Frågan är hur man ska göra.. Hålla ner datatrafiken är i alla fall viktigt, och att det är enkelt att använda. Men sen..? Aja, det får bli någon annan gång..

Lista plugins i wordpress

lördag, 14 februari, 2009

Jag kände ett behov av att lista alla laddade plugins i wordpress, hackade lite, och vips:

include_once('wp-admin/includes/plugin.php');
$all_plugins = get_plugins();
foreach ( (array)$all_plugins as $plugin_file => $plugin_data)
{
if(is_plugin_active($plugin_file))
{
$plugin_data = _get_plugin_data_markup_translate($plugin_data, true, true);
echo "<li>{$plugin_data['Title']}</li>";
}

Tjusigt  va?

Cache!

fredag, 13 februari, 2009

Nu har jag, efter en massa bråk, äntligen fått in en cache i wordpress :) WP-cache. Tyvärr så är det inte helt genomtänkt det hela - tanken är att man genom att stoppa in lite roliga taggar i koden ska kunna exekvera vissa funktioner även fast sidan är cachad. Fungerar halvbra som sagt.. Efter mycket våld på källkod både här och där har jag dock lyckats få ordning på så statistiken fortfarande fungerar när den kör cachat. Från 15-16 frågor/sida till 2 frågor/sida är ändå rätt så bra, och en klar sänkning av laddningstiden.

För att jag själv ska ha någon koll på vad jag gjort så vill jag påminna mig själv om att jag ändrat i wp-load.php (flyttat anropet till advanced-cache.php är någonstans mitt i alla include/require-grejjerna), modifierat statpress (lagt in statiska url:er, tagit bort koll av inloggning), modifierat step 2 i cachen, lagt dit en variabel så man vet om en sida är laddad eller inte. Dessutom lagt till en funktion som kollar nyss nämnda variabel i functions.php, för att välja exekveringsväg baserat på om sidan är cachad eller inte.

Blir sååå glad när det är dags för nästa version.. NAT :)

Blogger Redirector - Trevligt :)

fredag, 13 februari, 2009

Fick precis ordning på permalinks från gamla blogger nyss, Blogger Redirector är ett trevligt plugin. Krävs lite handpåläggning dock, fick lägga till

|| true

i första if-satsen för att det skulle fungera. Men nu fungerar det i alla fall :) Har för övrigt ändrat lite config sen förra inlägget, men fråga mig inte vad för det vet jag inte.. ;)

Men, men, nu ska jag sova om sedan några timmar sedan.. Hopplöst det här :)

Äntligen! Blogger => Wordpress

fredag, 13 februari, 2009

Nuså, nu har jag gett upp blogger :) Numera har jag en egen wordpress-installation, som förhoppningsvis inte innehåller en massa säkerhetshål.. ;)

Temat är standardtemat, fast ganska ändrat, t.ex. har jag raderat allt vad bilder heter, och sett till att sidan breder ut sig ordentligt. För folk som tycker att det blir för brett så ska jag avslöja att man sedan några tiotal år tillbaka kan ändra storlek på fönstren, och då således hemsidan som befinner sig i fönstret :)

Jag har spenderat en del tid med att justera lite här och vad, jag tycker att det blev ganska stilrent ändå. Google Chrome är det primära, firefox det sekundära. De ser bra ut. IE ser lite skrot ut i detaljerna, men det får man stå ut med; jag orkar inte bry mig om den grunkan. Jag har inte betalt för att skriva det här, jag gör det för att det är kul ;)

Har lagt en del tid på att fixa lite bakåtkompabilitet mot blogger, främst för att jag vill få alla url:er att fortfarande stämma. Då jag kör med lighttpd så krävdes det lite regler där, tog färdigt exempel från nätet och modifierade lite.

/etc/lighttpd/wp-rewrite.conf

url.rewrite-once = (
    "^" + wpdir + "(wp-.+).*/?" => "$0",
    "^" + wpdir + "(sitemap.xml)" => "$0",
    "^" + wpdir + "(xmlrpc.php)" => "$0",
    "^" + wpdir + "([0-9]{4,4})_([0-9]{2,2})_([0-9]{2,2})_archive.html$" => wpdir + "wp-redirect-archive.php?year=$1&month=$2",
    "^" + wpdir + "feeds/posts/default$" => wpdir + "wp-feed-atom.php",
    "^" + wpdir + "feeds/posts/default\?alt=rss$" => wpdir + "wp-feed-rss.php",
    "^" + wpdir + "search/label/(.+)$" => wpdir + "index.php/$1",
    "^" + wpdir + "keyword/([A-Za-z_0-9-])/?$" => wpdir + "index.php?keyword=$1",
    "^" + wpdir + "(.+)/?$" => wpdir + "index.php/$1"
)

/etc/lighttpd/lighttpd.conf
server.modules = (
            "mod_access",
            "mod_alias",
            "mod_accesslog",
            "mod_compress",
            "mod_rewrite",
)
$HTTP["host"] =~ "blog\.onkelborg\.com$" {
var.wpdir="/"
include "wp-rewrite.conf"
server.document-root = "/sdsdgsdfgdghdfg"
server.errorlog = "/sdgfgdfgdfgd/error.log"
accesslog.filename = "/dfgdfgdfgdfg/access.log"
#server.error-handler-404 = "/e404.php"
}

Under Inställningar/Permalänkar (gah, hata svenskt admin..):

Anpassad struktur: /%year%/%monthnum%/%postname%.html
Kategoribas: search/label

Skapade några php-filer (jag har skrivit php-kod!), kopierade bara wp-feed.php och sparade som wp-feed-rss.php resp wp-feed-atom.php. Den förstnämnda bytte jag från rss2_url  till rss_url eller vad det nu stod i filen. Skapade dessutom en wp-redirect-archive.php, också den som de förra, fast lite speciell wp_redirect-rad:

wp_redirect( “/”.$_GET['year'].”/”.$_GET['month'], 301 );

Det här löser länkar till gamla kategorierna, till gamla inlägg (utom vissa äldre där blogger konverterat åäö till ingenting istället för aao), till gamla rss & gamla atom, samt till gamla arkiv. Finemang :)

Sedan en grej till: http://justinblanton.com/2005/11/disabling-auto-paragraphs-in-wordpress

Wordpress skiter i html-koden. Störande :/ Den avslutar inte taggar som man ska :( Och så blir det lätt knas av alltihopa. Tillsvidare kör jag med ett litet css-hack:

.entry div{
	margin-top: 1em;
}

Det lilla “hacket” får gamla, importerade, inlägg ifrån blogger att se läsbara ut. Tror det är en miss någonstans i wordpress, är rätt säker på att det var korrekta <p>-taggar på blogger nämligen.

Min nuvarande config

torsdag, 12 februari, 2009

Jag tänkte bara förklara lite hur min config ser ut för tillfället :)

Jag har min “nya” server, körandes xen. Ubuntu 8.04 som “värd”, sedan en till ubuntu 8.04 som “brandvägg” (ska bli i alla fall, just nu reverse proxy + mrtg), en win2k3 för extern mailserver (hMailServer) + mountar externa 500gb-disken (ntfs-3g i linux klarar inte åäö..), delar en share som värden mountar. Kör även ett verktyg för autouppdatering av feeds i min zimbrainstallation. Zimbrainstallationen snurrar även den på en Ubuntu 8.04-installation.
Win2k3-servern är även domänserver i min ad-domän, men det är något knas med den, inte kommit på vad än bara.. Måste börja hitta felet känner jag, annars får en av de gamla domänservrarna leva vidare ett tag.
Värden kör även samba för att dela ut t.ex. hemkatalogerna (den är medlem i min domän, och hanterar domänanvändare fint), samt den externa disken. Dessutom den “stora” raid 5-arrayen, som just nu inte är så stor pga. att jag måste få tummen ur och skicka iväg den felande wd-disken. Men, men :) Just de, har även mountat mitt zimbrakonto via webdav, fungerar dock lite taskigt; zimbra följer inte webdav-standard och returnerar tydligen 200-headers när den ska returnera 404-headers :/ ( == kan inte skapa filer, klagar på att filerna redan finns)
Just det, jag har syndat lite. Har dragit in X + fluxbox & IceWM. Måste bara säga att jag hatar fluxbox, och halvhatar icewm. Trivs inte för fem öre i något av dem, men icewm är i alla fall lite, lite användbart. Har det mest för att kunna köra spotify :) Samt för att jag tänkte att man skulle kunna köra lite roliga grafiska appar på den, vete sjutton vad iofs, men.. Har en idé om att lägga upp kommunaltrafiken + sj.se lite snyggt där? Men då blir det en fullösning med rdp och låta programmer köras på windows :)
På min laptop kör jag Vista, inte så mycket att säga om den.
Min gamla “snabba” server ska jag försöka tömma på saker för att sedan installera om den med. Frågan är vad bara? Win2k8 skulle vara kul att se vad det är för något (köra med hyper-v), men annars blir det nog en ubuntu 8.04 där också, självklart med xen ;) Fördelar med xen: samma på båda burkarna. Fördelar med win2k8: windows lär flyta på mycket bättre i hyper-v än xen.. :)

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:

 

    Python

    tisdag, 16 september, 2008

    Jag ska nog ta och satsa lite på att lära mig lite Python, bara-för-att. Django ser kul ut? Funderar lite på combon IronPython & Django, verkar behövas lite patchande, men.. Django borde ju kunna få gå i CPython (här skulle Python for .NET vara trevligt, men verkar tyvärr dras med enkeltrådighetsbekymmer från CPython?)
    Oj, nu har jag visst råkat sova ungefär här, så nya friska idéer kommer nu.. :P
    Jag ska nog roa mig med Django och Python helt enkelt någon gång, kanske, i någon framtid.. :P
    Appropå ingenting, dumma tvättmaskin. Felkod :/ Har otvättad, halvblöt tvätt nu som måste tvättas.. :/

    Telerik & MVC = Sant?

    tisdag, 18 mars, 2008

    Måste undersökas..

    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.

    Zimbra - Lite smått och gott

    tisdag, 15 januari, 2008

    Jag har nu kört mailserver Zimbra i lite en vecka, och är riktigt, riktigt nöjd, trots att den har stora minnesbehov (1 gb ram :P ) och har en förmåga att halvdö lite då och dö (ett gäng tjänster bestämmer sig för att det är tråkigt att leva. ;) ) Men, men, jag har lösningar på det med.. =)

    Vad exakt är Zimbra då? (I mina ögon, ska tilläggas..) Jo, en grymt trevligt, integrerad mailserver med en massa opensource-grejjer under skalet, ihoppackat med en massa java-kod och lätt tillgängligt för t.ex. ubuntu server, vilket är det jag kör (i en virtuell maskin, för smidig backup.) Bra interface (webbaserat, både mail och admin, även om mail såklart finns tillgänglig över både imap och pop, med eller utan ssl), med massvis godis såsom t.ex. allting kan delas, kalendrar, uppgiftslistor, addressbok, chat (inte testat mycket, beta-version), online-dokument, portfölj (ladda upp filer, och kategorisera) osv. Drag’n'drop på det mesta. Mycket går att koppla ihop, t.ex. att klicka på en kontakt och välja vad man vill göra, eller slänga en bifogad fil i portföljen osv. osv. Även mail-filter och möjlighet att importera mails via pop/imap finns, även om mailen då inte verkar passera mail-filtren.

    Lite häftiga saker finns, t.ex. att en kalender i kalendern (man kan ha flera alltså) kan vara en url till en kalender på nätet, t.ex. importerar jag mitt schema som ics-fil rakt in i en kalender, hur trevligt som helst :P Eller att jag har mappar i mail-trädet som egentligen är rss-feeds, _och_ de dyker självklart upp även i Thunderbird via imap =) Självklart körs mer eller mindre hela webinterfacet med AJAX i botten, vilket minskar trafiken mot servern, och interfacet är riktigt responsivt oavsett om man sitter på samma nät som servern, via en adsl-anslutning, eller till och med via en trådlös tele2-anslutning ;)

    Nackdelarna då? Jo, till att börja med: den fungerar mindre bra i IE, väldigt seg, och lite ful. I firefox fungerar den dock väldigt, väldigt bra. Det ser jag som ett mindre problem; jag har ändå börjat överge IE bara för att den renderar så äckligt långsamt ändå..

    Vidare, den tar mycket minne, men.. Skit samma, måste jag ha ännu mer så får jag väl skaffa fram mer minnet, just nu kör jag servern på ~1 gb ram, och den flyter på väldigt bra. Vilket den för övrigt gjorde vid 500 mb också.. ;) Eftersom att den har anti-virus, anti-spam, indexering för blixtsnabb sökning och allt annat som jag nämnt, samt säkert lite saker jag glömt, så stör det mig inte alls.

    Det sista problemet.. Mailservern verkar ha en förmåga att självdö lite då och då.. Det problemet är inte så angenämnt, men.. Jag har hittat på en lösning! Jag har byggt en väldigt enkel watchdog-snurra i c# körandes på en windows-server, enkelt men effektivt. Den ssh:ar bara regelbundet in mot mail-servern och kollar av alla tjänster, är någon död så startar den om mail-servern. Kör det med 25 sekunders mellanrum. Två program, en tjänst och en watchdog, den senare är ett enkelt konsol-program. Skulle watchdogen dö, pga. något nätverksstrul så startas även den om av tjänsten. Ganska felsäkert, man hinner inte ens se i taskmgr.exe att processen startas om =)

    Sedan finns det lite småsaker jag stör mig på, t.ex. att kalendrar baserade på url:er, eller rss-mappar, inte laddas automatiskt, men det har jag nog tänkt lösa lite finurligt: en tjänst som frågar lite webservices om alla konton på servern, sedan gå igenom konto för konto och listar alla mappar, för att sedan för varje mapp som är ett feed trigga en uppdatering. Känns som en rätt vettig lösning ;)

    Spännande dag ;)

    tisdag, 4 december, 2007

    Nu var det ett tag sedan jag skrev någonting senast, men nu tyckte jag att det var dags att skriva någonting.. :P

    Idag har det varit spännande =)

    1. Jag fick faktura från Tele2 förra veckan, eller om det var slutet på förr-förra veckan. Tittade igenom idag och tänkte kolla när den skulle betalas. Oops.. 28:e stod det. November. Kuvertet var det handskriven adress på. Fakturan var utskriven 8:e november. Ringde kundtjänst, och tydligen hade den automatgenererade fakturan studsat tillbaka pga felaktig adress, de hade väl missat lägenhetsnumret.. :P Fick uppskjutet till 28:e december istället, gott om tid att laga problemet på =)
    2. Tänkte betala omgående så det var läge att plocka fram dosan till internetbanken. Eftersom att den inte låg på skrivbordet så måste den ligga i ytterfacket på datorväskan. Och eftersom att den inte låg i ytterfacket på datorväskan så måste den ligga på skrivbordet. En oändlig loop utvecklades tills stacken sa ifrån.. Måste drällt den någonstans, hoppas att något syskon ska hitta den, annars får jag väl shoppa ny för typ 200 kr.

    Roliga är att jag varit rädd för just det här, att tappa bort dosan, och lösningen är trots allt simpel: mjukvarucertifikat! Ingen risk att tappa bort, enda risken är väl om man får in virus, men å andra sidan, det ska man inte få.. Kombinera med lösenord om så behövs, hjälper iofs inte mot virus det heller, men, men.

    En lösning som jag funderar lite på som skulle lösa problemet är att helt enkelt ta och tjuvkoppla lite i en dosa; man tar en avr-processor och kopplar till dosan (knappsatsen samt displayen) så att man dels kan knappa ins aker på dosan, samt att kunna läsa av displayen. Sedan kopplar man avr:en till en server via t.ex. serieporten.

    Bygger sedan lite mjukvara till avr:en för att kunna mata in nummer (pinkod och challenge) samt läsa av nummer (response från displayen.) På servern har man sedan en service eller liknande som svarar på tcp/ip eller något sådant. Sätter sedan upp en webservice någonstans i nätverket som pratar med den här servicen. Webservicen pratar man med krypterat, och har autentisering (rättstavat?) på. Sedan bygger man en liten klient som kan prata med den här webservicen, t.ex. som ett plugin till firefox med greasemonkey.

    Då får man vips en möjlighet att bara mata in användarnamn och lösenord, som då sedan skickas krypterat till webservicen tillsammans med challenge, som då slår upp pinkod i en databas, skickar pinkod + challenge till servicen som “matar in i dosan”, väntar på att displayen uppdaterats, läser sedan av siffrorna, skickar tillbaka hela vägen till greasemonkey som spottar in siffrorna i textrutan och postar sidan. Voilá, man kan nu äntligen logga in på rätt sätt =)

    Undrar hur många avtal man bryter mot ifall man rättar till deras brister?

    Men, men, nu är jag påväg till ett styrelsemöte, ska diskutera fram en budget för nästa år. Jag vill se pengar till två saker:

    1. Ungdomsarbetet, främst tonår tänker jag på nu (som nog borde göras om mycket, men det rör inte budgeten); en egen budget som vi förfogar över precis som vi vill skulle göra livet mycket, mycket enklare.. Just nu delar tonår budget med alla andra verksamheter inriktade mot barn/ungdomar (futtiga 10 000 kr..)
    2. Ljudanläggningen, som det är nu så finns det massvis med saker det skulle behövas investeras i, både för “vanligt användande”, men även om man vill köra lite konserter och annat.. (Stativ, mikrofoner, kablar, multis, monitorer, subbar, etc. etc.) Visst, det fungerar, men det är ofta saker måste lånas in till höger och vänster, vilket är lite jobbigt..

    Seg kompilering

    måndag, 9 juli, 2007

    VS.NET 2005 börjar bli seg på att kompilera när koden börjar röra sig uppåt några mb. Är lite störande :P

    Btw, kör last.fm-radio, å nu spelar den “AC/DC - Big Balls”. Hm..?

    Comodo AntiVirus

    lördag, 7 juli, 2007

    Nu har jag haft en liten dust med Comodo AntiVirus också :P

    Bakgrund: Tycker att det kanske är dags att stoppa in lite antivirus på datorn, så jag trycker in Comodo som är helt gratis, och brukar fungera bra. Tyvärr slutar dock det programmeringsprojekt jag jobbar på (för en kunds räkning) att fungera, så det finns bara en sak att göra: Hitta felet. Först trodde jag att det var att jag uppdaterade en komponent för DAL i projektet, men det visade sig inte vara det. Jag körde på och kom fram till att det var anslutningen mot databasen som sket sig. Efter lite mer exprimenterande så visade det sig att om jag körde samma kod i ett vanligt windowsprogram så fungerade det, men om jag körde den i en asp.net-sida så sket det sig.

    Jag började kolla felmeddelandet på google och hittade att det skulle kunna ha något med någon Winsock Service Provider att göra, så jag kollade i Windows Defender. Det enda som fanns, förutom Microsofts, var Comodo, så det var värt ett försök: Leta verktyg för att ta bort LSP för Comodo!

    Efter en omstart så fungerade det. Jag bestämde mig sedan för att skriva ett detaljerat supportärende till Comodo med hopp om att det ska kunna fixa det hela.

    Tja.. Det var väl det hela.. :P

    iPod är hemskt!

    lördag, 23 juni, 2007

    Igår skulle Lul hjälpa Julia med att lägga in ett gäng låtar på hennes iPod, vilket borde vara en barnlek. Självklart inte dock, efter att ha avverkat iTunes, Anapod, Sharepod, notepad, wordpad, vs.net och ett gäng hemmaskrivna och specialskrivna program så lyckades vi dock med uppgiften :)

    Problem #1: iTunes är stört i hela huvudet. iTunes vill bara inte, inte mycket att göra åt det. Jag kollar lite på nätet och kommer fram till att Anapod nog ska fungera. Det gör det, vi lägger in ett gäng låtar. Kollar sedan, iPoden hittar noll (0!) låtar att spela. Skit också.

    Problem #2: Inget program hittar ett piss, inkl. Sharepod. Måste vara någonting med den berömda databasen… En snabb titt i utforskaren på min bärbara som inte har viruset iTunes (ska dra lite paralleller om ett tag ;) ) säger mig att databasen är typ obefintlig i storlek, men att en vecka gammal backup är mycket större. Den tar vi. Sharepod hittar filerna!

    Problem #3: Det finns ett stort gäng mp3:or på iPoden, och det är nog inte iTunes som lagt in dem.. Det måste vara de vi slängde in i Anapod. Kopierar alla mp3 med xcopy, och tar sedan bort dem från iPoden. Skriver nu ett program för att få alla mp3:er i samma mapp på typ 1 minut. Kör alltihopa genom Sharepod för att lägga tillbaka dem, går nästan bra.

    Problem #4: Ett gäng filer vill inte igenom då de finns registrerade i databasen redan, men det är problematiskt eftersom att de inte finns som fysiska filer på iPoden. Lösning? Vi kopierar våran kopia via utforskaren till iPoden.

    Problem #5: Jag glömde att den döper om filerna, och nu är snart iPoden full av dubletter som inte finns i databasen.. Jag skriver ett nytt program på typ 5 minuter som rensar bort allt från iPoden som finns på disken. Nu måste jag in i databasen och grejja med andra ord. Sharepod är .net-baserat som tur är, och SharepodLib är gratis att använda. Kanon! Jag skriver ett program som rensar ut de låtar som saknar fysiska filer. Lätt som en plätt, om det nu inte vore för att tillverkaren av SharepodLib valt den utomordentligt konstiga lösningen att i den collection för tracks slängt in kod för att radera filen..

    Problem #6: Exception! FileNotFound.. Lösning? Tja, utan källkod så.. Ladda ner reflector, köra decompile på Remove-funktionen. Obduscatad.. Kanon.. Aja, kör ildasm på dll:en och kommenterar bort nödvändiga rader, försöker kompilera. Går inte då obfuscatorn har skräpat ner…

    Problem #7: Dags för ett nytt program: Då en normal texteditor inte bryr sig om skräptecken så skriver jag en egen. Den är väldigt simpel, editeringen består i att ändra i källkoden för vilka radnummer som ska kommenteras bort. Det enda den för är att loopa rad för rad genom hela il-koden, för att bara lägga till kommentarer på de rader som är dumma i huvudet. Det verkar fungera! Dags för kompilering, det fungerar också! :) Nu äntligen kan jag köra det förra programmet, och det fungerar! Nu är det bara en till sak kvar: Köra skiten genom Sharepod igen då den lägger till de sista låtarna :)

    Nu äntligen fungerar det hela igen!

    Vad lär vi oss av det här? Jo, iPod är bajs, iTunes är bajs. Ungefär.

    PS.
    Att iTunes är virus? Tja, vill man t.ex. ha quicktime så vill den slänga med iTunes också om man inte är uppmärksam. Eller så.. Jag fick frågan om jag ville uppdatera quicktime (download manager-mojs, som alla ska ha nuförtiden..), och då hade den bland annat bockat i att den skulle uppdatera quicktime, samt _installera_ iTunes. Jag begriper alltså inte riktigt varför jag skulle vilja installera det.. Är lite virusfasoner över det hela, att lite smått obemärkt följa med in på datorn tillsammans med något annat. Jag gillar inte riktigt apple :/
    DS.