Etikettarkiv: Java

Nästan lika nördig som förr (The Geek Comeback?)

När jag satt och försökte hitta vidare information om hur jag skall komma vidare med min gamla Python-kod, i första steget uppgradera den så att den är 3.0 kompatibel och i andra steget få den att köra på min telefon som en app, så hamande jag ganska omgående hos en tillverkare som inte ens fanns listade på GSMARENA.com, nämligen Infinix. Infinix har redan på sin första sida en länk för att ladda ner Open Source-kod. Efter en snabb titt på deras hemsida så inser jag att de verkligen försöker knyta användarna närmare och bli en del av utvecklingsprocessen av produkterna. Mycket lovvärt och jag tänker hålla ett öga på Infinix och särskilt deras användarforum och deras öppna källkod och om det är något jag kan komma vidare med. Nu är ju min enkla Python-kod närmas att anse som inbecillt simplistisk men den har ju ett extremt specifikt syfte och den är tänkt att vara mobil från början så varför inte? Det skall bli intressant var jag landar. Om det fungerar med Python hela vägen, eller om jag kommer behöva använda JAVA eller kanske någon variant av XML eller rent av en HTML-lösning?
Nu har jag dessutom hittat den utomordentligt trevliga programmeringsmiljön Ninja-IDE som känns skön att jobba med Python-koden med i.

Infinix XClub

JSML – JSpeech Markup Language

Speech ApplicationsDen här sajten startade ju som en tekniksajt en gång i tiden och jag tänkte att jag skulle få upp lite av det material som fanns här då. Det är många år sedan och de flesta tekniker är idag hopplöst obsoleta men det är lite kul att ha dem på plats här i alla fall så jag börjar med att lägga upp en liten genomgång av JSML vilken jag inte tror har uppdaterats sedan 1997 och de flesta länkarna är för evigt döda (en gång på internet betyder inte alls alltid på internet). Någon gång kanske jag får nytta av den här gamla kunskapen i alla fall. Håll tillgodo.

JSML – JSpeech Markup Language (tidigare Java Speech Markup Language) är SUNs bidrag till Markup Language för röstapplikationer på internet. JSML utvecklas inte längre och dagens version är version 0.5 och kom redan 28 augusti 1997.
Såväl VoxML som VoiceXML bygger i grunden på JSML och arvet efter JSML kommer att leva kvar länge ännu i och med VoiceXMLs framgångar på området.
Ta gärna och titta igenom specifikationerna för VoiceXML här och se hur pass mycket av JSML som faktiskt ser ut att kunna leva vidare i den här typen av mobila applikationer.
Läs SUNs specifikationer av JSML här:
http://java.sun.com/products/java-media/speech/
forDevelopers/JSML/

Länkar för dig som vill läsa mer om Java och Java Speech applikationer:
Java Speech API
Java Speech Features
XML Cover Pages
FreeTTS 1.1 Speech Syntesier

Ett exempel text markup med JSML kan se ut som nedan:

<SENT>Computers <EMP>can</EMP> speak.</SENT>

Fördig som arbetat med HTML, SGML eller XML är denna typ av markeringsspråk ingen nyhet. indikerar början på en mening och avslutar densamma. På samma sätt markerar och elementen en sektion som skall tilldelas emfas.
JSML definerar åtta element.

Attribut

Attribut används för att förse element med extra information om detsamma. Varje JSML-element har en uppsättning med definerade attributnamn och, i vissa fall, är attributvärdet låst till vissa strängar.
Exempelvis kan EMP-elementet markera ord med ett nivåattribut med värdet strong:

Listen to my <EMP LEVEL=”strong”>voice.</EMP>

Du kan använda vissa JSML-element inom andra JSML-element, så kallad nesting.

<PARA> text med <EMP> mer text </EMP> </PARA>

Kom ihåg att inga element får överlappa varandra, exemplet nedan visar hur det INTE får se ut:

<PARA> text med <EMP> mer text </PARA> </EMP>

Tomma Element

Ett tomt element har endast en tag och innehåller därmed ingen text. I exemplet nedan resulterar koden till att det uppstår en pause där det tomma elementet för pause uppträder:

I know a, <BREAK SIZE=”large”/>secret.

Eftersom elementet inte markera någon text behöver det ingen slut-tag. Elementet visar att det slutar med ”/>”.

Notation

Alla JSML-element skall skrivas med versaler. Alla JSML-attributvärden är känsliga för om du använder versaler eller gemener, så värdena ”Värde” och ”värde” är INTE samma sak.

