Site public archives.

Menu > First page | Previous page | Next page | Last page Page -2.8333333333333 out of 16
Archive index of this page:

Apr. 27th, 2019 07:38January 2011: Introducing the first ever *3D newsstand* to the world
Apr. 25th, 2019 08:14Moments at *Google* Munich
July. 18th, 2018 19:57Marychard™ Technology for iOS®: #Swift4.2 and #AR
Feb. 10th, 2018 13:19PDIF: Portail des diffuseurs de France
Feb. 10th, 2017 13:19Paris City newsstand
Mar. 10th, 2016 13:19ZEENS: Mobile-to-store and 50% discount
Mar. 10th, 2016 13:19INFINITE: digital access to everything published since 1947
Aug. 27th, 2015 23:45iOS 9 : bienvenue aux bloqueurs de publicité
July. 29th, 2015 10:0322 ans de présence sur le Web et le monde est un milliard de fois plus grand !
Sept. 15th, 2014 18:01Non « madame GUESS », une montre ne sert pas à donner l‘heure.
May 18th, 2013 22:18iOS: compute the aspect fit rectangle of an image within a given rectangular container
Mar. 24th, 2013 10:26Nietzsche told us, or the raise and the fall of the digital skeumorphism paradigm
Dec. 31st, 2012 20:30LEKIOSQUE.FR: THE MISSING XMAS 2012
Oct. 23rd, 2012 09:07LEKIOSQUE.FR: CIAO ITALIA !
May 20th, 2012 23:18LEKIOSQUE.FR: WELCOME UNITED KINGDOM
Jan. 20th, 2012 15:10LEKIOSQUE.FR: OUCH! SUCCESS CAN BE THOUGH
Jan. 2nd, 2012 14:53LEKIOSQUE.FR: IT'S TIME TO SUPPORT THE iPHONE
Dec. 15th, 2011 14:10LEKIOSQUE.FR: HAPPY NEW YEAR 2011
Nov. 11th, 2011 23:15LEKIOSQUE.FR: WOW EFFECT & SIMPLICITY PAY OFF — WORLDWIDE FIRST 3D NEWSSTAND STICKS AS THE #1 GROSSING APP
Aug. 19th, 2011 14:10LEKIOSQUE.FR: INTRODUCING 2D NEWSSTAND
Dec. 15th, 2010 14:10LEKIOSQUE.FR: WORLDWIDE FIRST 3D NEWSSTAND
Nov. 22nd, 2010 00:13SantaJobs 2010: once again…
Oct. 7th, 2010 11:24Google is everywere, even where and when you don't expect it to be
Jan. 19th, 2010 00:08Santa Claus didn’t bring everything you wanted? Let’s shake him down!
Nov. 15th, 2009 00:22Does Apple have the sense of humour? — or how you could have had Steve Jobs in your pocket for Christmas!
Nov. 14th, 2009 15:09AppStore : 100k apps, et après ? c'est la consolidation !
Sept. 14th, 2009 19:53Sdl at Google London
Sept. 10th, 2009 19:30Lingua: what simple ideas could improve programming languages?
July. 21st, 2009 17:38I quit MobiLuck.com and go ahead for new adventures
July. 18th, 2009 20:05Marychard™ Technology for iPhone®: Preview
July. 18th, 2009 19:57Marychard™ Technology for iPhone®: 3D and networking
Apr. 8th, 2009 13:14PHP supports UTF-8 characters in function names!
Mar. 25th, 2009 23:32moo.com: printing business cards... deception![UPDATE2:resending]
Feb. 18th, 2009 00:38Allégeance au Roi -- Louis XIV
Feb. 3rd, 2009 23:19I love typography at large: do you know that accents appeared in 1740 in french?
Jan. 28th, 2009 14:10MOBILUCK.COM: SOCIAL NETWORK FOR GEOLOCALIZED MOBILE PHONE
Jan. 28th, 2009 13:16The True Story of Unix Shell 'IF'
Jan. 19th, 2009 22:56S.T.O.R.M.: back in memories
Dec. 16th, 2008 12:23Sansévérino, live album at théatre des bouffes du nord: a gold nugget!
Dec. 9th, 2008 12:06iPhone development: how to rename a project in XCode 3.1
Dec. 4th, 2008 15:39What do I need 500Gb for in my laptop or why being geek does not pay
Nov. 5th, 2008 14:58MobiLuck October figures show a great jump
Nov. 3rd, 2008 12:38How my data lasts thru times... or simplest, cheapest, most efficient way to make backups
June. 19th, 2008 17:59Linux bash enigma: ls |wc
June. 5th, 2008 16:00Wow, an IN-FUSIO EGE phone is using mobiluck.com!
June. 4th, 2008 10:28Analysing an HTTP connection between a Nokia 6600 and a production apache server
Mar. 20th, 2008 00:51Preparing for celebrating 200K mobile uploads on MobileZoo.biz
Sept. 2nd, 2007 16:35BoursoMac.com : l'actualité du Mac, de l'iPhone et d'Apple en général
May 23rd, 2007 09:24People and places close to you!
Jan. 8th, 2007 11:35I left In-Fusio last month, now focusing on consulting activity and mobilezoo
Jan. 8th, 2007 11:28CONSULTING FOR MERGERS & ACQUISITION
Sept. 10th, 2006 20:44http://browseAs.com/regex: Regular expression at your fingertips
Sept. 10th, 2006 12:50Welcome to my corner
Sept. 10th, 2006 10:16Having trouble with HTTP connections? I've got the tool!
Sept. 5th, 2006 18:26And you think your site has a chance to be indexed in google.com with a decent rank?
Aug. 5th, 2006 01:37Mobile Earth; Supports Collada
July. 29th, 2006 19:47A 3-CD-set Game
July. 26th, 2006 20:47Site Index
July. 26th, 2006 13:25Taxonomy
July. 23rd, 2006 22:091994: My book about Rolling Your Own Professional Video Game back in 1993
July. 16th, 2006 23:47Mobile Earth: Preview update
July. 15th, 2006 21:31All my computers
July. 6th, 2006 00:37Commando trailer
July. 2nd, 2006 21:36Nightmare Creatures 3: the animatics of the game
July. 2nd, 2006 21:36Nightmare Creatures 2: the videos of the game
June. 30th, 2006 23:47Mobile Earth: Preview an early version
June. 30th, 2006 23:30Project X Making Off
June. 30th, 2006 23:062005: Web-to-Wireless MMO Technology
June. 30th, 2006 21:49It's Mr Pants Multiplayer
June. 30th, 2006 12:01Francis, the magic bean, Day 11
June. 18th, 2006 23:412006: Mobile Earth GIS Technology
June. 1st, 2006 20:47Our life as a programmer will never be the same.
Nov. 11th, 2005 23:18Realtime optical motion capture
Nov. 11th, 2005 23:181997: Asterix demo
Nov. 11th, 2005 23:18Realtime Movement Optical Capture Capture
Nov. 11th, 2005 23:181998 and 2005: Porting my game engine from PlayStation to PC
Nov. 11th, 2005 21:54Have a look at some 1995 project archives
Nov. 11th, 2005 21:44USS S.T.O.R.M description
Nov. 11th, 2005 21:38U.S.S. S.T.O.R.M. Equipment
Nov. 6th, 2005 10:13Delivering one of the distributors
Oct. 21st, 2005 11:31The minister delegated to Industry visited us
Aug. 25th, 2005 15:00August 2005: a machine learning 3D app to crack the lotto
Feb. 6th, 2005 17:11Nightmare Creatures : Third Opus
June. 30th, 2004 21:442004: HTTP multiplayer technology
July. 30th, 2003 21:442003: realtime 3D for EGE
Apr. 19th, 2002 14:31Nightmare Creatures 3 : a unique video game !
June. 10th, 2000 02:23Nightmare Creatures 2 : Crowley's back!
May 15th, 2000 02:42What is a milestone?
Sept. 10th, 1998 02:41Commando
Dec. 12th, 1997 22:04Mars Special Ops Handbook
July. 10th, 1997 02:33Angel Quest
July. 10th, 1997 02:33Angel Quest: PlayStation screenshots
Apr. 10th, 1996 02:01S.T.O.R.M.: Looking for Praxilium
Nov. 6th, 1991 10:19Order preparation in the depot at Cavaillon
Feb. 11th, 1991 23:181991: High Screen 5 app prototyping tool

January 2011: Introducing the first ever *3D newsstand* to the world

Apr. 27th, 2019 07:38 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/907 — exists for 6 years & 19 hours ago - .

The first year, this app was #1 French AppStore and made more than €1.5M: What a success!




Moments at *Google* Munich

Apr. 25th, 2019 08:14 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/906 — updated on Apr. 29th, 2019 09:11 exists for 6 years & 2 days ago

Were good moments at Google in Munich with lot of laugh…




Marychard™ Technology for iOS®: #Swift4.2 and #AR

July. 18th, 2018 19:57 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/898 — updated on Apr. 25th, 2019 14:30 exists for 6 years & 9 months ago - .

Marychard™ Technology is the all-in-one hi-performance framework that’s on the market for 9 year now.
Has many key technologies have been around recently, Marychard have been now rewritten in Swift and support augmented reality and Metal 2!

Technical specifications

Marychard v2 is now in beta-test as per October 2018:

* (re)written in Swift 4.2 for iOS12;
  • supports Metal 2;
  • a set of tools to produce highly-optimised data for iOS.
  • hi-performance rendering of complex 3D objects and animations ;
  • physics engine: it integrates physics model over time in realtime so that you can simulate rolling balls or whatever you want, linked to the iPhone® sensors such as accelerometers ;
  • game engine: it maintains actors lifecycle thru your game session ;
  • multiplayer engine and protocol : with SDLTP 2.0 — the TCP-based protocol dedicated to MMO games and persistent environement — you can develop any simple or advanced multiplayer games you might think of, including MMOs. The server side is developped in Java J2SE as a set of distributed modules that cooperate to handle high-loads.

Production tools: SdlImage® TEN

Thru the version TEN of the long-living SdlImage™ technology, Marychard performs the following set of operations:

  • imports Collada files and generate iPhone® optimized runtime data files to be displayed on the device, still handling objects hierarchy and animation ;
  • optimizes and boosts your set of textures to make your 3D realtime visual much better than you never seen before, without extra work!

Keep posted for preview screens…




PDIF: Portail des diffuseurs de France

Feb. 10th, 2018 13:19 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/901 — updated on Nov. 17th, 2018 23:02 exists for 7 years & 2 months ago - .

PDIF: Portail des diffuseurs de France

I designed a brand new industry standard online service that enable for journal delivery, restocking, and zillions of industrial rules.

To be described.




Paris City newsstand

Feb. 10th, 2017 13:19 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/900 — updated on Nov. 17th, 2018 22:27 exists for 8 years & 2 months ago - .

Nouveaux kiosques de la Ville de Paris

The city of Paris decided to deploy brand new newsstand through the city in 2017. Those are a great overhaul of the existing XXth century style with q greater surface and new organization.

In addition, about 100 of them were equipped with a large touch screen where we run our ZEENS app.

Early version preview

Here is a monkey-test session for an early version of the app:

In-store purchase of press and ticket-show

This version is based on the Android version of ZEENS modified to take into account the landscape layout of the screen.

In addition to streamline the in-store purchase process, we added to the press magazines a large collection of ticket show that the customer can buy right in the store.

This project was a partnership between many companies:

ZEENS: for the overall softwares (client and server-side)
FNAC/FranceBillets: for the ticket API;
JCDecaux:: for its Android hardware;
• Mediakiosk: for the overall project supervision;
• City of Paris: for the project lead.




ZEENS: Mobile-to-store and 50% discount

Mar. 10th, 2016 13:19 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/899 — updated on Nov. 17th, 2018 22:06 exists for 9 years & a month ago - .

-50% discount at your press dealer!

M2S helps customers to get to the nearest newsstand where to find given magazines and goodies are in stock: that’s more than 3.5k journals and magazines in more than 24K stores!

It offers mobile-to-store functionalities and implements a dedicated social network.

I introduced a brand new business model for the traditional paper-backed press: -50% discount on press journals and magazines. The user gets in the store and scans its screen to immediately benefits from the discount!

Though the selection of magazines subject to the discount is decided by the publishers everyday, the user can also proposes his own selection by taping on the “propose -50%” call-to-action:

One can access to the 3.5k magazines through the embedded search engine or by exploring all the categories:




INFINITE: digital access to everything published since 1947

Mar. 10th, 2016 13:19 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/890 — updated on Nov. 17th, 2018 22:07 exists for 9 years & a month ago

All the French press since 1947 at your fingertips!

Infinite… That’s the code name we gave to the brand new project we are about to publish on Apple iPad platform by June 2016.

The idea behind INFINITE is to give access to the Apple iPad users to everything the press have published in France since 1947, including daily and magazines!

This service exposes an all-you-can-eat subscription-based model, in two flavours: luxury and professionals. While the luxury subscription is open to everyone for a mere €19.90/month, the professional subscription is dedicated to journalist, publishers, archivist and other professionals acting in the press industry. The price is €29.90/month and includes specific tools.

More than 3500 journals and magazines and 2M journal issues at your fingertips

That leads to more than 2M journal issues and billions of articles.

Exploring space

It is important that such a product gives fun to the users. Therefore we created “The Wall” as the reference screen to access to this universe.

The Wall is capable of exposing more than 2M journal issues on a mere iPad screen, thanks to the innovative maps-like pyramidal tiling system, and to let user both scroll the time line and expand a specific point in time by pinching in.

Exploring time

The second main way to find useful content is to explore the time line: You can restrict the time line by adjusting the two thumbs ”from" and ”to”, then horizontally scroll the content.

The timeline exposes universal event at the top of the screen, such a for example Neil Armstrong walking on the Moon in 1969. But users are encouraged to add their own events, being personal or whatever they find it useful to better grasp the time. Those events can be shared to others whenever that makes sense.

Scaling the time is available through the pinch gesture: pinching in make it possible to better refine a point in time while pinching out make it possible to run though time in accelerated fashion.

For better focus on specific subjects, the users can add specific tags to filter results in realtime.

Explicit searching

The third main way to find useful content is the explicit searching bar. Like any search engine, you simply type in you request and results come in handy with the horizontal time line browsing.

That’s a partnership with Presstalis, the French press publishers and Apple.




iOS 9 : bienvenue aux bloqueurs de publicité

Aug. 27th, 2015 23:45 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/895 — exists for 9 years & 8 months ago  Content not available in English.

iOS 9 introduit plusieurs choses relatives à Safari (le navigateur web installé par défaut), et notamment, la possibilité pour les développeur de proposer des bloqueurs de contenus HTTP (impactant donc le Web).

En clair, Apple ouvre la voie royale au blocage de publicité, et l’effondrement, du même coup, des business modèles Web dont les revenus proviennent des encarts pub. En effet Apple génère un grande partie du traffic Web.

Beaucoup d'entreprises essaient de drainer des users à coup de pub Web, et, évidement, ils ne devraient plus venir autant, puisque plus soumis en face des pubs.

Apple rêve d’un monde « uncluttered », lean et focus sur l’essentiel. Et, si ce n’était pas déjà fait, il suffit d’utiliser Apple News pour s’en rendre compte.

Si cela devient la norme, Comment vont être redistribués les budgets publicités en ligne ?

On peut essayer de réfléchir à ce que va devenir l’industrie avec cette nouvelle donne.




22 ans de présence sur le Web et le monde est un milliard de fois plus grand !

July. 29th, 2015 10:03 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/894 — updated on Nov. 10th, 2018 17:33 exists for 9 years & 8 months ago  Content not available in English.

Ce serait un truisme que de rappeler à quel point le temps passe vite.

Mais, lorsque cela s’applique à soi, prendre une minute pour regarder ce qui s’est passé depuis la découverte du world wide Web en 1993, n’est pas sans intérêt.

En 1993, après avoir créé 2 boutiques d’assemblage de PCs sur mesures dans le sud de la France, j’intégrais l’industrie du jeu vidéo sur Paris pour diriger STORM pour un éditeur américain.

À l’époque, Mozilla était à le seul butineur de Web. Les sites étaient rares, même aux USA.
L’HTML était maigre, et pas de Javascript. Les performances étaient faibles, et on ne parlait pas encore de Web App ou de OPA (one page application).

22 ans après, on développe des logiciels avec des languages fonctionnels : Javascript, Swift pour ne citer qu’eux.
Les hardwares ont bien changés aussi : du PC isolé — faiblement connecté pour être plus juste — ou de la console de salon (Sony Playstation ou Sega Saturn d’alors), on est passé à un monde fortement mobile (donc connecté) où le cas d’usage d’exception à gérer aujourd'hui est la perte partielle de réseau !

L’abstraction de la puissance de stockage et de calcul est telle qu’on ne s’en soucis plus : on dit même qu'il est (perdu ?) quelque part dans les nuages…

