onsdag den 28. marts 2012

HTML5 i den moderne verden


Jeg var så heldig så jeg var til GOTO Copenhagen 2011 -konferencen hvor der var rigtigt meget nyt og spændende at høre omkring.
Efterfølgende var det meget vigtigt at få kommunikeret dette budskab ud og få fortalt de muligheder der var i det nye vi fik fortalt om.

Derfor blev jeg inviteret til at fortælle en lille smule kort til nogle af vores interne kolleger og udviklere. Dette blev en overvældende succes for både mig selv, men ligeledes ikke mindst for de deltagende som blev meget imponeret over de mange muligheder der er i den moderne teknologi. Netop fordi det blev så vellykket endte det med jeg skulle holde et stort indlæg for en meget stor del af firmaet, fordi det var så godt og så spændende.
Derfor holdt jeg den 16.06.2011 et større indlæg omkring HTML5's muligheder og nye tiltag der kom frem.
Her fortalte jeg om:
 - Websockets
 - Local Storage
 - CSS3
Udover dette blev det fortalt omkring "Google Pretotyping" som også er uhyre spændende, men dette var noget som en anden fortalte om på præsentationen.

Igen igen blev det en enorm succes og efter dette var jeg kendt som "Mr. HTML5" fordi jeg havde holdt dette "foredrag" og fortalt om de nye muligheder.
Efterfølgende fik jeg heldigvis mulighed for at arbejde rigtigt med det professionelt, og ikke kun lege med det i min fritid. Dette projekt er blevet rigtigt godt og meget stort, som har gjort vores interne processer nemmere og forbedret arbejdsgange betydeligt. Vi har lært rigtigt meget og slutresultatet er blevet kanon godt modtaget fordi det er hurtigt og effektivt i forhold til den tidligere løsning lavet i Silverlight, dog også med en anden baggrund.

Mit sande udvikler hjerte brænder jo for disse effektive og smarte løsninger, som gør at slutbrugerne bliver glade og effektive. Så nu når der er rigtigt mange der bruger denne løsning og som har sørget for flere bruger den på grund af den øgede brugervenlighed og performance, så bliver man jo endnu mere stolt over det resultat man har været med til at løse.
Derudover så er jeg jo uhyre nysgerrig og vil derfor altid gerne lære, hvilket dette har været! En læringsprocess hvor jeg har mulighed for at gå i dybden med nogle ting, og kende lidt af fordele og ulemper, fremfor kun at kende til selve det overfladiske uden at have noget reel praktisk erhvervserfaring med det - hvilket er det der også er meget vigtig for mig.

søndag den 25. marts 2012

Anbefal en dygtig udvikler


Det er vigtigt at lave sit arbejde godt og rigtigt!
Som person er jeg altid meget engageret i det arbejde jeg udfører uanset om det er et eller flere projekter samtidigt fordi at ethvert projekt har altid sine egne fascinerende facetter.
Det er altid vigtigt at gøre et godt stykke arbejde der er værdiskabende for kunden og som skaber glæde ved at arbejdsgange og processer bliver bedre. For der er ikke noget så godt som når en kunde kommer glad hen til en med et smil og synes man har gjort et godt stykke arbejde! Hvis man gør det godt kan man jo også blive anbefalet for det gode udførte arbejde, og nu har jeg lavet en side der skal samle disse anbefalinger som folk kan se og læse

torsdag den 15. marts 2012

En personlig succes kan være udvikling

Når man sætter sig et personligt mål, men ikke absolut når det så kan det stadig være en sejr.
Dette kan lyde underligt i nogles ører, men sagen er på trods af man ikke opnår det man satte sig for kan det stadig føles som en lille sejr i form af man har oplevet noget og lært noget som vil kunne bruges fremadrettet. Det er sådan en kanon følelse på trods af det man satte sig selv for øje ikke blev slutresultatet.
Dette kan gælde alle aspekter i livet, og da jeg som person gerne ser man lærer af alt uanset om det er en succes eller fiasko. Jeg har ikke noget imod at jeg fejler så længe jeg lærer af det, for alt er jo en læringsproces, men selvfølgelig ønsker jeg altid at vinde.
Men når man helt klart ved præcis hvad man har lært og kan tage videre og man konkret har nogle ting og værktøjer (eventuelt i form af minder om fiaskoen) som er blevet tilføjet ens værktøjskasse så svider et nederlag knap så meget.
Så på det personligt plan, kan et nederlag stadig være en halv sejr ved at man vender det negative til noget positivt og brugbart - hvilket jo også er noget der typisk kendetegner mig i høj grad fordi jeg altid forsøger at få det bedste ud af enhver situation jeg står i og hvad livet kaster imod mig. Jeg er altid positiv og vil gerne forsøge at vende mine nederlag til halve sejre for at forsøge at begrænse mine fremtidige nederlag. Dette er også på grund af min personlige gejst og positive livssyn, hvor jeg altid forsøger at se det bedste i alle situationer fordi at ellers bliver tingene bare hårdere.
En ting jeg aldrig glemmer er at i folkeskolen der var det altid et problem når vi skulle have gymnastik og vi skulle udenfor og løbe for alle pigerne, men hver gang så så jeg altid på det positive. Det altid noget at græsset ikke er vådt, altid noget det ikke regner, altid noget at det ikke blæser for meget så tingene altid så bedre ud for hvis man blot er negativ omkring tingene så bliver den løbetur bare meget hårdere end hvis man er glad over det trods alt ikke er værre.
Så det er meget nemt at se at jeg igennem hele livet har forsøgt at få det meste og bedste ud af enhver situation uanset om den er god eller skidt, netop fordi at se sort på tingene aldrig hjælper noget.

