タグ

programmingに関するt-wadaのブックマーク (461)

  • SimpleとEasyは違う / Simple is not Easy

    Laravel JP Conference https://conference2019.laravel.jp/

    SimpleとEasyは違う / Simple is not Easy
    t-wada
    t-wada 2019/02/18
    Simplicity is Complicated であることが「めんつゆ」の比喩で上手く説明できている。良い。Rich Hickey の言葉には力がある。
  • 確率的データ構造を使って巨大な集合を定数メモリで近似しよう

    巨大な集合に対して、定数メモリ&定数時間で近似値を計算できる、確率的データ構造の紹介スライドです。 スライドは、株式会社エフ・コードの社内勉強会(2018/08/30)にて使用されたものです。

    確率的データ構造を使って巨大な集合を定数メモリで近似しよう
    t-wada
    t-wada 2018/09/03
    Bloom Filter, Count-Min Sketch, HyperLogLog などの確率的データ構造をとても分かりやすく説明している資料
  • Linuxのloadavgが約7時間ごとに上昇する現象の原因 - Mackerel お知らせ #mackerelio

    Mackerelチームのエンジニアのid:itchynyです。 「mackerel-agentを入れるとloadavgが7時間ごとに上昇する」 先日、このような問い合わせを複数のお客さまから受けました。私も実験してみたところ、確かに再現しました。EC2 t2.microにmackerel-agentを入れて簡単なログ監視とプロセス監視を設定し、数日放置しました。 確かに、約7時間ごとにloadavgが上昇しています。この周期のcronの設定はしておらず、またmackerel-agent内部でも7時間ごとに行う処理はありません。しかし、プラグインを多く入れるほどloadavgのピーク値も上がります。 エントリーでは、この現象の原因について説明します。 loadavgが上昇する原因を調べるには、まずloadavg自体がどう計算されているかを知る必要があります。 まずは、Linuxがloada

    Linuxのloadavgが約7時間ごとに上昇する現象の原因 - Mackerel お知らせ #mackerelio
    t-wada
    t-wada 2018/06/13
    問題を再定義して追っていく過程がすばらしい
  • 関数の話 - ( ꒪⌓꒪) ゆるよろ日記

    こんにちは、しいたけです。 某所で関数型プログラミングとはリスト処理のことなのか、と燃えているのを見て、関数型プログラミングとは何か、ということを自分なりの考えを述べたいと思いました。春なので。 この資料は2年ほど前にSupershipの社内勉強会で使ったものですが、この中で関数とオブジェクトを対比している箇所があります。 関数もオブジェクトも、変数や関数の引数戻り値として扱える第1級の値であり、状態を持ち(メンバー変数/クロージャ)、組み合わせが可能(delegate, composition/関数合成)、である、と。 ではオブジェクト指向と関数型プログラミングで何が決定的に異なるかというと、設計・実装のアプローチに何を中心に据えるか、ということだと思います。 オブジェクト指向では、クラス・オブジェクトをモデリングし、各種のオブジェクト指向的デザインパターンを用いてオブジェクト同士を組み

    関数の話 - ( ꒪⌓꒪) ゆるよろ日記
    t-wada
    t-wada 2018/04/11
    " 関数型プログラミングでは、関数を細かな組み合わせ可能な単位に分解し、関数合成、再帰、クロージャなどを駆使しながら組み合わせる" "関数型プログラミングを知っているとプログラミングの裾野が広がる"
  • 技術選定の審美眼。時代を超えて生き続ける技術と、破壊的な変化をもたらす技術を見極める(後編)。デブサミ2018 - Publickey

    技術選定の審美眼。時代を超えて生き続ける技術と、破壊的な変化をもたらす技術を見極める(後編)。デブサミ2018 IT分野の技術はつねに速いスピードで変化し続けています。そうしたなかで登場する新しい技術には、スルーしてもかまわないものと、スルーすべきでない重要な技術があります。 めまぐるしい変化の中で、どこに着目することで重要な技術を見極めるのか。一方で、長年にわたって変わらず現役で使われ続けている技術にはどのような特徴があるのでしょうか。 (記事は「技術選定の審美眼。時代を超えて変わらない技術と、破壊的な変化をもたらす技術を見極める(前編)。デブサミ2018」の続きです) ネイティブアプリとWebアプリの螺旋 ネイティブアプリとWebアプリというのも行ったり来たりしています。 以前はVisual Basicがあり、その後にGood Old Webがあり、Flashのリッチクライアントがあ

    技術選定の審美眼。時代を超えて生き続ける技術と、破壊的な変化をもたらす技術を見極める(後編)。デブサミ2018 - Publickey
    t-wada
    t-wada 2018/02/22
    講演後半も詳細なレポートを誠にありがとうございます(ブクマしてなかった)。当日は緊張しましたが、 publickey さんに取材いただけて良かったなぁと思っています。
  • 技術選定の審美眼。時代を超えて生き続ける技術と、破壊的な変化をもたらす技術を見極める(前編)。デブサミ2018 - Publickey

    最近の立ち位置としてはライオンと一緒にされていまして、テストを書いていないプルリクエストとかに対して、却下の代わりにこの画像が張られるみたいな形で、一種の恫喝の代わりに使われています。 が、人はきわめてジェントルな人で、いましゃべってるところを見て、このライオンとはキャラが違うなとお感じになっていただければ嬉しいです。 ついて行くべき変化とスルーしていい変化 昨今の技術の現場でよくあるのは、フロントエンド疲れ。JavaScriptの新しいフレームワークや、開発方法論とか、そういうのがどんどん登場して、また新しいものが出てきたと。 2年前に標準とされていたものがすっかり過去のものになってしまっていて、Gruntはどこに行ってしまったんだとか、Backbone.jsはどこに行ってしまったんだとか。 そうした変化に追いつけずに、疲れてしまうわけです。 かと思えば、一種の限界集落。よく言えば安定

    技術選定の審美眼。時代を超えて生き続ける技術と、破壊的な変化をもたらす技術を見極める(前編)。デブサミ2018 - Publickey
    t-wada
    t-wada 2018/02/20
    充実したレポート記事、誠にありがとうございます! 当日は記者席の最前列(つまり講演する私の目の前)に新野さんの姿があり、とても緊張したことを覚えています
  • 今さらProtocol Buffersと、手に馴染む道具の話 - Qiita

    Protocol Buffersは別に新しい技術ではない。同時にそれは、未だ知られざる、未だに可能性を秘めた先端のソフトウェア技術基盤である。 新しくないのは事実で、GoogleがProtocol Buffersをオープンソース化したのは2008年のことだし、オープンソース化前に社内で使われ出したのは更に昔に遡るだろう。たぶん。 デザイン的にもJSON対応は後付けで、将来JSONが隆盛を極めることなんか全然想定していなかったのが透けて見えて古くさい。 しかし、同時にどうも情報に聡い人であってもなかなかその真価を実感し得ておらず、ある意味で未知の技術であるらしい。ならば、Protobuf (Protocol Buffersの略)を解説した文書は幾多あれども、それに1を加えるのもやぶさかではない。 Protocol Buffersとは Protobufはスキーマ言語だ! 一般的にはProtob

    今さらProtocol Buffersと、手に馴染む道具の話 - Qiita
    t-wada
    t-wada 2018/02/08
    Protobuf は実質的にはシリアライゼーション形式ではなくスキーマ言語であり、ゴテゴテしがちなスキーマ言語の中で、欲張りすぎていないデザインが手に馴染むという話
  • HashDoS脆弱性との戦い! Rubyコミッター・卜部昌平が明かすプログラム堅牢化のノウハウ - エンジニアHub|若手Webエンジニアのキャリアを考える!

    HashDoS脆弱性との戦い! Rubyコミッター・卜部昌平が明かすプログラム堅牢化のノウハウ 過去、HashDosの影響を受けたRuby。言語開発者はいかにしてこうした問題に対応してきたのでしょうか。コミッターである卜部氏の貴重な記録を公開します。 2011年の末頃、HashDoSという脆弱性が公表され、Rubyもこの影響を受けた。稿の筆者である卜部昌平(うらべ・しょうへい/@shyouhei/以下、卜部)は、報告当初からRuby側のチームメンバーとしてプログラム体の修正を担当した。以下はその記録である。言語開発者たちが普段どのようなことを考え、どういった技術を用いて開発やバグフィックスを行っているのか。その概要を知ってもらえれば幸いだ。 オブジェクト指向スクリプト言語 Ruby HashDoSの概要 なぜ約6年後の今、修正内容を公開するに至ったか? 前史:すでに内包されていたリスク

    HashDoS脆弱性との戦い! Rubyコミッター・卜部昌平が明かすプログラム堅牢化のノウハウ - エンジニアHub|若手Webエンジニアのキャリアを考える!
    t-wada
    t-wada 2018/01/10
    "問題を正しく理解することの方が、問題を正しく修正するより何倍も難しい"
  • Pythonのfor文は遅い? - atsuoishimoto's diary

    bicycle1885.hatenablog.com こちらの記事を拝見していて、ちょっと気になったので注釈。 PythonやRを使っている人で、ある程度重い計算をする人達には半ば常識になっていることとして、いわゆる「for文を使ってはいけない。ベクトル化*1しろ。」という助言があります。 これは、PythonやRのようなインタープリター方式の処理系をもつ言語では、極めてfor文が遅いため、C言語やFortranで実装されたベクトル化計算を使うほうが速いという意味です。 昔からよくこういう言い方がよくされるが、当にPythonのfor文は遅いのだろうか。 聞くところによるとRのfor文はガチで遅いそうだが、Pythonの計算が遅いのはインタープリタ方式だからでも、for文が遅いからでもない。もちろん、Pythonはインタープリタなので遅いし、for文だって極めて遅い。しかし、これはPyt

    Pythonのfor文は遅い? - atsuoishimoto's diary
    t-wada
    t-wada 2018/01/10
    "Pythonの演算が遅い最大の要因は、Pythonが静的な型宣言を行わない言語で、型推論もJITもなく、常に動的にオブジェクトの演算を行う、という点にある場合がほとんど"
  • - Christopher S. Penn - Marketing AI Keynote Speaker

    Audiences demand more of events every year, but one demand is timeless: speakers who deliver value they can try out as soon as they return home. Learn why event planners and audiences get incredible value year after year from my talks. The Almost Timely Newsletter Marketing expert Jay Baer says, “Of the 50 or so email newsletters I get weekly, my favorite is the one from Christopher Penn. I learn

    - Christopher S. Penn - Marketing AI Keynote Speaker
    t-wada
    t-wada 2017/11/29
    "Easy is a minimum amount of effort to produce a result" "Simple is the removal of everything except what matters" とてもいい
  • Visual Studioを、VSCodeのコード補完や文法チェックを実現するLanguage Server Protocol対応にする拡張機能が登場 - Publickey

    Visual StudioをLanguage Server Protocol対応にする拡張機能が発表された。Visual Studioがネイティブに対応していないプログラミング言語でも、構文ハイライトやコード補完などが利用可能になる。 マイクロソフトがオープンソースで開発しているエディタ「Visual Studio Code」(以下VSCode)には、さまざまなプログラミング言語に対応してリアルタイムに構文のハイライトや文法チェック、コード補完などを行う機能が備わっています。 これはVSCodeのエディタとは切り離され、別プロセスで動いているLanguage Serverが処理を行い、それをエディタに伝えることで実現しています。そしてエディタとLanguage ServerはJSONベースの「Language Server Protocol」で通信を行っています。 マイクロソフトはこのLa

    Visual Studioを、VSCodeのコード補完や文法チェックを実現するLanguage Server Protocol対応にする拡張機能が登場 - Publickey
    t-wada
    t-wada 2017/11/29
    Visual Studio も Language Server Protocol に対応するのは本当に素晴らしい。 VSC から生まれて VS にやってくるのも趣深い
  • コードをどまんなかに

    2017-11-25 DevLOVE関西2017 commitment 〜"何"にコミットするのか?〜 https://devlove-kansai.doorkeeper.jp/events/63438

    コードをどまんなかに
    t-wada
    t-wada 2017/11/29
    書かなくていいことを書かないための「えらぶ」スキル。85ページ目のグラフ(?)が良い
  • GitHubが「Teletype for Atom」リリース。開発者向けエディタ「Atom」でも、複数プログラマが同時にコード編集可能

    GitHubは、オープンソースで公開している開発者向けのエディタ「Atom」で複数のプログラマがリモートでコードの編集を行える追加機能「Teletype for Atom」のベータ版をリリースしました。 Teletype for AtomをインストールしたAtomでは、Portal(ポータル)と呼ばれる機能が利用できるようになります。自分のAtomをポータルにすることで、ほかのプログラマを自分のAtomエディタに招待できるようになり、複数のプログラマで同一のコードが編集可能になります。 複数のプログラマが自分のエディタから同時にコードを編集可能 以下は公開されたデモ動画から、「Teletype for Atom」の動作を紹介しましょう。 Atomエディタ右下のポータルボタンをクリック。ID番号が生成されます。

    GitHubが「Teletype for Atom」リリース。開発者向けエディタ「Atom」でも、複数プログラマが同時にコード編集可能
    t-wada
    t-wada 2017/11/21
    昨日試してみたけど、自分にとってペアプロ観が変わるくらいのインパクトありました。簡単に始められるし、素晴らしい機能です。
  • Atom Flight Manual

    CompanyEngineeringProductSunsetting AtomWe are archiving Atom and all projects under the Atom organization for an official sunset on December 15, 2022. January 30, 2023 Update: Update to the previous version of Atom before February 2 On December 7, 2022, GitHub detected unauthorized access to a set of repositories used in the planning and development of Atom. After a thorough investigation, we hav

    Atom Flight Manual
    t-wada
    t-wada 2017/11/17
    Atom も共同同時編集機能をアナウンス。ペアプロ/モブプロがどう変わるか。
  • [速報]「Visual Studio Live Share」発表。複数のプログラマがリアルタイムにコードの編集、ブレークポイント、デバッガ操作などを共有。Connect(); 2017

    マイクロソフトが発表した「Visual Studio Live Share」は、無料のVSCodeを含むVisual Studioファミリー製品のあいだで、リアルタイムにコードの編集やデバッグなどを共有できる新機能だ。 マイクロソフトは11月16日(現地時間)、ニューヨークでオンラインイベント「Microsoft Connect(); 2017」を開催しました。 基調講演で同社は、統合開発環境のVisual StudioやコードエディタのVisual Studio Code(以下、VSCode)などで、リアルタイムにコードの編集作業やブレークポイントの設定、ステップ動作などのデバッグ作業などを共有し、共同で作業できる新機能「Visual Studio Live Share」を発表しました。 デモ:Visual StudioからVSCodeへ接続 以下は「Visual Studio Live

    [速報]「Visual Studio Live Share」発表。複数のプログラマがリアルタイムにコードの編集、ブレークポイント、デバッガ操作などを共有。Connect(); 2017
    t-wada
    t-wada 2017/11/17
    VSC と Atom がほぼ同時に共同編集機能をアナウンスしたのが興味深い。ペアプロやモブプロに質的な変化をもたらすものになるのか、非常に興味がある
  • 非推奨だった bool 型に対するインクリメント演算子を削除 [P0002R1] - cpprefjp C++日本語リファレンス

    概要 C++17ではbool型に対する前置および後置のoperator ++を削除する。 bool型に対する前置および後置のoperator ++とはC++98の時点で非推奨になっていた機能である。 具体的にどのような働きをするのかというと、以下のように値をtrueに書き換える機能をもつ。 #include <iostream> int main() { bool b = false; const bool b1 = ++b; std::cout << std::boolalpha << b1 << std::endl; // => true const bool b2 = ++b; std::cout << std::boolalpha << b2 << std::endl; // => true }

    t-wada
    t-wada 2017/07/24
    "これに起因するバグで少なくとも6つの過度の放射線被曝事故を引き起こし、3人が死亡した例がある"
  • Stack Overflow発 プログラミングの隠語(ジャーゴン)30選

    お馴染みのCoding Horrorでプログラミングの隠語(ジャーゴン)についての記事が話題です。 このエントリの元になったのはStack Overflow上で行われた「あなたが新しく作ったプログラミングのジャーゴンはなんですか?(New programming jargon you coined?)」という質問です。この質問にはなんと386もの回答が寄せられ、その中でStack Overflowのコミュニティの投票で上位になった30のジャーゴンをリストにして解説したのがCoding Horrorの「Coding Horror: New Programming Jargon」という記事です。 下記がコミュニティによって選ばれたジャーゴンのリストです。 1. Yoda Conditions(ヨーダ条件式) 変数とリテラルを比較する際にリテラルを左辺に置く記述。スターウォーズのヨーダが「The

    Stack Overflow発 プログラミングの隠語(ジャーゴン)30選
    t-wada
    t-wada 2017/06/10
    stackoverflow から生まれたプログラミングのジャーゴンについて(Pokémon Exception Handling とか)。なかなか面白い。
  • 新卒2年目が鍛えられたコードレビュー道場 #jjug_ccc #ccc_l3

    JJUG CCC 2017 Springで話した内容になります。 http://www.java-users.jp/ccc2017spring/

    新卒2年目が鍛えられたコードレビュー道場 #jjug_ccc #ccc_l3
    t-wada
    t-wada 2017/05/22
    新卒プログラマが成長していく様が見える。先輩いい仕事している。
  • いま学ぶべき第二のプログラミング言語はコレだ! 未来のために挑戦したい9つの言語とその理由 - エンジニアHub|Webエンジニアのキャリアを考える!

    いま学ぶべき第二のプログラミング言語はコレだ! 未来のために挑戦したい9つの言語とその理由 業務に必要なだけではなく、コンピュータによって問題解決できていない分野を切り開き、エンジニアとして戦っていくため、刺激的な第二プログラミング言語に挑戦しましょう。RustGo、Erlang、Elixir、Clojure、Scheme、OCaml、Haskell、Scalaを紹介します。 みなさんが使えるプログラミング言語はいくつあるでしょうか? ひとくちに「使える」といっても、ひととおりのチュートリアルは終えたという段階もあれば、言語仕様(あれば)やライブラリを知り尽くしていて、思いついた処理を即座にコード化できるという段階もあります。リファレンスとか参考書を見ながらであれば使える、ということも多いでしょう。 ベテランエンジニアなら、いろいろな仕事に携わっているうちに、さまざまな環境でそれぞれ必要

    いま学ぶべき第二のプログラミング言語はコレだ! 未来のために挑戦したい9つの言語とその理由 - エンジニアHub|Webエンジニアのキャリアを考える!
    t-wada
    t-wada 2017/05/19
    この手の記事にしては構成がしっかりしているし、プログラミング言語の選択肢も良いものが並んでいるなと思ったら、書いているのは鹿野さんだった
  • CHANGELOG の書き方 - 角待ちは対空

    VS Code の拡張作っている際に CHANGELOG.md が自動生成され、書き方はKeep a Changelogに従えと書かれていたので紹介する。 ここに書かれていることは絶対ではなくただ提案しているだけである。意見がある人は話し合おうという温度感っぽいので、納得いかない場合は issue 立てると良いと思う。 僕自身はなんでもよくてある程度型が欲しかっただけなのでこれからはこれに従って書いていこうと思う。ただまぁ Semantic Versioning もそうだけどちゃんと従おうとすると以上にだるくなってくるので雰囲気従うくらいだと思う。 CHANGELOG の原則 機械的に生成するのではなく人間の手で書く 各セクションへのリンクが容易にできる 1つのバージョンごとに1つのサブセクションを作る リリースは新しいものが上に来るようにする 日付のフォーマットは YYYY-MM-DD

    CHANGELOG の書き方 - 角待ちは対空
    t-wada
    t-wada 2017/05/18
    Unreleased セクションは良いアイデアだな。自分の場合 CHANGELOG は conventional-changelog の出力をベースに手直ししています。