fredag 22 april 2011

Neo-shooter Alfa

Neo-shooter alfa

Detta är ett spel jag skapade 1999 med en ovanlig metod av VRML parsad via Perl för att hantera spelmotorn. Hela spelmotorn var ett hopkok av olika system och laggade tillslut så mycket att jag släppte konceptet. Till syverne och sist är jag en designer och inte programmerare. Plattformen gav jag vidare till några programmerare i Italien för ett virtuellt handslag.

torsdag 7 april 2011

Problem med PHP för www.one.com?

Problem med PHP för http://www.one.com/?

I en tidigare insändare nämnde jag att jag testade kompatibiliteten med SQL-anrop via php. Orginalartikeln skrev jag vid en tidpunkt när bergstromsservice.se var byggd helt i PHP med Concrete5 som CMS. Jag använde då Firefox, Opera och IE8 för att testa kompatibiliteten och såg inga större problem förutom att det tog en lååååång tid för sidan att ladda. C5 stöder dynamisk laddning, men även med denna funktion gick det otroligt trögt. Efter ett samtal med en kollega på Office IT-Partner nämnde jag detta, och han ansåg direkt att webbhotellet - one.com - var boven i dramat då de hade en undermånlig anropshantering för just PHP.
Då (i slutet av Februari) var jag även på ett möte hos Sogeti där de hade installerat IE9, den (då) Beta-nya webbläsaren. När vi öppnade PHP-versionen av bergstromsservice.se krashade det helt, och jag insåg att det var ett mycket allvarligt problem för ett stort antal användare!
http://www.one.com/ är en mycket stor leverantör med otroligt bra priser och ett stabilt säkerhetsskydd. Just på grund av deras storlek och i mitt tycke snabba service-support var jag mycket förvånad att de inte har skrivit något om detta på deras informationssida och bestämde mig därför för att skriva denna blänkare till alla er som upplever samma problem.

Jag är i skrivandets stund osäker på om det bara är PHP-anrop för Concrete5 som ställer till det då jag läst några forum med Joomla-användare som dunkat upp portaler på one.com med liknanade - men inte samma - problem. Själv har jag bara skapat portaler i Joomla via moln-servrar och bryr mig inte om att följa upp detta problem ytterligare. Då jag arbetade på ett koncept i HTML5 när orginalportalen krashade gick jag helt enkelt vidare och skapade den sida ni nu ser. Orginalsidan skapad i Concrete5 finns dock kvar i arkiven: http://www.bergstromsservice.se/concrete/



MVH/D

måndag 4 april 2011

3D exempel i X3D/VRML

3D exempel

Posted by admin on March 2, 2011

3D visualisering av 2G, GPRS och 3G BSS

2008 skapade jag en sida för visualisering av mobilnätets uppbyggnad i 3D. Detta system implementerar en topografisk modell jag skapade i x3d embeddat i HTML-frames. Vänster meny leder sedan till information om de olika elementen. Då detta endast var ett showcase är informationslänkarna tomma.
För att se sidan klickar du på den här länken (du behöver IE, ladda sedan ner 3D-plugin via länken i botten-menyn):
 http://www.bergstromsservice.se/workbook/3D/showcase_mobile/
Men om du känner att det är för jobbigt kan du bara titta på den korta skärmdumpen jag gjorde ( i filmen nedan ). MVH/D


Att vara i valet och kvalet:

HTML5 Canvas, SVG eller WebGL?


Det exempel jag skapade ovan ( 3G i 3D och cybergatan ) är byggda med programspråk från 90-talet, men jag har till dags datum inte hittat något språk som kan rendera modeller online bättre. Naturligtvis har jag arbetat med Java i olika former och implementerat 3D-APIs. De funkar bra till dess att IE bestämmer sig för att inskränka restriktionerna ytterligare, och plötsligt blockeras java-klasser och slutanvändaren ser ingenting.
Mycket av detta kommer att förändras i och med introduktionen av HTML5. I skrivandets stund (Mars 2011) kan min IE 8.0.6 inte hantera alla noder utan hjälp från Chrome, men detta förändras snart och både Firefox samt Opera har uppenbarligen sparkat igång de första stöden.
Jag är ju naturligtvis intresserad av Canvas-funktionen och tittade på några fantastiska exempel på Chrome experiments. Men inte bara Canvas har kommit med pompa och ståt för 3D online. Även SVG (Scalable Vector Graphics ) - en form som funnits i kulisserna länge nu - verkar få stöd från alla läsare. Och sen tutas det i trumpeterna om allt som kan göras med OpenGL-stödet i HTML5.
Som 'gammal i gajmet' har jag sett detta förut - ett behov med flera lösningar - och som designer sitter man på pottkanten och funderar på vad man ska koncentrera sig på. Dock kan jag säga att det är otroligt kul med alla dessa lösningar som plötsligt dimper ner i famnen. Exemplet i filmen nedan visar vad jag pratar om: man kan ha roligt med HTML5! MVH/D