onsdag den 14. marts 2012

Udvikling af en systemudvikler


Jeg er en meget ambitiøs person, som samtidigt er uhyre nysgerrig.
Dette kommer til udtryk ved at jeg er meget lærenem og meget lærelysten. Elsker at udfordre mig selv, og lære nyt og smartere. Derfor vil jeg altid gerne prøve nyt og mere af, og oftest har jeg en serie af ting jeg gerne vil prøve af, men ikke tiden til det. Dette er også fordi jeg kan lide at gå i dybden og specialisere mig, så jeg får tingene ind under huden så jeg kan bruge det konkret i den rigtige kontekst og måde så derfor kan jeg ofte fordybe mig i en længere periode i en teknologi og kompetence.


Flere gange af tidligere og nuværende kolleger har jeg fået og vide jeg er god til at hurtigt sætte mig ind i komplicerede og avancerede forretningsprocesser/forretningssystemer og komplete problemstillinger.
Adskillige af dem har også måtte give mig ret i det jeg selv mener, nemlig at jeg er yderst kreativ, og ofte kan komme med godt input til forbedringer for at forsøge at forbedre produktet for alle, uanset om det er svært eller nemt at lave.
Som person har jeg også en personlig filosofi at den eneste vej frem er igennem udvikling (haha jeg er systemudvikler). Dette menes dog seriøst da jeg mener man har et ansvar for at følge med teknologien, og man skal forbedre sig selv for at optimere sin kode, lave bedre produkter, hurtigere og mere effektivt.
Dette er selvfølgelig for mig selv, men til dels også fordi det bare er fedt at være i kontakt med kunde og forstå deres behov og så komme med kreativt input de kan arbejde med og skabe en synergi-effekt som i samarbejde skaber et helt nyt produkt (og måske nye forretningsprocesser) som passer bedre til forretningen, og optimerer arbejdsgange og som gør kunden gladere for det leverede. DET elsker jeg, så hvis jeg kan optimere mig selv og det jeg skaber kan jeg også skabe noget bedre, større og bedre for kunden og vi bliver alle gladere.
En dag når tiden er til det vil jeg også gerne tage noget videreuddannelse, for at videreuddanne mig selv yderligere. Der er rigtigt meget som jeg har lært det seneste år som er super fedt, og kan netop mærke at det gør mig glad jeg forbedrer mig selv og mine udvikler kompetencer fordi jeg bliver mere effektiv. Det er SÅ fedt!
Så hvis jeg kan få videreuddannelse er jeg sikker på jeg ville blive lige så glad.

Changelog for fremtidens udvikler (Dotwest.net)


Godaften

Sidder netop og arejder på at optimere min tidligere side historik.
På min changelog-side skal der vises en historik over hvilke filer der er ændret hvornår, for man har mulighed for at se hvor aktiv siden er og hvor ny den er. Dette viser interesserede hvor relevant siden er, og hvor meget der arbejdes på siden for at vedligeholde den, opdatere den og videreudvikle den.
Jeg synes selv det er uhyre vigtigt at vise sine brugere at siden vedligeholdes og arbejdes på fortsat således man ved om det kan være relevant at se videre på, netop specielt nu den skal vise mig professionelt med kompetencer, uddannelse, ansættelser, certificeringer etc. så derfor er det selvfølgelig også vigtigt brugerne ser om det bliver vedligeholdt.

