プログラミング
lacolaco.hatenablog.com 「レールに乗っておいたほうがいいんじゃないの?」という声もあるとおもうので、 そもそもなぜAngularはHTTPクライアント機能をスタックとして提供しているのか、というところについて。 AngularJSには$httpが必要だった 遡ってAng…
題して「頼りすぎないAngular」ということで、Angularの層をなるべく薄くアプリケーションを作るにはどうすればいいかというのを考えるシリーズです。 Angular良さそうなんだけどロックインされて捨てにくそう、という人々向けに、コードのモジュール性とフ…
Double O というサービスがWeb ComponentsやPWAなどアグレッシブにWeb技術を取り入れていて応援したい気持ちなので、まずはユーザーとして使っていこうと思います。 ooapp.co 「よくある質問」がDouble Oの公式アカウントとして運用されてるの面白いですね h…
僕がAngularアプリケーションを書くときに頻出する実装パターンを紹介する記事です。続くかどうかは未定です。 onDestroy$ ngOnDestroyメソッドが呼び出されたタイミングでemitされるEventEmitterを作っておき、RxJSのtakeUntilパイプなどで使う実装パターン…
Angularフレームワークのv6.0.0リリースにあわせ、Angular CLIもv1.7系からv6.0へメジャーアップデートをおこなう予定です。 この記事ではAngular CLI v1.7系で作成した開発環境からv6.0系の開発環境へマイグレーションする方法を解説します。 この記事は安…
今日はGraphQLのクエリのスキーマを考えてた いろんなデータが関連していて、原理的にはどんな入れ子の順番でも解決はできるんだけど、基本的にはデータの寿命が短い順に入れ子になっていくのが良さそうな気がする。 user { organizations {} } はユーザーの…
3/24に、MANABIYAというカンファレンスイベントで登壇してきました。 manabiya.tech 当日のスライドはこちら。発表タイトルは「The Angular World」で、Angularの現在と未来、あとWebの世界との関わりについて話そうと思ってました。 内容はだいたいスライド…
lacolaco.hatenablog.com ngIvyのSeparate Compilationについてのプロポーザルを読み、実装中のRenderer3のコードを読み、ベータ版のcompilerが生成するコードを読み、毎晩毎晩考えを巡らせた結果、ngIvyについてある程度体系的な理解が得られたという錯覚が…
angular/separate_compilation.md at master · angular/angular · GitHub 日本語訳しながらngIvyの設計を理解する。 読んだ。要点だけまとめると以下。 Angular 6.0ではIvyという新しいコンパイラが導入される IvyはAngular 5.0 (Renderer2) における分離コ…
追記: 最新では scope が providedIn に変わってます。 github.com Angular v6では、これまでのDependency Injectionの仕組みをTree-Shaking可能にするためのオプション機能を追加します。 概要を説明するために簡単なスライドを作りました。 現状の問題 現…
github.com Angular CLIが依存するwebpackのバージョンを4系にアップデート。 github.com @angular/common が提供するパイプで使われている関数を公開APIとしてエクスポートする変更。 NumberPipeやDatePipeの変換処理をテンプレート外で使えるようになる。v…
lacolaco.hatenablog.com ^の続きです。 前回はglobとfsを使ってschema/**/*.gqlファイルを結合し、graphdocを使ってドキュメンテーションページを生成する記事を投稿しました。 まったく同じ目的のために merge-graphql-schemas というnpmパッケージがあっ…
GraphQLのSchemaから静的なドキュメンテーションページを生成するツールとして、graphdocというものがあります。 github.com GraphQL Schemaを渡すと、こんな感じのHTMLを生成してくれます。 これはGraphQL公式のサンプルにもあるStar Wars APIの例。 https:…
表題のとおりです。結論からいうといろいろ問題があり、このmonorepoは失敗ということでそのうち解散するつもり。 Nx workspaceを使ったmonorepo Angular用ライブラリのmonorepoには、Nrwlが提供するNx Workspaceを使うのが早いし便利だ。 nrwl.io Nxとは何…
mizchi.hatenablog.com エモにはエモ。 わかる だいたいわかる。そもそもSPAの必須パーツであるクライアントサイドルーティングなんてブラウザ機能の再実装の極致だし、ブラウザ上でアプリケーション作るとなるとブラウザに足りてない部分はラップして、アプ…
こんにちは、lacoです。 今日は業務中にこういったものを作ってnpmに公開しました。 www.npmjs.com リポジトリはこちらです。ご覧の通りKaizen PlatformのOSSです。 github.com なにこれ Prettierというコードフォーマッターがあり、その設定をKaizen Platfo…
あるsource-mapが、本当にソースコードの各行に対応したマッピングを行えているかどうかを評価したい。 背景 github.com light-ts-loaderというwebpackのloaderを作っていて、このloaderを使ったときに吐き出されるsource-mapが自分のloaderのせいで壊れてい…
何を言っているかわからないと思いますが、僕も自分が何を始めたのかいまいちわかりません。 github.com Pull Requestでしりとりを繋いでいくだけのリポジトリを作りました。次に挙げるような意図があります。 GitHubやOSSへのコントリビューションに不慣れ…
JSer.info 5周年記念イベントに行ってきました。 jser.info 会場のサイボウズさん、広いし綺麗だし面白い。 イベントの内容はazuさんが↑の記事でまとめてくれているので割愛、印象に残ったことだけ書く。 JSer.infoの仕組み azuさんがJSer.infoがどう運用さ…
2015/10/16時点での所見をまとめておく TypeScriptで書く pros TypeScriptに慣れてる ES6 classが使える 現状 "use strict"; export default class HelloWorldComponent { is: string; beforeRegister() { this.is = "hello-world"; } } Polymer(HelloWorldC…
C#、LINQネタです。 LINQでIE<T>を扱っていると、「ランダムに要素を1つ取り出したい」と思うことが時々あります。なのでそういう時は拡張メソッドで IEnumerable<T>#Random() を実装すると便利ですね。 ところでこのメソッドの中身、どう実装するのがパフォーマン</t></t>…
現在開発中のAndroid用ツイッタークライアントの中でデータベースの管理ライブラリとしてormliteを使っているのですが、元々テーブルを一つ作っていたものにアップデートでテーブルを追加する必要が出てきました。 なので最初にテーブルを作った時と同じよう…
前回、前々回は非同期処理の実行についての記事でしたが今回は非同期処理「される」側の実装についてです。特に今回はスレッドセーフなコレクションの実装について書きたいと思います。スレッドセーフ スレッドセーフについてWikipediaでは あるコードがスレ…
というわけで前回の続きです。今回はUIスレッドという観点からJavaマルチスレッドの解説です。 Androidアプリケーションでは(というより多くのGUIアプリケーション開発においては)UI描画はメインスレッドでしか行えない制約があります。ですがすべての処理…
Androidアプリ開発を想定した上で一般に使えるJavaのマルチスレッディングについてのメモ書きです。 全部を解説するにはページが足りないので、タスクキューの実装を例に触れていきます。 (Java SE 6以上)Executor まずはExecutorについての説明を。Java SE …
というわけで完成しました 今のところ太字とpre記法しか機能が無いですが一応タブキーでスペース4つ(可変)挿入とか、コード載せやすい感じにはなってます完成したはいいものの配布方法で悩んでる。これからもいろいろ作るだろうし自分のサイトとか作ってダウ…
もともとOAuth認証でやるつもりだったんですが、どうあがいても認証鯖がoauth_signatureを弾いてくるので諦めてもう一つの認証方法「WSSE」を試してみました。 はてなサービスにおけるWSSE認証の仕様はこちら http://developer.hatena.ne.jp/ja/documents/au…
はてなのOAuth認証のスクリプトをIronPythonで書いていたところ、urllibやurllib2を初めとする標準モジュールが見つからないとエラーが出た。 これはおかしいと思い調べてみたらこんな記事を見つけた[IronPython].Net Frameworkメソッド呼び出し urllibの代…
というわけではてなダイアリーの投稿クライアントを宣言通り作ってます 形から入る性分なのでまずUIから作りました 言語はC#+IronPython UIはWPFで作りました。 出来上がったメインウィンドウがこちら UI内で使ってる画像はこちらのサイトからお借りしまし…