Microsoft Azure puis Hadoop sont devenus monnaie courante. Les algorithmes de BI/G data permettent de paralléliser le traitement des données en raccourcissant les temps de traitement perçus à quelques millisecondes quelle que soit la volumétrie des données : le peta-octet (10¹⁵ octets) étant devenu l’unité de référence de 2015 là où le méga-octet (10⁶) était celle de 1993.

En 22 ans, on a multiplié la zone d’adressage mémoire instantanée par un facteur de 10⁹ ! Soit un milliard de fois plus…

C’est fabuleux.

À tel point qu’aujourd'hui, il devient envisageable de faire du BI/G data côté client et sur un iPhone 6…
En effet, en recyclant la technologie déployée en 2006 sur Mobilezoo.biz et les terminaux J2ME d’alors, dans le contexte de 2015 et des iPhones, mes recherches sur l'usage des algorithmes map-reduce côté client, associés à CloudKit pour la persistence, permettent aujourd’hui d’envisager un traitement sémantique de textes issues de multiples sources, y compris du Web, sur une galaxie de milliers d'iPhone.
Les bénéfices immédiats : réduction drastique des coûts et mutualisation des MIPS consommés en les distribuant sur la population des utilisateurs d’une app.

Aventure à suivre…




Non « madame GUESS », une montre ne sert pas à donner l‘heure.

Sept. 15th, 2014 18:01 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/893 — exists for 10 years & 7 months ago  Content not available in English.

Je salue l'accueil bienveillant de GUESS à l'arrivée de la montre d'Apple (lettre ici).

Cependant, je ne peux m'empêcher de voir à quel point les gens « légitimes » de ce segment se méprennent totalement et se nourrissent d'illusions.
GUESS, une société fabricant des montres -- aussi sympa soient-elles, comment peut-elle imaginer rivaliser avec le ras de marrée que va connaître leur industrie avec ce nouveau entrant…
Cela me fait penser à 2007 avec l'introduction de l'iPhone et les réactions de Blackberry et de Nokia (alors numéro un, et de loin), l'une prétendant que sans clavier, l'iPhone serait voué à l'échec et l'autre, trop occupée à compter ses milliards pour se sentir la moindre menace venir.

Les légitimes ne comprennent jamais qu'ils s'y prennent toujours à l'envers. Ils pensent que la valeur ajoutée de leur segment réside justement dans leur segment alors, qu'en réalité, le consommateur, sans forcément le savoir, a besoin d'un environnement global, sécurisé et simple. Y-compris pour lire l'heure.

Apple sur le marché des montres c'est ni plus ni moins que :
-- 200 M de cartes bleues (Apple Pay bientôt) ;
-- une myriade de services (musique, ciné, radio, podcast, stockage, photos…) ;
-- une expérience utilisateur normalisée et bien ancrée dans les gènes des utilisateurs ;
-- une efficacité marketing sans pareil, sachant montrer le côté sexy des choses, et donc capable de toucher le cœur des utilisateurs.

Apple, c'est la capacité à synthétiser les besoins des utilisateurs conduisant à la marginalisation du support originel : l'iPhone c'est tout sauf un téléphone.
L'iWatch, ce sera tout sauf une montre.

Entendez par là, que la fonction donner l'heure ne sera plus qu'un prétexte. Elle est diluée complètement dans l'univers Apple, même accrochée au poigné.
En inventant votre poignée, votre corps, c'est l'univers Apple qui grandi, qui change de dimension.

Le Mac engloutissait votre bureau. L'iPod et plus encore l'iPhone, votre poche. L'iPad, votre salon.

L'iWatch ? Votre corps. Subrepticement. Délicatement. Sans heurt.

Non « madame GUESS », une montre ne sert pas à donner l‘heure.

Je ne serai pas surpris de voir l'industrie entière complètement recomposée dans un an, comme fût celle du téléphone.

PS : J'ai bien noté la date de votre courrier. Le 11/9.




iOS: compute the aspect fit rectangle of an image within a given rectangular container

May 18th, 2013 22:18 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/892 — exists for 11 years & 11 months ago

I seldom give code snippet. But it must be recognized that simple geometrical operations are not really understood by most of programmers. As a consequence, they often come up with long and complex source code which is even not solid, bugs being around.

The objective is to compute the bounding rectangle of an image which is placed in a given rectangular container, so that the image is stretched to fit into it, keeping the original image aspect ratio.

In addition, the code center the image within the bounding view.

The first step is to compute the two possible scale factor. As we're looking for the maximum constraint, we pick the smaller scale factor to decide what direction to keep. Then we recompute the second direction by combining the two scale factors.

The resulting code is short, as follows:

- (CGRect) getAspectFitRectangle:(UIImageView *)iv
                           image:(UIImage *)im {
    // view to embed the image
    float vw = iv.frame.size.width;
    float vh = iv.frame.size.height;

    // image to be embeded in the view
    float w = im.size.width;
    float h = im.size.height;

    // compute
    float scaleW = vw/w;
    float scaleH = vh/h;

    if (scaleW>scaleH) {
        // keep height, recompute width
        float iw = vw/scaleW*scaleH;
        // compute horizontal translation
        // to center the image
        float x = (vw-iw)*.5f;
        return CGRectMake(x,0, iw,vh);
    }
    else {
        // keep width, recompute height
        float ih = vh/scaleH*scaleW;
        // compute vertical translation
        // to center the image
        float y = (vh-ih)*.5f;
        return CGRectMake(0,y, vw,ih);
    }
}




Nietzsche told us, or the raise and the fall of the digital skeumorphism paradigm

Mar. 24th, 2013 10:26 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/891 — updated on Mar. 28th, 2013 10:12 exists for 12 years & a month ago

Skeumorphic approach to digital user interface was Steve Jobs' favorite direction, though rising passionated debates at Apple, internally.

Spiritual Jobs' son, Scott Forstall, continued in this direction after the death of Jobs, but his most prominent contradictor was Jonathan Ive, who, eventually, took over Scott's responsabilities making Scott resigning from Apple.

We now see the first public evidence of the reorientation to the Ive's take on flat design originally initiated by Microsoft Windows 8 Modern UI approach to user interface ringing the knell of digital skeumorphism.

See how Apple Podcasts application on iOS just droped it's skuemorphic skin:

1 Legend : on the left, new flat design, on the right, former skeumorphic design

Bye bye idealism, welcome nihilism: Nietzsche told us about all this, long ago.

Digital world is eaten by physical world: impossibility now becomes impossible. Even there.




LEKIOSQUE.FR: THE MISSING XMAS 2012

Dec. 31st, 2012 20:30 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/889 — updated on Mar. 10th, 2013 13:37 exists for 12 years & 3 months ago

End of 2012 is very weird here. We prepared a very nice brand new version v1.9.8 with tons of features and improvement plus a gorgeous new xmas brand new theme, but alas, you won't have it!

We struggle with Apple in order to make them validate our app, but they bloc it for some reasons. And frankly, we won't pass through this year. See you next year anyway, with a solution.

Happy new stand 2013!




LEKIOSQUE.FR: CIAO ITALIA !

Oct. 23rd, 2012 09:07 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/888 — updated on Apr. 27th, 2019 07:49 exists for 12 years & 6 months ago

I am happy to introduce the new v1.9.6 version which gives access to our users to more than 150 italian magazines.

In addition, lekiosk is also given a new italian theme for you to enjoy!




LEKIOSQUE.FR: WELCOME UNITED KINGDOM

May 20th, 2012 23:18 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/887 — exists for 12 years & 11 months ago

Welcome back to our new 100% cloud supported infrastructure!

À nous les petites anglaises!

Since we rethought almost everything to migrate our platform to Microsoft Azure, it's time to address international market, stating today with the UK.

Of course, I also did dramatically rethought our app to make it multi region capable.

A brand new 3D newsstand

Both UK specifics contents and theme are now available to any user out there.

Support for multi languages, offers and currencies

The app is now capable t support multi languages and exposes specific offer to the UK people: 10 magazines per month for only £9.99.




LEKIOSQUE.FR: OUCH! SUCCESS CAN BE THOUGH

Jan. 20th, 2012 15:10 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/886 — exists for 13 years & 3 months ago

You know what? We have launched the iPhone version, and guess… we've got 17 times the traffic we had last xmas!

The results? Boom!

Many nights running people at the datacenter with screwers, quickly trying to install new servers while at the other hand, I was forced to keep iPhone users off the service.

Enough is enough: classical datacenter is a dead end. I need cloud computing now!

Platform team started to convert all the platform to active Cloud comuting. I chose Microsoft Azure as a natural provider as we run .Net software all over the platform.

See you in a few weeks…




LEKIOSQUE.FR: IT'S TIME TO SUPPORT THE iPHONE

Jan. 2nd, 2012 14:53 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/885 — updated on Nov. 5th, 2018 15:31 exists for 13 years & 3 months ago

Since the begging, our main and only target was the iPad. Though we're doing well on the tablet, the addressable market is way smaller than the iPhone market. There's no reasons why we shouldn't address the smartphones.

We need one app and support both iPad and iPhone.

Smaller, it changes all

It's no question to simply scale down the app views, including the 3D newsstand view. Your fingers are not going to make it to tap accurately the magazines. Nor your eyes are going to aim at them comfortably.

Change everything, but keep it as it is!

Yes. A bit mind twisting!

The requirements: The 3D must stand. The mags must be big enough to taped and watched comfortably. And we must show as many as magazines as we can.

Ok. The solution: we keep the 3D Model, but derives a special version for the iPhone that sports only one row of mags. And to display more than the screen can contains, we make it scrolling, within the shelter of the newsstand.

One more thing…

Oh, by the way. We now support portrait mode for both iPhone and iPad (iPad version below).




LEKIOSQUE.FR: HAPPY NEW YEAR 2011

Dec. 15th, 2011 14:10 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/883 — updated on Mar. 9th, 2013 14:47 exists for 13 years & 4 months ago

Since the launch, less than one year ago, the iOS iPad app quickly jump to the #1 grossing app in the Apple App store. As the app continues its market penetration as a very quick pace, we wanted to wish our users our greatest wishes for the new year and released the 1.9 version xmas special edition.




LEKIOSQUE.FR: WOW EFFECT & SIMPLICITY PAY OFF — WORLDWIDE FIRST 3D NEWSSTAND STICKS AS THE #1 GROSSING APP

Nov. 11th, 2011 23:15 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/882 — updated on Mar. 9th, 2013 14:45 exists for 13 years & 5 months ago

Since the launch, less than one year ago, the iOS iPad app quickly jump to the #1 grossing.

#1 grossing app: what does it mean?

Being #1 grossing app stands for: no others iPad apps in the AppStore makes more money than this one, including games or any blockbuster brand!

Hundreds of thousands customers already downloaded our app thanks to the engaging 3D approach I originally used.
Wow effect just goes straight to the heart of people, as expected, and user experience simplicity makes readers happy.

I tell you bro: innovation pays!




LEKIOSQUE.FR: INTRODUCING 2D NEWSSTAND

Aug. 19th, 2011 14:10 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/884 — updated on Mar. 9th, 2013 14:48 exists for 13 years & 8 months ago

Gamification is essential

3D makes things exciting for the user as it introduces fun in a serious app. Though gamification is an essential part of my action, it's clear though that we need a more traditional way to propose the user for exploring our ever growing stock of publications.

Introducing the 2D newsstand

Since version 1.8 dated August 2011, I introduced a brand new 2D view of the newsstand, as part of the experience.
2D brings effectiveness where 3D brought engagement. Does this means I dropped gamification in the process? No.
HTML5 along with WebKit capabilities, offered me a way to propose a mixture of 2D and 3D as you can see below:

The top of the view is still a full-fledge 3D view, propelled to the screen by the GPU directly, giving the user the direct access to a given category, while, below, features a more classical mosaic which displays all the magazines available for the given category.

Hope you enjoy.




LEKIOSQUE.FR: WORLDWIDE FIRST 3D NEWSSTAND

Dec. 15th, 2010 14:10 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/880 — updated on Nov. 12th, 2018 23:38 exists for 14 years & 4 months ago

Designing and developing our iPad application, rethinking and imagining what future users might need. In response to this question, we created a product strategy establishing our industry as B2C, leaving behind B2B or B2B2C focuses. I wanted the user to be our strategy’s focal point, so we created an agreeable, engrossing world where the user is relaxed and ready to read.

Our stepping-stone strategy results offer many pleasant surprises.

A few images of our application

I wanted to create an interesting world where the reader is engaged and finds immediate gratification. This virtual world and the entire application had to avoid complexity or sophistication: simplicity was the key!

The kiosk in 3D real time

The kiosk itself is organised into 9 different sections: the desk plus 8 thematised sections.

Page turning, that simple right to left movement that we all do, became the application’s signature gesture and was used for the majority of interactions, especially to access categories: we “turn” the kiosk to go to another category:

Access more than 450 titles and do “full text” searches

With so many titles available — and we are constantly updating our selection with new titles — we decided to offer several to guarantee user satisfaction. One way to find and select titles is to navigate directly from the kiosk or from the category and sub-category pop-ups.

The second is to do a full text search: LeKiosque probably has the Internet’s largest text database. We indexed all the articles available in the French press and we subscribe to foreign titles. All this so the user can search directly from an iPad.

Magazine files and the different means of purchase

Purchasing on LeKiosque is mega-simple: a quick “tap” and you’ve bought an issue or a subscription! And we’re the only news application to use the Apple in-app purchase.
Several types of appealing promotions, like credit packages where you can buy reduced rate magazines, are available if you wish.

User’s Library

This is the user’s space. It’s a comfortable area where the user feels good. We chose wood for its warmth and because it’s a reassuring and comfortable material. Then we made it modern with brushed aluminum.

This is where the user can store magazines. The user can also find the new editions of their subscription publications here — unread titles are highlighted with a red dot indicating the number of issues not yet read.

Reading

We paid particular attention to studying reading from an ergonomic point of view. You’ll find 3D page turning effects that you’ll enjoy. Regular readers want efficiency, and they can get it instantaneously by changing pages on the iPad without moving their hands.

You can read in two-page side-by-side mode so you can enjoy the magazine layout. Or you can appreciate the comfort of one-page reading, whether it’s in portrait mode where zoomless reading is made easy for magazines like “Le Point”, or in landscape mode where vertical page scrolling lets you take advantage of the iPad’s width. A total of 3 zoom levels are available in addition to a special mode specifically designed for the newspaper’s larger format.

As soon as you “tap” to purchase, you can start reading immediately: there’s no need to wait for the magazine to download because we offer streaming that works just like it does for videos, you can enjoy reading immediately!

Online and offline reading

In addition to making reading available immediately thanks to our unique magazine streaming application, you can also read offline.
When you buy magazines, they’re automatically streamed and stored onto your iPad. As soon as material is on your iPad, you can read offline: you’ll see small green pins in your library indicating what’s has been successfully downloaded (the grey pins indicate partial downloads).

LeKiosque is ecologically-friendly to other iPad applications: you can decide to discard any magazine whenever you want from your library. And you can decide to re-download older issues, it’s all up to you!




SantaJobs 2010: once again…

Nov. 22nd, 2010 00:13 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/879 — updated on May 1st, 2019 19:15 exists for 14 years & 5 months ago - .

Paris, November 20th 2010, for immediate release

As Apple rules have somewhat relaxed recently, I’ve decided to submit my visutainment SantaJobs for iPhone & iPad.

One year after the refusal, I think this time it might be accepted by Apple, as political caricatures has now being accepted on AppStore.

I’ve submitted a revamped version, with plenty of sounds and music. And in addition, facebook support for social gaming.

Can’t wait guys. I keep you posted.

See: http://DrPouille.com/Santa-Claus and http://DrPouille.com/SantaJobs




Google is everywere, even where and when you don't expect it to be

Oct. 7th, 2010 11:24 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/878 — exists for 14 years & 6 months ago

Lately, as I was working with a friend on android on a new way to write native app more effectively, I stumbled upon something quite surprising.
We where doing an HTTP request to a server from within the android app, to a non existent URL, in order to catch the default user-agent of the sdk.
As we used a non existent URL for the first time ever there is no way googlebot could be aware of it. Nevertheless, I was surprised to see googlebot coming right after the expected request!

That means Android is used to sniff web servers

80.14.90.42 - - [07/Oct/2010:11:19:23 +0200] "GET /stephaXXXXXrze HTTP/1.1" 404 1399 "-" "Mozilla/5.0 (Linux; U; Android 2.1-update1; en-us; sdk Build/ECLAIR) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17" 66.249.66.187 - - [07/Oct/2010:11:19:33 +0200] "GET /stephaXXXXXrze HTTP/1.1" 404 1399 "-" "Mediapartners-Google" 80.14.90.42 - - [07/Oct/2010:11:19:39 +0200] "GET / HTTP/1.1" 200 23166 "http://mobilezoo.biz/stephaXXXXXrze" "Mozilla/5.0 (Linux; U; Android 2.1-update1; en-us; sdk Build/ECLAIR) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17"



Santa Claus didn’t bring everything you wanted? Let’s shake him down!

