tirsdag den 24. april 2012

Systemudvikler på Danish Developer Conference (DDC)


Hejsa Udviklere

Jeg har været så heldig at være på Danish Developer Conference (DDC) og hvilken fed oplevelse fra ende til andet! Det eneste minus var at jeg faktisk gerne ville have set hver eneste indlæg på nær 2-3 og at det ikke var en mulighed, men det jeg har set var virkelig fedt og det hele værd.

En ting er helt sikkert I KAN GLÆDE JER!
Danish Developer Conference er en microsoft konference så derfor var der selvfølgelig fokus på Windows 8, .NET, Visual Studio & Windows Phone 7.
Det var SÅ fedt for man bliver virkelig tiltrukket for der er så meget lækkert!

Website Optimization
Noget af det som jeg selv synes var super fedt var den del der hed ASP.NET Website Optimization af Mads Kristensen fra Microsoft. Super dygtig mand, og god til at formidle sit stof!
Her var der fokus på hvor det er vigtigt at ens side er hurtig!
Google prøvede at levere deres side 500ms langsommere, hvilket i de flestes ører ikke er specielt meget. Det er ikke engang et sekundt langsommere, men dette resulterede i de fik 20% færre pageclicks - så det viser virkelig noget om hvor vigtigt det er med en hurtig og responsive side.

Her blev der brug Micrsoft Web Optimizer - Dette er en pakke som gør at man kan bundle sine CSS og Javascript-filer. Altså kan sørge for at dine CSS-filer bliver samlet i en enkelt fil, og dine javascript filer bliver samlet i en. Dette er kun runtime så når du skal udvikle kan du have 50 for den logiske seperation, men når det skal afvikles så samler Microsoft Web Optimizer alle dine CSS filer i en enkelt fil og sender afsted, og alle dine javascript filer bliver også samlet i en og sendes afsted.

Hvis i ikke er bekendt med det så kan en browser kun hente 6 simultane filer, så det vil sige hvis dit site indeholder flere end disse 6 filer i alt skal den vente fordi den først kan begynde på de efterfølgende som du har på din side. Dette er spildtid fordi hvis man kan optimere sin side anderledes så kan din side blive loadet hurtigere end ellers.
Derfor er det rigtigt vigtigt ikke at lave for mange HTTP requests.

I din markup hvor du referer til din CSS eller Javascript, skal du skrive destinationsmappen + "/" og typen af fil (extension) - fx JS eller CSS og Microsoft Web Optimizer vil derfor sørge for at kombinere alle filer af denne type til en samlet fil, fjerne whitespaces, og gzippe den.
Derved fjerner du behovet for at der skal ventes på filer skal vente på hinanden.
Der kan laves dine egne regler og bundles som du ønsker det eller samle alle i en. Du kan også sige at du vil ekskludere nogle filer som ikke skal bundles.

Hvis i er mere interesseret i optimering af dine ASP.NET sider så skal i helt klart se nærmere på Mads Kristensen som var den yderst veltalende herre der holdt indlæget som fangede mig fuldstændigt! Han har en side der hedder optimizeasp.net og en blog også kaldet .net Slave.

Udover dette fede indlæg for os rigtige nørder der kan blive helt bidt af performance som er intetsigende, men vi ikke kan slippe fordi det bare er fedt. Har været i nogle projekter hvor vi var nogle udviklere der snakkede om vi måske gerne ville se endnu mere på optimeringen for at se hvor meget bedre vi kunne gøre det, men vi måtte bruge kræfterne på noget mere vigtigt da performancen var god nok og tvivler på brugerne ville kunne mærke eller se forskellen.

Visual Studio 11 Beta til en webudvikler
Men denne kloge mand holdt selvfølgelig også et indlæg om den nye Visual Studio 11 Beta. Og her fokuserede han igen på webudviklere og folk der bruger ASP.NET, hvad der er kommet af nye tiltag for os der arbejder med webudvikling. Der er rigtigt mange fede ting som bare gør hverdagen nemmere selvom det for nogle måske er små ting så det stadig noget mange af os måske savner og kan blive lidt irriteret over.

Nu får man nemlig FULD support og intellisense for HTML5 og CSS3. Selvfølgelig med en liste der bliver mindre jo mere du skriver.
Således at hvis du i din CSS skriver border-radius og derefter trykker tab, så indsætter den alle prefix og vendor-specifics udgave af border-radius. Så du skal ikke selv huske hvad mozilla's moz-prefix er og hvad IE's er etc. Nej nu hjælper Visual Studio dig til at skrive kode der virker til enhver browser meget nemmere, så livet som webudvikler er pludselig blevet meget nemmere. Endda når du så ændrer værdien for border-radius så ændres den for alle vendor-specifikke versioner af dem du lige har oprettet.


