並び順

ブックマーク数

期間指定

  • から
  • まで

121 - 160 件 / 1676件

新着順 人気順

scalaの検索結果121 - 160 件 / 1676件

  • KotlinをKotlinらしく、そして可読性を高く保つ運用知見 - エキスパート長澤太郎に聞く実装のイロハ - エンジニアHub|Webエンジニアのキャリアを考える!

    KotlinをKotlinらしく、そして可読性を高く保つ運用知見 - エキスパート長澤太郎に聞く実装のイロハ 近年注目を集めるKotlinはどのように書き、どのように運用するのがいいのか。2012年からKotlinに親しむUbie社の長澤太郎さんに、その経験から得られたKotlinノウハウを聞きました。 2011年7月に登場したJVM言語・Kotlinは、近年多くの注目を集めている言語の1つです。Androidアプリの開発言語としてGoogle I/O 2017で正式採用されたことも契機となり、Kotlinはその存在感を一挙に高めました。 そして、この言語に黎明期から親しみ続けてきたのが、Ubie株式会社の長澤太郎(ながさわ・たろう/ @ngsw_taro )さんです。業務や登壇、執筆活動など、多くの局面でKotlinを活用し、ノウハウを蓄積してきた長澤さんに、Kotlinの言語特性やより

      KotlinをKotlinらしく、そして可読性を高く保つ運用知見 - エキスパート長澤太郎に聞く実装のイロハ - エンジニアHub|Webエンジニアのキャリアを考える!
    • Java 5.0時代の非同期処理技術から学び直すScala/Java非同期処理

      【Oracle Cloud ウェビナー】Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (2023年5月24日)

        Java 5.0時代の非同期処理技術から学び直すScala/Java非同期処理
      • Chatworkテックリードが“今”の自分に集中してきた理由。Scala×DDDに出会い、サービス改善に生かすまで - Findy Engineer Lab

        自分が気づいてなかった資質を、探して、磨く 劣等感に消耗するより、目的志向で考える オープンソースコミュニティへの参画 ドメイン駆動設計とScalaが「点」となる ドメイン駆動設計との出会いと成果 遅延評価的学習法でScalaを習得 Scalaを使ってDDDを実践するスタイルを確立した 実験的に導入して結果が出れば業務での普及も進む 積み上げてきたScalaとDDDの開発スタイル Scalaコミュニティとともに 新しい挑戦で新しい「点」ができ、そして「線」につながる 「いずれどこかで点がつながって実を結ぶだろう」 過去も未来も思い切って手放し、今の自分に集中する こんにちは、Chatworkでテックリードをしている、かとじゅん(@j5ik2o)です。 今年(2020年)で48歳になりましたが、技術に前向きになったというか、本気を出したのは37歳ごろでした。遅いな……(笑)。まぁ、遅い早いが

          Chatworkテックリードが“今”の自分に集中してきた理由。Scala×DDDに出会い、サービス改善に生かすまで - Findy Engineer Lab
        • これだけ読めばOK!Scalaの環境構築2023 - Lambdaカクテル

          自分は、仕事でScalaを数年間・プライベートな経験を含めると10年弱のScalaの経験がある、そこそこの熟練Scalaエンジニアだ。チームにメンバーが入ってきたり他人に勧めるたびにScalaの環境構築を教えている一方、最新の知見を反映した記事が無くて他人に勧めづらかったので、自分が書くことにした。 現在ある記事 けっこう古びている 覚えながら書かれていることが多いのでやや曖昧な箇所がある(でもありがとう!) 最新のツールが利用できておらず無駄が多い 網羅的でない 今回目指す内容 最新の知見を活用して最短距離を目指す 何もない状況から一通りのツールが揃う所を目指す Scalaの環境構築は年を追うごとに簡単になってきているので、大多数の読者は引っかからずに進めるようになっているはず。 Scalaは基本的にJVMで動作する言語だ。このため環境構築にはJVMのセットアップも含まれるのだが、それに

            これだけ読めばOK!Scalaの環境構築2023 - Lambdaカクテル
          • 【第5回】「型」はウェブシステム開発に「エンドゲーム」をもたらすか | GeeklyMedia(ギークリーメディア) | Geekly(ギークリー) IT・Web・ゲーム業界専門の人材紹介会社

            伊藤直也さんが「今逢いたい」ソフトウェアエンジニアに声をかけて対談を重ねてきたシリーズの最終回は、これまでの対談の文章化を手がけたラムダノート株式会社の鹿野桂一郎さんとの異色対談です。コンピュータ技術書や記事の編集者であると同時に仕事や趣味でHaskellのプログラムも書く鹿野さんの視点を通し、現代のウェブシステム開発に伊藤さんが何を見ているのか、特に「型」と「エンジニアの学び」というこれまでの対談に通底するテーマについて掘り下げます。 ・伊藤 直也さん / 株式会社 一休 執行役員 CTO 新卒入社したニフティ株式会社でブログサービス「ココログ」を立ち上げ、CTOを務めた株式会社はてなでは「はてなブックマーク」などの開発を主導。グリー株式会社では統括部長としてSNSを担当した。2016年4月、一休に入社し執行役員CTOに就任。 ・鹿野 桂一郎さん / ラムダノート株式会社 代表取締役社長

            • 自動プログラミングAIの「AlphaCode」をDeepMindが発表、競技プログラミングレベルのコード生成が可能

              DeepMindが競技プログラミングレベルのプログラミングが可能な人工知能(AI)の「AlphaCode」を発表しました。AlphaCodeのほかにも自動でプログラミングが可能なAIは存在しますが、AlphaCodeは414億ものパラメーターを保持した特に精度の高いAIに仕上がっているとのことです。 Competitive programming with AlphaCode | DeepMind https://deepmind.com/blog/article/Competitive-programming-with-AlphaCode Competition-Level Code Generation with AlphaCode (PDF)https://storage.googleapis.com/deepmind-media/AlphaCode/competition_leve

                自動プログラミングAIの「AlphaCode」をDeepMindが発表、競技プログラミングレベルのコード生成が可能
              • コンセプトから理解するRust

                2022年2月12日紙版発売 2022年2月7日電子版発売 原旅人 著 B5変形判/360ページ 定価3,520円(本体3,200円+税10%) ISBN 978-4-297-12562-2 Gihyo Direct Amazon 楽天ブックス ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo honto 本書のサポートページサンプルファイルのダウンロードや正誤表など この本の概要 Rustはメモリ安全,スレッド安全を保ちつつ,高パフォーマンスなプログラムを開発できるプログラミング言語です。また,手続き型,オブジェクト指向型,関数型でのプログラミングに対応できるマルチパラダイムの言語でもあります。ただ,そういったRustのポテンシャルを引き出すには,所有権やライフタイム,ジェネリクスやトレイトといった特徴的な

                  コンセプトから理解するRust
                • Software Design、WEB+DB PRESS全巻読破のすすめ

                  Web開発の歴史の復習の仕方 悲報: WEB+DB PRESSが休刊 22年以上続いていたWEB+DB PRESSが休刊するそうです。Software Design、WEB+DB PRESS共に年間購読していたのですが、とても残念です。 日本語と英語、少し中国語の技術書を普段から読み漁っているのですが、本ほどガッツリでなく、ブログよりはちゃんとバリデートされた上でトレンドをおさえた雑誌文化は割合日本的で、他の言語圏だとあまりない文化だとも感じています。 技術評論社からでているSoftware Design、WEB+DB PRESSなのですが、Software Designの創刊が1990年11月で、WEB+DB PRESS Vol.1が2000年12月で10年の差があります。 どちらかというとSoftware Designがインフラ&バックエンドでWEB+DB PRESSがバックエンド&ク

                    Software Design、WEB+DB PRESS全巻読破のすすめ
                  • dotfiles 振り返り2022

                    まだまだ 2022 年の振り返りが終わらないぜということで今日は dotfiles の振り返り。dotfiles はその変遷を見ると面白いので、毎年やろうと思い早速やっていきたい。 ちょっと前に M2 の MBA 買って、dotfiles を一新した。 これが今の dotfiles だ。 https://github.com/sadnessOjisan/dotfiles コンセプト 自分は Mac しか使わない が、WSL 環境も持ってるのでシェル周りの環境は移せるように作っておく(原神しかしないけど・・・) make all だけでセットアップが完結する 手作業はしない なるべく標準に準拠し、プラグインやライブラリへの依存を減らす。入れる場合も単体で剥がせるものを選ぶ。 シンボリックリンクを貼って、dotfiles の変更が即時に反映されるようにする .config など XDG に準拠

                      dotfiles 振り返り2022
                    • 誰のためのソースコード? - Shin x Blog

                      「誰のためのデザイン?」の旧版と改訂・増補版を読みました。 以前に旧版を読んだのですが、その記憶もあやふやなくらい前だったので、あらためて読み直し、その面白さゆえに改訂・増補版も購入してこれも読み終えました。 Web システム開発を生業としているので、日々ユーザとのインタラクションが発生するプロダクト開発に関わっているわけで、ユーザがどのように製品を認知し、使うかという内容は参考になりました。 それとは別にソフトウェア開発という観点で、ソースコードを読む時に人がどのように認知するのかという点でも興味深いものでした。このエントリでは、自分なりに整理したソースコードと概念モデルについて残しておきます。 ソースコードとメンタルモデル ソースコードの概念モデル 実行モデル プログラマモデル ユーザモデル 誰のためのソースコード? さいごに メモ ソースコードとメンタルモデル ある程度、経験のあるプ

                        誰のためのソースコード? - Shin x Blog
                      • ニッチすぎる!?知られざる広告JavaScriptの世界 - CARTA TECH BLOG

                        こんにちは。雨宮(@rail44)です。 普段はヨーヨーやポケモンに興じるかたわら、株式会社fluctで広告配信システムの開発を担当しています。 fluctは広告業界ではSSP(Supply-Side Platform)と呼ばれる立ち位置で、インターネットメディアの収益の最大化にフォーカスした事業を行っています。 私たちのシステムを使うと、広告によるマネタイズが面倒な運用無しに出来る。といったイメージです。 この記事では、自分が直近で担当をしている広告の配信スクリプトと、普段注目されづらいその裏側について書いていきたいと思います! 広告タグの構造 さて、webページに広告を表示したい場合、アプリケーションはHTMLで記述されているため、広告もHTMLタグの形でお渡しすることになります。 (※fluctではモバイルアプリや動画プレイヤーへの広告配信も行っており、それらの場合はHTMLではない

                          ニッチすぎる!?知られざる広告JavaScriptの世界 - CARTA TECH BLOG
                        • Javaを使うなら知っておきたい技術、フレームワーク、ライブラリ、ツールまとめ

                          Javaの開発と言っても、各種ミドルウェアやフレームワーク、ライブラリ、ツールなどが豊富にあり選択に悩むことは少なくないと思います。 そこで関連技術のインデックスになればと作成しました。 あくまで知っている範囲で記述しているので、コメントしてもらえれば随時追加します! すべてを書くと膨大な量になるため、現状採用が減ってきているものや、そもそもあまり採用されていないもの、後継があったり、類似のものと比較した場合に明らかに劣っているものは省いています。 ちなみにライブラリには高機能なものも多いので、分類は参考程度にご覧下さい。 サーバ系 Apache HTTP Server 世界中でもっとも多く使われているWebサーバ。 nginx フリーかつオープンソースのWebサーバで、処理性能・高い並行性・メモリ使用量の小ささに焦点を当てて開発されている。 Tomcat Java ServletやJSP

                            Javaを使うなら知っておきたい技術、フレームワーク、ライブラリ、ツールまとめ
                          • Rustで始めるwebフロント開発。フロントエンジニアのためのRustメモリ管理入門

                            この記事は、Supershipグループ Advent Calendar 2021の23日目の記事になります。 はじめまして。まさやんです。 普段はバックエンドをメインで書きつつ、フロント書いたり、AWSでインフラ構築したりと色々やらせてもらってます。 今回は、フロントエンドをメインにやってる人が、rustを始める時に参考になる記事を書こう!と思い立ち、書いてみました。 この前、JSConfの講演を聴いてて、rustの話もどんどん増えているなあと思ったのがきっかけです。 近いうちに、フロントの人もrust触れないとね〜、という時代になるかもなので、自身の学習も兼ねて整理してみました。 自分がつまずいたり、勉強する時参考になったなーという情報を整理して、最後にrustのフレームワークを紹介して終わりにします。 そこそこ長いので、休み休み読んでください。 対象読者 フロントエンドを書いていて、最

                              Rustで始めるwebフロント開発。フロントエンジニアのためのRustメモリ管理入門
                            • とほほのWWW入門

                              はじめに ご使用上の注意 (1) 主な更新履歴 (24) 管理者へのメール (1) 自己紹介 (1) 基本編 用語集 (82) Webページ作成入門 (7) 逆引きリファレンス (32) フォーマット HTML (400) HTML5 (7) XHTML (1) MathML (1) DTD (1) JSON (1) SVG (1) VML (1) GIF (1) CSV (1) セマンティック・ウェブ (1) CSS CSS (ABC順)(719) Bootstrap (61) Less (1) Sass (1) Tailwind CSS (1) CSSフレームワーク (1) リセットCSS (1) プログラミング言語 JavaScript (39) TypeScript (1) Java (25) Perl (4) PHP (14) Ruby (11) Python (13) Go (

                              • なぜReactでもVueでもなくElmを使っているのか - Qiita

                                Functional-Static-Strong-Managed −0.25 (0.04) ∗∗∗ Functional-Dynamic-Strong-Managed −0.17 (0.04) ∗∗∗ Proc-Static-Strong-Managed − 0.06 (0.03) ∗ Script-Dynamic-Strong-Managed 0.001 (0.03) Script-Dynamic-Weak-Managed 0.04 (0.02) ∗ Proc-Static-Weak-Unmanaged 0.14 (0.02) ∗∗∗ 各カテゴリに属する言語は以下のとおりです。 Functional-Static-Strong-Managed: Haskell、Scala Functional-Dynamic-Strong-Managed: Clojure、Erlang Proc-Sta

                                  なぜReactでもVueでもなくElmを使っているのか - Qiita
                                • アンドパッドで活躍中の id:shiba_yu36 を訪問 | はてな卒業生訪問企画 [#2] - Hatena Developer Blog

                                  こんにちは、CTOの id:motemenです。 Hatena Developer Blogの新たな連載企画「卒業生訪問インタビュー」では、創業からはてなの開発に関わってきた取締役の id:onishi、CTOの id:motemen、エンジニアリングマネージャーの id:onkが、いま会いたい元はてなスタッフを訪問してお話を伺っていきます。 連載第1回では、id:onishiが シリコンバレーのスタートアップ企業Launchableでアプリケーションエンジニアをしている id:ninjinkun(敬称略)こと、浅野慧さんにご協力いただきました。 第2回である今回は、CTOのid:motemenが担当します。 ゲストは、建築・建設業界のDXを推進、シェアNo1※の建設プロジェクト管理サービスを提供している株式会社アンドパッドでシニアソフトウェアエンジニアを務める id:shiba_yu36

                                    アンドパッドで活躍中の id:shiba_yu36 を訪問 | はてな卒業生訪問企画 [#2] - Hatena Developer Blog
                                  • コードを読み込みScalaの関数型パラダイムを学ぶ - xuwei-kがScalaを学ぶために読んだOSS|ハイクラス転職・求人情報サイト AMBI(アンビ)

                                    コードを読み込みScalaの関数型パラダイムを学ぶ - xuwei-kがScalaを学ぶために読んだOSS 数多くのScala関連OSSにコミットを続ける吉田憲治(xuwei-k)さん。その精力的な活動を支える、関数型の知見の源をうかがいました。 オブジェクト指向言語と関数型言語の特徴を併せもつマルチパラダイム言語・Scala。この言語に関連するOSSのコミット履歴には「 xuwei-k」というアカウントが頻繁に登場します。今回お話を聞いた吉田憲治(よしだ・けんじ/ @xuwei_k )さん、その人です。 吉田さんはScalaのスペシャリストとして、数多くのScala関連OSSにコミットを続け、2018年、Scalaコミュニティに対する貢献者に贈られる「Phil Bagwell Award」を受賞しています。界隈屈指のコントリビューターとして知られる吉田さんに、Scalaのスキルを研鑽して

                                      コードを読み込みScalaの関数型パラダイムを学ぶ - xuwei-kがScalaを学ぶために読んだOSS|ハイクラス転職・求人情報サイト AMBI(アンビ)
                                    • Scalaを使っているプロジェクトにメンバーがジョインする時に勧めている資料まとめ | DevelopersIO

                                      はじめに 業務のメインプロジェクトではScalaを使うことが多く、チームに新しく加わったメンバーのオンボーディングではScala言語自体やライブラリ(主にtypelevel系)の資料を紹介する機会が少なくありません。毎回リンクのリストを作り、コメントを添えて共有するのですが、回数も増えてきたので記事にしてみることにしました。 Scala言語の入門 ScalaText 『Scala スケーラブルプログラミング』(第三版) 『Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド』 1つ目のScalaTextは有名なドワンゴさんの研修資料が日本のScalaコミュニティに寄贈にされたものです。2つ目以降はScalaTextの冒頭でも言及がありますが、入門としては鉄板かなと思います。他のプログラミング言語を修得されているのであればScalaTextを一通り

                                        Scalaを使っているプロジェクトにメンバーがジョインする時に勧めている資料まとめ | DevelopersIO
                                      • Rust の DI を考える –– Part 2: Rust における DI の手法の整理 - paild tech blog

                                        paild 社でお手伝いをしている yuki です。前回に引き続き Dependency Injection 略して DI の話題を書いていきたいと思います。今回は Rust における DI についていろいろと考えてみました。今回紹介する実装はかなり単純な例を用いたもので、この記事からさらにみなさんのアプリケーションの実装状況に合わせていくつか工夫は必要になるかもしれません。ただ、とっかかりとしては十分なものになっていると思うので、DI でお困りの方はぜひ参考にしてみてください。 今回実装したいアプリケーションのお題について 今回紹介する技法の種別について コンストラクタインジェクション 静的ディスパッチを用いたもの 動的ディスパッチを用いたもの 静的ディスパッチと動的ディスパッチの利点・欠点 shaku (DI コンテナ)を用いたインジェクション shaku の利点・欠点 余談: DI

                                          Rust の DI を考える –– Part 2: Rust における DI の手法の整理 - paild tech blog
                                        • メルペイにおける大規模バッチ処理 | メルカリエンジニアリング

                                          この記事は MERPAY TECH OPENNESS MONTH の 13日目の記事です。 こんにちは、メルペイ ソフトウェアエンジニアの laughngman7743 です。 メルペイではマイクロサービスにおけるデータストアのデータや、アプリケーションのログを有効活用できるような基盤づくりをデータプラットフォームチームとして行っています。 データプラットフォームではラムダアーキテクチャに基づき、スピードレイヤとして Cloud PubSub と Cloud Dataflow を利用した仕組みに加え、バッチレイヤとして Cloud Composer と Cloud Dataflow を利用した仕組みを構築しています。 この記事ではバッチレイヤのアーキテクチャについてご紹介します。 スピードレイヤのアーキテクチャについては 「GCPでStreamなデータパイプライン始めました」 を参照くださ

                                            メルペイにおける大規模バッチ処理 | メルカリエンジニアリング
                                          • gojqのパーサーを書き直しました - プログラムモグモグ

                                            jqはJSONを絞り込むツールですが、実はれっきとしたプログラミング言語です。 算術演算子、論理演算子、分岐構文、try・catch、そして関数定義があり、ループは再帰関数で実装します。 単に .foo とか .[0] とかでJSONを辿るだけのツールだと思われている方は、builtin関数の定義を見ていただくと良いかと思います。 selectやmapのように、よく使われる関数でさえ内部実装になっていない (Cで書かれていない) のは面白いですね。 jqのクエリを思ったように書けないという経験から、jqをより深く知るためにGo言語で再実装したのがgojqです。 去年の4月から開発を始め、8月にブログ記事を書きました。 jqのほぼすべての機能を実装しており、pure Goで書かれているのでGo言語のツールに簡単に組み込むことができます。 この記事公開以降も開発を続けています。 --arg,

                                              gojqのパーサーを書き直しました - プログラムモグモグ
                                            • GitLab、バグや脆弱性の検出ツール「GitLab Protocol Fuzzer Community Edition」をオープンソースで公開。APIやHTTP経由などでファジングを実行

                                              GitLab、バグや脆弱性の検出ツール「GitLab Protocol Fuzzer Community Edition」をオープンソースで公開。APIやHTTP経由などでファジングを実行 ファジングとは、検査対象のソフトウェアに「ファズ(fuzz)」と呼ばれる問題を引き起こしそうなデータを大量に送り込み、その応答や挙動を監視することでバグや脆弱性を検出する検査手法です。 GitLab Protocol Fuzzer Community Editionは、GitLabが2020年6月に買収したPeach Techが提供する商用のファジングツール「Peach Fuzzer Professional」をベースにしたもの。 「Peach Fuzzer Professional」と、それをベースにオープンソース化されたGitLab Protocol Fuzzer Community Edition

                                                GitLab、バグや脆弱性の検出ツール「GitLab Protocol Fuzzer Community Edition」をオープンソースで公開。APIやHTTP経由などでファジングを実行
                                              • 関数型プログラミングはまずは純粋関数型言語を用いて、考え方から理解しよう

                                                この記事は、関数型プログラミングはまず考え方から理解しよう の記事を純粋関数型言語Elmで書き換え、一部の文章について批判的に言及させていただいた記事になります。この記事を書こうと思ったきっかけとしては、今回参考にさせていただきた記事が過去に書かれたものにも関わらず、今に渡っても見られていそうなこと。未だにパラダイムの理解に関する誤解が多く散見されること。改めて純粋関数型言語の実用性・有用性について、見直されるべきだと思い、この記事を執筆させていただきました。 次のステップアップ記事は、[超入門] FizzBuzzで考える関数型プログラミング学習を純粋関数型言語でやる理由です。 はじめに、この記事の主張を結論としてまとめておきます。 対比すべきは、関数型プログラミングとオブジェクト指向プログラミングではなく、関数型プログラミングと手続き型プログラミングである 関数型プログラミングの考えを学

                                                  関数型プログラミングはまずは純粋関数型言語を用いて、考え方から理解しよう
                                                • 坂と酒の街、神楽坂で過ごしたうたかたの日々(文:きくち) - SUUMOタウン

                                                  著: きくち遡ること約10年、ある年の春、浪人という名の無味乾燥とした懲役労働のような日々を終えて、都内某大学に入学した。現役入学という主要な潮流に乗り遅れ19歳になっていた僕は、浪人生活の合間、大学生活漫画の金字塔『げんしけん』を読むことにより、猛々しく妄想を膨らませていた。 キャンパス内でめくるめく繰り広げられるサークル活動によって、自らの大学生活が、晩春の新緑も恥じらうような爽やかな青春群像劇になるのではないか。そう思っていたのである。 4月中旬、僕はそんな浅薄な期待を胸にたずさえ、適当に勧誘を受けた適当なスポーツ系のサークルに入ることを決めた。 全国から集まった友との交歓、目標を共有し高め合う日々、同級生との一夏の恋……そんな学生生活の漫画的理解は、秋を待たずして、全てが誤解を切り貼りしただけのハリボテであることが判明した。 学生生活の現実は総括だった 数回の練習への参加を経て、夏

                                                    坂と酒の街、神楽坂で過ごしたうたかたの日々(文:きくち) - SUUMOタウン
                                                  • 設計のための、問題の捉え方––ドメイン知識の暗黙知を形式知にする Part1

                                                    2018年11月8日、Classi株式会社が主催するイベント「設計Night2018」が開催されました。Builderscon tokyo 2018にて好評を博したプレゼンテーション「開発現場で役立たせるための設計原則とパターン」をもとに、発表だけではカバーできなかった3つの論点について、3名の登壇者がより詳しく深掘りします。プレゼンテーション「ドメイン知識の暗黙知を形式知にするためには」に登壇したのは、magnolia_k_氏。講演資料はこちら 設計のための問題の捉え方 magnolia_k_氏:実は今日で「設計Night」に出たの2回目なんですね。1回目は、今年の3月ぐらいに吉祥寺の居酒屋で、しんぺいさんのブログを見せながらみんなで酒を飲む「酔いどれ設計Night」という会をやって。7人ぐらいですごい楽しかったんですけど、今日は僕としんぺいさん以外、全員抽選に外れるという(笑)。 (会

                                                      設計のための、問題の捉え方––ドメイン知識の暗黙知を形式知にする Part1
                                                    • サイバーエージェントでの6年間と、次にやること - くろの雑記帳

                                                      前回の記事から2.5年くらい経過したので近況を書いてみます。 kurochan-note.hatenablog.jp そろそろ何をやってきたのか忘れそうなので振り返っておくのと、今思っていることについて雑多に書き出しておきます。 今回はちょっと長めなので目次を作っておきました。 目次 サイバーエージェントでの6年間 給料の話 暇にさせてくれない上司と会社 技術選定の自由という名の動物園 採用には全力を尽くす 挑戦した敗者にはセカンドチャンスを 次は何をやるのか さいごに サイバーエージェントでの6年間 既に細かいことをわすてしまっているような気がするので印象的な出来事だけ列挙してみました。 2015年 飛び交う言語が独特すぎてそれが面白かったのでメモを取り続けて公開したらちょっとバズった kurochan-note.hatenablog.jp 突然アメリカで約2ヶ月間働いたりしてた 1メン

                                                        サイバーエージェントでの6年間と、次にやること - くろの雑記帳
                                                      • Scala で書いたマイクロサービスを Go で書き直した話 - JX通信社エンジニアブログ

                                                        この記事はJX通信社 Advent Calendar 2019 2日目の記事です。 昨日は、たっちさんの「Kubernetes Admission Webhookでリソース作成を自在にコントロールする」でした。 こんにちは、サーバーサイドエンジニアの @kimihiro_n です。 今回は長年動かしてた Scala のマイクロサービスのリビルドを行った話をしようと思います。 TL;DR 新しい言語を投入するのにマイクロサービスは便利 Scala で感じていた問題点を解消しつつ Go へ移行できた 消費メモリが大きく減って安定稼働できるようになった 予防線を貼っておきますと、Scala より Go のほうがいいよね、といった本旨ではありません。 Scala で書いたマイクロサービス 弊社のマイクロサービスの一つにカテゴリ分類専用のサービスが存在します。 カテゴリやキーワードを登録しておくとル

                                                          Scala で書いたマイクロサービスを Go で書き直した話 - JX通信社エンジニアブログ
                                                        • 「取り返しのつかないことをしない」 - Qiita

                                                          「取り返しのつかないことをしない」 昔、同僚と議論していて口走った言葉です。実はプログラマーとしてわりと重要な考えなのではないかと思います。 例: EC2のパブリックIPをスマホアプリに直書きする スマホアプリ向けの静的ファイルやバックエンドAPIをAWSに実装した際、最初はスモールスタートだと言うことでEC2インスタンス1台の構成にしたところまではいいが、インスタンスに自動で割り当てられるIPアドレスをスマホ側で直接参照する実装にしてしまった。 こうなると、AWS側はアーキテクチャを変えるどころか、EC2インスタンスを再起動することすらできません(再起動するとIPアドレスが解放されてしまう)。スマホアプリをアップデートして、IPアドレスを直接参照するのを止められればいいのですが、一度公開したアプリを100%アップデートするのは事実上不可能です。 最初にRoute53でホスト名を解決するか

                                                            「取り返しのつかないことをしない」 - Qiita
                                                          • データサイエンティストはどこまでエンジニアリングをすべきか? | CyberAgent Developers Blog

                                                            AI事業本部 Dynalystでデータサイエンティストをしている藤田です。 Dynalystの開発チーム内にはデータサイエンス(以降DS)チームがあり、そこにはデータサイエンティスト・機械学習エンジニア(以降まとめてデータサイエンティストと呼ぶ)たちが所属しています。私がこのチームで働く中で、「プロダクト所属のデータサイエンティストがどこまでエンジニアリングをすべきなのか」ということを考えることがあったのでまとめてみました。当然これは一般的な答えではなく、人・チーム・組織の現状や目指すべきところによって答えは変わるので、あくまで1チームの1個人が考えたこととして読んでもらえればと思います。 プロダクト所属と横断DS組織所属 エンジニアリング云々の話をする前に、まずプロダクト所属と横断DS組織所属のデータサイエンティストの違いについて軽く説明します。両者のメリット・デメリットについても書きた

                                                              データサイエンティストはどこまでエンジニアリングをすべきか? | CyberAgent Developers Blog
                                                            • セルフホストで学ぶJVM入門 - k0kubun's blog

                                                              RubyのJIT開発でやろうと思ってることが大体 @_ko1 さんの作業待ちでブロックしていて暇なので何かを書こうと思い、JVMを書くことにした。 まだその辺のアプリを気軽に動かせるレベルでは全然ないが、別に秘密裏に開発する必要もないと思ったので公開した。 github.com これの紹介と、現時点で学べたことをこの記事に記録しておく。 何故JVMなのか 仕事でJVM言語を使っている 僕が所属しているTreasure Dataでは、大雑把に言うと本番サーバーのサービスは大体Ruby, Java, Scala, Kotlinで書かれている*1ので、既にRubyのVMはある程度わかる*2ことを考えると、JVMさえ理解してしまえば社内の主要な言語評価系を抑えたことになり、運用面で活躍の機会が増える気がしている。 また、自分が最近一番書いているのはKotlinなのだが、JVMで動かしていることに由

                                                                セルフホストで学ぶJVM入門 - k0kubun's blog
                                                              • スクラムチームを支える心理学 - 死亡前死因分析

                                                                この記事では、私たちのチームがスプリントゴールの達成とコード品質の低下を防ぐために行っているプラクティス、「死亡前死因分析」について紹介します。 スクラムチームと計画 変化への適応が強調されるスクラムですが、だからと言って事前の計画をないがしろにすることはできません。 私たちのチームが大切にしているキーワードのひとつに、“Measure twice, cut once” (二度測って、一度で切る)があります。もともとは優れた大工の仕事を指す言葉で、注意深く計画し一度で仕事を済ませる、手戻りのない状況を表現する言い回しです。 私たちにとっても、“Measure twice, cut once” の大切さは大工にとってのそれと変わりません。手戻りはデリバリの速度だけでなく、実装の素直さやコードの端的さにも悪い影響を与えるためです。ソフトウェアのバグが一番現れやすい箇所は「苦労と試行錯誤の末にな

                                                                  スクラムチームを支える心理学 - 死亡前死因分析
                                                                • flurry on Twitter: "情報収集してるときに、ねっとうよく発言を読んでしまうという点では、このひとが移行先として検討しているPythonのほうが酷いと思います。とくに人工知能云々で流行する以前からやってた連中。 あとはGolangやScalaもつらい。は… https://t.co/LIrgkoCd8W"

                                                                  情報収集してるときに、ねっとうよく発言を読んでしまうという点では、このひとが移行先として検討しているPythonのほうが酷いと思います。とくに人工知能云々で流行する以前からやってた連中。 あとはGolangやScalaもつらい。は… https://t.co/LIrgkoCd8W

                                                                    flurry on Twitter: "情報収集してるときに、ねっとうよく発言を読んでしまうという点では、このひとが移行先として検討しているPythonのほうが酷いと思います。とくに人工知能云々で流行する以前からやってた連中。 あとはGolangやScalaもつらい。は… https://t.co/LIrgkoCd8W"
                                                                  • フルタイムでやる仕事を作る #wantedlydev - id:onk のはてなブログ

                                                                    先日 Wantedly さんのエンジニアリングマネージャー座談会に出演させていただいた。 wantedly.connpass.com テーマは、「エンジニアリングマネージャーの課題を相談したい人が多い」「その相談パブリックにしよう」なので、自分が最近課題に思っている「変化の速度感」についてざっくばらんに会話できたらなーというのが期待だった。 イベント中には、大きく 4 つの話をしたのかな。それぞれ会話の中では話しきれなかったことも補足しつつ書いていく。 技術スタックが違うチーム プロダクトと専門組織のバランス 専門組織を立ち上げるポイント 採用と oss-guild 技術スタックが違うチーム リンク先を見て貰うと顕著に分かると思うけど、はてなでは、そこそこバラバラな技術スタックを使っている。 hatenacorp.jp インフラは AWS、Google Cloud (オンプレはやっと撲滅し

                                                                      フルタイムでやる仕事を作る #wantedlydev - id:onk のはてなブログ
                                                                    • 新規プロダクトでKubernetesを中心にCloudNativeなアーキテクチャのインフラを導入した話 | Tech Blog

                                                                      新規プロダクトでKubernetesを中心にCloudNativeなアーキテクチャのインフラを導入した話 Tech Blog 2019.08.26 はじめに アドテク本部Airtrackチームの横山(@nnao45)です。 チーム内ではScala書いたり〜K8Sと遊んだり〜AWSったり〜しています。 この度Airtrackチームの新規プロダクトでKubernetesを採用し、本番環境に投入したのでその知見を共有させた頂きます。 おしながき 目指したアーキテクチャ Kubernetes周り ミドルウェア CI/CD 監視 感想 目指したアーキテクチャ 妥協はしないが身の丈にあったコンテナプラットフォーム って感じですかね。 Kubernetes周り サービスレイヤひとまわり Airtrackチームで広告系完全新規プロジェクトの立ち上げに Kubernetes中心にクラウドネイティブなアーキテ

                                                                      • Optics: 「パス」に型を付ければ、データ全体に型を付ける必要はない - Lambdaカクテル

                                                                        あまり知られていない関数型言語のおもしろ概念として、Opticsというものがある。 Opticsとは、オブジェクト指向言語で言うところのSetter/Getterを一種の関数として捉え、いくつかの便利な特性を付与したものの総称だ。この便利な特性によって、Setter/Getter以上のことをパワフルにこなせる。 最も有名なOpticsはLensであり、色々な解説資料が(主にHaskell向けに)出ている。 blog.recruit.co.jp さて、これまでのOpticsを紹介する資料はSetterとGetterとしての側面に注目しがちだったので、じゃあOpticsの何が良いのか、Scalaでやる意義は何か、という側面をこの記事で紹介しようと思う。 Optics -- vs. copyメソッド地獄 Opticsは合成可能である Opticsはボトムアップのアプローチである Opticsがう

                                                                          Optics: 「パス」に型を付ければ、データ全体に型を付ける必要はない - Lambdaカクテル
                                                                        • それでもRuby、Python、JavaScript(あるいはJava)を使う方々へ.md · GitHub

                                                                          それでもRuby、Python、JavaScript(あるいはJava)を使う方々へ.md 前置き この記事は静的型付け言語が理解されないことに業を煮やし……いや、ブチギレてしたためたものです。そのため多少過激な表現を伴います 性質上どうしても特定の人々に攻撃的な内容になります リーナスの下品な発言の引用は非現実的です。わたしが5人くらいいれば現実的なのですが…… Pythonの機械学習分野は例外です。ですがここもいずれ静的型付け言語に取って代わられるべきであると考えています(そもそもFFIが得意と言うだけでPython使われてるだけだし) 「型」の概念が石器時代で止まっている方へ まずはこちらをお読みください。 私と型システムとポエム - The curse of λ https://myuon.github.io/posts/type-system-poem/ 特に「よくある誤解」のこ

                                                                            それでもRuby、Python、JavaScript(あるいはJava)を使う方々へ.md · GitHub
                                                                          • SREは大規模なリプレイスプロジェクトで発生した様々な問題にどう取り組んだか【Backlog Play 化プロジェクト】 | Backlogブログ

                                                                            Backlog SREチームのmuziです。2018年4月から2019年7月まで、BacklogをJavaからScala / Play Frameworkに移行する大規模なリプレイスプロジェクトに参加していました。 SREとして、このリプレイスにはかなりの困難が伴いました。特にBacklogのサービス安定性は大きな問題でした。 本記事では、こうした問題に対して、SREである私がどういうアプローチを取ったのか、そしてこのプロジェクトで得られた教訓を今後チームや組織全体でどのように活かそうとしているかをご紹介します。 正直言って、泥臭い話だらけの内容です。それでも、技術的負債を抱えたプロジェクトでSREが取れるアプローチの事例の一つとして、読者の参考になれば幸いです。 はじめに ヌーラボでは2015年11月から2019年7月まで、BacklogをJavaからScala / Play Frame

                                                                              SREは大規模なリプレイスプロジェクトで発生した様々な問題にどう取り組んだか【Backlog Play 化プロジェクト】 | Backlogブログ
                                                                            • プログラミング言語の習得に必要なもの - Qiita

                                                                              はじめに 先日、エンジニアの能力と今どきの難しさというタイトルの記事(2018年)を読んで、「これはほんとにその通り」と思う一方で、具体例がないためにピンと来ない人や、マウント取りではという意見も多数見られた。というわけで、自分が比較的得意な、プログラミング言語の構文解析といった分野に関して、この記事の言わんとしていることを補足するような記事を書こうと思い至った。 記事中では、エンジニアに必要な知識や経験を、「ベース」「カテゴリ」「実行環境」という形(以下)に分けて論じている。 ①ベース コンピュータサイエンス(CS)などの理論的なもの 低レイヤー ②カテゴリ フロントエンド / バックエンド / クライアントアプリなど ③実行環境 特定のプログラミング言語や開発環境やツール、フレームワークやライブラリなど この中で、特に印象的であり、かつ「よくわかる」と思ったのは以下の記述だ。 ③は比較

                                                                                プログラミング言語の習得に必要なもの - Qiita
                                                                              • 時系列でみる!4年の歳月をかけてPlay Frameworkで「大規模リプレイス」した話【Backlog Play 化プロジェクト】

                                                                                ヌーラボの松浦です。私がSREのエンジニアリングマネージャーとしてプロジェクトのサポートに携わっているプロジェクト管理ツールのBacklogは、2019年7月にJavaからScala / Play Frameworkに完全移行をしました。 このPlay化プロジェクトは、10年がかりで改良され仕様が明文化されていなかったBacklogを、JavaからScala / Play Frameworkに移行するという壮大なプロジェクトでした。 約4年にわたる「Backlog Playプロジェクト」(以下、Play化プロジェクト) で体験した“紆余曲折”を記録に残し、後のプロジェクトにつなげるために、今回から7回に渡って、技術的な挑戦やプロジェクト管理の視点など、当時のチームメンバーが独自の目線でPlay化プロジェクトを振り返った記事を連載します。 連載第1回目の本記事では、序章としてPlay化プロジ

                                                                                  時系列でみる!4年の歳月をかけてPlay Frameworkで「大規模リプレイス」した話【Backlog Play 化プロジェクト】
                                                                                • 「Spring Native」ベータ版公開、GraalVMによりSpring FramworkのJava/Kotlinアプリをネイティブイメージにコンパイル。JavaVMに依存せず瞬時に起動可能

                                                                                  「Spring Native」ベータ版公開、GraalVMによりSpring FramworkのJava/Kotlinアプリをネイティブイメージにコンパイル。JavaVMに依存せず瞬時に起動可能 Spring Frameworkの開発チームとGraalVMの開発チームは、GraalVMを用いてSpring Frameworkのアプリケーションをネイティブイメージにコンパイルする「Spring Native」がベータ版として公開されたことを発表しました。 Announcing Spring Native Beta! Read the blog post https://t.co/5klXV6kSVB and check out the video for more details. #spring #native #graalvm https://t.co/83pI3vNYEr — Spri

                                                                                    「Spring Native」ベータ版公開、GraalVMによりSpring FramworkのJava/Kotlinアプリをネイティブイメージにコンパイル。JavaVMに依存せず瞬時に起動可能