Jan. 19th, 2010 00:08 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/875 — updated on Nov. 12th, 2018 12:54 exists for 15 years & 3 months ago - .

There's an app for that: Santa-Claus

Dr. Pouille — that's Dr. P. Will to you! — presents a fantastic 3D interactive snowball this Christmas and New Year 2010!

This season, Dr. Pouille wants you to get Santa Claus to give as many presents as possible per 60 second round!

Each round you can improve your score and there’s no limit to the number of rounds — the current record is 169 points: can you beat it?

Let Santa Claus do the job alone or let your finger give him a hand so that he can knock out more presents & you get more points. +3 points if he knocks one out with his head and +1 point with his feet.

One more thing… if you shake your iPhone, you create a real snowstorm vortex to speed up Santa and give you more of a chance to open presents and earn points!




Does Apple have the sense of humour? — or how you could have had Steve Jobs in your pocket for Christmas!

Nov. 15th, 2009 00:22 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/876 — updated on Apr. 22nd, 2019 15:55 exists for 15 years & 5 months ago
_Paris, November 15th 2009, for immediate release_

First, I’d like to say again that I am a long fan of Apple and, especially, of Steve Jobs, Apple, Inc’s eclectic, opinionated genius, elegant visionary, founder and owner.

Now that this sincere homage has been paid, I’d like to touch on the iPhone and the iPhone’s approval and validation application process in particular.

While here or there, I’ve read a small but growing number of complaints from certain developers who consider their application rejection unfair, it’s not at all my intention to add to this number and I certainly don’t find rejection unfair. To my mind, Apple logically observes its qualitative choice criteria and some projects are legitimately refused. This I don’t contest!

However, I’ll linger on a specific editorial point, since I didn’t really understand the reasons that Apple gave for the refusal suffered by our humorous “SantaJobs” application!

SantaJobs is an extraordinary Christmas ball that lets you take Steve Jobs with you wherever you go – please see the attached screen shots. You help guest star Steve as he tries to catch Christmas presents.

Wow!


What was the reason for the rejection? Here it is: “[…] you ridicule a public person.”

The public person is, of course, Steve, their boss. Indeed, the character is caricatured in a friendly and kind way. So, there’s no ridicule here – decide for yourself – and on the contrary there’s only love!

Now what? Should I conclude that Apple lacks a sense of humour? Or that Steve has none? No, I can’t bring myself to do that. I remember an Apple presentation back in 1983 where Steve himself publicly parodied the famous TV show “The Dating Game” with, notably, the young Bill Gates, among the contestants.

Evidently Steve doesn’t lack a sense of humour. I started off absolutely certain that a man like him has the necessary self-deprecation so that he wouldn’t judge our wink at him as an affront but rather as a real homage.

To conclude, I’d like to believe that if my application had been delivered directly to him, you would have had it under your Christmas tree.

Alas, now you’ll just have to settle for me!

But, if for some stretch of the imagination, Steve sent me an e-mail over the next few days, all wouldn’t be lost.

Santa Claus, if you’re listening out there…

Stéphane de Luca
CEO of drPouille.com, Inc & fan of Steve :-)

See: http://DrPouille.com/Santa-Claus and http://DrPouille.com/SantaJobs




AppStore : 100k apps, et après ? c'est la consolidation !

Nov. 14th, 2009 15:09 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/872 — updated on Jan. 19th, 2010 00:30 exists for 15 years & 5 months ago  Content not available in English.

Si 100k applications est sans conteste possible la traduction d'un engouement des développeurs pour la plate-forme mobile d'Apple, il convient de la moduler, ou du moins d'analyser la situation d'un peu plus près.

Ce qui séduit les développeurs, en dehors de l'iPhone lui-même, est le nouveau business model proposé par Apple : contre 25% des revenus brut générés par l'application, Apple s'occupe de la distribuer, d'encaisser les acheteurs et de gérer la relation client. Ainsi, on est bien loin de la commercialisation retail classique où le développeur récolte seulement 10 à 15% du prix de vente. En outre, l'accès direct au marché, proposé par Apple, semble aussi réinjecter de la liberté dans le processus de création et le développeur ne subi plus les exigences sans fin des éditeurs.

Pour moi, il est clair que l'AppStore bénéficie à plein d'un effet d'aubaine : les développeurs -- qu'ils soient individuels ou de petites entreprises -- pensent qu'ils vont toucher le jackpot.

Hors il n'en est rien. Il s'avère que seules les 100 premières applications réalisent un chiffre d'affaire significatif; le reste ne génère quasiment pas de revenu. Pis encore, énormément d'applications ne sont tout simplement même pas téléchargées !

Hors, le calcul fait plus haut est loin de la verité pour la grande majorité des auteurs d'applications du simple fait qu'elle sont proposée gratuitement.
On peut d'ailleurs se poser la question du pourquoi ? En effet, faire une application, même basique, représente un effort de production important, avec de nombreuses heures de travail à la clé. Est-ce que le développeur n'attribue aucune valeur à son travail ? Ou bien ne s'agit-il pas pour lui de ne réaliser qu'un exercice de style ?

Nombre des développeurs sont en effet de simple hobyistes, sans démarche commerciale. Quant aux autres, beaucoup surfent sur le buzz iPhone et réalisent des contrats de developpement pour des tiers -- comme le font les web agency. Le montant de ces contrats est assez faible, aux alentours de 15k€.
En ce qui concernne les petits studios de developpement de jeux vidéos, il réalisent des jeux pour un montant compris entre 50 et 100k€.

Alors pourquoi aussi peu de succès pour les applications ? Et bien je crois que les auteurs ont quelque peu oublié un point fondamental, nécessaire pour qu'un produit rencontre un succès économique : le marketing.

En effet, comment un utilisateur peu savoir que l'application dont il rêve existe parmi les 100 000 disponibles sur l'appstore ? C'est en effet chercher une aiguille dans la meule de foin. C'est tout simplement impossible sans une campagne de publicité, impossible sans les médias, impossible sans budget marketing !
Là encore, malgré les effort d'Apple, aucune solution autre qu'une campagne marketing fera savoir au public que cette application incroyable est pour vous.

On le voit bien, l'AppStore reste finalement un marché classique où faire sont beurre n'est pas si différent qu'un autre. Et une fois que le développeur l'aura compris, on assistera donc à une consolidation sévère. Le nombre d'application croira de moins en moins vite, mais la qualité augmentera. La course des prix vers le bas cessera.

Ce tour d'horizon de l'écosystème AppStore ne serait pas complet sans mentionner un dernier écueil : le processus de validation des applications.  C'est le moyen pour Apple de maintenir un certain degrés de qualité, ou tout simplement empêcher qu'une nouvelle application vienne cannibaliser les caractéristiques d'une autre.
L'accès à l'AppStore se fait donc sous réserve d'approbation par Apple ; et vu l'affluence, les délais sont assez longs -- avec un minimum de 2 semaines ; et surtout, le résultat est difficilement prévisible, m^me en s'en tenant aux guide publié par Apple.

Donc, entre la faible rémunération et le risque de non publication -- ou l'inceritude des délais d'approbation --
on commence à lire des déclarations de retrait de la plate-forme de la part de certains développeurs.

La consolidation du marché aurait-elle déjà commencée ?
    




Sdl at Google London

Sept. 14th, 2009 19:53 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/870 — updated on Apr. 12th, 2019 11:17 exists for 15 years & 7 months ago

Was a good day, really.




Lingua: what simple ideas could improve programming languages?

Sept. 10th, 2009 19:30 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/869 — exists for 15 years & 7 months ago

You certainly don't want yet another general purpose programming language, do you? Neither I do as many programming language are available out there, ranging from full production language to "experimental" ones.

My favorite language pick mostly depends on the platform I want to target for a given project: PHP is my preferred choice for Web development while Objective-C 2.0 is what I use when I design iPhone or Mac softwares; C++ is the one I take when I want to recycle former code portions I created in the 80s and 90s and Java for the code I produced in the past decade.

Sometimes, I want to evade from the day-to-day routine, when want to I give a try and use others languages I never get a chance to incorporate into production projects. For example, I recently enjoyed Python to test Google's cloud system -- aka App engine, to cite one.

But frankly, I have no time to dive into all the languages exist -- such as Scala or others -- and I probably never have; what a pity.

Anyway, from my productivity perspective, I should have use one and only one language I'd like for all purposes I cited so far, and for my future needs, I mean my future platforms or devices I'd surely want to program for.
You know how cool it would be if it exists one language -- The Language -- that you can program once and port everywhere, as the native language of those devices.

Though this is and remains a pure dream, I've taken a few days to think about what could be such a language and what should be the required feature it have to expose.

The answer is Lingua, a new class of language, not only the one which offers memory management, VM, object-orientation and the like, but also the one that implements two simple ideas: dialect support and language to platform translation.

Notion of dialect: abolition of the Babel Tower curse

You certainly know about the Babel Tower story: at that time, all humans on earth was sharing the same and unique language. Humanity was became so organized that they decided to threat God supremacy by building the Babel Tower so high that they could reach God himself and become as Big as Him. While God acknowledge that their efficiency was drawn from their organization, He decided to as many different languages as the number of tribes so that they could not longer communicate each others as they did before. This simply stopped the building.

Since then, we all speak a different language and frankly that don't help building software either. The current situation in a team is that we chose the same language -- say the Objective C -- and develop with it regardless the staff member's native language. And they all say:

if (c>10) {
	// some code
}
else {
	// some code
}

If I were french -- which I am actually -- I would preferably typed the equivalent code in french:

si (c>10) {
	// some code
}
sinon {
	// some code
}

This simply put, is the fundamental of Lingua: it offers the capacity to be translated on the fly to match the programmer's language.

When a french programmer types lingua source code, he might preferably use the french dialect, while a chinese programmer, staff member of the same team, might prefer to use the chinese lingua dialect.

While the french programmer loads a source file from an english programmer, his text editor -- lingua aware -- simply translate the language keyword and displays the source code in the right language.

(Franca) Lingua is an object-oriented language I have designed with the essential objective to match human cultural differences in that it can indifferently use any dialect.

Lingua simply "compile" into your platform!

And you know what, you can yourself implement a new platform effortless.

How it comes? programming languages are dialects as well! Yes, the dialect notion can simply be extended and you can define a PHP dialect or an Objective-C dialect and ask Lingua to export into it! It's that simple!

Lingua project status

Within a few days of thinking and programming, I manage to build the core syntax of Lingua -- being close of the C family languages syntax which almost everyone knows.

I wrote the syntax description and the related engine so that you can quickly implement any syntax feature you'd want.

As per now, you can switch the dialect from a range of language including: french, english and greek -- it's only a matter of translation.

And finally, I implemented two exportation dialects: PHP and Objective-C.

I wrote a couple of very small examples of code and tested it into PHP and Objective-C and proved the idea to be useful and this is why I decided to share this idea with you with the hope someone would take it and implement dialects in a production language, who knows.

Of course, beyond this proof of concept, the Lingua project would require much more energy to be put into it whenever I wanted to use it in the real life.

Last but not least, dialects solve some important issues but not all issues! What about the chinese comments in my french source?




I quit MobiLuck.com and go ahead for new adventures

July. 21st, 2009 17:38 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/868 — updated on Nov. 22nd, 2018 02:07 exists for 15 years & 9 months ago  Content not available in English.

After supporting MobiLuck.com for more than 2 years, I decided to move forward.

If you offer a great opportunity with smart people I will be very pleased to join and help you fit that challenge; please let me know -- find my contact info on my resume

Stéphane de Luca CTO looking for a job

PS: Don't be afraid, in the real world I'm nice :-)




Marychard™ Technology for iPhone®: Preview

July. 18th, 2009 20:05 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/867 — updated on Nov. 16th, 2018 20:26 exists for 15 years & 9 months ago - .

Marychard™ for iPhone now supports import for Collada file format.




Marychard™ Technology for iPhone®: 3D and networking

July. 18th, 2009 19:57 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/866 — updated on Nov. 12th, 2018 12:50 exists for 15 years & 9 months ago - .

Marychard™ Technology is a all-in-one hi-performance set of tools and runtime code dedicated to the iPhone® and iPod® devices.

Written in Objective-C 2.0 for Cocoa, the technology is made of the following components:
— a runtime environment ;
— a set of tools to produce highly-optimised data for the iPhone®.

Runtime libraries

Runtime libraries are made of 3 different components that can be used separatedly or in concert:
— hi-performance rendering of complex 3D objects and animations ;
— physics engine: it integrates physics model over time in realtime so that you can simulate rolling balls or whatever you want, linked to the iPhone® sensors such as accelerometers ;
— game engine: it maintains actors lifecycle thru your game session ;
— multiplayer engine and protocol : with SDLTP 2.0 — the TCP-based protocol dedicated to MMO games and persistent environement — you can develop any simple or advanced multiplayer games you might think of., including MMOs. The server side is developped in Java J2SE as a set of distributed modules that cooperate to handle high-loads.

Production tools: SdlImage® TEN

Thru the new version TEN of the long-lived SdlImage™ technology, Marychard performs the following set of operations:
— imports Collada files and generate iPhone® optimized runtime data files to be displayed on the device, still handling objects hierarchy and animation ;
— optimizes and boosts your set of textures to make your 3D realtime visual much better than you never seen before, without extra work!

Keep posted…




PHP supports UTF-8 characters in function names!

Apr. 8th, 2009 13:14 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/864 — exists for 16 years & 3 weeks ago

While reworking a function that basically dumps the PHP stack when a crash occures, I came accros an interesting things I silently complain about for the past few years: why the hell I cannot write a function name with accents in there?

Well, the dream comes true in PHP 5.x, here you are, see the function Mélody_είναι_συμπαθητική () which mixes both french accents and greek caharacters -- says: Mélody is friendly.

<?php
// additional code
	
function Mélody_είναι_συμπαθητική($arg="avec un long long long argument qu'il faudrait raccourcir un peu") {

	print dumpPHPStack(false);
	print "nn";
}

function main($arg1, $arg2) {
	print "En PHP 5.x on peut appeler des fonctions ayant des accents...n";
	Mélody_είναι_συμπαθητική("avec un long long long argument qu'il faudrait raccourcir un peu");
}

main('here', "we go");
?>

Which outputs the following:

PHP STACK DUMP
| #	| Line #	| File name										| Function call	
| 1	| 102	| /Users/stephanedeluca/Desktop/phpdump.php	| dumpPHPStack (false)	
| 2	| 109	| /Users/stephanedeluca/Desktop/phpdump.php	| Mélody_είναι_συμπαθητική ("avec un long long long argument qu'il faudrait raccourcir un peu")	
| 3	| 112	| /Users/stephanedeluca/Desktop/phpdump.php	| main ("here", "we go")	

I also tested right-to-left characters such as arabic and it works!

PHP STACK DUMP
|#	|Line #	|File name										|Function call	
|1	|82		|/Users/stephanedeluca/Desktop/phpdump.php		|dumpPHPStack (null)	
|2	|87		|/Users/stephanedeluca/Desktop/phpdump.php		|mélody◊صوفي ()	

I'm really happy about this.




moo.com: printing business cards... deception![UPDATE2:resending]

Mar. 25th, 2009 23:32 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/863 — updated on Nov. 22nd, 2018 02:12 exists for 16 years & a month ago

Recently I gave a try to moo.com, an oline service that can print business cards for you and others things.

The site looks pretty good and the user interface is quite simple. So I decided to give it a try.

I created this colourful card, a recto and a verso with a good resolution:

moo.com quickly print and shipped the cards and I received it about one week after I ordered. Alas, the result is quite poor, look at it:

As you can see -- the color is really over saturated and the teint is yellowish!

The print resolution itself is okay -- when you see the cards.

I dropped a mail to them and wait for an answer. I keep you posted.

[UPDATE Fri. March 25 2009] Apparently, after looking at the issue, moo.com decided to reprint the cards. I REALLY APPRECIATE THEIR EFFORT. They are very quick at fixing issue. That's a good point. Let's see the result.

[UPDATE Tue. April 1st 2009] Just received a mail where they say that the first print had suffered from a technical printing issue and the reprint looks goo. He sends it to me. Goood! Can't wait to see it.




Allégeance au Roi -- Louis XIV

Feb. 18th, 2009 00:38 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/861 — exists for 16 years & 2 months ago  Content not available in English.

Je lisais ce soir le dictionnaire de l'Académie française en sa première édition -- daté de 1694, et je fût quelque peu surpris par l'épître, dont je vous livre un cours extrait. J'ai pris soin de le "traduire" en français de ce siècle pour vous en faciliter la lecture, citoyen !

Quand je pense que l'on entend encore que la République française est une monarchie... Je vous en laisse juge.

Épître à destination de Louis XIV :

