[ 目次, 前節, 次節, 索引 ] 2014-03-06 更新 [ 目次, 前節, 次節, 索引 ]
[ 目次, 前節, 次節, 索引 ] 2014-03-06 更新 [ 目次, 前節, 次節, 索引 ]
私が生業とするソフトウェア開発において、OSやコードエディタやプログラミング言語など、様々なソフトウェアを使います*1。これらについて私が使っているものを理由付きで書くと次のようになります。 OS: Ubuntu 22.04 細かい設定をしなくてもそれなりに使える。よく普及しているから色々な情報を得やすい コードエディタ: VSCode 細かい設定をしなくてもそれなりに使える。Remote SSH extensionを使ったリモートマシン上での開発が楽 プログラミング言語: 主にGo 使い慣れているから。システムプログラムをするから。覚えやすいから これらにそれなりの愛着はあるものの、今後置かれる状況によって、どんどん変わってくるでしょう。じっさい10年くらい前はGoはほとんど使っていなくて、Cプログラマでした。 私はこんな感じですが、中には特定のソフトウェアに愛情を注ぐ人もいます。それ自
メモリー関連の不具合を減らすために、「Android」の新しいコードにRustを使用するというGoogleの判断は、成果を挙げているようだ。この数年で、Androidのメモリー安全性関連の脆弱性は半分以下になった。この成果が達成された時期は、GoogleがCやC++からメモリー安全性の高いプログラミング言語であるRustに切り替えた時期と一致する。 Androidに発見されたセキュリティホールの中で、最も件数が多かったカテゴリーがメモリー安全性関連の脆弱性でなかったのは2022年が初めであり、Googleは1年前に、「Android Open Source Project(AOSP)」で新しいコードのデフォルト言語をRustに切り替えている。 GoogleがAndroidに使用しているほかのメモリー安全性を備えた言語には、JavaやJava互換のKotlinがある。AOSPで主流の言語はま
DeNAの多様に展開する事業や、それぞれの個性やライフステージに応じたフレキシブルな働き方、それらを受容するDeNAが根底に持つ考え方などを伝えるDeNA TechCon 2022 Autumn。ここで、株式会社ディー・エヌ・エーのAndroidエンジニアである手塚悠太氏が、『グランブルーファンタジー』推奨ブラウザ「SkyLeap」の開発を例に、リファクタリングの仕方について紹介しました。 リファクタリングはできていますか? 手塚悠太氏:それでは、「レガシーな実装を丁寧にリファクタしてモダンな実装にする技術」について、手塚悠太が発表いたします。 自己紹介です。2019年にDeNAに中途入社し、当時はMOV、現在の名前はGOですね、こちらのタクシーアプリの乗務員さん向けアプリケーションを開発していました。またタクシーフードデリバリーサービス「GO Dine」のアプリケーション開発も担当をして
もくもく会で話している中で、「技術書を読んでも頭に入ってこないし、プログラミングスキルが上がらない」という話になり、そのよさげな説明を思いついたので共有します。 具体的な話としては「本を読んでもスキルアップした感じがしない。それで本をよむモチベがわかない。」というものでした。これは僕もとても共感します。バックエンドエンジニアでいくつか有名な本があり(例えばPoEAAやDDD本)、読まないといけないと思い手を出しました。しかし、何を言っているかわからずひたすらに苦痛で、読み切ることができませんでした。結局これらを読み終えることができたのは、業務経験を4年ほど積んだあとでした。 なぜ、本を読んでも苦痛なのか、頭に入ってこないかを、今振り返ってみると、「全体感」と「土地勘」という例えで説明できるのではと思いました。 まず、前提としてあなたが新しい土地に引っ越してきたとします。その地域のことは全然
$ ssh-keygen -t rsa -b 4096 -C "comment" Generating public/private rsa key pair. Enter file in which to save the key (/Users/xxxx/.ssh/id_rsa): ←秘密鍵のファイル名を入力 Enter passphrase (empty for no passphrase): ←パスフレーズを入力 Enter same passphrase again: ←パスフレーズを入力 Your identification has been saved in /home/xxxx/.ssh/id_rsa. Your public key has been saved in /home/xxxx/.ssh/id_rsa.pub. The key fingerprint is:
nadokaさんについて nadokaさんのインストール nadokaさんの使い方起動 クライアントの接続 終了 設定ファイルの再読み込み 設定ファイル nadokarc の書き方大枠 一般的な設定 クライアントサーバの設定 IRCサーバの設定 ユーザ情報などの設定 チャンネル情報 ディレクトリの設定 bot の設定 そのた すてっぷあっぷ botbot の作り方 添付 bot 紹介samplebot.nb cron.nb opshop.nb rss_check.nb sixamo.nb shellbot.nb evalbot.nb メーリングリスト irc channel 謝辞 感謝したい 変更履歴 nadokaさんについて nadoka さんは、IRCクライアントサーバプログラムです。わかりやすくいうと IRC Client Proxy とか Bouncer とか言うらしいです。私ささ
知り合いに頼まれて、ちょっとUNIXの初歩を教える授業をした。 ちょっとといっても結構がっつりで、入ってきたばかりの、だいたいは家にパソコンがないという素人の学生に、2ヶ月間・23日・2コマずつで基本を教え、ちょっとしたツールをシェルスクリプトで作れるような、いわば普通のUNIX使いにしてくれ、という要望である。 一応の教科書は指定されたのだが、自分で買って読んでみたところ、あまり良くなかったので使わなかった。「これはリファレンスに使ってください」ということにした。 代わりに使ったのは、自分が真に優れていると思う本、Kernighan & Pikeの『UNIXプログラミング環境』である。1984年初版、対象はVersion7 UNIXと非常に古いので、内容は全部作り直しだ。全9章あるが、Cでツールを作り出す6章以降はいらないし(9章なんてtroffの詳細だぜ)、5章で作るツールはかなり古臭
この表はクライアントOSの値です。この表にはサーバーOSの値は記載していません。サーバーOSの値はクライアントOSの値と異なるところがあります。 デフォルトプロトコルの中でどれが使われるかは、実際に通信するときにサーバーとのネゴシエーションで決まります。通常であれば、クライアント側とサーバー側の両方で使用できるプロトコルの中で一番強度が高いものが使用されます。 この表を見てわかるように、Windows 7やWindows 8では、OSとしてはTLS 1.1やTLS1.2をサポートしていますが、WinHttp APIとしては、デフォルトでは利用されません。Windows 8.1以降であれば、デフォルトのままでもTLS1.2が使われます。 推奨の暗号化プロトコルはTLS1.2以降 現時点(2019年6月)で安全とされる推奨の暗号化プロトコルは、TLS1.2以降です。 TLS1.3は IETFは
この記事は、クソアプリAdvent Calendar2021の20日目(ホノルル時間)の記事であると同時に、GMOペパボエンジニア Advent Calendar 2021の21日目(日本時間)の記事でもあります。 みなさん、TypeScript使ってますか?TypeScriptはJavaScriptの世界に秩序をもたらす素晴らしい言語ですね。 しかし世界には光の秩序だけでなく闇の混沌も必要です。 という訳で、JavaScriptに闇の混沌をもたらす新言語を作ってみました。 その名も『TypoScript』です。 TypoScript is 何 TypoScriptとは何か。まずはこちらのコードをご覧ください。 function fizz_buzz(count) { for (var i = 1; i <= caunt; i++) { if (i % 3 === 0 && i % 5 ==
CyberZ CTO室のメンバーの森 (@at_sushi_at) です。 先日、株式会社サイバーエージェントの2021年度 エンジニア新卒研修でコードの品質に関する講義を行いました。 そこで話した内容とスライドを完全公開します。 45分の内容のため、かなり長いですが、個人的にぜひ一読して欲しい内容になっています。 はじめに こんにちは、森 篤史と言います。2019年度入社で今年で3年目になります。株式会社CyberZのOPENREC.tvというプロダクトでAndroidアプリチームのリーダをやっています。 最近はプログラムを書く仕事以外に、次世代マネジメント室という全社横断組織でDevelopers Blogの改善プロジェクトを実行したり、CyberZ CTO室で組織活性化に取り組んでいます。 あと、2019年度の未踏スーパークリエータにも認定されました。 メインの仕事としては、入社して
株式会社サイバーエージェントの2021年度 エンジニア新卒研修でコードの品質に関する講義を行いました。 https://note.com/cyberz_cto/n/n26f535d6c575
christine.websiteのブログより。 または: お金を払わない限り、有用なソフトウェアを書かないのか? 最近、重要なJavaエコシステム・パッケージに大きな脆弱性が見つかりました。この脆弱性が完全に兵器化されると、攻撃者はLDAPサーバから取得した任意のコードを実行するよう、Javaサーバを強制することができます。 <マラ> もしこれがニュースで、あなたがJavaショップで働いているなら、残念ですが、あなたには2、3日が待っています。 私は、これが「オープンソース」ソフトウェアの主要なエコシステム問題の全ての完璧な縮図だと考えています。log4j2が、この問題の最悪のシナリオの1つの完璧な例であると思うので、このすべてについていくつか考えを持っています。この問題に関与したすべての人が、現実世界の問題に対する完全に妥当な解決策のためにこれらすべてを行ったことは完全に合理的であり、
PDFのみの提供です。紙書籍はありません ご購入にあたっては下記の「β版についての注意」をよくお読みください 将来発売予定の正式版(本体価格未定)を差額等でお求め頂くことはできません 原則を学んで腕を磨き、さらなる高みを目指す Jeremy Evans 著、角谷信太郎 訳 原書 Polished Ruby Programming A5判 2021年11月30日 発行 β版へのフィードバック 本書の目的は、中級から上級のRubyプログラマーが従うべき有用な原則を伝えることです。 解決策をどのように実装するかだけではなく、さまざまな実装方式と、それらの間のトレードオフ、ある方式が特定の状況下ではなぜ有効なのかといった観点も重視します。 原則を伝えることが本書の主な目的ですが、Rubyプログラミングの発展的な技法について説明することもあります。(本書β版「はじめに」より) 本書の対象読者 中級か
ここ2年くらい、仕事では大体 Go を書いている。jmuk さんが Go言語は、なんというか「ちょうどいい」言語だな、と思っている。異論は認める。 と書いていたけれど、私はやっぱり Scala や Kotlin あたりが好きで、これは変わらなそう。 例えばコレクションを map しているのをみると、私は「なるほど、ここではコレクションの要素数は変わらないんですね」と思う。filter だったら「コレクションの要素数は変わるけど、個々の要素は変わらないのか」ということを、あるいは Result を map していたら「ここではエラーのほうは触らないのね」ということを読みとっている。 こういう意図が、素朴な for ループと、if err != nil だと読みきれなくて、いや真面目に字面を追っていけばわかるんだけど、私が「map するか」と思いながら for ループを書いて、その for ル
https://www.kbaba1001.com/entry/2021/09/17/073149 (該当記事が削除されました) RubyのサービスをGoで置き換えるのは3倍人手がかかる 何するにも機能不足 JSONの読み書きにわざわざ構造体書くの面倒 同僚がGoを選ぼうとしたら愚かな選択ですねと答える サーバーサイド開発にGoを使うのは危険 っぽい内容だったかと。 だいぶGoの特徴や既存の言語との考え方の違いが広まってきてるのかなぁと思っていた矢先だったので十年くらい前のような指摘をあえて今されていてびっくりした。 正直、ここに書かれたようなヘイト項目は既出すぎるので、もし影響の大きい項目を多くの人が同様に嫌っているならばGoはここまでの人気のある処理系になることはなかったと思う。(もしくは多くの人が嫌ってはいるが影響の小さい項目ということ) Goは出た当初、こういうヘイトが世界中のブロ
ある仕事でそれまでRubyで書かれていたサーバーサイドをGo言語ですべて書き直すことになって、それまでRubyのコードを書いていた僕はそのままGo言語を書くことになった。その仕事そのものはお客様(僕は外部委託のエンジニアとして参画していた)との関係も良好で素晴らしい仕事をさせてもらうことができたと思っているが、Go言語だけは好きになれなかった。 はじめは流行っている言語だから何か素晴らしい魅力があるのではないかと期待していた。しかし書き始めるうちにどうも自分には合わないなと思うようになり、2年ほど書いて案件の契約が終わる頃にはGo言語でサーバーサイドを書くことは危険だとさえ思うようになった。 あれから数年がたちますますGo言語の案件は増えている。サーバーサイドを書く選択肢としてGo言語を選択する会社も増えている。しかし本当にそれでいいのか?ただ流行っているからという理由だけで選択するにはあ
絶対に重複しないといわれるUUID UUIDとはUniversally Unique Identifier の略で、「Universally」つまり将来にわたって重複や偶然の一致が起こらないという前提で使われるIDのことです。 128ビットで表現されるUUIDは2^128通り(Version 4では固定値があるため2^122通り)あり、その膨大なパターンから将来に渡って重複しないとされています。その特性から、ファイルのハッシュ値に使われたり、DBのキーに使われたりしています。重複しないことが約束されているので、大変使い勝手が良いのです。 とはいえ、有限桁数である以上は重複が発生する可能性がごく僅かながら存在します。 では実際に重複させるには、どれだけUUIDを作らないといけないのか試してみます。 まずは計算で目算をつける x通りのパターンがあるとき、衝突回数がpになるときの試行回数nは以下
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く