Konden we dit niet voorkomen…

In mijn cursus van Digitale beeldbewerking was ik enkele frameprocessen aan het bekijken. Eén ervan is de deling.

(I1*255)/(I2+1)

Als I2 nul wordt, moet er 1 bijgetelt worden zodat delen door nul onmogelijk wordt. Nadeel is dat alle pixels 1 waarde teveel krijgen. Moesten we honderden jaren geleden nu afgesproken hebben om delen door nul toe te staan, dan moesten we geen rekening houden met dit soort zaken. Je kan makkelijk vermenigvuldigen met 0, optellen met 0 en aftrekken met 0. Alleen delen door 0 moest weer anders zijn. Als we nu eens afspreken dat delen door 0 kan maar ik ben er nog niet aan uit welke uitkomsten dit zou geven. Ik heb twee mogelijke oplossingen voor T/0.

  1. T
  2. 0

Ik ben voorstander voor de tweede uitkomst. Dan zijn we gelijk met de vermenigvuldiging. Misschien dat meneer Van Hee (een trouwe blogbezoeker) iets op kan zeggen op mijn “belachelijk” of “revolutionair” concept ^^. Het zou een stuk geruster programmeren zijn in de toekomst, weg met divided-by-zero exceptions.

Advertentie

100% kotnet

Iets na 22 uur deze avond viel me verbinding met kotnet weg. Een uur heb ik gewacht en geprobeert om verbinding te maken. De ene keer zei kotnet dat ik al ingelogged was (ook al logde ik mij uit). De andere keer weigerde hij weer te verbinden. Dan kwamen er een hele reeks van timeouts. Tot plots uit het niets ik het volgende zag…

Ik was van 1% download naar 100% download gegaan! Waarschijnlijk iets misgelopen bij een update achter de schermen, ik weet het niet. Maar ik hou ervan als kotnet zo’n fouten maakt. Dit mag iedere week (zaterdagavond liefst) gebeuren van mij.

Mindios heeft een uiterlijk

Drie jaar na de eerste draft van Pieterc heeft Mindios een nieuw uiterlijk gekregen.

Mindios in JSP

Owja Mindios is voor de 101ste maal herrezen en ditmaal in JSP vorm. Voor het vak Internet programmeren moeten we voor het examen een site maken in JSP/JSF of Flex met Persistency. Ik ga daarom Mindios implementeren in JSP met mijn eigen JSP mini-frameworkje dat ik in februari gemaakt heb.

Eventjes over het project zelf spreken. Met Mindios kan je projecten beheren. Daar valt onder om een team samen te stellen van verschillende levels (developpers, testers, …). Dit kan doordat mensen zich aanmelden bij jou project. Jij plaatst een advertentie waarop leden kunnen soliciteren. Er komt ook een soort van tijdslijn met taken op die moet voldaan zijn. Taken worden toegedeelt aan een team of teamleden. Je kan dan ook bepalen dat al die taken moeten voltooid zijn om je project te releasen. Een release bestaat uit een aantal downloads voor platformen. De projectleider kan die release uploaden als de taken voor die release voltooid zijn. Daarnaast heeft ieder project een wiki pagina met daarin standaard categoriën als bugs, tutorials, FAQ, …

Eind deze week moet 80%-100% af zijn.

MultiExplorer 1.0 final release

Het is zover…de final release van MultiExplorer’s eerste versie. Er zijn nieuwe bestandtypes toegevoegd, een nieuwe beeld, opties bovenaan om bestanden/mappen te verwijderen, aan te maken, kopiëren, plakken en te hernoemen. Er zijn ook een aantal bugjes uitgehaald. De menubalk is ook weg omdat er maar één functie was, namelijk een nieuwe tab openen. Dit is vervangen door een plus-icoon-tab achteraan de andere tabs (inspiratie door Firefox). Foutmeldingen worden zoveel mogelijk zelf opgelost, de fouten die nog niet automatisch worden verholpen worden getoont in een venster met de boodschap. Standaard worden de bestanden van de huidige gebruiker getoont van deze computer.

De kopieer/plak functie werkt volledig maar heeft jammer genoeg geen progressbalk. Dus grote bestanden kopiëren kan lang duren. Wanneer je een bestand kopieert, dan wordt de “plakken” knop actief in alle tabs. Dit betekent dat je dit bestand kan plakken in alle tabs. Je kan gerust van PC naar FTP plakken en visa versa maar ook van PC naar PC en van FTP naar FTP. De functionaliteit hangt niet af van het soort data provider.

Wat komt er nog? Ik ga na de examens hier een Google project voor oprichten, ga wat uitbreidingen toevoegen:

  • Zoekfunctie
  • Mappen kopiëren en plakken
  • Progressbalk voor acties die aan het uitvoeren zijn (files deleten, plakken, van map veranderen, …)
  • JTable gebruiken in plaat van JList zodat het beeld “Tegels” de bestanden naast elkaar kan plaatsen.