« [...] Cet ouvrage est un recueil fidèle de tous les termes et toutes les phrases dont l'éloquence et la poésie peuvent former des éloges ; mais nous avouons, Sire, qu'en voulant travailler au votre, vous nous avez sentir plus d'une fois la faiblesse de notre langue.
Lorsque notre zèle ou notre devoir nous ont engagé à célébrer vos exploits, les mots de valeur, de courage et d'intrépidité nous ont parus trop faible ; et lorsqu'il nous a fallu parler et de la profondeur et du secret impénétrable de vos desseins, que la seule exécution découvre aux yeux des hommes, les mots de prévoyance, de prudence et de sagesse même ne répondaient qu'imparfaitement à nos idées.
[..]
Comment exprimer cet air de grandeur marqué sur votre front, et répandu sur toute votre personne, cette fermeté d'âme que rien n'est capable d'ébranler, cette tendresse pour le peuple, vertu si rare sur le trône, et, ce qui doit toucher particulièrement des gens de lettres, cette éloquence née avec vous, qui toujours soutenue d'expressions nobles et précises, vous rend maître de tous ceux qui vous écoutent, et ne laissent d'autre volonté que la votre.
[...]
»




I love typography at large: do you know that accents appeared in 1740 in french?

Feb. 3rd, 2009 23:19 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/860 — exists for 16 years & 2 months ago

If you ever wondered when accents appeared in french... l'Académie française used the accents for the first time in 1740 with the 3rd edition of the dictionary:

L'Académie s'eſt donc vûe contrainte à faire dans cette nouvelle Edition, à ſon orthographe, pluſieurs changemens qu'elle n'avoit point jugé à propos d'adopter, lorſqu'elle donna l'Edition précédente.

Letters J and V were introduced a 22 years before in 1718 with the 2nd edition of the dictionary in order to clarify the pronunciation of words that were respectively composed with letters I and U.

Long s -- i.e. the glyph ſ -- disappeared from french in 1780 and was replaced by the s.

All this occurred only 250 years from now.




MOBILUCK.COM: SOCIAL NETWORK FOR GEOLOCALIZED MOBILE PHONE

Jan. 28th, 2009 14:10 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/859 — updated on Nov. 13th, 2018 00:43 exists for 16 years & 3 months ago

In May 2007 I have joined the startup MobiLuck.com as the Chief Technology Officer (CTO). This startup is focused on geolocalized social network for mobile phones.

Closer to my friends: geolocalization and social networking.

Users are geolocalized automatically so that they benefit from advanced features such as find the nearest indian restaurant or meet handsome people close to them. Users receive SMS alerts when their friends come close.

Our technology is carrier-independent as we have developed an original and the service works worldwide as it is available in more than 10 languages including chinese, arabic and hebrew.

Traffic explosion: I.2M users & 35M pages/month

This LBS friends finder service has attracted more than 1.2 million users (June 2009) since its launch in August 2007.

Currently the service recruits an average of 2K to 8K users per day as per the current trend.

By end of Q2 2009 we saw our traffic doubling every 3 months which hit 35 millions pages per month!

Technical environment

Server side: clusterization of the application

The server-side development is based on LAMP: Linux, Apache, mySQL and PHP.
The service is distributed throughout a cluster of servers (ranging from duo core 2 with 4Gb of ram to octo-core with 16Gb or RAM).

Each box is given a role -- and only one every time is possible:

  • front server: run the Web server (Apache2)
  • back server: run a mySQL instance

In order to face the traffic explosion we have, I recently clusterized mySQL itself and switch to a Master/slave replication on two octo-core servers. I migrated to mySQL 5.1 from 5.0.

Client-side: iPhone and Facebook

- Client-side development in xHTML and xHTML Mobile
- iPhone development in Objective-C/Cocoa: geolocalisation API, networking and communication with the back-office
- Facebook app development: enable facebook user to run mobiluck from within Facebook

Web-services

We interface with many third-party through web services: Twitter, Yahoo!, Google, Maporama, SMS brokers, advertising agency, cartography, geocoding & reverse geocoding, etc.

Advertising platform and service wide monitoring

The business model relies on ad distribution based on users’ profile and localization. We integrate miscellaneous advertising agencies and distribute ads on a per country or per profile basis in order to maximize our revenues.

Our system embeds an home brew monitoring system and statistics tracker that enable us to conduct the business and take decisions in an agile way.




The True Story of Unix Shell 'IF'

Jan. 28th, 2009 13:16 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/858 — exists for 16 years & 3 months ago  Content not available in English.

I came across an issue with one of my server script while I was giving it a refresh this morning. The script is a backup script that lays on every single box of my cluster which purpose is to make the backup of each box in regards of each individual box role in the cluster.

So I which to (pseudo) code the following:


thisbox = gethostname

if thisbox is a front server then do backup front files

if thisbox is a back server then do backup databases


Which I too much quickly translated in shell script as follows:


HOST=`hostname -s`

if [$HOST=='ns6511']
then
# do somthing
fi


And guess what? you're right, it doesn't work. Shell complains as follows (HOST contains 'ns651' on this box):


