タグ

sugyanのブックマーク (7,998)

  • 生涯現役のソフトウェアエンジニアでありたい。IC(Individual Contributor)のキャリアパスがあると自覚するまで10年の軌跡 - Findy Engineer Lab

    ソフトウェアエンジニアの藤吾郎(@__gfx__)と申します。最近、IC(Individual Contributor / 個人貢献者†)という言葉でキャリアが語られることも増えてきたように思います。この記事では、ソフトウェアエンジニアにおけるICというキャリアパスについて、自分の認識と経験を交えて次の点から解説していきます。 ICというキャリアパスがあることを、ソフトウェアエンジニアに知ってもらいたい 私が39歳という年齢でIC一でいくと決意するに至った経緯は? 「IC」とはどういったキャリアなのか? 管理職ではないキャリアとしてのIC これからICを定義する企業は増えるか 私がICというキャリアパスを選ぶことになるまで ソフトウェアエンジニアになるつもりはなかった 27歳で選択したソフトウェアエンジニアをウロウロする10年 Fastlyに入社して初めて明示的にICとなる ソフトウェア

    生涯現役のソフトウェアエンジニアでありたい。IC(Individual Contributor)のキャリアパスがあると自覚するまで10年の軌跡 - Findy Engineer Lab
  • 家族やプライベートを犠牲にして仕事や実績を得ていたことから目を背けられなくなった件

    新型コロナウィルスの影響によって、急激に働き方が変わってきた。コロナ禍の初期、大体1年目においては、まだタイトルのような「家族やプライベートを犠牲にして仕事や実績を得ていた」ことから目をそむけることができていたし、なんとなくモヤモヤしていたけれど、そのような考えにある種至っていないような感覚であった。 コロナ禍の初期は、働き方が一気にオフラインからオンラインになって、出張や勤務など多くの時間的な制約から解き放たれ、随分と様々なオンラインの取り組みやコミュニケーションに参加しやすくなった。また、そのタイミングで僕はInfraStudyと呼んでいる大規模オンライン勉強会を企画し、運営してきた。 そういった様々なオンライン上の取り組みの中で「オフラインだったら夜の勉強会や懇親会に参加できるけれど、オンラインだったら家族もいるし難しい」といったような話を聞くことが増えてきた。その時僕は、正直、なぜ

    家族やプライベートを犠牲にして仕事や実績を得ていたことから目を背けられなくなった件
  • シェルスクリプトは変数代入で = の前後にスペースを置けない!・・・の本当の理由を知ると優れた文法が見えてくる - Qiita

    シェルスクリプトは変数代入で = の前後にスペースを置けない!・・・の当の理由を知ると優れた文法が見えてくるShellScriptBashUNIXshellPOSIX はじめに シェルスクリプトの変数代入で = の前後にスペースを置くことができない理由は、検索すれば「プログラマーの君! 勘違いするな! シェルスクリプトでは読みやすさのためにスペースを置くな!! という話」のような記事がすぐに見つかります。記事に書いてあるとおり変数代入とコマンド呼び出しと区別がつかないからです。それは間違いではないんですが、私はもう少し説明が足りないと感じています。そこで今回は = の前後にスペースを置けない当の理由を解説したいと思います。 の前に皆さんにはこの話を読みながら、自分がシェルスクリプトの言語設計者だったとしたら、どういう言語仕様にするかを考えて欲しいです。なぜかと言うとシェルスクリプトの文

    シェルスクリプトは変数代入で = の前後にスペースを置けない!・・・の本当の理由を知ると優れた文法が見えてくる - Qiita
    sugyan
    sugyan 2021/11/11
  • Rustでつくる詰将棋Solver - すぎゃーんメモ

    ついカッとなって先週からRustで詰将棋ソルバを書き始めてしまい、ようやくdf-pnで何らかの解答を出せるようになったところ。ここからもうちょっと調整していくぞ、、 pic.twitter.com/XM9iPJqocv— すぎゃーん💯 (@sugyan) November 2, 2021 というわけで突然Rustで詰将棋ソルバを作りたくなり、作った。 github.com 現時点ではまだ完成度は低くて6割ほどかな…。 とはいえそこらの素直な詰将棋問題なら普通に解けると思う。 冒頭の画像は看寿賞作品の3手詰「新たなる殺意」を2秒弱で解いたもの。 先行事例 将棋プログラムの多くはC++で書かれていて 最近はRustも増えてきているのかな? しかし「詰将棋を解く」ことに特化しているものはあまり多くはなさそうだった。 なかでもRustで書かれているものはna2hiroさんによるものくらいしか無さ

    Rustでつくる詰将棋Solver - すぎゃーんメモ
  • 詰将棋に対するdf-pnアルゴリズムの解説 | コウモリのちょーおんぱ

    長手数の詰将棋の探索に用いられるdf-pnアルゴリズムについて、その概要と実用上の課題を解説する。 概要 #詰め将棋において、各局面の平均着手可能数は5.8手程度と言われている1。単純にこれを全探索することを考えると、\(n\) 手詰を解くためには \(5.8^n\) 局面を調べることになる。例えば、現時点で最長の詰将棋であるミクロコスモス(1525手詰)を解くためにはざっくり \(10^{1164}\) 局面を調べることになってしまう。このように、愚直な全探索では長手数の詰将棋を現実的な時間内で解くことはできないことが分かる。 しかし、ある局面が詰むことを示すだけならここまで膨大な探索は必要ない。例えば以下の局面を考える。 この局面の合法手は63金打、53金打など全部で9通りあるが、この局面が詰みであることを示すためには次の手順だけ探索できていればよい。 この探索結果より、玉方がどのよう

    詰将棋に対するdf-pnアルゴリズムの解説 | コウモリのちょーおんぱ
  • CDNのエッジで実行する系が面白い

    先日の Next.js Conf で VercelNext.js の新しいバージョン「12」をリリースした。 興味深いのは、Vercel は同時にEdge Functionsというサービスを開始したことだ。 Edge Functions – Vercel 謳い文句のひとつに Push your functions to the edge とあるように、「エッジ」で実行される「関数」を提供するプラットフォームである。 ここで言うエッジとはなにかというと、Vercel は明言していないが CDN のエッジのことだ。 Vercel の例のように「CDN のエッジで実行する系」が増えている。例えば以下の 7 つだ。 Cloudflare Workers Fastly Compute@Edge AWS CloudFront Functions AWS Lambda@Edge Deno Depl

    CDNのエッジで実行する系が面白い
  • ISUCON11優勝チームfujiwara組の3人 fujiwara acidlemon macopy の技術力に迫る | gihyo.jp

    ISUCON11優勝チームfujiwara組の3人 fujiwara acidlemon macopy の技術力に迫る 今年も開催された、エンジニアのチューニングスキルを競うコンテンストISUCON11。今回優勝したチームはfujiwara組です。リーダーの藤原氏(fujiwara)は今回で4回目の優勝。そして、このチームとしては初優勝を飾りました。 今回、藤原氏、メンバーの川添氏(acidlemon⁠)⁠、谷脇氏(macopy)に、ISUCON11優勝の振り返り、そして、これまでの三者三様のISUCON、そして、技術への取り組みについて伺いました。fujiwara組がISUCON11を勝ち取った技術力すべてに迫ります。 ISUCON11、予選~選の心持ち Q:予選終了後の順位、また、他チームの結果を見て感じたこと、選に向けてチームとして意思確認したことがあれば教えてください。 藤原氏

    ISUCON11優勝チームfujiwara組の3人 fujiwara acidlemon macopy の技術力に迫る | gihyo.jp
    sugyan
    sugyan 2021/10/29
    「たとえば,日常的な業務で障害が発生したとき,その原因を探し出す能力が重要です。多くの場合,コードにあるわけで,コードを読む力も大切です」
  • 西暦5万年問題 - hitode909の日記

    UNIX 元期からの経過ミリ秒を秒として扱ってしまうと、時刻が1000倍になって、最近の日時だと、西暦5万年くらいになってしまうことがある。 今日、Sentryを見てたら、Invalid date format: 53793-11-30みたいなエラーが流れてきて、これはミスって1000倍しているに違いない!とテンションが上がっていた。 野生の西暦5万年を発見して興奮している秒とミリ秒が別の型になってればこういう間違いを減らせそうだけど、システム内に閉じた部分では好んでepochを使いたい人はいないだろうし、epochをやりとりするところは、だいたい、システム同士の連携部分だったり、外部サービスからリクエストを受け取るときだったりで、そういうインターフェイスの入出力時に、桁が1000倍なってるかどうか、というのを機械的に判定するのは難しそう。 Dateが1970年を指し示していたら嫌な予感が

    西暦5万年問題 - hitode909の日記
    sugyan
    sugyan 2021/10/29
    JavaScriptのDateはECMA-262で1970-01-01から前後1億日までをサポートと定めているとのこと。new Date(8640000000000000) => 275760-09-13 の西暦27万5千年が上限っぽい。へー知らなかった
  • mints: 5.7kb の TypeScript コンパイラを作った

    世の中の TypeScript コンパイラが大きすぎるので作りました。 ここで試せます。 jsx と jsx pragma のサポートもしたので、 preact も動いています。 実装方針 ビルドサイズ第一 とにかく軽量に mints自体が他のコードをビルドするときの速度ではない点に注意 現状、まともなエラーレポートが出ない。エラーメッセージをインライン化するとビルドサイズが増えるため。 空白行と型情報を落とすだけ ES5 への変換や commonjs への変換は実装しない enum と constructor と jsx のみ transform する特殊対応をしている 真面目な構文解析をしてない 例えば 1+1*2 のような binary expression は結合順を解析してない。型を落とすだけなら不要 prettier でフォーマットされたコードはコンパイルできるのが目標(空白行

    mints: 5.7kb の TypeScript コンパイラを作った
  • GitHub - Platane/snk: 🟩⬜ Generates a snake game from a github user contributions graph and output a screen capture as animated svg or gif

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - Platane/snk: 🟩⬜ Generates a snake game from a github user contributions graph and output a screen capture as animated svg or gif
    sugyan
    sugyan 2021/10/27
    なんだこれw 誰得だけど面白いな
  • 数百万件残っていたHTTPのはてなブログを4年越しにすべてHTTPS化させた話 - Hatena Developer Blog

    こんにちは id:cohalz です。はてなブログでは2021年4月の公式ブログで、すべてのブログをHTTPSに一化していくことを案内しました。 ▶ 「HTTPS配信」への切り替えと、ブログの表示の確認をお願いいたします この時点でまだ数百万件のHTTPのブログが残っている状態でしたが、2021年8月には上記の案内に追記したように、全ブログでHTTPS化を完了できました。 完了までに行ってきたことをこの記事で振り返ってみようと思います。 はてなブログのHTTPS化のこれまで はてなブログのHTTPS化は、2017年9月に最初のお知らせを行ってスタートしました。 当初の予定より時間がかかりましたが、2018年2月にHTTPS配信の提供を開始し、これ以降に作成されたブログは最初からHTTPSのみで配信されています。また、それ以前に作成されたブログでも、ユーザ側で設定を変更することで自分のブロ

    数百万件残っていたHTTPのはてなブログを4年越しにすべてHTTPS化させた話 - Hatena Developer Blog
  • RailsエンジニアのためのNext.js入門 - hokaccha memo

    というタイトルで先日 Kaigi on Rails 2021 で話してきました。 プレゼンで話せなかった内容なども含めてブログ記事にも書いておきます。 Intro Railsのことはけっこう知ってるけどNext.jsについて何も知らないという人をターゲットにしてNext.jsとは一体何なのか、いつどこで使えばいいのか、具体的にNext.jsのどういうところがいいのか、どういう機能があるのかという話をします。 最終的には普段Railsを書いているエンジニアが、Next.jsよさそうなんで使ってみようかな?と思ってもらえるといいかなと思っています。 Next.jsとは何か Next.jsのトップページを見てみましょう。 The React Framework for Production と書いてあります。これは読んで字のごとくですが、Next.jsというのはReactをベースにしたフレームワ

    RailsエンジニアのためのNext.js入門 - hokaccha memo
  • RailsエンジニアのためのNext.js入門

    巨大なモノリシック Rails アプリケーションの マイクロサービス化戦略 / 2019 microservices in cookpad

    RailsエンジニアのためのNext.js入門
  • CTOが訊く#2 Rails Committer と DeNA | BLOG - DeNA Engineering

    CTOが訊く#2 Rails Committer と DeNA 「CTOが訊く」は、DeNA CTO の @nekokak(ねこかく)こと小林 篤が、社内のメンバーに、その人となりや仕事っぷり、そして野望を訊く、というコーナーです。 第2回の対談ゲストは、@kamipo(かみぽ)こと上薗 竜太。 Full-Time Rails Committer としての入社 ▲左から、@kamipo:上薗 竜太、@nekokak:小林 篤 @nekokak 今日は「CTOが訊く」へ、Rails Committer である kamipo さんに来ていただきました。よろしくお願いします。 @kamipo お願いします。 @nekokak この「CTOが訊く」は、DeNA で活躍しているスペシャリティの高いエンジニアの人から色々と話を訊きながら、DeNA でどういう活躍をしているか伺って深堀りをしていく、とい

    CTOが訊く#2 Rails Committer と DeNA | BLOG - DeNA Engineering
  • Announcing Rust 1.56.0 and Rust 2021 | Rust Blog

    The Rust team is happy to announce a new version of Rust, 1.56.0. This stabilizes the 2021 edition as well. Rust is a programming language empowering everyone to build reliable and efficient software. If you have a previous version of Rust installed via rustup, getting Rust 1.56.0 is as easy as: $ rustup update stable If you don't have it already, you can get rustup from the appropriate page on ou

    Announcing Rust 1.56.0 and Rust 2021 | Rust Blog
    sugyan
    sugyan 2021/10/22
    2021年がやってきた
  • 先日の電竜戦、長時間マッチで現れたやねうら王のバグについて | やねうら王 公式サイト

    二日前に電竜戦 dlshogiと水匠の長時間マッチが開催された。 最高峰将棋AIによる長時間対局、プロ棋士3名が解説 : https://yaneuraou.yaneu.com/2021/08/03/long-time-game-by-the-best-shogi-ai/ イベント的には大成功で、多くのニュースメディアでも取り上げていただいたようである。 水匠のバグについて さて、その1局目で水匠がバグと思わしき読み筋が現れた。成れないところに飛車を成るというものだ。水匠の読みの錯覚であり、それによって大きく形勢を損ねて敗北を喫した。 水匠 vs dlshogi、先手番をともに制す(コンピュータ将棋協会blog) : http://blog.computer-shogi.org/denryu-sen_channel_opening-matches_and_conference/ 水匠の探索

    sugyan
    sugyan 2021/10/21
  • 最強CPU将棋ソフト『水匠』VS最強GPU将棋ソフト『dlshogi』長時間マッチ観戦記 第二譜『dlshogi』山岡忠夫の信念

    取材・文/白鳥士郎 「バグが原因で勝ったと思われるのは、嫌だな」 第1局に勝利した瞬間、山岡忠夫の心に真っ先に浮かんだのは、そんな思いだった。 『やねうら王』に存在したバグ。 山岡はその存在に全く気付いてはいなかった。そもそも山岡は将棋ソフトを開発する際に、盤面や読み筋はおろか、評価値すら見ることがない。だからバグを知らないのも当然といえた。 では、山岡は何を見て開発しているのか? 「基的に、見るのは勝率と正解率です」 正解率とは、長時間の対局で『dlshogi』が指した手と同じ手を、ニューラルネットで予測して時間を使わず指すことができるかどうか、その割合を示す。 この精度が高ければ高いほど、dlshogiが強くなっているということを意味する。 だから山岡はdlshogiがどんな将棋を指すのかをほぼ知らない。将棋を指さず、将棋番組も見ないため、そもそも将棋の対局を見る機会もあまりない。

    最強CPU将棋ソフト『水匠』VS最強GPU将棋ソフト『dlshogi』長時間マッチ観戦記 第二譜『dlshogi』山岡忠夫の信念
  • 41歳のエンジニア、マネージャーからICへのキャリアチェンジ | おそらくはそれさえも平凡な日々

    最初にお断りしておくと、このエントリは驚くほど僕固有の私的な話に終止するので、他の人の参考にはならないでしょう。 ICというのはIndividual Contributorの略で、最近だとHashiCorp創業者のあのMitchell Hashimoto氏が、HashiCorp社内でICになるというのも話題になりました。日でも、こにふぁーさんがそういう動きをしていたりして、ちょいちょい聞くようになってきた印象です。 今回の僕の転職は、言ってしまえば、自分が培ってきたソフトウェアエンジニアとしてのスキルを活かして世界の舞台で戦いたいという気持ちを抑えきれなかった、という幼稚な理由です。自分が求めているものがLaunchableにはあるように感じて入社しました。 振り返ってみると、最近の自分の転職における決め手は「自分を一番必要としてくれるところ」という側面が強かったと感じています。その結果

    41歳のエンジニア、マネージャーからICへのキャリアチェンジ | おそらくはそれさえも平凡な日々
    sugyan
    sugyan 2021/10/21
    めっちゃかっこいい…
  • 日本のSREの火付け役ともなったエンジニアが貫く信念 ─ すべてはログの向こうにいるエンドユーザのために - Findy Engineer Lab

    こんにちは、はじめまして。さくらインターネット株式会社の長野雅広(@kazeburo)です。Webの業界に入ったのは学生だった2000年頃で、キャリアは20年以上になります。おそらくこの業界でも長い方ではないでしょうか。20年の間にmixiやlivedoor、メルカリといった企業で働く機会を得て、どの職場でもサービスの裏側にあるインフラや、Webアプリケーションの運用を支える仕事、今ではSREと呼ばれるような業務に携わってきました。 そして今年の1月から、さくらインターネットにてクラウドを中心にサービスの開発を行っています。つまり、インフラやクラウドを利用して一般のお客様向けにサービスを作るという仕事から、クラウドを作ることを仕事にする、という選択をしました。 この記事では、どのような経験からSREとして働くようになったのか、また現職に至る選択をした経緯について語りたいと思います。加えて、

    日本のSREの火付け役ともなったエンジニアが貫く信念 ─ すべてはログの向こうにいるエンドユーザのために - Findy Engineer Lab
  • 「998244353 で割ったあまり」の求め方を総特集! 〜 逆元から離散対数まで 〜 - Qiita

    1. なぜ 998244353 で割るのか? 最初はこのような設問を見るとぎょっとしてしまいますが、実はとても自然な問題設定です。 $998244353$ で割らないと、答えの桁数がとてつもなく大きくなってしまうことがあります。このとき以下のような問題が生じます: 多倍長整数がサポートされている言語とされていない言語とで有利不利が生じる 10000 桁にも及ぶような巨大な整数を扱うとなると計算時間が膨大にかかってしまう 1 番目の事情はプログラミングコンテストに特有のものと思えなくもないですが、2 番目の事情は切実です。整数の足し算や掛け算などを実施するとき、桁数があまりにも大きくなると桁数に応じた計算時間がかかってしまいます。実用的にもそのような巨大な整数を扱うときは、いくつかの素数で割ったあまりを計算しておいて、最後に中国剰余定理を適用して復元することも多いです。 なぜ 9982443

    「998244353 で割ったあまり」の求め方を総特集! 〜 逆元から離散対数まで 〜 - Qiita