Dokumentstruktur

JSML ärett språk som bygger på XML (eXtensible Markup Language) och på grund av detta har JSML en syntax som är standardiserad och som inte är bunden till JSAPI (Java Speech API). Detta innebär att:

JSML är läs- och redigeringsbart av både människa och dator.

XML-editorer kan användas för att förenkla skapandet av JSML-applikationer.

JSML är enkelt för en synthesizer att tolka.

även om det inte är nödvändigt att kunna XML för att förstå eller använda JSML så är följande av intresse:
Om ett JSML-dokument startar med

<?XML version=”1.0″ encoding=”UCS-2″?>

<JSML>

och slutar med

</JSML>

så är JSML-dokumentet ett giltigt XML-dokument. Detta innebär att en tal-synthesizer kan använda en generell XML-tolk för att tolka JSML-text.
Om syntesizern tillhandahåller en DTD (Document Type Definition) för JSML reduceras syntesizerns arbete markant.
Dessa öppnings- och slutelement är valfria att använda i JSML (men använd dem då de ger ett större användningsområde och ger giltig XML-kod).

Kommentarer

Kommentarer i JSML-kod skrivs inom <!– och –&gt tecknen och kan innehålla all text förutom teckensekvensen –.
Kommentarer kan placeras mitt i text som skall presenteras (kommentarerna kommer inte att presenteras):

This is <!– Ett exempel på en kommentar –> fun.

Kommentarer kan placeras inom element.

<BREAK>

Ett tomt element som markerar en pause i talet. SIZE=”medium” är standardattributet om inte SIZE eller MSECS är angivet.

Attribut

MSECS Anger hur många millisekunder pausen skall vara

SIZE Anger längden på pausen med de relativa värdena: none, small, medium eller large

MARK Valfritt attribut som frågar efter en underättelse (notification) när synthesizern kommer fram till elementets text. Attributets värde är den text som skall göras tillgänglig när underättelsen (the notification) uppträder.

BREAK-elementet är ett tomt element som anger korta pauseer i den text som skall talas och som används för att markera fraseringar i det som talas till användaren.
För att indikera vilken typ av pause som är önskvärt så kan du använda attributet SIZE eller attributet MSECS, dock inte båda samtidigt. SIZE-attributet indikerar en pause som är relevant för språkets karrakteristika medans MSECS-attributet indikerar en pause i absolut angiven tid.
I de flesta språk skapas pauser genom förändringar i hur språket talas i hastighet, förändringar i timing med mera. Dessa faktorer är starkt beroende på innehållet i det talade. Till exempel är en pause på 300 millisekunder mer markant i något som talas snabbt än i något som talas långsamt.
Av dessa skäl så bör du, om möjligt, använda attributet SIZE istället för attributet MSECS.

Exempel

<BREAK/>

<BREAK SIZE=”small” MARK=”145″/>

<BREAK MSECS=”300″/>

<EMP>

Elementet EMP anger hur stark emfas som skall läggas på den markerade texten eller på det följande ordet (om EMP används som ett tomt element).

Attribut

LEVEL attributet krävs och anger styrkan i emfasen. Värden: strong, moerate, none och reduced.
LEVEL=”moderate” är default-värdet.

MARK Valfritt attribut som frågar efter en underättelse (notification) när synthesizern kommer fram till elementets text. Attributets värde är den text som skall göras tillgänglig när underättelsen (the notification) uppträder.

Elementet EMP specificerar en del av text som skall talas med emfas.
Attributet LEVEL anger hur stark emfasen skall vara. Värden för LEVEL-attributet är strong (för stark emfas), moderate (för lite emfas), none (för ingen emfas) och reduced (för reducerad emfas).

Exempel:

Listen to <EMP>me.</EMP>

Listen to <EMP LEVEL=”moderate”>me.</EMP>

EMP-elementet kan också användas som ett tomt element som då specificerar att den omedelbart följande texten skall ges emfas.
Följande exempel ger samma resultat som de ovan:

Listen to <EMP/>me.

Listen to <EMP LEVEL=”moderate” MARK=”hands”/>me.

<ENGINE>

Elementet tillhandahåller information från attributet DATA genom attributet ENGID till den identifierade synthesizern.

Attribut

ENGID Identifierarefören röst-synthesizer.

DATA Information som skall anges till den identifierade synthesizern.

