1 / 15

C64

C64. BASIC, 8086, DOS, NC , HEXEDIT, ASSEMBLY, DPMI32. Interesses & Talen. Turbo Pascal, roteren kubus , euler : gimbal lock VESA 3D texture mapping , resolutie : 1024x768 UvA : Gopher , C, JAVA, Prolog , Lisp UvA : Geen C++…… UvA : Begeleiding & Beoordeling

sunila
Télécharger la présentation

C64

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. C64 BASIC, 8086, DOS, NC, HEXEDIT, ASSEMBLY, DPMI32

  2. Interesses & Talen • Turbo Pascal, roterenkubus, euler:gimballock • VESA 3D texturemapping, resolutie: 1024x768 • UvA: Gopher, C, JAVA, Prolog, Lisp • UvA: Geen C++…… • UvA: Begeleiding & Beoordeling • SBMTRIS: TCP IP Sockets, Perl (spider.pl) • SBMTRIS: Tetris op jemobieletelefoon • CapPlanmet bcb4: Databases, SQL, C++, VCL

  3. 3D texture mapping

  4. SBMTRIS

  5. CapPlan

  6. CapPlan, archive

  7. CapPlan, doelstellingen • Planprogramma in C++ • Alle windows versies • Meerdere databases • Multiuser (60 a 70% v/d tijd!) • Foutvrij • Snel maar toch alle gegevens • Small footprint (Nu 1.5MB incl installer) • 1 executable met zo min mogelijk dependencies

  8. CapPlan (zieboek) • Windows versies: doet Borland grotendeels, maar pas op! XP hidden dialog bug • Database ontwerp: tabellen simpel • Database verschillen: defines.h • Snel: Houd het simpel! (v.b: functielengte) • Snel: Geschikte datastructuren (hash.h) • Snel: Teveel lagen vermijden: odbc32 en query • Snel: Verbeter daar waar de bottleneck zit

  9. CapPlan, overzicht

  10. CapPlan, multiuser • Hoe zorg je ervoor dat wat de gebruiker op het scherm ziet overeenkomt met de situatie in de database: pessimistic of optimistic approach. Ofwel vooraf indekken of achteraf repareren... • Overlap in afspraken is geen optie! Een afspraak wordt ingepland, klant hangt telefoon op, dubbel! Repareren? Eindgebruikers weten vaak niet eens hoe ze moeten repareren. Het moet gelijk goed!

  11. Pessimistic approach • Data die bewerkt wordt vooraf ‘locken’ • Wachten tot een lock vrijkomt terwijl de userinterface blokkeert is geen optie! • Meerdere threads voor meerdere database verbindingen tegelijktijd is een verspilling van resources en bovendien foutgevoelig. • Hoe lock je iets wat er nog niet is?

  12. Multiuser denken = lastig! if(DirectoryExists(pathname) == false && CreateDir(pathname) == false) { if(DirectoryExists(pathname) == false) { // simultanious creation AnsiStringmsg = AnsiString::LoadStr(FBASE_ERRORCREATING); ATTO((msg+pathname).c_str()); Abort(); } }

  13. Hoe weet je nu zeker dat je code foutvrij is? • ... • Eerst goed, daarna pas optimaliseren • Layout, netjes werken, testen, achterdochtig zijn (wet van Murphy...) • Jezelf met documentatie kunnen overtuigen • CVS (commit = nalopen!), Goede DIFF (WC) • Referential integrity (z_foreign.sql) • Tools: Codeguard, FastMM, ccfx • Als er dan toch iets fout gaat...

  14. Verdieping • WebPagina, CapPlan Installer • RowGrid: ActiveX, Java, en Delphi • ACCESS database • Documenten: DB of FS? SMB, SSH? • Threads voor documenten: Synchronize…. • SnelStart (Extended stored procedures, dll) • CalDav/iCalendar (SQL Triggers)

  15. Vragen?

More Related