タグ

プログラミングに関するtemtanのブックマーク (114)

  • 好きなの使って他のをけなさない - 覚書

    私が生業とするソフトウェア開発において、OSやコードエディタやプログラミング言語など、様々なソフトウェアを使います*1。これらについて私が使っているものを理由付きで書くと次のようになります。 OS: Ubuntu 22.04 細かい設定をしなくてもそれなりに使える。よく普及しているから色々な情報を得やすい コードエディタ: VSCode 細かい設定をしなくてもそれなりに使える。Remote SSH extensionを使ったリモートマシン上での開発が楽 プログラミング言語: 主にGo 使い慣れているから。システムプログラムをするから。覚えやすいから これらにそれなりの愛着はあるものの、今後置かれる状況によって、どんどん変わってくるでしょう。じっさい10年くらい前はGoはほとんど使っていなくて、Cプログラマでした。 私はこんな感じですが、中には特定のソフトウェアに愛情を注ぐ人もいます。それ自

    好きなの使って他のをけなさない - 覚書
    temtan
    temtan 2022/12/27
    これは行儀正しい話だけど、「けなす」ってのは「それが駄目な所(目的を達成できない)をフラットな言葉で指摘する」を口悪く言うようにしただけだし、わざわざ口にする必要は無いかもだけど出来る方が良さげ
  • グーグル、Rust採用で「Android」のメモリーに関わる脆弱性が激減

    メモリー関連の不具合を減らすために、「Android」の新しいコードにRustを使用するというGoogleの判断は、成果を挙げているようだ。この数年で、Androidのメモリー安全性関連の脆弱性は半分以下になった。この成果が達成された時期は、GoogleがCやC++からメモリー安全性の高いプログラミング言語であるRustに切り替えた時期と一致する。 Androidに発見されたセキュリティホールの中で、最も件数が多かったカテゴリーがメモリー安全性関連の脆弱性でなかったのは2022年が初めであり、Googleは1年前に、「Android Open Source Project(AOSP)」で新しいコードのデフォルト言語をRustに切り替えている。 GoogleAndroidに使用しているほかのメモリー安全性を備えた言語には、JavaJava互換のKotlinがある。AOSPで主流の言語はま

    グーグル、Rust採用で「Android」のメモリーに関わる脆弱性が激減
  • リファクタリングは、下準備がすべて 『グランブルーファンタジー』推奨ブラウザ「SkyLeap」が生まれ変わるまで

    DeNAの多様に展開する事業や、それぞれの個性やライフステージに応じたフレキシブルな働き方、それらを受容するDeNAが根底に持つ考え方などを伝えるDeNA TechCon 2022 Autumn。ここで、株式会社ディー・エヌ・エーのAndroidエンジニアである手塚悠太氏が、『グランブルーファンタジー』推奨ブラウザ「SkyLeap」の開発を例に、リファクタリングの仕方について紹介しました。 リファクタリングはできていますか? 手塚悠太氏:それでは、「レガシーな実装を丁寧にリファクタしてモダンな実装にする技術」について、手塚悠太が発表いたします。 自己紹介です。2019年にDeNAに中途入社し、当時はMOV、現在の名前はGOですね、こちらのタクシーアプリの乗務員さん向けアプリケーションを開発していました。またタクシーフードデリバリーサービス「GO Dine」のアプリケーション開発も担当をして

    リファクタリングは、下準備がすべて 『グランブルーファンタジー』推奨ブラウザ「SkyLeap」が生まれ変わるまで
  • 技術書を読んでも頭に入ってこないし、プログラミングスキルが上がらないのはなぜか?

    もくもく会で話している中で、「技術書を読んでも頭に入ってこないし、プログラミングスキルが上がらない」という話になり、そのよさげな説明を思いついたので共有します。 具体的な話としては「を読んでもスキルアップした感じがしない。それでをよむモチベがわかない。」というものでした。これは僕もとても共感します。バックエンドエンジニアでいくつか有名ながあり(例えばPoEAAやDDD)、読まないといけないと思い手を出しました。しかし、何を言っているかわからずひたすらに苦痛で、読み切ることができませんでした。結局これらを読み終えることができたのは、業務経験を4年ほど積んだあとでした。 なぜ、を読んでも苦痛なのか、頭に入ってこないかを、今振り返ってみると、「全体感」と「土地勘」という例えで説明できるのではと思いました。 まず、前提としてあなたが新しい土地に引っ越してきたとします。その地域のことは全然

    技術書を読んでも頭に入ってこないし、プログラミングスキルが上がらないのはなぜか?
    temtan
    temtan 2022/11/15
    つまりは「土地勘」を個別の技術の理解、「全体感」を体系的な理解って話よな。体系的に理解するのは難しいのは昔からそうだし別にたいした事言ってないよな。
  • lighttpdでrubyのcgiを動かす

  • Linux | 公開鍵認証とsshコマンド、scpコマンドの使い方 - わくわくBank

    $ 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:

    Linux | 公開鍵認証とsshコマンド、scpコマンドの使い方 - わくわくBank
  • Nadoka: IRC Client Server Program - nadokaさんとあそぼう

    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を教える仕事をした - はてなの鴨澤

    知り合いに頼まれて、ちょっとUNIXの初歩を教える授業をした。 ちょっとといっても結構がっつりで、入ってきたばかりの、だいたいは家にパソコンがないという素人の学生に、2ヶ月間・23日・2コマずつで基を教え、ちょっとしたツールをシェルスクリプトで作れるような、いわば普通のUNIX使いにしてくれ、という要望である。 一応の教科書は指定されたのだが、自分で買って読んでみたところ、あまり良くなかったので使わなかった。「これはリファレンスに使ってください」ということにした。 代わりに使ったのは、自分が真に優れていると思う、Kernighan & Pikeの『UNIXプログラミング環境』である。1984年初版、対象はVersion7 UNIXと非常に古いので、内容は全部作り直しだ。全9章あるが、Cでツールを作り出す6章以降はいらないし(9章なんてtroffの詳細だぜ)、5章で作るツールはかなり古臭

    UNIXを教える仕事をした - はてなの鴨澤
    temtan
    temtan 2022/07/02
    『UNIXプログラミング環境』は名著よね。自分はこの本を読んで UNIX の特性を知って UNIX らしいコンピュータの使い方を身につけたと思う。
  • WinHttp APIでの通信でTLS1.1/1.2を有効化する#1

    この表はクライアント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

    WinHttp APIでの通信でTLS1.1/1.2を有効化する#1
  • 新言語『TypoScript』を作った - Qiita

    この記事は、クソアプリAdvent Calendar2021の20日目(ホノルル時間)の記事であると同時に、GMOペパボエンジニア Advent Calendar 2021の21日目(日時間)の記事でもあります。 みなさん、TypeScript使ってますか?TypeScriptJavaScriptの世界に秩序をもたらす素晴らしい言語ですね。 しかし世界には光の秩序だけでなく闇の混沌も必要です。 という訳で、JavaScriptに闇の混沌をもたらす新言語を作ってみました。 その名も『TypoScript』です。 TypoScript is 何 TypoScriptとは何か。まずはこちらのコードをご覧ください。 function fizz_buzz(count) { for (var i = 1; i <= caunt; i++) { if (i % 3 === 0 && i % 5 ==

    新言語『TypoScript』を作った - Qiita
    temtan
    temtan 2021/12/21
    ネタにマジレスだけど、この言語で作ったプログラムのデバッグは大変だな。
  • 良いコードとは何か - エンジニア新卒研修 スライド公開|CyberZ Developer

    CyberZ CTO室のメンバーの森 (@at_sushi_at) です。 先日、株式会社サイバーエージェントの2021年度 エンジニア新卒研修でコードの品質に関する講義を行いました。 そこで話した内容とスライドを完全公開します。 45分の内容のため、かなり長いですが、個人的にぜひ一読して欲しい内容になっています。 はじめに こんにちは、森 篤史と言います。2019年度入社で今年で3年目になります。株式会社CyberZのOPENREC.tvというプロダクトでAndroidアプリチームのリーダをやっています。 最近はプログラムを書く仕事以外に、次世代マネジメント室という全社横断組織でDevelopers Blogの改善プロジェクトを実行したり、CyberZ CTO室で組織活性化に取り組んでいます。 あと、2019年度の未踏スーパークリエータにも認定されました。 メインの仕事としては、入社して

    良いコードとは何か - エンジニア新卒研修 スライド公開|CyberZ Developer
    temtan
    temtan 2021/12/20
    こっちに詳しい解説付であった。
  • 良いコードとは何か - エンジニア新卒研修 スライド公開

    株式会社サイバーエージェントの2021年度 エンジニア新卒研修でコードの品質に関する講義を行いました。 https://note.com/cyberz_cto/n/n26f535d6c575

    良いコードとは何か - エンジニア新卒研修 スライド公開
    temtan
    temtan 2021/12/20
    ここに書いてあることはある一定以上プログラミングやってればある程度は体感している事だと思うけど、言語化されて良く纏まっていると思う。でも、理解していない理解できない人も結構居るんだろうな
  • 元JavaエンジニアがGoに感じた「表現力の低さ」と「開発生産性」の話 - DMM inside

    |DMM inside

    元JavaエンジニアがGoに感じた「表現力の低さ」と「開発生産性」の話 - DMM inside
    temtan
    temtan 2021/12/17
    別にJavaでもnullチェックするコードは書けるし「初心者でも上級者と同じアウトプットができる」は「上級者でも初心者と同じアウトプットしか出来ない」とも言えるしなあ。どう書くか迷わずに済むのは良いかもしれんが
  • 「オープンソース」は壊れている

    christine.websiteのブログより。 または: お金を払わない限り、有用なソフトウェアを書かないのか? 最近、重要なJavaエコシステム・パッケージに大きな脆弱性が見つかりました。この脆弱性が完全に兵器化されると、攻撃者はLDAPサーバから取得した任意のコードを実行するよう、Javaサーバを強制することができます。 <マラ> もしこれがニュースで、あなたがJavaショップで働いているなら、残念ですが、あなたには2、3日が待っています。 私は、これが「オープンソース」ソフトウェアの主要なエコシステム問題の全ての完璧な縮図だと考えています。log4j2が、この問題の最悪のシナリオの1つの完璧な例であると思うので、このすべてについていくつか考えを持っています。この問題に関与したすべての人が、現実世界の問題に対する完全に妥当な解決策のためにこれらすべてを行ったことは完全に合理的であり、

    「オープンソース」は壊れている
    temtan
    temtan 2021/12/14
    考え方が逆でどこの馬の骨とも判らない奴が作ったソフトウェアを無料で仕事で使っている企業がおかしいんだよ。
  • 研鑽Rubyプログラミング β版

    PDFのみの提供です。紙書籍はありません ご購入にあたっては下記の「β版についての注意」をよくお読みください 将来発売予定の正式版(体価格未定)を差額等でお求め頂くことはできません 原則を学んで腕を磨き、さらなる高みを目指す Jeremy Evans 著、角谷信太郎 訳 原書 Polished Ruby Programming A5判 2021年11月30日 発行 β版へのフィードバック 書の目的は、中級から上級のRubyプログラマーが従うべき有用な原則を伝えることです。 解決策をどのように実装するかだけではなく、さまざまな実装方式と、それらの間のトレードオフ、ある方式が特定の状況下ではなぜ有効なのかといった観点も重視します。 原則を伝えることが書の主な目的ですが、Rubyプログラミングの発展的な技法について説明することもあります。(書β版「はじめに」より) 書の対象読者 中級か

    研鑽Rubyプログラミング β版
  • Go を2年くらい書いた感想: 意図をエンコードしきれない感じは消えず - blog.8-p.info

    ここ2年くらい、仕事では大体 Go を書いている。jmuk さんが Go言語は、なんというか「ちょうどいい」言語だな、と思っている。異論は認める。 と書いていたけれど、私はやっぱり ScalaKotlin あたりが好きで、これは変わらなそう。 例えばコレクションを map しているのをみると、私は「なるほど、ここではコレクションの要素数は変わらないんですね」と思う。filter だったら「コレクションの要素数は変わるけど、個々の要素は変わらないのか」ということを、あるいは Result を map していたら「ここではエラーのほうは触らないのね」ということを読みとっている。 こういう意図が、素朴な for ループと、if err != nil だと読みきれなくて、いや真面目に字面を追っていけばわかるんだけど、私が「map するか」と思いながら for ループを書いて、その for ル

  • Goへのヘイトに対する考え方

    https://www.kbaba1001.com/entry/2021/09/17/073149 (該当記事が削除されました) RubyのサービスをGoで置き換えるのは3倍人手がかかる 何するにも機能不足 JSONの読み書きにわざわざ構造体書くの面倒 同僚がGoを選ぼうとしたら愚かな選択ですねと答える サーバーサイド開発にGoを使うのは危険 っぽい内容だったかと。 だいぶGoの特徴や既存の言語との考え方の違いが広まってきてるのかなぁと思っていた矢先だったので十年くらい前のような指摘をあえて今されていてびっくりした。 正直、ここに書かれたようなヘイト項目は既出すぎるので、もし影響の大きい項目を多くの人が同様に嫌っているならばGoはここまでの人気のある処理系になることはなかったと思う。(もしくは多くの人が嫌ってはいるが影響の小さい項目ということ) Goは出た当初、こういうヘイトが世界中のブロ

    Goへのヘイトに対する考え方
    temtan
    temtan 2021/09/18
    なんか向こうが言ってることの反論にあんまりなってない気がする。
  • Go言語を嫌う6個の理由 - さめたコーヒー

    ある仕事でそれまでRubyで書かれていたサーバーサイドをGo言語ですべて書き直すことになって、それまでRubyのコードを書いていた僕はそのままGo言語を書くことになった。その仕事そのものはお客様(僕は外部委託のエンジニアとして参画していた)との関係も良好で素晴らしい仕事をさせてもらうことができたと思っているが、Go言語だけは好きになれなかった。 はじめは流行っている言語だから何か素晴らしい魅力があるのではないかと期待していた。しかし書き始めるうちにどうも自分には合わないなと思うようになり、2年ほど書いて案件の契約が終わる頃にはGo言語でサーバーサイドを書くことは危険だとさえ思うようになった。 あれから数年がたちますますGo言語の案件は増えている。サーバーサイドを書く選択肢としてGo言語を選択する会社も増えている。しかし当にそれでいいのか?ただ流行っているからという理由だけで選択するにはあ

    Go言語を嫌う6個の理由 - さめたコーヒー
  • UUIDを重複させるにはどれだけ時間がかかるのか試してみた

    絶対に重複しないといわれるUUID UUIDとはUniversally Unique Identifier の略で、「Universally」つまり将来にわたって重複や偶然の一致が起こらないという前提で使われるIDのことです。 128ビットで表現されるUUIDは2^128通り(Version 4では固定値があるため2^122通り)あり、その膨大なパターンから将来に渡って重複しないとされています。その特性から、ファイルのハッシュ値に使われたり、DBのキーに使われたりしています。重複しないことが約束されているので、大変使い勝手が良いのです。 とはいえ、有限桁数である以上は重複が発生する可能性がごく僅かながら存在します。 では実際に重複させるには、どれだけUUIDを作らないといけないのか試してみます。 まずは計算で目算をつける x通りのパターンがあるとき、衝突回数がpになるときの試行回数nは以下

    UUIDを重複させるにはどれだけ時間がかかるのか試してみた
  • ヘタクソなコードを書いてもいい - 覚書

    プログラミング言語のお作法から外れたコードやメンテ性が悪いコードを書くのはダメとよくいわれます。わたしは学生の頃、そういう意見を過剰に気にしていました。コードを書くことそのものに慣れていないのに綺麗に書こうとして手が動かず、動かないがゆえにコーディングの練習が進まない、という悪循環になっていました。そうすると何もアウトプットしないまま知識だけが増えていって、自分がこれくらいできそうというイメージと実際のプログラミング能力とのギャップで苦しみました。 この意識が薄れたのは、あるときものすごく手が早い人のコードを偶然見たときでした。たしかにちゃんと動くものができているんですが、そのコードの中身は当時の私の基準からいって*1おぞましいほど汚いものでした。そこで「これはわたしが書けば100倍くらい綺麗なコードを書けるんでは…」と一瞬思ったんですが、その後すぐに「あ、自分は知識はあるけど練習してない

    ヘタクソなコードを書いてもいい - 覚書
    temtan
    temtan 2021/07/12
    リファクタリングという手法がありましてね/堅い企業とかだと一度通ってしまったコードは手直しだけするの大変だから一度通す前までに綺麗にしておかないと後で苦労することになるし結局は程度問題よの