MARK Valfritt attribut som frågar efter en <<<notification>>> när synthesizern kommer fram till elementets text. Attributets värdeärdentext som skall göras tillgänglig när underättelsen uppträder.

Elementet ENGINE ger möjlighet att låta applikationen använda en specificerad och identifierad synthesizers modellspecifika möjligheter. Elementet tillhandahåller information, värdet av DATA-attributet, till den röst-synthesizer som är identifierad genom ENGID-attributet. Informationen består oftast av makinspecifika kommandon.
En identifierad röst-synthesizer skall ersätta elementets text med värdet i DATA-attributet, icke identifierade synthesizers skall ignorera värdet i DATA-attributet och presentera texten i elementet.

Exempel

I am <ENGINE ENGID=”KyberMedia Voice” DATA=”Mr Casselbrant”> someone else</ENGINE>

En KyberMedia röst-synthesizer kommer att säga ”I am Mr Casselbrant” och alla andra synthesizers kommer att säga ”I am someone else”. Ett JSML-dokument kan innehålla ENGINE-element för valfritt antal synthesizers och elementen kan nästlas.

Mindre än-tecken och och-tecken (&) angivna i DATA-attributet måste anges med kod för att inte misstas för JSML.
Mindreän tecknet kan anges med något av följande kodexempel (utan citationstecknen):
”<”, ”&#60” eller ”&#x003C”.
Och-tecknet (&) kan anges med följande kod:
”&”, ”&#38” eller ”&#x0026”.
Du kan också placera tecknen i en CDATA-sektion.
CDATA har följande syntax:
<![CDATA[ text som skall vara escaped ]]>
Texten får inte innehålla teckensekvensen ]]>.
Synthesizers hanterar CDATA-sektioner genom att skala bort <![CDATA[ och ]]> markeringarna och genom att ej tolka CDATA-sektionens innehåll som JSML.

Exempel

<ENGINE ENGID=”Croaker 1.0″ DATA=”<ribbit=1>” MARK=”frog start”> no frog sound </ENGINE>

<JSML>

Elementet JSML används för att ange ett JSML-dokuments början och slut och motsvarar <HTML>-elementet i HTML.

Syntax

<JSML>
dokument innehåll
</JSML>

<MARKER>

Tomt element som efterfrågar en underättelse när synthesizern når fram till markeraren. Attributet MARK måste anges.

Attribut

MARK Har ett värde i form av text som är tillgängligt när en marker-händelse inträffar.

Exempel

Answer <MARKER MARK=”yes_no_prompt”> yes or no.</MARKER>

<PARA>

Elementet PARA markerar text som ett stycke.

Attribut

MARK Valfritt attribut som frågar efter en underättelse när synthesizern kommer fram till elementets text. Attributets värdeärdentext som skall göras tillgänglig när underättelsen uppträder.

Syntax

<PARA>This is a paragraph.</PARA><PARA> This is a longer paragraph</PARA>

PARA-element kan inte nästlas med varandra.

I JSML kan man även använda en blankrad för att separera stycken istället för att använda PARA-elementet.
Följande tre exempel resulterar i samma tal:

I am the great JSML guru, yes I am.
And now you are learning to.

Och nu med PARA-elementet:

<PARA>I am the great JSML guru, yes I am.</PARA>
<PARA>And now you are learning to.</PARA>

<PARA>I am the great JSML guru, yes I am.
And now you are learning to.</PARA>

<PROS>

Elementet PROS anger information om den markerade textens metrik. Minst ett av attributen RATE, PITCH, RANGE och VOL måste anges.

Attribut

RATE anger antal ord i minuten.

VOL anger volymen i en skala från 0.0 till 1.0, där 0.0 är tyst och 1.0 är maximal ljudvolym.

PITCH anger hastighetn i Hertz. Numeriskt värde.

RANGE anger nivån på pitch i Hertz. Numeriskt värde.

MARK valfritt attribut som frågar efter en underättelse när synthesizern kommer fram till elementets text. Attributets värdeärdentext som skall göras tillgänglig när underättelsen uppträder.

Elementet PROS ger prosodisk/metrisk kontroll i JSML. Prosodi/metrik är en samling egenskaper i språk som inkluderar dess intonation och frasering med mera.
Om man behärskar prosodin/metriken så kan man uppnå en ökad förståelse av det som talas och få ett naturligare tal.
De numeriska värden som du kan ge attributen i PROS-elementet är flyttal i formen 12, 8.3 eller -0.22.

