Tanker om software og softwareudvikling - blandt andet...

Min papirkurv er "blevet væk". Hvad gør man så?

25. februar 2014

Jeg bruger mange forskellige skærmopsætninger i Windows, afhængig af hvad jeg laver og (især) hvor jeg befinder mig.

I dag resulterede det i, at Windows' genvej til papirkurven pludselige var "væk" fra skrivebordet, og jeg kunne ikke "finde den" igen, selv om jeg tilsluttede ekstra skærme til computeren. En genstart helt uden tilsluttede ekstra skærme løste heller ikke problemet.

Jeg har tidligere oplevet at papirkurven er blevet slettet (i de gamle XP dage, inden der kom tilpas mange Service Packs på). Dengang kunne man højreklikke på papirkurven og vælge "Slet", med det resultat at papirkurvens genvej forsvandt aldeles fra skrivebordet. Med tilpas ændring af registreringsdatabasen og lidt andre fiksfakserier kunne man få en (næsten) fuldt fungerende genvej tilbage, men rigtig godt blev det ikke igen.

Denne gang var jeg sikker på at problemet var at papirkurven blev vist "uden for skærmområdet", og at jeg ikke lige kunne finde en måde at "hive den ind" igen, selv om det selvfølgelig er en ret irriterende fejl at problemet overhovedet kan opstå.

Heldigvis viste det sig at problemet meget let lader sig kurere:
  • Vælg "Personlige indstillinger" i kontrolpanelet
  • Vælg "Skift skrivebordsikoner"
  • Sæt flueben ud for "Papirkurv"

I mit tilfælde var der flueben ud for "Papirkurv", så min formodning om at papirkurven blot var røget "ud over kanten af skærmen" er formodentlig rigtig. Løsningen i så tilfælde er så at fjerne fluebenet, klikke "Anvend", sætte fluebenet igen og klikke "Anvend" endnu en gang.

Stille periode ?? - ikke lige just

Det har været småt med indlæg her på bloggen det sidste stykke tid.
Årsagen er heldigvis udelukkende "helt almindelig ualmindelig meget travlhed"... :)

Bl.a. er der brugt meget tid på en underleverandør-opgave til ITS Platform Nordjylland, hvor vi er hyret som in-house konsulent hos GateHouse til at varetage implementation af den PostgreSQL database, der bruges til at analysere de oplysninger der bliver opsamlet om de deltagende bilers køreture i hele Region Nordjylland.

Det er en rigtig spændende opgave med masser af udfordringer.

Der registreres data om de deltagende biler mindst en gang i sekundet under kørsel, så datamængderne der håndteres er gigantiske. Et gennemtænkt design af databasen og de forespørgsler der anvendes til analyse af kørselsdata er derfor alfa og omega.

Samtidig hermed er vi i gang med at søsætte nye, egne initiativer, som vi forventer klar i løbet af efteråret, så der er "gang i biksen".

Præsentationer fra DAPUG erfamødet hos GEUS den 20. juni 2012

DAPUG - den danske Delphi / Embarcadero brugergruppe - holdt årets andet erfamøde hos GEUS i København d. 20. juni 2012.

Igen var der nye ansigter på mødet (herligt!), men der var desværre en del af de normale deltagere som var forhindret i at møde op. Bl.a. fra DAINTEL, hvilket for deres vedkommende skyldtes at de samme dag vandt Væxtfaktor finalen på DR1. Hjerteligt tillykke med sejren!

Du kan finde præsentationerne fra mødet herunder, og ellers læse mere om mødet på dette link.
I Delphi XE2 er FireMonkey kommet med som et nyt framework, der bl.a. kan håndtere 3D. Men FireMonkey er slet ikke nødvendigt for at lave 3D applikationer.
Lars Nebel, I-GIS viser i denne præsentation og medfølgende kode hvordan man ved hjælp af GLScene og OpenGL kan lave 3D visualisering i såvel nye som ældre udgaver af Delphi.

