タグ

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

タグの絞り込みを解除

programmingに関するkirakkingのブックマーク (355)

  • 制御理論としての動的計画法 - Qiita

    はじめに:冷戦と動的計画法 動的計画法とは何でしょうか? いきなりですが、日語版Wikipediaを引用します。 動的計画法 - Wikipedia 動的計画法(どうてきけいかくほう、英: Dynamic Programming, DP)は、計算機科学の分野において、アルゴリズムの分類の1つである。対象となる問題を複数の部分問題に分割し、部分問題の計算結果を記録しながら解いていく手法を総称してこう呼ぶ。 おそらく、Qiitaを見る人の大半もこのような認識ではないでしょうか。 「あーなんかナップサック問題とか解くんでしょ? 表の数字を端から埋めていくやつ」 というイメージがあるのではないでしょうか(偏見)。 では次に、英語Wikipediaを見てみましょう。冒頭を日語訳します。 Dynamic programming - Wikipedia 動的計画法は、数理最適化手法ならびにコンピュ

    制御理論としての動的計画法 - Qiita
  • C++標準化委員会、ついに文字とは何かを理解する: char8_t - Qiita

    C++ Advent Calendar 2018 この記事はC++ Advent Calendar 2018 15日目の記事です。 14日目: VTKライブラリ 16日目: C++のエラー処理との付き合い方 当初見積もりよりも大幅に長い記事となり、投稿したのは12/22で1週間遅刻です。すみません。 お知らせ cpprefjpにchar8_t型追加について解説を書きました。ぎゅぎゅっとコンパクトに、また査読を受けて中立的な表現で書いていますので、よければどうぞ。 UTF-8エンコーディングされた文字の型としてchar8_tを追加 - cpprefjp C++語リファレンス 追記 全ての開発者が知っておくべきUnicodeについての最低限の知識 - GIGAZINE Unicodeについて簡潔にまとまってるいい記事を見つけました。 Caution この文章には以下の要素が含まれます。苦手

    C++標準化委員会、ついに文字とは何かを理解する: char8_t - Qiita
    kirakking
    kirakking 2018/12/23
    C++で作られたコンパイラの内部がUTF-8だったりするけど、地獄なんだろうな。
  • HaskellのMonadお気持ちチュートリアル - Qiita

    kirakking
    kirakking 2018/12/09
    用例から理解していくモナドチュートリアル(N回目)
  • Haskellにおいて遅延評価は諸刃の剣であり、注意すべきであるという話 - Qiita

    Haskellの特徴といえば遅延評価です。 しかしその遅延評価によってパフォーマンスの低下、もしくは不可解なコードに繋がることがあります。今回はそれらについて紹介したいと思います。 遅延評価とは すごいHによると、遅延評価というのは「結果が必要になるまで関数を実行しない。」という性質です。 例としては以下のものが挙げられます。 これは無限のリストから100個要素を取り、それらの合計値を算出しています。通常であれば無限のリストを渡せばそれを完全に評価しようとするためにプログラムが止まってしまいますが、Haskellは遅延評価のおかげでその心配がありません。 しかしその「必要になるまで関数を実行しない」ということが問題になることがあります。 パフォーマンスの低下 (遅延Map vs 正格Map) HackageのData.Mapのページには冒頭にて以下の注意書きが記載されています Note:

    Haskellにおいて遅延評価は諸刃の剣であり、注意すべきであるという話 - Qiita
    kirakking
    kirakking 2018/12/08
    分かりやすかった。"FPComplete - All about strictness" 覚えた。
  • マルチプラットフォームで利用可能なOpenJDKのAmazon Correttoが発表されました! | DevelopersIO

    マルチプラットフォーム(ubuntu、RHEL、WindowsMacOS)対応のLTSがついたOpenJDK互換のJavaリリースのアナウンスです! しばらく前に、Amazon LinuxでのJavaのLTSが発表され大きな話題となりました。 Amazon LinuxでのJavaのLTS (Long-Term Support)提供について 「ほぇー、AWSもやりおるやんけ!!」と感慨にふけっていたら、それの100倍ぐらい衝撃的なニュースが、Javaの神様James Goslingのツイートで飛び込んできました。 Just announced #amazon #Corretto at #devoxx. It is our distribution of OpenJDK. https://t.co/09cuPEqnex — James Gosling (@errcraft) 2018年11月

    マルチプラットフォームで利用可能なOpenJDKのAmazon Correttoが発表されました! | DevelopersIO
  • 今後必要になるプログラム言語

    今後必要になるマスター言語 JAVA RUBY C++ PL/SQL JAVA JAVAアプレット JAVAサーブレット JAVAscript この3つのうちJAVAServletおよびJavaScriptは必須。 条件としてJavaBeansについて的確な知識があり、自分で設計取り回しができるレベル。 JavaBeansの設計とは、JAVA言語特有の空間的なソースやデータの配置を把握してることが条件なので、システムエンジニアへの質問もしくは仕様理解に努めること。 国内外問わずシステムのシェアはWINDOWS主体でありほぼJAVAで統一されている。 さらに動的HTMLなどについてもJAVAサーブレットの知識が流用される。 JavaScriptの知識については特に必要ないがBeansその他に直結するケースが多いので仕様確認。 RUBY この言語についてはJAVAのサブルーチンとしての位置づけ

    今後必要になるプログラム言語
  • 「Hello! インディー」第14回 パズル感覚でプログラミング!『セブン・ビリオン・ヒューマンズ』 | トピックス | Nintendo

    Hello! SOEJIMAです。 今日はプログラミングをテーマにしたゲーム『セブン・ビリオン・ヒューマンズ』を紹介します! プログラミングってなんだか難しそうなイメージがありますよね?でも、このゲームは、プログラミングの知識がなくてもパズル感覚で楽しめて、かつ自然とプログラミングの考え方が学べてしまうんです!

    「Hello! インディー」第14回 パズル感覚でプログラミング!『セブン・ビリオン・ヒューマンズ』 | トピックス | Nintendo
    kirakking
    kirakking 2018/10/31
    Tomorrow Corporation がインタビューされてる。相変わらずのセンス。
  • Ctrl-[ が Esc になる理由 - Humanity

    理由 SHIFT キーはキーコードを -0x20、CTRL キーはキーコードを -0x40 する機能 全文 vim-jp.slack.com の #random から。 heavenshell [10:08 AM] TouchBar MBP にしたら強制的に C-[ になるので、オススメです!ようやく矯正できた。 mattn [10:09 AM] 人間の方が最適化されている yoshitia [10:12 AM] Escが物理的にない状況用にデフォルトでCtrl-[ 用意してるのすごい mattn [10:14 AM] いや、用意した訳ではないです。 SHIFT キーはキーコードを -0x20、CTRL キーはキーコードを -0x40 する機能なのです。 なので `[` つまり 0x5b は 0x1b になる。 0x1b = ESC 同様に CTRL-H は H が 0x48 なので 0x

    Ctrl-[ が Esc になる理由 - Humanity
    kirakking
    kirakking 2018/10/05
    (使ってたけど理由まで知らなかった)へー。/しかも man 7 ascii したら Char の列に対応するアルファベット書いてあった(Ubuntu 18.04)。
  • TheAlgorithms/Python: All Algorithms implemented in Python

    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

    TheAlgorithms/Python: All Algorithms implemented in Python
  • 一人CSアドベントカレンダー開催のお知らせ

    これは一人Computer Scienceアドベントカレンダー 1日目の記事です。 概要的なもの 「一人アドベントカレンダーって面白そうだな、やってみたい」みたいなノリで登録したんですが、 25日毎日記事を同じテーマで投稿し続けるのどう考えてもめっちゃ大変なのでやはりここは自分が一番得意な分野で行くしかないかなとなりCS関係ということになりました。 上のQiitaのページでも書いてますが、キーワードとして"ラムダ計算・定理証明・Haskell・ML・圏論 とかなんかそのへん"を挙げていますので そのへんのお話になります。今のところは無難に定理証明を中心にテーマをいくつか選んでおいたので多分そのへんの話です。 スケジュール 最終的にはQiitaのカレンダー見ればわかることなんでいいんですが一応今後どういう感じで進めていくのかのスケジュール的なものをまとめておきます。 Isabelle編 Is

  • Vim を WebAssembly に移植した - はやくプログラムになりたい

    久々のブログです. 6月ぐらいにWebAssembly の仕様をざっくり読んだので,なんか WebAssembly でやりたいなと思って,VimWebAssembly に移植してブラウザで動くようにしてみました,という話です. github.com 多分実物を見ていただくのが一番早いので,下記のリンクにアクセスしてみてください. デモページはこちら(下記の注意事項を先にお読みください) 注意 デスクトップ版の Chrome か Firefox か Safari か Edge を使ってください.どうやら macOS では Safari が一番動きが良いです. デモページは全部で1MBほどのリソースを fetch します.モバイルネットワークなどからアクセスする場合はお気をつけください. keydown でキー入力を取っているので,キー入力を横取りするブラウザ拡張などが有効になっていると

    Vim を WebAssembly に移植した - はやくプログラムになりたい
  • F*(F Star)の複雑な型システムの何が嬉しいのか? - Amosapientiam

    マイクロソフトが開発中のF* という依存型プログラミング言語を少し触ってみました。 この言語には強力で複雑な型システムが組み込まれています。 現状、依存型言語は世間にはあまり広まっていませんので F*とは? 複雑な型ってなんだろう? 複雑な型システムを組み込んで何が嬉しいんだろう? 何が嬉しくないんだろう? と疑問をお持ちになる方も多いだろうと思います。 この記事ではF*で使われている複雑な型の一部と、複雑な型を持つことの利点・欠点の一部を述べ、それを簡単なコード例を通じて体感してみます。 疑問に対する答え F*とは? マイクロソフトと Inria が開発中のプログラミング言語です。 依存型や monadic effect などが組み込まれており、複雑な仕様が型で表現できます。構文は OCaml や F#などのML系関数型言語に似ています。 詳しくは下記のリンクたちを参照。 F* (プログ

    F*(F Star)の複雑な型システムの何が嬉しいのか? - Amosapientiam
    kirakking
    kirakking 2018/07/08
    数学的厳密さをプログラムに持ち込める == プログラミングと仕様検証のフェーズを融合できる。
  • Vim Is The Perfect IDE

    This article was originally published in HackerNoon Over the years I've jumped back and forth between many code editors, IDEs and tools; but it seems that somehow I always end up coming right back to VIM, and not only for programming – guess which markdown editor I'm using to write this post. I've have tried Atom, SublimeText, TextMate, Eclipse, Visual Studio, and most of the Jetbrains products, I

    Vim Is The Perfect IDE
    kirakking
    kirakking 2018/06/12
    vim + tmux でいまのところ十分。
  • Tau Prolog: A Prolog interpreter in JavaScript

    Paste your program in the box in the left and type a Prolog goal below. When you press ENTER on the goal textbox, the interpreter will read the goal and try to find a computed answer, showing the result here. If you press ENTER again (to keep looking for answers), the interpreter will continue looking from the last choice point. Look at built-in predicates and modules supported by Tau Prolog. ISO

  • 私と型システムとポエム

    最近巷では俄に型システムについての言及が増え、型システムポエマーが増えてる気がするので自分もその時流に乗りたい。 完全にポエムだけどなんかあったら随時指摘ください。直します。 TL;DR 言いたいことはまとめると次 型システムは程度問題なのでちょうどいいところを探すべき 型は万能でも強さが正義でもない(だから未だに研究されてる) よく知りもしないくせに計算機科学を侮辱するのはやめろ 予防線 あくまでポエムですので中身はないです 私は型理論専攻で学位はとったものの研究者ではないのであまり信用しすぎないように 型システムの過去 型システムは大まかに次のような利点があるとされてきた(個人的主観) 「異常」なプログラムを検出する仕組み 静的解析による分かりやすいエラーメッセージ 型そのもののドキュメント性 IDEでのcompletionに貢献 最適化に貢献 (数学に正しく裏打ちされたsemanti

    kirakking
    kirakking 2018/06/03
    「依存型を導入することは定理証明をすることと紙一重である。まじで地獄なのでおすすめしない。」
  • Haskell Development

    Tips 完全なリビルド おすすめの開発方法 script interpreter + stack script でスクリプティング! config.yaml のよくある設定 ghc-options の推奨設定 HDD の容量が少なくなってきた時 最小のプロジェクト ファイル単位で ghc-options を指定する方法 カスタムスナップショットの紹介 namespaced templates プロファイルの取得方法 extra-deps に github の短縮形が指定できるようになります stack-2.1 から location に extra-dep を指定できなくなります アプリケーションのバックトレースを取得する cabal コマンドとの対応表 stack サブコマンド stack build stack test stack run stack exec stack clea

  • Makefileの書き方 - $ cat /var/log/shin

    まえがき その昔、Makefileの書き方という非常にわかりやすいMakefileの入門ページがあったのですが、seiichirou氏の卒業(?)とともにページが消えてしまいました。 私も大変お世話になったページだった、というかこれからもお世話になりそうなので、そこでWebArchiveから引っ張りだしてきたものを、はてな記法で書き直したものがこの記事になります。 元々自分用に書き直したのですが、せっかくなので公開してみます。 なので、以下の著作はseiichirou氏に帰属します*1。 Makefileの書き方 はじめに ここでは、Makefileの中でもGNU makeにかぎって説明します。 makeって何? ソースファイルを分割して大規模なプログラムを作成していると、コマンドでコンパイルするのが面倒です。また、一部のソースファイルを書き換えただけなのに全部をコンパイルし直すのは時間の

    Makefileの書き方 - $ cat /var/log/shin
  • Nintendo Labo : 発明する | Nintendo Switch | 任天堂

    Nintendo Switch『Nintendo Labo』の「発明する」のページです。

    Nintendo Labo : 発明する | Nintendo Switch | 任天堂
    kirakking
    kirakking 2018/03/15
    一人暮らしだしスルーかなと思っていたけど、プログラミングできるならガゼン欲しくなってきた。
  • コマンドラインツールを作るときに参考にしている資料 | SOTA

    コマンドラインツールについて語るときに僕の語ること - YAPC::Asia Tokyo 2014 コマンドラインツールが好きで昔からつくってきた. 今年のYAPCで,そのコマンドラインツールをつくるときにどういうことを意識して作っているのか?どのような流れで開発しているのか?といったことを語る機会をもらえた. 具体的な内容については,是非トークを聴きに来てもらうとして, スライドをつくるにあったって過去に読んだ資料や,よく参考にしている記事を集め直したので,その一部を参考資料としてまとめておく. UNIXという考え方 UNIXという考え方 Mike GancarzによるUNIXの思想や哲学をまとめた.古いが全然色あせてない. コマンドラインツールの作り方を書いたではないが,これらの思想の上で動くツールはこの思想に準拠して作られるべきだと思う.何度も読んで考え方を染み付かせた. 小さい

  • Haskell でのデバッグ手法あれこれ | 雑記帳

    プログラムにバグはつきものです。強力な型システムを備えている Haskell でもそれは同じです。この記事では、 Haskell プログラムのデバッグ手法をいくつか挙げてみます。 なお、使用している GHC は 8.2.2 です。より新しいバージョンで追加されるであろうより便利な機能は、この記事の対象外です。 【2018年2月8日 更新:-fexternal-interpreter, Control.Exception.assert, debug パッケージについて追記】 【2018年5月25日 更新:プロジェクトごとにPreludeを持っていると便利という話を追加】 心構え:処理を分割せよ Haskell は純粋な言語です。IOが絡まない関数であれば、同じ引数に対しては同じ結果が返ってくることが期待されます。 よって、処理を細かく(純粋な)関数に分割し、それぞれ GHCi で動作を確かめ