タグ

programmingに関するHHRのブックマーク (41)

  • インデックスを理解したい - Qiita

    はじめに みなさんはDBのインデックスを正しく使えていますか? 私はなんとなく「DBのパフォーマンスを向上するためのもの」という認識はあったのですが、 どのような場面で使うものなのか、逆にどのような場面では使うべきでないのかなど 明確に理解できていませんでした。 今回はそんなインデックスについての理解を深めたいと思います。 インデックスとは インデックスとは、その名の通り「索引」です。 表現の仕方と変えると、(x, a)という形式の配列であるとも言えます。 xというキー値とそれに結びつくaというデータ情報があり、 これを利用することですべてのデータを網羅して見ることなく、 まさにの索引のように目的のデータにたどり着くことができます。 インデックスはSQLのパフォーマンスを改善するための非常にポピュラーな手段であり、 理由としては下記の3点が挙げられます。 アプリケーションのコードに影響を

    インデックスを理解したい - Qiita
    HHR
    HHR 2024/03/20
    ORでなくINを使え、とかoptimizer頑張れって良く思う
  • ソフトウェアアーキテクチャの歴史 - tasuwo's notes

    改めて ソフトウェアアーキテクチャ GUI のアーキテクチャの歴史を調べてみたくなった。来の MVC とは何か?何が正しくて何が間違っているか?も重要なのだが、それよりは、なぜそれが生まれたのか?何を解決しようとしたのか?どのような問題点が生まれて、それをどう工夫して解決・発展してきたのか?を知りたい。しかし、そういうことがまとまっている日語の情報が少ないので、自分で色々かいつまんでメモしておく。 MVC の原点は 70 年代にまで遡り、実装としては Smalltalk-80 のクラスライブラリとして実装されたのが最初だと思われる。しかし、後世に大きな影響を及ぼしたポイントをいくつか持ちつつも、当時のアーキテクチャが現代においてそのまま利用されているケースはほぼないといっていい。したがって、単に MVC といった時には大抵最初期の MVC を指すことは少なく、区別するために最初期の M

    ソフトウェアアーキテクチャの歴史 - tasuwo's notes
  • null安全を誤解している人達へのメッセージ - Qiita

    先日koherが投稿した記事が多く読まれたようです。記事の内容は僕とkoherが普段話してきた内容が多く登場しているため、僕が人々に伝えたい内容とも強く合致しています。しかし残念な事にインターネットの反応を見ていると、誤解しているケースが思ったより多くありました。 そこで、ネットで見られた意見に対して返答を書きました。 特定の実在する意見は指さずに、僕が感じ取った文脈を編集したものを対象にします。それによって、「そんな事言われてないじゃないか」と思うものがあれば、僕としてもそのほうが嬉しいのでそれで問題ないです。 「たしかにそうだ」と思ってnull安全に今一度興味をもってもらえれば嬉しいです。 なお、記事中のコードは特に言及が無ければswiftです。 意見: null安全があっても、ちゃんとやるのを忘れているかもしれないのでは 忘れません。ちゃんとやらないと、コンパイルが通らないからです。

    null安全を誤解している人達へのメッセージ - Qiita
  • 良いデバッグログはプロジェクトの資産である

    http://eventdots.jp/event/591027 (2016-07-30追記:Rails 5.0からproductionでもDEBUGがデフォルトらしいです) (2020-09-23追記:https://github.com/rails/rails/pull/39707 INFOに戻りそう)

    良いデバッグログはプロジェクトの資産である
    HHR
    HHR 2016/08/23
    良記事。
  • http://post.simplie.jp/posts/34

    http://post.simplie.jp/posts/34
  • 【プログラミング】退職した先輩が書き残していったコメントがひどすぎる・・・ - 意識低い系ドットコム

    こんにちは、意識低い系サラリーマンのKENです。 今回は零細IT企業でシステムエンジニアをしている僕が遭遇した酷いコメントについて。 でもわかるC#プログラミング 第3版 (でもわかるプログラミング) 作者: 粂井康孝 出版社/メーカー: SBクリエイティブ 発売日: 2016/02/27 メディア: 単行 この商品を含むブログ (2件) を見る 通常プログラムを組むときは、プログラミング言語を使ってソースコードを書いていきます。でもプログラミング言語だけでひたすら書いていると、第三者が読んだときや後から自分で見返したときにわかりづらいので、「コメント」と呼ばれるメモ書きを付記することがあります。あります、というかほとんどの人はそうします。 例えば、「C#」というプログラミング言語だと、行の先頭に「//」と打つと、その行はプログラムの一部としては解釈されず、単なるメモ書きとコンピュー

    【プログラミング】退職した先輩が書き残していったコメントがひどすぎる・・・ - 意識低い系ドットコム
  • Engadget | Technology News & Reviews

    Research indicates that carbon dioxide removal plans will not be enough to meet Paris treaty goals

    Engadget | Technology News & Reviews
  • 全盛期のJeff Dean伝説 - Qiita

    Jeff Deanとは GoogleのSenior Fellow. Googleの基盤となる分散システムのほぼ全てに中心的に関わり、圧倒的なエンジニアリング能力を発揮したらしい。あまりにも尊敬されているため、IT業界において全盛期のイチロー伝説のような破天荒なホラ話のネタにされている人。 日語での紹介がなさそうだったので意訳してみました。 元ネタはこちら。多すぎるのでGoogle社員じゃない人には面白みがわかりにくそうなもの、面白みが被っていると私が判断したものなどは省いてあります。 NP問題 Jeff DeanがGoogleの採用面接を受けたときに、もしP=NPが成り立つとしたらどうなるかを問われて"P=0かN=1ですね"と答えた。試験官が笑い終わりさえしないうちに彼はGoogleのpublic keyを突き止め、private keyをホワイトボードに書き終わった。 Jeff Dea

    全盛期のJeff Dean伝説 - Qiita
  • エンジニアのハマり時間とその技術的難易度の相関関係 - Qiita

    めちゃくちゃにハマったからと言って、その問題は技術的難易度が高い訳ではないんじゃね?という話。 ここで言う「ハマる」とはなにかに夢中になって没頭することではない。バグとかエラーがあって、なかなか解決できなくてそのために時間を割かれてハマる、の「ハマる」。 先日、ハマった問題が解決した時の感情は「ついに解決したぞ」という安堵感と「しょーもないハマりポイント作りやがって、あのボケが!」という前任者への怒りが混ざった状態だった。 サイトのSSLの有効期限切れが2週間後にせまっていた。やる事は証明書の更新、新しい証明書をAWSのELBに入れること。ただこれだけ。しかしハマった。どうやってもELBから「あなたのキーは無効です」みたいなエラーメッセージが返ってきた。2年前にSSLを設定したエンジニア退職してしまって、もう居ない。その前任者とほぼ同じことをすればOkなはずなのに、なぜかできなかった。

    エンジニアのハマり時間とその技術的難易度の相関関係 - Qiita
    HHR
    HHR 2016/03/24
    わかる。そして、スピリチュアルも有るかもって思い始める。
  • 続・Web系の自分が想像と障害で学んだバッチ処理・設計の基本 - コンポツさん

    バッチ処理というのがそれ単体で勉強するのが難しく勉強しようとすると何に手を付けるべきかさっぱりわからないということは、先日のブログで述べたとおり。 自分が経験の中で得てきた知見は正しいのかどうか、世間の人に見てもらいたかったというのが書いた動機。 そして、新たな視点や指摘をゲットしてより不測の事態を考慮できている最高なバッチを作りたいという目的があったわけだ。 で、いろいろな意見をもらったのだけどその中で特に辛いと感じたのはこれ。 基幹システムにおけるバッチ処理みたいなものに関する知見については、カジュアルに学ぶ方法はありません。それを体系化した知識として整理した上で、実装できる組織があるんなら、それでメシがえるんじゃないですかね。— 太一 (@ryushi) 2016, 2月 18 読んでいると 「俺達は障害でつらい思いをしてるし当然先人達も障害でつらい思いをしているはずだ。 なのに、

    続・Web系の自分が想像と障害で学んだバッチ処理・設計の基本 - コンポツさん
  • Web系の自分が想像と障害で学んだバッチ処理・設計の基本 - コンポツさん

    バッチ処理というのはそれ単体で勉強しようとするとなかなか何を勉強したらいいのかわからないことが多い。 特に経験がWeb系ばっかりだと、いざバッチ処理を実装しようとした時に基的なノウハウを知らないままに書いてしまうことが多い。 バッチ処理というのは実態を整理すると「何らかのトリガーを期に起動し、データをロード・加工・変換・集計してから、出力する」という事になる。 まぁ、INがあって処理してOUTがあるという点では関数だと考えてもいいだろう。 システムの利用者(人に限らない)のアクションとは直接関係ない処理であったり、利用者のアクションをトリガーとしていても、即時にレスポンスがいらないor返せない場合に バッチ処理を選択する事が多い。 実現方式はシェルスクリプト、LL言語、実行可能バイナリだったりするし、デーモンとして立ち上げる場合もある。 利用者の操作に対して対話的・同期的な処理はオンライ

    Web系の自分が想像と障害で学んだバッチ処理・設計の基本 - コンポツさん
  • スピリチュアルエンジニアリング入門 - 昼メシ物語

    先日 hack05 というイベントで LT をしたので、そのときの資料をまとめておきます。 スピリチュアル エンジニアリングとは システム開発・運用にスピリチュアル要素を取り入れることでシステム安定化を目指します。 皆さんご存知の通り、人間の技術力には限界があり、予測不能な事故(バグ)はまさに、神の領域といえます。 そこで「ジンクス」「縁起かつぎ」「妖精さん」などの力を借りることで、人間の手ではどうしようもない事態を回避するというのがこのスピリチュアルエンジニアリングです。 スピリチュアルエンジニアリングの基原理 スピリチュアルエンジニアリングの基は「祈り」にあります。「絶対に動く」という祈りの強さがよりよいコードをもたらします。 スピリチュアルはすべてのエンジニアの身近に! 以下に当てはまる人がいたら、あなたも立派なスピリチュアルエンジニア! コーディング中に神が降りてきたと思う瞬間

    スピリチュアルエンジニアリング入門 - 昼メシ物語
    HHR
    HHR 2015/09/18
    ブクマしてなかった
  • Web エンジニア 6 年 5 ヶ月やってたどり着いた価値観 | Born Too Late

    Web エンジニアとして経験を積むことでいくつかのプログラミング言語やツール・ミドルウェアの使い方を覚えたりもしたけど、それらのうちいくつかは 10 年後ぐらいには陳腐化してしまっているかもしれない。 だけどそれらを通じて身につけた価値観や哲学はもっと普遍性を持っているような気がする。 大学を卒業し、Web エンジニアとしての職を得て 6 年 5 ヶ月、日数にして 2344 日経ったので、現時点での頭の中にあるもののダンプを残しておく。 どこかで聞いたようなことばかりで新鮮味はないと思うけど、自分で実感を持ってたどり着けたことには意味があるはず。 プログラミングについて 言語はいろいろなものを試してみる 毎年新しい言語に挑戦せよ、というのは確か dankogai さんの講演をまとめた記事で読んだはずなんだけど、記事が見つからない。 キーワードをもとに検索してみたら達人プログラマーにもそうい

  • うまくメソッド名を付けるための参考情報 - Qiita

    クラス名編をつくりました あるメソッドを定義しようとするとき、そのメソッドを使う人達が名前からどんなことをするか理解できるようにするには、メソッドの内容に応じて適切な情報量の命名が求められます。 この記事では、メソッド名に用いることでどのような情報が提供できるかを見ていきたいと思います。 真偽値を返すメソッド 場所 単語 意味 例

    うまくメソッド名を付けるための参考情報 - Qiita
    HHR
    HHR 2015/09/01
    create new from to update load fetch delete remove save store commit apply clear reset
  • プログラミングの「抽象化」ってどういう意味で、なぜ必要なのか - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    <追記>いろいろ反応あってたしかになーって思いましたが、ここで説明されてるのは「汎化」とか「パラメタライズ」としたほうが正しいですね。抽象化というと、一塊の手続きをブラックボックスにして、実装を隠蔽する面のほうが正解に近いです。でもまあそこを差し引いて読んでいただければ、それなりに有用ではある記事だと思うので、このまま残しておきます</追記> プログラミングに限らない話かもしれませんが、ふだんの生活で触れないような概念というのは、一度わかってしまえば便利なんだけど、どうしてもとらえどころがない、というようなことが多いと思います。プログラミングにもそういう概念はたくさんあって、わたしのような凡人は新しい概念にぶち当たるたびに苦労しています。今日はそんな中で「抽象化」という言葉について、「昔の自分にこうやって説明してあげたかったな〜」という説明をします。 プログラミングを学んでいく中で、「とり

    プログラミングの「抽象化」ってどういう意味で、なぜ必要なのか - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
  • コーディングに最適な日本語対応の等幅フォントSource Han Code JPとは – ICS MEDIA

    コーディング向けの日語対応の等幅フォント「Sourceソース Hanハン Codeコード JPジェイピー(和名:源ノ角ゴシック Code JP)」が、2015年6月4日に公開されました。「源ノ角ゴシック Code JP」は、プログラミングやHTML/CSSのコーディング、ターミナルでのテキスト表示など、和欧表示用フォントとしての利用を想定されたフォントです。 ダウンロードはこちらから Release Fonts (OTF, OTC) · adobe-fonts/source-han-code-jp · GitHub ※このフォントは無償でダウンロード可能です。OTCとTTFの両方のフォーマットで配布されているので、Windows/macOSともに簡単にインストールできます。 ※上記リンクの「Fonts version [バージョン番号] (OTF, OTC)」となってい箇所の[Sourc

    コーディングに最適な日本語対応の等幅フォントSource Han Code JPとは – ICS MEDIA
  • ソースコードを書かないことが武器になる~あらゆる情報がクラウド化される時代の歩き方【連載:えふしん】 - エンジニアtype

    エンジニアtypeは、各種エンジニアをはじめ「創る人たち」のキャリア形成に役立つ情報を発信する『@type』のコンテンツです。

    ソースコードを書かないことが武器になる~あらゆる情報がクラウド化される時代の歩き方【連載:えふしん】 - エンジニアtype
  • オンラインゲームの仕組みと工夫

    オンラインゲームの仕組みや工夫を調べてみたのを社内勉強会で発表した。ときのスライド。の公開用。 オンラインゲームの種別とそれぞれの仕組みについての話と、オープンソースになっているQuakeの仕組みの話、という2つの話が主なトピック

    オンラインゲームの仕組みと工夫
  • よいコード、わるいコード

    論文紹介:MeMViT: Memory-Augmented Multiscale Vision Transformer for Efficient Lon...Toru Tamaki

    よいコード、わるいコード
  • バグをドラゴンと呼ぶ運用を始めて1ヶ月くらいたった - Konifar's WIP

    1ヶ月くらい前、 「バグをドラゴンと呼んだらどうなるか」というTweetを見ました。 確かに、バグをドラゴンと読んだ場合「Sクラスのドラゴンが出ました!」「Aクラスのドラゴンを相手にしてる最中だってのに!」って会話になるし、ドラゴンは結局人の手で生み出されたものってところが中二ファンタジーっぽくて良い— 尾野(しっぽ) (@tail_y) March 18, 2015 これは天才的発想だなと思って職場で雑談で話してみたところ、 同僚のスペインエンジニアにバカウケしまして、 それからちょいちょいバグのことをドラゴンと呼ぶようになりました。 せっかくなので、どんな雰囲気になるのかまとめてみようと思います。 先に言っておくと、自分ともう1人スペインエンジニアが時々チャット上で使っているだけで、 正直そんなに流行ってないです。 なんかテンションが上がる バグ修正ってマイナスをゼロにするだけで何

    バグをドラゴンと呼ぶ運用を始めて1ヶ月くらいたった - Konifar's WIP
    HHR
    HHR 2015/05/02
    FireBug→FireDragon。デバッカー起動→デドラグウェイクン。