タグ

プログラミングに関するyuyakkoのブックマーク (178)

  • 関数型プログラミング入門 | POSTD

    多くの関数型プログラミングに関する記事が教えてくれるのは、抽象的な関数型のテクニックです。つまり関数合成やパイプライン、高階関数などです。この記事では違います。ここでは、プログラマが毎日書く、命令型で非関数型のコードの例を示し、それを関数型の形式へ書き換えます。 最初のセクションでは、短いデータ変換のループを取り上げ、map関数やreduce関数に書き換えていきます。2つ目のセクションではより長いループを取り上げ、ユニットに分解し、それぞれのユニットを関数型に書き換えます。3つ目のセクションでは、連続した長いデータ変換のループを関数型のパイプラインに分解します。 ここではPythonでの例を取り扱います。というのも多くのプログラマはPythonを読むのは簡単だと思っているからです。多くの例では、mapやreduce、パイプラインなどの多くの言語に共通する機能を例示するため、Python的な

    関数型プログラミング入門 | POSTD
  • JavaScriptだけでファイルの保存機能を実装する

    こんばんは。ファガイです。日はJavaScriptだけでブラウザのある情報のデータを保存する機能の実装方法について書こうと思います。 概要 ローカル上だけでファイルの保存ができるようになる方法になります。 自分が作っているMarkdown-F Editorはその機能を使って保存を実装しています。 今回利用する機能はHTML5の機能なので、ブラウザによっては実装されていない可能性がありますので、注意。 確認ブラウザ IE11 Firefox GoogleChrome にて確認を取ってます。IEに関しては独自関数を使っているため、前のブラウザでは対応されていない可能性があります。 ソースコード ソース自体は結構簡単です。 var text = "テキストデータ"; var blob = new Blob([text], {type: "text/plain"}); // バイナリデータを作り

    JavaScriptだけでファイルの保存機能を実装する
  • 決めようぜ最高のプログラム言語を綱引きで :: デイリーポータルZ

    PHPがdisられる時代は終わった~っ! いくぜおまえら~!」「PHP!」「PHP!」(PHPはこの後一回戦で敗退しました) さる2015年1月29日。横浜大さん橋ホールで行われたエンジニア勉強会イベント「CROSS 2015」にて「第一回 プログラム言語対抗綱引き」が行われた。 コンピュータの世界を支えるプログラム言語がその至高性を競い腕力でぶつかる、言語間戦争に決着をつける大会である。 40人の勇者(プログラマー)により死闘を繰り広げたのはC、PerlPHPPythonRubyJavaScriptGoJava。 結果、Goの圧倒的勝利で幕を閉じたのだった。あらためて記事でその全貌をレポートしていこう。 知ってた? 綱引きの掛け声の「オーエス」ってあれ、「OS(オペレーションシステム)」のことなんだぜ? 英語版もご用意しております! English article↓↓↓

  • キトー君の悪い口コミ・失敗談と効果・販売店舗情報・安全と危険性・代用自作方法

    キトー君で真性包茎対策ができてしまいます。 包皮を引っ張ることで矯正できてしまうんですよ。 包皮輪狭窄の方も皮を伸ばすことでだんだんと広がっていきます。 テレビや雑誌でも紹介され多くの方が悩みを解決していますのでおすすめです。 そんなキトー君なのですが当に真性包茎・カントン包茎に効果があるのでしょうか?矯正できるのでしょうか、使い心地や評判が気になりませんか?そこで口コミを調べたら失敗談などの口コミが見つかりました。

    キトー君の悪い口コミ・失敗談と効果・販売店舗情報・安全と危険性・代用自作方法
  • DDDで設計するならCQRSの利用を検討すべき - Qiita

    タイトルに書かれていることで全てなのですが、DDDとCQRSの併用について強調している日語の情報が少ないので、軽くまとめておきます。 CQRS+DDD CQRS(コマンドクエリ責務分離)とは、サーバの機能を「コマンド」(副作用あり)と「クエリ」(副作用なし)で完全に分けちゃおう、という考え方です。そもそも「コマンド」と「クエリ」ではあらゆる要件が異なります。 一貫性: 「コマンド」は整合性のある処理が必要、「クエリ」はあまり気にする必要なし ストレージ: 「コマンド」側は正規化してデータを保存したい、「クエリ」側は非正規な方が効率的 スケーラビリティ: 「コマンド」は全体の負荷の中で占める割合が少ない、「クエリ」は負荷が大きい なので分けちゃうわけですが、 コマンド側 複雑なビジネスロジックが絡むので、ドメイン駆動が活躍 クエリ側 複雑なビジネスロジックがないので、ドメイン層はスキップ

    DDDで設計するならCQRSの利用を検討すべき - Qiita
  • 21st Century C, 2nd Edition

    21st Century C, 2nd Edition C Tips from the New School Book Description Throw out your old ideas about C and get to know a programming language that's substantially outgrown its origins. With this revised edition of 21st Century C, you'll discover up-to-date techniques missing from other C tutorials, whether you're new to the language or just getting reacquainted. C isn't just the foundation of mo

    21st Century C, 2nd Edition
  • 就職面接でプログラムの解読を求められた! | POSTD

    長文ですが、よかったら読んでください。 就職面接でプログラムの解読を求められました。そして、就職が決まりました。 皆さん、こんにちは。新しいブログを開設したので、私は今とても張り切っています。週に何度か記事を投稿するつもりです。 タイトルを見れば大体の話の内容は分かると思いますが、これから書くのは、トルコのアンカラで受けた就職面接の話です。 私が応募した職は「ソフトウェアセキュリティエンジニア」でした。面接中、面接官たちは非常に専門性が低い質問をしてきましたが、分かることもあれば分からないこともありました。 その後、その企業からメールが届き、保護および暗号化されたバイナリファイルが添付されていました(「解読してみろ」ということでしょう)。 帰宅後にファイルをダウンロードすると、ファイルを開くために聞かれたのはパスワードだけでした。面接官が私に課した課題は、そのパスワードを探すことでした。

    就職面接でプログラムの解読を求められた! | POSTD
    yuyakko
    yuyakko 2014/11/15
    このスキルを仕事で使う場面が思い浮かばない
  • 古いプログラミング言語がなくならない理由 | readwrite.jp

    今日よく知られているプログラミングの多くは、古い言語として取り上げられるに十分な歴史を持っている。PHPは20年、Pythonで23年、HTMLは21年で、RubyJavaScriptは19年だ。Cなどは42年もの歴史がある。 誰もこの様な事になるとは思いもしなかっただろう。今でも出版されている、世界で最初のCの教の共著者であるコンピューターサイエンティスト、ブライアン・カーニハンですらだ(C自体は同じの共著者であるデニス・リッチーによるものだ。彼は2011年に亡くなっている)。 「編集者とこのを5000部売れたらなという話をしたのをなんとなく覚えている。もっといいものにも出来たが、学生が2014年になってもあのを使っているなど考えもしなかったことだ」と、カーニハンは最近のインタビューで答えてくれた。 Cがあまりに長く使われていることから、グーグルが今でもCを使って解決する問題を

    古いプログラミング言語がなくならない理由 | readwrite.jp
  • dfltweb1.onamae.com – このドメインはお名前.comで取得されています。

    このドメインは、お名前.comで取得されています。 お名前.comのトップページへ Copyright © 2020 GMO Internet, Inc. All Rights Reserved.

    dfltweb1.onamae.com – このドメインはお名前.comで取得されています。
  • 基幹システム プログラマー不要 富士通がソフト、開発費4割減  :日本経済新聞

    富士通は金融機関や企業の基幹システムの開発を大幅に簡素化する支援ソフトを開発した。手掛ける業務の内容を日語の一定の書式で入力すれば、コンピューター用のプログラム言語に自動変換する。システム開発費の4割を占めるプログラミング費用が不要になり、システムの保守も容易になる。IT(情報技術技術者不足にも対応、5年で100億円の売り上げを目指す。システムを動かすソフトは、コンピューター専用のプログラ

    基幹システム プログラマー不要 富士通がソフト、開発費4割減  :日本経済新聞
    yuyakko
    yuyakko 2014/08/28
    また新しいプログラミング言語が増えるよ。やったね。
  • fork()は失敗するんだぜ、覚えときな

    fork() can fail: this is important あー、fork()のことね。プロセスがもっとプロセス作るためのやつな。いや、他にもプロセス作る方法はあるけどな。ま、面白い話がもうひとつあるから聞かせてやるよ。 forkは失敗するんだぜ。分かってるか? マジで分かってるか? マジだぜ。forkは失敗するもんだ。mallocと同じさ。失敗することもある。そんなに頻繁にってわけじゃないけどさ、でも失敗したら、無視できっこないぜ。ちっとは脳みそ働かせなきゃならん。 forkが0を返したら、そいつは子プロセスで、親なら正数を返すってことは、みんな知ってるよな。その値は子のpidだ。こいつを保存しといて、あとで使うってわけだ。 失敗を確認しない場合どうなるか知ってるか? そうだよ。お前多分、"-1"(forkのエラー通知)をpidとして扱ってるんだろ。 さて、問題の始まりだ。

  • intro-to-aop

    複雑なアプリケーションではロギング、 トレーシング 、メトリクスといったサポートの機能により、関数にすぐ負荷がかかってしまいます。これらのコードブロックはあらゆるコードベース上でそれぞれ少し変形して繰り返し使用されるのですが、これを 横断的関心事(cross-cutting concerns) と言います。 アスペクト指向プログラミング (AOP)は、アスペクトと呼ばれるモジュール内にコードブロックを引き入れて、 関心の分離 (separation of concerns)を手助けします。 AOPの実装 Phoneクラス ^(1) 不自然な例だというのは承知の上で、 dial メソッド1つを使って簡単なPhoneクラスを構築してみました。 function Phone() {}; Phone.prototype.dial = function (friend) { var start =

    intro-to-aop
  • すべてのプログラマが読むべき記事10選 | POSTD

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

    すべてのプログラマが読むべき記事10選 | POSTD
  • constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ

    constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ

    constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
  • SwiftのArrayがヤバイ - Qiita

    (2015.11.18に追記) 「Swift List」 で検索するとこの投稿にたどり着いてしまいますが、関数型言語でいうところのリストをお求めの方は "Swiftでhead、tailにパターンマッチできる遅延リスト" を御覧下さい。 (2014.7.24に追記) SwiftのArrayの新仕様(beta 3以降)がヤバイどころかすばらしいのでまとめました 。 (2014.7.10に追記) SwiftのArrayがヤバくなくなりました。 投稿に書かれているのはbeta 2までの古いSwiftについての情報ですのでご注意下さい 。beta 3以降では次のような挙動となり、値型としてごく自然な挙動になりました。 var a = [11, 22, 33] var b = a a[0] = 777 // b[0]は777にならない a.append(44) a[0] = 888 // b[0]は

    SwiftのArrayがヤバイ - Qiita
    yuyakko
    yuyakko 2014/06/22
    要素に代入した時点でコピーされて欲しいな
  • CoffeeScriptを使う理由 - Qiita

    function Person() { this.name = "takashi"; this.age = 20; }; Person.prototype.echo = function () { return "Hello " + this.name + " !!"; }; コンストラクタ、メソッドを書いただけで、コード量が増えてきましたね。 毎回クラス名とprototypeと書く必要があります。 めげてきましたか? 私はめげてます。 次は継承してみましょう。 function inherits(ctor, superCtor) { ctor.super = superCtor; ctor.prototype = Object.create(superCtor.prototype, { constructor: { value: ctor, enumerable: false, writ

    CoffeeScriptを使う理由 - Qiita
  • MVCの先、状態管理、ジェスチャー

    わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~

    MVCの先、状態管理、ジェスチャー
  • 平方数かどうかを高速に判定する方法 - hnwの日記

    平方数とは、ある整数の平方(=二乗)であるような整数のことを言います。つまり、0,1,4,9,16,...が平方数ということになります。 ところで、与えられた整数が平方数かどうかを判定するにはどうすれば良いでしょうか。与えられた整数の平方根の小数点以下を切り捨て、それを二乗して元の数になるかどうか、というのがすぐ思いつく実装です。 <?php function is_square($n) { $sqrt = floor(sqrt($n)); return ($sqrt*$sqrt == $n); } しかし、平方根の計算は比較的重い処理です。もっと高速化する方法は無いのでしょうか。 多倍長整数演算ライブラリGNU MPには平方数かどうかを判定するmpz_perfect_square_p関数が存在します(PHPでもgmp_perfect_square関数として利用できます)。稿ではこの実装

    平方数かどうかを高速に判定する方法 - hnwの日記
  • Stack Overflow日本語版開設へ、バイリンガルのコミュニティマネージャ募集中!

    コンピュータエンジニアのコミュニティとして最も有名なWebサイトの1つ「Stack Overflow」。元マイクロソフトのプログラマで、書籍「Joel on Software」などでも知られる著名なプログラマであるジョエル・スポルスキー氏が立ち上げたこのWebサイトが日語版の開設を準備中であることが明らかになりました。 昨日4月30日に行われたイベント「QCon Tokyo 2014」のセッション「The Architecture of Stack Overflow」に登壇したSoftware Developer Stack OverflowのMarco Cecconi氏は、セッションの最後に「日語版のStack Overflowを開設します! コミュニティマネージャになりませんか?」と書かれたスライドを映しました。 セッション後、Cecconi氏に詳細を尋ねたところ、日語版の開始時

    Stack Overflow日本語版開設へ、バイリンガルのコミュニティマネージャ募集中!
  • スパコンで約2時間36分かかったという、5×5の魔方陣の全解列挙を、パソコンで試す(C ) | 配電盤

    魔方陣の解の列挙は並列化しやすそうな問題ですが、ここでの方針では、探索効率を上げるためには条件分岐が不可欠なので、(「数」を求めるだけだとしても)GPGPUでうまくやる方法がわかりません。そこで、CPUに載っているコアのみで並列化します(Xeon Phiなら簡単なのでしょうか→追記参照)。 一番外側の、0から(1<<25)-1まで変化する変数iのループをOpenMPで並列化します(schedule(guided)では遅くなります。schedule(auto)はVisual C++でサポートされたら試します)。変数iは上の図の緑の部分(カンで5個にしました)を各数5ビットで表現し、つなげたものです。マスに入りうる数は1から25までなので、5ビットというのはちょっと冗長ですが、とりあえずはよしとしましょう。 出力はバイナリ形式で、1つの解に25バイト使います(1つのマスに入る数を1バイトで表現

    スパコンで約2時間36分かかったという、5×5の魔方陣の全解列挙を、パソコンで試す(C ) | 配電盤
    yuyakko
    yuyakko 2014/03/18
    アルゴリズムの大切さ