Döda språk: WML

Döda språk

WML, ett av de döda språken

Wireless Markup Language (WML), ett XML-språk som använd(e)s vid skapandet av WAP-sidor avsedda för mobiltelefoner eller enheter med långsam överföring. Sedan telefonerna blev mer kraftfulla och klarar t.ex. HTML har WML kommit i skymundan.
WML är med andra ord ytterligare ett programspråk som jag betade igenom innan det försvann till programkyrkogården. 1999 närmare bestämt, då Motorola utvecklade några applikationer för deras nya GPRS-mobiler. Det var innovativt att arbeta med 'decks' som sidorna kallades, just för att de hade samma storlek och hirearki som just en kortlek.

Nu är det ju inte så att språk försvinner, i stället förändras de till nya former för att passa den evolverande verkligheten. Wml var helt enkelt ett utvecklingsspråk för övergången mellan 2G till 3G i mobilnätet.

Linux: Easy Peasy!

Linux: Easy Peasy!

Ubuntu - den mest aktiva Linuxplattformen när jag skriver detta - är ett operativsystem som har kommit i olika former under åren. 2007 köpte vi den första 'NetBook'-enheten på marknaden, en Asus Eee 701 med SSD-disk av den första generationen (fastlödd på moderkortet), och den har tuffat på bra. Dock är minnet sorgligt litet (4 GB), vilket gör det omöjligt att hålla jämna steg med Windows som växer konstant. Linux light-version EeeBuntu var därför ett vettigt alternativ när jag bestämnde mig för att byta operativsystem, och som vanligt är det vettigt att ta reda på lite historik innan man formaterar en dator med okända produkter.
På så sätt stötte jag på Easy Peasy, en EeeBuntu-evolverad plattform för just mindre enheter. Hela paketett ryms på en USB-sticka som med fördel görs till en dual-boot(er), och jag kunde lungt testa operativsystemet innan jag rensade ur hårddisken. Att sedan partionera, formatera och installera gick på mindre än tio minuter, inklusive alla drivrutiner för ljud, skärm o.s.v! I ett slag blev jag därför Linux-frälst, och min fru som nyttjar denna lilla dator mest verkar hålla med. /D
Eee Easy Peasy

HTML5, vad är det?

HTML 5

Jag tänkte lägga upp en artikel om Flash då det är både ett språk och en applikationsform. Men internet förändras fort, och inom ett år kommer Flash - som varit en oumbärlig del för alla flashiga sidor sedan mitten av 90-talet - att vara ett annat 'dött' språk.
Adobe Flash var fram till i maj år 2008 ett slutet format, men är nu öppet för andra aktörer än Adobe. En bidragande orsak till beslutet var bl.a. vara den ökande konkurrensen från Microsoft Silverlight och möjligheterna med kommande HTML 5.
Och därför blir detta i stället en artikel om just HTML 5.
Dagens version av HTML (4.01) stadfästes 1998, och är egentligen bara en buggfix av version 4.0 från 1997. Från W3C var tanken att HTML skulle ersättas av XHTML. XHTML 1.0 innehåller dock inga utvidgningar eller ändringar av tillgängliga element och attribut, så i praktiken är syntaxen oförändrad sedan 1997. En viss utvidgning av syntaxen kom i och med elementen för ruby i XHTML 1.1 i maj 2001, men stödet för XHTML 1.1 i webbläsarna förblev obefintligt. Därefter var tanken att XHTML 2.0 skulle ersätta dagens HTML och XHTML.

