31 oktober 2008
Overheidssteun KBC als pasmunt voor steun SONACA
Het stond gisteren in de kranten: blijkbaar moest de federale steun van 3,5 Mijard EUR aan KBC worden gecompenseerd aan Waalse zijde. Want KBC is een Vlaams bedrijf en als een Vlaams bedrijf overheidssteun krijgt, moet een Waals bedrijf dat ook krijgen... Dat is de redenering van de Waalse coalitiepartners die betrokken waren bij de onderhandelingen van vorige week voor de financiële steun aan KBC. Aanvankelijk wilden de Walen niet weten van een financiële steun aan een Vlaams bedrijf. Toen de Vlaamse ministers echter dreigden de steun te verlenen vanuit de Vlaamse overheid, was er plots paniek en zijn ze met de compensatievraag komen aandraven: KBC krijgt steun op voorwaarde dat SONACA, een vliegtuigonderdelenbouwer uit Gosselies, ook steun krijgt. SONACA heeft financiële problemen door wisselkoersverliezen.
Bij heel dit verhaal heb ik enkele bedenkingen:
- De Walen lukken er altijd in om compensaties af te dwingen. Dat hebben ze altijd gedaan en de Vlamingen moeten altijd toegeven.
- Hoe zouden de Walen gereageerd hebben indien de Vlamingen bij de reddingsoperatie van Fortis compensaties hadden geëist voor - bij voorbeeld - Agfa Gevaert? Het kot had wellicht te klein geweest.
- De Vlamingen hadden beter voet bij stuk gehouden en toch de kapitaalsinjectie vanuit de Vlaamse regering geïnitieerd.
Deze gebeurtenissen tonen m.i. aan dat Vlamingen en Walen al langer hoe meer lijnrecht tegenover mekaar komen te staan. Onder het mom van "behoud van de Belgische staat" trekken ze steeds meer het laken naar hun kant. Voeg daarbij nog de insinuering NBB-voorzitter Guy Quaden een tijdje terug dat KBC wel eens het volgende slachtoffer van de beurscrisis zou kunnen zijn, de lapsus van staatssecretaris van Financiën Clerfayt dat "KBC een liquiditeitsprobleem heeft" en de RTBF die in een interview de vloer trachtte te vegen met de KBC-woordvoerder en je weet meteen hoe ze over de taalgrens denken over Vlaamse ondernemingen in het algemeen en KBC in het bijzonder.
12:53 Gepost door There's more to life than what you see through windows in Actualiteit | Permalink | Commentaren (0) | Email dit | Tags: kbc, federale steun, compensatie, sonaca |
Facebook |
30 oktober 2008
No more Click and Hack
Regular visitors of Javapolis/Devoxx will know Click and Hack, the alter ego's of Joshua Bloch and Neal Gafter, both former Sun employees who joined Google. Neal and Josh are also known for their book Java Puzzlers, of which they've been doing presentations on several conferences around the world, including last year's Javapolis conference. For those of you who attended this session: remember it very well (you may even keep a shortcut to this blog post as a "memorial" and/or to Parleys: http://www.parleys.com/display/PARLEYS/Home#title=The%20J...), because there will be no more Click and Hack. Why not? Because Neal Gafter left Google. OK, no problem, you may think. It's not because Neal Gafter no longer is a colleague of Josh Bloch that they cannot do presentations together anymore. Wrong! Why? Because Gafter went to Microsoft to join the .Net languages team. Knowing that Microsoft is not the most Java-minded company (.Net languages don't include Java), I guess it is clear that Click & Hack have become "deprecated". According to his blogger profile, he joined the M-company in September. I remember last year's Javapolis presentation of Josh Bloch about closures. He had an entirely different opinion about closures that Neal Gafter had. Neal already did a short presentation on closures the previous year (Javapolis 2006) Neal's presentation can be found on Parleys: http://www.parleys.com/display/PARLEYS/Home#slide=1;title.... Back then that all seamed reasonable. But after the presentation of Josh Bloch last year (see Parleys: http://www.parleys.com/display/PARLEYS/Home#slide=1;title...), which put an entirly different light on closures, I was... puzzled, to say the least. Immediately after Bloch's presentation Gafter write a reaction on his blog (http://gafter.blogspot.com/2007_12_01_archive.html). This reaction clearly showed there was a tension between Bloch and Gafter regarding closures. Does this have something to do with the reason why Gafter eventually left Google?
14:14 Gepost door There's more to life than what you see through windows in Javapolis | Permalink | Commentaren (0) | Email dit | Tags: java puzzlers, click, hack, neal gafter, josch bloch, javapolis, devoxx, google, microsoft |
Facebook |
29 oktober 2008
Blogging for Devoxx - in English
No, this is not a mistake. This is definitely an English blog post and it is on purpose. Within about 1 and a half month, the annual Devoxx conference is held (December 8th 'till 12th) and bloggers can have their impressions and opinions published in the daily Parleys magazine of the conference. As this is an international conference, the main language is English, not only for the conference talks, but also for all publications. That's why blog posts related to the Devoxx conference should be in English. Since I am interested in having my posts published in Parleys AND since the Devoxx organization considers my blog as a candidate for the Parleys magazine, under the condition that I write in English, I will post all Devoxx-related topics in English from now on.
This does not mean that I will switch to English entirely. All other stuff regarding to Linux, open source software and so on will remain in Dutch. Unless my blog gets noticed - by accident - by LinuxOnline (www.linux.org), Linux Watch (www.linux-watch.com) or so and the entire world starts reading it... :-)
12:16 Gepost door There's more to life than what you see through windows in Javapolis | Permalink | Commentaren (0) | Email dit | Tags: devoxx 2008 |
Facebook |
23 oktober 2008
Mandriva Linux 2009 - korte pijn
In mijn vorige post had ik het al over de teleurstelling van Mandriva Linux 2009 en de problemen die ik nog had, onder andere met mijn soundcard die conflicteerde met mijn tv-kaart en de SMBFS die niet meer werkte (wegens deprecated).
Ondertussen ben ik met wat rondgoogle'n erachter gekomen dat mijn NAS wellicht - met een waarschijnlijkheid die in de buurt van de 100% komt - niet compatibel is met de Samba 2 client. M.a.w.: mount.cifs wordt door mijn NAS niet verstaan. Nog even gedacht dat nieuwe firmware soelaas zou brengen, maar bleek dat de laatste beschikbare firmware-versie al op mijn NAS'ke geïnstalleerd was. Dan kan je 2 dingen doen:
- ofwel een nieuwe NAS kopen, waarvan ik de file systemen wel kan mounten via CIFS
- ofwel een downgrade doen naar de vorige Mandriva-versie
Uit financiële overwegingen heb ik voor de laatste optie gekozen. Korte pijn, dus: Mandriva 2009 er weer af. Uiteindelijk werkt Mandriva 2008 nog steeds goed. Moesten er pakketten zijn waarvan ik absoluut een recentere versie wil, maar die voor Mandriva 2008 niet meer beschikbaar zijn, dan kan ik eventueel kiezen voor een "manuele" installatie (m.a.w.: niet als een RPM downloaden, maar als .tag.gz file). Da's niet zo proper, maar et werkt wel. Zo heb ik in het verleden én Inkscape én Eclipse geïnstalleerd, toen hiervoor nog geen RPM voor Mandriva beschikbaar was.
Maar... doordat ik mijn Thunderbird mailbox ook al onder Mandriva 2009 had gebruikt, moeten er vieze verwijzingen naar een recentere versie van Thunderbird hebben gestaan, waardoor ik mijn mail niet meer aan de praat kreeg. Door vieze truken - een "lege" profile aanmaken door Thunderbird op te starten en vervolgens de mail folder en een aantal (!) config files over te zetten - ben ik er na enkele ure klooien toch in geslaagd om Thunderbird aan de praat te krijgen, mét mijn mailbox. Oef...! Linux blijft toch nog altijd een stukje een hobby
.
De problemen met de soundcard werden opgelost door mijn TV-kaart in een andere PC te installeren. Zo werd meteen ook die "media center" geïnstalleerd. Hiervoor heb ik gewoon een kale Linux geïnstalleerd, met o.a. Amarok en Kaffeine. De antenne aangesloten, gescand op DVB-T posten, en hupla: de "media center" werkte. Nu nog een groter scherm...En misschien "ooit" toch eens beginnen met MythTV. Maar zolang dit werkt, blijf ik eraf.
Ondertussen draait mijn "gewone" PC ook vlotjes, mét geluid én connectie naar mijn NAS. Het enige wat ik nog moet doen, is zorgen dat mijn Scanner weer werkt (die RPM heb ik nog wel ergens liggen). En dan kan ik ein-de-lijk weer beginnen spelen met Rosegarden en Ardour. Want dat was uiteindelijk de reden van mijn re-install: de midi-weergave van mijn soundcard werkte plots niet meer.
Wordt vervolgd!
20 oktober 2008
Free Madriva Linux 2009 - niet echt super

Ik ben al verscheidene jaren tevreden gebruiker van Mandriva Linux (formerly known as Mandrake). En ik was dan ook zeer nieuwsgierig toen 2 weken geleden de 2009-versie beschikbaar was voor download. Dit is namelijk de eerste versie die gebruik maakt van KDE4, geen unstable beta, zoals bij Mandriva Spring 2008.1 die als extra optie - op eigen risico - kon worden geactiveerd, maar de volwaardige én stabiele 4.1-versie van KDE.
Vorige week dus deze versie gedownload - de Free Mandriva, uiteraard - en geïnstalleerd. Ondertussen zijn we meer dan een halve week verder en mijn PC werkt nog steeds niet volledig zoals het hoort. Akkoord, het is altijd een beetje tweaken om alles opnieuw te krijgen zoals het voordien was. Maar er zijn toch al een aantal dingen die mij dwars zitten en die ik nu al even op ene rijtje ga zetten.
Mail client
Ik maak al altijd gebruik van Thunderbird als mail client. Ik heb niet meer nodig dan dat, dus een Evolution met al zijn groupware toeters en bellen is aan mij niet besteed. Die wordt echter niet standaard geïnstalleerd. Die moest ik dus extra installeren. Op zich geen ramp, maar het is wel een extra stap vooraleer je je mails kan lezen.
Sound card
Mijn PC heeft zowel een Soundblaster Audigy als een Hauppauge HVR hybrid TV tuner (DVB-T en kabel). Deze laatste heeft ook een audio-uitgang en om de een of andere onozele reden beschouwt Linux die als de "main" soundcard. Toen ik een tijdje geleden die Soundblaster in mijn PC stak, deed dat fenomeen zich ook voor. Ik weet alleen niet meer wat ik allemaal in config files (zoals modprobe.conf) heb aangepast om uiteindelijk toch geluid te krijgen. Voorlopig blijft het dus heel stil...
Samba client
Blijkbaar lukt het mij niet meer om een file systeem van mijn NAS te mounten (een simpele Vantec NexStar LX NAS). Reden? SMBFS werkt niet meer, wegens deprecated. Ik moet SMB file systemen via CIFS zien te mounten, maar blijkbaar ondersteunt mijn NAS dat niet. Voorlopig heb ik mij beholpen met FTP, maar da's niet interessant in dagdagelijks gebruik. Ik ga proberen of een nieuwe firmware hier soelaas brengt, zoniet ben ik verplicht een nieuwe NAS te kopen...
Mplayer plugin voor browser
Standaard wordt Dragon video player geïnstalleerd: een brol-player. Daarnaast is er ook Totem, maar daarvan vind ik de beeldkwaliteit heel slecht. Die beide werden dus direct gedeïnstalleerd en vervangen door Mplayer en Kaffeine. Normaal - dat was bij de vorige versie toch zo - wordt dan ook de Mplayer plugin geïnstalleerd in de browser. Nu niet. De RPM stond zelfs niet op de DVD, noch in de repository. Die heb ik dus ergens anders moeten zoeken (RPMFind ofzo).
Er zitten nog wel wat fouten in, want na het installeren kan je controleren of er al updates zijn. Die step faalde. Ondertussen komen er wel bijna dagelijks nieuwe updates beschikbaar. Er zitten dus nog wel wat kinderziektes in.
Conclusie
Ik vraag me eigenlijk af of ik deze distributie niet te vroeg heb gedownload en geïnstalleerd. Uiteindelijk hoopte ik hiermee om mijn soundcard opnieuw deftig aan de praat te krijgen (want mijn MIDI-playback werkte niet meer).
Maar het resultaat is dat ik opnieuw naar af ben. Ik ben tot op heden alleszins niet enthousiast over deze versie van mijn favoriete distributie. Als ik na deze week geen doorbraak heb op het vlak van sound én NAS, dan denk ik er sterk aan om terug te keren naar Mandriva 2008. Moet ik alleen zien dat ik daar niet dezelfde soundcard problemen heb. Maar dan werkt mijn NAS toch op zijn minst.
Ultimately, als er echt geen andere oplossing is, gaat die TV-kaart in een andere PC die ik nog heb liggen, die ik eigenlijk had gekocht als media center, maar bij gebrek aan tweede scherm nog niet had geïnstalleerd.
16 oktober 2008
Devoxx 2008 - mijn keuzes
Ondertussen staat er een - zij het nog voorlopig en bijgevolg nog aan wijzigingen onderhevig - programma van Devoxx 2008 online. Het programma van de University Days staat wellicht ongeveer vast; bij de Conference Days zijn nog een aantal sessies "TBD" oftewel To Be Determined. Ik heb ondertussen de lijstjes al eens doorlopen en mijn keuzes gemaakt voor de verschillende sessies.
University Days
Dag 1
Mijn voorkeur voor de voormiddag is al zeker: REST (in peace) with Java, een sessie over RESTful web services. Hopelijk is deze sessie iets interessanter dan de sessie van vorig jaar over RESTful web services, want die ging eigenlijk puur over de JAX-WS API's en in mindere mate over REST. De overige sessies zijn minder interessant:
- JavaFX: niet toepasbaar
- Scrum in practice: ik heb in het verleden al meermaals aan sessie over Agile development gevolgd; deze ga ik aan me laten voorbij gaan
- JAP 2.0: Java Persistence API is voor ons niet direct van toepassing
Scala in action: niet toepasbaar
Dag 2
De sessie van de voormiddag die mij het meeste interesseert, is "Comet: never more!". Comet, ook bekend als koepelnaam van principes als Reverse AJAX, long polling en aanverwante, is een manier callbacks en asynchrone communicatie te simuleren via synchrone mechanismes. HTML 5 biedt met Web Sockets een alternatief voor deze Comet-principes, waarmee polling voorgoed verleden tijd is.
In de namiddag zal het wellicht GWT in practice zijn. Google Web Toolkit: de theorie is gekend. Alle Javascript is serverside gegenereerd, waardoor browser issues onbestaande zijn; de toolkit neemt die voor zijn rekening. Het gebruik ervan kennen we ook allemaal: de office suite van Google, GMail, ... Alle maken ze geburik van de GWT. Maar na de theorie en wat voorbeelden ben ik wel eens benieuwd hoe je daarmee nu concreet van start gaat.
Conference Days
Dag 1
Deze dag begint met een aantal obligate key notes. Eerst komt Stephan Jansen gedurende een kwartier het volk wat animeren, wellicht met cijfertjes over aantal inschrijvingen, landen van herkomst en dergelijke. Dat eerste echte key note gaat over JavaFX, ondertussen hopelijk het laboratorium-stadium voorbij. Vorig jaar was JavaFX al eens voorgesteld, als alternatief voor Adobe Flex/Air. De presentatie van vorig jaar stelde nog niet veel voor. Benieuwd hoe dit nu geëvolueerd is. De tweede keynote gaat over RFID, een techniek die bij ons al meer dan 10 jaar wordt toegepast, onder andere (voornamelijk) voor het openen van deuren (met toegangscontrole). In deze keynote gaat iemand van IBM hun Java-implementatie toelichten.
De eerste echte sessie die ik zal volgen, is "Creating amazing user interfaces with DOJO and DWR". Dit is een sessie over AJAX, met DOJO als library voor GUI-componenten en DWR als AJAX-communicatie library. DOJO is misschien de mindere god,
Na de lunch is de beste keuze tot nu toe Spring Application Platform. De mensen van SpringSource hebben de ambitie om de wereld te veroveren met hun Spring-do-it-all. Na het Spring framework (met o.a. Spring MVC, Spring WebFlow, Spring persistence, etc.) en de Spring IDE (hun eigen Eclipse bijbouw) hebben ze naar het schijnt nu ook hun eigen Spring deployment environment (hun container, zeg maar).
Daarna is er voorlopig nog geen sessie die mij echt interesseert. Wellicht wordt dat het gedroomde moment om gadgets te verzamelen of de blog bij te werken. Een verlenging van de brek die erop volgt, zeg maar.
Na de break zijn er 2 opties: ofwel "The web: Can we get there from here?" (meest waarschijnlijk), ofwel "The evolution of Java software on GNU/Linux" (eerder nice to know).
De afsluiter van de dag wordt wellicht "RESTful design, patterns and anti-patterns". Het is een andere spreker dan de University sessie over RESTful web services, dus hopelijk is hier neit te veel herhaling.
Dag 2
De keynotes zijn nog TBA (to be announced), weer het ideale moment om de blog bij te werken... De eerste sessie van de dag zal dan wellicht "How to hack and secure your web application" zijn. De sessie over HTML 5 en Web Sockets zal wellicht te veel herhaling zijn van de University sessie "Comet, no more" van dezelfde spreker.
Het ziet ernaar uit dat de middagpuze die dag wat langer zal duren, want de enige sessie die misschien half interessant zou kunnen zijn, is "Developing beyond localhost", over OpenSolaris, VirtualBox en dergelijke. Eerder nice to know, maar niet echt bruikbaar. Misschien ook weer een moment om te bloggen?
Daarna is er een sessie die interessant kan zijn: "How do we test this stuff?". Met almaar complexere systemen - AJAX, REST, SOA, etc. - heb je een even grote variëteit aan test-tools en -procedures nodig. Deze sessie moet hierop een helder licht werpen.
Na de break is er een sessie over JEE6. Benieuwd wat daar allemaal zal inzitten. En afsluiter van de dag zal "JAX-RS: The Java API for RESTful Web Services" zijn.
Dag 3
De laatste dag is eigenlijk maar een halve. De Exhibition hall is dan al ontruimd, dus voor gadgets kom je dan al te laat. En vaak zijn de sessies ook maar een overschotje. Hoewel... Vorig jaar toch nog een aantal interessante dingen gezien, o.a. van Scott Ambler.
De eerste reeks sessies zijn niet echt super. Wat eventueel nog interessant kan zijn - maar zeker niet toepasbaar - is "Building Web Applications with the SpringSource dm Server".
Daarna ziet het er blijkbaar nog erger uit. JavaFX, Effective SOA + GRIDs, Java + XSLT 2.0, Introduction to NIO 2 en een partner talk van CapGemini. Bij eliminatie misschien kiezen voor de SOA en GRID presentatie?
De afsluiter zal wellicht "EJB 3.1 - from legacy to secret weapon " zijn. En daarna is het helemaal gedaan. Dan is het 12u30, tijd om naar huis te bollen en de blog nog eens bij te werken.
14:30 Gepost door There's more to life than what you see through windows in Javapolis | Permalink | Commentaren (0) | Email dit | Tags: devoxx 2008 |
Facebook |
13 oktober 2008
Waarom Devoxx full conference zo belangrijk is
Devoxx, formerly known as Javapolis. Dé place to be voor elke Java developer en eenieder die van ver of dichtbij met Java bezig is en een beetje wil bijblijven. BeJUG noemt hun event zelf de Apache van de conferences, omdat ze voor zo weinig geld zoveel informatie kunnen brengen. Je krijgt op een week tijd zoveel informatie dat de kennis-achterstand van het voorbije jaar meteen weer is weggewerkt. Net om die reden ben ik de voorbije 5 jaar steeds naar de full conference gegaan (niet zomaar 2 dagen van ofwel de university days ofwel de conference days). De voorbije 5 jaar is er maar 1 conference geweest dat mijn conference pass niet door de werkgever werd betaald. Toen moesten andere mensen de kans krijgen, was de boodschap. Maar gelukkig was er toen nood aan track hosts (mensen die de tijd van de spreker in de gaten houden, met een micro rondlopen voor vragen uit het publiek, enzovoort) en kon in alsnog zonder kosten naar Javapolis. Het kostte me enkel een week vakantie. Die ene dag dat je dan track host moest zijn, was bovendien nog een grote meevaller, want de onderwerpen die in die zaal aan bod kwamen, waren misschien niet de eerste keuze, maar best interessante onderwerpen.
Aan het management werd die boodschap ook al meermaals duidelijk gemaakt: 1 keer per jaar 5 dagen naar deze conference gaan is een noodzaak om de kennisachterstand opnieuw bij te benen. Halfslachtige oplossingen met het doorgeven van kaarten zijn aan mij niet besteed. Ofwel ga ik de full conference, vanuit het bedrijf, ofwel zorg ik zelf voor mijn inschrijving. Die boodschap werd al bijna 2 jaar geleden gegeven. Want bijblijven is essentieel in een ICT-functie. Daarvan is iedereen overtuigd, ook het hoger management. Maar het is wel de verantwoordelijkheid van de werknemer om hiervoor initiatief te nemen. Absoluut mee eens. Je moet zelf aangeven waarin je interesses liggen en op welk vlak je je kennis bijschaven. Dat kan het management uiteraard niet in jouw plaats beslissen.
Klinkt allemaal heel logisch, tot je een aanvraag indient voor inschrijving voor de full Devoxx conference. Dan blijkt dat de volle 5 dagen niet kunnen worden ingepland, dat 2 dagen het maximum is. En dan moet je kiezen: tussen een - op papier althans - zeer interessant university track en een conference track waarvan de inhoud nog niet bekend is... Dat kan je niet. Je koopt ook geen auto of huis enkel gebaseerd op onvolledige informatie op papier.
Ik heb gekozen om... "niet te kiezen". M.a.w.: ik ga "officieel" (voor de opleidings-statistieken) niet naar Devoxx, dan kan er iemand anders worden blij gemaakt met een (gedeelde) toegangskaart voor 2 dagen. Ik neem die week gewoon vakantie en betaal de conference uit eigen zak.
16:48 Gepost door There's more to life than what you see through windows in Javapolis | Permalink | Commentaren (0) | Email dit | Tags: devoxx, conference |
Facebook |
02 oktober 2008
Onderscheid tussen return waarde en exception
Vorige week had ik een meningsverschil met een collega over de werking een bepaalde mainframe functie. Da's eens wat anders dan Java, natuurlijk, maar de analogie met Java is heel groot! Deze mainframe functie moet nagaan of een electronische handtekening correct is. Ja, bij ons doen we dat - om historische redenen - nog altijd op mainframe: de HSM en de crypto processoren bevinden zich op mainframe. De interface van deze functie is heel simpel:
- Je geeft het publieke certificaat en de handtekening door
- Je krijgt als returnwaarde "true" of "false" terug (boolean, vertaald naar 0 voor "false" of 1 voor "true")
Als je handtekening dus niet geldig is, dan krijg je dat via de returnwaarde door. Elke mainframe functie heeft echter ook steeds een header, waarin een uitvoeringscode is opgenomen en een zone voor een eventuele foutcode. Deze uitvoeringscode is 00 bij correcte uitvoering, 04 bij warning en 08 bij error, typische mainframe codes, die nog afstammen van exit codes in JCL's (daar bestaat ook nog 12 voor "severe"). Ja, ik heb ook nog een - beperkt - verleden als mainframe ontwikkelaar.
Alle uitvoeringen van transacties worden gelogd, met hun technische header (uitvoeringscode enz.) input en output. Die logging kan je bovendien ondervragen via een applicatie (zelfs een web applicatie!). Volgens mijn collega was het echter niet logisch dat je naar de detail van de uitvoering (output) moest gaan kijken om te zien of de handtekeningcontrole correct was uitgevoerd. En hierin vergist hij zich. Want de correcte uitvoering kan je nagaan a.h.v. de technische header. Het resultaat van de controle echter (of de handtekening al dan niet correct is) is te zien in de output van de functie. Op die manier maak je een onderscheid tussen een foutieve handtekening en een probleem bij het uitvoeren van de controle (b.v. omdat de crypto processor een fout gaf).
Voor mij is de bedoeling van die functie duidelijk: je vraagt of een handtekening correct is, dus verwacht je als antwoord "Ja" of "Nee". Dat antwoord wil je niet van een uitvoeringscode willen afleiden. Vergelijk het met Java: je kan een method hebben die als return waarde true of false teruggeeft. Maar als er zich bij de uitvoering ergens een fout voordoet, krijg je een exception of - indien het een "onvoorziene" fout is - een runtime exception, zoals ArrayIndexOutOfBoundsException.
10:59 Gepost door There's more to life than what you see through windows in Java design & development | Permalink | Commentaren (0) | Email dit | Tags: exception, runtime exception, arrayindexoutofboundsexception |
Facebook |