fredag den 30. maj 2014

Multioplader til hele familien!


De fleste familier har behov for opladning af en masse mobiler, og/eller tablets.
Her hjælper Sanctuary 4 oplader fra Bluelounge dig rigtigt godt, for den giver mulighed for flere kan lade deres mobil imens tabletten står og lader og eventuelt viser noget i synes er relevant i pause mode (såsom udvalgte billeder).
Jeg synes personligt den ville være helt perfekt at have stående ude i køkkenet, så kunne man lige sætte den til lader imens man spiser morgenmad og eventuelt lade tabletten streame radio til din afspiller i køkkenet.
Ville nok gå efter den i hvid, men uanset hvad synes jeg virkelig den virker lækker!

torsdag den 29. maj 2014

Styr på kablerne? Cabledrop!


Har du ligesom mig brug for at have en masse kabler mange steder i huset?
Så har du løsningen her!
Cabledrop!

Ser godt ud, er lille og nem at arbejde med og placere, samt du kan placere dine kabler som du vil uden de falder af dit sofa-, senge-, og arbejdsbord.
Jeg har altid en masse ladere rundt om i huset til en mobil eller tablet, men problemet er så pludseligt bare at det er irriterende at have kabler hængende og ser ikke specielt lækkert ud! Her hjælper cable drop som nu kan fås for den nette sum af 59 kroner.

Jeg skal selv have en på hver af vores natborde til hver vores mobillader kabler, en på mit computer bord, et på tv border, og så et par på et par dørkarme hvor jeg har ladere sat i stikkontakterne ved siden af.

onsdag den 14. maj 2014

Udvikleren vil lave det korrekt


Det er så dejligt at have en kunde der er enig i at tingene kan ændres hvis behov og ønsker ændres, og at der tages hensyn til ens estimater.
Ofte bliver man presset på tid og pris, men ikke her, og det er virkeligt forfriskende!
At man faktisk kan estimere og at det tages seriøst, og hvis det ikke holder tidsrammen så vil man se på flere ressourcer. Ikke ensbetydende med at man ikke skal arbejde hårdt og meget for stadig at nå det, men er dejligt at der faktisk høres efter hvad man har at sige til det de ønsker og vil have lavet.
Estimater kan rykkes fordi der er tidsplaner med det projekt der skal overholdes, men ofte betyder det vi får flere folk på, og så tages der igen hensyn til at vi ikke skal tænke på om vi kan nå det ud fra et korrekt estimat og skal overestimere fordi man ved at de tager 20% af tiden så man skal estimere 20% over tiden man mener man skal bruge.


Det gør ret meget at man kan have et godt og korrekt forhold med sin kunde, de respekterer os og vores viden og udsagn, samtidigt med vi respekterer deres ønsker og design, og samtidigt kan man have en god dialog omkring hvordan ting skal se ud og virke - om det er passende og om det er noget de virkeligt vil have. Nogle gange har en umiddelbar lille rettelse stor betydning for at du skal rette meget kode for at få den til at opføre sig sådan, og det er der god debat om det virkeligt er nødvendigt.
Når man er udvikler i ASP.NET så er man glad for at man kan have en korrekt dialog med sin kunde omkring formål, og hvor vigtig den funktionalitet er, samt rækkefølge.
Fx kan vi snakke om hvad man behøver først, fordi det skal laves først, og her kan man godt snakke med dem hvor de kan forstå at der skal laves noget forarbejde, og at det vil tage noget tid før vi kan leverer noget. Sådan nogle ting der virkeligt vigtige for en systemudvikler, fordi ofte så sætter kunden nogle krav ud fra deres ønsker i troen om det "kan man bare lige", og ud fra nogle budgetter og tidsplaner, som måske ikke helt passer med virkeligheden.
Den slags ting får vi ikke, og det gør arbejdet bedre i dagligdagen når man er udvikler.

tirsdag den 13. maj 2014

JSON har 'd' property?


Hvis du opgraderer fra .NET 2.0 til fx .NET 3.5, så vil du opdage at nogle af dine metoder måske returnerer noget andet tilbage til dit javascript.

