‘イベント’ タグのついている投稿

やってきました OSC2012 Tokyo/Spring

準備できました〜。

茶色い物体は長崎では見かけないので買ってみた Dr Pepper。 結構おいしいやん。

スーパーネンドマツ(シッポ付き宇宙人の髪が金色になって逆だってるイメージ)のパワーに
押し流されて急遽キャンセルとなった峰松の席にはカンバン的なものを立ててみました。

新しいiPad片手にでも遊びにきてくださいね(ボクも見たいので)。

明日のセミナーは11時から202教室です。よろしくおねがいします。

Facebooktwitterlinkedintumblrmail

『じゃばすく製作所(仮)ふたつめ。』いってきました

たのしくJavaScript勉強してきました。主催者レポートはこちら。

例のあれ(仮題)- じゃばすく製作所(仮)ふたつめ。をこの際なのでやりました。

配布ファイルやガイドブックも用意されてるので自習もできます、Canvasを用いて描画するアナログ時計作り。

私、一応時間内に動かせたんですが、Chromeで動かすと画面に収まらないという不具合がありまして、帰ってから調べたらメソッド呼び出しに()を付け忘れているという当日に何度も繰り返したミスが残っていました。

widthとかheightって名前だとプロパティと思っちゃうんだ。

ついでに同じような処理を関数に少しまとめたりした村部版はこんな感じ。

function SampleClock() {
    try {
        this.board = document.getElementById('board');
        this.canvas = document.getElementById('time');
        this.boardContext = this.board.getContext('2d');
        this.context = this.canvas.getContext('2d');
        this.board.width = this.canvas.width = window.innerWidth;
        this.board.height = this.canvas.height = window.innerHeight;
        this.boardContext.translate(this.width() / 2, this.height() / 2);
        this.context.translate(this.width() / 2, this.height() / 2);
        this.context.rotate(this.toRad(-90));

        this.draw_board();
    } catch (e) {
        alert('initialize error...');
    }
}
SampleClock.prototype = {
    width: function () {
            return this.board.width;
    },
    height: function () {
        return this.board.height;
    },
    radius: function () {
        if(this.width() > this.height()) {
            return this.height() / 2;
        } else {
            return this.width() / 2;
        }
    },
    
    toRad: function (angle) {
       return angle * (Math.PI / 180); 
    },
    hourRad: function (datetime) {
        var hour = datetime.getHours();
        var minute = datetime.getMinutes();
        var hour_for_disp = hour;
        if(hour > 12) {
            hour_for_disp = hour - 12;
        }
        return hour_for_disp * Math.PI / 6 + minute * Math.PI / 360;
    },
    minuteRad: function (datetime) {
        var minute = datetime.getMinutes();
        var second = datetime.getSeconds();
        return minute * Math.PI / 30 + second * Math.PI / 1800;
    },
    secondRad: function (datetime) {
        var second = datetime.getSeconds();
        var millisecond = datetime.getMilliseconds();
        return second * Math.PI / 30 + millisecond * Math.PI / 30000;
    },

    draw_time: function () {
        this.context.clearRect(-this.width() / 2, -this.height() / 2, this.width(), this.height());
        var now = new Date();
        var draw_line_for_time = function(context, rad, lineWidth, lineLength, lineColor) {
            context.save();
            context.beginPath();
            context.lineWidth = lineWidth;
            context.rotate(rad);
            context.moveTo(0, 0);
            context.lineTo(lineLength, 0);
            context.strokeStyle = lineColor;
            context.stroke();
            context.restore();
        }
        draw_line_for_time(
            this.context,
            this.hourRad(now),
            this.radius() * 0.08,
            this.radius() * 0.6,
            '#000000'
        );
        draw_line_for_time(
            this.context,
            this.minuteRad(now),
            this.radius() * 0.06,
            this.radius() * 0.8,
            '#000000'
        );
        draw_line_for_time(
            this.context,
            this.secondRad(now),
            this.radius() * 0.03,
            this.radius() * 0.8,
            '#ff0000'
        );

    },
    draw_board: function () {
        this.boardContext.beginPath();
        this.boardContext.lineWidth = this.radius() * 0.05;
        this.boardContext.arc(0, 0, this.radius() * 0.9, 0, Math.PI * 2);
        this.boardContext.stroke();

        this.boardContext.beginPath();
        this.boardContext.lineWidth = this.radius() * 0.1;
        this.boardContext.arc(0, 0, this.radius() * 0.05, 0, Math.PI * 2);
        this.boardContext.stroke();

        this.boardContext.beginPath();
        this.boardContext.lineWidth = this.radius() * 0.03;
        for (var i = 0; i < 12; i++) {
            this.boardContext.moveTo(this.radius() * 0.85, 0);
            this.boardContext.lineTo(this.radius() * 0.75, 0);
            this.boardContext.rotate(this.toRad(360 / 12));
        }
        this.boardContext.stroke();

        this.boardContext.beginPath();
        this.boardContext.lineWidth = this.radius() * 0.03;
        for (var i = 0; i < 60; i++) {
            this.boardContext.moveTo(this.radius() * 0.85, 0);
            this.boardContext.lineTo(this.radius() * 0.80, 0);
            this.boardContext.rotate(this.toRad(360 / 60));
        }
        this.boardContext.stroke();
    }
};

