タグ

programmingに関するkiyo_hikoのブックマーク (79)

  • 書評: 並行プログラミング入門

    まえがき オライリーから発売される「並行プログラミング入門」が若干早く入手できました。せっかくなので、紹介とか感想を書いてみようかと思います。結論だけ先に書いておくと、並行/並列プログラミングに興味があるなら買いましょう必ず役に立ちます。 どんな? このは、大学のOSの授業とかで習うような並行/並列プログラミングの基礎を網羅的に扱っている素晴らしいです。それだけに留まらず近年利用されているような幅広い技術に関する発展的な内容まで広く扱っています。 どんな人におすすめ? 並行/並列プログラミングの基礎が学びたい人 ロックなどの基礎技術の実装例について学びたい人 Rustを使った並行/並列プログラミングについて学びたい人 並行/並列プログラミングの計算モデル(意味論など)について学びたい人 ロックフリー、STM、async/awaitといった最新の技術について学びたい人 書籍の紹介 この

    書評: 並行プログラミング入門
  • 書評:並行プログラミング入門 - Software Transactional Memo

    TL;DR 並行処理を実装する人のこれからのスタンダードになる一冊。買い。 並行プログラミング入門 ―Rust、C、アセンブリによる実装からのアプローチ 作者:高野 祐輝 オライリージャパン Amazon 買ったら思いの外早く届いたのでパラパラと読み始めたら一気に読み終えてしまった。 総評 敢えて雑な喩え方をするなら The Art of Multiprocessor Programming (通称TAoMP) の内容を薄めてRustやアセンブラや計算モデルを足したようなだった。 日語の書籍としてはかなり珍しくWait-Free, Lock-Free, Obstruction-Freeの違いなどを適切に論じており、TTAS Lock, MCS Lock, TL2といった日語では希少な情報が書かれているレアなである。これらに付いて論じている日語のは知る限り (TAoMPと昔僕

    書評:並行プログラミング入門 - Software Transactional Memo
  • 全ての開発者が学ぶべき5つの言語 - Qiita

    「どの言語を学ぶべきか」という議論はエンジニア向け記事の定番ネタですが、HackerNoonに投稿された5 Programming Languages Every Master Developer Should Learnという記事がなかなか興味深かったので翻訳してみました。 (2018/11/04追記) こちらの記事に関する「別視点からの意見」として下記のような記事を追加いたしました。宜しければこちらも併せてご参照ください。 Ruby->Go->Scalaという習得順序がエンジニアの爆速の成長に最適である理由 はじめに 「プログラマーは新しい言語を毎年1つは習得するべきだ」という趣旨の文章をどこかで読みました。(多分CODE COMPLETEだったと思いますが) もしそれが難しくても、キャリアの中で最低限この後に紹介する5つの言語に通じておくことをお薦めします。 あらゆる会社は、多言語を

    全ての開発者が学ぶべき5つの言語 - Qiita
    kiyo_hiko
    kiyo_hiko 2020/12/21
    Cを最初期にやった人って無益な変数の前方宣言してみたり、bufとかflgとかよくわからん変数名使いがちなイメージある。
  • デバッグの基礎

    デバッグは、 正しくないプログラムと、 正しく書いたと信じているプログラマとのずれを見つける作業であり、 プログラム作成における最も難しい段階である。 特に、 プログラムを作成してしばらくしてから バグが見つかった場合には、 ソースコード(とドキュメント)のみが拠り所となるので、 デバッグは困難を究める。 そんなわけで、現実のソフトウェア開発では デバッグしやすい(=保守が行ないやすい)コードを書くことが、 「とりあえず動く」コードを書くことよりも優先する。 (動かなくても保守しやすいコードは直すことができる。 とりあえず動くが保守できないコードは担当者が代わったら捨てるしかない。) なお、不幸にしてプログラマの意図していることが、 そもそも問題解決の手法として誤っていた場合には、 どんなにプログラムが意図通りに記述されていても、正しく動かない。 これは、コーディング前のアルゴリズム設計が

    kiyo_hiko
    kiyo_hiko 2020/10/27
    コメントのくだりは人に説明するのに特にいい。説明する機会ないけど
  • Font AwesomeとJavaScriptでシューティングゲーム(その1) - Qiita

    これは scouty Advent Calendar 2018 の11日目の記事です。 2018/12/18追記: 続きができました。 Font AwesomeとJavaScriptでシューティングゲーム(その2) はじめに Font Awesomeのサイトを眺めてたらゲームで使えそうなキャラクターがいっぱいあるなあと思ったので作ることにしました。 今回は、シューティングゲームを作ります。まずベタ書きで作ってみて、それをクラス化するところまでやります。 面倒だったので最初は慣れているjQueryを使っていますが、後ほどバニラなJavaScriptに書き換えます。 GitHubリポジトリ: https://github.com/naga3/font-awesome-shooting アジェンダ ベタ書きでとりあえず作る クラスを使って整理する jQueryの使用をやめる ベタ書きで作ってみる

    Font AwesomeとJavaScriptでシューティングゲーム(その1) - Qiita
  • ヨーダ記法 - Wikipedia

    この記事には参考文献や外部リンクの一覧が含まれていますが、脚注による参照が不十分であるため、情報源が依然不明確です。適切な位置に脚注を追加して、記事の信頼性向上にご協力ください。(2016年8月) ヨーダ記法(ヨーダきほう、Yoda notation)またはヨーダ条件式(ヨーダじょうけんしき、Yoda conditions)とは、プログラミングにおけるジャーゴンのひとつで、If文などの条件式において比較するふたつの要素を一般的な順序と逆に記述するプログラミングスタイルをいう。ヨーダ記法では条件式の左辺(比較演算子の左オペランド)に定数を配置する。 映画『スター・ウォーズ』シリーズの登場人物・ヨーダが、標準的ではない英語の文法で話すことに由来する。 ヨーダ記法はWordPress[1][2]やSymfony[3]のPHPコーディング標準の一部に採用されている。一方、CakePHPのコーディン

    kiyo_hiko
    kiyo_hiko 2018/10/30
    ヨーダ条件式って呼び方かっこいい
  • ヨーダ記法とは|定数を左辺に記述するメリットと流行らない理由

    ヨーダ記法の例 if (0 > less); if (-1 != state); if (UTF8 == enco); if (this == *obj); if ("Bob" == name); if (NotFound != find()); if (false === this.isapen()); while (null != (line = read())); if (Destroy == willOfForce(we)) free(sith); return '\n' == ch || '\r' == ch; return Strong == vader->force; return E == m * pow(c, 2); assert(Blue == sky); ヨーダ記法のそれは要するに「B は A である」という文であり、日常生活でよく使われる「A は B である」とは大

    kiyo_hiko
    kiyo_hiko 2018/10/30
    ヨーダ記法という名前を知った。この記法と、この記法に何ひとつ疑問感じない人を心から憎んでいる。
  • 小中でプログラミング必修に…政府の新成長戦略 : 政治 : 読売新聞(YOMIURI ONLINE)

    社会のIT(情報技術)高度化を支える人材育成が柱で、次期学習指導要領が始まる2020年度からコンピューターのプログラミング教育を小中学校で必修にするほか、外国人の専門家が日に永住しやすくする。日が官民一体で取り組む10分野を具体的に掲げ、政府が目標とする20年頃の名目国内総生産(GDP)600兆円の実現を図る。 新成長戦略は、19日に開く政府の産業競争力会議(議長・安倍首相)で公表する。少子化でも経済成長を続けるため、ビッグデータや人工知能(AI)などを駆使する人材を育てて、生産性を高めることを目指す。 プログラミング教育としては、小学生には興味を持ってもらうための体験学習を、中学生にはホームページの作成などを想定している。産業界には、教材の開発や講師の派遣などで協力を求める考えだ。

    小中でプログラミング必修に…政府の新成長戦略 : 政治 : 読売新聞(YOMIURI ONLINE)
    kiyo_hiko
    kiyo_hiko 2016/04/17
    どうせならPrologやろう。閉世界仮説とかホーン節説明可能な説明可能な小学生マジwelcome // ○○はemmet使っててずるいとか見れるのかな
  • お子さま向け「プログラミング教室」、習い事“新定番”に <株探トップ特集> | 特集 - 株探ニュース

    2016年03月27日15時00分 【特集】お子さま向け「プログラミング教室」、習い事“新定番”に <株探トップ特集> ―拡大するビジネスチャンス、サイバー子会社は3000教室展開へ― 子供の習い事で「プログラミング教室」が新たな定番となっている。文章の読み書きや計算などと同じように、子供のうちに身につけておく基礎的な能力と考える親が増えているほか、「情報資源立国」に向けた国をあげてのIT人材育成という側面からもニーズが高まっている。盛り上がるプログラミング教育の需要を取り込もうとIT関連企業を中心に、さまざまな企業がカリキュラムを用意して子供の囲い込みを始めている。 ●IT人材不足で育成急務 プログラミングとは、コンピューターを動かすためのプログラムを作ること。この過程で論理的思考力や発想力、問題解決力が養われるといわれる。こうした能力の向上に関心が高まっている理由のひとつが、文部科学省

    お子さま向け「プログラミング教室」、習い事“新定番”に <株探トップ特集> | 特集 - 株探ニュース
  • プログラミング未経験者がWEBエンジニアになるためにやるべきこと

    最近よくプログラミング未経験の方から、これからエンジニアとしてやっていきたい、もしくはそこまでいかなくても自分でプロダクトを作れるようになりたいけど何からやったらいい?っていう相談を受けるようになってきました。個別に色々話を聞きつつこれやってみたら?っていうリンク送ったりはしてたんですが、その人たちにとっての大まかな地図的な意味でも、(「これ見といて」って自分が楽するためにも、)未経験者の人におすすめする学習教材をまとめてみました。 参考事例 ぼく自身ゼロからエンジニアを育て上げた経験があるわけではないので、先人の事例に学べることは学ぼう、かつこうやって伸びた人がいるんや!っていう人のモチベーションになったらいいな、ということで紹介します。 リブセンスさん リブセンスさんの、非エンジニアを1ヶ月でエンジニアに育て上げる話、かなり強烈でしたね。フルコミットでかつ桂さんという突出したメンター

    プログラミング未経験者がWEBエンジニアになるためにやるべきこと
  • オンラインコース - いろんなことを、あなたのペースで | Udemy

    Udemyは、学びたい人、教えたい人のためのオンラインのマーケットプレイスです。プログラミング、マーケティング、データサイエンスなど、213000以上のコースを6,200万人の受講生が学んでいます。

    オンラインコース - いろんなことを、あなたのペースで | Udemy
    kiyo_hiko
    kiyo_hiko 2015/07/20
    プログラミングとかまったくわからないので検討したい
  • 超初心者プログラミング入門は「何」をやるべきか、主にPHPの場合。 - Webアプリエンジニア養成読本 AdventCalendar2014 五日目 - uzullaがブログ

    Webアプリエンジニア養成読アドベントカレンダーです。 Webアプリエンジニア養成読 Advent Calendar 2014 - Qiita 前置き 稿はあくまで、何のプログラミング言語もわからない人に向けた文章です。 オチですが 特に最初はプログラミングが詳しい人に教わりつづけるのが一番速いです。 千のブクマ、100のウェブサイト、10冊のよりも、詳しい人は答えをくれる。 なぜなら、はあなたの状況を勘案してくれず、人はあなたの意図を想像してくれるからです。 しかしまあ、運良くそういった教えてくれる人が身の回りに居ないことがあります。というか、居れば悩む事はないでしょう。 そうなるとコミュニティに参加して質問するか、あるいはコミュニケーションハードルが高いなら、やはり独習する事になるんですが、まあ、割と大変だ。さっさと覚えたいなら、さっさと聞ける人を見つけましょう。 しかし、思

    超初心者プログラミング入門は「何」をやるべきか、主にPHPの場合。 - Webアプリエンジニア養成読本 AdventCalendar2014 五日目 - uzullaがブログ
    kiyo_hiko
    kiyo_hiko 2015/06/18
    初心者なので参考にしたい
  • JavaScript でオセロを実装する(原始モンテカルロAI編) | Webシステム開発/教育ソリューションのタイムインターメディア

    以前、オセロの対戦AIの作成しましたが、そこでは実装を簡略化する為に盤面の価値を 盤面の価値 = 自分の石の数 – 相手の石の数 という単純な方法で決めていました。 でも、これには問題があります。 同じ石でも配置場所によって価値は異なるはずです(例: 角は最強)。それが考慮されていません。ゲーム終盤になってくると石の数が重要になってきます。でも序盤から石の数を重視するのは方向性としておかしいです。 という訳で、 序盤から中盤では石の配置場所を重視する終盤では石の数を重視する 形で盤面の価値を算出すれば、結構良さそうなAIになりそうです。 しかし、今度は 「序盤」「中盤」「終盤」をどのように区別するのか?石の配置場所の強弱はどう決めるのか?同じ配置場所でも周囲の状況次第で強弱が異なるのでは? という問題が出てきます。これは作るのが面倒臭そうです。 どうにかしてお手軽かつそこそこ強そうなAI

    JavaScript でオセロを実装する(原始モンテカルロAI編) | Webシステム開発/教育ソリューションのタイムインターメディア
  • プログラマ好きのホモだけどエッチしない?

    私としたい人は、ブコメにプログラムへの想いをぶつけてね。 連絡するね☆

    プログラマ好きのホモだけどエッチしない?
    kiyo_hiko
    kiyo_hiko 2015/01/31
    やってると眠くなるあたりかな
  • レガシーコード改善の戦略と戦術

    自己紹介 name: 和田 卓人 hatena : t-wada twitter : t_wada github : twada レガシーコード改善コンサルティングも多いです

    レガシーコード改善の戦略と戦術
    kiyo_hiko
    kiyo_hiko 2014/11/12
    "シンプルさを貴ぶ"
  • プログラマーの理想と現実

    著者プロフィール tom 当社設立直後に入社して約30 年、UNIX の移植、日語化、デバイスドライバ開発、周辺機器ファームウェア開発などに継続的に携わり、現在も現役でUNIX 系OS の移植、改造などの開発業務を行う。社内でもっともプログラムを書いている人の一人。代表取締役社長。

    プログラマーの理想と現実
  • すべてのプログラマが読むべき記事10選 | POSTD

    Javaプログラマやソフトウェア開発者として、私は「プログラマが知っておくべき…」というタイトルが付く記事から、多くのことを学びました。そういった記事は、特定のトピックに関する有益かつ詳細な情報を数多く与えてくれましたが、探し出すのが非常に困難でもあったのです。知識を探求する中でとても役に立つ記事を見つけたら、参考として何度も読み返せるようにブックマークしてきました。こういった記事を読むことは、どのプログラマにとっても有益になると思うので、私が集めた「 すべてのプログラマが知っておくべきこと 」を皆さんと共有する為にこれを書きました。 ここで紹介する記事は私が個人的にブックマークしたものです。「メモリ」、「Unicode」、「浮動小数点演算」、「ネットワーキング」、「オブジェクト指向設計」、「時刻」、「URLエンコード」、「文字列」などといった代表的なトピックについて載っています。このリス

    すべてのプログラマが読むべき記事10選 | POSTD
    kiyo_hiko
    kiyo_hiko 2014/06/28
    事務屋だけど、一応読んどこう。
  • プログラミングって勉強していけば楽しくなるもの?それとも向き不向き? - OKWAVE

    いちおーSEやってます 最初に言って置きますが、CGIという名のプログラム言語は存在しません あくまでも、サーバーとクライアントのやり取りの方法を指し示す概念の名前です 質問文中に「私は最近HPデザインのためにCSSやjavaをちょろっと勉強しはじめた所ですが」と有りますが、この場合は「JavaScript」と解釈させていただきます。又、HTMLは一通り記述できるという前提でお話いたします 一応私は理系ではありましたが、他のスタッフの学歴を見ると文系も多くいます 経済学や法学やってたけどプログラマやってる人も多いですよ 参考書はあくまでも「参考」なんですよ 書いてあるソースをそのまま丸写しにして動いたとしても自分のものにはなりません しかも1冊だけだとそのでしか知識が得られません、最近はwebでも初心者向けの入門サイトもありますし、例題やサンプルもその場で動いているものを触ることも出来ま

    プログラミングって勉強していけば楽しくなるもの?それとも向き不向き? - OKWAVE
    kiyo_hiko
    kiyo_hiko 2014/01/23
    自分は楽しんでないことに気づいた http://cpplover.blogspot.jp/2012/05/60.html
  • Gradiusに関する4つの秘話 - やねうらおブログ(移転しました)

    コナミのグラディウス(1985年)は、私が学生のころ、ハマりにハマったゲームの一つで、非常に思い出深いものであるが、SNS全盛の時代に突入したせいか、過去のゲームについてツイートなどで関係者の証言を得やすくなってきたせいで、当時は気付かなかったことがわかるようになってきた。ゲーム史上、意味のある内容も多数あり、私の胸のうちにしまっておくにはもったいないので、ここに書き散らす。 ■ 1つ目 ザブは2秒前の自機を狙わない? 「ザブは出現後、2秒前の自機(のあった位置)に向かって移動する」というのは、当時ゲーメストでグラディウスの攻略記事を書いていためぞん一刻氏(スコアネーム)こと高見明成氏の記事にある。グラディウスの1000万点プレイヤーの間でも長らく信じられていたし、1000万点プレイヤーの一人である私も当然そう信じていた。 関連記事) 僕はグラディウスで頭がさらにおかしくなった http:

    Gradiusに関する4つの秘話 - やねうらおブログ(移転しました)
  • 200行で作る、enchant.jsを使った簡単ぷよぷよプログラミング - あのねノート。

    2013-08-24 200行で作る、enchant.jsを使った簡単ぷよぷよプログラミング やり方 はじめに この前enchant.jsでぷよぷよ by おっ立ち野郎を作って公開しました。 enchant.jsで作ったHTML5+JavaScriptな「ぷよぷよ」を公開しました これを知り合いR君に紹介したところ、嬉しい事に「僕もぷよぷよ作りたい!」といってもらえました。それでぷよぷよの解説サイトをネットで見つけて紹介しようと思いました。 しかし、テトリスの解説サイトは山ほどあるのに、ぷよぷよプログラミングの解説サイトが全然ありませんでした。特に完成まで解説しているサイトは見つけられませんでした。テトリスはあるのに。 ということで、今回ぷよぷよプログラミングの完成までの解説を書いてみました。これはenchant.jsの基礎をひと通り勉強された方におすすめです。クマをちょこちょこ動かすだけ