タグ

Programmingとprogrammingに関するbrendonのブックマーク (169)

  • 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
  • 【やじうまPC Watch】 シュワルツェネッガーのセリフでできたプログラミング言語

    brendon
    brendon 2014/06/20
    誰かこのセリフ言ってるとこ動画のまとめを作ってくれないかな。
  • PHPをインタラクティブに実行する PsySH

    PHPの関数やコード例の動作確認をどのように行っていますか? 最も基的な方法は変数や関数の戻り値を逐次、echoで出力する方法でしょう。 しかしこの方法では何度もコード編集と実行を繰り返す必要があり非効率です。デバッガやIDEの使用も解決策の1つですが、大げさすぎたりパフォーマンスの問題がある時もあります。 一方でRubyの世界を見てみるとirbやpryを使ってコンソール上でリアルタイムにコードを試す姿が一般的です。 今回はPHPで対話的なデバッグやコード実行を行えるPshSHを紹介します。 PsySH 従来の手法 php -a PHPには標準で対話シェルモードがPHP5.1以降から搭載されています。 しかしこの機能を利用するには--with-readline付きでPHPがコンパイルされている必要があります。 readlineが利用できない場合はインタラクティブシェルの変わりにインタラク

    PHPをインタラクティブに実行する PsySH
  • プログラマとお金

    https://note.mu/whynotgetrich/n/nd71f86a3e0cb に移行しました。

    プログラマとお金
  • ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習

    最近、あまりプログラミングが得意でない人のサポートをする形で、長い時間にわたってペアプログラミングを行っている。そのなかで、気がついた悪い習慣と成長するための良い習慣というものをまとめてみる。 この記事のバックグラウンドとなる体系的知識がになりました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング あわせて読みたい 経営者マインドが足りない!vs. 現場に任せてくれない!の対立をなくすカードゲームをつくった話 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習 あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ 心理的安全性ガイドライン(あるいは権威勾配に関する一

    ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習
  • デザインパターンの骸骨たち

    『デザインパターン』 うんちくできると、かっこよさそうだよね~。でもあんな分厚い読んでもピンとこないし、だいたいオブジェクト指向ってなに?なにが便利なのかよく分からんのだけど。いいじゃんなんでも。できればいいんだよ、できれば。 な~んて、思っていても、なんとなく オブジェクト指向が気になっている システム開発者は、多いのではないでしょうか?かくいう 私もそんな者の一人でした。 しかし、これだけ もてはやされているオブジェクト指向です。 なんか、便利なはずです。 そこで、私は、GOFのデザインパターン[1]を、できるだけシンプルに表現した、小さな小さなプログラム ~デザインパターンの骸骨たち~ を作ってみました。骸骨達 を骨の髄までしゃぶり尽くつくすせば、オブジェクト指向の真髄まで味わうことができるかも。!? 『デザインパターンの骸骨たち(RE-BONE)』 では、内容を大幅に見直し、Ja

  • 最初のiOSアプリがやっと完成しそう(その2):OAuth認証 - プログラミング雑記

    開始までの経緯 最初のiOSアプリ習作を、ブログサービス「はてなダイヤリー」のネイティブアプリとしましたが、Webサービスをアプリから使うには、ユーザ認証する必要があります。 はてなでは、いくつかの認証方法が提供されており、そのなかで、OAuth認証がおもに推奨されているようでした。 はてな OAuth - Hatena Developer Center はてなに限らず、Web界隈で、OAuth認証が使われているサイトをよく見かけるようになっていましたので、まず手始めに、これを利用できるようにするところから始めました。 解説ページを読んでいったのですが、そもそもOAuth認証について全く知らなかったので、よく理解できませんでした。 ま、理解できずとも、どこかにiOS用のOAuthライブラリが転がっていて、それを拾ってきてブラックボックス的にアプリから使えばすむだろうと、安易に考えていました

    最初のiOSアプリがやっと完成しそう(その2):OAuth認証 - プログラミング雑記
  • Webサイトがあるアプリなら必須対応になりそうな、App Linksを使ってみた - Lebe Inc. Blog

    2014年4月20日、FacebookがF8カンファレンスでApp Linksというアプリ間連携のための新しい仕組みを発表しました。App Linksではこの仕組みをオープンにし、全ての開発者が利用できることを目標としています。 FacebookアプリからTumblrの記事を開こうとしたらアクションシートに「Tumblrで開く」があります。これがApp Linksで実装できます。 簡単な機能紹介はニュースサイトから引用します。 アプリ開発者は、アプリのコンテンツに数行のコードを追加することでApp Linkメタデータをパブリッシュできる。このコンテンツにリンクするアプリはメタデータを利用してアプリに“deep-link”できるようになる。例えば映画紹介アプリ内に映画のチケット販売アプリへのリンクをApp Linksで入れておけば、ユーザーは映画紹介アプリからチケット販売アプリを直接開いてチ

    Webサイトがあるアプリなら必須対応になりそうな、App Linksを使ってみた - Lebe Inc. Blog
  • 関数型言語を学ぶことは実務でどう役に立ったか - Rejasupoem

    関数型LT大会で「実社会の問題を解決する関数型言語」というタイトルで発表しました。 というのも、会社で「すごいHaskellたのしく学ぼう!」の輪読会をしていて、最初こそ10人以上の人が参加していたのだけど、章が進むごとにどんどん人が離脱していって、主催者としてはなんとか完走したいという思いがあったので、調べたのですが、 ヒアリングから、この二つの線がクロスしたときに、人は離脱するという知見が得られました。 ということで、Haskellに対して実用性を見出したいと思いながら半年を過ごしたのですが、実用的 = 仕事で使うということであれば、今の現場でHaskellに移行するのは現実的ではありません。 でも、Haskellには関数型言語のエッセンスが詰まっていて学びが多かったと思っていて、直接的には使っていないけど、概念として役立つことがあると思ったので、それを伝えるために今回文章に起こしまし

  • 開発チームにアーキテクトがいないなと感じてしまうような、残念なコードスメルの例 - 達人プログラマーを目指して

    まったく個人的なモチベーションの問題から、前回の最終更新から2年以上が経過してしまい、多くの読者のみなさんにはご心配をおかけいたしました。「プログラミングに関して調べたことや日々感じたことをメモとして残していきたいと思います。」というもともとの原点に立ち返って、あまり気負わずに、また今後も時々更新していけたらと思います。今までこのブログの主なテーマとして、JavaEEやSpringといったような、いわゆる業務開発で使われるような技術を中心としてきたわけですが、最近Springを使ったJavaの開発に(アーキテクトではなく)プログラマーとしてちょっと参加する機会があったので、その時気づいたこと、感じたことを書いてみたいと思います。 さて、皆さんはアーキテクチャやアーキテクトという言葉に対してはどのようなものをイメージするでしょうか。システムのセキュリティを確保するための方式であったり、大量の

    開発チームにアーキテクトがいないなと感じてしまうような、残念なコードスメルの例 - 達人プログラマーを目指して
  • 開発を短い時間で集中して毎日やる

    今年に入ってから毎日の開発時間を去年の半分にしてみた。 すると、毎日凄く集中できて、空いた時間に頭にスペースが出来てアイデアもわきやすく、効率もよくなったのでこれはいいかも。 タレブとDHHの話がきっかけ 最初のきっかけは、Rails作ったDHHが「開発なんて長時間やっても逆効果だから毎日の仕事時間を減らせ。8時間じゃなくて5時間、4時間だけにしろ。それだけ短かったらSNSなんて見てる暇はない。」とスタートアップスクールで話してたこと。 あと、去年タレブのAntifragileというを読んで、短い仕事時間を毎日やるのが長期に渡っていいパフォーマンスを出す秘訣だというような事を言ってた。 アップストアでアプリを出すのは、結果が出なければ開発時間をいくらかけても価値が0となる世知辛い世界。でもこれは完全成果主義でなかなか面白い。 毎日の開発時間の成果をいかに上げるかっていうのを考えていると、

    開発を短い時間で集中して毎日やる
  • 文字コード地獄秘話 第1話:Unicodeにおける全角・半角 - ALBERT Engineering Blog

    ごあいさつ 皆様はじめまして、文字コードおじさんです。細々とカメラ屋を営んでおりましたが、エンジニアとしての技量を評価され、ALBERTのシステム開発・コンサルティング部で働くことを許されました。特技はサーバーの統廃合です。 今回は最初ということですが、Unicodeにおける全角・半角の取り扱いについて触れてみようと思います。なお、さも連載するかのように第1話と銘打っていますが、上層部の無慈悲な裁決によっては1話打ち切りもありえますので、その際はご容赦ください。 固定観念を捨てよう 「全角50文字、半角100文字まで」といったような文言を見かけたことがあると思います。 特にUnicode以前のレガシーな処理系では全角文字に2バイト、それ以外は1バイトという割り当てが慣習となっていました。 このため、「全角=2バイト文字、半角=1バイト文字」という観念が世間に定着しているのが現状です。 しか

    文字コード地獄秘話 第1話:Unicodeにおける全角・半角 - ALBERT Engineering Blog
  • プログラマーを悩ませる、命名の難しさについて

    話の発端は 先日公開された FC2 ソースへの感想から。 http://opensource.slashdot.jp/story/14/03/24/0937246/FC2%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%81%8C%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9%E5%8C%96%E3%81%95%E3%82%8C%E3%82%8B isExistメソッドとか (スコア:1) by Anonymous Coward on 2014年03月25日 10時54分 (#2568810) もろに日人っぽいソースコードで好感が持てる。

    プログラマーを悩ませる、命名の難しさについて
  • 新言語Hackで最強PHPerになろう! - Qiita

    新言語 Hack とは こんにちは、新言語 Hack が Facebook より OSS としてリリースされましたね。 詳細は以下の通り。 https://code.facebook.com/posts/264544830379293/hack-a-new-programming-language-for-hhvm/ 新言語 Hack は HHVM 向けの開発言語で静的型付き言語の性質を取り入れ PHP での素早い開発を実施し、PHPとの互換性があります http://hacklang.org/ http://hhvm.com/ HHVM (HipHop Virtual Machine for PHP) とは、Facebook が OSS で開発している PHP 用の JIT コンパイラです。 HHVM は PHP のコードをダイナミックにバイナリコードへと変換することで高速実行の実現を目

    新言語Hackで最強PHPerになろう! - Qiita
  • 1人でよいコードを書く - 鳩舎

    1人でよいコードを書くのは、3人でよいコードを書くことの3倍難しい。悪いコードを書くときに説得する人間が 1/3 でよいので、つまり自分に向かって『まぁいいじゃん今回は』と言えば事が済む。続けているといつの間にか引き返せないところまできていて、適当に書いた個人プロジェクトは設計的破綻を起こし、コーディング規約もなにもあったもんじゃないという破滅が待っている。 ということで、1人でよいコードを書くために。今回は Rails プロダクトを1人で書くとして。 rubocop コーディング規約と、あまりに長すぎるメソッドやあまりに長いクラス定義などを見つけてくれる。全てに従うと厳しすぎて死ぬので、適宜各チェッカを無効にするのがよい。 僕はこんな感じの設定で使っている。 AllCops: Includes: - Rakefile - Gemfile - config.ru Excludes: - b

    1人でよいコードを書く - 鳩舎
  • 「Webアプリエンジニア養成読本」とKodingでPHPを勉強する - uzullaがブログ

    昨日エントリ( http://uzulla.hateblo.jp/entry/2014/03/08/050621 )を書いたKodingですが、詳しくは昨日のエントリを見ていただくとして、今度発売される「Webアプリエンジニア養成読」をKodingで勉強するにはどうすればよいか書いてみます。 Webアプリエンジニア養成読[しくみ、開発、環境構築・運用…全体像を最新知識で最初から! ] (Software Design plus) 作者:和田 裕介,石田 絢一 (uzulla),すがわら まさのり,斎藤 祐一郎技術評論社Amazon 結果として、Kodingをつかえば、ChromeやFirefoxがPCにはいっていれば、PCに何もインストールすることなくブラウザ一つで学習ができました。 このエントリに記載されていること ・Kodingのアカウント取得 ・画面の簡単な説明 ・PHPをちょっ

    「Webアプリエンジニア養成読本」とKodingでPHPを勉強する - uzullaがブログ
  • 些末なゴミは出所を問わず拾うのが客商売 : 404 Blog Not Found

    2014年03月13日16:30 カテゴリArtCode 些末なゴミは出所を問わず拾うのが客商売 USJのジェットコースターは なぜ後ろ向きに走ったのか? 森岡毅 たとえ話を一つ。 些末なコードレビュー - naoyaのはてなダイアリー あるサービスの JavaScript が重いとか、そのコードが難読化されてないとか、担当者とおぼしき人間が書いたコメントがそのまま残ってるから消しましょうよとか、そんなことが書かれていた。JavaScript が重い、という話は結局そのサービスの JavaScript が重かったのではなく、ユーザーが自分で導入した広告が重いというだけの話だった。駐車場に停めてあったクルマがぐしゃぐしゃになっている。向かい側に停めていた人が、アクセルとブレーキを踏み間違えて、いきおいよくぶつけちゃったらしい。クルマの持ち主はもちろん、クルマのメーカーも何も悪くない。だけどつ

    些末なゴミは出所を問わず拾うのが客商売 : 404 Blog Not Found
    brendon
    brendon 2014/03/14
    USJの人が舌でゴミ拾ってるのかと思った
  • レジでの支払いのはなし - はこべにっき ♨

    レジとかでお金を払うときに、支払う紙幣/硬貨の枚数が少なくて、かつ、お釣りの紙幣/硬貨の枚数が少ない、かっこいい支払いというのがある(適当)。あわよくば、かっこいい支払いをしようと思っていつもねらってる。なんか適当に言ってるけど、451円払う時に、適当に500円玉を渡すと10円x4枚+5円x1枚+1円x4円がお釣りになるのはイヤなので、501円を渡してお釣りを50円x1枚にしたりする、よくあるやつです。 451円請求されているときには、だいたい501円はらったら良さそうなのはわかる。では、例えば771円請求されている場合は、どうすれば最適な支払いになるかと考えると、801円か1001円か1021円かそのあたりかなーという感じですこし丁寧にしらべる必要がある。 小銭が関係する1000円以下の最適な支払いパターンくらいだと、機械的に全パターン調べられそうだったのでプログラムを書いてみた。以下の

    レジでの支払いのはなし - はこべにっき ♨
    brendon
    brendon 2014/03/10
    "お釣りの紙幣/硬貨の枚数が少ない"はカッコイイですよね。レジ側の人はどう思ってるか知らんけど。
  • 猫型プログラミング言語史観(1) 〜あるいはオブジェクト指向における設計指針のひとつ〜 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    TL;DR 手続き型プログラミングでは手続きを抽象化することで保守性を挙げることに成功したが、データを守ることには失敗してしまった。そこでオブジェクト指向はデータと手続きをひとかたまりにすることでデータを外から守るというコンセプトを打ち出した。 ここから、「手続き型プログラミングで書いてるのに手続きが十分に抽象化されていないのはヤバいね」とか「オブジェクト指向で書いてるのにひとかたまりじゃない雑多なデータに関心をもっちゃってるのはヤバいね」などの設計指針を導くことができるのである。そして純粋関数型言語の場合は……という話です。 はじめに プログラミング言語にはいろいろなパラダイムがあるが、その中で手続き型プログラミング、オブジェクト指向、純粋関数型言語について、わたしなりのひとつの史観を示すのがこの稿の目的である。となんかかっこつけて言ってみたんだけど、要するに、それぞれのパラダイムがどん

    猫型プログラミング言語史観(1) 〜あるいはオブジェクト指向における設計指針のひとつ〜 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
  • これからiOSやる奴はここ読んどけ - Qiita

    これからiOSアプリ開発をやりたい!という人へ 自分が実際にiOSアプリ開発をやって、便利だったと思う情報を残しておきます。 これからアプリ開発やりたいという人の参考になれば。 iOSアプリ開発の第一歩 まずは間違いなくMacを買うこと。 Macを書いましょう。Windowsじゃ開発できません。 MacじゃないとiOSアプリの開発はできないので、 これがないとお話になりません。。。 インストールしておくもの 基的にXcodeさえインストールしておけばアプリの開発はできます。 Mac App Storeからダウンロードできます。 実機インストールやApp Storeに公開したい場合は、 iOS Developer Programを購入する必要があります。 まずはこれを読むべき Appleのドキュメント集(日語訳Version) https://developer.apple.com/jp

    これからiOSやる奴はここ読んどけ - Qiita