YAPC::Asia 2008 Tokyo - DOM manipulation by Wiimote/Gainer over HTTP

I love YAPC::Asia which is really exciting Perl conference.
At YAPC::Asia 2008 Tokyo of this week, I got first chance to give a talk in the conference.


My talk was titled DOM manipulation by Wiimote/Gainer over HTTP.
Some slides are updated from OSDC.TW 2008's one.
I'll give this talk again for YAPC::NA 2008 in Chicago next month.


The room was almost full and had some standees at last!
Thank you for coming to listen my talk.


The venue of the conference was Tokyo Institute of Technology at Ookayama, Tokyo.
It had many trees in the campus and was really nice venue.
The number of attendees was counted as more than 500 people.
The committee announced that the conference cost about three million yen (about USD 30,000) in total.
I'd love to say thank you for organizers and volunteers.

As an aside, RECRUIT Co., Ltd. was one of the gold sponsors of the conference. It was honor of us. The Media Technology Labs have a plan to back up such open source related conference and projects.
 
* Translated version of the original post of this is here.

Announcement: The JUI 2008 Tokyo

Today I'm proudly announcing the first JUI conference. JavaScript techs enhancing user interface on the web is getting more important not only for developers/engineers but also for general users. The JUI is the conference forcused on JavaScript User Interface techs.

Paul Bakaus, the jQuery UI Lead, will come from Germany. The leading Japanese JavaScript hackers will counter (welcome) him. Register now!


The JUI 2008 Tokyo

* Date: Monday, May 19, 2008
* Time: 6:30pm - 9:00pm
* Venue: 8-4-17 Ginza, Chuo-ku, Tokyo, JAPAN [map] [map]
* Host: The JUI Committee
* Sponsor: RECRUIT Media Technology Labs
* Contact: jui-committee [at] googlegroups.com
* Facebook: http://www.facebook.com/event.php?eid=11240373854

[ MAIN SPEAKERS ]
* Paul Bakaus (from Germany) - http://ui.jquery.com/
* amachang - http://d.hatena.ne.jp/amachang/
* inucara - http://inucara.net/
* iandeth - http://iandeth.dyndns.org/mt/ian/

[ LIGHTNING TALKS ] updated
* monjudoh - http://d.hatena.ne.jp/monjudoh/
* noriaki - http://blog.fulltext-search.biz/
* Yoshiomi KURISU - http://dev.chrisryu.com/
* gugod (from Taiwan) - http://blog.gugod.org/

[ REGISTRATION ] (free of charge)
http://mtl.recruit.co.jp/jui/form/
English translated version of the form is also tested and available.

[ CONTACT ]
* jui-committee [at] googlegroups.com


* Translated version of the original post of this is here.



2008.05.19 LT speakers updated

Translatable presentation with the S6 JavaScript library

For my talk at OSDC.TW 2008 in Taiwan, I have added a couple of features to the S6. The S6 is a great presentation tool developed by amachang, based on HTML/Web standards and implemented in pure JavaScript. (demo)


Writing a slide with the lib is entirely easy:
<div class="s6_fadeScale">
    <h3>page title here</h3>
    <p>page body here</p>
</div>
class="s6_fadeScale" means the fading/scaling effect on paging.

And the most noteworthy feature of this special version of the S6 is automatic translation feature which is powered by Google AJAX Language API.

Just clicking a text node on the slide, it's translated into Japanese or another language in a moment. This is efficient for I18N, M17N and native language support. (demo)


13 languages, Japanese, Korean, Traditional Chinese, Simplified Chinese, Arabic, Russian, Greek, German, Italian, Dutch, French, Spanish and Portuguese, are supported to be translated into. The number of languages is depend on it of the Google Translate. Reverse translation, ex. translating from Japanese to English, is also supported for granted.

This means, with the lib, your presentation would get more familiar for the people who could not read the language of it.
I'll welcome you giving cool talks in Japan with the lib. We Japanese don't need to be afraid of slides written in English anymore! :-)

Download it now and enjoy!

* The original post of this was written in Japanese and was translatable.