Derudover så grouper den også din klasser inde i din CSS som den gør i dine C# klasser. Altså det er nemmere at skabe et overblik for din kode, ved at der er et lille pus ved siden af dine metoder så du kan folde dem sammen som man kan i normal C#. Det skal helst være lige så nemt at være webudvikler som generel C#-udvikler.

Så får du selvfølgelig også rigtig grouping så du kan lave #REGION til flere klasser der drejer sig om et specifikt område.


Med hensyn til farver i din CSS så er der også kommet mange forbedringer.
Hvor mange af jer har ikke prøvet at sidde i Visual Studio og finde en inspirations side med en fed farve som i gerne selv vil bruge? Det har jeg gjort rimeligt tit!
Så det PrintScreen, ind i Paint, Paste den, Colorpicker, og kopiere R/G/B -værdierne ind i en side som kan lave det om til HEX for dig. Og 45 sekunder efter har du din farvekode.
Hvorfor gå igennem det spild? Nu så har du en colorpicker i Visual Studio så du kan bare trykke på farven og så du færdig!

Da der er blevet introduceret opacity med CSS3 (RGBA) så skal man pludselig til at skelne imellem HEX farvekoder og om det er RGBA. Dette hjælper Visual Studio dig også med nu.
Så hvis du trykker på en HEX farvekode kan du få en lille bjælke frem der viser dig et overblik over alle de farver du har brugt i din CSS tidligere så du nemt kan vælge dem igen.
MEN hvis det ikke er nok så kan du også få en colorpicker frem som man plejer med en palette så du kan vælge imellem en masse farver eller vælge en farve fra et sted på skærmen. Hvis du ikke er helt tilfreds kan du trække i en lille slider i bunden så ændrer din HEX kode sig pludselig til RGBA med opacity og når du trækker tilbage hvor den ikke skal være gennemsigtig mere så ændres den automatisk tilbage til HEX.

Gracefull defredation

Fordi man altid laver gracefull degredation så bliver man nødt til at lave noget til de fejl der findes i browsere (fx en bug i IE6). Førhen gav dette en fejl og warning i Visual Studio fordi det ikke overholdt standarten. Men Microsoft ved jo godt det har været nødvendigt at lave disse hacks for at udvikle til deres browser som havde en fejl.
Så i stedet for at give en fin lille rød streg under for at fortælle du overholder ikke standarten, men laver en hack til vores (eller andres) fejlfyldte browser, hjælper de dig nu med at lave det fordi det er nødvendigt.

Web Essentials
 Der vil komme rigtigt mange af de forbedringer og features der er i extensionen Web Essentials med i den nye Visual Studio 11 (også Beta), hvilket glæder mig utroligt meget.
Der kommer preview af farven når du hover på farvekoden, og hvis du vil se et billede så kommer der også et lille preview billeder der viser det så du kan se hvad det er.

Javascript
Da rigtigt meget af en responsive side og web 2.0 (det alle refererer til) oplevelse ligger i funktioner i Javascript. Derfor har javascript enginen også fået en stor overhaling! Et problem som man støder på med ikke typestærke sprog som javascript er at man kan ikke få intellisense for man ved ikke hvad det er før under afviklingstidspunktet.
En var kan være et tal, en streng, eller noget helt andet, og derfor kan du ikke sige minværdi (dot) og så kommer der en liste med properties og metoder svarende til typen af objektet for variablen tal kan godt sættes til en streng-værdi.
For eksempelvis kan du have en variabel kaldet i, som kan starte med at være 1 og blive talt op inde i et loop, og her er det en int, men senere kan man ændre i = i + " times" som ender med at være "43 times" og dermed blevet til en streng.
Hvis man ikke er javascript haj er det et stort problem fordi man skal kende metoderne og hvad man kan på de forskellige typer uden at få nogen hjælp til om det er stavet korrekt eller om metoden overhovedet findes.
Nu vil Microsoft gøre det nemmere for systemudviklere ved at give dig intellisense, men ikke blot intellisense ud fra hvad de tror, men ved faktisk at afvikle din kode og dermed give dig intellisense. På denne måde så vil du vide at på dette punkt i din kode er det en string, og dermed give dig alle string properties, og når den ændrer sig til noget andet så kan den give dig metoder og properties til denne type.

