21:48awkで特定の列を除外して出力するTweet広告を非表示にするもっと読むコメントを書く2020-02-09Windows10にOracleをインストールしようとしたらありがちな罠にハマったOracle18cのWindows用のZipを落としてきて、解答して、setup.exeを管理者権限で実行するんだけど、一瞬だけウインドウが表示されたあと、すぐに消えてしまう現象が発生。ググると同じお悩みの人は多い。下でやろうとしてたのが原因でした。12:59Windows10にOracleをインストールしようとしたらありがちな罠にハマったTweet広告を非表示にするもっと読むコメントを書く2020-01-13古いプログラムからも学ぶことがある...と思う。さんの聞き書き、「木のいのち木のこころ」を読んでいます。宮大工として過去の建造物の解体修理をしていると、過去の職人の仕事が見えてくるそうです。建築から1300年以上経ってもなお現存する、法隆寺の建築仕事の素晴らしさ。そこから時代が下った、室町や江戸時代に建てられた寺社を見ると、便利な道具が発明されたことや、華美な装飾やコストカット、早い完成が求められたことなどを背景に質が悪化している、ということが見えるそうです。そんな文章を読んでいるうち、まったくもって1300年という歴史はありませんが、「古いプログラム」に思いを馳せてみるのもいいかなぁと思いました。...ということで、「『10年くらい前のソースを読んでうわって思った』5年くらい前の私」の話です。当時私が担当していたアプリケーションの一部に、「Java1.4以前に書かれたんだなぁ」というソースコードが残っていました。現在のビルド環境、動作環境は最新のJDKが使われていますが、ソースの書き方が「ジェネリクスがなかった時代」の書き方なんですね。・クラスやメソッド名に意味がない。みたいなメソッド名が並んでる・メソッドでコレクションを引数として受け取る場合は、配列。ListやMapを引数に取らないの二点でした。当時は、「何この古臭い書き方...」「理解できない」「ク○コード」くらいにしか思っていませんでした。思い返してみると、今でも通用する設計上重要なエッセンスが含まれてるんです。クラス名やメソッド名が読めない、意味不明なものである、ということは、別でこれらの一覧を定義した仕様書があった*1ということです。仕様書があろうがなかろうが、読める名前にしたほうがいいのは間違いありません。初めにメソッドを定義してからコーディングに入るという考え方自体は、TDDなどにも見られるように今も重要な考え方だと思います。引数を配列で取る、というのは当時のJavaの言語仕様の範囲内でなるべく問題を起こさないためのテクニックだったようです。キャリアの長い先輩エンジニアから以前、教えていただきました。Java5でジェネリクスが導入される以前のJavaでは、ListやMapなどのコレクションの要素の「型(クラス)」を明示的に宣言する方法がありませんでした。そのため、コレクションへの要素の追加時と要素の取り出し時で異なるクラスを使ってもコンパイルエラーにはならず、実行時に例外が投げられたり、予測しない挙動をする、という危険がありました。これを防ぐため、メソッド間でコレクションを引き渡す場合、型の定義が可能な配列にあえて変換して引き渡すことで実行時エラーを回避する、というテクニックがあったそうです。APIの呼び出しで見られるような話ですね。いう話もあるようです。プログラム言語やフレームワークはどんどん進歩していますが、保守性が高い、読みやすいコードの要素というのは昔から変わっていないと思います。ときには「ふっっっるい」ソースコードを読んで、当時の人の考えに思いを馳せてみるのもおもしろいかもしれません。11:26古いプログラムからも学ぶことがある...と思う。マネジメント今の自部署が7月にできて半年弱。当時、新しいプロダクトに不慣れだった各メンバーも、随分と慣れてきました。いうことでアドベントカレンダーを部署内でやってみました。思ったのですが、埋まりきってはいないものの、とりあえずライターがそこそこ集まってくれて、ホッと胸をなでおろしているところです。#rtechconftech.rakuten.co.jp「明日すぐに仕事では役に立たないけど、いつか一個くらい役に立つかも」的な単語を覚えてこれたので、満足でした。Requestをフックにする。Learning)を用いたテスト最適化どのテストを流すべきかをMLを使って分析・決定テスト量が1/3になったとか、結果変更したのに流し漏れたテストは0.1%しかなかったとか、AWSの費用が1/2になったとか。Qiita(本題と関係ないけど)パネルディスカッションって難しいよなぁと思ったこれ。Yahoo!ニュース本セッションのファシリテーターだったマーカスさんは、上手かったと思いました。site終わりなきフィッシングサイトとの戦い。楽天の店舗向けもユーザーも、社員も、フィッシングサイトで狙われているとか、おはなしとして面白かった。※ちと使い方がよくわからず。今の会社に新卒で入社したのが2008年。その後、新人研修などを終えて、縁あって、オンライン旅行サービスの開発をする部署に配属されたのが、今日からちょうど11年前の2008年8月1日でした。俺の会社はすごいことをやってるぞ!...と感じていました。そんな中、翌年の2009年、日本に「シルバーウィーク」という連休が爆誕しました。このシルバーウィークを使って、当時の私は、「九州全県を7泊8日で周る弾丸ツアー」を敢行しました。俺もその便利さの一端を担ってるんだなー」なんて思ってたんです。そんな中、最終日に訪れた指宿市で、私は衝撃を受けました。いえば、日本の中でもなかなか有名な温泉地。...と思って電車を降りてみたら...ザ・シャッター街。この当時25歳だったのですが、恥ずかしながら、このとき自分の人生の中で初めて「シャッター街」を見たのです。「何が地方を元気にだ。自分は何もできていない。何ができるんだろう...」と感じたことを今でも思っています。あれから10年近くが経ちました。言ったら大嘘になります。したきっかけで思い出し、自身が仕事を通じてやりたいことの一つとして、思い返すことがあります。今日はそんな日でした。日頃思ってること今日の記事は日記というか後で自分が読み返すための、雑記要素強めです。今年の6月で36歳になりました。今年の4月に、弊社内で「マネージャー」と呼ばれている役職になりました。それ以前は「リーダー」または「アシスタントマネージャー」と呼ばれる職責を約5年間、3チームに渡ってやらせてもらいました。35歳にエンジニアからマネージャーに転身したことになります。35歳定年説ってフィクションだと思ってたんですが、ある意味ガチでそのレールの上をいっております。数ヶ月の間に感じたことです。突き詰めていくと、メンバーの成長を作り出すことこそが、マネージャのもっとも優先順位の高い仕事(のような気がする)もちろんその先には組織としての成長とか、そもそも成長自体が組織が目指している遠い「月」に行こうとするための手段であったりとかはするんだけど...この辺になると手段と目的ってループしてる気がする。実現したい世界があるから働いてるんだけど、一方で「働く」って言うコト自体がそもそも「生きる」とか「自己実現」とかと等価に近かったりするので*2...。以前、リーダーをやらせてもらっていたときは、自分よりスキルの高い人や経験の高いメンバーに対して、「申し訳なさ」「やりにくさ」「自分がリーダーですみません」みたいなのが正直あった。今回、マネージャになって、同様に自分より「上」のエンジニアと相対したときに、以前ほど気まずさのようなものを感じなくなっていた。自己分析してみると、この変化は、「マネージャという『ポジション』を受け入れた」のかなぁと思います。SLAMDUNKのリョータがゲーム中に先輩たちに指示を出すように、点を取ること以上にゲームメイクすることを第一の自分の役割と捉えた。自分がそれをしなければチームとして点が取れることもない、と。※実際にはプレーヤーではなく、監督である安西先生のほうが近い場面は多いのでしょうが。同じように、チーム内で圧倒的に開発を進めるエンジニアである以上に、自分はそんなエンジニアの皆さんの育成を誰よりも考えている、チームの目指す方向について誰よりも考えている、...という点について、もしかしたら、そう思えるだけの自信も、少しついてきたのかもしれません。気づいた自分の中での変化2ついほんの一年前ですよ。「ここに技術書とマネジメントの本があったら、技術書が読みたい」と言った自分がいましたがいまはマネジメントの本を読みます。一体、当時は何があって今は何があったんでしょう、私。直近の目の前の課題が違うだけかもしれません。エンジニアリングを勉強しなくていいという話ではない来年の今頃は「技術書読みたい」って言ってるかもしれません。自分の強みだと思っていますので*3、場面場面に応じて、両方を適宜伸ばしていく必要はあるのだと思います。読者になる検索リンクはてなブログブログをはじめる週刊はてなブログはてなブログPro最新記事awkで特定の列を除外して出力するWindows10にOracleをインストールしようとしたらありがちな罠にハマった古いプログラムからも学ぶことがある...と思う。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。