Attributet RATE kan tilldelas värden enligt följande lista:

n Antalet ord i minuten

+n Ökar antalet ord i minuten med det angivna värder

-n Minskar antalet ord i minuten med det angivna värdet

-n% Minskar antalet ord i minuten procentuellt med det angivna värdet

reset återställer till default-värdet

Exempel

<PROS RATE=”150″>talas med 150 ord i minuten</PROS>

Attributet VOL kan tilldelas värden enligt följande lista:

n Anger volymstyrka (endast 0.0 till 1.0)

+n Ökar volymstyrkan med angivet värde

-n Minskar volymstyrkan med angivet värde

+n% Ökar volymstyrkan med angivet värde i procent

-n% Minskar volymstyrkan med angivet värde i procent

reset återställer till default-värdet

Attributen PITCH och RANGE kan tilldelas värden enligt följande lista:

n Anger nivå i Hertz

+n Ökar nivån med angivet värde

-n Minskar nivån med angivet värde

+n% Ökar nivån med det angivna värdet i procent

-n% Minskar nivån med det angivna värdet i procent

reset återställer till default-värdet

<SAYAS>

Elementet SAYAS talar om hur ett ord eller kort fras skall uttalas.
Ett utav attrubuten SUB, CLASS eller PHON måste anges.

Attribut

SUB Anger ett värde i form av en text som skall talas som ett substitut för texten som är angiven i elementet.

CLASS Indikerar hur texten skall uttalas. Värden som kan anges: date, digits, literal, number och time.

PHON För att ange ett IPA (International Phonetic Alphabet) värde eller JAVA- representationen av \uXXXX, Unicode IPA tecken som skall talas istället för text.

MARK Valfritt attribut som frågar efter en underättelse när synthesizern kommer fram till elementets text. Attributets värdeärdentext som skall göras tillgänglig när underättelsen uppträder.

Det är svårt för en syntesizer att veta hur den skall uttala förkortningar, akronymer, namn, lokal jargong och homografer. Om en JSML-applikation innehåller sådan information som löser en sådan svårighet kan man ge den informationen till synthesizer genom att använda SAYAS-elementet.

SUB (Substitute)
SUB-attributet definierar text som skall talas istället för, som i exemplet nedan:

<SAYAS SUB=”I triple E”>IEEE</SAYAS>

CLASS
När CLASS-attributet värde är date skall texten som ärmarkerad uttalas som ett datum, till exempel:

<SAYAS CLASS=”date”>Jan. 1952</SAYAS>
<!– uttalas som: January nineteen fifty-two –>

Ibland kan det vara nödvändigt att använda attributet SUB istället för CLASS=”date” för att få rätt uttal. Ett exempel är datumnotationen 4/3/97 dubbeltydig i:

<SAYAS CLASS=”date”>4/3/97</SAYAS>

Det kan sägas ”April third nineteen ninety-seven” eller ”March fourth nineteen ninety-seven”. Om det är ett dubbeltydigt uttryck så använder du SUB-attributet för att förtydliga:

<SAYAS SUB=”March fourth nineteen ninety-seven”>4/3/97</SAYAS>

När attributet CLASS har värdet literal bokstaveras bokstäver, siffror och andra tecken.

Exempel

<SAYAS CLASS=”literal”>JSML</SAYAS>
<!– bokstaveras J S M L –>

<SAYAS CLASS=”literal”>12</SAYAS>
<!– bokstaveras till one two –>

<SAYAS CLASS=”literal”>100%</SAYAS>
<!– bokstaveras till one zero zero percent sign –>

När CLASS-attributet har värdet number uttalas den markerade texten som ett tal, till exempel:

<SAYAS CLASS=”number”>12</SAYAS>
<!– uttalas som twelve –>

PHON (Phonetic Pronunciation)
PHON-attributet använder tecknen från IPAs (International Phonetic Alphabet) undergrupp av Unicode för att definiera en ljudsekvens.
För mer information om Unicodes IPA stöd kan du läsa The Unicode Standard 2.0 (The Unicode Consortium Addison-Wesley Developers Press, 1996).
Tänk på att det kan uppsttå problem om du försöker få synthesizern att uttala på ett annat språk än sitt ursprungliga.

<SAYAS PHON=”\u0066\u006F\u028A\u006E\u025B\u0074\u026A
\u006B\u0073″> phonetics </SAYAS>

Du kan inte nästla element i SAYAS-elementet.

Tillåtet