Projektet er i Delphi XE2 og der er anvendt den nyeste udgave af GLScene, men som sagt er "en ny Delphi" ikke noget krav for at anvende teknologierne.
3D projekt inkl. slides
Jens Fudge, Archersoft, viste hvordan man kan lave en objektorienteret tilgang dil databaser. For at citere hans forklaring direkte:

I projektet har jeg i uses clause flere steder brugt MSAccess, for at kunne oprette variabler af typerne TMSConnection og TMSQuery. Da variablerne ikke bliver brugt overhovedet i projektet kan man blot kommentere disse steder ud.
Formålet var blot at illustrere hvordan man kan lave f.eks. en SaveToDataBaseMetode på objektet.

De nævnte komponenter er fra komponentpakken SDAC købt hos Devart.com.

Jeg har benyttet TAdvStringGrid fra TMS Software, men som der var nogen der vidste ved mødet kan man bruge Delphi's egen TStringGrid i stedet.
Download Delphi projekt
Lasse Lægteskov lavede en demonstration af nogle få af komponenterne fra TMS Software, for at give et indtryk af hvad nogle af de komponenter han bruger i sine projekter "kan".

Lasse har ikke lavet nogen demoprogrammer, for som han selv siger: Der er masser af demoprogrammer og -projekter på TMS Softwares hjemmeside.
Undertegnede viste hvordan man programmerer en Windows Service-applikation i Delphi. Service-applikationer er programmer som kan starte automatisk samtidig med at Windows starter, uden at der behøver være en bruger logget på maskinen.

Demoprojektet er lavet i Delphi XE2, men det har været muligt at lave services-programmer i Delphi i umindelige tider, så der burde ikke være problemer med at åbne projektet i ældre versioner. Jeg har ikke lagt vægt på at programkoden skulle se køn ud, men fokuseret på hvordan man laver noget som virker og viser principperne, så programkoden kunne godt være pænere.

Vedlagte download indeholder både slides fra præsentationen samt tilhørende Delphi projektfiler. Hvis du ikke kan finde Delphi-filerne er det fordi de er vedlagt som bilag til PDF-filen, så du skal bare åbne PDF'en så du kan se det vedlagte bilag.
Windows Services i Delphi.pdf

Præsentationer fra DAPUG erfamødet hos Exotech den 7. marts 2012

DAPUG - den danske Delphi / Embarcadero brugergruppe - holdt årets første erfamøde hos Exotech ApS i Fredericia d. 7. marts 2012.

Vi havde denne gang valgt at have knap så mange indlæg, som så til gengæld var længere og gik lidt mere i dybden. Og så er det første gang i flere år vi holder erfamøde i Jylland, fordi det tidligere har vist sig vanskeligt at lokke øst-danskerne vest på. Heldigvis var der rigtig god tilslutning denne gang, så det holder vist ikke stik mere.

Du kan finde præsentationerne fra mødet herunder, og læse om mødet på dette link.
DBLint - et gratis værktøj til databaseanalyse - er resultatet af et afgangsprojekt på Aalborg Universitet.

Benjamin Krogh og Andreas Hardy Weisberg er to af de tre ophavsmænd bag værktøjet, og de lavede et brag af en præsentation. Der var stor enighed blandt mødedeltagerne om at DBLint i meget høj grad kan "bruges til noget fornuftigt", og da værktøjet er open source står det enhver for at bruge det - og videreudvikle det, hvis man har lyst. Man skal bare huske ikke at holde forbedringerne for sig selv...
DBLint præsentation
Jens Borrisholt - som bl.a. er indehaver af bloggen Delphi på Dansk - kom og viste hvordan REST er skruet sammen, og at det ikke er nødvendigt med en "stor" Delphi-udgave for at lave REST baserede servere eller klienter.

