タグ

ブックマーク / blog.shibayu36.org (60)

  • 問題意識を感じたときに「効率的に良い状況に変える」ためのアクションリスト - $shibayu36->blog;

    自分の置かれた環境で問題意識を感じることってありますよね。例えば 上司全然ちゃんとやってくれないじゃん!最悪! 会社にこういう問題あるじゃん!なんで直らないの!最悪! みたいな感じ。 昔はこういう問題意識を持った時、自分で「良い状況に変える」ことに苦労をしていました。しかし、最近は自分の意識を変えることで「効率的に良い状況に変える」ことをしやすくなったなと感じています。そこで今回は、どのように自分が意識を変えたかということと、問題意識を感じた時に最近試しているアクションについて書いてみようと思います。 昔に自分がよくやっていたアクション 問題意識を感じた時、昔に自分がよくやってしまっていたのは 飲み会の場で愚痴る 上司に詰め寄る 問題意識だけを提起する というようなアクションです。このようなアクションをした時、良い上司はちゃんと話を聞いてくれて、実際に問題が解決することも多くありました。

    問題意識を感じたときに「効率的に良い状況に変える」ためのアクションリスト - $shibayu36->blog;
  • 「実践Scala入門」読んだ - $shibayu36->blog;

    [asin:4297101416:detail] 読んだ。このは「コンパクトなコップ」を目指したと最初に書かれているとおり、このを読めばひとまずScalaを書けるようになるなと思った。これからScalaを始めたくなったらまずはこのを読んでおけば十分だと思う。 また、「コンパクトなコップ」だけに留まらず、実践ではよく使うがコップではあまり言及されていないような機能についても解説されていたことが非常に良かった。例えばコップではOptionやEither、Tryなどを使ったエラー処理についてあまり書かれておらず、昔Scalaを始める時にエラー処理のやり方で詰まったことがあった。その時にこのを読んでいたらもっとスタートダッシュが速かっただろうと思う。他にも実践ではほとんどの場合利用するsbtについても解説されているのも良かった。 こんな感じでScala入門するには最適な一冊だと感じ

    「実践Scala入門」読んだ - $shibayu36->blog;
  • 人事の仕事の全容を知る - 「人事管理入門」読んだ - $shibayu36->blog;

    評価制度などの仕組みを考えるにあたり、一度人事関連の教科書を読んで全容を知らないといけないなと思ったので、おすすめされていた「人事管理入門」を読んだ。 マネジメント・テキスト 人事管理入門<第2版> 作者:今野 浩一郎,佐藤 博樹日経済新聞出版Amazon とにかく面白く、教科書的に体系的にまとめられているのに関わらず分かりやすく、読んで非常に参考になった。このを読むと、人事とはどういう役割なのか、グレード制度とは何か、人事評価とはどういう目的で行われるのかなど、人事にまつわる知識が体系的に身につけられる。そのため、人事部に所属している人にはとにかくおすすめだし、人事に関わってなくとも組織に興味があるならおすすめ。人事に関わる制度を考えるときには何度も読み返したいだなと思った。 今の自分だと、「第1章 人事管理のとらえ方」「第2章 戦略・組織と人事管理」「第3章 社員区分制度と社員格

    人事の仕事の全容を知る - 「人事管理入門」読んだ - $shibayu36->blog;
  • 技術的負債のパターンと悪影響・原因・返却方法について考える - $shibayu36->blog;

    先日飲み会で技術的負債についての雑談をしていた。結構いろいろな側面の話をしていたのだけど、技術的負債って一括りにしているのが今はあんまり良くなくて、負債の性質によって技術的奨学金、技術FX技術的年金などと言葉を変えると良いのではみたいな半分冗談で会話をしていた。 いろんな問題が技術的負債という一言にまとめられてしまっているので、負債の性質に合わせて、技術的奨学金、技術FX技術的年金、など用語を分けると良いのではないか、という話をした— 趣味はマリンスポーツです (@hitode909) 2018年3月27日 技術的負債について - hitode909の日記 それで技術的負債のパターンを見つけて、それによりどういう悪影響があるか、それがなぜ起こるのか、どう返却するかについて考えておくと良いのではと思ったので、今日思いついた3つのパターンをメモしておく。 思いついたパターンは3つ。 変

    技術的負債のパターンと悪影響・原因・返却方法について考える - $shibayu36->blog;
  • 「エンジニアリング組織論への招待」はいろんな立場の人に読んで欲しい - $shibayu36->blog;

    最近メンタリング制度のことや、技術組織のことについて興味がある。最近「エンジニアリング組織論への招待」というが出版されて話題になっていたので読んでみた。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング 作者:広木 大地技術評論社Amazon このは、エンジニアリングで重要なのは「どうしたら効率よく不確実性を減らしていけるのか」ということと述べている。その考え方に従って、思考方法、メンタリング、チーム運営、組織運営といったプログラミング以外でのやるべきことについて、様々な背景も含めて教えてくれる。 全部読んでみたところ当に良いであった。メンタリングや組織運営といった、なかなか汎用化や言語化がしにくい分野を、納得のできる形で言語化されていて当にすごい。僕は最近はメンタリング制度について考えているので、特にChapter2のメンタリングの技術の章が一番

    「エンジニアリング組織論への招待」はいろんな立場の人に読んで欲しい - $shibayu36->blog;
  • 組織設計を体系的に学ぶ - 「組織デザイン」を読んだ - $shibayu36->blog;

    自分は組織での行動やマネジメントの分野に興味があるのだけど、その一貫でそもそも組織とはどう設計していくのかの基礎的な知識を学びたいと思ったので、評価の高い「組織デザイン」を読んだ。とにかく面白く、読んで非常に良かった。学ぶことが多すぎて、読書ノートが膨大になってしまった。 組織デザイン (日経文庫) 作者:沼上 幹日経済新聞出版Amazon このでは、組織を設計するために必要な「組織」についての基的な知識を体系的に教えてくれる。これを読めば 組織というのは、分業と調整から成り立っていること 組織形態の基形である、機能別組織・事業部制組織・マトリクス組織それぞれの特徴 分業の様々なタイプのメリット・デメリット。垂直分業、水平分業、並行分業、機能別分業など。 分業によって得られた成果を統合する事前の調整手段である標準化という考え方 分業によって得られた成果を統合する時の例外への対応であ

    組織設計を体系的に学ぶ - 「組織デザイン」を読んだ - $shibayu36->blog;
  • 「ふつうのLinuxプログラミング」でLinuxの基本概念やシェルの仕組みについて学んだ - $shibayu36->blog;

    最近golangでCLIツールを作っていたのだけど、Linuxのお作法とかいまいち分かっていなかった。そこでそのあたりのことが学べそうな「ふつうのLinuxプログラミング」を読んだ。 ふつうのLinuxプログラミング 第2版 Linuxの仕組みから学べるgccプログラミングの王道 作者:青木 峰郎SBクリエイティブAmazon このLinuxにおいてC言語でプログラミングする方法を、Linuxでの重要な概念も含めて教えてくれる。このを読めばとりあえずC言語を使ってLinux用のプログラムを書き始めることが出来るようになりそうだった。 それでC言語を使わない場合でも役に立つの?ということだけど、非常に役立ちそうで面白かった。なぜなら、単なるプログラミングの方法を教えてくれるだけではなくて、 Linuxの重要な考え方をファイルシステム・プロセス・ストリームという概念にまとめて教えてくれ

    「ふつうのLinuxプログラミング」でLinuxの基本概念やシェルの仕組みについて学んだ - $shibayu36->blog;
  • 初めて学ぶ知識をどのように学習しているか - $shibayu36->blog;

    ふと、自分が初めて学ぶ知識をどのように学習しているか疑問に思ったので、考えてみたことをブログに書いておく。初めて学ぶ知識というのは、自分がやったことだと例えばマネジメント、プロジェクト管理、コーチングなどがある。 僕はある知識を初めて学ぶ時、まずはストーリー仕立てで知識を解説してくれるを読んでいることが多い。特にそのストーリーの背景に体系的な理論が見え隠れするようなものであれば、さらに良いと感じている。例えば以下のブログで紹介したようなを最初に読んでいる。 つかまらない上司にならないために - 1分間マネジャーの時間管理を読んだ - $shibayu36->blog; モチベーションと目標設定・教育と褒める叱る - 「1分間マネジャー」を読んだ - $shibayu36->blog; 問題の効率的な解決方法を学ぶ - 「世界一やさしい問題解決の授業」読んだ - $shibayu36->

    初めて学ぶ知識をどのように学習しているか - $shibayu36->blog;
  • 「理論から学ぶデータベース実践入門」読んだ - $shibayu36->blog;

    理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL (WEB+DB PRESS plus) 作者:奥野 幹也技術評論社Amazon 積ん読に入っていたので読んだ。 このはリレーショナルモデルを理解することによってRDBの知識を深めようというようなRDBを実践で使っている人がさらに知識を深めるためのという感じ。内容としては重要な理論がRDBと紐付けられて解説されていて面白かった。一方で、専門用語が文章中に多く使われていて、個人的には何か頭に入ってこなかった点は残念だった。 このを読みながらわからないところを調べていて見つけたのだけど、このの著者の昔の発表資料である「データベース設計徹底指南!!」がこのの端的なまとめになっていて、しかも非常に良い資料なので当におすすめ。で紹介されているリレーショナルモデルや正規化理論などがわずか15分程度で理解できる

    「理論から学ぶデータベース実践入門」読んだ - $shibayu36->blog;
  • 問題解決のための質問群を学んだ - 「考える技術・書く技術」を読んだ - $shibayu36->blog;

    最近、自分は問題をうまく分割して解決する能力や、他の人に分かりやすく伝える能力がまだ足りていないと感じていた。そのあたりを強化するために、おすすめと言われた「考える技術・書く技術」を読んだ。 考える技術・書く技術―問題解決力を伸ばすピラミッド原則 作者:バーバラ ミントダイヤモンド社Amazon このは、わかりやすい文章を作るために、ピラミッド構造で論理構造を作るという技術を教えてくれるだ。このを読み終わって、ピラミッド構造を作るという考え方は、問題を分割するということにも、文章を他の人に伝わるように分かりやすく書くということにも応用できる、非常に有用な考え方であると感じた。 まず最初にぱらぱら読んでいた感想は、非常に良いことが書かれてそうなのだけど、なぜか頭に入ってこないということだった。このためあまり面白くないなと思いながら、気になるところを付箋はったりメモしたりしながら読んでい

    問題解決のための質問群を学んだ - 「考える技術・書く技術」を読んだ - $shibayu36->blog;
  • 「検索エンジン自作入門」を読んだ - $shibayu36->blog;

    Elasticsearchが裏でどのように動いているか理解できるようにするために、「検索エンジン自作入門」を読んだ。 検索エンジン自作入門 ~手を動かしながら見渡す検索の舞台裏 作者:山田 浩之,末永 匡技術評論社Amazon このを読んで、検索エンジンがやっていることを簡易的に知ることが出来た。少し理解するのは難しいが、具体的な例をコードレベルで見ることができる資料はなかなか無いので、非常に良いであった。 2章以降からはコードを使って説明がされていくのだけど、そこからは理解が難しいかもしれない。しかし、それ以降を理解できなかったとしても、1章が端的に検索エンジンの仕組みについて書いてあるので、1章を読むだけでも価値があると思う。 自分の中では以下のものが参考になった。 検索エンジンは4つのコンポーネントからなる インデックス管理器 インデックス検索器 インデックス構築器 文書管理器

    「検索エンジン自作入門」を読んだ - $shibayu36->blog;
  • CircleCIでJava8 + Gradleプロジェクトのテストを行う - $shibayu36->blog;

    興味位で自分のアルゴリズム実装repository( https://github.com/shibayu36/algorithms )のテストをCircleCIで動かしてみようと考えた。基的にCircleCIはcircle.ymlに設定を追加したら終わりなのだけど、何を設定すればいいか少し調べる必要があったのでメモ。 設定 Configuring CircleCI - CircleCI などを見ながら、最終的なcircle.ymlは以下のようになった。Circle CIでJavaを使ってビルドする | さにあらず や CircleCIでJUnitの結果を見る - Qiita あたりも参考になった。 machine: java: version: oraclejdk8 timezone: Asia/Tokyo environment: GRADLE_OPTS: -Xmx4G post:

    CircleCIでJava8 + Gradleプロジェクトのテストを行う - $shibayu36->blog;
  • nanobenchを使ってJavaのベンチマークを取る - $shibayu36->blog;

    アルゴリズムを学習していると、ある実装の速度がどのくらいか計測したいことがよくある。これまでは、currentTimeMillisを利用して、愚直にベンチマークを取っていたのだけど、結構だるい感じだった。 調べてみると、jmh と nanobench という二つのツールがあった。jmhは使ってみたけど、非常に重厚で難しかったので、nanobenchを使ってみた。 ハマったこと nanobench のREADME.mdを見ていると、nanobench.jarを落としてきて、以下のように実行すると良いと書いてある。 > javac ListBenchmark.java > java -jar nanobench.jar ListBenchmarkしかし、Java初心者のためか、jarファイルのことがよく分からなかったり、classpathの問題でハマったり、とにかくハマりまくってうまく動かなか

    nanobenchを使ってJavaのベンチマークを取る - $shibayu36->blog;
  • 「世界でもっとも強力な9のアルゴリズム」読んだ - $shibayu36->blog;

    なんとなくアルゴリズム系の読み物読んでみたかったので読んだ。 世界でもっとも強力な9のアルゴリズム 作者:ジョン・マコーミック日経BPAmazon このは、著者が3つの基準で選んだ「偉大なアルゴリズム」について、エンジニアでなくても分かるような簡単な言葉を使って紹介してくれるである。以下のようなアルゴリズムについて紹介している。 検索エンジンのインデクシング ページランク 公開鍵暗号法 誤り訂正符号 パターン認識 データ圧縮 データベース デジタル署名 話題がかなり身近なものであり、説明が当にわかりやすいため、とりあえずアルゴリズムを学ぶ前の読み物として非常におすすめ。個人的には検索エンジンやページランク、パターン認識あたりが興味深かった。このを読んで、興味を持った部分について、さらに深く学習をしていくと良いかもと思った。 読書メモ ## 検索エンジンのインデクシング - 検索エン

    「世界でもっとも強力な9のアルゴリズム」読んだ - $shibayu36->blog;
  • 基礎技術の学習のモチベーションをどう保つか - $shibayu36->blog;

    最近、コンピュータサイエンスなどの基礎的な知識を学習するように心がけている。できる限り今後も長い期間役に立つ、寿命の長い技術や知識を付けておきたいためである。その一貫で アルゴリズムを学習 してみている。 学習をはじめて感じた課題 しかし、とりあえずアルゴリズムを学習してみると、学習を続けられるか分からないという課題も感じた。 寿命の長い技術であるほど、日々の開発にすぐに利用できないことが多い 例えばアルゴリズムを学んだとしても、それが役立つまでいくにはある程度長い時間が必要 日々の開発に利用できていないと、モチベーションをずっと保ち続けるのが難しい モチベーションが保てないと、結局途中で勉強をやめてしまい、日々の開発に利用できるレベルまでたどり着けない 流行りの技術とかは、すぐに開発に導入してみるとかができるので、とりあえずモチベーションは保ちやすい。しかし、数学とかアルゴリズムとかLi

    基礎技術の学習のモチベーションをどう保つか - $shibayu36->blog;
  • Javaの文字列の長さを判定するには - $shibayu36->blog;

    自分の頭を整理するために書いておく。正しいかは知らない。 まず前提として、Javaの内部表現としての「文字」は16ビット長のUTF-16ということがある。そうすると、普通に長さを取得すると、UTF-16のサロゲートペアで表される文字は2文字と扱われる。 また、文字には合成済み文字という話がある。「か」の後に濁点を結合することで、「が」を表現するみたいなやつ。 これらから、どこまで考慮して文字列の長さを取得するかでやり方が違う。 UTF-16のサロゲートペアを考慮しない UTF-16のサロゲートペアを考慮する 合成済み文字を考慮する 以下試したサンプルコード。 import java.text.BreakIterator; public class UnicodeCharSample { public static void main(String[] args) { // 𪛀あが St

    Javaの文字列の長さを判定するには - $shibayu36->blog;
  • Javaに入門している(その1) - $shibayu36->blog;

    Javaでアルゴリズムを紹介しているに書いてあるアルゴリズムを全部Javaで実装してみるというのをやってみたかったので、まずJavaに簡単に入門している。 Javaの構文を理解する まあ簡単だった。 スッキリわかるJava入門を読む まあ素直な構文なので分かった気になる http://d.hatena.ne.jp/nattou_curry_2/20100130/1264821094 このくらい読んでおくだけでも良さそうだった IntelliJでとりあえずHelloWorldを動かす ここまでも簡単。 とりあえずNew Projectして、Javaプロジェクトを作る srcディレクトリに入れるらしいことがわかる src/HelloWorld.javaを使ってmainメソッドでprintする IntelliJでRunボタンを押したら普通に動く なるほど簡単 Javaでもテスト書けるようにする

    Javaに入門している(その1) - $shibayu36->blog;
  • はてなインターンの事前課題をJavaでやった - Java入門記(その2) - $shibayu36->blog;

    はてなインターンの事前課題で非常に簡単なltsvパーサーを作るやつがあるのだけど、Javaの勉強のためにJavaで実装してみた。ltsvパーサーは結構いろんな言語で誰かが実装しているので、これどうするのがいいのかってなったら、その実装を見に行くとやり方を理解できて便利。 事前課題 https://github.com/hatena/Hatena-Intern-Exercise2015 やったやつ https://github.com/shibayu36/java-Intern-Exercise これでいいのか気になるところもあるので、詳しい人に添削されたい。 日付操作こんなのでいいのか https://github.com/shibayu36/java-Intern-Exercise/blob/master/src/main/java/org/shibayu36/intern/exerci

    はてなインターンの事前課題をJavaでやった - Java入門記(その2) - $shibayu36->blog;
  • 目標設定の仕方を学ぶ - 「ザ・コーチ」読んだ - $shibayu36->blog;

    最近コーチングという分野に興味を持って、まずは簡単でさくっと読めそうな「ザ・コーチ」というを読んだ。 ザ・コーチ 最高の自分に気づく (小学館文庫プレジデントセレクト) 作者:貴彦, 谷口小学館Amazon このは、副題も含めると「ザ・コーチ - 最高の自分に出会える『目標の達人ノート』」という題名で、その名のとおり目標設定をなぜ行うのか、どうやって行うのかについて知ることが出来るだった。1分間シリーズのように小説形式となっていて、すぐに読むことが出来る。 現在、自分が目標って何のためにあるのかもう一度知りたいと思っていた時期だったので、非常に面白かった。読書メモがかなりの量になった。マネージャーをやっている人や、その方向に行きたいと思っている人、他にも教育を担当している人は是非おすすめ。 以下のことが印象に残ったので、それについて書こうと思う。 目的・目標・ゴールの定義と、目標設

    目標設定の仕方を学ぶ - 「ザ・コーチ」読んだ - $shibayu36->blog;
  • MySQLを使って簡易的にサービスの数値を集計する - $shibayu36->blog;

    最近色んな機能を作る時に、簡単に数値を集計してみて様子を見るということがよくあった。そこで今回はその時に使ったクエリの紹介。 【2016/10/18 10:28追記】 社内でHOUR関数とかGROUP BYにalias名を使ったらもっと簡単にできるよと言われたので、それぞれ追記してみます。 日間の作成数の集計 1日このアクションが何回行われたかとかが集計できる。date_columnにはcreatedみたいなカラムを指定し、table_nameには集計したいテーブルを入れる。他にもCOUNTの仕方を工夫したらいろいろ集計できそう。 SELECT DATE(date_column) as date, COUNT(*) as count FROM table_name GROUP BY DATE(date_column); 【改善版】 SELECT DATE(date_column) as d

    MySQLを使って簡易的にサービスの数値を集計する - $shibayu36->blog;