/home/mobiluck/backup/mlo.backup.sh: line 28: [ns6511: command not found

It simply shocked me in the very first seconds I read this report, but quickly felt as Newton did with his "Eureka".

What you might consider as a pure sheel syntax -- the square brackets -- is not actually! So what's this?

[ is a linux command -- I mean an executable file which you can see by doing this on your own box:


# l /usr/bin/[
-rwxr-xr-x 1 root root 29K aoû 28 11:59 /usr/bin/[

Alright, [ is a command. So what? Why the hell my script fails?

It fails because I forgot to put blanks between the command and the arguments! Hence the command it though I was interested in was [ns6511.

In fact $HOST, ==, ns6511, ] are the options of [ command.

So insert all missing blanks between the command and its options and all will work as expected.

Finally the correct syntax is obviously as follows:


HOST=`hostname -s`

if [ $HOST == 'ns6511' ]
then
# do somthing
fi


Hope this reminder pleased you and this learning session just proves something important: how Unix -- which, at first sight, could be considered as a deprecated technology of the 70s -- is really not. The answer is probably: simplicity.

And simplicity here means power and evolution.




S.T.O.R.M.: back in memories

Jan. 19th, 2009 22:56 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/857 — exists for 16 years & 3 months ago

Yvan got in touch a few days ago about the Saturn SKU of S.T.O.R.M. one of the game I created in 1996. He wanted more information about it. And as does a great jobs I wanted to let you know that Yvan maintains a site about all Sega-based games called http://www.segadatabase.net which compiles tons of information about those games.




Sansévérino, live album at théatre des bouffes du nord: a gold nugget!

Dec. 16th, 2008 12:23 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/849 — exists for 16 years & 4 months ago

Yeaaaaaah!

Hey guys, last june I was at the concert and was remarquably impressed by this performance. New songs and new style -- back to the root: all songs revisited!

Get to iTunes to see this album

And now, the live album is out on iTunes and is really really great.

I tell you that this album is simply the best of his production! I urge you to order it and enjoy right now, you won't regret it, I give my word.

Check out my concert photos below:

Sansévérino concert




iPhone development: how to rename a project in XCode 3.1

Dec. 9th, 2008 12:06 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/847 — updated on Dec. 16th, 2008 13:04 exists for 16 years & 4 months ago

Programming a new system or platform always makes you start from existing code snipets or even sample project for you to experiment with.
As you put much and much time on it, you often end up with a project that does not have to do any longer with the original sample. And you probably want to somewhat rename it with your final app. So here we go, here is a small process to do that with xcode projects version 3.1 -- but surely works with different version.

All the steps:

  1. quit xcode
  2. rename the old folder to the new name -- in this example say oldproject to be renamed to newproject, do that straight from the finder
  3. still with the finder, get to the folder newproject and rename the files oldproject.xcodeproj and oldproject_Prefix.pch to newproject.xcodeproj and newproject_Prefix.pch respectively
  4. delete the folder build
  5. run xcode and open newproject.xcodeproject
  6. open the window Project|EditPoject Settings and clik on the Build tab
  7. find the Product name from the list -- it appears in bold, and edit with the value: newproject -- note that it might be originally empty tough
  8. take textmate and load the file *project.pbxcode" from the file newproject.xcodeproj which is actually is a folder
  9. search for the string "oldproject". Do that manually please, don't use the the replace option form textmate.
  10. any time you find oldproject just retype newproject on it. There is an execption though. It is useless to change the delegate names such as oldprojectappdelegate. But as you probably want to to so, you'll do that eventually straight form xcode itself.
  11. save this file and swtich back to xcode.
  12. xcode asks for refrshing the project.pbxcode, just tell yes.
  13. clean all targets and build and go.
  14. everything works with no hassles.
  15. last optional step: use xcode to rename all delegates files -- don't forget to do that in the related code and classes.



What do I need 500Gb for in my laptop or why being geek does not pay

Dec. 4th, 2008 15:39 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/846 — exists for 16 years & 4 months ago

Just curious.

Why and what my hard drive space is currently used by.

I recently upgraded my laptop and stuffed my MacBook with is 500Gb brand new hard disk drive.

Once everything moved from the former disk, I am only 167Gb of free space!

So what my 300+Gb of information are used for?

Ok, ok, I have:
- 70Gb of iTunes stuffs (music, movies, etc.)
- 6Gb that holds my 60K+ photographs in Aperture
- 40Gb used by iMovie HD to store my own movies.

But it still misses 180Gb.

Ok, ok, I'm a geek, I mean a real one, programming almost 100% of my life, night and day. So is it possible my source code fills this up???

I prove it.

- Take a standard but fast-typing professional typist who can achieve 45 words/min.
- Say that is me -- allas, I'm not that fast I'm afraid...
- Say I am able to work night and day, 365 days a year -- allas, that's pretty much me :D
- Say I use an simple, back-to-the-roots, old-early-loving-days editor -- that's mean you only got what you typed on your disk, not that tons of crappy microsofty-bin-stuff trash

How much I can fill my disk with for my long life -- say I will be there 120 years after I'm born. Don't laugh, my grand mother as already 94, and she's pretty well!

- 45 * 6 = 270 bytes / min -- yeah, I use UTF-8 encoding, typing in english and french assuming a 6-char word length average
- 1440*270 = 388800 bytes / day, that is 388,8 kb
- 365*388.8 = 141.912 Mb / year
- 120*141.912 = 17.03Gb

Ok then. During my looong life I will be able to fill only 17Gb of disk space! So what do I need 500Gb??????

PS: As I'm on it, how much my typing is worth?

Say I'm hired for a constant 120k$ a year -- yeah, that's nice, thank you.

Every single byte I write worths : 120/141,912 = 0.08 cents.

Mmmm. I should make something else for my living... writing songs?!




MobiLuck October figures show a great jump

Nov. 5th, 2008 14:58 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/845 — exists for 16 years & 5 months ago

This month shows a continuing acceleration of our main indicators and I'm very proud of the team!

Figures to keep in mind: 10M page views -- showing a 20% increase MoM, 250k unique visitors, 360k members!

Worth to note is the realease of our Web site update, have a look at it: www.mobiluck.com




How my data lasts thru times... or simplest, cheapest, most efficient way to make backups

Nov. 3rd, 2008 12:38 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/844 — exists for 16 years & 5 months ago

I habe been discussed the best way to keep his data safe and accessible anytime anywhere you are with my friend Fred (fredbrunel.com) last week.

He exposed that we required to have some kind of duplication to an external drive, but this caused him some trouble.

My way to handle this is pretty simple.

For years now (I mean since 1990 basically), I am always keeping all my data in one location, in one HD. That is, my laptop internal drive.

As I am equipped with a MacBook on Leopard, I use time machine to make "realtime" duplication on an external drive that stays at home 100% of the time, while i carry my macbook all the time in my Crumpler backpack. The external is currently a USB2 1Tb WD Book drive which I bought for a mere 170€ if I remember.

The only point here, is to cope with the ever growing disk space required by the data over years.

My solution is quite straight: every 6 months or so, I simply buy the biggest internal drive on the market and replace the one I currently have. This way I increase of about 50% the disk space every 6 months. THe cost of a disk is typically always the same 130€. And you have to replace it by your own, which is quite easy operation that takes 10mins to say the truth.

To make the transition really seamless, I just make a time machine backup, shutdown my macbook, replace the HD and boot from the external drive using the last time machine backup. It takes a while to restore the HD, but you can have a beer in the meantime (or anything you think's best suited to you).

Once this is completed, your setup is ready for duty. And I keep the former internal HD in a safe place offsite as a rescue backup.




Linux bash enigma: ls |wc

June. 19th, 2008 17:59 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/835 — exists for 16 years & 10 months ago

While working on an administrative shell script for our mobile location-based social networking service http://m.mobiluck.com I came accross a weird issue. Let me explain what I want first.

I am analysing incoming ads hits on our service, data mining the apache log file. I wanted to use a simple script in bash.

The point is to display how I grep the file for answering a question, and then display the result of the grep.

But as I came accross an issue, I will generalize it with this very simple script:

#!/bin/bash
c='ls |wc'; 
echo How many files in this folder:
echo "$c"; 
`$c`

I was expecting the following results:

How many files in this folder:
ls |wc 
      21      37     535

Unfortunately, I've got the following:

How many files in this folder:
ls |wc
ls: |wc: No such file or directory

Turning on the debug mode I've got the following:

+echo How many files in this folder:
How many files in this folder:
+ c='ls |wc'
+ echo 'ls |wc'
ls |wc
++ ls '|wc'
ls: |wc: No such file or directory

It appears that bash add simple quotes where it finds blank spaces. How it comes?

Any idea how to fix this?




Wow, an IN-FUSIO EGE phone is using mobiluck.com!

June. 5th, 2008 16:00 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/832 — exists for 16 years & 10 months ago

Wow, amazing... I'm pretty sure most former IN-FUSIO workers will be pleased of that; here is the indian daredevil user's HTTP user's agent:

117.97.147.37 - - [05/Jun/2008:15:08:19 +0200] "GET /ads.leads.php?page=intro&channel=Buzz-Flir-IN-1 HTTP/1.1" 302 - "-" "MOT-L7i/AAUG2103AA 08.02.06R/10.21.2005 MIB/BER2.2 Profile/MIDP-2.0 Configuration/CLDC-1.1 EGE/1.0"



Analysing an HTTP connection between a Nokia 6600 and a production apache server

June. 4th, 2008 10:28 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/831 — exists for 16 years & 10 months ago

I have come accross an issue about one phone that is not handling cookies correctly. In order to understand where the bug was -- either the Nokia 6600 or our server, I needed to trace the apache response header sent by my service http://m.mobiluck.com. I wanted to check the Set-Cookie headers.

First of all, looking at apache trace feature didn't give me much help, I've basically found nothing.

I turned to a low-level tool, tcpdump: this is a tool that enable root to capture any UDP/TCP packets right from the network interface of the server.

Installing tcpdump is pretty easy on debian, just do the following:

$ apt-get install tcpdump

I was most interested in capturing HTTP protocol. But our production server handles hundred of thousands users communication so we must filter the right connection out of all this "mess".

Looking at the apache log, you can easily found the IP of the Bouygtel GSM gateway, in our case it was: 80.214.249.1

As I am interested in HTTP only protocol, I filtered this by using the "port http" option.

Here is the command line I used to capture the HTTP communication:

tcpdump "port http and (src host 80.214.249.18 or dst host 80.214.249.18)" -s 0 -A -w nokia6600ascii.txt

The "-s 0" option tells tcpdump not to drop some packets. The "-w " just ask tcpdump to write the capture in the specified file. And the -A tells it to ASCIIfied the dump.

As a result I've got the following catpure:


$more nokia6600ascii.txt

?ò???|QFHެFF?NF?ӣ*E8?@2?]P??[y"P0?P??O?`NP
?J|QFH?FF^L??NE8@@??[yP??P"W??0?P??Я?
Gb`?J}QFH?8^LBB?NF?ӣ*E4?@2?`P??[y"P0?P?W???O?|?
??Gb`~QFH8????NF?ӣ*Ex?@2???[y"P0?P?W???O??j
??Gb`GET /?page=intro&channel=Buzz-Flirt-IN-testmcs HTTP/1.1
Host: m.mobiluck.com
Accept: audio/wav, audio/x-wav, audio/basic, audio/x-au, audio/au, audio/x-basic, video/mp4, video/mpeg4, 
video/3gpp, application/vnd.rn-realmedia, audio/AMR-WB, audio/AMR, application/sdp, audio/sp-midi, audi
o/x-beatnik-rmf, audio/midi, application/java-archive, text/vnd.sun.j2me.app-descriptor, application/vnd.wap.wmlc, 
text/vnd.wap.wml, application/vnd.wap.wbxml, application/vnd.wap.wmlscriptc, text/html, applic
ation/vnd.wap.xhtml+xml, application/xhtml+xml, , application/x-wallet-appl.user-data-provision, application/vnd.met.ticket, 
application/vnd.symbian.install, audio/x-pn-realaudio-plugin, audio/x-pn-realaudio, audio/mpegurl, audio/x-mpegurl,
 text/x-co-desc, application/vnd.oma.dd+xml, application/vnd.nokia.ringing-tone, text/vnd.symbian.wml.dtd, application/java,
 video/3gp, audio/rmf, audio/x-rmf, audio/x-midi, application/x-java-archive, application/vnd.oma.drm.message, 
application/x-x509-ca-cert, text/plain, text/X-vCard, text/calendar, text/x-vCalendar, text/css, image/*
Accept-Charset: iso-8859-1, utf-8, iso-10646-ucs-2; q=0.6
Accept-Encoding: gzip;q=1.0, identity; q=0.8
Accept-Language: fr
Cookie: PHPSESSID=40551094df2c98748c211e7ddb053b73
Cookie2: 
User-Agent: Nokia6600/1.0 (4.09.1) SymbianOS/7.0s Series60/2.0 Profile/MIDP-2.0 C~QFHJ?BB^L??NEH@@{?[yP??P"W??0?V6??i,
Gb??~QFHp????NF?ӣ*E??@2?
P??[y"P0?V6W???O?.?
??Gb`onfiguration/CLDC-1.0
Profile: "http://nds1.nds.nokia.com/uaprof/N6600r100.xml"

~QFHy?BB^L??NEI@@{?[yP??P"W??0?V???h?
Gb??~QFH?xx^L??NEJ@@v?[yP??P"W??0?V????
Gb??HTTP/1.1 302 Found
Date: Wed, 04 Jun 2008 08:25:34 GMT
Server: Apache
P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: nbvisit=1; expires=Fri, 04-Jul-2008 08:25:34 GMT; path=/; domain=m.mobiluck.com
Set-Cookie: lastvisit=1212567934; expires=Fri, 04-Jul-2008 08:25:34 GMT; path=/; domain=m.mobiluck.com
Set-Cookie: rigoler=-1; expires=Fri, 04-Jul-2008 08:25:34 GMT; path=/; domain=m.mobiluck.com
Set-Cookie: AB_ID=1212567934-2213; expires=Fri, 04-Jul-2008 08:25:34 GMT; path=/; domain=m.mobiluck.com
Set-Cookie: AB_firstvisit=1212567934; expires=Fri, 04-Jul-2008 08:25:34 GMT; path=/; domain=m.mobiluck.com
Set-Cookie: AB_nbofvisit=1; expires=Fri, 04-Jul-2008 08:25:34 GMT; path=/; domain=m.mobiluck.com
Set-Cookie: AB_lastvisit=1212567934; expires=Fri, 04-Jul-2008 08:25:34 GMT; path=/; domain=m.mobiluck.com
Set-Cookie: AB_color=gray; expires=Fri, 04-Jul-2008 08:25:34 GMT; path=/; domain=m.mobiluck.com
Location: /?tapeshdah=40551094df2c98748c211e7ddb053b73&redirect=intro&channel=Buzz-Flirt-IN-testmcs&&sdlredirfrom=intro
Content-Encoding: gzip
Vary: Accept-Encoding
Content-Length: 27
Content-Type: text/html

Note that in the dump there still are some binary chars not filtered out by the -A option, but those chars doesn't prevent us to read the HTTP code.

As you can see, we've got the Set-Cookie headers that shows the server has the right behavior.

Should we conclude that this phone with the given firmware mishandles HTTP protocol?

Looking further at the dump, I noticed that the PHPSSESID was correctly handled by the client. So why? This cookie ws written without any expiration date:

Set-Cookie: PHPSESSID=c407903eb49ce37939be4758962edf09; path=/

This is odd. I then modified my own cookies, now passing them without expiration date, and guess what... It works!

Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Set-Cookie: lastvisit=1212570224; path=/ Set-Cookie: rigoler=-1; path=/ Set-Cookie: AB_nbofvisit=2; path=/ Set-Cookie: AB_lastvisit=1212570224; path=/

And the next equest from the phone had my cookies:

Cookie: PHPSESSID=f26738a51499297134b51e8e8195a59a; nbvisit=1; lastvisit=1212lZF3BB^L??NE4?@@?@[yP??P??? V??????g? Ge?Đ'1(lZFH^dd?NF?ӣ*EV?@2?;P??[y??P???? VƀO??} ?'1(Ge?T570218; AB_ID=1212570218-bdad; AB_firstvisit=1212570218; AB_nbofvisit=1; AB_lastvisit=1212570218; AB_color=reset

Looking at the RFC didn't make me know if I did something wrong. If you know why, tell me in the comment section.




Preparing for celebrating 200K mobile uploads on MobileZoo.biz

Mar. 20th, 2008 00:51 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/827 — exists for 17 years & a month ago

MobileZoo.biz if close to reach a great milestones: 200,000 mobile DNA uploads! I see the traffic steadily growing since the last 3GSM event and I changed to an even more powerful hosting solution in order to face the traffic.

As MobileZoo gaining extra popularity every day, I can't wait to reach the 500K DNA uploads! This represent 72 manufacturers and more than 1,000 device models.

Currently 40 developers use MobileZoo embeded technology to track their application deployment statistics. You can do it as well, it's free.

DNA UPLOADS
196500

DEVELOPERS
40

MANUFACTURERS
72

HANDSETS
1058




BoursoMac.com : l'actualité du Mac, de l'iPhone et d'Apple en général

Sept. 2nd, 2007 16:35 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/815 — updated on Mar. 11th, 2008 00:54 exists for 17 years & 7 months ago  Content not available in English.

BoursoMac.com a déjà  5 mois d'existence. Malgré sa jeunesse, il attire un nombre de visiteurs en progression constante.

Le site est publié en français et en anglais. Et nous recherchons des rédacteurs de langue chinoise parlant également anglais ou français. Si vous êtes un passionné des produits Apple, et que l'aventure vous intéresse, contactez-moi directement depuis le site.




People and places close to you!

May 23rd, 2007 09:24 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/814 — updated on Mar. 11th, 2008 00:46 exists for 17 years & 11 months ago

I've joined Mobiluck as CTO, the start-up that brings geolocalization features to social networking for mobile phones and other devices.

We've been hard at work to prepare the launch of our next wide-range localization service: Mobiluck Online.

With Mobiluck Online you can be localized in realtime (if you decide to) so that the service proposes you a list of people and places close to you: for example, you're in a walk in the street looking for a good indian restaurant in a city that you don't know.

You get to the "radar" tab and select "restaurant" category to get a list of these fine restaurants; for each you get how far you are and a short description. You can click on any of those places to get more details informations and a map of the area that you can zoom in.

Similarly, you can know how far your firends are from you, or look for a pure beauty close to you (filter on girls that have a photograph).

How about getting in touch with her as she's at 500m from you? No prob, click on the message icon next to her mini profile and enter in a chat session: "Hi, how are you?". Who knows, you'll probably get a chance to meet her for real.

All these features, and more, require a bunch of cutting edge technologies: we are localizing people and places both in a short-range (bluetooth technology) and wide-range detection area; all these technology are with patented. I will tell you more about our tech in a future post.

For the moment, prepare for the launch!




I left In-Fusio last month, now focusing on consulting activity and mobilezoo

Jan. 8th, 2007 11:35 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/824 — updated on Nov. 20th, 2018 01:13 exists for 18 years & 3 months ago

I’m no longer working for In-Fusio. Now I act as a consultant for mergers and acquisition operations where I provide audit, help and advisory to companies facing changes in their business and/or for the sake of mergers and acquisition operations.

I still work hard on my project MOBILEZOO.BIZ providing valuable market information for mobile developers and the rest of the industry.




CONSULTING FOR MERGERS & ACQUISITION

Jan. 8th, 2007 11:28 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/826 — updated on Apr. 27th, 2019 23:13 exists for 18 years & 3 months ago - .

Since November 2006 — when I left In-Fusio/MobileScope — I am now a free-lance consultant and I provide audit, help and advisory to companies facing changes in their business and/or for the sake of mergers & acquisition operations.

I’ve been focusing on the wireless mobile industry, and especially on three different operations. Find below a short description of each missions.

As you may know, these operations are kept secret hence I won’t disclose any names nor real figures:

  1. North America and Europe preys research and profiling for the sake of M&A operations: I’ve been making an analysis of a list of 10 potential preys in the content at-large that make sense in term of business complementarity or the regional location with the acquisitor. For each company I wrote a description of their business, found the market share, analyzed the revenue and gross. Analyzed the technology background and described and analyzed their main assets. A conclusion give advise about their strengths, the relevance of its strategy and what assets will support its future value on the market and the description of the competition that may threaten them in the future.
  2. Audit and strategy relevance for the holding company: I’ve been making an audit of a game company in the field of the wireless gaming on mobile phone. The purpose of the mission was both to analyze how they currently address the market and how relevant would be their strategy for the short/middle term strategy. I have reviewed their product line, the cost structure and price position. Additionally, I have reviewed their staff composition and skills. My report pointed the fact that they’ve wrongly chosen to dramatically narrowed their market. My advise was to develop a range of titles that would enable them to target 100% of the market while almost keeping 100% of their original market.
  3. Propose a company for a LBO in the field of wireless services and content: I’ve been making an analysis of a 10+M$ LBO pre-project. Market analysis, revenue and cost structure, key strengths and weaknesses was extracted from their business.
    Technology in-depth description. Propositions were made about how to restructure the company and to improve the cash flow generation and increase the margin.

Stéphane de Luca




http://browseAs.com/regex: Regular expression at your fingertips

Sept. 10th, 2006 20:44 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/360 — updated on Sept. 12th, 2006 01:17 exists for 18 years & 7 months ago - .

The web has numerous tutorials about regex, so here is not yet another one.

It's about a tool to design and test your perl regex for PHP or java programming for example.

You dont need to download or install anything, it is online, here: browseAs.com/regex

You type your regex, your optionnal replacement string and the source text and it will perform the test for you. If you want to rework you regex, it's simple, just reedit it, everything is already in the form...

Very easy, very useful.




Welcome to my corner

Sept. 10th, 2006 12:50 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/359 — updated on Feb. 25th, 2019 01:33 exists for 18 years & 7 months ago - .

My web site essentially relates to my professional activities.

You will certainly notice that almost none of the article and the content in general is translated into french. Don't see anything else than the lack of time. As most of the subject interest technical people around the world, I use english as the main language for this site.

On the blog section, I post some articles that link to actual products I've designed and released, such as the pool of internet services dedicated to webmasters and programmers browseAs.com

Again, thank you landing there.

Cheers,
Sdl




Having trouble with HTTP connections? I've got the tool!

Sept. 10th, 2006 10:16 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/358 — updated on Sept. 11th, 2006 16:58 exists for 18 years & 7 months ago - .

Online Telnet service helps you deal with HTTP client/server connections as well as sockets (TCP). HTTP tuning and debugging becomes a breeze, straight fom the web.

Any programmer knows how difficult could be to solve HTTP connection issues and fix bugs. From my own experience -- Web based programming in PHP, Java and J2me programming -- I designed a free tool that will help you in this area. Get to browseAs.com/telnet.php ...




And you think your site has a chance to be indexed in google.com with a decent rank?

Sept. 5th, 2006 18:26 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/357 — updated on Sept. 10th, 2006 11:40 exists for 18 years & 7 months ago - .

You certainly have been successful in indexing your site on google.com.

As a consequence, you think that when the search engine bot reads your site pages, it indexes it accordingly. And that's right.

But if you anyone can quickly find your site when he googles for related words, you're probably wrong.

These days, there are zillions of sites currently indexed, and it is common to have thousounds of related site found by google when you type in common names.

Therefore, how can google know that your site is more relevant for a given set of words, than an other one?

And that is the key questions.

All search engine have developped complex algorithms to answer the question. And then, sort sites accordingly.

What characteristics SE use for building your rank:
- the number of link that links to your site.
- the list of words on a given page and their rarity or most precisely, their attrackness at the moment
- the number of pages your site has

So how is the chance for your site to be in the first page. I would say very little. And here is why:

- Your site counts few link to it, surely less than 100.
- It has a in ecces of 100 pages or mybe 2 or 3 hundreds pages
- You speak about some topics, it's specialied.

So what do some site for being so higly ranked? You'll tell me yo'ure gonna write tons of article, ask your friends to link to your site, and you'll make it...

Fool you are... Have you ever heard about cloaking? Or SEO aka Search Engine Optimization?

The first place to look at is... crawlers. You know, this little spice of softare that automatically browse your site every now and then, colelcting the content or your pages.

What if you were serving special content to this bot so that you let it know that you have thousands pages on valuable content?

Here we are: Cloaking...

Many web sites are presenting a different content to search engine bots than to human browsing.

They do that in order to optimize their index rank, using one of the most famous SEO (Search Engine Optimization) technics. Some are creating thousounds of page, on-demand with kilobytes of highly ranked words and expressions.

Others "simply" hide text taking advantage of the intrecasie of HTML. And for example, a company A includes many references of its competirors product name...

That's not fair.

What to do then?

As you certainly don't cloak, you need a tool to control your competitor site.

I wrote this tool, and I let you use it ffreely. It's browseAs.com

This unique service lets you to browse your competitor's Web page or any Web site by taking the identity of one of your favorite search engine.

This way, you become ubiquitous. And you discover this hidden world above suspicion...

Go ahead.
Sdl




Mobile Earth; Supports Collada

Aug. 5th, 2006 01:37 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/351 — updated on Nov. 12th, 2018 23:47 exists for 18 years & 8 months ago - .

I have recently added the support for the collada file format: this enable me to have better detailed obejects in the game. In addition, I can now get any object published on Google 3D Wharehouse.




A 3-CD-set Game

July. 29th, 2006 19:47 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/349 — updated on Nov. 13th, 2018 01:35 exists for 18 years & 9 months ago - .

The game features about 1 hour and a half of video, plus 13 sound tracks.
The game won the Fiction prize of the World Festival of Underwater Pictures in Antibes, France, in 1996.
As I don't have a numeric version of the movie, the following is an attempt to reconstitute it by taking snap shots from the game:

Intro

Prolog:

Arrival on departure site:

Arrival at HP1: the first underwater station

Getting to the broken drill head

Arrived at HP5 underwater station:

HP5:

A Monacus…

…is causing an the accident:

Need to explore with STORM through the passage:


Discovering Atlantis and Mikonos

The probe detects unknown life:

Briefing:

Meeting Atlantis:

Ennemies are coming:

Atlantis history explained:

Medusa attacks:

Mikonos lose:

Mikonos wins:


Game Over




Article ID 896: This content is not yet published
Article ID 871: This content is not yet published
Article ID 908: This content is not yet published
Article ID 862: This content is not yet published

Site Index

July. 26th, 2006 20:47 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/347 — updated on Apr. 25th, 2019 16:10 exists for 18 years & 9 months ago - .

global $db, $siteid;
$object=”“;

$query = “SELECT id, title, subject, refurl, published, authorid FROM columnarticles where site_id=’$siteid’ ORDER BY title ASC”;

$arts = $db->querySelectAllRows( $query);

reset($arts);

$n = count($arts)>>1;

$alphabet=”| “;

$i=0;
foreach ( $arts as $art )
{ if (!hasAccessRightsToArticle($art) ) { $i++; continue; }

if (empty($idx)) $idx = mb_strtoupper( mb_substr($art[title],0,1));

$nidx = mb_strtoupper( mb_substr($art[title],0,1)) ;

if ($nidx != $idx) { $idx = $nidx; $object .= “ 

$idx

“; $alphabet .= “$idx | “; }

$allTags = split(“;\s*”, $art[subject]); $tags = “”; foreach ($allTags as $tag) { $tags .= “$tag “; } //$tags = “(Tags: “.str_replace(“;”,”; “,$art[subject]).” )”;

// GET TO ARTICLE PAGE //if (ItsMe()) {print $pageurl; }

if (!stristr($art[refurl],$domainname)) $object .= “$art[title] $tags
“ ; else $object.= “$art[title] $tags
“ ;

$i++;
}

$object = “

“.$alphabet.”



.$object.”
“.$alphabet.”

“;

$common = $object;




Error

syntax error, unexpected '$tag' (T_VARIABLE), expecting ',' or ')' for /article/345

Taxonomy

July. 26th, 2006 13:25 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/345 — updated on Apr. 25th, 2019 16:03 exists for 18 years & 9 months ago - .

$object = "

Here we discuss about the following topics, each indexed with a collection of tags. The bigger the tag size, the more popular. Just click on the appropriate tag to display all related articles.


"; /* ---- PARTIALS ------ */ $common = "
"; $query = " SELECT tag, count AS size FROM tags WHERE site_id='".Webengine::$site['ID']."' GROUP BY tag ORDER BY tag DESC "; $tags = $db->selectAllRows($query); $maxSize = 0; foreach ( $tags as $tag ) { if ($tag[size]>$maxSize) $maxSize = $tag[size]; //$total += $tag[size]; } reset($tags); foreach ( $tags as $tag ) { if ($tag[size] <= 0) continue; $r = tagWeight($tag[size], $maxSize); if (!$r) continue; $weight = $r[weight]; $size = $r[size]; $easeOut = $r[easeOut]; $percent = $r[percent]; $selected = (strtolower($selectedTag)==strtolower($tag[tag])) ? " is-danger":""; $common.= sprintf("$tag[tag] ",$percent); /* if ($tag[size] == 0) continue; $norm = $tag[size]/$maxsize; $percent = 100*$norm; //$size = (int)(200+200.0*exp(20*$norm)); $size = max(200,(int)(900*$norm)); $title = $percent < 0.1 ? "<0.1%" : sprintf("%.001f %%", $percent); $common.= "$tag[tag] "; */ } $common .="
"; /* ------------*/ $object.= $common;



1994: My book about Rolling Your Own Professional Video Game back in 1993

July. 23rd, 2006 22:09 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/344 — updated on Nov. 18th, 2018 05:26 exists for 18 years & 9 months ago - .

During 1993 and 1994 I wrote a book for Addison Wesley about how to create a professionnal video game on PCs.

At that time, you had to know a lot about the underlying hardware and to be fluent in assembly language and C or C++.

Reminding the Intel 386 and its 32-bit protected memory model for instance? In that mode, you were able to address all the memory at once, avoiding to deal with EMS (Extended Memory System).

And what about the various graphics card that were on the market at that time? Each chipset had to be adressed specifically with the relevant asm code and port management. And by 1993, no much — not to say none — information was available, including on the Internet.

The sound cards? Do you remember the Gravis Ultra Sound?

And what to say of the interrupts for DOS?

Read the excerpt (in french only) to see how — in this area, Bob Dylan was true — things have dramatically changed.

Download the excerpt




Mobile Earth: Preview update

July. 16th, 2006 23:47 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/342 — updated on Nov. 16th, 2018 22:26 exists for 18 years & 9 months ago - .

Here is a movie of the technology update captured straight from the engine: I was piloting the jet, chasing a Boeing B747 regular flight.




All my computers

July. 15th, 2006 21:31 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/352 — updated on Oct. 31st, 2018 16:19 exists for 18 years & 9 months ago

In 1980, computers were somewhat odd in the people mind or life; for most of us, a computer was certainly more a SF concept than a tool or an usual object.

In this page I will try to gather some of the information about this holly period, and I start with a the list of all the machines I have had or still have.

1980-1982: Texas Instruments TI-57

"",
content="

TI processor.

RAM: 50 instructions, 7 memory slots.

Assembly instruction set.

Price: 100 € (600 FF)

" >



Commando trailer

July. 6th, 2006 00:37 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/337 — updated on Nov. 16th, 2018 16:50 exists for 18 years & 9 months ago - .

This video is a cut scene from the first mission video intro:




Nightmare Creatures 3: the animatics of the game

July. 2nd, 2006 21:36 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/336 — updated on Nov. 13th, 2018 01:05 exists for 18 years & 9 months ago - .

These animatics are the next step after the design and execution of the storyboard.

Animatics are used to validate both the camera moves and general timing of the movie, prior the making of the actual realtime cinematic.

Enjoy!

Game introduction

Day One: The legend of the Raven

Day One: Meeting Boris

Day One: The Hung Man

Day to Night: Sandra's transformation




Nightmare Creatures 2: the videos of the game

July. 2nd, 2006 21:36 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/341 — updated on Nov. 12th, 2018 23:08 exists for 18 years & 9 months ago - .

Enjoy all those video from the game we made!

The hospital

The Circle

The Castle

Paris

The Museum

Le Père Lachaise

The Catacombs

The Eiffel Tower

The End




Mobile Earth: Preview an early version

June. 30th, 2006 23:47 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/334 — updated on Nov. 12th, 2018 23:44 exists for 18 years & 9 months ago - .

The first movie I captured on June 26th 2006 straight from the engine, featuring a jet hovering of Nice next to the mediterranean sea coast.

Some early screenshots

Below are some screenshots I like the most. currently I did not apply textures on jets.

Data Structure Management

Satellite photographs are processed in order to fit LOD requirements.




Project X Making Off

June. 30th, 2006 23:30 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/332 — updated on Nov. 13th, 2018 00:57 exists for 18 years & 9 months ago - .

Server module World Manager with built-in rendered engine

June, 2005: First instance of the PC client

Note that I used my favorite set of video game heroes: mario all stars! All thee place-holders will be replaced as soon as possible by final artworks.


h3. Network statistics

Implementing networking support requires you tune bandwidth usage and minimize latency issue. Realtime statistics help you a lot in this area.

Dead reckoning and network latency

I developed a dead reckoning system in order to smooth path prediction for other player's avatar.
Here you can see some path trails.

July, 2005: Building for 3D model support

During 3D model support development, I used some visual augmented reality to improve debugging and fine tuning.

Increasing networking towards massively connected system

As you can see, I've developed a set of embedded tools that continuously profile both networking performances and topology.
The circle — where the HUB is at the center — shows the distance from which the client is in term of roundtrip (in milliseconds).

Client module for the Desktop

Richer world: Adding some shaders, programming real physics engine

A couple of shaders have been added for handling special rendering. A new warp replaced our former place-holder.
For the ground I've added a texture splattering system for giving details without consuming too much memory.

Richer world: Programming real physics engine

The world has been updated with “real” 3D altitude for the ground. Water have been integrated, with a nice light-reflection system.
My favorite yellow duck has been integrated as well, with the programming of a physics engine (floating, falling, popping for the duck).
Cars now benefit from a real physics capable of : collisions (car/ground & car/objects), car jumping over hills, skid and lose of control.
In order to make it even more fun, jumps are really expressive and the car shakes its "nose" when you try to climb big slopes.

Adding actual 3D assets

The addition of the final artworks — that I wanted to be very rough and non-realistic — gave the final touch to this demonstrator of the ProjectX technology and service.

Client module for mobile handset equipped with NVidia GoForce 4500/4800

April, 2005: Reusing priorly developed j2me 3D engine

As a first attempt full 3D to support MMO connectivity, I recycled a Mario Kart™-like engine that I once wrote for the J2me platform.
I've added the Connectivity set of classes and I could see the numerous avatars wandering in the world…

December, 2005: Developing MIDP2 version

The 2D versions derives its code from the desktop version for connectivity. The rest of the game is written from scratch, using MIDP2.
This version features a top view camera, closer to the final version.
For the purpose of rapidly demo this version, I used Midtown Madness car sprites as placeholders.

August, 2005: First grips on NVidia GoForce DevKit

I have received a devkit from NVidia which is a Motorola linux-based mobile phone prototype. It embeds a GoForce 4500 chips capable of 1.5Mtri/s.
I've developed from scratch an opengl 3D rendering engine in C to benchmark actual usable performance. It rocks!
I've put 32 cars, 4K tri each. Plus the background (3D plane of 4096 quads). It sustains 30fps.
Of course, the final game has to be written in java j2me and must support JSR-184.




2005: Web-to-Wireless MMO Technology

June. 30th, 2006 23:06 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/331 — updated on Nov. 20th, 2018 09:35 exists for 18 years & 9 months ago - .

In 2004 I had designed and created the http-based multiplayer system that enables mobile phone owners to play peer-to-peer games thru a central node such as NxN game-play is possible.
I choose to address only HTTP connection because at the time, it was the only connection available to ALL phone models.

*In 2005, I proposed to the company to push the envelope one step further, and I've designed and created a second generation system that will enable both PC players and mobile phone owners to play altogether on the same MMO; that's what we call now "web-to-wireless" gaming

Defining the actual objectives

Market segmentation is probably one of the most challenging issue to address when talking about wireless gaming development.
Though more than 800 millions brand-new handsets have been sold during 2005 — probably 1 billion will in 2006 — the installed based still need to be addressed in order to maximize the ROI, hence capturing the largest possible market share.
Another issue of importance is certainly the notion of scalability: this is the term to define the difference nature and performance between many different handset models. Some handset have small screen, others larger ones, some has some 3D capability, some support TCP connection others don't, etc. It is then important to categorize our game feature in order to know what features are required by the set of targeted handsets.

Keeping that in mind, I added three goals for the project:

* Cross visual representation: Enable both 3D and 2D game play of the same game: as most of the mobile handset models only supports 2D display, it was a MUST to support those in addition to 3D capable models.
* Cross Network, cross operators: Enable 3G networks but also GPRS. Despite their very different performances, we should be able to capture as many as possible model handsets. We also want that users play altogether regardless of their operator.
* Cross Platform: Enable both personal computers (internet) and mobile phones (radio network) to play altogether, seamlessly.

Building the 3D world and the PC engine

The game implements a catch-the-flag game play. As a player, you will be provided with a car, appearing somewhere in the world. Your goal is to catch the flag — a cup in the final game — and keep it as long as possible,
avoiding any chasing cars trying to steal it.

PC users — take PC as a general term as we support any platform running Java™ — will benefit from realtime 3D graphics as long as 3D capable mobile such as SonyEricsson JP-6 phones for instance.
Non 3D capable phones will implement the 2D view of the same game.
3D players will benefit from 3D perspective view of the scene in a third-view camera, while 2D players will benefit from a orthogonal, top-view camera.

The world database is designed in such way that it must provide all the information in an efficient way to all type of clients being 2D or 3D for PC and 3D for mobiles.
MMO world are very large and cannot be held in memory as a whole: for this reason, it must support streaming, that is required parts are being downloaded from servers on-demand.

The world is made of a grid of square modules: Each module is tiled-based in the x, z plane — 64×64 quads —, the altitude y is taken from a height field image.
As the world is potentially very large, a tessellation system generate primitives on-demand, JIT, depending on an efficient LOD system.

The collision data-structure is similar to the one for the geometry — with a LOD system — and are sub-sampled on-demand, JIT.
Obviously, a cache system assists the tessellation and sub-sampling processes in order to maximize memory cache system and minimize computation.
When possible VBOs are used for objects on systems that supports it, which decreases memory bandwidth requires between the maim memory to the video card RAM;
otherwise I use VA.

Extreme programming, the best way to organize yourself or a team, by far

As you may already know, I have always used extreme programming to develop my softwares. And once again, I defined a series of micro milestones throughout the development stage.
This way, every week I can show off or demo the technology to the numerous visitor I daily have at my desk! In addition, fitting my own weekly objective, I can demonstrate new features or improvement visually every week.
I started off with existing assets, my Mario™ database, as place holders. They are 2D sprite projected on a transparent cube, as you can see on the first screenshot on the right.
For the background I firstly used a zero-height field which makes my ground looks like a pure plane. But of course, it's made of 4096 quads in order to keep with the real speed performance.
Each square is mapped with a tile taken from a relatively "large" tile map, each quad can have any rotation or flipping operation.

Network infrastructure

Designing the network protocol and developing an implementation

Based on the experience I had for MMO design — and mainly on the previous system — I decided to develop a brand-new protocol that would have the following features:

* high performance: we need to handle hundreds to thousands simultaneous connected people
* high extensibility
* built-in diagnostic system: the system must enable any human or software administrator to detect and prevent drop of performances — due to overload — and future failure such as a hub or bridge shutdown.
* built-in auto-optimization and auto-fix system: the system must auto-regulate bandwidth usage and have fallback systems in order to overcome any failure automatically

Additionally, the system must nicely handle software cycles as follows:

* automatic software update, without requiring service shutdown,
* game data deployment, still without requiring any service cut.

All these requirements have lead to the creation of both:

* the SLLTP protocol: data packet binary protocol with built-in routing functionality. It is well suited for wireless network as long as internet or lan connections.
* a non-concentrated system architecture where each server module has it's own independency, with a software buses that enable communication paths to be created on-demand.

Server modules have built-in hot-upgradability functionality: if an upgrade is available, a module can upgrade itself in a snap, without requiring the infrastructure to stop. Once up and running again, it connects to the bus and resumes.

Infrastructure features

The SLLTP protocol enables for administration communication between module. A set of control messages can go through the MMO in order to demand things to be done to a set of others module or a given target.
This is the base for diagnostic: administrators can connect from one point to another one, including game clients running on an handset. You can for instance require a module to exports its internal terminal to your screen...
This human communication goes thru the chat console from a game client or a server module front-end.

A large set of commands is available:

* whosthere, whois, shutdown,
* ping, traceroute, uptime,
* export console, export graphics,
* spawnbot, etc.

Load balancing, by design

When a client or a server module tries to connect to the infrastructure, it is first routed to authentication servers, in order to determine rights and access.
Once it is granted, the system requires the load balancing server to chose an IP and a port to an available machine that could take the connection: the IP and port is returned to the client or server module along with a temporarily session ID.
Upon reception, the module disconnects and reconnects to the given IP and port and authenticate itself with the session ID before the session expires.
This solves most of the load balancing issue.

Hiding latency with the protocol

Solving car/car collisions throughout the network

One of the biggest issue in MMO is to synchronize event over the network in a manner that it is unique for all clients and server modules.
In my case, I wanted any player to steal the flag that an opponent could hold.
Unfortunately, instant notification does not exist other a network because the time it takes to transports a piece of information — the latency — is non null. As a consequence detecting a collision in a module at time t are not likely to be detected at the exact same time in an other module that is supposed to handle the exact same situation.
A consequence of that could be a terrible switching of the flag between the two cars during the short period of time where they collide each other.
I implemented a notion of hierarchy of message that can be sorted by any module attached to the bus. This solves most of the difficulties.

Reducing the effect of latency

Latency causes the notion of simultaneous event being a non-sense.
Though you can have different level of performances which depends on the nature of the technology behind, there no miracle technique you can look forward...
Wireless networks perform particularly bad in this area: UMTS can give you 600 ms latency while GPRS give you 100 to 1200 ms !
Hiding latency is accomplished by message transaction: a kind of finite-state-machine has been successfully implemented and solve almost all issues nicely for this kind of games.

How to address very high number of simultaneous connections

Having hundreds of connections at the same time yields thousands of messages throughout the buses in the infrastructure.
Bandwidth usage becomes very high and we observe network jam. Server modules — especially the hub - are then saturated, yielding continuously increasing latency.
The phenomenon yields to overloaded CPUs and message saturation, blocking the whole infrastructure.

In order to limit that disastrous effect, I've implemented three main solutions:

* Buses and modules continuously control the effective bandwidth they have access to. When performances get down, they limit outgoing message emission
* The SLLTP protocol has a built-in support for "importance of message" which enable the infrastructure to reorder message delivery
* Hubs implement a saturation mechanism: when a hub detects that the bus is going to overload, it decides to trash less important messages in order to de-saturate connections. The rate of trashing depends on the actual realtime jam situation.


2D Wireless Client

The final wireless 2D version is using two sets of graphics that you can choose from the starting menu. 2D graphics have been designed from real 3D mesh that we pre rendered in 3DS Max. The resulting images are cleaned on a pixel by pixel manually.

Regarding the perception of quality the game gave to players, I noticed that lags incurred by dramatic varying network conditions was really damaging the perception of fluidity.
For this reason I have created a set of funny icons that I've asked my artist to realize. Each icon symbolize the network conditions, a system very comparable to the weather condition iconography.
Should the network condition change at any moment, a sliding icon replaces the former one to indicate the new conditions, as shown below where you can see the "sunny face" which denotes the "good, or no problem" state.

Sunny Cloudy Rainy Stormy


I also innovated in the field of car control. Most car games — if not all — choose a relative control system, where you are place "in" the car: you must press the left arrow to go on the left, regardless of the actual orientation of the car on the screen. Maintaining the left key pressed makes you draw a circle.
Rather, I've programmed an absolute system, where if you press left, you go on the left of the screen. Unlike the previous system, maintaining the left key pressed makes you draw a line in fine.
Clearly, this system yelds superior playability, and moreover, is better adapted to casual players because it is natural.

3D Wireless Client

NVidia GoForce 3D Chip

For this specific part of the project I partner-shipped with NVidia in order to have early access to their forthcoming GoForce 4500/4800 3D graphics hardware accelerator.
In June 2005, I received an electronic board featuring a Motorola phone running under a linux kernel and featuring a GoForce 4500 chip and equipped with a QVGA color screen.

The product has to be connected to a PC running a 7.3 red hat in order to have access to network and disks.
An ARM C compiler has to be used to produce OpengGL ES 1.0 C code; unfortunately, at that time no VM with JSR-184 was available. Few weeks later, NVidia sent me a C upgrade implementing OpenGL ES 1.1 and giving access to shaders which I experimented as well.
I created a stripped down port of my J2se code, and in a couple of days, I had 32 cars running in the world. I could experiment the hardware and benchmark real-world performances.

JSR-184 J2me version for SonyEricsson W800i

By the end of the year, I received a pre-version of the W800i which is equipped with the same GoForce 4500 chip.
Unlike the board, the handset is running a Java Virtual Machine and implements JSR-184.

After many experiments, I was convinced that many facts was dramatically impacting the performances I had on the board with straight C:

* First, Java is a source of performance losses. Ease of use, flexibility and its "program once, run anywhere" motto has a price.
* Second, most of the phones have poor memory access throughput, and this mobile — though comparing well against others existing handset — do not avoid this penalty. Note that this handset implements JP-6, the SonyEricsson Java Platform. By the time of writing — June 24th 2006 — SonyEricsson just released the new JP-7 platform which dramatically improve this area.

3GSM 2006, Barcelona: Putting all together

On April 2006 a Barcelona, MobileScope/In-Fusio demonstrated Project X on its booth; people were invited to play a catch-the-flag persistent game with either their mobile phones or the PCs.




It's Mr Pants Multiplayer

June. 30th, 2006 21:49 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/330 — updated on Nov. 13th, 2018 01:01 exists for 18 years & 9 months ago

It’s Mr Pants features the famous Microsoft and Rare’s license.
The mobile version is derived from the Rare's Nintendo GB Advance It's Mr Pants sku. The multiplayer version is only available from In-Fusio for most of the handset types.

"It's Mr Pants" is © and ™ or ® by Microsoft Corp. and Rare Limited and published by THQ — The mobile version is designed, developped and published by In-Fusio SA.




Francis, the magic bean, Day 11

June. 30th, 2006 12:01 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/327 — updated on Nov. 16th, 2018 23:20 exists for 18 years & 9 months ago

This is a funny thing: this plant —a white bean— is capable of growing more than 3” per day (10 cm).

I started up a project: video record the growth from the seed up to the plant.

This is a test project: I use my Apple MacBook and its embedded cam to record 3 frames per day, which I compress as a video with Apple IMovie 06 in mpeg4 format.
The video is uploaded to YouTube. The code is then embedded in the page for you to watch to the video.

With the experience I’ll get here, I will remake the video with a professional SLR




2006: Mobile Earth GIS Technology

June. 18th, 2006 23:41 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/333 — updated on Nov. 20th, 2018 09:22 exists for 18 years & 10 months ago - .

You certainly already know Google Earth, a system that enables you to see satellite photographs of any location on earth. It proposes you both 2D representation and 3D.
This service is accessible on desktop, but unfortunately, nothing is available for your mobile phone.

Mobile Earth is a technology dedicated to the mobile wireless industry: it’s purpose is to provide mobile industry with an innovative technology that enables users to play in a real time 3D environment; the graphics are true-life representation of cities and landscapes that shows off "infinite" unmatched level of details.

Stéphane de Luca chez In-Fusio le 23 juin 2006

Mobile Earth 3D: First part

I started the project during late April this year, with the objective of providing a streaming technology capable of displaying interactive realtime 3D with unmatched quality for hi-performance 3.5G wireless networks: HSDPA.

A handset user will play a game — and later will use Geographic Information System-based services — that displays very high quality backgrounds based on real world satellite photographs of earth.

The idea behind is to have a server that renders the world in realtime 3D at the location of the avatar of the player. The world is rendered with a very large z-far value — typically more than one hundred kilometers, hence the sensation of extremely large persistent world.

Every single frame generated by the engine is compressed on-the-fly to feed an upstream video.
On the other end, an handset is connected to the server via a TCP connection over a HSDPA radio network, itself connected to the Internet. HSDPA is the 3.5 G network capable of 1Mbps downstream bandwidth. HSDPA deployment are currently starting up in France.

The video is then streamed down the handset, and the video decodes the stream and display the background at the phone resolution — typically QVGA, 320×240 pixels.

As a result, the player sees an incredibly hi-quality graphics.

The player can moves his avatar up, down and right left while moving. This information is send up to the server. Upon receipt, the game engine interprets the player's move and places the camera accordingly, such that the upstream video is altered.

As a result, the player feels that he can freely moves in the background and perform interactions.

Welcome to GIS and its gigantic memory space

Playing such a game requires very high precision in order to see building, houses and even cars on high way for example.
Partnering with IGN, I was provided with a set of very high resolution satellite photographs: four pixels per square meter. At this resolution, we can clearly see cars, but also parasols on sunny on beaches!
Unfortunately, the over side of the coin is the very large size of the related files. For example, the size required to store all photographs for one department is 60 Giga bytes.
I will then need 6 terra bytes to store satellite photographs for France — equivalent to 1257 DVDs!

Stage I : Hi performance realtime rendering

I started off with a LOD-based system for the management of the world.

I set up a server that processes data by implementing a data-flow from the IGN photographs and altitude images to the engine database. 60 Gb is necessary to hold "Alpes Maritimes" original data.
— Altitude: Altitude information is contained in a 38Mb 8-bit indexed TIFF image where the index indicates the level of altitude with a resolution of 50 meters; I slices the image into many 2048×2048 pixels square with a down-sampling algorithm.
— Photographs: the satellite photographs are converted from 2000×2000 pixels RGB TIFF images into 2048×2048 pixels RGB jpeg, from which I generate a set of 10 mipmap images. At the moment, this takes 20+ minutes to be generated on a P4 2GHz, for the small portion I use for the game.

The rendering engine for the moment uses only a small subset of the department information. The LOD system command the tessellation on-demand in order to minimize the required bandwidth.

Each frame is captured from the frame buffer and compressed as jpeg files on the disk, for a second process in charge of the streaming.

Stage II : Video Streaming

The set of generated images are compressed on-the-fly and send down the handset by using a PacketVideo server.
This project has to prove the real performances of HSDPA technology that offers a theoretical bandwidth of 1Mbps! Meanwhile, the application is scalable and will also support UMTS networks.

Stage III : J2me client

The client needs to playback video in a background layer while displaying interactive assets on top of it. It therefore requires a correct handling of alpha blending or punch through at least.
Oddly enough, there is no solution for doing this, at the time of writing; this is why we turned to a different approach, and chose to use a flash player where video playback is supported; the chosen solution is the Bluestreak client.

This solution raised two important issues that impact us: firstly, rendering vector-based graphics is less efficient than simple bitmap, and secondly, the result is less realistic, which deserves the goal of the project to render real-life images.
Whatever, we go for it.

The game displays a space craft that must pass thru 3D big "donuts" bonuses laid out along the chained-cubic spline path.
The player can "freely" move within the virtual tunnel. But in the first version, he cannot go anywhere in the world.

Stage IV : Liberté, liberté chérie

In this stage, the player will be totally free to go anywhere he wants. He shall be able to explore the whole background.
Player's inputs will be uploaded in realtime to the server thru a TCP connection. Upon receipt, the engine will take the necessary action to perform what was required by the player — including moving the camera — hence generating new video frames.
The big issue here is that we have 6 seconds of buffered video on the client, which causes us a 6 seconds latency. For this reason, the client anticipate the background move by applying the 3D transformation on the spacecraft itself with the background still in the previous position.
When frames begins to downstream, the client start to compensate the move of the background by canceling anticipated transformations already applied to the aircraft. For this purpose, I have embedded 3D transformation information as meta data within the graphics frame themselves.

But this is for the next stages… be patient and enjoy the first images and video on the right…




Our life as a programmer will never be the same.

June. 1st, 2006 20:47 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/340 — updated on Nov. 18th, 2018 02:28 exists for 18 years & 10 months ago

Our life as a programmer will never be the same.

Remembering twenty-four years ago — back in 1976 — the first time I get in touch with what I will call a computer; it was a Texas Instrument TI-57, a calculator equipped with a simple numeric display and a maximum of 50 programmable instructions. It was right after xmas, at school, a friend of mine showed me the calculator, saying something like: "look at that!" and while pressing a strange "RUN" key, the TI to display this incredible thing: 9, 8, 7, 6, 5, 4, 3, 2 and 1! This automatic count down somewhat blew up my brain!

This event triggered the beginning of my interest in computing at-large. But at that time, I was miles away to imagine from what one could achieve, years after years. And even the most anticipating fiction never matched what actually appeared years afters.

My first mobile phone was purchased in 1996, ten years ago; I was then completing my first PC, Saturn and PlayStation project in Paris. The handset was small enough to make people in the streets stop by and stare at me when I was passing a call.
I understood at that time that one day, people would use their mobile phone to play, connected each others to a gigantic MMO game via the air. But I thought it would take tens of years to come up.

Once again, things arrived more rapidly than expected: only ten years after, the industry is about to reach 1 billion of new handsets sold this year. How it comes? Innovation. Building new markets thanks to new products or technologies.

That's fine.

But what's really cool, is that I am in the place trying to push the envelope one step further, participating to this course, spreading new ideas or usages. New technologies.

But what could be new technologies if they are not streamlined enough and not really made for casual users? While the world of the mobile industry was already fast paced, there wasn't that much innovation since the appearing of 3G/3G+ network. Same ideas were simply recycling again and again.

By chance, the promising 3 billion users market definitively attracted new entrants. Once again, Apple came up with a great design along with well defined features with its iPhone, and simply redefined almost everything in the industry. Amazing.

But how does this is likely change our programmer's life? Well, where others simply put Java ME (90% of the market) or Symbian (5%) or even Windows Mobile on their devices, Apple did choose not to sacrifice the performance and homogeneity; they simply embedded their own system - Leopard - and did provide the Xcode environment. But more importantly, they came up with an unique and incredible simple distribution scheme: developers choose the price for their app, and Apple take care of everything via iTunes - distribution and payment - for a mere 30% of the revenu.

Nice!

Sdl, Paris

Written in June 2006, last updated in march 2008.




Realtime optical motion capture

Nov. 11th, 2005 23:18 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/277 — updated on Nov. 13th, 2018 01:17 exists for 19 years & 5 months ago - .

The main character of the game was an angel therefore most of the animation was difficult to capture:

A great deal of imagination was involved and we used a lot of tricks to achieve the capture: for instance, when we captured the take off:

Eight optical infrared cameras system

You can see two out of eight infrared cameras that enable the system to capture the trajectory of the balls glued on the actor:

Acting

This character was supposed to float in the air. You can see me shaking a base on which the actor is sitting.

Fighting

The actor is ready for a strike.

By the way, one can see on the rear, two cameras as well as the super computer starting capturing the movement.




1997: Asterix demo

Nov. 11th, 2005 23:18 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/343 — updated on Nov. 18th, 2018 03:17 exists for 19 years & 5 months ago - .

During the development of Commando I had to make a one week demo of Asterix for a pre-sale project for Infogrames Entertainment, back in 1997.

This project was targeting PCs and PlayStation One, so I took advantage of the engine I was developing: I plugged some artworks I have been made by an external studio in Paris and made use of motion captured animation from my former project Angel Quest.

I programmed an RTC (Real Time Camera) intro for the game, featuring a night and day management cycle, for which I also programmed a realtime fire effect.

I included some sound effects and in a couple of days I completed a short demo, where you were able to wander in the small village.

Look at the following screen shots:




Realtime Movement Optical Capture Capture

Nov. 11th, 2005 23:18 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/335 — updated on Sept. 10th, 2006 11:39 exists for 19 years & 5 months ago - .

The heroes of the game was an angel. And, obviously, this made the capture really tough.

Most of the movements were difficult to capture and we did find lots of tips to make it; here is for example, how we captured the angel take off.
You can see two out of eight infrared video cameraswhich capture glowing balls path.
Jeu d'acteur et combat
This character is supposed to float in the air. One can see me slowy shaking the base where the actor is sat.
The fighter is ready for a capture of the strike.
The cameras and the super computer in the back starts the realtime analysis of movements and the recording.



1998 and 2005: Porting my game engine from PlayStation to PC

Nov. 11th, 2005 23:18 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/902 — updated on Nov. 18th, 2018 03:19 exists for 19 years & 5 months ago - .

During the development of Commando and the one week demo of Asterix for Infogrames Entertainment, back in 1997, I spent one weekends and over the night work sessions to port the game engine to the PC.

WarStation™: First port, en route to Windows

I started with a port to Windows in C and DirectX, converting all the PlayStations libs (including sodlib, libGPU, etc.) and achieved the port in late 1998.

I ran Commando with no issue with great speed performances.

WarStation SdlImage: Second port, en route to Java

Seven years later, I ported the whole game engine to Java J2ME and succeeded to run it on the iMac Power PC and the Macbook 12” at incredible high performances performance.

I dropped DirectX of course, and ported the 3D code to openGL.

And during the July 2005 summer holiday I’ve had completed the port and ran the Asterix demo I wrote 8 years before for the PlayStation.

This demo became one of the unit test for my SdlImage™ video game visual booster technology.

Look at the following screen shots of Asterix/Java:




Have a look at some 1995 project archives

Nov. 11th, 2005 21:54 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/274 — updated on Oct. 29th, 2018 16:55 exists for 19 years & 5 months ago

Here are some issues of the project magazine I was publishing to the team during the development.



You can read issue reprints here:



USS S.T.O.R.M description

Nov. 11th, 2005 21:44 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/273 — updated on Oct. 29th, 2018 16:36 exists for 19 years & 5 months ago


  • Dimensions: Height: 10”, Length: 30”
  • Power Plant: Magnetic Hydro-Dynamic Propulsion
  • Maximum speed: 30 knots

S.T.O.R.M. can carry 3 aquanauts. It has multiple weapons, and an R.O.V. drone submersible.


Weapons Description

Listed by destructive power from lowest output to maximum destructive power.

(a) Laser beam.

10 KiloJoule pulsed laser. Extremely responsive, the laser shoots forward.
(b) Neutron beam.

The unidirectional beam shoots forward like the laser. It has a 10 TeraJoule output, and can annihilate most objects quickly and effectively.
(c) Dual Plasma beams

Two cannons permit you to shoot both upwards and downwards simultaneously.
(d) Torpedoes.

Self powered, they have highly destructive power and long range.

(e) Photon bombs.

They are tactical weapons due to a limited area of use. But they are the most powerful of S.T.O.R.M. weapons.



U.S.S. S.T.O.R.M. Equipment

Nov. 11th, 2005 21:38 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/272 — updated on Oct. 29th, 2018 16:48 exists for 19 years & 5 months ago

S.T.O.R.M. can only carry a limited quantity of ammunition for each weapon type. But on the way to the drill head, you will be able to find ammunition refill packs.

(f) Mechanical arm (g) R.O.V ( Remote Operational Vehicle) (h) Anessa
It's a useful part of the S.T.O.R.M. submersible. It enables you to collect ammunitions packs, oxygen refill packs, etc. or allows you to handle any object you will find on your mission.
But be aware that this highly technical part of S.T.O.R.M. is also very fragile. You could loose it.
This mini submarine is remotely guided. It has laser beam weapons. It can be use in a hostile or narrow area where neither the S.T.O.R.M. nor the diver can enter. This is the most advanced computer technology in existence. Its holographic memory bank technology offers you highly accurate advice and reporting on any problems that may occur. It has a female personality interface, and you can rely on it completely. Your best friend in a battle.



Delivering one of the distributors

Nov. 6th, 2005 10:13 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/261 — updated on Nov. 18th, 2018 04:15 exists for 19 years & 5 months ago - .

Recruiting new dealers was one of the strategic action to lead in order to enforce the position of the company.

On the right, is a former electronic shop with; his manager wanted to expand his business and revenus so that he signed an exclusive dealer agreement with me: I did provide wholesales, technical support, coaching and training.




The minister delegated to Industry visited us

Oct. 21st, 2005 11:31 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/249 — updated on Mar. 31st, 2019 13:33 exists for 19 years & 6 months ago

François Loos — minister delegated to Industry — visited In-fusio this Friday as a demonstration to his support for the French video game industry.

Indeed, after UbiSoft last week, it is with turn IN-FUSIO—the leader of the play and services associated on mobile telephone—to be put at the honour.

Gilles Raymond—the founder of the company— accommodated, and with all the team, presented the company as well as the many projects in progress to him; and in particular, "ProjectX"—my project— a MMO mobile cross-platform technology for desktop/cellulars.

Let us recall that the ministers François Loos and Renaud Donnedieu de Vabres—Minister for the culture and communication—commonly decided to set up for the beginning 2006, as soon as the European Commission allows it, a tax credit intended to support and develop the French creation of video game.

This additional support, which should mobilize 30 million euros as of the first year, supplements the selective support brought by the Funds of Assistance to the Multi-media Edition (FAEM).

See the official press release from the Minister of the Industrie{title:"Press release only available in French"}.




August 2005: a machine learning 3D app to crack the lotto

Aug. 25th, 2005 15:00 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/903 — updated on Apr. 22nd, 2019 15:00 exists for 19 years & 8 months ago - .

During the summer 2005, I spent a month working on a way to improve my chances to win the French lottery and in August, I came up with SdlLoto.

SdlLoto: a realtime 3D visualisation with WarStation™ / Java

I used the WarStation port to Java I completed in July to develop SdlLoto.

I thought I could find a 3D visualisation that would help me in developing ideas I had.

Failling to find visual patterns

I initially thought I could find visual patterns in series of wining number, but I get to nowhere.

Machine learning: neural network and DNA-programming

Several years ago, I had explored genome programming on my HP4/CV in order to recognise letter glyphs.

For the lotto, I wanted to simulate multiple ways to draw 6 numbers and test it against all the previous actual wining draw I had in database.

I created millions of players, each picking a drawing method, and generated 1024 generations. Because the computing time was long, I made a server version of the sw and ran it on a server during the night. Once the best guess was ready I could run the 3D client version on my computer, get the guess numbers and play then for real.

In order to help tracing the whole process, I visualised the multiple genomes as a rolling bitmap image which I displayed at the bottom of the screen:

My conclusion was I really thrived to work on such a subject and learned tons of stuffs. But I never won the lottery though. No problem.




Nightmare Creatures : Third Opus

Feb. 6th, 2005 17:11 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/268 — updated on Nov. 12th, 2018 23:05 exists for 20 years & 2 months ago - .

The project started in September 2000 in the pre-design stage. In addition to the concept document of the game, the very compact team (5 staffs) released the following pre-trailer. It was intended to communicate about the game to Kalisto members as well as to the publisher community.

As soon as we received the Xbox kit, during June 2001, we did port our PC engine in less than 3 months; we produced an interactive demo of the game for the London ECTS 2001 where it received an extremely positive welcome.
Many publishers were interested in publishing the game, and finally UBIsoft did sign the contract.

Unfortunately, with the bankruptcy of Kalisto in April 2002, the development was stopped and the promising title will never hit the market.




2004: HTTP multiplayer technology

June. 30th, 2004 21:44 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/329 — updated on Nov. 20th, 2018 09:29 exists for 20 years & 9 months ago - .

Making games on mobile is somewhat diverting: on one hand you have a very limited platform to work on — which is extremely demanding as you lack almost everything: memory space, speed performance — and on another you have to make people play to your game despite all these limitations.

You find yourself being back in time, while programming `80s systems: ZX-81, TO7, etc…

But things have changed: playing gorgeous titles on PlayStation and Xbox is common. How could people play '80s titles nowadays?

Trying to answer this question leads you to a less common question: what makes a mobile phone the unique play station when compared to others?

Connectivity! In space — you connect to others players — and in time — you "wear" your phone almost 24/7.

Connecting players

Connecting players in 2004 was something challenging. You want people play altogether, regardless of their actual handset technology — java, Brew, Symbian, etc. — and also regardless their operator.

Most of the available system widely supports HTTP connections. Sockets were not always available: for example with java, only MIDP2 defines a TCP support, but unfortunately, implementation was optional.

The system had to use HTTP support then. Unfortunately, performances of HTTP connections are not really impressive. Though HTTP is an applicative protocol that lies on top of TCP/IP, it only defines a peer-to-peer connections.

HTTP is a peer-to-peer protocol

Peer-to-peer basically means that for connecting from one end to the other end, intermediate routers or servers can relay the connection to the next "hop" by choosing what type of HTTP connection is the best suited for it.

All these "hops" are time consuming. Each per creating a new socket to the next hop, and potentially check and rewrite HTTP headers.

As a result, roundtrips performance drops dramatically when compared to direct TCP connection.

Radio to Internet connection

Another issue of importance is certainly the radio to internet part of the connection.
On the operator side, you don't really have access to the infrastructure. The only thing you know is that your connection is routed by a special equipment called an APN. It is the connection to the Internet, think of it as an HTTP proxy.
Behind it, on the operator side, IPs are local. When on the internet, you basically have the operator's public IP.
Some operators block packets that would get to "unknown" server IP, and in that case, you have to deal with the operator in order it lets you pass through the APN, down to your server.

How to authenticate players on your server

When HTTP connections arrives to your front server, IPs are usually not a mean to authenticate the player. At most, you can know from what operator he comes from, if you recorded all possible APN IPs somewhere in a database.
Some APN, gently add an HTTP header extension which tells what IMEI number the mobile has; but you shouldn't count on it, as this is the exception.

You have to rely on a custom, different mechanism of your own, such as a login/password system or a smarter thing.

What type of game to expect?

HTTP connection usually gives you an average roundtrip on GPRS networks of about 2400ms. Yes, you read it right: 2 and a half second to send a small message and get a response from the server.

If you tell me you can't do any game with such a latency, well my answer is: you're wrong.
Of course, you cannot design a racing car game, where you expect realtime collision detection over the network. 2400ms of roundtrip is of oder of magnitude to make such a game.
But if you design a game that do not offers high sensibility to latency you really can make funny games.
For example, we designed a multi-player version of the Microsoft/Rare Mr. Pants license.

Mr Pants and Battle Bubble Multiplayer

Basically, Mr Pants is an action puzzle game where you have to make rectangular blocks with the pieces you get form the game by rotating them appropriately in a limited time.

Every time you complete a block, the surface it takes is cleared and you collect bonuses and points.

Adapting the game to the above-mentioned constraints, the team designed a game play that wouldn't suffer from very high latency.
First, the screen of the opponent is also displayed on the player's screen in the top right corner, in order for you to look at his progression.
Second, when you complete a block, the game send a malus to the opponent, making its time limit to shrink a little bit, thus increasing the match pressure.
This way, it does not that matter wether the malus is coming "in-time" or not. What it counts is that it arrives!

As a result, the multiplayer version is really funny, and maintains the interest over time.

Battle Bubble Battle Bubble




2003: realtime 3D for EGE

July. 30th, 2003 21:44 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/905 — updated on Nov. 20th, 2018 09:18 exists for 21 years & 9 months ago - .

In-fusio created the business of the downloadable apps on mobile phones back in 2001 with the ExEn technology: it embedded a very compact Java VM from Shlumberger plus a thin native API to provide maximum performances. This was before J2ME even existed. EXeN was deployed on more than 200 mobile phone models and brands.

In 2003, with the emergence of the first smartphones, I was in charge of creating a realtime 3D engine API and native code to embed into the EGE, the successor of ExEn.

TBC.

A preview of EGE/3D on LG7100 handset

This was the first time the engine ran on an actual handset: this was on Thursday January 29th 2004 à 09:32am.

Magazine SVM de novembre 2003

Jouez mobile technologies engagées : Après des débuts timides, le jeu vidéo sur mobile est en plein boom : “En un an, nous sommes passés de 0 à plus de 200 000 jeux téléchargés par mois”, s’enthousiasme Anne-Laure Descleves, responsable communication chez Gameloft, un éditeur de jeux sur portables. Même son de cloche chez In-Fusio, le pionnier du secteur, qui affirme compter un nouveau joueur toutes les cinq secondes. Un succès dû à la multiplication des téléphones Java. On désigne ainsi les appareils capables d’exécuter des applications programmées avec J2ME (Java 2 Micro Editionl. une version allégée du célèbre langage de Sun Microsystems. Cette techno change tout car elle permet de concevoir des jeux dignes d’une console de poche, ne pesant pas plus de 150 Ko et téléchargeables en moins de deux minutes sur les réseaux GPRS. Ainsi. Gameloft propose, dans son catalogue, qui compte une trentaine de titres, des adaptations de jeux pour consoles et PC comme Splinter Cell, Prince of Persia ou Rayman 3. Si les jeux sur mobiles se doivent d’être simples et faciles d’accès, des applications plus évoluées sont déjà disponibles. Sur Splinter Cell, par exemple, il existe des modes experts qui permettent de pratiquer l’infiltration plutôt que le tir. Et sur le jeu de course automobile IF Racing, le dernier titre d’In- Fusio, on peut courir contre son “ghost”, une voiture fantôme indiquant l’ancienne position du joueur, et l’envoyer à un ami pour qu’il puisse comparer ses performances. La prochaine étape sera le passage à la troisième dimension. Mais avant d’en arriver là, il faut que les API (interfaces pour la programmation d’application) de jeux Java pour mobiles, baptisées MIDP (Mobile Information Device Profile), évoluent suffisamment et que les constructeurs se mettent d’accord sur un standard. “Pour l’instant, chacun y va de son implémentation propriétaire”, se plaint Yann Mondon, le directeur de la communication d’In-Fusio. Voilà pourquoi cette société met en avant sa technologie ExEn, une machine Java optimisée pour le jeu, dont la prochaine mouture, prévue pour la fin de l’année, proposera un moteur 3D dédié, des fonctions sonores et multi-joueurs avancées ainsi que des animations Flash. Si Alcatel, Panasonic, Siemens, Sagem, Philips et Trium ont intégré ExEn sur leurs appareils, d’autres constructeurs comme Nokia ou Motorola y sont rétifs. Mais, à terme, tout ce petit monde devrait utiliser les mêmes technos et la 3D se généralisera. Quant aux jeux multijoueurs, ils s’apprêtent à débarquer : Gameloft met la dernière touche à une nouvelle version de Splinter Cell qui permet de jouer à plusieurs en mode coopératif. Elle sera disponible à Noël sur la N-Gage de Nokia, un hybride de téléphone et de console de jeu, dotée d’une connexion Bluetooth. A.M.

Gameloft, l’éditeur de jeux sur mobiles, prépare une version 3D du jeu XIII. inspiré de la célèbre bande dessinée, pour la fin de l’année.




Nightmare Creatures 3 : a unique video game !

Apr. 19th, 2002 14:31 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/7 — updated on Nov. 12th, 2018 20:06 exists for 23 years & a week ago - .

Want to play the best action/adventure game ever ? Have a look at Nightmare Creatures 3, the game we were creating!

Here is the team posing for the last time, having to stop the project at Kalisto:

Have a look at the 2 months of hard work we put in this 2001 ECTS demo — this is the Xbox version:

Some of the characters you would have met during the adventure:

Press coverage




Nightmare Creatures 2 : Crowley's back!

June. 10th, 2000 02:23 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/237 — updated on Nov. 12th, 2018 20:47 exists for 24 years & 10 months ago - .

NC2 is a video game developped from early 1998 to year 2000 with a team composed of experienced people, most of them coming from the previous opus team: Nightmare Creature 1.

NC2 is an action­/­beat’em up game designed and developped at Kalisto Entertainment in France for Universal / Konami and released on Sony PlayStation and Sega Dreamcast consoles.

The title is nicely sustained by Rob Zombie's action songs.

Featuring Adam Crownley, the Scientist who wants to take over the world. Will Wallace defeat the Great Bad finally?




What is a milestone?

May 15th, 2000 02:42 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/286 — updated on Nov. 13th, 2018 01:08 exists for 24 years & 11 months ago - Photo: Stéphane de Luca.

You certainly are a player; and possibly are one out of the 2 million people around the world who's alrea y played NC2… But did you ask yourself what it has cost to the team in term of efforts ? Hard work, days and nights for your own fun! That's entertainment.

I let you look at some milestones moments: Joking is always something we used to decrease the stress leve cumulated over the days before the release of the milestone…

The result of such an effort is the CD set in a jewel box unroll the story and enjoy the game...




Commando

Sept. 10th, 1998 02:41 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/239 — updated on Nov. 13th, 2018 02:46 exists for 26 years & 7 months ago - .

Commando is the video game I developped from October 1997 to September 1998 with a very small team.

The project started with the development of a prototype of the game that we developped in only 3 months.

Commando is a military action game designed and developped at Virtual Studio in France for Namco Japan on Sony PlayStation.
I started the project for some weeks when Pavlos Germidis joined me for what I believe was a great adventure.
In addition to driving the project, as always I did the 3D engine, tools and game programming while Pavlos Germidis brought the artwork design and the story pitch; he also did—by his own—the nice CGI which introduces the game.
Pips did the 3d realtime modelling and texture design based on Pavlos’ bio designs.

Many trips to Japan was required in order to aggree on the right game design and technical features to be developped, and—obviously—all the financials terms. The contract was signed in Tokio at the Namco building.

You can see me below, with the white shirt and Namco's CEO and its team:

You can see Pavlos on the right and me during the commando project:




Mars Special Ops Handbook

Dec. 12th, 1997 22:04 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/338 — updated on Nov. 16th, 2018 18:52 exists for 27 years & 4 months ago - .

Below is the Handbook we wrote for describing the game prototype and to introduce it to Namco staff.

Acknowledgments

This is the late war information report from our best commando staff. All material is classified, and disclosed to authorised people only.
Keep in mind that all this information was gathered at the price of S.G.B best staff life.

Approaching Mars

The module is dropped by the space vessel and will bounce on the surface.





Landing on Mars

Right after having being landed on Mars, you will pop from the lander module, ready to erase the enemy base.

Facing the bipod

Enemy uses high powerful bipods. One word: “keep cool…”
This enemy is not very fast though but beware, he can crash you in a snap!
You may decide to avoid it. Just run straight away or find and use a jetpack, you will then jump over it.
Alternatively you can use your weapon to neutralize it. If you do so without destroying it, you will be able to drive it!

Use you HUD to target it and shoot.

Once neutralised, run toward it and… jump on it!

You can control it and use its weapons.

Going through the rift

To pass through the rift… you have to jump on the platforms.

Don’t fall into the rift or you’re dead!

Triggering the checkpoint

You can trigger checkpoints in jumping through them.

Once done, if you were dead you will resume your mission at the latest triggered checkpoint!

Passing the laser wall

A giant laser wall blocks the way; it's no use to try to pass thru.
Rather, neutralise the bipod and take it.

Its heavy shield shall let you pass thru the lasers with no damage for you.
But if the bipod has been destroyed before, you will have to look around for a jetpack. We believe it may be of valuable help at this point.

Meeting Jack

Their brand new cybernetic warrior…

…is very impressive.

To defeat it, kill right you see, do not engage any combat!

Getting to the astroport

Approaching the space port…

…destroy these speedy vessels.

Clear’em all!

Stealing a spacebike

Hey, look at this nice spacebike!

Steal it, man…

Oh, shit! These two guys have seen me and started a chase…

The end-level Boss

Unfortunately, we have not much information about those massive gear; our last reporter was dawned killed before reaching it.

It's your job to analyse it and get rid of it
Good luck, Sir!




Angel Quest

July. 10th, 1997 02:33 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/238 — updated on Oct. 29th, 2018 19:17 exists for 27 years & 9 months ago

Angel Quest is the video game I developped from May 1996 to September 1997 for GT Interactive. This project was the first to use optical motion capture for realtime animation: we pioneered this advanced technology.

The heroes was an Angel living in a very large world: he could make use of his ability to fly to speed up its move towards the next location to visit.

Numerous characters were also there to help him find his way, giving him potential clues through interactive dialogs.

The game was developped for Sony PlayStation and PC.




Angel Quest: PlayStation screenshots

July. 10th, 1997 02:33 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/897 — updated on Apr. 5th, 2019 07:48 exists for 27 years & 9 months ago

Angel Quest was running on PlayStation on which I programmed the engine and the game in C and assembler.

All the characters were in 3D and animated through motion capture: I developped a compression tool that reduced the data stream (curve) that was moving each node of the skeleton.

The word was really huge: I had to stream all blocks silently from the CD-ROM drive as the heroes was moving: it was a big challenge due to bandwidth limitation.

A we can see in those early screen shosts the engine was running at 3O frame per sent on NTSC monitors: a big speed optimisation process had to take place!


Angel Quest on PlayStation
Sdl avatar

PlayStation screenshot

@stephanedeluca

An early preview of the game on PlayStation from 1997. #angelquest #playstation

Angel Quest on PlayStation
Sdl avatar

PlayStation screenshot

@stephanedeluca

An early preview of the game on PlayStation from 1997. #angelquest #playstation

Angel Quest on PlayStation
Sdl avatar

PlayStation screenshot

@stephanedeluca

An early preview of the game on PlayStation from 1997. #angelquest #playstation



S.T.O.R.M.: Looking for Praxilium

Apr. 10th, 1996 02:01 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/235 — updated on Nov. 13th, 2018 01:32 exists for 29 years & 3 weeks ago

S.T.O.R.M is a video game I developed from October 1994 to April 1996 with a team composed with first-time employed people.
STORM is an action/adventure game designed and developped at Virtual Studio in France for American Softworks Corp and Electronic Arts, many target platforms were addressed.

The game is a 3-CD set which includes about 45 min of CGI in two different resolutions, with about 12 different 3-part levels, supported by 12 original sound tracks composed by Christophe Zurfluh.
The game won the International Festival of Underwater Movie 1st Prize at Cannes (France) in 1996.

Some screenshots of the action mode:









Order preparation in the depot at Cavaillon

Nov. 6th, 1991 10:19 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/262 — updated on Nov. 18th, 2018 04:12 exists for 33 years & 5 months ago - Photos : Copyright © 1991 by Stéphane de Luca.

This was the preparation of a networked installation. By the time it was 486 Intel processor-based PC computers, running Windows 3.1 with a Novel Netware 386 Server.




1991: High Screen 5 app prototyping tool

Feb. 11th, 1991 23:18 by Stéphane de LucaPermalink | TrackBack: https://stephanedeluca.com/trackback/904 — updated on Nov. 18th, 2018 05:10 exists for 34 years & 2 months ago - .

During 1990-1991 I was developing for PCSoft HighScreen 5, a tool to make apps.

I was specifically in charge of HSMaquet, the app prototyping tool: 100% interactive, this interface builder was used by developers to speed up their app. They were creating the whole app screens and controllers and were able to link them with no additional code.

HSMaquet was able to generate the code to more than 20 languages, including Fortran, Cobol, Turbo Pascal, Microsoft Basic, etc. The developer could compile and link and demo his app to his customer within days.

I have found the ads in an old magazine:




Menu > First page | Previous page | Next page | Last page Page -2.8333333333333 out of 16