<PROS RATE=”30%”><SAYAS SUB=”sun dot com”>sun.com </SAYAS></PROS>

Inte tillåtet:

<SAYAS SUB=”sun dot com”><PROS RATE=”30%”>sun.com</PROS></SAYAS>

<SENT>

Elementet SENT markerar text som en mening.

Attribut

MARK Valfritt attribut som frågar efter en underättelse när synthesizern kommer fram till elementets text. Attributets värdeärdentext som skall göras tillgänglig när underättelsen uppträder.

Syntax

<SENT>Dog eat dog.</SENT>

SENT-element kan inte nästlas med varandra.

Det var det hela. Jag kommer antagligen att lägga upp liknande för VoxML också däremot får vi se om jag orkar att vid tillfälle ta idu med WML/WAP och VoiceXML som jag hade på originalsajten men som försvann när webbhotellet krashade (De är inte kvar i branchen längre och det finns väl orsak till det kan man tro). Det vore dock kul att ge sig på talstyrt internetsurfande igen. Det finns nog ett antal applikationer där detta är ett reellt verktyg så kanske om tiden tillåter.

Robocode Uppdatering

Robocode Battle2003-01-06.
Stor uppdatering av Robocode-sidorna.

141 sidor har tillkommit.

All statistik från Robocode Rumble-finalerna för mitt deltagande finns nu på sajten.

Varje robot som jag har gjort har nu en egen sida och två av min robotar tävlar nu i tävlingar på andra webbsajter.
Uppdaterad statistik från tävlingar för varje robot.

Robocode @ Casselbrant.net

Juleslut

:: Ja, det var ett tag sedan jag uppdaterade sajten, jag vet.
Men det innebär inte att jag har legat på latsidan direkt, inte alls.

Jag har jobbat hårt med den kommande uppdateringen av Robocode-sidorna.
Det kommer att innebära cirka 135 till 145 nya sidor för den avdelningen så det är en ordentlig uppdatering.

Några nya ligor har kört igång som jag har anmält robotar till och statistik från IBMs Robocode Rumble tidigare i höstas kommer att finnas tillgänglig här.

Grislistan har inte blivit uppdaterad sedan den 17 december på grund av tidsbrist och det är direkt dåligt.
Jag lovar att uppdatera den med samtliga nya grisar så fort jag hinner.

Julen har nu firats färdigt och det var en flerdagarsjul i vanlig ordning.

Julafton firades hos min mor i Solna.
Barnen fick fira med farmor, farfar och gammelmormor vilket de gillar så det blev bra.
Elsa och jag var väldigt trötta och slitna redan på julafton men vi tog oss allt eftersom helgen skred vidare.

Juldagen blev enligt traditionen avfirad hos Elsas föräldrar och hela ligan var samlad.
Att barnen blir stressade och inte kan hantera det enorma julklappsflödet blev tydligt och det är väl förståligt antar jag.
Det blev en lyckad juldag och man somnade ånyo ovaggad.

Annandag jul firades traditionsenligt (andra gången i rad) med Elsas kusinskara, dvs palmlöfarna i Bromma gymnasiums gymnastiksal.
I år hade evenemanget utökats med julmat i skolköket innan vi gick loss på diverse bollar och redskap.
Olle fick ingen revansch på strafsparkstävlingen i år, men vi kom överrens om en ny utmaning nästa år, så jag anser mig fortfarande regerande mästare på straffsparkar ytterligare ett år.

OS/2

OS/2 Warp:: OS/2 är ett mycket trevligt och högkvalitativt operativsystem som kommer från IBM.

:: När OS/2 Warp 4 presenterades 1995 tyckte de redan trogna anhängarna att det var få nyheter sedan version 3.

Då kom ändå röststyrning, JAVA-stöd integrerat i operativsystemet med mera.

:: IBM har nu slutat sälja OS/2 och framtiden tillhör externa initiativ som Serenity-Systems eComStation som är en modernt förpackad OS/2 gör att det finns hopp om ett modernt OS/2 ytterligare år framöver.

To recap the last half year’s worth of computer problems: Linux, too hard. Windows, too soft. OS/2, just right.

Christopher B. Wright – 2002 sept 24
Creator of Übersoft.net

OS/2 Bootloggor

[Preview GIF]Jag har med tillstånd av Alex Taylor nu en spegling av hans webbsida med OS/2 boot logos.
Du hittar dem om du klickar här

Klassisk OS/2 loggotyp

Allmänt