OSDC.TW 2008 - DOM manipulation by Wiimote/Gainer over HTTP

12th April, I gave a new talk titled "DOM manipulation by Wiimote/Gainer over HTTP" for the OSDC.TW 2008 at Taipei.


I think manipulating DOM is a bother. That is why I have developed the JKL.ParseXML and XML.ObjTree libraries for my use. And I was involved in kinds of real device web service techs in these days. The presentation could be an answer from me about DOM manipulation. ;-)

The same titled talk will be soon made again in both of the YAPC::Asia 2008 Tokyo and the YAPC::NA 2008 at Chicago.

Special thanks:
* Hiroshi Nemoto - Wiimote HTTPd's co-author
* Hitoshi Amano (a.k.a. amachang) - S6 presentation tool's author
* Shuhei Terai (a.k.a. trick7) - Gainer's maestro


Anyway, this was my first time to get to Taiwan. I must say that the Formosa was the great island of good foods and kind full people.


After the conference, I moved to gugod's office in the Jhubei City which is next to Hsinchu. I love 小籠包 (Xiaolongbao) above, however, 潤餅 (Taiwanese crepe) at a street stand was really tasty.


I'd love to back to Taiwan again next year. More photos...

[Event] OpenSocial - Google JAPAN's developer roundtable #5

At 14th March, I have participated in the Google JAPAN's developer roundtable as a panel member.


The the great venue was the Aoyama Diamond Hall, Omote-Sando.

The official report from Google is out:
Google JAPAN's developer roundtable #5 - OpenSocial

I introduced the Dokoiku's experimental OpenSocial container implemented with Shindig.

"Gainer over HTTP" and the Device::Gainer module for Perl

Gainer is one of the hottest gadgets now.
This weekend, I got the module lent by Shuhei Terai, my colleague and a great Flash/ActionScript developer a.k.a. Trick7.
Gainer is an environment for user interfaces and media installations. By using the Gainer environment, the user can handle sensors and/or actuators with a PC on various programming environments such as Flash, Max/MSP, Processing and so on.
http://gainer.cc/Main/HomePage?userlang=en

Gainer supports some of LLs, ActionScript and Ruby (with Funnel).
Perl is not supported yet unfortunately.


So I wrote a Perl module named Device::Gainer and submitted on CodeRepos:
http://svn.coderepos.org/share/lang/perl/Device-Gainer/trunk/lib/Device/Gainer.pm

SYNOPSIS:
use Device::Gainer;
my $gainer = Device::Gainer->new( host => '192.168.1.xx' );
$gainer->on_pressed( sub { print "PRESS\n"; } );
$gainer->on_released( sub { print "RELEASE\n"; } );
$gainer->turn_on_led();
$gainer->turn_off_led();
The module has enough functionality for my purpose, however,
it's not completed especially for documents and tests.
The following methods are supported currently:

MethodCommand
turn_on_ledh*
turn_off_ledl*
digital_outputD____*
set_highH_*
set_lowL_*
peek_digital_inputR*
analog_outputa___*
peek_analog_inputI*
on_pressedN*
on_releasedF*

Anyway, I wrote a proxy server for "Gainer over HTTP" using the Device::Gainer and POE::Component::Server::HTTP module.


Now we can use the Gainer through the Internet!
This means the Gainer Ajax tech can be the hot topics in the Ajax/JavaScript developers as well...


I failed to use Win32::SerialPort module to connect to Gainer module directly.

The original posts of this were written in Japanese.

[JSONP-SE] JSONP Static Emulation

JSONP, JSON with Padding, is available not only with dynamic contents from server-side CGI etc., but also with static contents, just static files.

However, such static JSONP files do NOT allow to change Padding, name of callback function.
JSON with FIXED padding is a kind of JSONP? It's just a mere JavaScript file?
callback(
    { foo: 'HOGE', bar: 'POMU' } // JSON content
);
You may need to manage a queue when you handle multiple JSONP calls.

