タグ

phpとprogrammingに関するshin1x1のブックマーク (18)

  • A PHP Compiler, aka The FFI Rabbit Hole

    It’s no secret that I’m into building toy compilers and programming languages. Today I’m introducing something that’s not a toy (I hope). Today, I’m introducing php-compiler (among many other projects). My hope is that these projects will grow from experimental status into fully production ready systems. JIT? AOT? VM? What The Heck?Since I’m going to be talking a lot about compilers and components

    A PHP Compiler, aka The FFI Rabbit Hole
  • アプリケーションから例外を投げる派、投げない派 - Shin x Blog

    例外をどのような状況に投げるかもしくは投げないか、というのはわりと意見が分かれるところです。もちろん、プログラミング言語によっても異なりますが、同じプログラミング言語ユーザ同士でも様々です。 基の考え方 ベースとしては、Effective Java の項目 39 にある下記の方針が参考になります。 例外的な状況の時にのみ例外を使う。 Effective Java 禅問答のような定義ですが、これには異論は無いでしょう。例外を正常フローで利用したり、制御構造に用いるべきではありません。 人によって異なるのは「例外的な状況」の解釈です。 例外的な状況 この「例外的な状況」の解釈は人によって異なるようで、これまでも議論になっていました。これまで聞いた解釈を乱暴に分けると以下の 2 パターンに分かれます。 1. アプリケーションから独自の例外を投げる派 ランタイムやミドルウェア連携などプラットフォ

    アプリケーションから例外を投げる派、投げない派 - Shin x Blog
    shin1x1
    shin1x1 2016/12/27
    書きました。
  • PHPの例外 - Qiita

    定義済み例外とSPL例外 PHPにはPHP体が持つ定義済み例外とPHPに標準でバンドルされるStandard PHP Library(SPL)の例外のSPL例外の2種類の例外があります。SPLは標準で組み込まれるのでPHPの機能として標準的に使うことも可能ですが、マニュアルでも個別のページを持っています。 定義済み例外 SPL例外 SPL例外 SPLの作者はPDOなど多数のパッケーのleadを務められているMarcus Börgerさんです。(PECLサイト参照 https://pecl.php.net/user/helly) MarcusさんがSPLのために作成したスライドStandard PHP Libraryから例外の部分を2つ抜粋します。 「守るべき3つのルール」 例外は例外の時に使用する (Exceptions are exceptions) 制御構造のために例外を用いない (

    PHPの例外 - Qiita
  • 「正規表現再入門」を PHP カンファレンス 2016 で発表してきました - Shin x Blog

    2016/11/03 に開催された PHP カンファレンス 2016 にて、「正規表現再入門」を発表してきました。 資料 speakerdeck.com togetter.com 内容は、正規表現のマッチングの動き、量指定子のマッチングパターン、バックトラックやパフォーマンスへの影響についてです。 下記のエントリを下地にして、マッチングの動きを分かりやすく伝えることを意識してお話しました。 blog.shin1x1.com 参加された方からは、「分かりやすかった」といった好意的なフィードバックを頂けたので、発表して良かったです。 これから正規表現を学ぶにしても、マッチングがどのように行われるかをざっくりと知っておけば、正規表現を書く際にも動きが想像できるので、この発表がお役に立てると嬉しいです。 偶然、同じ時間帯に発表があった徳丸さんのセッションでも正規表現に触れられていたようで、Twit

    「正規表現再入門」を PHP カンファレンス 2016 で発表してきました - Shin x Blog
  • パフォーマンスを意識して正規表現を書く - Shin x Blog

    正規表現を書く際、どのようなパターンにマッチさせるか、どこをキャプチャするかという視点で記述することはあっても、パフォーマンスを考えて記述するというのはある程度知っている人でなければ忘れがちな視点です。 このエントリでは、バックトラックをメインに正規表現がパフォーマンスに及ぼす挙動について見ていきます。 対象の正規表現エンジン ここでは、従来型 NFA を対象としています。具体的には、PHP の preg_ 関数で利用している PCRE や mb_ereg 関数が利用している鬼車です。PerlRubyPythonJava、.NET でも従来型 NFA を採用しているので、似た挙動となるでしょう。 「従来型 NFA」や「バックトラック」などの用語については、「詳説 正規表現 第3版」のものを用いています。 バックトラックによるマッチ探査 正規表現エンジンでは、指定された文字列が、パ

    パフォーマンスを意識して正規表現を書く - Shin x Blog
    shin1x1
    shin1x1 2016/08/23
    書きました。
  • PHPのround関数とは一体なんだったのか - hnwの日記

    (7/3 14:05追記)Javaに関する記述について誤認があったので盛大に書き換えました。Java 6、Java 7、Java 8それぞれで実装が変わっていたようです。 (7/13 23:55追記)記事中ではroundを四捨五入と言い切ってしまっています。これは筆者がC99のroundを基準に考えているためですが、言語によっては偶数丸めになっているround関数も珍しくありません。ご注意ください。 PHPのround関数について、ネット上で次のような記述を見つけました。 PHP 四捨五入の計算を間違える唯一の言語として畏れられていましたが、そのバグは治っているかもしれません(治ってないかもしれません) 主要なプログラミング言語8種をぐったり解説 - 鍋あり谷あり 各言語を面白おかしく紹介する内容とはいえ、ずいぶん雑な理解だなーという印象です。ゆるふわな話だけでPHPがdisられ続けるの

    PHPのround関数とは一体なんだったのか - hnwの日記
  • PHPに型推論を実装する ~入門編~ / Type inference on PHP

    PHPカンファレンス福岡2016の資料です。

    PHPに型推論を実装する ~入門編~ / Type inference on PHP
    shin1x1
    shin1x1 2016/05/27
    推論していく流れが分かりやすく面白かった。
  • PHPで学ぶVM型正規表現エンジンの仕組み

    PHPカンファレンス福岡での発表資料です。

    PHPで学ぶVM型正規表現エンジンの仕組み
  • Coding Games and Programming Challenges to Code Better

    Level up your coding with games, puzzles, and challenges.

    Coding Games and Programming Challenges to Code Better
    shin1x1
    shin1x1 2014/10/02
    Traning だけやってみたけど面白い。コード実行は、CTRL + ENTER でやると楽。
  • 古いプログラミング言語がなくならない理由 | readwrite.jp

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

    古いプログラミング言語がなくならない理由 | readwrite.jp
    shin1x1
    shin1x1 2014/09/22
    "「PHPを否定する人たちは、1998年の時点であった問題を槍玉に挙げており、現在の状況が分かっていない。PHPは今日ではとても成熟したエコシステムだ」"
  • 2013年 最も需要のあった開発者のスキル トップ10 | readwrite.jp

    あなたがJava開発者なら、2013年はあなたにとってさぞや仕事のチャンスに恵まれた一年だったことだろう。 少なくともStack Overflowの統計によればそうだと推測できる。何千もの会社が毎年特定の開発スキルを持った求職者を見つけるためにこのサイトの「Careers 2.0」検索機能を利用している。そして2013年は、Javaが最も頻繁に検索されたキーワードだったのだ。 関連記事: 2013年に米国で最も需要の高かったジョブスキルとは? Stack Overflowは、14,000件もの全検索履歴から最も多く使われたキーワードを計測し、そこから最も需要のあった開発者スキルを割り出してそのトップ10データを提供してくれた。 Stack OverflowでCareers 2.0のプロダクト・マネージャーを務めるウィル・コールによれば、このJavaの人気は雇用者のモバイルの開発に対する関心

    2013年 最も需要のあった開発者のスキル トップ10 | readwrite.jp
    shin1x1
    shin1x1 2014/01/13
    Java / PHP / C# の順。PHP 以下は、そんなに差が無いけど。Ruby じゃなくて Rails なのか。
  • PHPで仮想マシンベースの正規表現エンジンを作ってみる 第一回

    こんにちは、久保田です。 皆さん正規表現は使っていますか? PHPに限らずどんな言語を使っていても、正規表現にお世話になっていないプログラマはいないと思います。しかし、その正規表現がどのように実装されているかについては知らない方が多いのではないのでしょうか。 この記事では、その正規表現エンジンの実装方法の一つである仮想マシンによる正規表現エンジンの実装方法を解説しつつ実際に簡単な正規表現エンジンを作っていきたいと思います。 正規表現エンジンの実装方法 正規表現エンジンの実装方法はいくつかあるのですが、それの一つに仮想マシンによって正規表現のマッチング処理を実行するやり方があります。PHPで利用している正規表現エンジンであるPCREはこの方式を採用しています。 仮想マシンによる実装方法は、正規表現というよりもプログラミング言語の実装方法の一つとして知られています。Rubyの最もメジャーな実装

    PHPで仮想マシンベースの正規表現エンジンを作ってみる 第一回
  • neue cc - C#の強み、或いは何故PHPから乗り換えるのか

    特にPHPディスりたいわけでは、あるのかないのかはともかく、やっぱり実際に使ってきて良いところというのも分からなくもない感じです。会場でも話したのは、短期的な開発速度には有利なのは間違いないのかな、と。デプロイとかも、とりあえずポン置きでいいし、開発も、なんかもう複雑なことやると面倒だし、どうせ文字列だらけになるしで、開き直ってハードコーディングでバカバカ作っていくから速い、とか。ただし勿論あとで苦労するわけですがそれはそれとして。けれどやっぱC#良いよね、って。 言語も色々なトレードオフで成り立つわけですが、その中でもC#は、バランス良くて好きだなーというのが私の個人的なところです。Visual Studio良いよねー、でもいいですしLINQ良いよねー、もいいですし、IntelliSenseがないと生きていけないですし。うん、そう、IntelliSense指向言語が好きなわけです。 ほと

  • Perlは本当にオワコンなのか調べてみた

    Perlは、日国内では私と同年代(30代後半)の人を中心に、相変わらず人気があると思う。 しかし、私がよく見ているStackOverflow/DZone/InfoQ辺りでは、確かにこの数年はあまりPerlを見かけないという感覚があった。 そこで、Googleで『Perl site:stackoverflow.com』『1年以内の記事』のような感じで、いくつかのプログラミング言語の検索結果の件数を調べ、グラフ化してみた。 (;´Д`)…

    shin1x1
    shin1x1 2013/03/08
    Scala が結構多いのが興味深い
  • official letters from santa

    JavaScript sucks because Note some of this is not JavaScript itself, but web APIs (https://developer.mozilla.org/en/docs/Web/API) Poor Design Every script is executed in a single global namespace that is accessible in browsers with the window object. Camel case sucks: XMLHttpRequest HTMLHRElement Automatic type conversion between strings and numbers, combined with '+' overloaded to mean concatenat

    shin1x1
    shin1x1 2012/11/03
    #phpmatsuri プログラム言語の批判サイト
  • Dash – Snippet Manager, Documentation Browser

    Overview Dash is an API Documentation Browser and Code Snippet Manager. Dash instantly searches offline documentation sets for 200+ APIs, 100+ cheat sheets and more. You can even generate your own docsets or request docsets to be included. Supported Documentation Sets Dash comes with 200+ offline documentation sets. You can choose which documentation sets to download and Dash will take care of the

    shin1x1
    shin1x1 2012/05/02
    スニペットを保存 / 言語リファレンスもインストールできる / Dropbox で共有
  • ぼくはこうしてプログラミングを覚えた

    オリジナルはココです。フェイスブックのエンジニアでで史上ベスト3に入るといわれるEvan Priestley氏への質問「どうやってプログラミングを覚えましたか」に対する人からの答えです。 手短かに言えば 何年もの歳月の賜物というか。ぼくはただひたすらプログラミングが大好きで、(フェイスブックで働いていた)過去4年間、ほとんど他のことをしていない。その前も2.5年ほどプログラマーとして働いていたし、そのさらに前も6年くらい趣味でプログラミングをしていた。ぼくは高校も大学も中退しているので、それで空いた時間もプログラミングに費やした。つい最近フェイスブックを辞めたけど、未だに起きている時間のほとんどはプログラミングだ。 もっと詳しく言えば 月並みだが、ぼくはちっちゃい頃からコンピューターが好きで、我が家にあったヤツで(最初はMac Plusで途中からIIsiになった)で散々遊んだ。8歳か9歳

    shin1x1
    shin1x1 2011/07/21
    「ぼくの経験上、一番PHPをバカにし、言語の重要性をうそぶく連中は、大体自分たちが提唱する言語でもロクな仕事ができないことが多い。」
  • PHPからActiveMQに繋いでみた - Do You PHP はてブロ

    via. PHP Stompライブラリを呼び出す消費者スクリプトを書く | 秋元@サイボウズラボ・プログラマー・ブログ ずいぶん前(2007年10月)にサイボウズラボの秋元さんがPHP勉強会で発表したネタですが、stomp拡張モジュールがリリースされたことと、いつか業務でキューを導入するかも知れないということで、ちょっとずつ調べ始めてある程度量が溜まってきたので、ちょっとまとめてみました。 以下、ちょっと長いです。 メッセージ・キューイングとは BPnetの説明が分かりやすいかな。 メッセージ・キューイングは,キューに入れたメッセージをやり取りすることで,システム間を連携する。メッセージ・キューイングはファイル転送と同じ非同期型のメカニズムであるが,ファイル転送よりも即時性が高い。アプリケーションの内部でメッセージを生成してキューに入れるため,利用者がリターン・キーを押したタイミングでサー

    PHPからActiveMQに繋いでみた - Do You PHP はてブロ
  • 1