var clock = new SampleClock();
var timer;

function tik() {
    clock.draw_time();
    timer = setTimeout('tik()', 1000 / 60);
}

function tok() {
    clearInterval(timer);
}

tik();
Facebooktwitterlinkedintumblrmail

OpenCOBOL活用セミナーで生みの親の西田さんと

OSSコンソーシアムに OSS COBOL ワーキンググループが設立されました(「【プレスリリース】OSS COBOL支援プロジェクト立ち上げ – OSSコンソーシアム」をご参照ください)。

これにともない、『フルオープンソースでCOBOLの基幹システムを実現!OpenCOBOL活用セミナー』が1/25に開催されました。長崎県からは長崎県総務部政策監の島村秀世様と弊社の峰松が長崎県での取り組みや展開について話しました。

ご参加いただいた皆様、ありがとうございました。

さて、堅い感じはおわり。本題にはいりますよー。

OpenCOBOLの生みの親、西田圭介さんに今回のセミナーのことを峰松からお話していたらなんとご本人が参加してくださったんです!

懇親会で二人が話してたところにちょっとお邪魔してパチリ(左が峰松、右が西田さんです)。

西田さんは現在、BizMobile株式会社のCTOだそうです。

OpenCOBOL開発当時のお話や著書『Googleを支える技術-‾巨大システムの内側の世界-』についてお話したり、OpenCOBOLの可能性について語りあったりととても楽しいひとときでした!

付記:
プレゼン直前にPowerPointが落ちて作っていた資料がほとんど消える。プレゼンの途中にプロジェクターへの接続がきれる。終了予定時間がすぎてからデモを始める。峰松は今回も絶好調でした。ざっつ、えんたーてぃなー。

Facebooktwitterlinkedintumblrmail

OSC2011 Fukuoka ありがとうございました

12/3(土)に筑紫女学園大学で行われた『オープンソースカンファレンス 2011 Fukuoka』に出展して参りました。

今回、福岡ということで知った顔が多くて(福岡のコミュニティ、Rubyビジネスコモンズのスタッフをしていたり、他の勉強会やイベントにもちょくちょく参加してますので)心強かったです。
また、今年は各地のOSCに参加していますので遠方から来られた方々にも見慣れた顔が増えて参りました。

今回はセミナーも私が話させていただきました。スライドにちょっとした(まど☆マギ)ネタを入れているのですが、今回、ついに元ネタを知っている方がいないという状況が発生!

「いいかげんあきらめようか。いやしかし」

と葛藤中です(このネタのせいでスライド公開できなかったりするしなぁ。いやしかし)

そんなわたしの悲しみを表現するだれもいないブースの写真。

中央に赤くみえる梅ヶ枝餅がおしゃれポイントです。

まぁ、ブースの準備が終わったときにとった写真なのでだれもいないのは当然なんですが。
今回、現地は私一人でしたので写真がこれしかないのでした。

