タグ

ブックマーク / qiita.com (266)

  • 「コメントは書くな」 - Qiita

    同僚だったロシア人のMはとにかくすごいエンジニアで、給料について社長ともめていたかと思えば、スーパーデプロイシステムを一人で作り上げていたり、Python推しの会社の中で、各所を説き伏せてTypeScript on node.jsの導入を進めたりしていた。 皮肉屋で、だれかれかまわず議論をふっかけていたが、とにかく仕事が速くて品質がよいので絶大に信頼されていた。 私は開発者としてMから様々な教えを授けられた。当時私はPHPerあがりのひよっこで、日々ダメコードを生産していた。 ある日Mにコードレビューを依頼すると、こんなことを言われた。 「堀さん!ソースコードにコメントを書いてはいけない!」 // connect to the database named "mysql" on the localhost val driver = "com.mysql.jdbc.Driver" val u

    「コメントは書くな」 - Qiita
    mohno
    mohno 2019/07/01
    もちろん例外はあるだろうけど、「コメントを必要とするようなソースコードの書き方をするな(変数名とかマジックナンバーとか)」ということだろう。「きれいなコードを書かなければならない」
  • Python で大量のファイルを並列で速く読み込む - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Python で大量のファイルを並列で速く読み込む - Qiita
    mohno
    mohno 2019/06/03
    マルチプロセスで高速化するなんて、ファイルシステム最強ってこと?と思ったけど、コメントによればファイルI/OじゃなくCSVのパースで時間がかかっているだけなのか。ふーん。
  • プログラミング初学者向け勉強会がマルチ商法の狩り場になっている件 - Qiita

    「初学者向けの勉強会でマルチ商法の勧誘をされた」という体験談を耳にするケースがここ最近非常に増えましたが、どうやら「勉強会の参加者の方から」勧誘されるケースだけでなく、「勉強会そのものがマルチ商法の勧誘を目的として開催されているのでは?」という疑念を持たざるを得ないケースもあるようです。 先日、私のTwitterフォロワーの方から「ENGINEER STYLE TOKYOという勉強会の主催者と運営サイドの人たちはアムウェイの勧誘をしています」というご連絡がありまして、私の方で主催者の方および主催者の方の運営されている団体様に関して調べてみたところ、何らかの形でアムウェイと関わっていると疑わざる得ない情報をいくつか発見いたしました。 私が主催している「雑エンジニアサロン」内でも質問してみたところ、「勉強会主催者の方にカフェに誘われたので行きました。徐々にプログラミングとは無関係の話題にな

    プログラミング初学者向け勉強会がマルチ商法の狩り場になっている件 - Qiita
    mohno
    mohno 2019/04/28
    こういう話の最後にオンラインサロンの案内ってなんだかな:-p まあ、引っかかる人は、そもそも技術者に向いてないという気が:-p
  • "call by reference"ではない動作を「参照渡し」と言っている記事まとめ - Qiita

    #include <iostream> void f(int& x) { x = 1; } int main() { int a = 0; f(a); std::cout << a << std::endl; // 1 return 0; } 記事一覧 以下の記事は"call by reference"ではない動作、ほとんどの場合は"call by value"の一種である"call by address"または"call by sharing"と言われている動作を「参照渡し」と言っています。なお、来、このような評価戦略の話は関数へ実引数へ渡す時の動作のことを言います。しかし、関数へ実引数を渡すことは、言い換えると、仮引数に実引数を代入(assignment)する事でもあります。よって、通常の代入に対する解説でも、関数への仮引数への代入時と同等の動作の解説として考え、どの評価戦略になるの

    "call by reference"ではない動作を「参照渡し」と言っている記事まとめ - Qiita
    mohno
    mohno 2019/04/21
    おおっ、と思ったがC言語はなかった(市販書籍でも参照渡しと書いてる記事があるらしいんだが、勘弁してほしい)。↓C++に必要なのはコピーコンストラクタのためです。
  • 再帰関数を学ぶと、どんな世界が広がるか - Qiita

    0. はじめに 再帰関数は初めて学ぶときに壁になりがちで なんとなくわかった...けれど どんな場面で使えるのだろう...いい感じの例を探したい! という気持ちになりがちです。再帰関数は、なかなかその動きを直感的に想像することが難しいため、掴み所が無いと感じてしまいそうです。 そこで記事では 再帰関数の動きを追いまくることで、再帰関数自体に慣れる 再帰的なアルゴリズムの実例に多数触れることで、世界を大きく広げる! ことを目標とします。特に「再帰関数がどういうものかはわかったけど、使いどころがわからない」という方のモヤモヤ感を少しでも晴らすことができたら嬉しいです。なお記事では、ソースコード例に用いるプログラミング言語として C++ を用いておりますが、基的にはプログラミング言語に依存しない部分についての解説を行っています。 追記 1. 再帰関数とは 再帰の意味はとても広いです。自分自

    再帰関数を学ぶと、どんな世界が広がるか - Qiita
    mohno
    mohno 2019/04/06
    再帰は“楽”ができるけど“(実行)効率がいい”わけじゃないからなあ。“富豪的プログラミング”ならばどんどん使えってことになるんだろうけれど。
  • Gitはどうやってテキストファイルとバイナリファイルを自動識別しているのか? - Qiita

    tl;dr 先頭 8000 バイト以内に NUL が有ったらバイナリファイル。 Gitの実装 Gitの内蔵diffは FIRST_FEW_BYTES だけ検索するようになっている。 https://github.com/git/git/blob/6e0cc6776106079ed4efa0cc9abace4107657abf/xdiff-interface.c#L187 #define FIRST_FEW_BYTES 8000 int buffer_is_binary(const char *ptr, unsigned long size) { if (FIRST_FEW_BYTES < size) size = FIRST_FEW_BYTES; return !!memchr(ptr, 0, size); }

    Gitはどうやってテキストファイルとバイナリファイルを自動識別しているのか? - Qiita
    mohno
    mohno 2019/03/31
    バイナリ/テキストの判定、あったなあ。「先頭 8000 バイト以内に NUL が有ったらバイナリファイル」←バイト数は忘れたが、実際、この程度で判定できてて驚いたものだ。
  • JavaScriptの関数名の全て - Qiita

    JavaScriptに限った話ではありませんが、関数というのは名前を持っていたり持っていなかったりします。関数名は普通はプログラムの読みやすさくらいにしか影響しませんが、JavaScriptでは必ずしもそうではありません。 例えばReactで関数コンポーネントを使う場合は関数名がコンポーネント名となり、React用開発者ツールなどで見ることができデバッグに役立ちます。また、Gulp v4もエクスポートした関数名がタスク名となります。 関数名は、関数オブジェクトのnameプロパティで取得できます。 function foo() { console.log('foo!'); } console.log(foo.name); // "foo"

    JavaScriptの関数名の全て - Qiita
    mohno
    mohno 2019/03/11
    こういうのって実装依存じゃないの?と読み進めたら、仕様の話だった^_^;;; 「こういう記事を書く時にはガチ勢を目指す人向けに仕様書に言及するようにしています」←ホント、言い訳するなら規格書で示せ、って話が:-)
  • iPadでプログラミングしてる人、今まで馬鹿にしててすみませんでしたァァァァ!!!! - Qiita

    こちらの記事内容は3年以上前のものなので、記事内にあるアプリケーションなどの動作やUIは実際と異なる可能性があるのでご注意ください。 (2023/01/04追記) iPadでプログラミングwwwアホちゃうかwww ワイ「え?お前全部iPadでプログラミングしてんの?そんなん効率悪いに決まっとるやんw」 ワイ「せいぜいでっかい画面でGithubのコード眺めるくらいしかできないやろwてかハイライトすらないんじゃn」 ?!(Monokaiで表示されとるやんけ...) ワイ「おっ、おう。シンタックスハイライトくらいはできるんやな。」 ワイ「まあ、考えてみればそのくらいは余裕だわなwでもな〜wコードだけ書けてもプレビューは?流石にそれが出来ないことには使えるとはいえn」 ?!?!(localhostで立ててくれるんか...これならCDN使えば簡単なサイトくらいやったらiPadだけで楽に作れるやんけ.

    iPadでプログラミングしてる人、今まで馬鹿にしててすみませんでしたァァァァ!!!! - Qiita
    mohno
    mohno 2019/03/05
    外部キーボードが使えるからだよね。というか、Photoshopも披露されているくらいなんだからスペック的な問題はないのでは?コスパ的には(Windowsかどうかはともかく)デスクトップ環境にかなう気がしないけど:-p
  • Delphi で最少のソースコードを書いてみる - Qiita

    はじめに Delphi で最少のソースコードってどれだけ短くなるのかを調べてみました。 ここで言う最少のソースコードとはバイト数が最も少なくなるソースコードファイルの事です。 実行ファイルを作れる最小限のソースコードであり、生成される実行ファイルサイズの事ではありません。 やってみよう では始めます。検証に使う環境は Delphi 10.3.1 Rio です。 コンソールアプリケーション フォームのあるアプリケーションはそれだけでコード量がありますので、コンソールアプリケーションを選択します。 [ファイル | 新規作成 | その他...] から コンソールアプリケーション を選択します。 この時点のソースコードは以下の通りです。 program Project1; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils; begin try {

    Delphi で最少のソースコードを書いてみる - Qiita
    mohno
    mohno 2019/03/04
    「Delphi で最少のソースコード」←「begin end.」だろ、と思ったら「Delphi だと begin も削れます」←いつからそうなったんだ?:-O
  • 回収できなかった案件の恐怖 - Qiita

    回収できなかった案件についてお話しよう はじめに 今からx年前の事。某技術者が多く集まるSlackにて C++でWebクローリング出来る人はいないか? とのことで、以前より Boost.Asioの記事をかいてる私に話がきた まず案件をくれた人について、はじめての取引なので周辺の人に話をきいたが 少し甘いという意見はあるが、誠実で良い人という意見だったので請けた プロジェクト開始 案件を紹介してくれた人の友だちよりメッセージがきてChatworkに入った 具体的な案件に関しては担当の技術者と話をしてほしいとのことで 金額は時給1万円で月末精算、働いた時間を申請してほしいと言われた 案件内容 作業者と話をした 今までC言語でWebのクローラーを作っていたが、C言語だとOpenSSLがメモリリークしていてすぐ落ちる だからC++でクローリング部分だけ作って欲しい。内部はC言語のシステムがあると

    回収できなかった案件の恐怖 - Qiita
    mohno
    mohno 2019/02/28
    「はじめての取引なので周辺の人に話をきいたが少し甘いという意見はあるが、誠実で良い人という意見だったので請けた」←知らない人の仕事は怖いよね。今のところ手を出さずに済んでるけど、何がどう転ぶか。
  • なんでもかんでも「バグ」ってひとくくりにしないで - Qiita

    はじめに プログラマがソフトウェアを作るとユーザがつきます。ユーザがそのソフトウェアを使っていて何らかの問題が発生すると「このソフトはバグってる、直して!」と言われることがままあります。それに対して「いや、仕様だから」と突っぱねられることがあります。その後お互いの意見が「バグだ!」「いいや仕様だ!」と平行線になってお互いモヤモヤのまま終わるというのはよくある話です。 なぜこういうことが起きるかというと、原因の一つは「問題」イコール「バグ」という短絡的な考え方です。とくにソフトウェアを作ったり使ったりした経験が浅い人がこうなる傾向があると推測しています。このようない違いは「要件」「仕様」と「実装」という言葉の意味を理解していればある程度解決できます。書はこれらの用語について実例を挙げて簡単に紹介します。 注意点 記事では要件や仕様を定義することが前提となっていますが、とくにユーザと開発

    なんでもかんでも「バグ」ってひとくくりにしないで - Qiita
    mohno
    mohno 2019/02/25
    「int sort(struct *person[] a, int len)」←これって言語は何?
  • 📃 Webページをそのままの状態でローカルに保存するツールを作った話 - Qiita

    はじめまして。yamaimo (@yarnaimodev) です。Qiita 初投稿...というかネット上にちゃんとした記事を上げるの自体初めてな気がします。 1998 年生まれで、プログラミングとか Web デザインは独学で 3 年ぐらいやってます。TypeScript / Firebase / Node.js / React あたりが特に好きです。 この前 coliss で紹介された Can't Unsee を試してみたら 1 回目が 7,630 点、2 回目が 7,930 点でした。1 小規模ですが Mastodon インスタンスを管理してます。あと Helix キーボード をこの前組み立てた2んですがキー配列を変えたのがなかなか覚えられなくて死んでます。 開発環境は基的に WSL + Hyper + fish shell と VSCode です。 今回 Puppeteer を使っ

    📃 Webページをそのままの状態でローカルに保存するツールを作った話 - Qiita
    mohno
    mohno 2019/02/17
    そういえば、昔は“巡回ツール”なんてのがあったね。(ブラウザの保存機能であんまり困ったことはないけど)Windows用のツールがあったら使いたいかも。
  • アセンブリに触れてみよう - Qiita

    .LC0: .string "%d\n" main: push rbp mov rbp, rsp sub rsp, 16 mov DWORD PTR [rbp-4], 1 mov DWORD PTR [rbp-8], 2 mov edx, DWORD PTR [rbp-4] mov eax, DWORD PTR [rbp-8] add eax, edx mov esi, eax mov edi, OFFSET FLAT:.LC0 mov eax, 0 call printf mov eax, 0 leave ret …何が書かれているか分かりませんね。 というわけで、今回は最終的に、このアセンブリがなんとなく読めるようになることを目標にします。 それでは前提知識を説明していきます。はじめに、アセンブリなどの用語の説明をしていきます。 2. 前提知識 用語説明 まず、それぞれの言葉を説明しま

    アセンブリに触れてみよう - Qiita
    mohno
    mohno 2019/02/16
    「Compiler Explorer」←今はこんなものもあるのか。アセンブリ言語を覚えてからだとC言語のポインタも分かりやすいんだけど、今は、アセンブリ言語を使うこと自体のハードルが高いしなあ。
  • JavaScriptの‍ES2019で追加された新機能まとめ - Qiita

    (2021/06/24追記) ES2021の記事を公開しました。 正式仕様リリース! JavaScriptの最新仕様ES2021で追加された新機能まとめ - Zenn (2020/02/03追記) ES2020の記事を公開しました。 JavaScriptの次の仕様ES2020で追加されることが決定した新機能まとめ - ICS MEDIA 記事ではES2019の新機能を解説しています。記事末尾では、個人的に追加を期待していたけれどまだステージ3の機能についても紹介しています。 ES2019仕様書:「ECMAScript® 2019 Language Specification」

    JavaScriptの‍ES2019で追加された新機能まとめ - Qiita
    mohno
    mohno 2019/01/31
    「関数をtoString()で文字列に変換したときの挙動」←これ、破壊的変更にならないの?(関数のtoStringなんて使ったことはないけど)「ES2019の仕様は、Chrome 73ですべて対応済み」
  • 【新元号】改元のシステム改修で慌てるシステム屋は「無能」とのこと - Qiita

    という記事を見ての職業プログラマ歴3年程度の若造の過剰反応です。 まとまっていないポエムのようなものなので、 こんなことあるんだなっていう程度に思っていただいたら幸いです。 作ったプログラムを保守しているとは限らない まずはこれが大前提。 「作ったやつが無能」だとか「あらかじめ予想していなかった人が問題」だとか、 いろいろ思うことは当然私にもないとはいいませんが、 そういうことは後続の人が云ってはいけないと思っています。 なぜそうなったかの原因究明は必要ですが、悪口を言うための究明なら時間の無駄でしかない。 考慮ができていない「おかしなプログラム」を直すのが我々保守の一端、おざなりにしてはいけない。 1か月でリリースは難しい そもそもプログラムに直接書き込まれていて、 なおかつオフラインで運用されているシステムが、全国各地にある場合にある場合、 たった1か月で「調査→修正→テスト→納品」で

    【新元号】改元のシステム改修で慌てるシステム屋は「無能」とのこと - Qiita
    mohno
    mohno 2019/01/15
    んー、「そういうことを一カ所で対応できるようになってないシステムを無能って言ってるんだよ」って言われそうな予感。
  • HTMLのinputタグ[type=file]のブラウザごとの挙動について調べてみた - Qiita

    はじめに みなさんHTMLタグの一つであるinputタグはご存知だと思います。 その中でもtype="file"についてぼくはこんな疑問を持ちました。 選択したファイルはどこのファイル?コピーとかされているの? これみなさん知っていますか? ちょこっと調べたんですがなかなか情報がなかったので いろいろ自分で調査してみました。 (音は調査が面白そうだったのでそんなに気で調べてないだけです 仮説を立てる まずは仮説をいくつか立ててそれぞれを検証していきます A. ブラウザはファイル参照だけ持っている B. ファイル選択時にTemp領域へコピーしている C. メモリ上に抱えている たぶんこれらのどれかじゃないかなと思っており、 個人的にはBが濃厚だと勝手に考えています。 調査開始 ファイルアップロード機能が必要なので 簡単にファイルをアップロードするだけのアプリを自前で作りました。 http

    HTMLのinputタグ[type=file]のブラウザごとの挙動について調べてみた - Qiita
    mohno
    mohno 2019/01/09
    なんでA.以外を考えたのか分からない。A.でなければファイルの選択をやり直すたびにファイルをどこかにコピーすることになるわけで、非効率すぎるよ。
  • 三角関数は何に使えるのか 〜 サイン・コサイン・タンジェントの活躍 〜 - Qiita

    「他にこんなのがある」というのがあったら是非いっぱい教えてください! 歴史的に最も古くからある用途は「測量」でしょう。三角関数誕生のキッカケはまさに測量の必要性にありました。比較的日常生活でも見る機会がありそうな用途でしょうか。 ログハウス ケーキカット 震災時の家の傾き推定 現代では「波」としての用途が多いでしょうか。Twitter での様々な人のコメントを見ていても、 おっぱい関数 jpeg 画像 音声処理 といった具合に、波に関する話がかなり多いイメージです。これらの三角関数の使われ方を特集してみます。様々な分野に共通する三角関数の使い方のエッセンスを抽出したつもりですが、これでもかなり分量が多くなりました。摘みいするような感覚で読んでいただけたら幸いです。 2. 三角関数の 3 つの顔 最初に三角関数には大きく 3 つの定義があったことを振り返っておきます。以下の記事にとてもよく

    三角関数は何に使えるのか 〜 サイン・コサイン・タンジェントの活躍 〜 - Qiita
    mohno
    mohno 2019/01/07
    もちろん、社会に出て“どれひとつ使わない人たち”はいるけど、子どもの頃は将来何になるか分からないから「古文・漢文」やら音楽やら美術やら色々やるわけで、誰かの“役に立たなかった”はただの結果論。
  • コードに頻出する語形変化が難しい英単語: register, success, fail, data, statusなど - Qiita

    コードに頻出する語形変化が難しい英単語: register, success, fail, data, statusなど英語 コードによく使われる英単語だが、母語話者でないと語形変化がやや難しいかもしれず、注意して単語を選ばないと変な英語になるかもしれない単語について紹介する。 登録 登録する register 【動詞】 「商品を登録する」 registerItem() 登録した registered 【形容詞】 【動詞過去分詞】 登録された商品 registeredItems 「商品が登録された」 new ItemRegstered() 「登録済みか?」 if (item.isRegistered()) ... 登録 registering 【名詞】 「商品登録状況は承認済みか」 item.registeringState.isApproved 登録 registration 【名詞】

    コードに頻出する語形変化が難しい英単語: register, success, fail, data, statusなど - Qiita
    mohno
    mohno 2018/12/31
    こういうの、“分かればいい”派の人もいるけど(ローマ字使う場合も)、英語圏の人が開発に参加する可能性があると困るかもしれない、と思う。(というか、そういう事例を聞いた記憶)
  • C++Builder とトライグラフ - Qiita

    プロジェクトの依存関係を確認中... Project1.cbproj をビルド中 (Debug, Win32) bcc32c の "Project1PCH1.h" コマンド ライン c:\program files (x86)\embarcadero\studio\20.0\bin\bcc32c.exe -cc1 -D _DEBUG -output-dir .\Win32\Debug -I C:\Users\OWNER\Documents\Embarcadero\Studio\Projects -isystem "c:\program files (x86)\embarcadero\studio\20.0\include" -isystem "c:\program files (x86)\embarcadero\studio\20.0\include\dinkumware64" -isys

    C++Builder とトライグラフ - Qiita
    mohno
    mohno 2018/12/24
    トライグラフはどうでもいいけど:-p 「「せめて BCC64 を C++17 対応版にしてくれ! (C++17 対応は Win32/Win64 同時にやれ)」という声もあちこちで聞かれた C++Builder 10.3 Rio」←うわぁw
  • C++標準化委員会、ついに文字とは何かを理解する: char8_t - Qiita

    C++ Advent Calendar 2018 この記事はC++ Advent Calendar 2018 15日目の記事です。 14日目: VTKライブラリ 16日目: C++のエラー処理との付き合い方 当初見積もりよりも大幅に長い記事となり、投稿したのは12/22で1週間遅刻です。すみません。 お知らせ cpprefjpにchar8_t型追加について解説を書きました。ぎゅぎゅっとコンパクトに、また査読を受けて中立的な表現で書いていますので、よければどうぞ。 UTF-8エンコーディングされた文字の型としてchar8_tを追加 - cpprefjp C++語リファレンス 追記 全ての開発者が知っておくべきUnicodeについての最低限の知識 - GIGAZINE Unicodeについて簡潔にまとまってるいい記事を見つけました。 Caution この文章には以下の要素が含まれます。苦手

    C++標準化委員会、ついに文字とは何かを理解する: char8_t - Qiita
    mohno
    mohno 2018/12/23
    そこまでしてC/C++を使う人がどれだけいるかなあ。「C標準では文字を受け取る引数はint型」←そこは引数がcharでも内部はintだったり、オーバーロードがない時代という歴史的経緯があるので。負債というならShift_JIS。