タグ

programmingとProgrammingに関するardarimのブックマーク (984)

  • ブラウザからTCP, UDPソケットを操作するDirect Sockets API - ASnoKaze blog

    2020/01/14: 実際に動くのを確認しました asnokaze.hatenablog.com (2020/09/17 注釈: Raw SocketsからDirect Socketsに名称が変更されました) ブラウザでTCP, DUPソケットを操作可能にする「Direct Sockets API」という仕様がW3CのWICGで議論されている。 また、blink-devでも「Intent to Prototype: Raw Sockets API」とプロトタイプの議論が行われている。 多くの方がセキュリティ上の懸念を抱くと思うが、ドキュメントでも慎重に検討すると書かれている。GithubでIssueを立てることも可能なので、思うことがある方は、まだまだ議論は始まったばかりでもあるので是非フィードバックされると良いと思う。(割と普通に聞いてもらえます) なお、Raw Socketsという名

    ブラウザからTCP, UDPソケットを操作するDirect Sockets API - ASnoKaze blog
  • 「実用的でないPythonプログラミング」がよかった - Stimulator

    はじめに 2020/8/12に発売されたImpractical Python Projects: Playful Programming Activities to Make You Smarterの日語訳書である、「実用的でないPythonプログラミング」をひょんな事から献していただく事になった。(訳者が同僚である) 実用的でないPythonプログラミング: 楽しくコードを書いて賢くなろう! 作者:ヴォーン,リー発売日: 2020/08/12メディア: 単行 ありがちなプログラミング初学者向けのから1段上がった中級者向けの良いだと感じたので、当ブログでたまにやっている筆者、訳者に媚びを売るシリーズの一貫として、感想を記す。 書籍の概要 「実用的でないPythonプログラミング」は、想定する中級レベルのアルゴリズムの問題を例に取り、Pythonでの美しいコードの書き方や、コンピュ

    「実用的でないPythonプログラミング」がよかった - Stimulator
  • はじめてのC ってエロくね?

    ardarim
    ardarim 2020/08/26
  • 100万件ぐらいのレコードを扱ったらOOMEが出た話。 - 谷本 心 in せろ部屋

    要約 技術的な話だけ教えて、という方のために先に結論だけ書いておきますと、PostgreSQLはクエリを実行した時点で全レコードの情報を一気に読んできてヒープを埋めてしまう場合がある、ということ話です。 たとえば、ResultSet#nextメソッドを使いながら処理を回すようなコードを書いて、少ないヒープでも処理できるようにするのは常套手段だと思いますが、そういうコードを書いていても一気にヒープを消費してしまうことがあるのです。詳しくはこのドキュメントを見てください。 https://jdbc.postgresql.org/documentation/head/query.html#query-with-cursor ことの発端 ちょっと仕事Java + jOOQ + PostgreSQLで、DBのデータを集計するようなバッチ処理を書いてまして、もちろん俺様の書いたコードにバグなんてある

    100万件ぐらいのレコードを扱ったらOOMEが出た話。 - 谷本 心 in せろ部屋
    ardarim
    ardarim 2020/08/13
    バグってはいないのだろうが、めっちゃ性能悪そう → 「select * from EMP」してResultSet#nextメソッドを使いながら処理を回す
  • 糞コードは直すな。 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? とりあえず落ち着け。 みなさん、毎日なにかしらのコードを読み、開発する日々を送っていると思います。そんな中で、 糞コードは死ぬべきである!!絶対に直すべき!! という感情に取りつかれてしまうことがあると思います。自分の技術力に自信のある人ほど、無理やりにでも直そうと試みると思います。それがどんな修羅の道か。そして、糞コード修正がどんな道を歩むのか。この記事では糞コード修正の罠とありがちなストーリーについて書きたいと思います。 ビジネスとしてのプログラムは質的に糞である 例えば、「携帯電話の利用料金」のプログラムがあります。 「携帯電話

    糞コードは直すな。 - Qiita
    ardarim
    ardarim 2020/08/03
    わかりみがふかい(死)
  • 頼むから、センスのないやつはプログラマにならないでくれ

    当に迷惑なんだ。 センスがない奴の何が問題かというと、技術がないとか、ベストプラクティスを知らないということではなく、根的に「頭がおかしい」ことなんだ。 センスのない奴は、普通の人間が到底思い付かないことを平然と行う。所詮、に書いてあるようなアンチパターンは、「経験のない人は典型的にこういうことをしがち」という例であるが、センスのない奴はそういう典型的なアンチパターンにすら当てはまらないほど意味不明なことをする。だから、「センスのない奴は典型的にこういうことをする」という具体例を挙げることが非常に難しいし、「ここがダメだから直せ」という指摘もできない。 最近見た例を書いてみる。2次元のテーブルを扱うJSONだ。 普通の人なら、何も考えず以下のような実装をするだろう。フィールドの定義とデータが分かれているのは、ユースケースによってフィールドが可変だからだ。 [ {fieldName:

    頼むから、センスのないやつはプログラマにならないでくれ
  • 設計書には何を書くべきなのか - terurouメモ

    設計とは、 要求(やりたいこと)をヒアリングする 要求を要件(何を満たさないといけないのか)に落とし込む 要件を実現するために考えられる手段を洗い出す 手段の検証を行う 検証結果を元に、どの手段を使うかを選定する 選定した手段を合意する(一部要件を満たさない事項がある場合は、代替策や妥協ラインについても合意する) 合意内容を元に、実装や設定に落とし込む をやることである。画面設計や機能設計のように、3-5の検証/選定が薄くなったり曖昧になったりするものはあるが、一般化するとこの流れになる。 設計書には、上記の設計でやってきたことを順番に書いていけばよい。これを文章構成のテンプレに落としていくと、 要求 要件 方式 対応案(いわゆる比較表で書いていくのが楽) 検証結果 選定・合意結果(合意した代替策や妥協ラインについても記載する) 詳細設計(どういう実装にするとか、パラメーターにするとか、細

    設計書には何を書くべきなのか - terurouメモ
  • 長男がプログラム(でゲーム)を作りたいと言い出したので、Javascriptの書き方..

    長男がプログラム(でゲーム)を作りたいと言い出したので、Javascriptの書き方とブラウザでの動作確認を軽く教えた 次男も感化されたようで長男の真似をし始め、今は簡易な動作のHTMLファイルであれば作れるようになっている ある日、二人の空気が険悪だった(大喧嘩したあとの空気だった) まずは長男に事情を訊いてみると、とあるプログラムの方針で対立したとのこと それは「じゃんけんゲーム」だった 画面でグーチョキパーのいずれかを選びボタンを押すと、相手(CPU)の「手」と勝敗が表示されるというものだった 次男はまずCPUの「手」を乱数で決定し、画面に入力された「手」と比較して勝敗(と引き分け)を決める、素直な処理だった 長男はそれに飽きたのか、まずは乱数で「勝ち」「負け」「引き分け」を乱数で最初に決めてしまい、その後で結果に応じたCPUの「手」を決定するというロジックだった 次男はこれが気に入

    長男がプログラム(でゲーム)を作りたいと言い出したので、Javascriptの書き方..
    ardarim
    ardarim 2020/07/28
    長男、次男、どちらも自分なりの設計思想をちゃんと持っていて良い。とことん議論すればいいのではないかな。
  • あまてる (-11kg) on Twitter: "昔、給与に目がくらみ、知識ゼロでプロゲラマー募集面接に行った事があり「えっとポインターは理解されていますか?」と言われ。なんのことやろ、キャシャーンの犬かな。よく分からんけど「知ってます」と答え、無事知識ゼロで携帯の組込開発をする事となる。"

    昔、給与に目がくらみ、知識ゼロでプロゲラマー募集面接に行った事があり「えっとポインターは理解されていますか?」と言われ。なんのことやろ、キャシャーンの犬かな。よく分からんけど「知ってます」と答え、無事知識ゼロで携帯の組込開発をする事となる。

    あまてる (-11kg) on Twitter: "昔、給与に目がくらみ、知識ゼロでプロゲラマー募集面接に行った事があり「えっとポインターは理解されていますか?」と言われ。なんのことやろ、キャシャーンの犬かな。よく分からんけど「知ってます」と答え、無事知識ゼロで携帯の組込開発をする事となる。"
    ardarim
    ardarim 2020/07/17
    実際の現場ってそんな感じなんだろうな…とおぼろげには思っていたけれど。やっぱりそんな感じなのかー
  • プログラミングスクール通うくらいならチートスキル身につけたほうが百億倍楽やぞ|erukiti

    皆さん異世界転生ラノベをご存知ですか?チートし放題な主人公たち好き勝手しやがってとか思っています?最近は「初級魔法で無双する」「生活魔法で無双する」みたいな話流行ってますよね。 でも、別に異世界なんていかなくても、転生しなくても、プログラミングのチートスキルなんて簡単に身につけられるんですよ。 ※ここでいうチートスキルは来の意味のチートではないのでご注意ください。そっちのスキル身につけるのは楽しいかもしれませんが、筋ではありません。 ※ここでいう「初級魔法」はラノベ読まない人の想像する初級魔法ではないことがほとんどなのでご注意を 特定のプログラミングスキルを身につけると、派生スキルが勝手にポコポコ生えてきたり、派生スキルの習得コストが圧倒的に安くなります。 たとえば、なにか一つのプログラミング言語をマスターした人なら、他のプログラミング言語を覚えるときのコストが低くなるというのは直感的

    プログラミングスクール通うくらいならチートスキル身につけたほうが百億倍楽やぞ|erukiti
    ardarim
    ardarim 2020/07/15
    出来るなら苦労しない
  • 実践的低レイヤプログラミング

    はじめに 学校で習わないが(習う学校もある)、現実に必要になるプログラミング技術に、低レイヤプログラミングなどと呼ばれるものがある 厳密な定義は聞いたことがないし、おそらく存在しないとは思うが、大体のみんなの共通認識として、 「高級プログラミング言語を使わないプログラムを書き、OSで抽象化されないデバイスの機能を使う」といったような認識があると思う。 筆者の経験から言わせてもらうならば、低レイヤプログラミングに関する知識は、プログラミングにおいてあらゆる場面で、常に、少しずつ役立てられる知識だと言えると思う。 普段はRubyPHPなどを書いてる人であったとしても、メモリが足りなくなった場合や、デバッガを使っている場合、性能が足りなくなった場合など、 厳しい環境におかれた時に低レイヤプログラミングに関する知識が必ず役に立つ場面が来ると信じている。 また、役に立つかどうかは置いておいても、「

    ardarim
    ardarim 2020/07/13
    この辺の実践的知識ってどう身に付けるのが王道なんだろう。私は割と独学気味でスタートしたのだがあまり参考になる資料がなかった。I/OのPIC特集とか386のプロリファ(厚い本)あたりを苦労して読み解いてた
  • プログラミングスクールなんか行かなくていいからこれやれ

    いちいち行かなくていい。高いわりに役に立たない。を買ったりネットの解説動画を見ながら自分でやるんだ。 毎日勉強できるならカリキュラムはこう。大事なのは「わかんなかったら自分で調べる」ということ。これをひとつひとつ解説していくとあっという間に1年ぐらいのカリキュラムになって金がかかるようになる。ググれば全部出てくる。出てこなかったら調べ方が悪いのでググりかたを変えればおk。この記事にも初心者から見ると「なにその言葉。初耳」っていうのがあると思うけど、全部重要なキーワードなのでググって咀嚼して血肉としてほしい。ググればすぐ出てくる。 1日目: Linuxのインストール(Linuxの中でもUbuntuっていうのがおすすめ)とりあえずLinuxを自分のパソコンにインストールする。Linuxを触れるようになればいい。 PCがない場合は、中古のPCなんて3万ぐらいで買えるからそれ買ってきてインストー

    プログラミングスクールなんか行かなくていいからこれやれ
  • 「ディスプレイの脇のアヒルちゃんに説明することでバグに気づき、品質を高める」#ラバーダックデバッグ という手法があるけど、絵面だけでも草w

    なかめのくまちゃん@質問アプリQuerie.me開発者 @wgextra 「ディスプレイの脇に置いたアヒルちゃんに実装した処理を一行ずつ説明する中で実装者自らがバグに気づき、デバグして品質を高める」ラバーダックデバッグっていう手法があるんだけど、絵面だけでも草なのにどうやらマジで効果絶大らしく、もうこんなん大草原不可避だわ。アヒルちゃん買ってこよ。 pic.twitter.com/80zqajvdPV

    「ディスプレイの脇のアヒルちゃんに説明することでバグに気づき、品質を高める」#ラバーダックデバッグ という手法があるけど、絵面だけでも草w
  • 『プログラミング作法』新人エンジニアにオススメする技術書 | IIJ Engineers Blog

    『プログラミング作法』 著者:Brian W. Kernighan / Rob Pike 福崎俊博 訳 アスキードワンゴ ちなみにこの、私が入手した頃とは装丁がガラッと変わっていて、いまの表紙はこんな感じになっています。 犬がカワイイですね。これから購入する方はご注意ください。 普段プログラミングをしていると、大なり小なりさまざまな判断を行うべき局面が出てきます。 変数やメソッドにはどんな名前を付けるべきか?ロジックは明快になっているか?ここにコメントは必要か?必要としたらどう書くか?ライブラリのインターフェイスは適切にデザインされているか?ライブラリ関数の粒度は適当か?与えられた問題に対してデータ構造やアルゴリズムは適切なものを選択しているか?もっと良いものがあるのではないか?計算量は妥当な範囲に収まるか?処理が複雑になっても性能が良くなる方を取るか?あるいは多少性能を犠牲にしてもわか

    『プログラミング作法』新人エンジニアにオススメする技術書 | IIJ Engineers Blog
  • 7つの設計原則とオブジェクト指向プログラミング - ソフトウェア設計を考える

    設計原則はよい設計をするための指針です。 では、よい設計とはなんでしょうか? もっとも重要なソフトウェア品質は発展性 ソフトウェアの発展性がビジネス価値を生む 発展性をうみだす7つの設計原則 モジュール化 モジュール化の2つのアプローチ 型によるモジュール化 手続き的なモジュール化 関心の分離 関心の4象限 入出力と計算・判断の分離 業務の関心と実装の詳細の分離 もっとも複雑な関心事(ビジネスロジック)の分離を徹底する カプセル化と抽象化 カプセル化 ビジネスロジックのカプセル化 抽象化 データ抽象 ビジネスロジックとデータ抽象 高凝集と疎結合 凝集度 結合度 隠された結合性の問題 定義の一点性 見た目が同じコード 7つの設計原則の学び方 コードの実装例 ドメインオブジェクト設計のガイドライン 実践ガイドとして使える 設計の考え方を理解するための もっとも重要なソフトウェア品質は発展性

    7つの設計原則とオブジェクト指向プログラミング - ソフトウェア設計を考える
  • 【翻訳】技術的負債という概念の生みの親 Ward Cunningham 自身による説明 - t-wadaのブログ

    システム開発の世界において「技術的負債Technical Debt)」は繰り返し話題になり、しばしば炎上しています。 技術的負債という概念の生みの親は Ward Cunningham (ウォード・カニンガム)です。彼は 1992 年にオブジェクト指向プログラミングの国際カンファレンス OOPSLA '92 の Experience Report でコードの初回リリースを負債に例えました("Shipping first time code is like going into debt")。 Ward Cunningham はソフトウェアの世界に多くの貢献を果たしてきました。Wiki の発明者であり、XP と TDD の父 Kent Beck の師匠のような存在であり、建築の世界の「パタン・ランゲージ」を Kent Beck と共にソフトウェアに輸入した人であり、「アジャイルソフトウェア開

    【翻訳】技術的負債という概念の生みの親 Ward Cunningham 自身による説明 - t-wadaのブログ
  • 良いコードを書くための8つの習慣

    New Relic Now Start training on Intelligent Observability February 25th.

    良いコードを書くための8つの習慣
  • 【書評】『プログラマーのためのVisual Studio Codeの教科書』はVS Code使いに是非読んでいただきたい1冊! #VSCodejp #VSCode | DevelopersIO

    こんにちは、Mr.Moです。 圧倒的な人気を誇る高機能エディター Visual Studio Code(以下、「VS Code」)の使い方をまるっと習得できてしまう1冊。『プログラマーのためのVisual Studio Codeの教科書』を拝読し素晴らしい内容でしたので紹介していきたいと思います! 書籍・著者情報 下記からも購入が可能です。電子版もありますよ! プログラマーのためのVisual Studio Codeの教科書 | 川崎 庸市、平岡 一成、阿佐 志保 | | 通販 | Amazon 下記は著者の方々の情報になります。(上記のマイナビBOOKS ページより抜粋。筆者陣が錚々たる顔ぶれですね) 川崎 庸市(かわさき よういち) 株式会社ZOZOテクノロジーズ開発部所属のエンジニア。過去には、国内モバイルベンチャーや大手インターネットサービス企業にて大規模サービスの基盤プラットフ

    【書評】『プログラマーのためのVisual Studio Codeの教科書』はVS Code使いに是非読んでいただきたい1冊! #VSCodejp #VSCode | DevelopersIO
  • ソースコードブランチ管理のパターン - Martin Fowler's Bliki (ja)

    https://martinfowler.com/articles/branching-patterns.html 最新のソース管理システムには、ソースコードのブランチを簡単に作成できる強力なツールが用意されています。しかし、最終的にはこれらのブランチをマージしなければならず、多くのチームは混み合ったブランチに対処するのに膨大な時間を費やしています。複数の開発者の作業をインテグレーションし、番リリースまでの道筋を整理することに集中して、チームが効果的にブランチを利用できるようにするためのパターンがいくつかあります。全体的なテーマとしては、ブランチを頻繁にインテグレーションし、最小限の労力で番環境に展開できる健全なメインラインを作ることに注力すべきだということです。 ベースパターン ソースブランチング ✣ メインライン ✣ 健全なブランチ ✣ インテグレーションパターン メインラインイン

  • 「ソースコードブランチ管理のパターン」のダイアグラム - 日々常々

    ソースコードブランチ管理のパターン - Martin Fowler's Bliki (ja) お世話になっている人も多い Martin Fowler's Blikiの日語翻訳サイト 、いつも運営&翻訳ありがとうございます。 パターン言語は関連が重要な役割を担っています。そして関連はダイアグラムにすると捗ります。ダイアグラムがついている書籍もよくみます。 なので、ダイアグラムがないときや書籍と違う雰囲気のダイアグラムが欲しくなった場合、自分で描きながら読んでたりします。こんな感じで。 紙に手書きすることも多いのですが、インターネットで公開されているものはURLが付けやすいのでSVGで作るのが最近のマイブーム。SVGはサイズが大きくなっても拡大すれば読めるのでいいです。 上の画像はPNGをアップロードしたものなのでGistに上げました。 GistのSVGへのリンクを置いておきます。Gistの

    「ソースコードブランチ管理のパターン」のダイアグラム - 日々常々