Det er fordi at der er kommet en sikkerhedsopdatering til .NET 3.5 som gør at returnerer du ting der ikke er objekter, så pakkes de ind i et objekt med en property kaldet 'd'. Dette er på grund af cross site scripting attacks.
Dette er fordi at hvis du returnerer en string kan dette være et array, og så snart du får det tilbage kan kode indeni i det faktisk afvikles, selvom du ikke har tilgået det endnu.
Så hvis fx du returnerer et array med strings som har <script>alert('hello world')</script>, så vil koden blive afviklet og det gør det usikkert.
Fx kunne man indsætte et script som kalder en json server på et andet domæne (er supporteret i script tags), som returnerer eksekverbar kode, som fx overloader objektet og derigennem får adgang til data'ene fra det andet domæne.
Faktisk er det også en af grundene til at GET ikke er enabled fx når du starter med at lave json actions i ASP.NET MVC.
Udover det så er det bedre praksis at returnere et objekt, for fx. hvis du ønsker at tilføje noget mere data så er dit array ikke stort nok, og validering er meget besværligt at indbygge i dit array.
Ved at det er et objekt så har du mulighed for at lave en data annotation som validerer dine data når de kommer tilbage til serveren.

Så dette vil sige at alle de webmethods du før har haft (fx i webforms) vil nu ikke længere returnere din string direkte tilbage til dit javascript eller jQuery, men returnere et objekt med d property som har det du sender tilbage.

En måde at gøre din kode kompatibel med begge dele er ved at sætte dine data til at håndtere begge scenarier.

var returnValue = {returned json data from ajax call}
var realValue = null;
if (returnValue.hasOwnProperty('d'))
{
      realValue = returnValue.d;
}
else
{
      realValue = returnValue;
}

Således vil din webmethod med string, int, etc. stadig virke som den altid har, uanset hvilken version af .NET du kører, også uanset om det er objekter eller ej.

fredag den 9. maj 2014

Vigtigt ved køb af tablets


Efter at have købt en Samsung Note 10.1 2014 Edition -tablet har jeg så småt fundet ud af hvad der er vigtigt ved en tablet.
Indmaden er vigtig, absolut! Den skal være hurtig og kunne trække det du vil bruge den til, inklusiv spil og apps du ønsker.
DOG er det mindst lige så vigtigt med brugeroplevelsen af softwaren, og her halter Samsung Note 10.1 2014 Edition sku noget efter.

Seperate brugere (hvis du skal dele den med nogen)
For det første kan vi ikke få hver vores bruger på tabletten, på trods af det er tilladt og udviklet i den standard version af Android som den skulle bygge på. Det er vildt irriterende at skulle dele apps, sider og alt på den. Fx hvis jeg tager screenshot af en gave som jeg måske vil købe til min kæreste på den så vil hun kunne gå ind i galleri og se det, hvilket jo er lidt ufedt og ødelægger hendes overraskelse.
Når hun går på facebook og ikke logger af app'en så blipper den hele tiden fordi der er statusopdateringer, plus jeg skal logge hende af og mig på, frem for bare at åbne appen som er til mig.

God stabil og enkel software
Endnu et problem som Samsung Note 10.1 2014 Edition har er at den ikke er stabil nok.
Der skulle være udkommet en opdatering, men som kun er begyndt at blive rullet ud andre steder i verden end danmark så vi har ikke adgang til den.
Problemet er fx at Internet app'en går ned flere gange, og så er der en Media Process der går ned flere gange i træk. Det er et problem fordi du kan så pludseligt ikke downloade filer eller gemme et billede etc. og det er rimeligt basalt for android ville jeg mene.
Derudover så fryser den og føles til tider langsom, og det er bare ikke i orden for Samsung Note 10.1 2014 Edition der alligevel koster så meget mere end konkurrenterne.

Placering af knapper og brugsmønstre
Fx hvis du vender den på højkant som et A4 papir, så bliver tabletten irriterende på grund af knappernes placering. Du rammer ufatteligt tit tilbage eller home knappen når du er midt i noget hvor du skal vende Samsung Note 10.1 2014 Edition tabletten.

Indbyggede features
Hvis du bruger den til interaktive ting så er den indbyggede s-pen rigtigt fin.
Den er også god med du kan hover over ting og få information om dem.
Godt hvis du tager billeder/screenshots af ting du vil lave noget med eller have og kan klippe det ud nemt det du ønsker.
Hvis du ikke bruger den er det ligemeget, men er en fordel den er indeni tabletten i sig selv hvis man bruger den.

Skærmen
Den har vildt god opløsning og skarphed! Farverne står rigtigt flot og lækkert, men den er ikke vildt god i solskin. Så tænk over om du skal bruge den udenfor eller ej.