Download: MultiExplorer2Final.jar (801 kB)
MD5 checksum: 4faa22f31e69de3727bc5d314e5690ec
SHA-1 checksum: 3974f30b574339522216d9412c501715aab48a03

MultiExplorer RC1

Jup jup, ik zit niet stil. Het gaat goed mijn MultiExplorer. Het enige wat ontbreekt zijn features als mappen aanmaken, bestanden openen met een extern programma afhankelijk van het type bestand,  kopieren/plakken van de ene tab naar de andere tab en een “Map aan het openen…” lader. Die lader is nodig voor verkenning via netwerk en dit traag kan gaan. Deze features worden zondag met de final release toegevoegd. Ditmaal een screenshot want de vorige keer was ik dit vergeten.

Download: MultiExplorer2ReleaseCandidate.jar (536 kB)
MD5 checksum: e50b8a18b55fcb515cb8983f667d45e6
SHA-1 checksum: b917c04f0d84331e7bbae22c2e481ada78b7eb01

Firefox 3.6.3 was eerder dan 3.6.2

Ik was iets aan het zoeken in de settings van Firefox en zag plots update geschienis. Ik klikte erop en zag het volgende merkwaardig verschijnsel … :D

Een foutje tijdens het schrijven van de timestamp ^^.

MultiExplorer beta 1

Voor het vak Visuele Gebruikersomgevingen (Java GUI software maken met Swing) moeten we een eindproject maken. Ik had eerst gedacht aan een formulier ontwerpen. Dit heb ik vervangen door een soort van bestanden verkenner. De reden was dat een formulier ontwerpen mij teveel werk ging kosten voor de tijd enzin die ik had.

MultiExplorer is eigenlijk een bestanden verkenner die met verschillende technologiën werkt. Je kan bestanden verkennen op je eigen computer, op een ftp server, … Ik laat drie puntjes omdat ik die eerste twee zelf gemaakt heb. Het programma is ontworpen zodat jij zelf ook een technologie kan implementeren en toevoegen aan het systeem. Het heeft een ingenieus setup systeem per technologie die gebruik maakt van Java Reflect.

Het gaat hier om beta 1 (er is al een eerdere versie geschreven maar die is later verworpen en terug vanaf 0 gewerkt wegens slecht ontwerp) en dus zitten er nog foutjes en ontbrekende modules in dit programma.

Mensen die graag de FTP willen testen. Je kan als hostname ftp.mozilla.org gebruiken zonder username en password. De PathSeparator is /. Dit wordt gevraagd omdat ik niet kan achterhalen wat het symbool is dat de mappen van elkaar scheidt. Van de computer kan ik dit wel achterhalen.

Er komt nog een toolbar bij zodat je een map hoger kan en ook vorige locaties kan terug openen. Ook komen er views zodat die lijst met bestandname vrolijker wordt. En als kers op de taart wat opties zoals copy/paste/delete/open/download/…

Veel plezier met het testen. En laat ik avdg niet vergeten te bedanken voor de eerste test te doen.

Download: MultiExplorer2Executable.jar (462 kB)
MD5 checksum: 6611f5ca1f93d8e3eac2de1336d5c7fe
SHA-1 checksum: cadcddf152a7d16439f67ebd69c9c2814f61b7dc

Slapen gaat niet, dus maar bloggen

Het is nu bijna half drie ’s nachts en ik kan niet slapen. Wat forums aflezen is dan een toffe bezigheid, vooral off-topic onzin lezen/posten. Eén van de vorige dagen kwam er een jongen af op sitemasters met een Ajax probleem. Hij kon geen response halen vanuit een externe host. Ajax kan moeilijk (of zelfs niet) met externe hosts communiceren (raar voor een HTTP mechanisme :p). Dus stelde ik voor om een soort van proxy te maken. De client communiceert met een pagina op dezelfde host en die pagina communiceert met de externe host. De response wordt mooi doorgesluisd naar de client en voila je hebt je response. Nu dacht ik, waarom niet verder gaan en meteen protocollen ondersteunen als SMTP, FTP, … in Ajax. “Maar Stijn ajax is HTTP, hoe ga je dat doen?” Kijk twee zinnen terug en daar staat het antwoord deels. Je maakt een HTTP request naar een soort van proxy. Stel dat je een mail via Ajax wilt versturen, dan kan je aangeven dat het om SMTP gaat en je geeft de vereiste dingen aan de proxy. Vervolgens maakt die proxy connectie met de server en protocol. Een beetje zoals het Adapter patroon.

Andere ideeën heb ik nog niet, daarvoor moet het examens zijn want dan komen ze allemaal.

Maar nu ben ik er vandoor want me muis begint rood te worden (batterij is bijna op).