:: Uppföljning av min tidigare artikel hittar du i OS/2-eZine och dess juninummer 2004 läs det direkt där, eller lokalt på den här sajten på den här länken.

:: Min artikel om OS/2 och dess användare i maj-numret 2002 av OS/2-eZine kan du läsa antingen direkt hos OS/2-eZine på den här länken, eller lokalt på den här sajten på den här länken.

:: OS/2 som open source? Skulle det kunna vara något?
Det är svårt att tro att IBM skulle skänka bort OS/2 trots att de nu har meddelat att deras stöd för OS/2 upphör 2006.
Men jag tillåter mig att spåna på ämnet på den här länken.

:: OS/2 eZine gick i graven december 2004.
Nu kan du ladda ner samtliga (utom det absolut sista numret) nummer här.

:: Tips om Warp 4 hittar du på svenska på WarpCenters Merlin tips och tricks-sida.

:: The Warp Wishlist är en aktuell lista över förbättringar som behövs för att OS/2 och/eller eComStation ska kunna fortsätta vara ett konkurrenskraftigt operativsystem.
Du hittar den här.

25 bästa OS/2 länkarna

 1.OS/2 Warp 4.
 2.OS/2 Warp server for e-Business.
 3.eComStation.
 4.Hobbes mjukvaruarkiv för OS/2.
 5.IBM OS/2 Device Driver Pak On-Line.
 6.Mycket bra och informativ OS/2-sajt.
 7.Rysk sajt både på ryska & engelska..
 8.dink.org, med bl a Web/2.
 9.Tjeckisk sajt med information även på engelska.
10.Warpzilla – Mozilla för OS/2.
11.Opera för OS/2.
12.VNC Viewer for OS/2 PM.
13.devcenter.os2.ru.
14.Warp 4 tuning tips.
15.Akira Hatakeyama OS/2 software.
16.Stupid OS/2 tricks.
17.Warpstock Europe.
18.Warpstock.
19.Python/2 – Python för OS/2.
20.KIEV Elephant.
21.MySQL för OS/2.
22.Apache för OS/2.
23.Russian Underground/2 – tyvärr endast på ryska.
24.Köra X-window på OS/2.
25.Norloff’s OS/2 Shareware web & BBS.

Skärmdumpar

OS/2 Warp 4 på min ThinkPad 600 år 2000

Sommaren 2000 använde jag endast OS/2 på min ThinkPad 600 och klarade hela sommaren galant.

eComStation

eComStation är en mordernt förpackad OS/2 Warp 4.5 med mycket medföljande applikationer som köpta separat skulle kosta mångdubbelt mer än bara operativsystemet.

OS/2 på min IBM Aptiva 351 år 1998

En skärmdump från mitt första försök med OS/2 1998.

Warp 4 går att köra på maskiner med mycket begränsat minne, här 10 MB.

Robocode

Robocode Battle ♣ 
En programmerare på IBM vid namn Mat Nelson har skapat ett spel som samtidigt
är en programmeringsmiljö.

Det handlar om att programmera robotar i Java. Man kan på IBM AlphaWorks ladda ner spelet/programmeringsmiljön och sedan
spela själv hemma med sina egenhändigt skapade robotar eller ladda ner och upp robotar att utöka spelet med.

Det finns gott om dokumentation på AlphaWorks och en mängd entusiaster har skapat hemsidor runt om på Internet med egna robotar och programmeringstips.

Tävlingar:

Robocode Rumble

AlphaWorks hade under höten 2002 en tävling vid namn Robocode Rumble där de som laddat upp sina egenhändigt kodade robotar var med och tävlade om priser.
Du kan se hur det gick för min robot LazyCat om du klickar här.

Aktuella tävlingar

Det pågår flera aktuella tävlingar runt om på Internet och själv har jag med robotar i följande tävlingar:

Robocode face2face competition – LazyCat
Eternal Rumble – LazyDog

Spela & Programmera

inter arma silent leges

JAVASjälvfallet så har jag tagit tillfället i akt och försökt tillskansa mig lite
Java-kunskaper och mina robotar finns att ladda ner såväl här som på AlphaWorks webbplats.

Jag är ingen programmerare av rang (ännu) så min första stapplande försök an kanske mest fungera som stuieobjekt för andra som är lika nya på programmering som jag.

