投稿

[Go] Windowsで実行した時、窓を表示させない

例えば、デスクトップでそのexeをダブルクリックした時、あのDOS窓を開きません! Goでは、ビルドオプションで設定できるんですって! こんなのあるなんて知らなかったー。 痒いところに手が届くわー。 go build -ldflags="-H windowsgui" こんな機能に用があるの、自分だけかもしれないけど。

[Dart+Polymer] Polymer1.0対応に伴いBraking Change! マジか??

Dartが1.12になるのに伴い、Polymerが1.0に切り替わったらしく、サンプルを見てみた。 どんだけ変えるのかと。 今までの全く無駄じゃん! Polymer Dart 1.0 Developer Guide https://github.com/dart-lang/polymer-dart/wiki#10-developer-guide @observableが@propertyに変更 さらに、2way-bindingするには、 @Property(notify: true) と宣言しなくてはいけない。("P"が大文字なのに注意) プロパティへの値のセットに専用メソッドを使用する @observable String hoge; ... void updateHoge() => hoge = "gg"; これが下のように変わります。 @property String hoge; ... void updateHoge() => set("hoge","gg"); じゃないと、HTML側が更新されないです。 イベントの取り方が変わった イベントの取り方はいくつかあるようです。 方法1:@Listenアノテーション HTML側はidだけ設定します。Dart側でどのIDのどのイベントを受けるかをメソッド単位で設定します。 <button id="hoge">発射</button> @Listen("hoge.click") void fire(e,[_]) => print("hoge"); 方法2:onにListenする案外ベタな方法 attached() {   $["hoge"].on["click"].listen( (e)=>print("hoge") ); } プロパティの変更イベントで受ける 以前はプロパティ名に"Changed"を付けた名前のメソッドが自動的に呼ばれたものが、@Listenアノテーショ

Dart Editorサポート終了

そうですか。 Dart Editorは今後サポートしないのですか。 About Dart Editorを開いてもバージョンアップのチェックが表示されないからおかしいと思ってたんですよね。 まあDart Edtior、超中途半端でしたね。 今後はWebStorm推奨ですか〜。 有料じゃないですか〜。 プロジェクト移行しなきゃなぁー。 面倒くさいなー。

[Polymer+Dart] 逆引きPolymer

Polymer 1.0なんてニュースもありますね。 Dart + Polymerも、ようやく実用レベルに達したような気もしてきたこの頃。 というわけで豆知識。 Polymerのレイアウト支援機能 horizontalとかflexとかのキーワードを属性に書くだけでレイアウトしてくれちゃうぞ。 <div horizontal layout>  <div>hoge</div>  <div flex>fuga</div> </div> これで横に並べてくれちゃう。"hoge"はサイズ固定。 https://www.polymer-project.org/0.5/docs/polymer/layout-attrs.html でも、Polymer1.0にこの機能ないんだね…。Styleシートで行うようになっているようだ。なるほど。 プロパティにChangeリスナーを張る プロパティ名の後に"Changed"と書いたメソッドを作成すると、そのプロパティが変更された後に呼ばれる! @observable String hoge; void hogeChanged() => print("hoge") ---- <input type="text" value="{{hoge}}"> これでinputの入力文字を変更する度にhogehoge出力されるぞ。 そんな便利なこと許されますかね! idでHtmlElement検索 <div id="hoge"></div> --- var d = $['hoge'] as DivElement; これイケるッス。 でも、途中にtemplateが入ると検索が届かなくなります。要注意! ある条件でElementを隠したい あるElementを表示したりしなかったりすることは<template if="">でも可能ですが、そうじゃない方法もあります。 <div hidden?=&qu

[Dart] Async時代のSleep

Ver. 1.9.0にて「Asynchrony Support: Phase 2」となり、非同期処理が劇的に書きやすくなった。 もう、thenとか要らない。 そう、then free。 それはオレたちのフリーダム! そして中カッコ地獄からの卒業 そんな時代に捧げるSleepの実現方法。          await new Future.delayed( const Duration(milliseconds: 500 ), (){} ); …長いな。

[Go] static fileを返すだけのweb serverを作ってみた

静的なファイルを返すだけのSimpleなWeb Serverを、Go言語で作ってみた。 テスト用のHTMLとして、 c:/webroot/webフォルダにhoge.htmlを適当に作ってくれ。 go run webserver.go で実行。 ブラウザを立ち上げて、下記のURLを表示してみてくれ! http://localhost:8085/web/hoge.html hoge.htmlが表示されるはずだ。 今回のポイントは・・・ http.HandleFuncってpathの最後に"/"つけると、ディレクトリ指定になるんだね Goでファイルを読み込む方法 WriteでbufをSliceして渡すのがGoっぽくてイイネ!Javaだとlength指定が必要だもんね defer、ちょっ、コレ、ラクちんだわ~。もうtry..finallyとかタイプしたくない。 ラベル付きbreakも地味にいいわ~。これがあってswitchが生きる。 結論。 やればやるほどGo言語。

[Go] http HandleFunc Tips

/hogeにアクセスされた時、fを呼ぶ http.HandleFunc("/hoge",f) /hogeディレクトリにアクセスされた場合、fを呼ぶ http.HandleFunc("/hoge/",f) /hoge/aaaでも、/hoge/aa/bbでもヒットする。 正規表現でルーティングしたい場合、工夫が必要。 一旦、ディレクトリ指定で受け取り、自前でルーティングするのだ。 うむむ、なるほど~。