サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
中東情勢
yyyank.blogspot.com
はじめに KotlinはJavaScriptへのコンパイラ(Kotlin to JavaScriptなコンパイラ)を搭載しています。 ただ、これまでKotlinでJavaScriptをやるというのはネガティブな印象が強かったと思います。 実用段階でないとか、機能として不充分とか。 一方で、KotlinがAltJSになるんではないかという注目をされている人も多少なりともいるようです。 で、足りないんだとしたらどこが足りてないのか、とか自分で確かめるしか無いな、と。 試した結果としては結構使えるんじゃないかなと思いました。 KotlinがAltJSになるメリット メリットが何かと考えると、KotlinのメリットをそのままJavaScriptに持ち込めることだと思います。 具体的には ・静的型付け ・型安全、Null安全 ・Kotlinライブラリやシンタックスが使える ・Javaライブラリが使え
http://www.zhaojunlucky.com/architecture/what-is-reactive-systems/より引用 はじめに JJUG ナイトセミナー 「Reactive Streams特集」に参加してきました。 本記事では実際に参加して感じたこと、学んだことをメモがてらまとめようと思います。 今回参加の目的としては ・自分の中でバズワード化している「リアクティブ」な用語が分からない ・概念はどんなものか? ・ただのObserverパターンじゃないの? ・ただのFuture/Promiseじゃないの? ・ただのデータバインディングじゃないの? ・Stream APIっぽい関数型パラダイム的な何かじゃないの? というところの曖昧さの整理とか勉強のためでした。 すでに色んな方がレポートを書いてます。みんな仕事が早いですね(^^; ・JJUGのReactive Stre
はじめに たまたま、 「最近CとJavaを勉強しています。オブジェクト指向難しいです」 という学生さんと話す機会があった。 もっと学びたいし、身に付ける方法が知りたい。 現場の感覚を早く身に着けたいって感じのことを言ってた。 んで、その熱意が結構いいなぁと思ったので、 一体自分はどうやってプログラミングとかこの仕事に対するレベルアップを図ってきたか 考えてみよう。ということでブログを書く次第です。 研修 前提として、僕は社会人になるまでプログラミングも知らない ただの文系大学生だった。 本格的にプログラミングを始めたのは会社に入ってから。 多分23歳とかそこらへんから。 Javaだけ学んだ。基本的な文法、バッチ作成、CSV出力、 Webアプリケーション改修などといった課題をこなした。 Javaの入門書一冊を写経しつつ、会社の用意した課題をクリアしていくといったかたち。 まぁどこの会社でもよ
はじめに さて、来年にはJava SE 9が出るらしいですが。 最近、僕のプロジェクトもJava SE 8になりまして、 普段嬉々としてlambdaとかメソッド参照とか使いたがっている今日このごろです。 そんな中、ちょっとStream APIの布教活動したよーという話。 プロジェクトメンバーの現状 ケースバイケースなので、無理に使う必要はないですが、 結局Java SE 6ぐらいの書き方でみんな書いてる感じです。 なぜ使わないのか 単純に知らないのだろうなという感じでした。 知らないというのは ・使っているのバージョンを知らない(Java SEの6なのか7なのか8なのか) ・Stream APIを知らない という感じ。 話してみてそこら辺が分かっただけでも良い材料になったなとか思います。 ススめる前準備 とりあえず、ちょっと複雑なコレクション操作をする要件だったので、 これはmapしてfi
システムをエンジニアリングしたいな※1という思いが強い僕ですが、 気づいたらマネジメント的な部分※2を多くやっています。 というかチームビルディング的なところかもしれません。 なぜか 楽しいことがやりたいからです。 自分にとって楽しいなと思える環境ってなんだろうと考えました。 チームで同じ方向を見ること、良い雰囲気を持って開発をしていくことが重要です。 僕には本当に良いチームだと思えるチームで働いた経験があります。 SIの現場の1チームでしたが、後にも先にもあれ以上に良いと思えるチームはないです。 無いなら作るしかない 過去の経験から、良いチームで働くのは楽しいのは分かった。 しかし、なかなか良いチームには巡りあわない。 ならば作るしかない、という感じです。 待ってても良い環境は来ないと思うし、 そういうチームを作れるような人の周りに人は集まってくるのではないかなぁと思うのです。 おそらく
はじめに ということで、KotlinのM13がリリースされました。 ほぼ、公式blogのそのまま書くつもりなので、詳細は原文参照のこと。 Kotlin M13 is out! 今回の変更は言語の最終仕様の決定と言ってもいいでしょう。 そして、それぞれユーザーに意見を求めていた結果をフィードバックして、 言語デザインに反映しています。 変更のサマリ 変更をまとめるとこんな感じです。 ・コンパイラのdaemonがより早くなった ・lateinitというプロパティでDIサポート ・sealed classで代数型サポート ・ターゲットアノテーションのspecifyingとチェック ・JavaのGetter/Setterの組み合わせをKotlinのプロパティとして扱えるようになった ・アノテーションと修飾子を分割した ・Fullly functional Reflection ・internalへ
【まだVBAで消耗してるの?】Excelツールテンプレートパターンを考えてみた(Excel VBA Tools template) 結論から言うと ツールのテンプレートパターンを考えて書いてみた。パターン考慮して汎用的なツールも作った。 https://github.com/yyYank/yank/tree/master/Recursivive 対象読者 VBAでなんかツールを作りたい人 プロジェクトでツール作りそうな人 前提 VBAの規約に関しては別エントリ参照。 VBAでツールを作るにあたって、 今まで現場で個人的に色々とツールを作ってきた(自主的にまたは作らされた)経験から 見てきたパターンを明文化しようというのが今回の試みです。 最低限必要な機能 VBAのExcelマクロツールでは以下の機能が備わっていれば、大体のものは作成可能。 バリデーション ディレクトリ参照(ファイルエクスプ
はじめに 最近、仕事で今見ているソースコードが めっちゃHogeUtilとかFugaUtilとかだらけで、 ドメインのプレフィックス + Utilつけりゃなんでも良いのかよ…とか思って考えてます。 そんで、これはいわゆる神クラスというやつだなぁと。 そこに立ち向かうにはどうしたら良いのか、 (どうリファクタリングしたら良いのか、クラス設計したら良いのか) みたいなことを考えてみます。 神クラスって? そもそも、神クラスってなんだってところから。 調べてみると、どうやら語源は Object-Oriented Design Heuristicsという本らしいです。 Object-Oriented Design Heuristics 参考URL http://c2.com/cgi/wiki?GodClass 簡単な意味の理解としては、このWikipediaに書いてある神オブジェクト とほぼ同じと
はじめに Kotlinでテスト用の雑なDSLを作るというのをやってみたんですが、 なんかイマイチなものが出来たなぁと思います。 記事を書いてからも改善出来ないかやり方を考えてたんですが、 もうちょっとマシなものが出来た気がするので、今回は続編記事です(まだ洗練されてませんが)。 前回のDSLの問題点 前回もあげていましたが ・型のキャストをテスト実装者にさせる必要がある ・各ブロックでの情報の受け渡しが手続き的 など問題点がありました。 改善アプローチ JetBrainsの@yanex_ruさんから type-safe builderを利用するのとかどうですか?と教えていただいたのと、 ジェネリクスで頑張れそうだなとか思って作ってみました。 改善版DSL ソースは以下のような感じです。 import org.junit.Test import kotlin.test.* import ja
6月30日をもって、SIerのちっちゃい会社を辞めました。 7月からはSIerのちっちゃい会社で働きます。 僕が強く主張したいのは、転職タイミング的に夏のボーナスが出ないということです。 皆様のご好意をお待ちしてます!!!切実にビールとか技術書とか!! ほしい物リスト なんでやめたの? 特に会社に大きな不満はありませんでした。 それに技術者のはしくれとして飯を食っていけるようになったのは この会社のおかげなのでそこは頭上がりません。 ただ、この会社でやりたいことは全てやったなという 自分の中でのしきい値を超えただけです。 客観的に見てやり尽くしたわけではないでしょうが、 僕個人の主観としてはもうこれ以上はやることないなと。 1年前ぐらいの段階でその結論には至ってて、 あとは環境面、待遇面、業務内容などで良い会社 と巡り合えればなぁという気持ちでした。 これから何やるの? これからも基本的に
※注意 本記事は2015/06/12現在のproject kullaに関する情報です。 今後のJava SE 9のリリースやproject kullaの開発状況によっては内容が変わる可能性もありますのでご了承ください。 はじめに Java SE 9ではJavaにREPLが入る予定となっています。 その名もproject kulla!! とある記事を読み、リリース前ですが今でも使えることを知りました。 これは使ってみたい!ということでトライしてみました。 そもそもREPLとは REPLとは Read-eval-print loopの略 字のごとく読んで評価して表示して繰り返す。対話型評価環境を指す。ただし、インタープリタと同義ではない。 多くの関数型言語やスクリプト言語では利用出来る。 (http://d.hatena.ne.jp/keyword/REPLより引用) REPLについては以前に
はじめに Javaの歴史も20年。 脈々と後方互換が守られてバージョンが上がってるわけですが、 ライブラリも豊富になっていき、覚えることも増えてきている気がします。 だけど、逆に今さら覚えなくても良いものもたくさんあるんじゃないか。 という疑問が浮かんできました。 それに加えて、個人的なことだけど、 Javaの色々を調べるうちにだんだんJavaが分からなくなった。 ので、全体図を俯瞰してみたくなりました。 ということで、Java SE のパッケージを眺めるのが良いかと思い、 それぞれ見ていくことにします。 とりあえず、JDKの中身をあさってみます。 対象 Oracleのjdk 1.8.0_40 それぞれの構成 javadocで提供されているのは ・orgパッケージ ・javaパッケージ ・javaxパッケージ http://docs.oracle.com/javase/jp/8/docs/
はじめに 皆さんはAPTって言葉聞いたことありませんか? Dagger2、Android Annotations、Lombokとかああいったものを使う時に 一緒に使われるシーンがあるようです。 APTって何気なく使っている方が多くて、なんとなくひっかかりました。 APTそのものをちゃんと説明している人は少ないなーって。 APTってAnnotation Processing Toolを略したものなんですが、 この用語を使ってるのってどうやら日本人だけっぽいです。 もう少し具体的に言うと、英語圏では使われていない。 試しに、Googleで「APT Java」で検索してみましょう。出てくるのは日本人の記事ばかりです。 検索するLocaleを英語だけにするとAPT Javaでは何も出てこない。 というか、今その言葉を使っている人はいないようです。 「Annotation Processing Ja
【JavaScript】なんとか.jsのお話(Backbone.js、AngularJS、Node.js、altJS、Underscore.js、prototype.js....etc) jsって多すぎない? 今回は、JavaScriptってなんかよく分からないけどいっぱいあるよねってお話です。 エントリのタイトルにも入れましたが、 Backbone.js AngularJS Node.js altJS Underscore.js prototype.js などなど、"なんとか.js"というのはたくさんあります。 それぞれに技術の歴史的な文脈というのはあるんですが、 僕としてはSI業界に入ったときにはあふれんばかりにjsが現れて ナニガナンダカです。 そこで、今回はJavaScriptの変遷を見て、 氾濫している(ようにみえる)JavaScriptを整理してみようという試みです。 まず、歴
はじめに 技術を学ぶというのはすごい個人差のあることだと思います。 個人特性もあるし、興味の向く対象も違う。 組織にはいろんな人間がいる。 そんな中、いくら「技術力を学ぼう!」と啓蒙しても、 響かないことってありませんか。 最終的には人それぞれの問題にはなってくるのだけれど、 それって、現場ロックインが一因なのではないかなと思う。 現場ロックインの定義 「特定ベンダー(メーカー)の独自技術に大きく依存した製品、サービス、システム等を採用した際に、他ベンダーの提供する同種の製品、サービス、システム等への乗り換えが困難になる現象」をベンダーロックインという。 (Wikipediaより引用) 現場ロックインは僕の思いついた単なる造語で、 「特定のプロジェクトに特化した技術や顧客の事情を重視しており、 その他の現場に移動しても殆ど役に立たないローカルルールに依存している現象」を指す。 会社に対して
http://www.softwaretestingclass.com/what-is-selenium-webdriver-selenium-training-series/より引用 はじめに 最近、Selenium WebDrvierを利用する機会を得ている。 自動テストはやはり便利。打鍵やるのはバカらしいなって気分になる。 ただ、あんまり難しいことしようとするとどうしても作りこみが必要。 GebというWebDriverのラッパーがかゆいところに手が届く感じらしいので、 次回は検討しようかなぁ。 参考 脱・独自改造! GebでWebDriverをもっとシンプルに 使い始めて感じたことやTIPSをメモがてら残しておこうと思う。 1.ソースコードの自動生成 Selenium Builderというのが主流らしい。 Firefoxのアドイン。 その他にもSelenium IDEというのがある。
はい。僕は圧倒的第三者です。 DroidKaigiというAndroidの大きなイベントに参加してきました。 はじめに 最近はAndroidから少し離れ気味な僕。マッチョなActivityを増やす日々だったりするので、 正直Androidの最新動向が分からない。ベストプラクティスとは。みたいな感じでした。 Androidの情報ってネットには多いんですが、 ググってもよく分からん情報ばっかり出るし何が正解か分からないなーってところもありました。 そんな中、DroidKaigiというイベントが目に入りました。 運営人も豪華メンバーというか有名どころばかり。 Webマーケティング的な部分も含めてなんか上手く取り組まれていて、 自然に興味がわきました。 参加募集開始数分で定員が埋まったわけですが、なんとか潜り込めました。 10時調度から全裸待機してた甲斐がありました。 他の人の参加レポートとか ☆圧
ってな感じで、大体これぐらい覚えておけばなんとかなりました笑 ・縦の問題、横の問題が起きにくい bitter_foxさんの言葉をお借りすると、ソースコードが手続き的な処理で 間延びしてしまう縦の問題や、Stream APIのメソッドチェインにより発生してしまう 横の問題は多少は起こりにくく、簡潔に書けるようになります。 コレクションに関してはCollection#streamが操作の起点になると思うのですが、 GS Collectionsの場合はライブラリに含まれているので省略できます。 縦の問題、横の問題についてはJavaエンジニア養成読本の [マルチコアCPU対応]Java SE 8時代のデータ入門 第2章「縦の問題」を解決するラムダ式をチェック! ・LazyかLazyでないか また、JavaのStreamの場合は終端操作が発生されるまで処理は行われない 遅延処理だと思いますが(あんま
はじめに ちょっと前まで結構激しく泥沼化したプロジェクトにいた。 その頃はプロジェクトも僕も相当疲弊していて、何も考える時間がなかった。 ある程度、月日が経って今なら もう少し客観的にあの頃のことが考えられるかなと思い書いてみることにする。 振り返りをし、自分としてもプロジェクトとしてもどうあるべきであったかとか そういう立派なことが考えられればいいのだが。 とかく、Slide Shareとか世の中は成功事例は多く発信される。 けど、失敗事例のほうが共通して当てはまったりする。 前提 ・古典的なウォータフォール ・古典的なStruts1系ベース内製フレームワーク ・Java SE 6 ・QAとかいない ・デザイナーとかいない ・フロントエンドエンジニアとかいない アンチパターン 当時のプロジェクトを振り返って、明らかにこれは駄目だっただろというところ。 ◆プロジェクト全体 ・決定者がいない
はじめに Javaでのプログラミング、特にJava EEを用いたコーディングとかをしていると、 僕は「あれこれってどういう仕様なんだろう」ってなることが結構あります。 僕「なんか良い本無いですか?」 某氏「JSR読め」 ほほーそっか。仕様そのもの読んじゃえば間違いはないよな、と。 だがしかし、読み方がよく分からない!っていうか仕様ってどうやって決まってるの? Java公開されてるの? …とかそういう僕はレベルだったので、これを期に、Javaの仕様である(定義間違ってたら教えて下さい) JSRあるの読み方を調べてまとめてみようかなというお話です。 調べたっていうレベルですので、間違ってたり表現が適切で無い場合は、 どこかでご指摘ください。 基本的な用語 ・JSR Java Specification Request。Java仕様要求。つまりJavaの仕様です。 ・JCP Java標準化機関J
http://www.softwaretestingclass.com/what-is-selenium-webdriver-selenium-training-series/より引用 前提 ・selenium-java version 2.44.0 WebDriverWaitについて WebDriverWaitは描画処理などの関係でwaitをかけることに特化したクラス。 waitを使うときには以下のように書く。 WebDriverWait wait = new WebDriverWait(driver, 10); wait.until(ExpectedConditions.alertIsPresent()); // 処理 doSomething(); ・・・・ WebDriverWaitのインスタンスを生成し、untilメソッドで引数で 渡した条件(ExceptedCondtionインス
JetBrains社サイトより引用 はじめに 2015年3月19日にKotlinのM11(マイルストーン11)がリリースされました。 そしてリリース内容を色々眺めていたのですが、テンションの上がる内容ばかり。 Android技術者がKotlinを使いやすくする前向きな姿勢がJetBrainsのアップデートからも読み取れます。 今回は、変更の中で特にAndroid開発者向けの変更と思われるものを リリース情報をJetBrainsのブログから雑に翻訳してみました。 元記事はこちらです。 Kotlin M11 is Out! 注:翻訳について 以下翻訳です。 Kotlin M11 is Out! 本日(2015年3月19日)、KotlinのM11をリリースした。セカンダリコンストラクタやKotlinにとって"真の"リフレクション機能などなど待望のものだ。 Today we are releasi
はじめに 友人のsyobochimが勉強会やるということで、裏方(運営)的なポジションで参加させていただきました。 しょぼちむにデータモデル設計について教えてくださいの会 #syoboben 勉強会の様子はtogetterで雰囲気を感じていただければと思います。 ゆるふわと見せかけてガチ勢が来たしょぼちむ勉強会 会場はドリコムさん。こんなかんじ。エントランスにはベイマックスがいました。 以下、発表を順に振り返ってみます。。。。 初めてデータモデルと向き合って知ったこと @syobochimさん http://syobochim.github.io/LT/20150221_syoboben_1_データモデル設計/#/ syobochimが実際にプロジェクトでぶち当たったレガシーなテーブル設計をどう変えていったか、 みたいな話でした。勉強会に来てない人が「自社の話そんなしていいの?」って心配し
http://ivandemarino.me/2012/02/27/PhantomJS-REPL-it-s-ready-for-a-taste/より引用 はじめに 「○○言語はどんな環境でも動きますよ」 「△△だから導入が簡単」 とかって言葉は各方面で聞きますが、 なんだかんだ、インストールだのダウンロードだの、少しの手間がかかってしまいます。 新しい言語を覚えてみよう、ちょっとためしにコーディングしようみたいな時 その手間が惜しい。 環境構築したは良いけどすぐ飽きちゃう気がする。だからやめとこっかなー、みたいな。 そういうめんどくさがりの人のために、今回はWeb REPL(またはWebコンソール)を 提供しているサイトをまとめてみました。 Webブラウザと接続できるネットワークさえあれば気軽に試せるなんていいと思いませんか? REPLとは さて、前提としてまずREPLって聞き慣れない人も
こちらはKotlinアドベントカレンダーの16日目の記事です。 はじめに いきなりですが、僕はKotlinが好きです。 なんてったってNull安全だし書いていて気持ちが良いからです。 Javaのライブラリ使えるけど、ダルくないし。 、、、という風に主観で口語的に説明するのはとても簡単なのですが、 客観的にKotlinを見た時どういえば気に入ってもらえるか。 どうしたら流行るのかなぁっていうのを真剣に考えました。 まず比較対象ですが、同じ界隈ということで考えるとJVM言語が思い浮かびます。 そもそもJVM言語とは 簡単に言うと、JVM上で動く言語です。詳しく言うと以下のとおり。 computer programming languages that are used to produce software that runs on the Java Virtual Machine (JVM)
これはKotlin AdventCalendar2014の3日目ぐらいの記事です。 こんばんは。Javaの皆さん。 今日もNullで消耗していますか????(精一杯の煽り) ひとむかし前に、声に出したい日本語なんてのがありましたね。 そのまんまなのですが、今回はそれのKotlinバージョンです。リピートアフタミー! ・・・とその前に、どうせ最後まで読まない人が多いと思うので。 先に結論 先に言っちゃう。Kotlinはコンパイルレベルで厳しく、実行時にやさしい。 すなわち、 コンパイルさえしてしまえば、その時点でかなり精度の高いコード完成している! 優しさの裏返しの厳しさは以下3点 1.Nullにめっちゃ厳しい だから実行時にNullPointerExceptionは起こらないと言って良いほどですのよ、奥様 2.曖昧なキャストとか許さない だから型のミスマッチによる例外とか起こりにくいんです
Twitterの話題に乗っかって、内容をまとめてみようと思います。 私自身の考えではなく、様々な意見を整理したいなという試みです。僕には知識はありません。 B○zzNews並みに頑張ろうと思います。 前提 基本的に、Javaを中心として、その周辺についても少し触れるぐらいのアプローチで書こうと思います。 ポイントとしては、以下の3点です。 ※無意識に利用している部分(基礎的で普段意識しないところ)ではありますが、とても重要な話です。 1.Javaではあたり前のように計算処理にはBigDecimalが使われている 2.ではなぜ、BigDecimalではないといけないのか 3.どういった計算ならBigDecimalを利用するのか/利用しないのか ※本記事は演算誤差についてあまり厳密に的確な内容ではない可能性があります。 Java内の演算処理方法としてベターな方向の提示を目的としていますが、「誤
前提 最近、JavaEE環境でJSF2.xとPrimeFacesを触る事が増えてきましたので、 これからそういった構成でシステムを構築する方のために記録として書いておきます。 先に釘を刺しておきますが、JSF環境ではJavaScriptを多用する事はオススメしません。 JSF JSFはJavaEE標準機能のモジュールドリブンなMVCフレームワークです。 JSF2系になり、かなり実用性が増していると思います。 JSF1.xのバージョンではxmlベースでのマッピングであるのに対し、 2系ではアノテーションベースで簡易に関連付けが出来るようになっています。 PrimeFaces PrimeFacesはJSFを前提にして、リッチなUIライブラリを提供するものです。 基本的にJSFのタグライブラリを全てラップするような形でPrimeFacesのタグライブラリが作られています。 PrimeFacesの
【Microsoft頑張れ】VBAの扱いひどくない?(Don't do careless programming by VBA) 対象読者 VBAなんてチョロいって人 VBAがショボいって思ってる人 VBAイイヤツ、ワルイノオマエ Excel VBAはofficeの入っているPCなら誰でも利用可能である。 したがって、非プログラマや非VBAerもカジュアルに利用できる。 環境構築不要という参入障壁の低さはメリットでもあるが、 糞コード氾濫の一因にもなる。 (どこの現場もオレオレツールばっかだよね) 基本的に、VBAにはVBAの作法がある。※1 そこに、JavaやらPHPやらC系のコーディングルールを下手に混ぜ込むのはご法度だと思う。 VBAをやるならVBAに従おう。 (といいつつ、僕もコーディング規約に沿っているか不安な部分もある。Javaライクに書いてたら誰か殴って欲しい。) ということ
次のページ
このページを最初にブックマークしてみませんか?
『プログラマのはしくれダイアリー』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く