Själva spelet är skapat i Java så jag har inte haft några problem att installera det på de operativsystem som jag provat, Windows 2000 Professional, Windows XP Professional, Linux och OS/2 (eComStation).
Dock så får jag inte Java-editorn att fungera i OS/2 men det beror nog snarast på att min Java-miljö inte är konfigurerad rätt där. Själva spelet fungerar utan problem och att ladda ner nya robotar fungerar också utan problem.

Jag har lekt lite med koden och försökt hitta på något kreativt.
Jag kommer nog att fortsätta att försöka lära mig Java och det här är ett perfekt sätt att göra det på.
Det är extremt roligt.

Someone introduced me to a new game called Robocode and now I’m hooked as well as my 17 year old son. We are both learning Java while playing the game or I should say while building our Java robots. The game is setup to teach you how to handle events, how to create inner classes, and other Java techniques to build more sophisticated Java bots. I have a c++ background so I’ve been helping my son with his bots, but he’s catching on very fast. It’s turning out to be a cool and easy way to get the kid clued into programming and best of all its free.

Från Slashdot

Mina Robotar – Länkar

si vis pacem para bellum

LazyDog

”… Den enda skillnaden mot de andra, och då speciellt LazyCat som jag skrev precis innan LazyDog, är att det här är den bästa roboten jag skapat så här långt.
Antagligen kommer den att få stå som grund för alla eventuella framtida robotförsök som jag kommer att ge mig på”…Läs mer här.

LazyCat

”… Jag hade hoppats att jag skulle klara av att undvika sistaplatsen i nybörjargruppen och slutresultatet blev ur det perspektivet lysande.
På plats 51 av 112 deltagare så slutade jag på den övre halvan och det gjorde mig riktigt riktigt nöjd”…Läs mer här

LazyStreet

”… De rör sig i cirklar och endast en kollision mot en vägg eller annan robot kan få den att backa för att sedan ta ny sats och börja cirkulera”…Läs mer här

FatSlack

”… Jag satt länge och väl och grunnade på hur jag skulle göra men med bara tre dagar till Robocode Rumble skulle starta så var det bara att lägga pannan i djupa veck”…Läs mer här

LazyBean

”… Som den första roboten jag utvecklade fick den också ge namn åt efterföljande robotar som LazyCat, LazyDog och LazyStreet”…

SlowFox

”.. SlowFox var mitt andra försök till att skapa en robot för Robocode och det är precis som med LazyBean mest tweakad kod”…Läs mer här

Robocode – FAQ (plain text) | Robocode – FAQ (HTML)
Robocode Discussion

Robocode Robot   UserID @ IBM alphaWorks Robocode   Robocode Robot

Relaterade länkar:

AlphaWorks
Robocode FAQ
Ladda ner spelet/programmeringsmiljön från IBM
IBMs officiella API
Robocode Fanatics
Robocode Central
RoboCode Repository
Snipper Bot – tutorial
The Bot Exchange
Robocode Webring
Tutorial
Robocode for Linux
The Art Of War – tutorial
Robocode MiniBot Challange
Reminiscences by the fireside – History of Robocode Robots

Robocode

Min första robot - LazyBean!
En programmerare på IBM vid namn Mat Nelson har skapat ett spel som samtidigt
är en programmeringsmiljö.
Det handlar om att programmera robotar i Java. Man kan på IBM AlphaWorks ladda ner spelet/programmeringsmiljön och sedan
spela själv hemma med sina egenhändigt skapade robotar eller ladda ner och upp robotar att utöka spelet med.

Just nu (2002-07-16) pågår en tävling där man kan ladda upp sin egenhändigt programmerade robot och vinna en ThinkPad eller ett PlayStation2 med Linux for PlayStation2.
Det finns gott om dokumentation på AlphaWorks och en mängd entusiaster har skapat hemsidor runt om på Internet med egna robotar och programmeringstips.

Läs mer här

It’s Not Easy Being a Convert

 ♠  En gång i tiden när OS/2 fortfarande var ett alternativ till Windows så akrev jag ett par artiklar ur användarperspektiv för online-magasinet OS/2 eZine. Här kan du läsa den första av de två artiklarna:

:: In a community like the OS/2-community, that at least from the outside seems to be shrinking, it must be of high interest to win over users from outside the community. Is the product good enough to win new users? How is the new user experience of OS/2 in a time when Windows is the standard by all measures? This article is the naked truth about becoming an OS/2 convert.

Since 1996 I have been interested in giving OS/2 a try. It started when I bought an IBM Aptiva PC and got a 3-CD 45-day trial package of OS/2. I was running the demo CD and was greatly impressed by the speech control and the JAVA integration.