Præsentationen inkl. link til kildeteksten ligger på Jens' blog her: En introduktion til REST
De fleste udviklere har prøvet at skulle vedligeholde ældre programmer, hvor der ikke er tænkt testbarhed ind i designet. Det betyder, at der er en vis risiko for at introducere nye fejl i eksisterende kode, selv om man forsøger at undgå det.

Undertegnede præsenterede en guide til hvordan man kan bære sig ad med i praksis at gennemføre test af software - ny som gammel - for at sikre højere kvalitet med mindre indsats.
Softwaretest - også af "ikke testbar" software

Præsentationer fra DAPUG erfamødet 8. november 2011

DAPUG - den danske Delphi / Embarcadero brugergruppe - holdt erfamøde hos Lundbeck A/S d. 8. november 2011.

Vi havde et rigtig godt møde, og du kan læse mere om alle de spændende emner som blev behandlet på dette link.
Fast Reports medfølger nu med Delphi XE2i en (lidt begrænset) udgave. Jesper Pedersen fra DDB Data viste nogle af de mange muligheder, og nedenfor kan du downloade kildeteksten til nogle af eksemplerne.
FastReports eksempler
Trendware har en del erfaringer med at lave Delphi-programmer som benytter Google Maps API'et. Sean Dollard medbragte en demo og Google Maps units til Delphi 7, XE og XE2.

Det hele kan downloades fra http://delphi.dollard.dk
CodeRage 6 løb af stablen i uge 42, og jeg har i nedenstående præsentation sammenfattet mine indtryk fra ugen.
CodeRage 6 "Essentials"
CodeSite Express er et logging framework som følger med Delphi XE / XE2, og EurekaLog er et billigt add-on som muliggøre post-mortem analyse af programmer som lider af "uforklarlige nedbrud". Vedlagte præsentation fortæller lidt mere om de to værktøjer.
CodeSite og EurekaLog
Det nye FireMonkey framework har mange stærke sider, men man skal vænne sig til, at det på nogen områder virker en del anderledes end VCL'en.

Jens Fudge viste, hvordan man kan udnytte alt alle visuelle kontroller kan bruges som containere for andre kontroller til at opnå samme virkning, som når man arbejder med TFrames i VCL, bare med endnu mere fleksibilitet...
FireMonkey "Frames"

Søgning i Outlook

Click to zoom the image 9. juni 2011, 08:49

Hvis man bruger Windows Vista eller Windows 7, vænner man sig hurtigt til at "Windows-tasten" giver mulighed for meget let søgning i både programmer og filer, herunder også i mails, aftaler, kontaktpersoner og hvad man ellers har noteret i Outlook.

Windows har indbygget en meget stærk indekserings-funktion, som gør at søgning i de indekserede områder går utroligt hurtigt. Man kan selv bestemme hvad man ønsker indekseret i Kontrolpanel -> Indekseringsindstillinger.

Men pludselig holdt søgningen op med at virke i Outlook, uden at jeg kunne finde ud af hvorfor. Outlook gav ingen fejlmeldinger, og alt så ud til at være i den skønneste orden, men søgning på Outlook-data virkede ikke - hverken fra Windows-tasten eller ved brug af Outlooks egen søgefunktion. Det er noget møg, for søgefunktionen gør det hurtigt at finde rundt i selv gamle mails og aftaler, som ellers kan være svære at finde.

Efter at have ledt (længe) viste det sig, at løsningen var meget ligetil: Outlooks datafil(er) kan finde på at gå mere eller mindre i stykker. Hvis de går meget i stykker opdager Outlook det selv, og forsøger automatisk at reparere dem, men hvis de kun går "lidt" i stykker, er det ikke sikkert Outlook opdager det, og de bliver derfor ikke repareret, selv om det kan have som konsekvens at f.eks. indekseringsfunktionen ikke længere fungerer.

Kuren er ret let: Sammen med Outlook bliver installeret et program som hedder SCANPST.EXE, som kan reparere Outlooks datafil(er). Efter at have brugt det, virkede indekseringen igen, og dermed også søgningerne.

Præsentationer fra DAPUG erfamødet 15. marts