På den tidlige version af min side fik jeg udskrevet en lang liste på en en smule uhensigtsmæssig måde.
Dette var fordi at alt blev indlæst og udskrevet på siden i en lang liste, hvor jeg nu ønsker at begrænse det i mindre perioder (lazy load) for at optimere performance og bruger oplevelsen.
Hver gang jeg kører siden under udvikling på siden registreres den nyest redigerede fil, og noteres. Hvis samme fil ændres kort efter (meget normalt under udvikling), så fjernes det forrige entry og erstattes af det nye.
Måden jeg fandt denne på var lidt rodet løsning som "blot" skulle laves for at det fungerede, men nu ville jeg have det lavet på den optimale måde med fokus på performance og vedligeholdelse.
Dette er nu blevet afløst af mindre og mere optimeret kode, med meget mere LINQ istedet for at lave manuelle checks. Fx at se på om der er rette i codebehind-filer, aspx, master-filer eller masterfilernes codebehind checkes i et LINQ statement som er nemmere at vedligeholde.
Ikke alene er denne lille del blevet optimeret meget med vedligehold, men 4-5 metoder er blevet erstattet af en enkelt der laver det samme, blot meget meget mere effektivt.
Da tiden er knap nåede jeg i aften "kun" delen med at finde og skrive den nyeste redigerede fil, men som en sand systemudvikler så banker mit hjerte jo for intelligent og effektivt software, så jeg er jo i den grad glad for det jeg har fået for hånden.



Skal nok få lavet delen der henter disse og udskriver dem også.
Her vil jeg også gerne bruge LINQ til at lave groupby på dato, således at jeg får vist en dato med den nyeste opdatering for datoen, og i så fald der er mere end en hver dag kan der trykkes på som vil udfolde de skjulte opdateringer til dato'en.
Vil også gerne have lavet at via jQuery og AJAX skal der loades de endnu ikke loadede datoer. Dette er for at forbedre mine jQuery skills, og få en mere responsive oplevelse på min side, og samtidigt forbedre performance ved at loade lidt af gangen (lazy loading).


Håber i vil komme til at nyde det rigtigt meget

lørdag den 10. marts 2012

Perfektionistisk udvikler

Det er sjovt at se ting man egentligt godt selv ved og alligevel blive lidt overrasket over det.

Sagen er at jeg er rigtigt god til at være meget perfektionisk og detaljeorienteret med det arbejde jeg udfører, men når det gælder min egen side og det arbejde jeg behøver lave så kunne jeg jo godt sløse lidt for det er kun mere arbejde for mig og er nok ikke noget der skal rettes så ofte som et produktionsmiljø.
Men jeg har bare igennem tiden kunne se at jeg har ikke helt kunne lade være med gå op i at gøre det rigtigt og lave min egen side intelligent og smart, selvom det måske ikke er så vigtigt.

Specielt nu i starten så var det måske egentligt vigtigere bare at få noget indhold ud på siden end at den absolut skal være nem at kunne ændre i, tilføje nye kompetencer til, uddannelse/kurser etc.
Dog har jeg kunne mærke at hver gang jeg er gået igang med noget så har jeg rigtigt svært ved ikke at fokusere på de tekniske detaljer. For alt jeg laver vil jeg jo i mit hjerte gerne have bliver intelligent og smart, og da jeg ikke er nogen designer så er dette en lavere prioritet fordi jeg ved jeg ikke kan lave de vildt flotte præsentationer.
Fx at jeg gerne vil integrere muligheder og lækre små features over det hele fordi jeg netop er fascineret af teknologi, detaljer og er generelt så perfektionistisk.

Det kan være små ting, som at beregne min præcise alder. At jeg viser min alder (nuværende 26), men som tooltip der vise hvor gammel præcis jeg er (år, måneder, dage). Brugsmæssigt så giver det måske ikke meget for brugeren, og nødvendigheden af det nok nærmest ikke-eksisterende, men derfor bliver jeg stadig fascineret af sådanne små ting jeg gerne vil putte ind.


Dette er ligesom at jeg gerne vil under erfaring vil have vist hvor mange kurser, certificeringer, projekter jeg har til hver ansættelse (og en udtalelse hvis jeg har det). Som så skal linke til min reference side der viser disse.

En anden ting jeg også roder med er at jeg måske vil se om jeg kan få autogeneret et Word-CV fra min side af. Jeg er ikke helt afklaret med om det skal være noget jeg selv autogenerer når jeg vil ligge min side op, og så retter den til så den ser pæn ud, eller om jeg skal forsøge at ligge den på min side for at brugeren kan selv hente den ned og blive informeret om denne er autogenereret og derfor måske kan være lidt rodet pga. det kan være lidt svært at finde ud af hvornår skal man sætte noget ned på næste side for at det ser grafisk pænt ud. Det er en ud af mange udfordringer med dette jeg roder med, og som tiden vil vise om jeg kommer videre med og vil gide at få nedlagt (hvis muligt).



Dette kan både være en fordel og en ulempe, men er noget jeg er selvbevidst om og forsøger at forkusere på det ikke skal belaste mig og mine deadlines, men igen så er det også noget jeg udnytter ved at komme med muligheder og input fra min meget kreative side til kunden og der hvor jeg udvikler fordi så det en mulighed der kan være god eller dårlig i sammenhængen, men muligheden bør ikke gå til spilde.