Ett antal problem sågs av de webbutvecklare och webbläsartillverkare som tog initiativet till HTML5:
* XHTML 2 är inte bakåtkompatibelt med tidigare versioner. Element och attribut från dagens HTML är delvis borttagna eller har fått förändrad innebörd.
* XHTML 2 ansågs oerhört svårt att implementera i webbläsarna.
* XHTML 2.0 ansågs endast tillgodose webben som renodlade dokument. Höggradigt interaktiva och mediarika webbplatser saknas det funktionalitet för.
* HTML, snarare än XHTML, förblev de facto-standard för webbplatser. Även de sidor som har en XHTML-doctype skickas oftast som text/html och är därför i praktiken vanlig HTML. De flesta sådana sidor är dessutom inte välformade, vilket gör att de inte kan tolkas av en äkta XML- eller XHTML-tolk.[1]
* Både dagens standarder och XHTML 2 ansågs underspecificerade. Samma kod kan ge olika resultat inte bara grafiskt, utan den kan resultera i skillnader i webbläsarna dokumentsobjektmodell (DOM), vilket i sin tur påtagligt försvårar förutsättningarna för utvecklare av skript.
Målsättningarna är därför till stor del formulerade ur dessa problembeskrivningar.
* Att skapa en utvidgning av de tillgängliga element och attribut som kan användas, för att berika de semantiska möjligheterna och möjliggöra webbapplikationer.
* Att göra detta genom en inkrementell påbyggnad av dagens standarder.
* Att tillgodose två möjliga serialiseringar: HTML och XHTML. Skillnaden dessa emellan klargörs till att handla om MIME-deklaration. Möjligheten att sända XHTML som HTML bortdefinieras. Ur webbläsarens perspektiv är det HTML.
* Att leta efter och tillvarata de facto-utvidgningar av dagens standarder och vanligt förekommande designmönster.
* Att understödja "best practice" tillvägagångssätt för webbutvecklarna, samtidigt som man specificerar hur webbläsarna skall hantera uselt skriven HTML-kod. För utvecklarna skärper man kraven jämfört med HTML 4.01, medan man specificerar i detalj hur webbläsarna skall skapa sin interna DOM, även från grötig kod.
Med HTML5 introduceras ett antal nya element och attribut, som inte funnits med i tidigare standarder. Några av dessa syftar till att ge en semantisk betydelse åt ett flertal användningar av de mer generiska
- och -elementen. Exempel på sådana element är för webbsidans navigationsmenyer, och för innehåll av olika betydelse, samt (som inte ska förväxlas med ) och för webbsidans sidhuvud och sidfot. Samma sak gäller för, som nu istället ersätts av och . Vidare har man valt att stryka element som har ett rent presentationsmässigt syfte, så som och , vars effekt istället ska uppnås via CSS.
Den här portalen (bergstromsservice.se) är i skrivandets stund ett hopkok av en mängd olika webbspråk - ett lapptäcke av tekniker av HTML, css, Xhtml, Java, PhP, Iframes och frames - som speglar dess ålder. I html5 skulle (teoretiskt) hela denna portal kunna nästlas in i en stor fil, en folder för all media och en anropspunkt till SQL. Och det skulle vara flashigt utan Flash! /D

SQL QUERY via PhP och...?

SQL QUERY via PhP och...?

I dag försökte jag hitta information om 'queries' av min SQL-data via HTML5 utan att lyckas. Bergstromsservice.se ligger på ett webbhotell med hög säkerhet (One.com), och mina koder att via extrena Php-anrop skapa nya databaser misslyckades. Dock klarar Concrete5's detta med sin CMS, ett faktum som får mig att vilja följa upp dess anropshantering...men jag är ingen programmerare och ryser vid tanken.
MySQL
En skärmdump av MySQL, en mycket vanlig administrationsplattform...
Dock kan jag enkelt skapa data via MyAdmin (det administrationsverktyg som 'by default' följer med MySQL) och sedan göra anrop till denna data externt, något som jag gjorde för att se vilken lösen och säkerhet jag har för PhP-anrop. Jag skapade a.sql i MySQL och anropade denna via ett enkelt Php-script från sidan a.php. Koden ser ut så här:
a.sql:



CREATE TABLE `a`
(  `aid` int(10) unsigned NOT NULL auto_increment,  `aname` varchar(50) NOT NULL,
`adescription` mediumtext,  `created` timestamp NULL default NULL,  `mainpic` varchar(63)
default NULL,  `style` text,  PRIMARY KEY  (`aid`)) ENGINE=MyISAM  DEFAULT CHARSET=latin1
AUTO_INCREMENT=11 ;
-- -- Dumping data for table `a`--
INSERT INTO `a` VALUES (1, 'rubrik', 'text', '2011-02-26 10:33:39', NULL, NULL);


Spara denna kod som en sql-fil och importera till din egen SQL. 
a.php


mysql_select_db
("bergstromsservi", $db);if (!$db)  {  die('Could not connect: ' . mysql_error());  }
if (mysql_query("CREATE DATABASE my_db", $db)) { echo "Databas skapad"; }
else { echo "Det blev fel: " . mysql_error();
mysql_close($db);?>



Ersätt "bergstromsservice.se.mysql", "user", "password" med din egen data och FTP:a sedan upp a.php.
Detta var det mest grundläggande exemplet jag kunde skapa för att testa anropshanteringar till databaser. Resultatet ser ut så här:


Men hur fungerar det i HTML5? Jag letade runt och hittade viss information; till exempel verkar det lättaste sättet vara att köra igenom JavaScript med anropsrutiner anpassade för HTML5, men specifikationerna verkar inte vara helt klara, och W3S visade på anrop och skapande av två former av SQL-data (så här står det):
HTML5 offers two new objects for storing data on the client:
  • localStorage - stores data with no time limit
  • sessionStorage - stores data for one session

Detta blev jag inte smartare av då jag inte kan - och vill - skapa lagring av annat än statisk data. Om någon där ute har ett code-snippet av ett JavaScript för anrop av a.sql som gör samma sak jag just gjorde i PhP vore det kul att få ett exempel upplagt här. Mvh/D