Typestærkt javascript
Noget andet som også har været lidt en udfordring er at javascript ikke er typestærkt og derfor "lidt sværere" hvis man er vant til denne verden. Nu vil Microsoft så hjælpe dig yderligere ved at lave typestærkt input, ved at du kan skrive en definition i starten af din funktion som siger hvilket type input der forventes (string, string) og dermed vil kunne give dig en kompileringsfejl i stedet for det først er på afviklingstidspunktet.
Jeg vil tro at grunden til disse definitioner står indeni metoden i stedet for udenfor (som man er vant til i C# i beskivelser (///) er fordi du kan have nestede metoder (.click(function(blah))).

Overloads
En anden fed ting som så også er kommet med i denne nye javascript engine er at noget der kendes fra C# som er overloads af metoder, som gør at du kan lave ne navngivet metode med to forskellige typer af input (fx FindPerson(int personID) og FindPerson(int personID, string navn) ), er nu kommet med i javascript også. Således at når du bruger en metode kan du igen se at der findes to udgaver af metoden, som man er vant til fra normal C# udvikling.

Jeg tror faktisk de har sat en del fokus på dette område fordi at med Windows 8 vil der komme metro applikationer som skulle kunne bygges meget mere med Javascript som eksempel og derfor tror jeg det er en strategisk satsning fra Microsoft om at få udviklerne til at kunne benytte deres IDE til at udvikle og hjælpe med at bygge denne nye måde at have et OS på.

NuGet packages
Vi er alle vant til at vi får ting med Visual Studio som fx jQuery i en start web applikation, men når Visual Studio er frigivet opdateres dette ikke. Så selvom der kommer en ny version af jQuery så ligges den ældre altid ind fordi Visual Studio ikke selv kan finde ud af der er kommet en ny version.
Nu er der kommet NuGet packages som gør at Visual Studio selv vil checke for om der er kommet nyere udgaver af dine ressourcer, som fx jQuery. Hvis der er kommet en MVC 4 eller frem i dit MVC 2 projekt så kan den også opdage det for dig og gøre tingene smartere.
Dette gør at den automatisk kan opdatere dine afhængigheder til nyeste version for at få bedre performance, muligheder og bugfixes selvfølgelig.

Der er SÅ meget SÅ fedt så jeg kunne blive ved med at snakke, men GLÆD jer! Jeg personligt er i hvertfald helt vild med det!
Det glæder mig udvikler hjerte så meget for det er lige sådan nogle ting man brænder for og gør tingene smartere, hurtigere og mere effektive og det er jo noget vi kan li.

mandag den 9. april 2012

Fornye udvikler CV'et til download

På min udvikler side har jeg jo forbedret en masse på det sidste.
Min side med udvikler kompetencer er udvidet og opdelt bedre i nogle lidt mere passende kategorier.
Uddannelses siden er opdateret med lidt mere grafiske detaljer der viser hvor man kan få mere information om hvor længe kurser har varet, og hvor der er mulighed for yderligere information.


Da jeg nu har ret meget af min side på plads er jeg begyndt at se lidt mere på forskellige dele af min udvikler side. Nu er turen kommet til mit udvikler CV (offline - PDF CV) da det er noget tid siden jeg har opdateret det og nu vil jeg også forsøge at få det stilmæssigt til at passe til min side og så samtidigt forbedre lidt på designet.
Forbløffende nok er det så "lille" en del - som alligevel tager pænt stykke tid, som er noget jeg faktisk er blevet rost for uhyre mange steder.
Det er vigtigt at man fanger opmærksomheden og bruger de muligheder man har for at sætte fokus på forskellige dele af sit CV og dermed sig selv.
Et godt trick til dette kan være at bruge de grafiske virkemidler i ens CV, da det er noget der er nemt for øjet at fange for en person der skal gennemlæse dit CV meget hurtigt.
En anden måde kan være at strukturere det godt og sætte det op således det er nemt at få overblik over indholdet og se det budskab jeg forsøger at formidle.

Jeg vil denne gang gøre meget mere ud af og henvise til min side, fordi et CV på adskillige sider vil ikke blive gennemlæst, men hvis jeg kan fange deres interesse nok til at de går ind på min side er der mulighed for at de vil læse adskillige forskellige dele af min udvikler side og dermed lære mere omkring mig og så øge mine chancer for at jeg kan blive valgt til et eventuelt job.

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.

mandag den 27. februar 2012

Velkommen til Fremtidens udvikler (Dotwest.NET)

Denne blog er oprettet fordi jeg ønsker en dedikeret blog til min side Dotwest.NET - Simply if you want the Best! Dette er en funktionalitet jeg ønsker placeret direkte på min egen side således jeg kan fortælle om mine udvikler planer for min side.
Dette kan være planer jeg ønsker fremover, men også ting jeg allerede har lavet på min side og ønsker at fortælle om.
Fordi jeg prioriterer andre ting, end min blog, som det første så starter jeg med at lave min blog her og henvise til den indtil der sker noget mere og kan overflytte den til min egen udvikler side. Her kan du læse mit CV, eller downloade mit udvikler CV, læse om udvikleren bag, min professionelle side, eller personen bag udvikler siden. Du kan læse om mine udvikler kompetencer, se min uddannelse's historik, kurser, certificeringer, anbefalinger og udtalelser, uddannelsespapirer.

Læs mere på min udvikler side.