タグ

ブックマーク / nowokay.hatenablog.com (18)

  • VR180カメラでVRを撮るのにハマりまくっている。みんなも買おう - きしだのHatena

    先日Oculus Goを買って、360channelで鈴木咲がネクタイ締めてくれる3D動画を見たりして、VRおもしれーとハマっていました。 で、そういうの撮れるデバイスあるかなーと思ったら、VR180という規格をGoogleが作っていて、それに対応したカメラをLenovoやシャオミが出してることがわかり、これは可及的速やかに購入して身の回りを記録するべきだと早速購入。 買ったのはLenovoのMirage Cameraです。 Lenovo VR180対応VRカメラ Mirage Camera with Daydream/Snapdragon 625/1300万画素+1300万画素/4K ZA3A0011JP 出版社/メーカー: Lenovo発売日: 2018/05/11メディア: エレクトロニクスこの商品を含むブログ (1件) を見るそしたらすげー面白かった。登壇のたびに撮影してます。登壇

    VR180カメラでVRを撮るのにハマりまくっている。みんなも買おう - きしだのHatena
    su_zu_ki_1010
    su_zu_ki_1010 2018/07/24
    “いや、これは鈴木咲 紹介エントリではない。”違ったんだ…
  • Java9、10でStringの+=に副作用があるバグ - きしだのHatena

    Java 9、10でStringの+=にバグがあるということがStack OverFlowで報告されていました。 Why does array[idx++]+="a" increase idx once in Java 8 but twice in Java 9 and 10? - Stack Overflow どういうバグかというと「s[i++] += i + ""」のようなコードが正しく動かないというものです。 次のコードを実行してみます。 public class PlusEqual { public static void main(String[] args) { System.out.print(System.getProperty("java.version")); String[] s = {"aa", "bb"}; int i = 0; s[i++] += i + "";

    Java9、10でStringの+=に副作用があるバグ - きしだのHatena
    su_zu_ki_1010
    su_zu_ki_1010 2018/06/12
    ほえー、よくこういうバグ見つけるなぁ、って思ったけど、報告した人は何かの拍子にたまたま踏んだんだろうな。で、調査のために簡単なプログラムを書いて絞り込んで特定。
  • マイクロサービスフレームワークArmeriaを始める - きしだのHatena

    Armeriaのチュートリアルを書いてみる https://line.github.io/armeria/index.html RESTサーバーとして使う まずは、プロジェクトを用意します。 dependencyにcom.linecorp.armeria:armeria:0.62.0を追加します。 mavenの場合、次のようなpom.xmlを用意します。 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://maven.apache.org/POM/4.0.0 http://maven.apache.or

    マイクロサービスフレームワークArmeriaを始める - きしだのHatena
    su_zu_ki_1010
    su_zu_ki_1010 2018/04/10
    “Armeria”って初耳だなと思ったらLINE社が出しているフレームワークなのね。https://line.github.io/armeria/ 勉強不足だった。
  • 作って理解するDIコンテナ - きしだのHatena

    DIコンテナ使ってるけど、アノテーションってなんなの!って聞かれて、作ってみたらわかるよと答えてみたので、自分でも作ってみました。 よくわかった。 「DIコンテナ使うと何がいいの?」ということも、作ってみるとわかります。あと「DIって何がいいの?」に関しては、「DIはちょっとコードを書くのが楽になるだけで、それだけあっても仕方ない、大事なのはコンテナ」と答えるようにしてますが、コード比率からもそれがよくわかります。 続編としてWebフレームワークも作っているので参考まで。 作って理解するWebフレームワーク - きしだのHatena まずはコンテナを作る とりあえず1ソースの状態で。 こんな感じで、管理する型を登録できるようにします。 static Map<String, Class> types = new HashMap<>(); static void register(String

    作って理解するDIコンテナ - きしだのHatena
  • 小学校低学年へのプログラミング教育には効果がないと考えたほうがいい - きしだのHatena

    子どもへのプログラミング教育は早ければ早いほどいいというものではない。 最近子どもへのプログラミング教育が話題になることが多いけど、恐らく小学3年生までの子どもへの効果はほとんどなく、小学4年生でもほとんどの子どもには難しいと思う。 人間の知能の発達には段階があって、必要な段階に達していないうちにそれが必要な教育を行っても効果は望めない。 まず、なんでこのエントリを書いたかというと、プログラミングには適した発達段階があるということを知らないと、その発達段階に達する前にプログラミング教育を行って、もちろんプログラミングは出来なくて、その子には適性がないという判断をしてしまうとうことが起きてしまうんじゃないかと思ったからだ。 まだ適した段階まで来てないだけなのにプログラミング教育をして失敗して「この子にはプログラミングができなかった/興味をもたなかった」という実績を作ってしまうことによって、将

    小学校低学年へのプログラミング教育には効果がないと考えたほうがいい - きしだのHatena
    su_zu_ki_1010
    su_zu_ki_1010 2016/01/07
    早期での"教育"は馴染めないと合わなかったということでバッサリ見切られて、その後に再度"教育"してみるということが無いしな~。
  • Javaでのnullチェックのパフォーマンス - きしだのHatena

    Javaでのプログラムでは、Optionalが入ったとはいえ、nullとのつきあいは依然として重要です。 そんな中で、nullが入ってると困る処理を書くときには、nullチェックを行うほうが安全です。 そのとき、どのようにnullチェックを行うかというのが問題になります。 Java7からは、Objects.requiredNonNullというメソッドが導入されたので、このメソッドを使って、以降の処理でnullじゃないことを保証するということができます。 けど、このrequiredNonNullが遅いんじゃないかという話があるので、どう遅いのか調べてみました。 requireNonNullと同様に、値がnullだったらNullPointerExceptionを吐いて、null以外だったら素通りするという書き方のひとつに、getClassメソッドを呼び出すというものがあるので、これと比べてみま

    Javaでのnullチェックのパフォーマンス - きしだのHatena
    su_zu_ki_1010
    su_zu_ki_1010 2015/04/27
    “requireNonNullは、名前のとおり、nullが来ない前提であることを示すために書くわけで、目的どおりに使いましょう”
  • 「Javaエンジニア養成読本」養成読本 - きしだのHatena

    Javaエンジニア養成読」でてます。 Javaエンジニア養成読 [現場で役立つ最新知識、満載!] (Software Design plus) 作者: きしだなおき,のざきひろふみ,吉田真也,菊田洋一,渡辺修司,伊賀敏樹出版社/メーカー: 技術評論社発売日: 2014/11/11メディア: 大型この商品を含むブログ (9件) を見る すでにもうみんな買って読んでると思うので、内容についてはここで書くまでもないと思います。 内容については、他の著者のエントリや Javaエンジニア養成読が出ます! - Challenge Java EE ! 「Javaエンジニア養成読」が出るのです - 日々常々 Javaエンジニア養成読が発売されました!! - bitter_foxの日記 読んだ人の書評などで。 L'eclat des jours(2014-11-11) 「Javaエンジニア養成

    「Javaエンジニア養成読本」養成読本 - きしだのHatena
    su_zu_ki_1010
    su_zu_ki_1010 2014/11/14
    “いままでやってきてる人が現在の知識を得るためにもおすすめです。”まさにこれ。
  • Java最強リファレンス - きしだのHatena

    ソフトバンク編集の方から送っていただきました!なかなかいいです。というか、これすげー時間かかってそう。 Java最強リファレンス 作者: 田中裕一出版社/メーカー: SBクリエイティブ発売日: 2014/10/25メディア: 単行この商品を含むブログ (1件) を見る 書名のとおりリファレンスなんですが、逆引きになってます。逆引きなので、やりたいことからJava APIを引く形になってます。 これが特に威力発揮してるのが、日付時刻の扱いやファイル操作です。日付時刻の扱いやファイル操作は、Java 8でDate & Timeが入ったり、Java 7でNIOが強化されたりで、同じことを新しい書き方と古い書き方で書けるようになってます。これらがやりたいことごとにまとまっているのは、結構便利だと思います。 特に、ファイル操作の新旧API比較表は、概要みるのに便利そうです。 よくないところとして

    Java最強リファレンス - きしだのHatena
    su_zu_ki_1010
    su_zu_ki_1010 2014/11/10
    最近欲しい本が増えて困っている…
  • Java8日付時刻APIの使いづらさと凄さ - きしだのHatena

    いままでのJavaでは、日付時刻を扱おうとするとめんどくさい割に非常に低機能でした。 Java8では、新たに日付時刻APIが導入され、めんどくささが増しつつ非常に高機能になりました。 (以降、Java8で導入された日付時刻APIを単に「日付時刻API」と表します) もちろん、慣れてきて、ちょっとしたサポートメソッドを用意してやれば、結構使いやすいのですが、それは「このAPIは使いやすい」という評価にはなりません。 つまり日付時刻APIは、慣れないとぜんぜんわからないし、サポートメソッドがないと面倒なコードが必要ということです。 いろいろあってよくわからない 日付時刻では、時点を扱うInstantや期間を扱うPeriod、時間量をあらわすDurationなど多くのクラス・インタフェースが導入されています。 これらは、IDEの補完でAPIを探りながら機能を推測すれば、それなりにドキュメントなし

    Java8日付時刻APIの使いづらさと凄さ - きしだのHatena
    su_zu_ki_1010
    su_zu_ki_1010 2013/09/17
    ふむふむ。コメント欄の言い訳(という名の解説)も参照ですね。
  • Struts1職人の朝は早い - きしだのHatena

    Struts1職人の朝は早い。 「毎日毎日DBとアプリサーバーが違う。機械ではできない」 「このstruts-config.xmlはダメだ。ほら、すぐ裂けてしまう」 ここ数年はLLとScalaに押されているという。 下町Struts1の灯火は弱い。だが、まだ輝いている。 「やっぱりアレですね、たいていの若い人はすぐやめちゃうんですよ」 「それを乗り越える奴もたまにいますよ。そういう奴が、これからのStruts1界を引っ張っていくと思うんですね」 今日も彼は、日が昇るよりも早くstruts-config.xmlの整形を始めた。明日も、明後日もその姿は変わらないだろう。 そう、Struts1職人の朝は早い。 夜も遅い。

    Struts1職人の朝は早い - きしだのHatena
    su_zu_ki_1010
    su_zu_ki_1010 2013/06/25
    eclipseのプラグイン使えばいいじゃん。
  • Java8で強化されたMapと、書きやすくなったメモ化再帰 - きしだのHatena

    Java8のlambda構文の話を書くと、旧来の書き方でいいというコメントがつくのですが、それでも便利になったMapの恩恵を受けることは多いんじゃないかと思います。 ※ 2018/5/31 Java9からはメモ化再帰には使えなくなっています ※ 2019/2/15 なんか問題ない? Mapには、lambda式を使ったメソッドが多く追加されていますが、たとえばgetOrDefaultメソッドのようなlambda式を使わないメソッドも追加されていて、これも便利です。 そして、このようなlambda式を使わないメソッドも、間接的にはlambda構文サポートでの言語拡張のおかげです。 Mapはインタフェースなので、Java7までの構文でメソッドを追加しようとすると、Mapを実装しているすべてのクラスに新しいメソッドの実装を追加する必要がありました。そしてそれは現実的に不可能なので、今までMapなど

    Java8で強化されたMapと、書きやすくなったメモ化再帰 - きしだのHatena
    su_zu_ki_1010
    su_zu_ki_1010 2013/05/24
    シンプルになるのはいいんだけど、業務で使えるのは数年先のお話。
  • 英単語帳を買ったら思いのほか面白かった - きしだのHatena

    プログラム作業中に困ったときに検索してひっかかった英語技術文書を読む程度だと、辞書をひくことなく英語が読めるのだけど、技術解説になるとちょっとつらいし、ブログにのってる意見になると知らない単語が増え、ニュースになると知らない単語の頻度があがって、そして問題は、技術とは関係ない普通の文章になると知らない単語だらけ、っていう感じの単語力なので、これはどうにかしないとなーと思ってたのでした。 で、この2月のエントリで 「読解にある程度困らない語彙数というのは、8000語程度」 「とにかく、8000語程度は何も考えずに覚えてしまったほうがいい」 とあったので、時間ができたらやろうと思ってたのだけど、やっと時間ができる可能性がでてきたので、紹介されてたアルクのSVLというのを基準にした単語のを探して買ってみた。 時間のない人のための、気の英語学習法 - アスペ日記 Amazonで探すと、頻出1

    英単語帳を買ったら思いのほか面白かった - きしだのHatena
  • Java大好き男に「どのIDEが好き?」と訊ねられたとき、女はどう答えたらいいの? - きしだのはてな

    あ、まず前提として、 貴女がJava大好き男を夢中にさせることが、 はたして貴女を幸福にするかどうか、それはまた別問題だけれど。 とはいえ、Java大好き男たちは玉石混交ながら、 大手SI系の給料高い男なども多く、 したがって、釣り師たる女たちにとっては、 なかなかあなどれない釣り場です。 では、Java大好き男に「どのIDEが好き?」と訊ねられたとき、 貴女は、どう答えれば理想的でしょう? まず最初に、その男がAndroidのようなタイプの携帯アプリと あとはJavaScript、そして(アプリ公開するほどではないけれど)iPhoneアプリが大好きな、 そんなタイプの場合は、 貴女はかれの目を見て、微笑みとともに質問など無視して、こう言いましょう、 「わたしが、いいIDEを作ってあげる♪」 これこそまさに必殺の答えです。 そこでJava大好き男が、えへへ、とやにさがったならば、 貴女は、

    Java大好き男に「どのIDEが好き?」と訊ねられたとき、女はどう答えたらいいの? - きしだのはてな
    su_zu_ki_1010
    su_zu_ki_1010 2013/05/16
    あかん、落ちてしまう
  • Java 8を関数型っぽく使うためのおまじない - きしだのHatena

    やあ、3月に延期になったとはいえ、Java 8リリースが具体化してきましたね。 もうこれで、Lambdaがはずれるとかいうことはなさそうです。 ところで、Java 8で関数型っぽいことができるようになってうれしいのですが、ちょっと記述が冗長です。ということで、短く書けるおまじない考えてみました。 Function型 さて、まずはJava 8で標準で入ったFunction型をみてみましょう。パッケージ名まで含めるとjava.util.funciton.Functionです。 こんな感じで使います。 Function<String, String> enclose = s -> "[" + s + "]"; Genericsでの型指定の最初が引数、あとが戻り値の型です。ここではStringをとってStringを返す関数としてencloseを定義しています。 これを呼び出そうとすると、こんな感じ

    Java 8を関数型っぽく使うためのおまじない - きしだのHatena
    su_zu_ki_1010
    su_zu_ki_1010 2013/05/01
    もはや何がなんだか…
  • ファイル処理するコードがJSFであっというまにファイルアップロード対応になって驚いた件 - きしだのはてな

    ちょっとExcelファイルを処理するコードを書いたんですよ。 まあ、Apache POI使ってこんな感じだったとします。 @Named public class Importer{ public void doProcess(InputStream is){ System.out.println(WorkbookFactory.create(is) .getSheetAt(0).getRow(0).getCell(0).getStringCellValue()); } public void doProcessWithFile(File f){ doProcess(new FileInputStream(f)); } } これを、JSF+PrimeFacesでファイルアップロード対応にするには、こんな感じのコードを付け加えます UploadedFile uploaded; public v

    ファイル処理するコードがJSFであっというまにファイルアップロード対応になって驚いた件 - きしだのはてな
    su_zu_ki_1010
    su_zu_ki_1010 2013/04/09
    メモメモ
  • MVCは死んだ。MOVEするときがきた - きしだのHatena

    Conrad Irwinさんの「MVC is dead, it's time to MOVE on.」を訳してみました。 MVC is dead, it's time to MOVE on. この訳文も原文のライセンスを引き継いでCC-BY-3.0ライセンスで利用可能とします。 追記13:58 すでに訳してた方がいました。MVCの時代は終わった。MOVEを使い始めましょう。 - ふじこのプログラミング奮闘記 MVCは死んだ。MOVEするときがきた MVCはすばらしいアイデアだ。モデルを持ち、モデルは内部に少しの状態をもつ。ビューは内部に少しのUIをもつ。そして、コントローラは内部に少しの・・・ 何を持つ? 私は確かにこのことに気づいた最初の人物ではない。しかし示されたようなMVCの問題のために、あなたは最後には過剰なコードをコントローラに詰め込むことになる。なぜなら、他にどこに入れていいか

    MVCは死んだ。MOVEするときがきた - きしだのHatena
  • 人間関係をリアルとバーチャルに区別する意味はあるだろうか - きしだのHatena

    今日ちらっと、「ソーシャルとはリアルの人間関係のことである(キリッ」っていう文章みて、こいつバカじゃねーのって思わなかったことにしておくけど、そういう文章をみたんだ。 それで思った。じゃあリアルの人間関係ってなんだ? この対比で言う場合に、バーチャルのほうはわかりやすい。一度も実際に会ったことがない人との関係。でも、じゃあリアルって? 3年くらいはてなTwitterでお互いを認識して、一度だけ同じ飲み会に参加して5分くらい話をした人とは、リアルの人間関係? メールで仕事をもらって、一度も電話することもなく声を聞くこともなく、メールとチャットで打ち合わせをして、納品して請求書送ってお金を支払ってもらった人は、リアル?バーチャル? お金がリアルだから仕事はリアルだろって?じゃあ仕事の前の打ち合わせだけで仕事が流れたら?Twitterで、なんとなく仕事もらえねーかなーと思いながらつながってるの

    人間関係をリアルとバーチャルに区別する意味はあるだろうか - きしだのHatena
    su_zu_ki_1010
    su_zu_ki_1010 2012/02/08
    リアルとバーチャルの境目は難しいな。個人的には、リアルとバーチャルの境目は無くて、大切なのはお互いの信頼関係を築けているかどうか、だと思う。
  • 「低要求での品質逆転の法則」というのを思いついた - きしだのHatena

    つまり、ソフトウェアのあらゆるパラメータで、要求が低いときには工夫をしないほうが品質が高くなるという法則。 たとえば、アルゴリズムというのは理論的にはデータが増えたときに性能悪化がゆるやかなもののほうがよいということになってる。 でも多くの場合で、よいアルゴリズムは、少ないデータ数では単純なアルゴリズムに負ける。ソートなんかだと、データ数が一定以上のときはクイックソートだけどデータ数が少ないときはマージソートを使うということがよく行われる。「指数時間」かかると言われるアルゴリズムは遅くて使い物にならないということだったけど、それをがんばって「多項式時間」という使い物になるはずのアルゴリズムに改良したら複雑になりすぎて、通常のデータ数なら「指数時間」のアルゴリズムよりも遅いということがよくある。 データの格納にしても、データベースは便利だけど、データ数が少ないときは単純なテキストファイルのほ

    「低要求での品質逆転の法則」というのを思いついた - きしだのHatena
    su_zu_ki_1010
    su_zu_ki_1010 2012/02/07
    変にこだわるな、ということか。
  • 1