PHP Conference 2023 English Title: How to implement RubyVM written in PHP - Until to output Hello World -
PHPとPythonとRubyの連想配列のデータ構造がそれぞれ4〜5年ほど前に見直され、ベンチマークテストによっては倍以上速くなったということがありました。具体的には以下のバージョンで実装の大変更がありました。 PHP 7.0.0 HashTable高速化 (2015/11) Python 3.6.0 dictobject高速化 (2016/12) Ruby 2.4.0 st_table高速化 (2016/12) これらのデータ構造はユーザーの利用する連想配列だけでなく言語のコアでも利用されているので、言語全体の性能改善に貢献しています1。 スクリプト言語3つが同時期に同じデータ構造の改善に取り組んだだけでも面白い現象ですが、さらに面白いことに各実装の方針は非常に似ています。独立に改善に取り組んだのに同じ結論に至ったとすれば興味深い偶然と言えるでしょう2。 本稿では3言語の連想配列の従来実
macOS High SierraではRuby v2.3.3、PHP v7.1.4がデフォルトで同梱されているそうです。詳細は以下から。 Appleは現在、macOS 10.13 High Sierraの1st betaを開発者向けに公開していますが、同バージョンではデフォルトで同梱されているRubyおよびPHPのバージョンがアップデートされているそうです。 Nice, looks like macOS 10.13 High Sierra (ugh, that name!) finally ships a not totally outdated php version (php 7.1.4). pic.twitter.com/LxnQwEsN5H — Dominik Tobschall (@DominikTo) 2017年6月6日 TIL: High Sierra apparently
p <<PHP_VERSION <?php PHP_VERSION ;print "\033[1F\033[1M"; //.tap{ define_method :range, -> s,e { s.upto e } } //.tap{ define_method :array_map, -> f,seq { seq.map{ |x| f.(x) } } } //.tap{ define_method :function, -> x,&b { -> x { $x=x;b.call } } } array_map(function($x){ print $x % 15 == 0 ? 'FizzBuzz' : ($x % 3 == 0 ? 'Fizz' : ($x % 5 == 0 ? 'Buzz' : $x)); print "\n"; }, range(1,100)); ruby php.
僕はRubyが好きだ。プライベートではRubyばっかり使っている。でも、仕事ではPHPを使わなければならない。これまでPHPは書きにくいーと思い込んでいてあまり好きではなかったのだけど、仕事で使う以上PHPを好きになった方がきっと幸せになれる。何かを好きになるにはどうすればよいか。そう、相手のことを知る努力をすればいいんだ!ということで、PHPについて知る努力をしてみた。 PHP The Right Wayを読む http://ja.phptherightway.com/ ☆PHPへの愛が100上がった☆ これは... PHP好きになれるかも! 普段Rubyで書いてるコードをPHPで書いてみる 折角なので自分が普段Rubyを使っていて便利だなーと感じていることをPHPではどう書くのか(厳密では無いにしても大体同じ内容はどう書くか)試してみた。Rubyは1.9.2、PHPは5.3.10。 多
Ruby、PHP、Node.jsの環境をクラウド上でPaaSとして提供しているEngine Yardは、クラウドと互換性のある環境をローカルで構築できるソフトウェア「Engine Yard Local」を、Engine Yardが無償で公開しました。 Engine Yard Localを利用することで手元のコンピュータだけで開発環境が完結するようになるため、クラウドへ接続することなくアプリケーションの開発が行え、クラウドにかかるコストを削減できます。開発者も、どんな場所でもアプリケーションの開発が可能になりますし、生産性の向上もはかれるでしょう。本番環境へデプロイするChefのレシピをテストすることも可能。 仮想マシンをツールから制御する仕組み Engine Yard Localは、オラクルのVirtualBoxを、Rubyで作られたオープンソースのツールVagrantを用いて制御し、仮想
RubyKaigi とか色々あって、ふと、僕がプログラミングを始めたころのことを何となく思い出したので走り書きしておきます。特に PHP に関しては記憶が曖昧なところがおおいので、 PHPer モヒカン族によるツッコミを歓迎します。 配列とハッシュが違う PHP においては、配列も連想配列もすべて array() と言う関数で生成する。むしろ、配列というものがキーを数字にしているだけの連想配列と言う位置づけだと思う。 Ruby ではもちろん、主たるコレクションには Array と Hash の二種類が存在し、区別される。最初はこの区別に若干戸惑いを覚えた。 ちなみに Python だとリスト・タプル・辞書ともっと増えるわけで、Javaのコレクションクラスに至ってはさらに多いし、この辺はどの実装が正しいとか適切とかではなく慣習なのかなあ、と思ったりする。 型(クラス)がより厳格 PHP では
皆さん、楽しくテスト書いてますか~~~ 今日は、 rack-legacy を使うことで、 PHP のアプリケーションなのになぜか Ruby のコードでテストできて(受け入れテストのあたりですけど)、そうすると本物の RSpec とかが使えて楽ですよ、と言う話をします。 rack-legacy とは。 まず、 Rack とは、 Ruby 製のウェブアプリケーション(Ruby on Rails、Sinatraなどをご存知かもしれません)とサーバ(Apache/Passenger、NginX、Lighttpdなどなど…)をつなぐ一種の規格です。 Perl や Python にも似たような仕組みがあります。 ここで、 Rack::Legacy というミドルウェアを使うと、他の言語の CGI や、 PHP のアプリケーションが Rack の上で動かせます。 そして、 Rack の上で動くということは
思いは言葉に。 はてなブログは、あなたの思いや考えを残したり、 さまざまな人が綴った多様な価値観に触れたりできる場所です。
Language Update Perl 小飼弾 PHP 小泉守義 Python 稲田直哉 Ruby まつもとゆきひろ Clojure making HTML5白石俊平 Scala 尾崎智仁 Keynote PDF 開発ライセンスとプログラマーの自由 小山哲志 LLと電子出版 西尾泰三 鈴木嘉平 瀧澤昭広 高橋征義 森田尚 LLでフィジカルコンピューティング ごうだまりぽ 山本遼 原央樹 尾崎俊介 高速化虎の巻 藤田将洋 (公開資料なし) 高山征大 村主崇行 LTの虎 クロネッカーズ・デルタ 久井亨 初戦 (準決勝) co1row co1row 殺伐Python 渋川よしき 小泉守義 @ymotongpoo Shibuya.js 上島智士 川崎有亮 小林悠 破滅幼稚園荒川組 @hagino3000 @itkz @yuiseki エレファントカシマシタ choplin umitanuki t
元Vine SPARC開発者。2003年度未踏ユース採択者。ウノウ株式会社立ち上げ時に参画して4年間CTOとして従事。退職して現在P&Aラボにて客員起業家として起業準備中。 rubyのライブラリとかで、ファイルの最後に次のような感じになってるものがある。 if __FILE__ == $0 ... end こういう風に書いておくと、他のファイルからインクルードした場合はライブラリの機能だけ提供するんだけど、そのライブラリ自体を直接単体のスクリプトとして実行できるようにもなる。 でもこれはスクリプトとして使われることを意図してなくて、単なるサンプルプログラムとして提供されています。 これ結構便利なんですよね。 簡単なライブラリの使い方がすぐに分かるし、ちょっとお試しで使ってみるのも簡単にできる。 ドキュメント読むよりも、プログラム見た方が早いし。 でも、PHPでやってるのはあんまりみないな。
まずは次の表をご覧あれ。これはプログラミング言語のベンチマークとして有名な Computer Language Benchmarks Game のベンチマーク結果。上にいくほど高速で、下に行くほど遅い言語になる。 これを見れば、最速な言語は C/C++ であり、Java や Haskell や OCaml といった静的な言語は軒並み上位に登場する。これに対し、Ruby や Python や PHP といったスクリプトは全部下のほう (つまり遅い)。その速度差は非常に大きく、このベンチマークで見ると Python3 や Ruby1.9 は C/C++ の約50倍から60倍遅く、Perl は約90倍、PHP にいたっては約130倍遅いことになる。 (ちなみに JIT つきの Lua が驚異的に高速なのが目をひく。この結果が本当だとしたら、言語の速度に大きく関係するのは動的か静的かではなく、どれ
2024.02.28 3500円の海鮮丼 By kogt 2024.02.26 白い妖怪ぱーく展を見てきた話 By 毛焼坂 2024.02.21 ピンチⅡ By 勇者ああああ 2024.02.19 最近、導入したサブスクの話 By キタサン 2024.02.16 ゴールデンカムイは最高って話 By sawara 2024.02.15 2月14日は何の日?シリーズ第3弾! By Moon 2024.02.09 たまには身体を動かそう By hik 2024.02.07 展覧会 By ra-men 2024.02.05 老舗韓国冷麺のすゝめ By よねたみ 2024.02.02 38歳に「僕が大人になる」と言われた話 By 弦 2024.01.31 少年少女へのネット普及ってすごいし怖い By むったん 2024.01.29 会社より10倍快適なNW環境を構築する話 By いもけんぴ 2024
PHP、Perl、Ruby、C、C++等40以上の言語をブラウザで実行できるようになるjQueryプラグイン「Run This」 2010年03月11日- Run This! PHP、Perl、Ruby、C、C++等40以上の言語をブラウザで実行できるようになるjQueryプラグイン「Run This」。 ブラウザ内の<pre>コードで記述した部分を、その場でそのまま動かすことができ、うまくサイトに組み込めばより訪問者にとってわかりやすいページを作ることが出来そうです。 例えば、PHPの入門サイトなんかでは挙動を一瞬で確認できてしまいます。 具体的には以下の言語に対応しています。 Ada, Assembler, AWK, Bash, bc, Brainf**k, C, C#, C++, CLIPS, Clojure, COBOL, Common Lisp, D, Erlang, Forth
ipycanvasで図形に影をつける事ができます。影をつけるには、以下の属性でパラメータを設定します。 shadow_color : 影の色 shadow_offset_x : 影の水平方向オフセット shadow_offset_y : 影の垂直方向オフセット shadow_blur = ぼかしの大きさ サンプルコード 以下のサンプルコードは、円の図形と影を描画しています。 from ipycanvas import Canvas from math import pi canvas = Canvas(width=200, height=100) canvas.shadow_color = '#c0c0c0' canvas.shadow_offset_x = 5 canvas.shadow_offset_y = 5 canvas.shadow_blur = 5 canvas.fill_st
古いエントリーなのですが、まだ時折検索エンジン経由?でいらっしゃる方がいるみたいなので追記 Titanium Desktopは今はTideSDKと変わってオープンソースプロジェクトになっています。 いいたい事を先に。 Ruby,Python,PHP,JavaScriptやってる人でデスクトップアプリ作成に興味ある人は Appcelerator Titanium Desktop さわってみるといいと思います。OS X, Windows,Linuxとマルチプラットフォームなデスクトップアプリをhtml,JavaScript,Ruby,Python等の慣れ親しんだ技術で簡単に作成、公開することができます。 予想以上にブクマされてるみたいなので、Titanium Desktopの特徴を箇条書きですが追加しておきます。 一言で言えばJavaScriptで記述するAdobe AIRのようなRIAフレー
PHPerがRubyを触り始めて最初に不機嫌になるのは、空文字列が偽ではないことだ。つまり、PHPなら「if ($var)」で済むのが、Rubyだと「if !var.empty?」と書かなければならない。これでPHPerは不機嫌になる (まあ気持ちは分かる)。 if ($var) ... # PHP if !var.empty? ... # Rubyそれだけならいい。もし値がnilである可能性があるなら、Rubyでは「if var && !var.empty?」と書かなければいけない。この時点でPHPerは不機嫌どころかブチ切れる。なんでこんなに書かなきゃいけないんだ!? PHPなら「if ($var)」で済むのに!! SHIIIIT!! if ($var) ... # PHP if var && !var.empty? ... # Rubyここで、「空文字列が偽になるような言語仕様こそク
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く