tirsdag den 6. maj 2014

C# udvikler og car pc projektet

Har jo et car pc projekt for en kammerat (der også er udvikler) jeg skal hjælpe med.
Det er efterhånden ved at være kommet så langt så der skal noget rigtigt indhold til før vi kan rigtigt komme af sted og i gang.

Der bruges ASP.NET MVC 4, og indtil videre laves det som singlepage, men skal nok udvides til flere med priser, features, download etc. så man kan se de forskellige detaljer som man ønsker.

Der mangler stadig meget, men nu begynder der rigtigt at ske noget, samtidigt med softwaren får flere features med fejludlæsning og selvtest af enheder og diverse forskelligt.
Planen er at han skal udvikle mere på car pc softwaren, og jeg skal være systemudvikler på websitet og få det op med den nødvendige information og styling.

Har fået lavet noget relativt lækkert design synes jeg selv der er lidt anderledes og lidt nytænkende som man jo er glad for som udvikler. Så må vi se om det er noget der kan holde vand.

mandag den 5. maj 2014

Windows 8 og 8.1 - en blandet lagkage


Der er gode og dårlige oplevelser ved Windows 8.
Man skal helt klart vænne sig til at arbejde på en anden måde, og tænke over hvordan du gør ting.

Der er mange gode ting i Windows 8, såsom søgning.
Det er dejligt nemt at søge efter ting og man gør det hele tiden.
Menu'erne er blevet anderledes så fx det med man har menupunkter i venstreside under hinanden virker rigtigt godt, men samtidigt er nogle ting blevet ændret og flyttet rundt således det nu er noget andet og derfor ikke så fedt når man ikke kan finde det.
Når først man er kommet i gang med oplevelsen, er den god fordi den er ens og allround. Det kan så være lidt irriterende når man har gamle IE og nye IE for nogle gange må man bruge den gamle fordi den nye simpelthen ikke kan finde ud af det endnu.

Når det så er sagt, så halter nogle dele altså stadig.
På trods af det var Windows 8.1 (fix) vi fik på arbejdet, så er det stadig ikke helt godt nok.
Jeg skulle opsætte noget, og nu er der så tilføjet hjælpelinks på opsætningsbilleder så du kan få hjælp til det du er i gang med.
Det skulle jeg, men det dårlige var så at da trykkede på linket så kom jeg til en side hvor der stod Denne side eksisterer ikke længere.
Rimeligt dårligt, når man tænker på hvilken dårlig start Windows 8 og Windows 8.1 har fået. Netop derfor var det nok lidt vigtigt at du fik hjælpefunktionaliteten på plads, fordi det er så meget anderledes og så mange har problemer.

For mig er det bare dårlig stil at man har noget der er så ufærdigt, og ikke fixer netop det område når det kunne hjælpe på at nogle kunne finde ud af det.

torsdag den 1. maj 2014

ASP.NET åben eller download fil (C#)


Der er forskellige måde du kan få browseren til at håndtere de filer du sender til den.
Fx på min udvikler side, har jeg et fysisk pdf cv som jeg gerne vil dele med folk.

Her er der mulighed for både at åbne den i browseren eller få den til at downloade filen.

I ASP.NET (C#) skal der ikke ret meget forskel i koden til for at give de forskellige responses og typer opførsel med filer.


1. Du skal sætte en ContentType, så browseren ved hvad det er du sender til den

          Response.ContentType = "application/pdf";   

2. HVIS du vil have den skal poppe up og spørge brugeren om du vil downloade/åbne filen uden at åbne den direkte i browseren, skal du tilføje en Header til dit response.

          Response.AppendHeader("content-disposition", "attachment;filename=\"CV - Laurits West - Udvikler.pdf\"");   






Filename er faktisk et du selv bestemmer hvad skal hedde, og kan hedde alt andet end selve filen, men er det der bestemmer hvad der vil poppe ud og sige at denne fil kaldet (xXx) skal åbnes/gemmes.

3. Nu skal du sende din fil og response afsted tilbage.


           string cvpath = HttpContext.Current.Server.MapPath("~/Resources/PDF/CV - Laurits West - 
           string transmitFilePath = cvpath;
           Response.TransmitFile(transmitFilePath);
           Response.Flush();
           Response.End();


Så nu har du styr på at sende filer til klienten på forskellige måder.