通常、あまり入れないような会場でいろいろとおもしろかったのですが、ライトニングトーク・閉会式の会場が礼拝堂(らいはいどう)であまりの神々しさに度肝をぬかれたのはいい思い出です。

ただ、女子大の学食を体験できなかったのは心残り(一人だったのでブースを離れるわけにもいかず昼食は梅ヶ枝餅をパクつきました)

それから、出展してるとセミナーを見れないのがつらいなぁとか、ライトニングトークネタもつくろうかなぁとか思いました。

Facebooktwitterlinkedintumblrmail

OSC2011 Tokyo/Fall セミナー無事に(?)終了しました

無事にセミナーが終了しました(会場のディスプレイへのPCの接続でトラブったようですが)。
終了時間直前に写真を撮りに行ったのですが、いい感じで質疑応答が行われておりました。

ありがとうございました。

Facebooktwitterlinkedintumblrmail

OSC2011 Tokyo/Fall 二日目開始

しております。峰松が14時からセミナーやるのできてね♪

出展していると他所のセミナーを見に行けないのが悲しい。
おもしろそうなのがてんこ盛りなのになー。

というわけで(?)昨日は懇親会がありました。
会場で可愛かったのでパチリ。

Facebooktwitterlinkedintumblrmail

OSC2011 Tokyo/Fall はじまりました

今回、土日の二日間(11/19〜20)です。展示 A(405)にブースをだしております。

明日は弊社のセミナーもあります。よろしくおねがいします。
28号館404教室「OSC. Government OSSと政府・自治体」のトラックです。

https://www.ospn.jp/osc2011-fall/modules/eguide/event.php?eid=41

ブースの準備が終わったらおもむろにコードを書き始めた人を激写。

Firefoxのぬいぐるみがかわいすぎる。でかすぎる。勝てね〜

とか言ってたらコード書いてた人が「うちのにゃんこ達を連れてくるしかない!」
と言いながらネコ画像を表示しはじめました。にゃんこ写真みたい方もどうぞ。

Facebooktwitterlinkedintumblrmail

CEATEC JAPAN 2011 完走しました

10/8(土)に無事に終了いたしました。ありがとうございました。

技術者向けのイベントというわけでもありませんし、OpenCOBOLを使用してのダウンサイジングという相当にコアな内容の展示ですので多くの方に興味をもっていただくというわけにはいきませんでしたが深い興味をもった方々に来ていただきました。うれしかったです。

午前にご説明さしあげた方から午後にジュースを差し入れていただいてホッコリしたりも。

夜は疲れて「唐辛子だばー」したりもしたけどボクは元気です(どうでもいい)。

ちゃんと食べましたよ。カプサイシン!カプサイシン!

参加させていただいた長崎県ブースの展示、最終的にはこんな感じになりました。

特にご注目いただきたいのが左端の弊社のディスプレイの下の電光掲示板(ちょっと見えにくいですが)。
木曜日から応援に来てもらったスタッフのお手製です!(キット使用)

今後も各地で展示やセミナー等を行なっていく予定です。よろしくお願いいたします。

Facebooktwitterlinkedintumblrmail

CEATEC JAPAN 2011 ブース準備完了

富士通さん、NECさんの向かいという恐ろしいロケーションにビビりつつも準備完了。

大手さんのリハーサル、まじハンパネェっす。

まわりハデっす。長崎県ブース地味っす。逆に目立つかも?

Facebooktwitterlinkedintumblrmail

CEATEC JAPAN 2011 出展の事前準備できた〜

来週の CEATEC JAPAN 2011 の長崎県ブースに出展させて頂きます。

本日、展示パネルの発送など事前準備が一通り終わりました。
相変わらずギリギリって感じです。

弊社は今年もOpenCOBOLメインの展示です。
OpenCOBOL大好きっコは幕張メッセにあつまれ〜。

特別招待日 10月4日(火)
公開日 10月5日(水)~ 7日(金)
無料公開日 10月8日(土)

ですよ。

公開日は当日登録だと入場料が一般1,000円・学生500円ですが
Web事前登録してると無料だそうですよ。 おとく。

Facebooktwitterlinkedintumblrmail