Der findes en masse småprogrammer som kan være rare at kende til, når man arbejder med udvikling på en Windows-platform; mange af dem enten meget billige eller endda helt gratis. I denne præsentation gives en oversigt over en del af dem.

Hvis du har kendskab til andre nyttige småprogrammer, så efterlad meget gerne en kommentar, eller send en mail
Diverse småværktøjer
IntraWeb er en komponentpakke som giver mulighed for at udvikle web-applikationer på en noget mere strømlinet måde end med de fleste andre frameworks.
IntraWeb

Godt nytår

3. januar 2011, 13:10

Året 2010 er til ende, og som sædvanlig bød juleferien på en god anledning til at slappe af og hygge sig. Vi håber at I alle er kommet godt over årsskiftet.

For vores vedkommende byder det nye år på spændende nyt: Vi er ved at udvikle et system, som letter det administrative arbejde betragteligt inden for en del af transportsektoren. Noget som vi venter os meget af, men som endnu er lidt "hemmeligt".

Vi starter test af systemet "in the wild" her i løbet af januar, så der vil blive flere oplysninger tilgængelige inden for overskuelig tid. Hvis du er nysgerrig, og gerne vil vide mere, så send en mail...

Når Windows "bilver træt"

22. november 2010, 14:25

Nyere udgaver af Windows kan sættes til at gå i dvale. Når computeren er gået i dvale, er den langt hurtigere at vække "til live" igen, i forhold til hvis den er slukket helt. Det er selvfølgelig smart i de fleste tilfælde.

Men hvis computeren skal virke som server eller af anden grund være tændt uafbrudt, kan det være en fordel at fortælle computeren, at den ikke under nogen omstændigheder må gå i dvale, og det er der - underligt nok - ikke mulighed for at gøre direkte nogen steder i Windows brugerfladen.

Den nemmeste måde - hvis computeren er tilsluttet internettet - er at gå ind på Microsofts supportsite på dette link. Her vises både den nemme løsning (klik på en knap på siden), og man får også opskriften på, hvordan man kan klare opsætningen fra en kommandoprompt.

Dagens DAPUG erfamøde hos GEUS

10. november 2010, 23:46

Så er jeg kommet godt hjem efter dagens erfamøde i DAPUG, den danske Delphi brugerklub. Det blev en lang dag, og jeg slås med en omgang forkølelse, så jeg er godt brugt, og glæder mig til at komme ind og "se dyner".

Herunder kan du finde præsentationsmaterialet til mødet. Ud over mine egne indlæg om Subversion og Nyheder i Delphi XE, kan du også finde kildeteksten fra Jens Fudges demonstration af Anvendelse af frames.
  • Hvad glæde har man af versionsstyring?
  • Installation af subversion server under Windows
  • Integration af subversion klient med Delphi
Subversion installation
  • Hvad er der af nyheder i Delphi XE?
Nyheder i Delphi XE
Kildeteksten fra Jens Fudges demonstration af hensigtsmæssig anvendelse af Frames:
  • Create dem runtime
  • Sæt .Parent lig med den kontrol som framen skal ligge "oven på"
  • Brug events til at signalere fra framen at "der sker noget"
Download demo projekt

Så kom bloggen i luften!

10. november 2010

I dag blev bloggen - endelig - søsat. Det har været planen længe, og det blev altså i dag, at bloggen holdt op med "bare" at være luftkasteller.

Om bloggen

Her lufter jeg  lejlighedsvis tanker om software og softwareudvikling, eller giver henvisninger til artikler om disse emner.

Du kan også finde noget af det materiale jeg har produceret til brug på møder, seminarer og lignende.

Meget af materialet er lavet til brug i DAPUG, den danske Delphi brugergruppe.

Du er meget velkommen til at give dit besyv med ved at kommentere indlæggene!

God læselyst!
Thomas Vedel


© Thomas Vedel ConsultClick here to subscribe to this RSS feedemail info@veco.dk