タグ

関連タグで絞り込む (150)

タグの絞り込みを解除

programmingに関するvanbraamのブックマーク (640)

  • コーディング面接とSnakeゲームに唯一共通すること | POSTD

    80年代か90年代に生まれた方ならおそらく、「Snake」というゲームのことをご存じでしょう。「ご存じ」とはつまり、Nokia 3310のちっぽけな画面上でたわいもない巨大ヘビを育てるのに膨大な時間を費やしていたのではないかということです。Nokiaの携帯電話について、皆さんは他にどんな特徴を覚えていますか? バッテリーが長持ちしたことではないでしょうか。 Nokiaはとても”原始的な”携帯電話であったにもかかわらず、バッテリーを使い果たすことなくSnakeゲームで何時間も遊べたのは、どういう訳だったのでしょう? 理由の大部分は、優れた強固なコンポーネントのおかげでした。しかし、貢献度はそれより低く、あまり語られることもありませんが、スライディングウィンドウと呼ばれる手法も長時間のプレイに役立っていたのです。 Snakeだけを扱った記事を1書きたいのは山々ですが、実は記事では後者の、魅

    コーディング面接とSnakeゲームに唯一共通すること | POSTD
    vanbraam
    vanbraam 2018/08/29
    コーディング面接関係なく,とても実用的かつ面白い話だった
  • コードの半減期とテセウスの船 | POSTD

    プロジェクトが発展する際は、単純に新しいコードが古いコードの上に追加されているのでしょうか。もしくは、時間をかけて徐々に古いコードが新しいコードに置き換えられているのでしょうか。これを解明するために、手ごわい GitPython プロジェクトの助けを借りて、Gitプロジェクトを分析する 簡単なプログラム を構築してみました。履歴を年ごとに振り返り、 git blame を実行してみようと思ったのです(この処理を多少でも速くすることは簡単ではないと分かりました。しかし、ファイルのキャッシングを便宜的に含ませることや、変更された点を履歴から見つけること、 git diff を使って変更したファイルを無効にすることなどの詳細を、いつかお伝えします)。 頭がさえている時に、 テセウスの船 をダサくもじって、 “テセウスのGit” と名付けました。私は父親になって、ひどいダジャレを作れるようになった

    コードの半減期とテセウスの船 | POSTD
    vanbraam
    vanbraam 2018/08/29
    どういう意味があるかはわからないけど,単純に面白い論文だった.研究なんて大半は意味より興味だし,そこに金 and/or 労力を提供する人がいる限りそれでいいんだろうな
  • Rust より C++ が優れている 12 のポイント - uchan note

    若干釣りタイトルですが,私が「Rust にはない C++ の良さ」を募ったところ,12 個ほどの優れている点が報告されたので,まとめてみます. 背景 私は 2018/10/08 開催予定の技術書典5で,『C++でできる!OS自作入門』と題して,Clang+LLD で C++ を使って OS 開発する際の注意点とか C++ の活用例を解説する同人誌を書こうと思っています. その下調べもかねて,このようなツイートをしました. C++好きな人!ぜひ,RustにはないC++の良さを教えてください!— C++でOS自作 技術書典5 お05 (@uchan_nos) 2018年8月24日 そうしたら知り合いからこんなリプが飛んできました. これ、まとめてblogにして!— shoma (@shoma) 2018年8月24日 一部の人に参考になるかもしれないのでまとめることにしました.ただしネタ多めです

    Rust より C++ が優れている 12 のポイント - uchan note
    vanbraam
    vanbraam 2018/08/26
    "Rust は書いたことはない"とある時点で,基本的にネタでしかない.これを真に受けるのは流石に阿呆or野暮だと思う
  • Railsで不要なテーブルと古いmigrationファイルを削除する - Kaizen Platform 開発者ブログ

    はじめまして、ハートレイルズの境 (@kazsakai) です。 色々あって今は長野県の伊那という、地理的には日列島の中心らへんだけどあらゆる大都市から満遍なく遠い片田舎に暮らしています。(ちなみにアニメ聖地巡礼発祥の地だそうで) Kaizen Platformさんの社員ではなくパートナーという立場ではありますが、ほぼ最初期くらいから開発に関わっているエンジニアの一人として、今回こちらのブログにお邪魔させていただきます。 Rails の不要テーブルと migration ファイルを整理したい Kaizen Platformさんのプロダクトは日々着実に拡大を続けていて、githubの社内リポジトリ数も今や200を超えていますが、そんなKaizenのプロダクトも最初期には単一のRailsリポジトリからスタートしました。 最初期のプロダクト名「planBCD」にちなんだそのRailsリポジトリ

    Railsで不要なテーブルと古いmigrationファイルを削除する - Kaizen Platform 開発者ブログ
    vanbraam
    vanbraam 2018/08/23
    "新しくDBを作ってrake db:migrateするとmigrationファイル群の色んなところでエラーが出て動かない"<="カラムを追加したついでにモデルクラスを使って値を設定している"<これは酷い
  • 統計的因果推論のためのPythonライブラリDoWhyについて解説:なにができて、なにに注意すべきか - Unboundedly

    機械学習など主に予測を目的とした統計手法に強いイメージのPythonでしたが、統計的因果推論を行うためのライブラリ、“DoWhy”がついにリリースされました。 DoWhy | Making causal inference easy — DoWhy | Making Causal Inference Easy documentation これまで因果推論があまり浸透してこなかった*1データサイエンス界に新しい風が吹くのではと期待が高まります。 一方でこのパッケージが何を可能にし、逆に何ができないのかを理解しなければ、雑なデータ分析が増えて逆に有害なのではと思い、今回ブログを書くことにしました。 先に言っておくと、私自身はPythonをメインに使っているわけではありません(使ったことはあるので一応コードを読んで何が起こっているかくらいはわかります)。したがって記事の目的は、DoWhyライブ

    統計的因果推論のためのPythonライブラリDoWhyについて解説:なにができて、なにに注意すべきか - Unboundedly
    vanbraam
    vanbraam 2018/08/23
    全部読んだけど(たぶん)半分くらいしか理解できてない.後で時間のある時にもう一度読み直すかも
  • コードを静的解析して脆弱性を検出する「SCALe」、米CERTがオープンソースで公開

    米Software Engineering Institute(SEI)のCERT部門は、静的解析によってコードの脆弱性を検出するアプリケーション「SCALe」(Source Code Analysis Laborator)をオープンソースで公開しました。 SCALeは、複数の静的解析ツールをまとめて実行するためのフレームワークでできており、今回公開されたアプリケーションにはセキュリティに関するコーディング規約「SEI CERT Coding Standards」およびSQLインジェクション、クロスサイトスクリプティング、バッファオーバーフローなど多くのソフトウェアの脆弱性を体系的に一覧化した「CWE(Common Weakness Enumeration)」(共通脆弱性タイプ一覧)の2つをベースにしたツールが含まれています。 SEI CERT Coding Standardsは現在、C/

    コードを静的解析して脆弱性を検出する「SCALe」、米CERTがオープンソースで公開
    vanbraam
    vanbraam 2018/08/23
    とりあえず試してみたいのでブクマ
  • 女性システムエンジニアから見たIT業界の風景 - 意識低い系ドットコム

    「きつい」「帰れない」「給料が安い」の新3Kなどとも呼ばれ、あまり良いイメージの無いIT業界ですが(少しずつ良くなってはいるのですが・・・)、最近は女性エンジニアも増えています。女性の目にはこの業界はどんな風に映るのでしょうか? 女性システムエンジニア(元)の方に体験談を寄稿していただきました。 IT業界あるある漫画「仕様書なんてただの飾りです」&「ITエンジニアのアンニュイな午後」 ---------------------- [ 寄稿記事ここから ] ---------------------- SEを目指したきっかけ 私はある日突然思いました。 「そうだ。SEになろう。」と。 大学は文系。前職は銀行員。そんな私がSEになろうと思った理由は、実のところ、「パソコンが苦手」だからでした。「え? 苦手だから? 得意じゃなくて?」 はい。苦手だったから、です。 時代はIT。IoTやら、AI

    女性システムエンジニアから見たIT業界の風景 - 意識低い系ドットコム
    vanbraam
    vanbraam 2018/08/19
    "プログラミング自体は割とすぐにできるようになりました","困難を感じることはありませんでした"に違和感.非常に優秀な人か,単なるコピペグラマーになったのをプログラマーになったと勘違いしているかのどちらかでは?
  • Go言語のGCについて - LINE ENGINEERING

    なぜGo言語はコンパクションを採用していないのか GoogleのRick Hudson氏によるISMM 2018 Keynote “Getting To Go”を参照すると、以下のことがわかります。 2014年の時点では”Read barrier free concurrent copying GC”を計画していた しかし期間的な制約から断念し、CMSに舵を切った(この時期に彼らは、ランタイムをCからGoに書き換える作業も行う必要がありました。Changes to the runtime) TCMallocをベースとしたメモリアロケーターを採用することで、断片化およびアロケーションの速度の問題を解決した Go言語のメモリアロケーションについては、ランタイムのコードのコメントにも詳しく記載されています。 malloc.go This was originally based on tcmal

    Go言語のGCについて - LINE ENGINEERING
    vanbraam
    vanbraam 2018/08/09
    「Goにこれがない(からダメ)」という論を述べる人は,その前に(この記事にある様に)なぜそういう設計/実装になっているのか,を調べるべき.その種のWhyはだいたい公開されてるので
  • 「偽のバグを大量に埋め込む」ことでソフトウェアのセキュリティがアップすると研究者が指摘

    ソフトウェア開発では、バグの数をゼロに近づければ近づけるほど、セキュリティが高くなるとされています。しかし、かなり特殊な条件下でしか発生しないバグについては発見するのも困難で、バグを全てつぶすことは不可能とも言われています。ニューヨーク大学タンドン工科校で計算機科学の助教を務めるブレンダン・ドーラン=ギャビット氏らの研究チームは、ソフトウェアのセキュリティを高める方法としてバグを減らすのではなく、「偽のバグ」をプログラム内に大量に埋め込む方法があることを示しました。 [1808.00659] Chaff Bugs: Deterring Attackers by Making Software Buggier https://arxiv.org/abs/1808.00659 Cramming Software With Thousands of Fake Bugs Could Make It

    「偽のバグを大量に埋め込む」ことでソフトウェアのセキュリティがアップすると研究者が指摘
    vanbraam
    vanbraam 2018/08/09
    「コードは読む時間の方が長い」ので,原理は理解できるがメンテもしづらくなる.多分実用的ではない
  • 無責任な"not for me"発言は迷惑なのでやめてほしい - lacolaco

    愚痴。 最近特定の技術やライブラリ、ツールなどに対して、「自分には合わなかった」のような発言をする人をよく見かける。 ちょっと前だと「○○はクソ」のような直接的なdisが目立っていた気がするので、少しは丸くなったつもりなのかもしれないが、 Angularというひとつの技術のユーザーコミュニティを主催する僕としては余計に迷惑だ。 もっと慎重になれ medium.com AirbnbがReact Nativeを使うのをやめた記事、これは当に偉い。 技術選定を行い、結果的にマッチしなかった、というレポートには、最低限次の項目が必要だと考えている。 開発の目的 選定理由 マッチしなかった理由 このどれが欠けてもいけない。単に言葉遣いが柔らかいだけでdisと変わりないどころか、下手するとFUDにすらなり得る。 FUD - Wikipedia FUD(英: Fear, Uncertainty and

    無責任な"not for me"発言は迷惑なのでやめてほしい - lacolaco
    vanbraam
    vanbraam 2018/08/09
    記事消えてる.残念
  • bliki: Two Hard Things

    There are only two hard things in Computer Science: cache invalidation and naming things. -- Phil Karlton Long a favorite saying of mine, one for which I couldn't find a satisfactory URL. Like many good phrases, it's had a host of riffs on it. A couple of them I feel are worth adding to the page There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors.

    bliki: Two Hard Things
    vanbraam
    vanbraam 2018/07/09
    "only"ではない,たくさんの"two" hard things
  • HaskellでDIする

    DI DIの重要性はここ数年で急速に高まってきている。 依存性が注入されたりとかそういうことはどうでもよくて、設計と実装を分けたい、人類はそれだけのために色々と工夫をこらし最終的にたどり着いたのがDIであったのだろう。 Haskellでも設計と実装を分けるためにDIしたいというのは自然な流れである。 ここでは型も含めて設計が実装に依存してはいけないということを要求する。 例えば設計でMySqlConnection、みたいな型が出現することも分離できていないので禁止とする。 問題点 設計を定義するときには他の言語ではインターフェイスなどの仕組みが使われることが多い。 Haskellには型システムという仕組みがあるのでこれがインターフェイス相当の機能として紹介される場合がある。 しかし型システムはインターフェイスとは違い、型を固定する仕組みがない。型クラス TypeClass a のインスタン

    vanbraam
    vanbraam 2018/07/09
    "ここでは型も含めて設計が実装に依存してはいけないということを要求する。 例えば設計でMySqlConnection、みたいな型が出現することも分離できていないので禁止とする"
  • 世の中にはプログラミングを理解できない人間が存在する

    現在、C++によるプログラミングの入門書を書いているので、初心者のプログラミングの学習過程にとても興味がある。私自身も初心者の気持ちを取り戻すためにHaskellを学んでみた。最初の数日は頭が痛くなるほど難しかったが、そこを過ぎてみれば後は楽になってしまった。結局、初心者の気持ちはあまりわからなかった。結局、プログラミングの基礎はすでに学んでしまっているので、 先日、FizzBuzzがわからないから教えてくれという知人がいたので、これは初心者の気持ちを知るいい機会と話を聞いてみたところ、想像を絶する世界が見えてきた。 まずこれが動かないと悩んでいたコードだ。 for ( int i = 0 ; i <= 100 ; i++ ) { } else if ( i % 15 == 0 ) { Debug.log("FizzBuzz") ; } else if ( i % 3 == 0 ) { D

    vanbraam
    vanbraam 2018/05/30
    "知人"氏の問題は,知的能力もあるかもしれないが,根拠のない自信の裏にある無意味なプライドとか,格好だけ追って中身は空っぽの無駄な見栄とか,そういう所にあるような気がする
  • 今学ぶべき技術 by deeeet

    今学ぶべき技術 by deeeet 会津春の大LT大会 26 May 2018 Taichi Nakashima About me @deeeet / @tcnksm (GitHub) https://deeeet.com Tech lead at Mercari microservices platform team (We're hiring!) 2 今学ぶべき技術 3 今学ぶべき技術 英語 4 英語かよ!引っ込め👎 学ぶべき技術は何かを知るには「英語」が必要 技術を深く学ぶには「英語」が必要 5 英語で学ぶべき技術を知る 6 そもそも 何を学ぶべきかは自分で知る必要がある 学ぶべき技術は個人の趣向によって異なる 学ぶべき技術は所属する組織や環境によって異なる 学ぶべき技術は立場によって異なる 7 英語で日々の情報収集をする 多くの技術トレンドやプラクティスは英語圏から現れる 日

    vanbraam
    vanbraam 2018/05/27
    "会津春の大LT大会"は,https://www.facebook.com/events/575057802865840/によると,大学生の"僕・私たちが今年度学ぶべき技術"を語る場なので,内容はこれでOKでは.Computer science基礎は重要;Microservices実用時の課題/解決情報が少ない,は不同意
  • GitHub - digawp/hello-enclave: A "Hello World" Intel SGX enclave program

    vanbraam
    vanbraam 2018/05/25
    via b:id:entry:364728011;Intel Software Guard Extensionの活用の具体的コード例.Enclaves側のコードの存在意義がよくわからない
  • IBM Cloud Blog

    vanbraam
    vanbraam 2018/05/25
    Software Guard Extensionを用いた,data-in-use保護.全てのデータをtrustedなenclaves内で処理する様にprogrammingする事が鍵らしい.参照されているHelloWorldのコードb:id:entry:364728079もチラ見したがよくわからなかった
  • フリーランスやめて雇われることにした|Toru Furukawa

    今年の5月、2年ほどやっていたフリーランスを辞めて、雇われの会社員になった。フリーランスになったときには予想してなかったことなので、いまのうちに記録を残すことにする。 フリーランスになって、もっとも自分が困惑をしたのは、プログラマーとしては低く評価されるが、テクニカルディレクターとしては高く評価されるということに気づいたときだった。私は決してスーパーハッカーではないけれど、人を動かしたり人とコミュニケーションを取るのはもっと苦手だった。だから、テクニカルディレクターとして評価されていることに気づいたとき、困惑したのだ。ちなみのここでいう評価というのは、大雑把にいって時間単価のことと褒められ具合/感謝され具合を混ぜたのもを指している。 テクニカルディレクターというのは、清水幹太のベースドラムという文章の、「テクニカルディレクターとはどんな仕事なのか」あたりが参考になると思う。小規模なソフトウ

    フリーランスやめて雇われることにした|Toru Furukawa
    vanbraam
    vanbraam 2018/05/16
    でもこの人が"テクニカルディレクター"として評価が高いのは,曲がりなりにもコードが書けるから,というのもありそう.コードを書いた事がない"テクニカルディレクター"(恐ろしい事に日本には多い)って大抵ダメだと思うし
  • GitHub - codecrafters-io/build-your-own-x: Master programming by recreating your favorite technologies from scratch.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - codecrafters-io/build-your-own-x: Master programming by recreating your favorite technologies from scratch.
    vanbraam
    vanbraam 2018/05/14
    チュートリアルへのリンク集;まずはBotあたりから始めてみる?
  • Emacsで現在見ている行を変更したPRを開けるようにした - $shibayu36->blog;

    このコードどうしてこうなってるのかという経緯を知りたい時、git blameなどのコマンドを利用することが多い。しかし、git blameだとその行を変更したcommitが分かるだけであり、経緯が結局分からないということがよくある。 そういう時にその行を変更したPRを開けるようにしたいなーと思って、いろいろやったところ、Emacsで現在見ている行を変更したPRを開けるようになったのでメモ。 特定のコミットが含まれるPull Requestを開くには 前段階として、特定のコミットが含まれるPull Requestを開くということをやってみる。これは既にいろいろやっている人がいて Commit Hash から、該当 Pull Request を見つける方法 - Qiita How to find pull-request by a commit sha - Pitr.ch Gitベースのコード

    Emacsで現在見ている行を変更したPRを開けるようにした - $shibayu36->blog;
    vanbraam
    vanbraam 2018/05/09
    近い内に誰かがvimでこれを実現して,その記事にブクマがたくさんつくと予想(disclosure:私はEmacs使いです)
  • 命に関わるコードを書く時の10個のルール

    ミス一つで命に関わったり数年の努力が失われたりするような重大なコードを書く場合、どのような点に気を使うべきなのかを、NASAで働くコンピューター技術者のGerard J. Holzmannさんが「The Power of 10」としてまとめています。 The Power of 10: Rules for Developing Safety-Critical Code - Wikipedia https://en.wikipedia.org/wiki/The_Power_of_10:_Rules_for_Developing_Safety-Critical_Code 1. Gotoや再帰など複雑なフローは避ける By atsunori kohsaki 2. 暴走を阻止するため、全てのループに回数上限を設定する By Woplu 3. ヒープ領域のメモリを割り当てない これは、使用済みメモリが

    命に関わるコードを書く時の10個のルール
    vanbraam
    vanbraam 2018/05/01
    ここに書かれてる事も重要だと思うが,人間の理解力だけに頼らないで,形式的検証(formal verification)とかhard real-time OSの様な計算機科学の成果の活用を考える方が重要だと思う