タグ

programmingに関するshoのブックマーク (92)

  • Detecting Argument Selection Defects

    104 Detecting Argument Selection Defects ANDREW RICE, University of Cambridge, England and Google Inc., USA EDWARD AFTANDILIAN, CIERA JASPAN, and EMILY JOHNSTON, Google Inc., USA MICHAEL PRADEL, TU Darmstadt, Germany YULISSA ARROYO-PAREDES, Barnard College of Columbia University, USA Identifier names are often used by developers to convey additional information about the meaning of a program over

    sho
    sho 2018/11/22
    引数の数は、4つあたりから尻のあたりがもぞもぞし始めるよな
  • バカにC言語は難しい~プログラミングの機会損失~

    プログラミングは難しい 注意: この記事は「プログラミング学習とはかくあるべき」、「こうやって学習するのが一番」ということを言いたいのではなく、プログラムを勉強したいが右も左もわからない人に少しでも勇気と情報を与えることを目的としています。過去の挫折経験からか、なかば愚痴っぽくなっていますがご勘弁を はじめに自分のプログラミング歴を軽く紹介して起きます。 年 言語 学習目的 2010 C言語 学校の実習 2011 C++ 組み込み系 2012~2017 None None 2018 Go,Js,Scala,Python 研究、Web開発 といった感じです。2012~2017年がNoneになっているのには原因が「C言語に挫折し、とにかくプログラミングがしたくなかった」からです。そう思ってしまった原因と、そこから立ち直ったことがこの記事を書いた理由です。 「おいおい、C言語ごときで挫折とは情け

    バカにC言語は難しい~プログラミングの機会損失~
    sho
    sho 2018/10/23
    さすがにいまCを勧める人はいないというか、いたら周囲のまっとうなプログラマたちからボコボコにされると思うんだけど……
  • 簡潔ビットベクトルでRubyをlog N倍速くした - クックパッド開発者ブログ

    技術部のフルタイムRubyコミッタの遠藤(@mametter)です。昨日の Hackarade #04 の開催報告に続き、2日連続で記事を投稿します。 今回は、ある条件下でのRubyの実行速度を高速化した話を紹介します。この改善はすでにMRIの先端にコミットされていて*1、年末リリース予定のRuby 2.6に含まれる予定です。 ひとことで言うと、「簡潔ビットベクトルを索引に使うことで、プログラムカウンタから行番号を計算するアルゴリズムをO(log N)からO(1)に改善した。これにより、TracePoint有効時やコードカバレッジ測定下で、長さ N のメソッドの実行が O(N log N) から O(N) に高速化される」ということです。順に説明します。 背景:Rubyのバイトコードの構造 この最適化を理解するにはまず、Rubyのバイトコードのある特徴を知る必要があります。 たとえば x

    簡潔ビットベクトルでRubyをlog N倍速くした - クックパッド開発者ブログ
    sho
    sho 2018/10/17
    簡潔データ構造を知っていて、かつ応用を思いついて、かつ実装できるという強みよ。
  • コンピュータを理解するにはExcelが最適だった 83歳の現役プログラマーが語る、アプリ開発秘話 - ログミー

    2018年9月6日、ビジネスエアポート六木にて「米国アップル社、マイクロソフト社、そして国連部も認めた83歳のアプリ開発者 若宮正子氏登壇!『MY SMART WORK LIFE』セミナー②。世界を魅了する理由に迫る!!」が開催されました。パートでは、若宮正子氏の生い立ちからアプリ開発に至るまでのエピソードについての講演模様をお送りします。 突然世界中で有名人になってしまった、若宮正子氏の講演 若宮正子氏:みなさん、こんばんは。若宮正子です。どうぞよろしくお願いいたします。だいたいの人はみんな「マーちゃん」って言っているみたいなんですけども、戸籍上の名前は若宮正子です。 今日お話しすることは、まず自己紹介。それから、今日のテーマであります「私は創造的でありたい」というお話。それから最後に、最近の活動から得られたものです。といいますのも、私は1年半ぐらい前に、急に「にわか有名人」になっ

    コンピュータを理解するにはExcelが最適だった 83歳の現役プログラマーが語る、アプリ開発秘話 - ログミー
    sho
    sho 2018/10/04
    内容はまぁ良いとして、口調やボキャブラリが完全にネット民のそれなのが笑った。完全に「こっち側」の人じゃんね。
  • 自作Cコンパイラで Ken Thompson のログインハックを再現してみた - 0x19f (Shinya Kato) の日報

    UNIX 開発者の一人である Ken Thompson が初期の UNIX にバックドアを仕掛けていたと言われている通称 Thompson hack を自作Cコンパイラで再現してみました。 Thompson hack は UNIX のログイン処理のコンパイル時にバックドアを仕掛けるようなコンパイラを作り、さらにコンパイラのソースコードからその痕跡を消し去るという神業です。 元ネタは Reflections on Trusting Trust という1983年に Ken Thompson が Dennis Ritchie と共にチューリング賞を受賞した際の記念公演です。 Ken Tohmpson はこの細工をしたコンパイラを配布したことはないと主張しているそうですが、このバックドアを利用したと見られる不審なログインがあったという報告もあったとのことで、実際にはベル研究所の外部に配布されていた

    自作Cコンパイラで Ken Thompson のログインハックを再現してみた - 0x19f (Shinya Kato) の日報
    sho
    sho 2018/08/21
    実用Quine
  • 常用エディタをVisual Studio Codeに変えようかな(挫折する予感はある) - ただのにっき(2018-07-20)

    ■ 常用エディタをVisual Studio Codeに変えようかな(挫折する予感はある) 普段はさほどカスタマイズしていないvimでコード(やコード以外のなんでも)を書いていて、sshで乗り込んだ先でもローカルといっさい違いのない環境でものが書けるのはとてもいいし、困ったことは特にない。とはいえ、いろんな支援技術が入っている最近のエディタも使ってみたいんだよなぁ……とはもう何年も考えてるんだけど、ここらでえいやっと取り組んでみることに。とりあえず勢いのあるVS CODEがいいんじゃないの。 目標は、職場(Ubuntu Desktop)と自宅(Windows 10)で同じ環境にすること。WindowsではWSLを使っているから、基的にLinuxに合わせるのがいい。ということで、まずはUbuntu 18に導入。これはらくちん。 ちゃんとハード3タブにできるんだ。えらいぞ、Microsoft

    常用エディタをVisual Studio Codeに変えようかな(挫折する予感はある) - ただのにっき(2018-07-20)
  • 寄り目を利用した「目diff」および「立体インデント」の考案 - Qiita

    疲れてくると寄り目になっちゃう現象ありますよね。 これを有効活用する方法を思いついたので書き留めようと思います。 先日 react native でアプリを作ってたんですが、なんかの操作の前後で挙動が想定と違いました。 よく分かんなかったので、とりあえずデータの中身を表示させて、 ふとした拍子で再現しなくなると困るので念のためスクショを撮りました。 (左: バグる前 / 右: バグった後。データは今てきとーにでっち上げたものです。) 見ても分かんない、えーと、どうすんだっけ… Remote Debug 有効にして Chrome の…テキストを diff で…あぁ、目が寄るぅ…… あぁなんだ categoryId が変わっちゃってるじゃん、と一目瞭然ですね。 インデントと行数が揃ってるっていう前提の上ですが、寄り目を使うと diff 部分が マトリックスでラグってるとき風に(網膜上に)表示さ

    寄り目を利用した「目diff」および「立体インデント」の考案 - Qiita
    sho
    sho 2018/07/23
    疲れてくると寄り目になるというのがまず体験したことがなくてわからんのだが、立体視したらますます疲れるよなぁ……とか夢のないことを思った。なお平行視派です。
  • OpenDataStructures.jp

    オープンソース版 Open Data Structures 日語訳の PDF ファイルを以下で公開しています。最新のソースコードは GitHub のリポジトリ https://github.com/spinute にあり、適宜こちらの PDF ファイルに反映しています。 以下のものは C++ 版です(Java 版はこちら、疑似コード版はこちらにあります)。 目次 訳者まえがき 書の読み方 訳者謝辞 なぜこのを書いたのか 謝辞 第1章 イントロダクション 効率の必要性 インターフェース 数学的背景 計算モデル 正しさ、時間計算量、空間計算量 コードサンプル データ構造の一覧 ディスカッションと練習問題 第2章 配列を使ったリスト ArrayStack:配列を使った高速なスタック操作 FastArrayStack:最適化された ArrayStack ArrayQueue:配列を使ったキュ

    OpenDataStructures.jp
  • Rubyコミッター・Yuguiに学ぶ、コードに書くべき「適切なコメント」と「適切な場所」 - エンジニアHub|Webエンジニアのキャリアを考える!

    Rubyコミッター・Yuguiに学ぶ、コードに書くべき「適切なコメント」と「適切な場所」 Rubyコミッター・園田裕貴(Yugui)さんが、長年の経験で体得したソースコードに書くべき「コメントの技法」を教えてくれました。 プログラミングにおいて、どんな初心者でも書けるけれど、適切に書くのは上級者でないと難しいもの。それがコメント(=ソースコードに書かれている注釈やメモ)です。 不適切なコメントをつけても、プログラムの動作には影響しません。しかし、書き方の巧拙によって、コードの可読性や理解のしやすさには雲泥の差が出ます。良質なコメントが良質なコードをつくるのです。 今回はRubyコミッターでありgrpc-gatewayの開発者でもあるSupership株式会社の園田裕貴(Yugui)さんに、優れたエンジニアがどんな観点を持ち、どんなコメントを書いているのかを聞きました。 園田 裕貴(そのだ・

    Rubyコミッター・Yuguiに学ぶ、コードに書くべき「適切なコメント」と「適切な場所」 - エンジニアHub|Webエンジニアのキャリアを考える!
    sho
    sho 2018/05/22
    耳が痛いヤツだ〜
  • はっしー🇳🇿将棋の先生 on Twitter: "「コメントのいらないプログラムの書き方」って記事が炎上して、正確に伝わる文章って難しいなーと思いました。「会社としてコメント書かないルールを採用している。困ったことはほとんどない」と冒頭に書いたんですがね。そこが伝われば「は?コメント書けや」って反応はないと思ったんですけど。"

    sho
    sho 2018/05/16
    自分の文章が悪かったってわかってるようだからいいけど(ブロガー名乗っててそれでええんかとは思うが)、例がシンプルすぎて説得力がなかったのが原因だよね。
  • (自分で書いた)誤ったHTTPヘッダのせいで苦労した話 - ただのにっき(2018-03-13)

    ■ (自分で書いた)誤ったHTTPヘッダのせいで苦労した話 わさますのコミュニケーション基盤であるmassr、いまはHerokuで動かしているんだけど、長年の運用でMongoDBの容量も増えてきてコスト的にも厳しい感じになってきたので、VPSでも借りて引っ越そうという算段をしている。とりあえずGCE(Google Compute Engine)の無料枠でためそうかという流れに。 Dockerを使ってmassr体とMongoDB、Memcachedはそれぞれ別のコンテナに入れ、reverse proxyとしてフロントに立てたnginxにhttpsをさばいてもらうという、(たぶん)昨今ではオーソドックスな構成。 で、普通に会話するくらいのところまでは問題なく動いたんだけど、フォームを経由しないLikeなんかの動作が403を返して失敗する。使い慣れないDocker上でいろいろ調べると、Rack

  • Javaではif (isAdmin == true)というコードを書いてはいけない - Qiita

    はじめに 当たり前だと思うのですが、意外と守られていないことがあります。その1つの例として、条件分岐でのbooleanの扱いを挙げてみます。 ~~タイトルには「Javaでは」と書きましたが、おそらくどの言語でも同じです。~~JavaScriptなど他の言語では当てはまらないので取り消します1。 何がダメか 明確にコーディング規約で否定しているケースもありますが2、Javaでは以下のようなコードは書いてはいけません。 if (isAdmin == true) { // isAdminがtrueのとき } if (isAdmin == false) { // isAdminがfalseのとき }

    Javaではif (isAdmin == true)というコードを書いてはいけない - Qiita
    sho
    sho 2018/02/21
    炎上狙いっぽいタイトルだなーと思って読んでみたら案の定。「新人プログラマ応援」ってタグが虚しい感じ。
  • 最速で知る! プログラミング言語Rustの基本機能とメモリ管理【第二言語としてのRust】 - エンジニアHub|若手Webエンジニアのキャリアを考える!

    最速で知る! プログラミング言語Rustの基機能とメモリ管理【第二言語としてのRustRustは、新しいシステムプログラミング言語です。稿では、基的な構文に加えて、所有権、参照と借用、ライフタイムといった特徴的な機能によるメモリ管理を解説します。 κeen(@blackenedgold)です。Rustの入門を担当することになりました。基的な文法と使い方を説明しつつ、Rustの特徴的な機能と、なぜその機能が必要かというモチベーションを紹介していけたらと思います。 Rustは非常に高機能であり、この記事ですべてを紹介できません。興味を持った方は、ぜひ公式ドキュメントを読んでみてください。私が管理している和訳もあります。 The Rust Programming Language プログラミング言語Rust Rustはシステムプログラミング言語 Rustのインストール Hello W

    最速で知る! プログラミング言語Rustの基本機能とメモリ管理【第二言語としてのRust】 - エンジニアHub|若手Webエンジニアのキャリアを考える!
  • 嫌われているプログラミング言語ランキング - Stack Overflow

    Stack Overflowは10月31日(米国時間)、「What are the Most Disliked Programming Languages? - Stack Overflow Blog」において、同社がオンラインの履歴書作成サービス「Developer Story」のデータを基に集計した「プログラミング言語好き嫌いランキング」を発表した。Developer Storyで少なくとも2000回以上言及されている言語を対象に集計が行われている。 集計の結果は以下のとおり。 Perl Delphi VBA PHP Objective-C CoffeeScript Ruby C# Java C++ Haskell C F# Erlang Matlab Lua Scala Groovy Go JavaScript Python Swift Clojure Bash Rust TypeS

    嫌われているプログラミング言語ランキング - Stack Overflow
    sho
    sho 2017/11/02
    十分に普及して利用者の多い言語はヘイトを集める「チャンス」も多いというだけの話だよ。くだらねぇ。
  • コーディングに対する考え方を変える6つのプログラミングパラダイム | POSTD

    私は時折、コーディングに対する考え方を変えさせられるような、従来と非常に異なるプログラミング言語に出会います。記事では、その中でも特に気に入っている発見をいくつかご紹介したいと思います。 これは、先賢による「関数型プログラミングは世界を変える!」的な投稿ではありません。記事で挙げるのは、もっと「知る人ぞ知る」的なリストです。多くの読者の方にとって、以下の言語やパラダイムは聞いたことのないものが大半だと思いますので、私が経験したように、これらの新しい概念を学ぶ楽しさを感じていただければ幸いです。 注:私は以下の言語の多くに関して最低限の経験しかありません。その発想に引き込まれたのであって、専門的知識は持ち合わせていないため、訂正すべき点や誤りがあればどうぞご指摘ください。また、記事で取り上げていない新しいパラダイムや概念に出会った方は、ぜひお知らせください。 最新情報:記事が r/p

    コーディングに対する考え方を変える6つのプログラミングパラダイム | POSTD
    sho
    sho 2017/06/21
    Forthの方言、まだ生きてるのか。ちなみにMindユーザでした。
  • 今はコードがお偉いさんなんだからMOBは雁首揃えろって話 - アンカテ

    技術なきマネジメントの衰退とその対策 - メソッド屋のブログ Mob Programmingって初めて聞いたけど、とてもいい方法に思える。 コードを書く時に、今現在の仕様はわかっていたとしても、今後どうなるか、どういう方向に発展するのか気になって、ビジネス的にその分野に詳しい人の所に聞きに行ってから書きはじめることがあるし、性能的に大丈夫かDBに詳しい人の意見を聞いたり、何か迷った時に過去のプロジェクトで似たようなケースをどっちの方法で解決したか調べたりすることもある。 書き出すとすぐ終わる短いコードでも、書き出す前に、聞きにいったり議論したりする時間が随分かかっていることもある。この時間をかけないと、結局、後で変更になるので、先に聞きにいくのがベターなんだが、チーム全員集まってひとつのコードを書けば、そういう時間を省略できるような気はする。 だから、これが生産性が高いということは感覚的に

    今はコードがお偉いさんなんだからMOBは雁首揃えろって話 - アンカテ
    sho
    sho 2017/06/20
    mobは要件や仕様を明確にするのには向いてるけど品質高めるのにはあんまり向いてないと思うので、適材適所では。この話は仕様書をコードで書くってだけの話にみえる(仕様は関係者全員で決めるもんだし)
  • RNNでプログラミング言語の構文エラーを自動修復する衝撃

    コンパイルエラーの問題点 DeepFix Iterative Repair まとめ 参考文献 プログラミング言語のコンパイルエラーを自動で検知して修復することができたら、プログラマの作業時間を減らせる可能性があります。もしくは、テキストエディタがプログラムを書いている最中に、エラーだろうと思われる構文を見つけたときにさり気なく教えてくれたら生産性が著しく向上することも考えられます。 “Software is eating the world.“という言葉は、マーク・アンドリーセンの提唱した言葉です。まだまだ「い尽くす」ほどではないものの、徐々にその影響力は高まっていると感じます。ソフトウェアを開発する必要性が増すにつれて、ソフトウェアエンジニアも次第に求められていくことでしょう。そして、そのプログラマの仕事の大部分はデバッグに費やされます。 バグや構文エラーを自動検知するシステムがテキス

    RNNでプログラミング言語の構文エラーを自動修復する衝撃
    sho
    sho 2017/06/15
    いいぞいいぞー、人間がやらんでいい仕事はどんどんやってくれたまえ!
  • 突如パソピアIQを手に入れたJKが突如twitterに現れたオッサンからMSX-BASICを教わってゲームをプログラミング

    Shuhei Miyazawa @room_909 突如パソピアIQを手に入れたJKが突如twitterに現れたオッサン(僕)からMSX-BASICを教わってゲームプログラムを入力する2017年5月。楽し過ぎてずっと笑ってる。素晴らしい。 twitter.com/butai_nunoshi/… 2017-05-25 01:09:59

    突如パソピアIQを手に入れたJKが突如twitterに現れたオッサンからMSX-BASICを教わってゲームをプログラミング
    sho
    sho 2017/05/26
    涙で前が見えなくなるくらい嬉しい話だった。原点。
  • プログラミングフォント Myrica

    プログラミング用フォント Myrica Myrica (ミリカ)は、フリーなプログラミング用 TrueType フォントです。 視認性、判別性 が高くなるように、複数のフォントファイルを元に合成/修正しました。 フォントの特徴 多くの特徴をプログラミング用フォント Ricty から継承しています。 ASCII文字は「Inconsolata」が適用されます。 それ以外の文字には「源真ゴシック」または「Mgen+」が適用されます。 半角文字と全角文字の横幅の比が 1:2 に調整されています。 視認性の高い日語文字 (半濁音など) が使用できます。 Rictyにない特徴 以下の文字にはヒンティング情報がありますので、Windowsでもクッキリしています。 ASCII文字はヒンティング付きの Inconsolata から、ヒンティング情報を継承しています。 平仮名と片仮名にもヒンティング情報を付

    プログラミングフォント Myrica
    sho
    sho 2017/01/05
    これに乗り換えようかな
  • プログラミング力向上のコツ - みんなのPython第四版のオマケ | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 みんなのブロックチェーンは,ブロックチェーンの入門書。暗号やハッシュなどを含め,基礎からブロックチェーンの仕組みを学べる書籍です。 いろんな方に「新しい技術を学ぶことの楽しさ」を感じ取ってくれたら著者として嬉しいです:-)。お金技術的にどのように定義されるのか。 みんなのIoTは,モノのインターネットと呼ばれるIoTの入門書です。IoTの基について,読者に寄り添って優しく解説しました。裏テーマは一番とっつきやすいPython入門書。サポートページはこちら みんなのPython 第四版は,より分かりやすい入門書を目指し,機械学習やデータサイエンスの章も追加して第三版を大幅に書き換えました。Python 3.6にも華

    sho
    sho 2017/01/05
    これはよいものだ。