Now, the JSONP-SE is the solution for this.
JSON-SE means JSON Static Emulation.
Change the padding, "callback" in code above, to the six lines below:
( function (data) {
    var list = document.getElementsByTagName( 'script' );
    var temp = list[list.length-1].src.match( /[\?\&]callback=([A-Za-z0-9\_\.\[\]]*)/ );
    var func = temp ? temp[1] : 'callback';
    eval( func+"(data)" );
})(
    { foo: 'HOGE', bar: 'POMU' } // JSON content
);

This is still a static file, however, you could specify any callback function name you like.
The JSON content in JSON-SE is exactly the same as it in JSON.

You could load JSONP-SE file via <script> element in <body> element.
<script type="text/javascript" src="test.js?callback=hello"></script>
The callback function "hello" would be called.
<script type="text/javascript" src="test.js"></script>
Without ?callback=... argument is not specified, the default function "callback" would be called instead.

You could generate <script> element via DOM.
    var script = document.createElement( 'script' );
    script.charset = 'utf-8';
    script.type = 'text/javascript';
    script.src = 'test.js?callback=hello';
    document.lastChild.appendChild( script );
JSONP-SE must be loaded in the bottom of the dom tree.


Such trick, fetching argument from the src attribute of the script element loaded, is used in script.aculo.us as well.


* The original post of this was written in Japanese.

[Event] Tokyo ActionScript Meetup 2008 F/ Colin Moock

When I heard that Colin Moock would come to Japan to make a talk in a seminar event sponsored by Adobe Systems Inc., it hit me that we could welcome and counter him with top ActionScript engineers in Japan!
I'd like to show him the cutting-edge ActionScript techs developed in Japan, are not introduced yet to the world in English, unfortunately.

As the result, at the day of January 16, the Tokyo ActionScript Meetup 2008 F/ Colin Moock was taken a place in Adobe Japan.
Very deep tech talks about ActionScript 2, 3 & also 4(!) were told.

Colin (left) and Ota-san.

The last of all, I asked him some of questions invited by the audiences on ahead.

I think the most of audiences including me would surprised that he could speak Japanese much fluently.
As Larry Wall could speak JavaScript as well, such great programmers would be good at speaking multiple natural languages as well as programming languages.


Tokyo ActionScript Meetup 2008 F/ Colin Moock

KEYNOTE
* Colin Moock http://moock.org/

MAIN TALKS
* yossy http://www.be-interactive.org/
* munegon http://void.heteml.jp/blog/
* id:secondlife http://d.hatena.ne.jp/secondlife/

LIGHTNING TALKS
* Muraken http://www.muraken.biz/ & tera http://www.trick7.com/blog/
* Iwasaki http://www.cosmo-int.com/
* Kobayashi http://d.hatena.ne.jp/yukoba/

QUESTIONS AND ANSWERS
* Q: Kawasaki http://www.kawa.net/ on behalf of the all audiences
* A: Colin Moock http://moock.org/


We much enjoyed the session with you.
Thank you, Colin! See you again!


* The original longer post of this was written in Japanese.

Hatsumode at the Sanno Hie Shrine

At the first business day of this year, I and my all colleagues went to the Sanno Hie Shrine for Hatsumode.
This is the most important ritual on the begging of new year, I think.
We prayed for our fine health and also our success in business.

[Event] Web 2.0 EXPO Tokyo "JavaScript Labs"

I gave a presentation on Web 2.0 EXPO Tokyo (day 1) with TAKESAKO and amachang. This talk was titled as "JavaScript Labs" and introduced the cutting-edge JavaScript technical topics and what we had interest for now.

(photo taken by TAKESAKO)

At my part of the session, I talked about JavaScript's today and its future. And also I focused into my attending to Facebook and OpenSocial.
I'm wanting to see them. FBJS is early days, and OpenSocial is still version 0.5 and full of uncertainty at this time though.
I showed tiny demo application for OpenSocial:


The room we made a talk was soon fulled with about 100 audiences.


Thank you all very much for attending our session and see you soon again!

(photo also taken by TAKESAKO)



* The original post of this was written in Japanese.