タグ

ブックマーク / xuwei-k.hatenablog.com (11)

  • ドワンゴを退職しました - xuwei-k's blog

    4年11ヶ月勤めたドワンゴを退職しました。2019年1月17日が最終出社日で、1月中は有給休暇消化期間で、2月から新しいところで働きます。 4年11ヶ月と書きましたが、半年間育児休暇をとっていたので、その期間を引くと実際働いたのは4年5ヶ月です。 4年制の大学(の文学部書道学科)を卒業して、新卒でとある会社に就職して、いろいろあってドワンゴは4社目でしたが、それ以外の会社で最長で2年程度しか勤めたことがなかったので、そう考えると5年近くも続いたのが感慨深いですね。 このblogを読んでいる人ならばある程度の人は知っているかもしれませんが、気づいたら個人的にScalaにとても詳しくなってコミッターにもなって、ドワンゴでの仕事も、ほぼずっとScala書いていました。 もちろん、デプロイツールやちょっとした管理ツール、細かい運用上のなにかで、多少Python, ansible, shell sc

    ドワンゴを退職しました - xuwei-k's blog
  • 竹添さんが紹介してないScalaのWebフレームワークも含めて2015年現在の状況を色々紹介 - xuwei-k's blog

    ScalaのWebフレームワーク事情 2015年版 - たけぞう瀕死ブログ Scala界隈のWebフレームワークやJsonライブラリは良くも悪くも混沌を極めている(?)わけですが、それにしても竹添さんが紹介してるやつだけでは個人的に不公平感というか、混沌としている感が全然伝わらないと思ったので、全部に詳しい訳ではいですが、自分なりに現状を書きたくなったので紹介しようと思います。 どうせ全部を当に知り尽くしている人なんでいないので、これはこれで不公平というか偏った見方にもなってるかもしれませんが、そんなこと言ってたらこういう記事をいつまで経っても書けないので、思い切って書くことにしました。 いつもの注意書きですが、あくまでこれ書いてる2015年10月現在の状況であり、1年程度経過しただけで状況は劇的に変化する可能性あるので、ご了承ください。 そもそも、あまりこういうの書きたくないのは、わり

    竹添さんが紹介してないScalaのWebフレームワークも含めて2015年現在の状況を色々紹介 - xuwei-k's blog
  • Scala祭と日本のScalaコミュニティ - xuwei-k's blog

    終わってからだいぶ日数が経過しましたが、感想を書いておこうと思います。 去年は運営には関わりませんでしたが、今年はある程度運営に関わりました。主に ニコ生の配信に関して社内の担当者と連絡 数日前のノベルティ袋詰 前日準備 当日の準備、片付け、細かい雑務 ホームページの更新の手伝いを少し などでしょうか。他に働き過ぎた人から比べれば、多分それほど働いていない方だと思いますが、終わってみると「とにかく疲れた」という感想が一番大きいです。みなさんお疲れ様でした。 自分がこういうことあまり得意ではない?慣れてない、というのもあるかもしれませんが、正直来年も積極的に手伝えるかどうかはわかりません。何かしら他のことが忙しかったりしたら、絶対無理だと思いました。 運営側、参加者側からみたScala祭の個人的感想と、あとは 「そもそもカンファレンス運営の何が大変なのか?」 というあたりを書こうと思います。

    Scala祭と日本のScalaコミュニティ - xuwei-k's blog
  • 時代はリテラルレベルプログラミングだ! - xuwei-k's blog

    リテラルレベルプログラミングという用語が存在するのかは知りませんが、べつに厳密に定義せずなんとなく使います。まぁこれ https://github.com/okomok/lity の説明が "Exploring literal-level metaprogramming" なので、そこから拝借という感じですかね。 さて、scalaでは、StringやIntのリテラルでfinal valで定義すると、型自体が特別扱いされる(?)という、知られざる仕様があります。まずは以下のgist御覧ください finalを付けずに val a = "a" だと型は a: String = a なのに対して、final valにすると b: String("b") = b というよくわからない型になってますね。そして def foo(c: b.type) と定義すると、foo("bar")と渡すとコンパイルエ

    時代はリテラルレベルプログラミングだ! - xuwei-k's blog
  • twitterのobjectsize計測するやつ - xuwei-k's blog

    メモ alias objectsize='screpl com.twitter.common%objectsize%0.0.10 "twttr at http://maven.twttr.com/"'https://github.com/twitter/commons/blob/20fabe1bb0/src/java/com/twitter/common/objectsize/ObjectSizeCalculator.java べつにscrepl経由で使わなくてもいいけど。 普通にbuild.sbtに追加するなら以下 resolvers += "twitter" at "http://maven.twttr.com/" libraryDependencies += "com.twitter.common" % "objectsize" % "0.0.10" 同じ固定のオブジェクト返すなら、

    twitterのobjectsize計測するやつ - xuwei-k's blog
  • scalaでは、なぜインクリメントやデクリメントができないのか? - xuwei-k's blog

    javaでは、以下のように int a = 0; int b = ++a; System.out.print(a); // 1 が表示される System.out.print(b); // bも1 ++というインクリメントするための演算子があります。 しかしscalaの場合 var a = 0 // a ++ これはダメ val b = a += 1 print(a) // 1 が表示される print(b) // b はUnit というようにしないといけません。 この違いについてのおなはし(・ω・)ノ これをちゃんと解説しようとすると、かなりややこしいんですが、それなりの理由があります。 すごく細かいところだけど、Javaとの違いで初心者が戸惑いやすいところだと思います。 Javaの言語仕様書の15.14 〜 15.18あたりだとおもいますが、++、+=、--、-=、などは、すべてOpe

    scalaでは、なぜインクリメントやデクリメントができないのか? - xuwei-k's blog
  • Scalaの正規表現 - xuwei-k's blog

    togetter 正規表現が構文として必要かどうかという話から プログラミング言語における正規表現リテラルの必要性について こういう収集がつかなそうな話題にあまり首突っ込むの好きじゃないんですが、blogに書いておけば、まぁそれはそれでScalaをあまり知らない人にとっては役に立つだろうから、丁寧に説明しておきましょう。 togetter(と、その他関連するtweet)はあまり読んでません。 とりあえずkazuhoさんがわかりやすくblogに要点まとめているので、まずそれに対応するかたちで説明しましょう。 また、大前提としてScalaに構文としての正規表現リテラルはありません。なので、以下の説明を読んで 「いや、それは単に苦しい言い訳だし、やはり正規表現リテラルは存在したほうがいいでしょ」 と思う人もいれば 「なるほど、このくらいの機能があれば、たしかにそれほど正規表現リテラル必要ないな」

    Scalaの正規表現 - xuwei-k's blog
  • Scalaにおける細かい最適化のプラクティス - xuwei-k's blog

    列挙順自体はとくに意味ありません。あと「どの最適化がどのくらい速くなるのか?」を詳細に計ったことはないですし、「原理的にこうなってるから(ry」というのを説明するに過ぎません。中には「JITで無意味になるようなどうでもいい細かすぎること」も書いてありますし、最適化のトレードオフとして失うものもあるので、そのあたり自己責任でお願いします。当に最適化が必要とされる場合は、以下のものを無闇に実行するよりまず計測したほうがいいのは、言うまでもありません。*1 1. private[this]をつかえ scalaのvalやvarは、private[this]にしたときのみ、直接のフィールドアクセスになります(それ以外ではメソッド呼び出し)。シングルトンのobjectの場合も同様です。private[this]をつけられる場合はできるだけつけましょう 2. なんでもかんでもListをつかうな 最初の

    Scalaにおける細かい最適化のプラクティス - xuwei-k's blog
  • Scalazのコミッターになりました - xuwei-k's blog

    相変わらず最近もずっと地味なpull reqを送り続けていた*1わけですが、さっき気づいたらコミッターに加えられてた(((((((( ;゚Д゚))))))))・・・*2 githubな時代に「コミッター」という言い方はなんか変な気がしますけど、ほかにないですか ところで、そうするとorganizationの画面で以下のような感じに "publicize member" というボタンがでますけど、単に「自分がこのOrganizationのメンバーだということを公開する」ボタンでいいんですよね?他の人ほとんど押してないけど、まぁ気づいてないだけでボタン押してない理由は特にないのかな・・・。 ちなみにscalazのorganizationには、自分含め20人いました。以外と多い・・・ *1:2013年6月23日時点でコミット数ランキング5位になってる http://f.hatena.ne.jp/

    Scalazのコミッターになりました - xuwei-k's blog
  • highj・・・Java8による本当の関数型プログラミング? - xuwei-k's blog

    最近以下のようなJava8の記事 Java 8を関数型っぽく使うためのおまじない をちょくちょく見かけるようになったので、自分もなにか書こうと思い、前からちょっとだけ気になっていた、highjというライブラリ https://code.google.com/p/highj/ https://github.com/svn2github/highj/tree/master/branches/java8/src/main/java/org/highj を読んでみて、概要を書いてみます。 Javaで関数型プログラミングというと、functional java https://github.com/functionaljava/functionaljava という、一年くらい前にちょっとblogにも書いたものがあります。 http://d.hatena.ne.jp/xuwei/20120427/13

    highj・・・Java8による本当の関数型プログラミング? - xuwei-k's blog
  • ニート終了のお知らせ - xuwei-k's blog

    以下のような経緯で、某社を辞めて、2012年の後半の数ヶ月間は、ニートしていたわけですが 退社します(ワラビモチから2年) 2013年から働くことになりました。1月7日(月曜日)に初出社の予定です。 ユビレジです https://ubiregi.com/ja "ユビレジ"でググる 以下の2つのエントリとか読んでもらえば、(特に内部的なエンジニア事情や職場環境については) 最近どんな感じなのかはわかると思いますし、まだ働き始めてないのにそれほど書くこともないので、特にユビレジ自体については今回は書きません。 開発者としての自分からみたユビレジ PABさんのユビレジへのジョインについて というわけで、「soutaroさんが嫌いなScala」のエンジニアがまた一人増えてしまうわけです。なので、*1 Scalaだけがすごく詳しいエンジニアがこれ以上増えてもあまり意味ないと思うので、*2 JavaS

    ニート終了のお知らせ - xuwei-k's blog
  • 1