A year later I installed and ran OS/2 Warp 4 on my Aptiva but could not find a workable way to set up TCP/IP so I could connect to my Windows computer. After a couple of weeks I installed Windows NT instead and that worked just fine, so OS/2 was off my agenda completely for a long time. When I first heard of eComStation my interest in OS/2 came back and I ordered a copy as soon as I could.

At the time I was running 8 computers at my home and I installed eCS on a 400 MHz/128 MB computer just for testing and fooling around. I started the installation after I read the instructions included in the eCS package. Everything worked fine until I run into the disk problem. It took me two nights to figure out exactly how to get it configured and set up. LVM was a bit of an obstacle I must say.

Since I’ve read a lot about the easy installation of eCS, I then thought that I was an hour from running my new system. The installation took a bit over 24 hours to complete because formatting of the disk was the slowest thing since walking was invented. When I was set up and had everything installed I wanted of the third party applications I tried to connect the computer to my home network.

Deja vu.

The installation of NIC-drivers was a bit strange but worked out fine after a couple of tries.

Configuring TCP/IP was nowhere near a success.

I had by this time gotten a hold of a copy of ”Getting Started with OS/2 Warp 4” and read everything it had to say about TCP/IP. Well, this must be an area where eCS and OS/2 differed from each other a lot because I just don’t have those icons on my system. And when I am trying to configure ”local TCP/IP” I’m just not getting closer than being able to ping the localhost address. I tried the best that I could but ended up with pretty much a stand alone system. I could ping the computer from my Windows systems, from my Linux systems and from my BeOS system, but I could not by any means ping those machines from my eCS system. I installed the Xitami web server on the computer and could use it as some sort of Intranet server but I wanted to be able to surf the web and read e-mail on eCS computer, no such luck.


eComStation - Super Client for the Internet Generation

After several tries I formatted the disk to FAT32 and installed Windows ME on it and gave it to my grandmother. She wanted to learn a bit about computers and I can’t in any way get an eCS-OS/2 system to connect to any sort of network at all, so I was kind of relieved by the chance to give the computer away and get an excuse for not having a home for eCS anymore.

Determined not to give up, I have now decided to let one of my Linux systems go in favor of eCS. I still don’t have a clue how to get it to work properly on my network but sooner or later that will be solved (because I actually still believe in all the great things I have read about this OS) and I will one day be able to read my e-mail on the eCS dedicated computer.

So why should you as a convinced OS/2 or eCS user care about my less than good experience on your so beloved OS? Well, a lot of what is being written about the differences between Windows and OS/2 seams to be based on a one time experience of installing Windows. Sometimes I get the feeling that it’s based on some obsolete diskette installation of a more or less forgotten Windows version (Windows 95 or earlier.) I work as a computer technician at the Stockholm stock exchange which has high demands for functionality and uptime and can get myself around in Windows, UNIX and to some extent in VMS. But I can’t get an OS/2 installation to work properly. I don’t think that I’m completely stupid when it comes to computers and operating systems. I can agree on the fact that a few hundred or more Windows installations have forced me to think in a very special way about some things, but how come then I can install other PC operating system like Linux and BeOS without too many problems?

I think it can be beneficial for the OS/2 community to be completely honest with itself and admit that your so loved OS is not perfect and still needs a lot of effort to get in nearer to perfection (like all operating systems known to man.) eComStation is a great example of an initiative that only can do good for the OS and there seems to be developers out there who still enjoy programming on their beloved platform.

As I said earlier I will not give up my efforts towards getting a fully working eCS system and I have a very good reason to do so.

Why?
The OS/2 community has been good enough advocates, making me want to start to use the system now, in 2002. When you think about it from an unbiased point of view, that’s quite amazing, to say the least. In a world where you have everything in terms of applications and support served to you if you choose to go the Windows way, it becomes important that the communities around the alternatives like OS/2 show active movement forward. That shows the other users in the community as well as the users of other operating systems that there is a positive and ongoing culture alive and available.
This makes two good things: A new user that is curious and wants to try the system out, is made aware that there is a chance to make the effort worth the first troublesome steps. More important though, is that if you are in a live and vigorous environment, you lose fewer users. Fewer users leaving is a prerequisite to keeping a high amount of knowledge in the community.

In my way of looking at things, the OS/2-eCS platform has the best GUI that has been developed for the PC and a community that I really would enjoy being a part of.