ASP.NET Repeatere nested

For at prøve lidt forskellige ting af har jeg under kompetencer nestet flere repeatere dynamisk fra min codebehind.
Oftest laver man sin repeater i markup og så databinder man den i sin codebehind, men jeg ville gerne prøve at udfordre mig selv lidt.
Jeg ville have titler for forskellige områder (teknologi, kompetencer etc) og så listet de skills der var under disse områder.
Dette kunne jeg enten gøre med at i mine LINQ statements kunne jeg groupe dem således jeg ville have titel som en property, og have en liste med kompetencer som en anden propery i mit var resultat fra mit LINQ statement (dette skulle gøres i min codebehind).

For at udfordre mig selv lidt mere valgte jeg at lave det som repeatere indeni i repeatere, for jeg kan godt lide at prøve grænser af og lære nyt.
Så jeg startede med at lave en div (content) i min markup som ville være den jeg putter mine repeatere (og dermed det der kommer ud af dem) ind i.


Så jeg lavede en repeater der udskrev alle titler som det eneste og puttede denne ind i.
Nu var listen med titler udskrevet, men manglede selve indholdet som jo er de kompetencer der passer til titlen.
Dette gjorde jeg ved at lave endnu en repeater til at udskrive alle mine kompetencer til titlen.
Så proceduren er at lave en repeater der udskriver titlen, derefter en div der holder alle mine kompetencer. Derefter laver man en ny repeater der udskriver kompetencerne til denne titel, og tilføjer den til div'en der skal holde alle kompetencerne.
Dette er fordi at det sted repeateren tilføjes er der hvor outputtet af denne repeater bliver placeret.

Jeg havde lidt travlt så fik ikke lavet den sidste repeater der skulle lave boksene til at vise mit kompetence niveau, men dette ville blot være at tilføje den til den div som skulle indeholde disse.

Og må sige jeg er egentligt meget godt tilfreds med resultatet. Der er altid noget man ikke er helt tilfreds med, men det vigtigste er data er derude så kan designet altid komme.

søndag den 4. marts 2012

Kompetencer til en dygtig systemudvikler

Så fik jeg lavet et nyt design til min udvikler kompetence side.

Tidligere har jeg været vant til at ligge en repeater control ind som laver det samme igen og igen, men nu fordi jeg har ville lave dette, men med en header så måtte jeg lave noget af det dynamisk.
Så det endte med jeg lavede en div hvor content kommer ind i, og så laver jeg selv en dynamisk repeater - hvor jeg selv opbygger elementer og template i codebehind.
Det bliver en smule mere kompliceret kode at se på, men jeg får et så meget bedre og meget mere dynamisk design som kan tilpasse sig til mine data i stedet for min markup skal tilpasses til mine data.

En nem løsning ville selvfølgelig være bare at lave en header i hånden og bruge repeateren under, men så skulle jeg rette headere i hånden hvis jeg fik tilføjet andre, slettet nogle eller ændret noget.
Nu hvor det hele er opbygget dynamisk så bliver det i stedet lavet  ud fra mine data således at jeg skal rette på mine data og derefter ændrer min sides opbygning og visning af kompetencer.

Da jeg selvfølgelig brænder for intelligente løsninger er dette noget mit hjerte elsker, for dette er en smuk løsning som også udfordrede mig hvilket jeg jo også kan lide.
Dog vil jeg måske gerne forsøge at udfordre mig selv yderligere på et tidspunkt med at lave repeatere indeni repeatere, men det må jeg se hvornår jeg får tid til.
Men jeg er så glad for denne intelligente løsning for mange gange selvom jeg måske ikke har behov for det kan jeg ikke lade være, men måske også fordi jeg er en smule perfektionistisk.

Desværre har jeg ikke helt nået at få nedskrevet alle mine kompetencer, og sorteret korrekt og tilføjet alle kategorier jeg har behov for, men de kommer skam nok.
Vil også gerne have tilføjet nogle anker-tekster til headerne på et tidspunkt fordi så det muligt at linke til specifikke dele af mine kompetencer som udviklingsmetoder, eller specifikt til Agile RUP, SCRUM etc. men man kan jo desværre ikke nå det hele - specielt ikke når man har en masse andet man også skal bruge tid på.

Men se nærmere på mine udvikler kompetencer på min side og se mere omkring hvad systemudvikleren bag indeholder. Hvis der er behov for noget som ikke står der, kan det være fordi jeg ikke har fået min side eller CV opdateret, men så er De ganske velkommen til at kontakte mig og høre nærmere omkring mine kompetencer og erfaringer indenfor det efterspurgte.