I’m back-filling my blog with a few posts which cover the work I’ve done on Mumbuntu. So there will be a flurry of posts over the next day or so. Normal slack scheduled blog posts will be resumed shortly Friday 12th Feb Today I went to Mums to look at the computer. She doesn’t have an Internet connection at home, which is another thing I need to evaluate for her. So I took a few USB dongles with
キーボードショートカット一覧 j次のブックマーク k前のブックマーク lあとで読む eコメント一覧を開く oページを開く ✕
前のポストを書いたときに、一体どこからデータを集めたのかが気になった。公開されていれば適当にスパイダーでも書けば集められるが、そんなに情報が公開されているのだろうか。ちょっと検索してみたら、面白いエントリーが出てきた: Why Pete Warden Should Not Release Profile Data on 215 Million Facebook Users 先に紹介したエントリーを書いたPete Wardenを批判する記事だ。 […] he exploited a flaw in Facebook’s architecture to access public profiles without needing to be signed in to a Facebook account, effectively avoiding being bound by Facebook
Google Chromeの拡張機能を探している。 そんなあなたにおすすめなのが、『17 Google Chrome Extensions for Web Designers and Developers』。デザイナー・デベロッパーのためのGoogle Chromeエクステンション集です。 便利そうなのが揃っているので、いくつかご紹介しますね。 Eye Dropper サイトから色を抽出できるカラーピッカー Aviary Screen Capture スクリーンショットを撮れるアドオン Chrome Sniffer 見ているページで使われているフレームワークやCMSを表示してくれる The Lorem Ipsum Generator Lorem Ipsumのダミー文字を生成してくれるアドオン Chrome SEO インデックス数、バックリンク数などを表示してくれるSEOツール IE Tab
jackdの音切れ=xrunエラーは世界中(言いすぎ?)で悩む問題だと言うことが分かった(日本ではここが分かりやすいかなhttp://ub.x0.to/ub3/2007/08/jack_control.html)。また、リアルタイムオプションはFedora6からだとおもうがplannet ccrmaがリアルタイムカーネル(多分まだ?)できていないことが原因だということ(http://ccrma-mail.stanford.edu/pipermail/planetccrma/2006-November/012758.html参照)。損した気分。 jackdのリアルタイムオプションの解決 /etc/security/limits.confに以下の記述を追加(これって、安全?) これでリアルタイムオプションを指定できるようになる。(だから本当にいいのか?) # or (default) allo
Winux/Lindows Linspire(旧Lindows)とは何の関係もありません おもにLinuxとの格闘記+その他~k本的に人柱・原sk的に体当たり~ UbuntuTweakから追加してたVLCのリポジトリが行方不明になってた? ちっと調べてみたら最新は1.1.3。俺のとこは1.1.2。 なぜ引っ越したんだぜ?まぁ、開発版だから仕方ないよね>< VLC 1.1.3 is released! PPA for Ubuntu というわけで。 For Ubuntu 10.04 lucid and ubuntu 10.10 maverick: Open terminal and type the commands: sudo add-apt-repository ppa:n-muench/vlc ←ここ、変わっとる!! sudo apt-get update sudo apt-get in
No.(6)で紹介した「miro」」の場合、mp4形式で動画が保存されますので、大きなサイズでない限り、iPodやAndroidケータイ, PSPなど動画再生に対応するモバイル・デバイスで、すぐに再生することができます。言わば網を仕掛けて動画を捕まえるようなものでした。 今回は、いわば”一本釣り”。動画を個別にダウンロードして、モバイル機器で再生できるようにしてみます。 ◆「Video Download Helper」で動画を一本釣り ネット動画をダウンロードするには、以前にも紹介したことがある、Firefoxのアドオンである「Video Download Helper」が便利です。 アドオンの追加は、下記ページから。 https://addons.mozilla.org/ja/firefox/addon/3006 動画ページを表示し、ダウンロード可能な動画であれば、Download H
皆様,Ubuntu 上で perl モジュールはどのようにしてインストールなさっているでしょうか? 以前まで使用していたCentOSでは,「perl -MCPAN install モジュール名」のようにして普通にインストール しておりましたが,Ubuntu ではパッケージの管理を aptitude (apt) で行っているので,このような モジュールの入れ方は邪道なのかと思いまして. もちろん,aptitude からインストールできる perl モジュール(libfoo-bar-perl)パッケージも多々ありますが, もし所望のモジュールが存在しなければ,どのようにしてインストールするのがスマートなのか, 皆様のご意見をお聞きしたいと思い,ご質問させて頂きました. よろしくお願い致します.
東京都台東区で黙々とウェブでサービスを開発している株式会社アストロデオのホームページです。
WebページにHTMLで書いただけではやはり情報発信という意味では今の時代厳しいのが現状。 そこで、PHPを導入してみます。 PHPは、HTMLファイル内に、処理内容を記述したスクリプトを埋め込み、処理結果に応じて、動的に生成されるページの作成できる利点があります。 プログラム自体、テキスト文書でそのまま書け、コンパイルる利点ってもあります。 PHPのインストール ①まずサイトから最新版のソースを入手し、サーバ指定の位置(/usr/local/src)に配置 ↓からダウンロード、php-5.2.5を入手しました http://jp.php.net/downloads.php ②現状の状態確認 最初からPHPが入っていることも多いみたいなんで確認 # rpm -qa php* 入っている場合は消します! ↓だったかな~ # rpm -e _______ ③ファイルを展開してconfigure
2010年02月15日 22:03 カテゴリWRCマクレーンのトップ10 写真 - マクレーンの2010年スウェディッシュラリートップ10 Posted by rallynews No Comments No Trackbacks ツイート マクレーンによる2010年ラリースウェーデンの写真ギャラリーだ。 - ソース:MaxRally | Gallery | 2010 Swedish Rally - McKlein’s Top 10 ペター・ソルベルグ、シトロエン C4 WRC 写真:Daniel Reseler. Canon EOS 1D MkIII, 28mm, ISO100, 1/40th sec @ f5 + flash. 選定理由: 低いシャッター速度とフラッシュのコンビネーションにより、車のスピード感が感じられる。またISO感度の設定によりノイズが全く乗っていない。 マーカス・
製作が決定していた人気アニメ「けいおん!」の第2期が、2010年4月6日(火)から放送開始となることが明らかになりました。気になるタイトルは感嘆符が1つ増えて「けいおん!!」だそうです。 詳細は以下から。 TBSアニメーション・けいおん!公式ホームページ 「けいおん!」はまんがタイムきらら連載の4コマ漫画を原作としたアニメで、「涼宮ハルヒの憂鬱」「CLANNAD」「AIR」など質の高いアニメを制作することで定評のある京都アニメーションが制作。Blu-rayやDVDがかなりの売り上げとなったほか、2009年12月30日には横浜アリーナでライブが行われるなど、高い人気を誇ります。 その高評価を受けてか、その横浜アリーナのイベントで第2期製作決定が発表され、2010年4月からの放送開始が決まりました。 放送は。現時点ではキー局であるTBSが4月6日(火)25時25分から開始予定とのことで、その他
2007年に分社化してから3年。ライブドアが順調に売上を伸ばしている。2009年9月期(2008年10月から2009年9月)は連結売上高93億円、営業利益10億円を達成。ほぼ計画通りに推移しているという。 新会社として4年目の2010年は「本質的な成長」をスローガンに、一時凍結していた新サービスの開発に力を入れる。第1弾は自社で保有するデータセンタなどのインフラ資産を活かしたクラウドサービス「ぽこぽこクラウド」(仮称)だ。 「クラウドはライブドアの一番強い領域。技術力の強みを出しやすい、得意分野」とライブドア代表取締役社長の出澤剛氏は話す。サービスの特徴やメニューは明らかにされなかったが、3月から提供するという。 ライブドアは2008年から2009年初めにかけてソーシャルネットワーキングサービス「フレパ」やブログサービス「nowa」などを閉鎖。その一方で主力サービスの「livedoor B
ユーザーの行動への呼びかけを促す「ダウンロード」や「サインアップ」などのボタンをデザインする際に気をつけたい5つのポイントをLee Munroeから紹介します。 Web Design Trends: Call To Action Buttons 先日とりあげた「ハイパーテキストリンクのスタイル大全」の5. ボタンスタイルで紹介されているものです。 以下は、各ポイントを意訳したものです。 はじめに サインアップやダウンロードなど、ユーザーの行動への呼びかけを促すボタンのデザインはウェブデザインにおいて重要なものです。 ボタンはそのページのゴールの一つであり、その目的のためにそれぞれのページをデザインするといっても過言ではありません。 行動を呼びかけるボタン(Call to Action Button)はユーザーの注意を引く必要があります。以下に、そのボタンのデザインの5つの特長をあげます。
こんにちは。 nanotyプロジェクトメンバーの鈴木です。 寒いです。 本当に温暖化はすすんでいるんでしょうか? ワシントンは大雪みたいですし、やっぱり環境面でおかしいところがあるんでしょうかね。 と飛躍しすぎですが、ここら(焼津)が寒いのは季節を考えれば当然なんですよね。 さて、 このところiPhoneアプリの開発に取り組んでいます。 現状では知識不足(Mac OSから)でネイティブアプリの制作は挫折気味。orz そこでWEBアプリに目が行きました。 ただWebを使ったシステムというと 普段仕事で作ってるものと一緒になるので面白くありません。 何かiPhoneアプリならではの付加価値をつけねば・・ ネイティブアプリのメリットとなるとこれ 「ネットワークに接続していなくても動く」 これしか。 が、実はiPhoneのSafariには ローカルストレージ、Client-side databas
キングジムが、いつでもどこでもメモがとれるデジタルメモ「ポメラ」に、女性や若い世代を意識してデザインした「ポメラ DM5」を、20,790円で3月9日から発売すると発表しています。 液晶画面の変更やキーボード開閉機構の簡略化などにより、従来機種に比べて安くなったそうです。 Tagキングジムポメラ_DM5 iPhone App Store (5149) アクセサリ (4369) 特価 (3394) レポート (2717) NEWS (2553) Rumor (1945) iPad App Store (1813) iTunes (1264) iPhone (1249) Apple Apps (1076) iOS (796) プロモーション (761) Apple (726) ソフトウェア (712) Apple Store (706) Mac App Store (673) 書籍 (669)
NetWalker x Eclair - Bootable Image (10/14)Android on NetWalker (08/28)Sharp NetWalker PC-Z1 (06/21)Android Screen Monitor (04/07)Android 1.5 on Zaurus (12/19)Bootchart on Android (10/24)Porting Open Source Android to Zaurus (09/25)KeycodeChecker.apk for Android 1.0 (09/09)V8 on Angstrom Zaurus (08/28)double buffer patch of pxafb for linux-2.6.26 (08/25)Network is up - Android 0.9 SDK beta (08/23)
KDDIおよび沖縄セルラーは17日、スマートフォン市場への本格参入を発表した。個人向けとして初めてAndroid OS搭載スマートフォン「Androidスマートフォン」およびWindows OS搭載スマートフォン「Windows phone」を6月以降発売する。具体的なスマートフォンの機器メーカーなどは現時点ではまだ判明していない。 またGoogle社が提供する「Android マーケット」に加え、KDDIが推奨するアプリケーションなどを集めた新たなAndroidアプリマーケットの提供も同時に開始する。KDDIが開設するアプリマーケットでは、ユーザの好みに合わせたアプリケーションの提案や、ジャンルごとにおすすめアプリケーションを紹介するとのこと。これによりユーザは、より自分だけの使い方に合わせた適切なアプリケーションを見つけやすくなるという。 また、KDDIが情報料の回収を代行するしくみも
Create a new social networking site in few hours using pinax platform (django). by Rama Vadakattu on March 18, 2009 if you are excited to see how such a social networking site would like.Just follow the below link http://www.xfgx.info/ We made the above site on pinax platform (Please note pinax has done most of things we have done very little).A platform for rapidly developing websites. In this bl
敬老の日とは? 敬老の日は、日本の国民の祝日で、毎年9月の第3月曜日に祝われます。この日は、高齢者を敬い、長寿を祝うことを目的とした特別な日です。もともとは「老人の日」として1947年に兵庫県の村で始…
Many users have had problems with audio upon upgrading from Ubuntu 9.04 to 9.10. This How-To will show you how to fix some of those audio issues. Many users have had problems with audio upon upgrading from Ubuntu 9.04 to 9.10. This How-To will show you how to fix some of those audio issues, including: No audio in Flash videos. Audio stops entirely after opening a Flash video. No audio at all. Audi
マイボイスコムは2010年1月19日、入浴剤に関する調査結果を発表した。それによると調査母体のうち入浴剤を使う人においては、一番人気のある入浴剤は【花王(4452)】の「バブ」であることが分かった。31.6%の人が好んで使うと回答している。「バスロマン」「日本の名湯」「バスクリン」などが上位陣では続いているが、バブの人気は群を抜いているのが確認できる。また、入浴剤には個人の好みが強く出るようで、列挙された選択肢以外の銘柄を良く使っている人も21.6%に達している(【発表リリース】)。 今調査は2010年1月1日から5日にかけてインターネット経由で行われたもので、有効回答数は1万2769人。男女比は46対54で、年齢階層比は10代1%・20代13%・30代34%・40代31%・50歳以上21%。 お風呂の湯船につかる時はお湯のままでも良いが、香りや効用を楽しむため、入浴剤を入れる人も多い。実
2008.03.12 LSB 3.2 と Python テーマ:プログラミング言語 Python を使う(336) カテゴリ:Python LSB3.2でようやく対応APIが十分にLinuxの標準化が進まなかった理由 と Linux Standard Base 3.2がリリース Linux標準にPerlとPythonが追加 を読む。 Python も Linux 標準に追加されたのね。LsbPython をさらっと見てみる。 # Some code requires a specific version of Python, but it's not always possible to install that version as "the" Python. For example, Red Hat and Fedora have a tight coupling between a
AddressテーブルをPluginで追加してみる Plugin の雛形を作る。 以下のタスク(コマンド)を実行することで雛形のフォルダを構成してくれる 作成したいPluginの名前は「opSamplePlugin」 # symfony opGenerate:plugin opSamplePlugin すると、/plugin の下に opSamplePlugin フォルダが、その中に、 /app, /lib, /test フォルダが作成される。 Schemaを設定する Pluginで独自のDBを設定し使用する場合、schema.ymlを設定する必要がある。 /plugin/opSamplePlugin/config/doctrine/schema.yml を用意し、テーブルを設定する。 (例) Address: columns: id: { type: integer(4), primar
サイトメニュー インストール 開発環境・エディタ リファレンスマニュアルの入手 1.8.xから1.9.1への移行? 有用ライブラリ 有用ツール ポータル 公式サイト(ruby-lang.org) RAA Ruby Forge Rubyist Magazine Wiki内検索 キーワード AND OR ページ内容も含める 編集者向け 連絡帳 プラグイン一覧 アクセス情報 Keyword InterWikiName Footer [edit] 最近更新されたページ 2018/6/2 vapor 2017/12/29 良質の隠しカメラ 2017/8/17 Louis Vuitto supreme iphone8case 2017/8/16 iPhone8/8 plusケース ブランド マイケルコース 高級 アイフォン8ケース 2017/5/20 純正漢方薬局
(この記事はRuby Advent Calendar jp: 2009 : ATNDの6日目です。前日はMr.GことJugyoさんでした) 2日目のyharaさんの記事にもあるように、Ruby1.9では、1.8よりも便利な機能が満載です。 最新の安定版の1.9は、1.9.1-p243ですが、現在1.9.2の開発が進められています。1.9.2のできはYARVの作者の笹田さんが素晴しいとおっしゃるぐらいのものですが、リリースまでには一つ壁があります。 その壁というのは、RubySpecという、いろんなRuby実装の仕様をまとめようというプロジェクトがあります。先日、リリースマネージャーのYuguiさんから、このRubySpecが通らない限り1.9.2をリリースしないとの宣言がありました。 つまり、すばらしいRuby1.9である1.9.2を安心して使うには、RubySpecを通るようにRubyを
I can find many Ruby codes which use String#force_encoding . But most of them are wrong. You should not use the method. Ruby 1.9 Era In this year, the first release of Ruby 1.9 series was shipped. And I will soon release Ruby 1.9.1-p376. 2009 was the year of Ruby 1.9. In the next year, Ruby 1.9.2 will be released. It will be completely compatible with Rails 3. It also completely pass to RubySpec a
The document discusses new features in Ruby 1.9 and Rails 3, including installation instructions for Ruby 1.9.1 and an overview of changes in Rails 3 such as a new plugin API, non-blocking code, and custom responders that provide a public API compatible with Rails 2.3. Key areas covered are Ruby 1.9, Rails 3, middleware, controllers, routing, and JavaScript support.Read less
_ [Ruby] Rubyの互換性警告ライブラリを作ってみました / Je viens de faire un librairie qui alerte la compatibilité de Ruby. HikiのRuby-1.9対応をしていて、よくあるはまりどころを見つける良い方法はないかと思い、Ruby-1.8で動かしたまま、互換性の問題のあるメソッドを呼び出す時に警告を出すライブラリを作ってみました。 例えば、「Ruby-1.8では String#to_a は存在しますが、Ruby-1.9ではエラーになる」という風に無くなってしまうものに関しては、ruby -wで実行すれば、 warning: treating String as Enumerable object is deprecated; use String#each_line/lines と警告を出してくれるのでいいので
48. ��������������������� ���������������������������������������������������������������������� �������������������������������������������������������������������� ������������������������������ ���������������������������������������������������������������������� ������� ������ �����������������������
1.8 のスレッドは? green thread (ユーザレベルスレッド) 1.9 でなんか変わったの? native thread (カーネルスレッド)になった おぉ、マルチコアの恩恵を受けて高速化!? いや、並行実行はしない どういうこと? 各スレッドを順番に少しずつ実行するけど、同時には実行しない え?じゃ、速度は... 1コアでも32コアCPUでも一緒 ちょw。それって1.8でも一緒じゃん。何で並行実行しないの? Rubyから使うCの拡張ライブラリを全部、並行処理に対応させる必要があるから それは大変そうだな。連絡付かない作者もいるだろうし 1.9 では動かなくなるライブラリがあるのを避けるために、native にしたけど並行化はしなかった 確かに、正しい選択だ。で、本当は? 作業コストが大変だから(笑) ちょww。あれ?じゃあ green thread のままでも良かったんじゃね
暖かくなりましたね。 Rails 2.3が、Ruby 1.9.1対応ということで、少し試してみました。しかし、現状のところ、Ruby 1.9での運用は、まだいくつか問題があるようです。(私の知識不足な点もあると思いますが) 日々進化している分野なので、私が確認した時点からすでに修正が入っているかも知れませんが、自分が試した中で気になった点を書いてみます。環境は、Ubuntu 9.04、Rubyは1.9.1p129です。データベースとしてPostgresを利用しています。 ちなみに、自前のソースコードはUTF-8で書いているので、各ファイル(日本語文字列を使っている部分)の冒頭に # -*- coding: utf-8 -*- をつけています。I18n対応となり、ソースコードに直接日本語を埋め込むことは少なくなりましたが。 また、Hpricotのto_htmlで取得した文字
Some of the biggest changes in Rails 3 involve how Rails expects plugins to behave. Dependencies If your plugin has dependencies, make it a gem and have your users install it using the Gemfile. This will ensure that Bundler properly calculates the dependencies alongside any other dependencies the user’s app has. If You Override Something, Require It If you need to override ActionController, Active
ruby -v mkdir -p ~/.rvm/src/ && cd ~/.rvm/src && rm -rf ./rvm/ && git clone git://github.com/wayneeseguin/rvm.git && cd rvm && ./install rvm install 1.9.1 rvm list rvm 1.9.1 rvm 1.9.1 --default rvm system gem install tzinfo builder memcache-client rack rack-test rack-mount erubis mail text-format thor bundler i18n gem install rails --pre rails topscore cd topscore rails server gem install sqlite3-
Ruby Weekly is a weekly newsletter covering the latest Ruby and Rails news. Whenever something's a really "big deal" in the Ruby world, we cover it - even if it makes more sense on Rails Inside (which is now switching to a user contributions model). Given that, we've gone through all the latest and greatest Rails 3.0 related links and put together a ton of them to help you on your way with the rec
The upcoming version 3 of Ruby on Rails will feature a sexy new querying API from ActiveRecord. Here is an example: User.order('users.id DESC').limit(20).includes(:items) You can see that all queries are now chainable. This has two principal benefits: first, you can programmatically generate complex queries (based on user input or other data); and second, you can refactor your queries to eliminat
Rails 2.3 has a ton of really nice functionality locked up in monolithic components. I've posted quite a bit about how we've opened up a lot of that functionality in ActionPack, making it easier to reuse the router, dispatcher, and individual parts of ActionController. ActiveModel is another way we've exposed useful functionality to you in Rails 3. Before I Begin, The ActiveModel API Before I begi
Phusion Passenger is an Apache and Nginx module for deploying Ruby on Rails web applications, and is mainly focused on ease of use and stability. Recent changes Phusion Passenger is under constant maintenance and development. We are pleased to announce Phusion Passenger version 2.2.9. This is a bug fix release. Fixed compatibility with Rails 3. Actually, previous Phusion Passenger releases were al
A year ago today, we announced that Rails and Merb would merge. At the time, there was much skepticism about the likelihood of the success of this endeavor. Indeed, The most common imagery invoked by those who learned about our plans was a unicorn. At RailsConf last year (well into the effort), both DHH and I used unicorns in our talks, poking fun at the vast expectations we’d set, and the apparen
So Django has an interesting feature called "generic views", which essentially allow you to to render a template with generic code. In Rails, the same feature would be called "generic actions" (just a terminology difference). This was possible, but somewhat difficult in Rails 2.x, but it's a breeze in Rails 3. Let's take a look at a simple generic view in Django, the "redirect_to" view: urlpattern
This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.
jsonモジュール WebアプリケーションなどではJavaScriptと連携させることが珍しくないと思います。Python3.0および、Python2.6ではJSON(JavaScript Object Notation)をサポートするためのjsonモジュールが標準として追加されました。これにより、手軽にPythonとJavaScript間でデータのやりとりを行うことができるようになりました。 基本的な使い方 jsonモジュールの基本的な使い方はPickleと同じです。文字列にして返すにはdumps、ファイルオブジェクトの場合はdumpを使用します。同様に、文字列からPythonのオブジェクトにするためにはloadsを使用し、ファイルオブジェクトから読み込む場合にはloadを使います。 リスト1 dumpsを使った例 import json s = json.dumps( list(ran
リスト処理関数の仕様変更 Python3.0では、リスト処理に関わる多くの関数/メソッドに変更が加えられました。また、リスト処理を行う際に非常に便利なリスト内包表記にも追加・変更が加えられています。今回は、それらの関数/メソッド/構文について書きたいと思います。 iteratorへの変更 まずは、リスト1のソースをPython2とPython3で実行してみてください。 リスト1 リスト処理関数 print(range(10)) # range print(map((2).__mul__, range(10))) # map print(filter(lambda x: x % 2, range(10))) # filter print(zip(range(5), range(5, 10))) # zip d = dict(aa=100, bb=300) print(d.keys()) #
関数アノテーションとは 関数アノテーションとは関数の引数と戻り値に付加情報をつける機能です。PEP 3107 -- Function Annotationsで定義されていて、Python 2.6へbackportされていないので、利用するにはPython 3.0以降が必要になります。 まずは、インタラクティブシェルで関数アノテーションの例を見てみましょう。 >>> def foo(a: "a argument", b: int) -> ["return", "value"]: ... return a+b ... >>> help(foo) Help on function foo in module __main__: foo(a: 'a argument', b: int) -> ['return', 'value'] >>> foo.__annotations__ {'a': 'a
multiprocessingモジュール multiprocessingモジュールは、Python2系列では2.6以降、3系列では3.0以降に標準となったモジュールです。このモジュールはthreadingモジュールに似たAPIでプロセス間通信などの機能を提供します。このモジュールにより、GILの問題を回避することができ、複数のCPUやCPUコアの性能を生かすことができます。また、このモジュールはローカルのみならず、リモートでのプロセス間通信も行うことが可能で、簡単に分散処理などを実装することができます。 まず、GIL(Global Interpreter Lock)とはPythonのインタプリタ上で一度に1つのスレッドだけが動作するよう保証するためのロックです。このロックによって、同時に同じメモリにアクセスするスレッドが存在しないことを保証します。 しかしながら、このロックによって、一度に
The Evolution of Python 3/.orgで紹介されてた記事を翻訳してみた。よくわからないところは気合で意訳。 元記事-> The Evolution of Python 3 By chromatic January 12, 2009 2008年12月、Python開発陣は人気の動的言語、Pythonの新しいバージョン、Python 3.0 をリリースした。Pythonを作った Guido van Rossum は Python 3000 (今のPython 3.0) のアイデアを数年にわたり議論してきて、コミュニティーは2005年から力をいれて取り組み初めた。開発プロセスについてと、新バージョンがPythonの将来に対しどんな意味をもつかについて、Guidoが快くインタビューに応じてくれました。 まずは、Python 3.0のリリースおめでとうございます。 Guid
Python 3が後方互換性を捨ててでも求めたもの:よりPythonicなPythonを目指して(前編)(1/2 ページ) Python 3.0では、Python 2で書かれたスクリプトが動かなくなるような実装が行われた。なぜ、後方互換性を崩してまで大きな仕様変更を行ったのか。それは、PythonがよりPythonらしくあるためだ。 2008年12月4日、Python 3.0がリリースされました。これまで「Python 3000」や「Py3k」という愛称で呼ばれ、Pythonの次期メジャーバージョンとして開発されていたものです。 メジャーバージョンアップといっても、基本的な文法、インデントを使ったブロック表記や基本的な機能の多くはPython 2から引き継いでいます。Pythonの持つシンプルで一貫性のある設計思想を受け継ぎ、よりPythonicなPythonへと言語をステップアップさせる
What'sNewInPython3.0 - TSNETWiki on TextWorld 本文はGuido van Rossumの"What's New In Python 3.0"( http://docs.python.org/3.0/whatsnew/3.0.html )の全訳です。 すばらしい(拍手) 気になったところはここに書きためていって、ある程度まとまってからフィードバックしようっと。 (訳注:原文では『キーワード(keyword)』と書かれているが、『予約語(reserved word)』の誤りと思われる。Pythonでは、キーワードは、引数などを指定する名前(キーワード引数)などに使われ、他の言語のように予約語の意味として使われることはほとんどない) 「誤り」ってのは言い過ぎかと。単語の定義はReference Manualを参照するのが筋。 http://docs.p
Pythonでプログラムを書いていると、よく関数の中で関数を作ることがあります。 Python はクロージャに対応していて、関数の中で作られた関数は、外側の関数のローカル変数を参照することができます。 クロージャが一番役に立つ場面がデコレータです。次の例では、引数を取るデコレータを作るために関数内関数を2段階作成し、それぞれのローカル変数を一番内側から参照しています(このプログラムは、Python 2.6とPython 3.0の両方で動きます)。 リスト1 # coding: utf-8 from __future__ import print_function import sys def log(out=sys.stderr): def decorator(func): name = func.__name__ def decorated(*args, **kwargs): ###
オープンソース・ソフトウエア団体のPython Software Foundation(PSF)は米国時間2008年12月3日,スクリプト言語の新版「Python 3.0」(別名「Python 3000」「Py3k」)のリリース候補版を公開した。旧版「Python 2.x」との互換性がないため,既存Pythonアプリケーションを新版環境で動かすにはコードの修正が必要になる。 PSFのWebサイトで新版のソースコード(Gzip形式/Bzip形式)とWindows用インストーラ(x86向け/AMD64向け)を無償ダウンロードできる。 新版は,これまでstatement(文)としていたPrint命令をfunction(関数)に変更したほか,比較演算子の仕様やさまざまな文法を変えた。PSFはアプリケーション開発者の負担を軽減するため,Python 2.xコード用の変換ツールを提供している。 米メデ
イントロ Python2.6/3.0共にRC版がリリースされ、正式リリースが近づいて来ました。Python3.0の大きな変更の一つが、 Python2.xのstrとunicodeがunicode文字列のstrに統合され、従来のstrの代わりにbytesを導入することで、バイト列と文字列が明確に分けられたことです。 現在、Python2.5では、unicode文字列の内部表現がucs2のものとucs4のものがあり、それぞれの間では拡張 モジュールの互換性がなくなっています。Python2.6/3.0でこの状況がどう変化するのか調べてみました。 Python2.xのunicode内部表現について Python2.5/2.6では、configureオプションに、--enable-unicode=ucs[24] というものがあり、デフォルトでは2になっています。 また、FedoraやUbuntuの
NISHIO Hirokazu's website > NISHIO HIROKAZU # Archived COREBlog これは2004年11月4日から2006年2月18日までZopeで運用していたCOREBlogの静的なアーカイブです。 新しい日記は「西尾泰和の日記」で運用しています。 RSSを取得するプログラム EnglishImprinterに貼り付ける英文をスラッシュドットのRSSから取ってきたら面白いかと思ってRSSの取り方を調べる。 import feedparser d=feedparser.parse("http://slashdot.org/index.rss") return d.entries[0].description えっ、3行…。さすがPython…。 追記@2004/12/09 このエントリはJythonでRSSを取得とRSSを取得するプログラム-補足
Ruby Weekly is a weekly newsletter covering the latest Ruby and Rails news. Harmony, from Martin Aumont, is a new Ruby DSL for executing JavaScript and DOM-using code from within Ruby apps. Why's that cool? Well, it enables you to build your own Ruby-level unit tests for JavaScript code within your Web applications - everything can be under one set of test suites! Harmony sounds like a significant
新潟合同法律事務所は、多くの市民の皆さんの生活に関わる身近な事件(離婚、相続、債務整理など)、社会的事件に取り組んでいます。「2ちゃんねる」に対する損害賠償金を回収! この度,「2ちゃんねる」に対する損害賠償金の取立に成功したのでご報告いたします。 「2ちゃんねる」については,数多くの名誉棄損的書き込みがなされ,管理人に対しても多くの人が訴訟を起こし,損害賠償を命ずる判決が言い渡されています。しかし,「2ちゃんねる」の管理人の印税債権などが会社名義とされているため,ほとんどの場合,「2ちゃんねる」の管理人に対して損害賠償債権を持つ人も泣き寝入りをさせられてきました。 私は,「2ちゃんねる」の管理人が,掲示板の書き込みを書籍にした出版社に対して有する印税債権を差押え,出版社に印税の支払いを求めました。出版社からは,印税債権を持っているのは管理人ではなく別の会社(A社)だとして支払いを拒否
とりあえず,自分が使う記法にのみ対応.後,simple-hatena-mode必須. (defvar org-export-hatena-notation-subsection "^\\*\\* \\[.*\\]+ \\([^\t\n\r\f]*\\)$") (defvar org-export-hatena-notation-quote '("[ ]*#\\+BEGIN_QUOTE" ">>" "[ ]*#\\+END_QUOTE" "<<")) (defvar org-export-hatena-notation-super-pre '("[ ]*#\\+BEGIN_EXAMPLE" ">||" "[ ]*#\\+END_EXAMPLE" "||<")) (defvar org-export-hatena-notation-src '("[ ]*#\\+BEGIN_SRC" ">||"
最近導入した,プログラマに必須の拡張(と僕は思っている) undo-tree.el をいじって gist に置きました.変更点は以下になります. q で,*undo-tree* バッファ/ウィンドウを削除し元のwindowに戻る 上下分割ではなく左右分割 上下分割は使わないのでフラグで場合分けなどはしていません.ウィンドウ幅は半分でいいので設定用の変数などはありません.今回の変更で行うべき dot.emacs への追加の設定はありません.undo-tree.el は何ができるのか,どう導入するのかは関連リンクにわかりやすく書いてあります. 関連リンク undo-tree.el- Tobby Cubbit undo-tree.el の導入 - とりあえず暇だったし何となく始めたブログ undo-tree.elを小さいwindowで実行して終了時にもとのwindowに戻るようにする - hit
この記事は、はてブ数をAPIで得る方法も書いてるので、Emacs使いじゃなくても役立つかもしれない? やっぱりブログをやっていると、評価は気になるものである。はてなならばはてなブックマーク数だ。 かといってちまちまブラウザではてブ数を確認しにいくのはだるいし時間の無駄である。数秒であったとしても、塵も積もれば山となるっていうじゃない。 はてブ数が気になる、かといっていちいち確認するのは面倒。この問題に対して、Emacs使いならば「モードラインにはてブ数を表示する」という解決策を選ぶもの。これを実現する display-hatebu.el を速攻で作ってみた。 M-x install-elisp-from-emacswiki display-hatebu.el でインストールしてくれ。さらにRubyとjsonライブラリが必要だ。Rubyインタプリタを入れた後で gem install jso
最近はゲームばっかりで中々プログラミングが進みません。ううむ。 最近はanything-show-kill-ringをM-yにバインドして使うようになっていたんですが、これでやたらと気になることが一つ。 Emacsにはkill-ringという、killした文字列を溜めるリストがありますが、killしたものが重複していようとなんだろうと構わず先頭から突っ込んでいきます。なので、何回かkillを繰り返していると、同じkillが複数先頭から設定される、という光景を目にします。 これが個人的にひじょーに苛ついたので、こんなマクロを書いてみました。 (defmacro make-unique-kill-ring-advice (arg) "Set advice function of arg that always unique to kill-ring" `(defadvice ,arg (aro
Emacsはひとつの窓(ふつうの意味の「ウィンドウ」、Emacs用語の「フレーム」)の中に複数の表示領域(Emacs用語の「ウィンドウ」)を持つことができる。そして、ヘルプ等を表示させる場合はEmacsが勝手に画面を分割して別のウィンドウに表示させる。まぁ、Emacsを使ってるならみんな経験してることだ。 ワイドディスプレイが台頭する中、フレームの横幅はどんどん長くなっている。Emacs22までだと強制的に上下分割されてとても使いづらかった。Emacs23になったら横幅にあわせて、上下分割か左右分割か判断してくれるようになった。横幅が広いと左右分割してくれる。表示行数が減らないのでこれは嬉しい。画面の有効活用だ。 Emacs22で左右分割させたいならば、M-x install-elisp-from-emacswiki display-buffer-for-wide-screen.elしてく
2010年02月03日03:46 カテゴリプログラム 今風のEmacsの設定ってどんな風? ヤバいよね~。もうすっかり虜。 Emacs 22.3。 23.1じゃなくってスイマセン。 起動が遅い遅いゆうてる人もいますが、せっかくautoloadに対応してるマクロ群をしょっぱな load とか require したらそりゃ遅くもなりますって。勿体ない。 正しく autoload を使ったり、hook関数内で設定を行う手法に切り替えれば、起動は格段に高速化されると思うんだけど、どーなんでしょう。 部長のEmacs環境、色々手を入れてますが、起動は一瞬です。一秒以内。その代わり、はじめて dired やorg-modeを使う時、一瞬読み込待ちが入りますが。 ま、どっちを取るかは…本人次第ですけど、起動時間にイライラしてる人は設定を見直してみる価値はあるんじゃないかな。 ただ、部長は有名どころの拡張
誰か作っているような気もしますが、flymake のエラーメッセージを表示する関数の popup-tip 版をでっちあげてみました。 実装は、minibuffer に表示する版の message を popup-tip に置き換える形でやっつけてでやりました。 なお、popup-tip は、popup.el の関数です。以下の URL より取得可能です。 http://github.com/m2ym/auto-complete (require 'popup) (defun my-popup-flymake-display-error () (interactive) (let* ((line-no (flymake-current-line-no)) (line-err-info-list (nth 0 (flymake-find-err-info flymake-err-info li
GNU Emacs拡張ガイドは既に絶版した本らしいですが、一年くらいAmazonのマーケットプライスで買って,本の内容を色々と設定した後しばらくの間放置していたのですが久々に見つけたのでなんとなくまとめてみます。内容はEmacs Lispの実践的なtips集とでもいうべきか. これを一通り読めばEmacs Lispのソースが読める + マイナーモード or メジャーモードが作れるくらいにはなるかと思います。古い本ですがまあなかなか内容はいいんじゃないかと。 とりあえず始めに目次と概要について触れときます 1章 Emacsをカスタマイズする 簡単なカスタマイズ + aproposコマンド重要という内容 2章 簡単なコマンドを作る 簡単だけれども非常に役に立つコマンドの作成. Lispの解説をしつつ実装. 実際この手のコマンドはあまり見かけないが結構便利. 3章 コマンド間の強調 要するにun
元ネタ:C-aで「行頭」と「インデントを飛ばした行頭」を行き来する - なんとなく日記 たしかに,デフォルトの設定で C-a を連打することはないので「行き来する」というのは良いアイディア.なるほど〜.シンプル版を書いてみました.引用したブログ記事とは挙動が少し違います.好みの問題です. (defun my-move-beginning-of-line () (interactive) (if (bolp) (back-to-indentation) (beginning-of-line))) (global-set-key "\C-a" 'my-move-beginning-of-line)
昨日のつづきだったり。 Web 上から変換候補を取得する事で流行語やネットのスラングにも対応できる social-ime から elisp で変換候補を取得してみました。 # まあ、既に SKK で social-ime を使うための elisp があったりしますが、まあ、昨日のネタの延長ということで…。 social-ime には2種類の API が存在し、1つが通常の「かな漢字変換API」もう1つが「予測変換API」です。 HTTP GET する関数は分離し、以下のように作ってみました。 (require 'url-http) (require 'json) ;; HTTP GET し、その結果を返すだけの関数 (defun my-url-get-candidates (url &optional coding) (let (buf p) (unwind-protect (progn
Google 検索をするとき、「あ」とか打ったら、「あまぞん.com」とか色々補完候補がでてくるアレを elisp で取得してみよう、と。 ただそれだけです。はい。 下記のような関数をでっちあげてみました。url-http 関連と json.el を使ってます。両者共、Emacs23 ならば標準であります。 特に何かで応用して使おうとか考えてなかったので、そのままカレントバッファに取得した候補を insert してしまいます。 # とりあえず候補を取ってみようという漠然とした目的があって作っただけなので(^_^; (require 'url-http) (require 'json) (defun my-google-suggest-get-candidates (input) (let* ((url (concat "http://clients1.google.co.jp/comple
今更ながら、一時期 gnu-emacs-sources で話題になっていた undo-tree.el を導入してみました。 undo の履歴を木構造としてもって、それを辿る事ができる elisp です。かなり便利です。 ダウンロード git リポジトリから undo-tree.el を取得します。 git clone http://www.dr-qubit.org/git/undo-tree.git undo-treeundo-tree.el が取得できるだけなので、時間は全然かかりません。 設定 undo-tree.el を load-path の通った場所に置き、以下の設定をするだけで完了です。 (require 'undo-tree) (global-undo-tree-mode) 使う 普通に undo (C-/ や C-_) をして、C-g を押した後に undo をして red
分割したウィンドウの大きさをインタラクティブに変更する - リタマス さんの記事より。 window-resizer を起動して、hjkl 以外のキーを押したとき、そのキーが動作しないのがちょっと気になったので、 昔書いたコードからひっぱってきて合わせてみました。 (defun my-window-resizer () "Control window size and position." (interactive) (let ((window-obj (selected-window)) (current-width (window-width)) (current-height (window-height)) (dx (if (= (nth 0 (window-edges)) 0) 1 -1)) (dy (if (= (nth 1 (window-edges)) 0) 1 -1))
デフォルトのキーバインドが異常 Emacs をお使いの方であれば、次のようにしてウィンドウを分割しまくりの生活を送られていることと思います。 C-x 2 や C-x 3 を入力してウィンドウを分割。これは基本中の基本ですよね。しかし、分割されたウィンドウのサイズを変えるキーバインドとなると、即座に出てくる人はガクッと少なくなるのではないでしょうか。 この背景には、 デフォルトのキーバインドが覚えにくい というか覚えても入力しにくい 入力しにくいから使わない 忘れる といった一連の流れがあるのではないかと、僕は密かに踏んでいます。 ここで、その覚えにくいデフォルトのキーバインドを載せておきましょう。 キー説明 C-u -1 C-x ^ウィンドウを縦方向へ縮める C-x ^ウィンドウを縦方向へ広げる C-x {ウィンドウを横方向へ縮める C-x }ウィンドウを横方向へ広げる 例えば 3 文字分
Emacs の設定に慣れてくると、様々なモード別に設定をほどこしたくなってくるかと思います。 具体的には、プログラム言語によってスタイルを変えたいとか、特定のモードに限ってキーバインドを変えたいとか、モード別に起動するマイナーモードを設定したい等が思い浮びますが、そういった細かい設定に対応するために、Emacs には hook という仕組みがあります。 イベント発生時に設定を有効化できる、それが hook。 hook:フックとは、引っ掛けておくフックのことで、決められたイベント (例えば、ファイルを保存するときとか、モードを変更したときなど) に予め関数をセットしておくことで、イベント発生のタイミングで関数を実行させることができる仕組みです。 よくある例を挙げてみましょう。これはメジャーモード emacs-lisp-mode を呼び出したときに、実行される hook です。 ですが、この書
Emacs Lispをバイトコンパイルすると動作が高速化するのは常識である。しかし、バイトコンパイルには致命的な欠点があって、Lispファイルの方がバイトコンパイルファイルよりも新しい場合は、古いバイトコンパイルファイルが読み込まれてしまうのだ!!そのため、Lispファイルを更新したらバイトコンパイルしておかないといけない。 このどうしようもない仕様をなんとかするべく、自動バイトコンパイルで自衛をしている人はけっこういると思う。というか、自動バイトコンパイルがないと絶対に泥沼にはまってしまう。 自動バイトコンパイルとは、Lispファイルを保存したときに after-save-hook をつかって自動でバイトコンパイルをするというもの。しかし、これだとバイトコンパイル中は待たされてしまう。シングルスレッドの悲劇。 Emacsで同時に複数の処理を実行するには、タイマーを使うか、外部プロセスに任
reduce の使いどころを調べました。自分の dot.emacs.d 以下を grep -r しても、anything-find-project-resources.el ぐらいでしか reduce の利用例がなかったのですが、書籍「ANSI Common Lisp」 に "2引数しかとらない関数を拡張するのに使える" という解説がありました。 intersection は引数の2つのリストの共通部分を求める関数です。 (intersection '(a b c d) '(b c d e)) ;-> (d c b) (intersection '(a b c d) '(b c d e) '(c d e f)) ;-> error: (error "Bad keyword argument (c d e f)") これに対し、以下のようなサンプルコードで、複数のリスト共通要素を返す方法が示
会社の人に、ATOK で "きょう" と入力することで様々なフォーマットの本日日付を候補として出すというショッキングな技を披露して頂いたので、emacs でできるようにしておいた。 popup.el があれば簡単。でも ATOK は欲しいな。 (require 'popup) (setq my-date-format-list '("%m-%d" "%m-%d(%a)" "%Y/%m/%d" "%Y-%m-%d" "%m/%d" "%m/%d(%a)" "%y-%m-%d(%a)")) (defun kyou () (interactive) (insert (replace-regexp-in-string "\\\\" "" (popup-menu (mapcar 'format-time-string my-date-format-list))))) (global-set-key
Emacsを使ってるみんな、recentfというパッケージを知っているかい? 「最近使ったファイル」を上から順に並べていってすぐに切り換えられるようにするヤツだ。最近使ったものを一番上の見易い位置に置いておくのは超整理法の手法で、すこぶる便利だ。知らない人はすぐに使おう。 ただ、デフォルトのrecentfのインターフェースはどうしようもなく使いづらい。ダイアログとかごちゃごちゃになってるし。たかだか超整理法の実装に1360行もあるってどういうことなの?そのまま使っていても、いまいち便利さに気付かないかもしれない。こんなのは空気のようなツールであるべきで、使い方を覚えるようなものではない。 anything.elから最近使ったファイルにアクセスする そこで、anything.elの出番だ。auto-install.elを使って M-x auto-install-batch anything
_ Emacsユーザのためのadvice Emacs Advent Calendar jp: 2009の参加記事。昨日はid:hayamizさん。 明日は他に参加する人がいなければid:authorNariさん。 最近はVimを使うことが多いけど、shiroさんのお話を聞いてやっぱりLispは強力だなあとか思ったりしたので参加してみた。 知ってる人も多いと思うけど、Emacs Lispのadviceという機能を簡単に紹介しよう。 adviceとは、簡単に言うとCLOSのmethod combinationみたいなものだ。あるいは、Railsのbefore/after/aroundフィルタみたいなものと言った方がいいだろうか。要は、既存の関数(正確にはマクロや特殊フォームを含む)の実行の前(before)あるいは後(after)、前後両方(around)で実行したいコードを定義する機能である
emacs側では以下の2つのようなプロセスを呼び出せばいいことに気づいた。 . 動作 その後 this-process 渡されたコマンドを実行して もう一方のprocessが終わってなかったら殺す。 that-process sleepして もう一方のprocessが終わってなかったら殺す。 ;(require 'cl) (defvar spscwt-hooked-process nil) (defvar spscwt-sentinel-function nil) (defun spscwt-process-will-be-kill (that-process &optional this-buf) (lexical-let ((that that-process) (buf this-buf)) (lambda (&rest args) (when (eq 'run (process-s
Emacs Advent Calendar jp: 2009 参加記事です。昨日は id:rubikitch さんでした。明日は id:hayamiz さんです。今回の記事では機能とその使い方について、自分のこれまでの経験を少しご紹介したいと思います。 はじめに Emacsとは気づけば長いつきあいで、大学生の時からもう14年ほど使っています。今でもいちユーザーの立場でほそぼそと使っていますが、常に発見の連続で、懐の深さに感動している毎日です。 なんと言ってもEmacsの醍醐味は、両手の前に広がる際限のない拡張性です。EmacsWikiやMeadowMemoを見ていると、知らなかった新しい機能がごろごろしていて、そんなEmacsLispを発見するととても楽しくなります。 大量の機能とどうつきあうか しかしながら、新しい機能を入れたときにいつも悩むのは、どうやってその機能を呼び出すかです。ファ
Emacs Advent Calendar jp: 2009参加中!次はkiwanamiさん。 auto-install.el は拙作 install-elisp.el の後継バージョンである。サイトからEmacsLispファイルをダウンロードし、所定の位置に配置し、バイトコンパイルする。最大の違いはダウンロードが非同期になったことだ。 install-elisp ではダウンロード時に待たされるが、 auto-install ではダウンロード中も作業をすることができる。 ダウンロードはEmacsWikiから。install-elispが使えるならば、M-x install-elisp-from-emacswiki auto-install.el を実行する。 http://www.emacswiki.org/emacs/download/auto-install.el そして、以下の設定を
現在のカーソル位置のカラム値を基準に折り畳み表示する cn-outline.el というマイナーモードを作りました。既存のアウトライン表示用のマイナーモードには org-mode, out-line-mode, hide-show がありますが、それらと比較したメリットは以下になります。 手軽 特別な記法がない デメリットは以下になります。 機能が少ない cn-outline.el は emacs の標準関数 set-selective-display を扱いやすくする ということに焦点を絞り作った簡易アウトライナーです。 set-selective-display は引数の値を基準に表示を折り畳む関数です。じつは呼び出しキーも割り当てられています。例えば、カラム値3 より大きい値から始まる行を折り畳みたい場合は、 "C-u 3 C-x $" とタイプします。試してみると、とても打ちにくい
使えそうな削除処理をいくつか書いたので、anything のソースにまとめてみました。こうすれば、覚えるキーバインドは一つですみます。僕は D の連打に割り当てる予定。ためしに (anything-enable-shortcuts 'alphabet) を使ってみたので、anything.el の更新が必要かもしれません。 (defvar anything-delete-command-list '(("ポイントより上を kill" . "(kill-region (point) (point-min))") ("ポイントより下を kill" . "(kill-region (point) (point-max))") ("バッファ全体を kill" . "(kill-region (point-min) (point-max))") ("ポイントより上を delete" . "(dele
Emacsを使ってて怖いことのひとつは、ミニバッファに入力中にC-gを押してしまうことだ。すると、今までの入力がパーになってしまう。 俺はskkを使っていて、変換をキャンセルするときにC-gを押すのだが、押しすぎたりタイミングを間違えたらミニバッファ入力がキャンセルされてしまう。なので、ミニバッファに日本語を打つときはいつも冷や冷やしていた。 以下の設定を加えると、C-gを押したときに現在の入力がヒストリーに記録されるようになる。間違ってC-gを押してしまった場合は、再び同じコマンドを起動してM-pで前の入力を呼び戻せるぞ。 (defadvice abort-recursive-edit (before minibuffer-save activate) (when (eq (selected-window) (active-minibuffer-window)) (add-to-hist
今年一年は、Emacs の記事を多く書いてきましたが、1年の纏めとして、今まであえて避けてきた Emacs Lisp についての話をしておきたいと思います。 Emacs Lisp はシンボルの集合、それは大相撲協会が力士の集合であるのと同じ。 Emacs Lisp (以下、Elisp) は、他の多くのプログラミング言語と違い、シンボルというものの集合で出来ています。例えるなら、大相撲協会が力士というものの集合で、出来ているのと同じだと言えます。 プログラムでよくある、変数に値を代入する式を書いてみましょう。 (setq yokoduna "朝青龍") ; シンボル^ ^シンボル ^シンボル 上の式は、全てシンボルで構成されていますが、それらは、関数であったり、変数であったり、文字列であったりします。 Elisp は、シンボルにカッコやクオートをつけることで、その役割を変えるのです。それは、
Source codeにおけるindentの流儀についての議論は果てがないように見受けられます。I.S.にとってもindentについては拘りがあり、defaultの設定では満足できないことが多いです。 Emacsではfileの編集中に自動的にindentを行ってくれますが、そのindent方法が自分の好みでなければ、その便利な機能も一転迷惑極まりない機能に成り果てます。 Emacsでは、設定file*1において、以下のようにstyleを選択することができますが、その用意されているstyleの全てが自分の好みでなければ、自分でindent設定を細かく記述するか、手動でひたすらindentしつづけるか、自動indentの苦痛に黙って耐えつづけるしかありません。 (add-hook 'c++-mode-hook '(lambda () (c-set-style "gnu") ; k&r、bsd、
さまざまな現代的なインターフェースを実現できるようpulldown.elを大幅に拡張しました。それに伴って抽象度も上がったため、pulldown.elという名前は少し内容にそぐわなくなりました。そこでpulldown.elあらためpopup.elという名前で開発を続けていくことにしました*1。マーケティング的にはあまりよろしくないと思いますが、主な利用者はauto-completeだけなのでまあいいでしょう。 成果物はいつも通りauto-completeのリポジトリから取得できます。 http://github.com/m2ym/auto-complete さて、今回の拡張で何ができるようになったかですが、おそらく次のスクリーンショットを見れば一目瞭然かと思われます。 見ての通り、多階層ポップアップメニューとツールチップが実現できるようになっています。元々、これらの機能を実装するつもりはな
冬のはずなのにまだまだ薄着で過ごしています。というかセーターとかマフラーとか持ってないし。 道行く人達は冬の装いが多いですが、私は寒さに対してはやっぱり鈍感なようです。暖房代がかからないのは助かります(違 さて、つい先日、id:rubikitch さんが「anything.elを使ってzshの履歴検索をする - http://rubikitch.com/に移転しました」にて、anything.elをフル活用してzshの履歴検索を行う方法を提示されていました。 なんか参考として私のはてダのエントリーが貼られていますが、完成度とか速度は比べものになりませんです。はい。 しかし私個人としては、ターミナルにいるのに毎回Emacsのフレームが出てくるのもあれかなぁ、と思いまして、なんとかzshの中だけで完結できないものかなぁ、となんとかやってみました。 色々試してみたところ、anything.elの
;; copied from rails-lib.el (defun ik:decamelize (string) "Convert from CamelCaseString to camel_case_string." (let ((case-fold-search nil)) (downcase (replace-regexp-in-string "\\([A-Z]+\\)\\([A-Z][a-z]\\)" "\\1_\\2" (replace-regexp-in-string "\\([a-z\\d]\\)\\([A-Z]\\)" "\\1_\\2" string))))) (defun ik:camerize<->decamelize-on-region (s e) (interactive "r") (let ((buf-str (buffer-substring-no-prop
以前、冗談で作った拡張をいくらか改善しました。emacs のフレームワーク anything のインターフェースでチケット番号を入力し、Firefox などのブラウザで該当するチケットのページを開く拡張です。 anything-show-ticket | GitHub ソースコードをロードパスの通ったところに配置し、以下のように設定します。 (setq ast-bts-address '(("DemoProject" . "https://my.redmine.jp/demo/issues/show/%s") ("Meadow" . "http://www.meadowy.org/meadow/ticket/%s") ("OpenPne" . "http://redmine.openpne.jp/issues/%s"))) (require 'anything-show-ticket) ;
scratchバッファの存在意義であるC-j(カーソルの直前にあるS式を評価して出力)ですが、関数定義中などでは一時的に通常の動作(改行+インデント)に戻ってほしいことがあります。次のコードを評価すると、まさにその挙動を手に入れることができます。 (defadvice eval-print-last-sexp (around eval-print-last-sexp-or-newline-and-indent activate) (condition-case nil (progn (scan-lists (point) -1 (point-min)) (newline-and-indent)) (scan-error ad-do-it))) これによりトップレベルのS式のみが評価対象になります。scratchバッファでの作業が大分快適になると思います。
ワンキーで dired のソートタイプを切り替える みなさん dired と共に良き Emacs ライフをお送りのことかと思います。 この dired では s (dired-sort-toggle-or-edit) を押すことにより「ファイルの変更日時順」と「名前順」、二種類のソートタイプを切り替えることができるのですが、正直これだけじゃ物足りません。やっぱりファイルサイズとか、拡張子別でソートがしたくなります。 以前 最近知った dired の便利な機能 - mooz deceives you で書いたとおり、 C-u s というように前置引数をつけて dired-sort-toggle-or-edit を呼ぶことで、様々なソートタイプを選択することが可能となっています。 ということで、ファイルサイズ順にソートしたければ C-u s としてから -lS と打ち込んで Enter を押せ
友人がくれと言ってきたので部分的に晒しておく. .emacs .emacsには,load-path関係の設定と,各設定ファイルのロード,M-x custmize の設定が書かれているだけ. 設定ファイルは,基本的な設定と,elisp個別の設定に分けて管理. ;; -*- Mode: Emacs-Lisp ; Coding: utf-8 -*- ;;--------------------------------------------------------------------; ;; 引数をload-pathに追加する. ;; (add-to-load-path "/hoge/hoge/")で/hoge/hogeがload-pathに追加される ;;--------------------------------------------------------------------
(defun describe-timer () (interactive) (let ((tl timer-list) timer) (pop-to-buffer (get-buffer-create "*timer*")) (erase-buffer) (insert "TIME FUNCTION\n" "-------------- --------------------------\n") (while tl (setq timer (car tl)) (insert (concat (format-time-string "%m/%d %T" (list (aref timer 1)(aref timer 2)(aref timer 3))) " " (symbol-name (aref timer 5)) "\n")) (setq tl (cdr tl))))) こんな出力が
元ネタ : anything.el + howm - # cat /var/log/stereocat | tail -n3 Common Lisp を気にしだした最近の気分で書くとこうなります。もちろん僕のコードほうが優れているという主張ではありません。ついでにいつものチラ見機能もつけておいた。howm とは長い付き合いになりそう。anything-howm.el を育てていきます。 (require 'cl) (require 'anything) (require 'anything-match-plugin) (require 'howm) (require 'howm-menu) (defvar anything-howm-recent-menu-number-limit 70) (defvar anything-howm-persistent-action-buffer "*h
emacs と PHP でプログラミングをしていて、ビューをいじっていて改行したときに想定外に大きなインデントを入れられたときの事後対策です。dot.emacs に次の設定を追記します。 (defun php-acrobatic-indent-taisaku () (interactive) (if (eq last-command this-command) (indent-relative) (progn (delete-horizontal-space) (indent-relative)))) (global-set-key (kbd "M-h") 'php-acrobatic-indent-taisaku) 使い方 ▼ ここで RET したら、 ▼ いややりすぎですよ、という状況。 ▼ 上の設定で M-h すると、直前の行の単語の先頭にそろった! ▼ 以降、連続して M-h して
微妙に政治的な理由によりauto-complete 1.0を今日リリースしました。次のURLから入手できます。 http://cx4a.org/pub/auto-complete-1.0.tar.bz2 開発リポジトリからv1.0タグをチェックアウトするのもありです。 $ git clone git://github.com/m2ym/auto-complete.git $ cd auto-complete $ git checkout v1.0次のコマンドでインストールできます。 $ emacs -L . -batch -f batch-byte-compile *.el $ cp *.el *.elc ~/.emacs.d/バイトコンパイルしなくても動きますが、その場合は(require 'cl)されている必要があります。 記念的リリースなのでこれといった新機能はありません。安定して動
loop マクロに魅せられつつあります。これまで、見た目のとっつきにくさから避けていたのが悔やまれます。僕の把握している、loop マクロを学ぶうえで参考になる資料は以下になります。やはりこうしてみると elisp では rubikitch さんがすごい。 Loop Facility | Common Lisp Extensions LOOP for Black Belts | Practical Common Lisp The Powerful ’loop’ Macro | The Common Lisp Cookbook Common Lisp: loopマクロ用法抄 | 微酔半壊 loop マクロの使用例 | (rubikitch loves (Emacs Ruby CUI)) loopの奥深さを知る | (rubikitch loves (Emacs Ruby CUI)) elis
動作サンプル ▼ こんな感じのログバッファで ▼ 確認したい SQL をリージョン選択し、M-x sqlf RET すると ▼ 整形される。必要ならアンドゥする。 説明 symfony.el で emacs の一時バッファで SQL を含むログを監視していて欲しかったので書いた、簡易 SQL 整形関数です。SQL のキーワードのあとに改行とスペースを挿入するしくみです。symfony.el 以外でのログ監視ができる拡張には詳しくないけど、需要がある気がします。 コード (defun sqlf (start end) "リージョンのSQLを整形する" (interactive "r") (let ((case-fold-search t)) (let* ((s (buffer-substring-no-properties start end)) (s (replace-regexp-in-
久々に elisp 書いたよー。 vim だと C-a とかでできるらしいものなんだけど、emacs には無いみたい。 ありそうなんだけどなーと思いつつ、とりあえず書いてみた。 (defun increment-string-as-number (number) "Replace progression string of the position of the cursor by string that added NUMBER. Interactively, NUMBER is the prefix arg. examle: At the cursor string \"12\" M-x increment-string-as-number ;; replaced by \"13\" C-u 10 M-x increment-string-as-number ;; replaced b
1年ぶりに本日のtip。 はてな記法で書いていると、行頭のマイナスとか丸括弧の連続なんかが、はてな記法として解釈されて困ることがしょっちゅう。Emacsの場合、CTRL+C, = とすると文字番号がわかるので、それを見て手でHTML文字参照に直してもいいのですが、次のような関数を定義しておくといいかもね。 (defun replace-by-char-ref () (interactive) (let ((num (char-after))) (delete-char 1) (insert (format "&#%d;" num)))) ;; バインドするキーはお好みで変える (global-set-key "\C-cr" 'replace-by-char-ref)
Updated: yes, it's %s, not %d Sometimes, it's nice when emacs can warn you when something is happening or should happen. For example, when a new e-mail has arrived, or when there's a meeting in 15 minutes you should attend. As always, there are different way to do this, but here's what I've been using for while. Various versions of this have been circulating around mailing lists, so I don't know w
あるユーザーからの要望で、同じメジャーモードのバッファ内の単語を補完するauto-complete用のソースを追加しました。今までは現在のバッファ内の単語を補完するac-source-words-in-bufferと、全てのバッファ内の単語を単語を補完するac-source-words-in-all-bufferがありましたが、プログラミングのような作業の場合、同じメジャーモードのバッファ内からのみ単語を補完できるようなバランスの良い補完機能のほうが使いやすいのです。 このauto-complete用のソースは最新のauto-complete.elに含まれています。最新のauto-complete.elは以下のURLから取得してください。 http://github.com/m2ym/auto-complete 今回追加されたソースを利用するには次のコードを評価してください。 (push
もっと使われてもいいのにと思うEmacsの設定周りのメモ。 [関数] (eval-after-load FILE FORM) この関数は、指定されたライブラリFILEがロードされているときにのみ2番目の引数FORMを評価するというもの。 例えばmigemoをロードする時の自分の設定はこんな感じ。 ;; migemoを読み込む。存在しない場合はnilを返す (load "migemo" 'noerror) (eval-after-load "migemo" (quote (progn ;; この辺がmigemoをロードした後に評価される (defadvice isearch-mode (before migemo-off activate) "初期状態は常にnil" (setq migemo-isearch-enable-p nil)) (fset 'toggle-migemo #'mige
EmacsWiki: Zen Codingより。 ZenCoding-modeというHTMLを簡単に入力できるモードがある。 これを活用する事で、Emacs上でタグを簡単な記法で書いた後、C-とする事でHTMLに展開する事が可能になる。 このメリットとして、文字入力が少なくなる上に、タグの閉じ忘れもなくなるので早くて正確にHTMLが生成できる。 このHTML化できるというのが重要。Hamlのような独自記法だと、プログラマーに取っては楽に記述、編集ができるという便利なフォーマットなのだが、デザイナーにとっては、使いなれたデザインソフトが使えないという、非常に不便なフォーマット、という事になる。 しかし、ZenCodingだと最終的にはHTMLに変換されるので、プログラマは簡単に記述できる。デザイナーはあとで楽に編集できるという、何方にもメリットとなる。 サンプル どのような入力で、どのように
現在、auto-complete 1.0のリリースに向けてバグの修正やテスト、仕様の確定作業を行っています。中途半端に実装された機能は、今度ちゃんと実装することを念頭に置いて、ひとまずソースコードからは削除しています。オムニ補完機能によるファイル名補完機能も削除される機能の一つだったのですが、バージョンアップするにもかかわらず機能的な向上が一つもないのは微妙なので、実装してしまいました。 http://github.com/m2ym/auto-complete 上のURLから全てのelファイルをダウンロードしてインストールしておいてください(開発版です)。 後は次のコードを.emacsに書くなり評価するなりしてください。 (push 'ac-source-filename ac-sources) 適当なバッファでファイル名らしき文字列をタイプすれば自動的にファイル名補完が開始されます。 オ
マイナーモードの練習として、入力されるアルファベットをすべて大文字にするマイナーモードを作ってみました。 ;;; マイナーモードを制御する変数 (defvar upcase-mode nil) ;;; モードラインにマイナーモード名を表示するのに使う (or (assq 'upcase-mode minor-mode-alist) (setq minor-mode-alist (cons '(upcase-mode " UPCASE") minor-mode-alist))) ;;; マイナーモードのキーマップ (defvar upcase-mode-map nil) ;;; a〜zにself-insert-command-upcaseを割り当てる (unless upcase-mode-map (let ((map (make-sparse-keymap)) (key "a") (cha
pulldown.el のいちばん単純な利用例です。pulldown.el すごい! (require 'pulldown) (setq my-mail-address-list '(myad1@yahhods.co.jp myad2@hoefa.co.jp myad3@aada.co.jp myad4@ha.co.jp)) (defun my-mail-address () (interactive) (insert (replace-regexp-in-string "\\\\" "" (prin1-to-string (pulldown-menu my-mail-address-list))))) (global-set-key (kbd "M-h") 'my-mail-address) 追記(おまけ) 連想リストの場合は、たとえばこう書けます。 (setq sample-alist
javascript-mode の挙動がおかしくなってたから直そうとしたんだけど いい機会だからまた js2-mode を試してみた。 そしたらいい感じだったので今度こそ乗り換えることにした。 js2-modeを使いやすくする - speg03の日記が分かりやすくまとまっていて大変助かりました。 ほとんどの部分は参考先と同じで 変更したのは .emacs に記述する my-js2-mode-hook の冒頭部分のみ。 以下の2つの設定値を 4 ではなく 2 にした。 espresso-indent-level c-basic-offset 個人的に JS のインデントはスペース2つが好きなので。 (defun my-js2-mode-hook () (require 'espresso) (setq espresso-indent-level 2 indent-tabs-mode nil
Posted by Yugui on 10 Jan 2010 Ruby添付ライブラリの一部であるWEBrickに脆弱性が発見されました。 WEBrickは攻撃者が悪意のあるエスケープシーケンスをログに挿入することを許してしまうので、ログを閲覧する際に端末エミュレータで危険な制御文字を実行されることがあります。 この問題は既に修正済みです。直ちにすべてのアクティブなブランチのリリースが行われます。 WEBrickプロセスを更新するまでは、WEBrickのログを閲覧しないことをお奨めします。 詳細 端末エスケープシーケンスは端末とその内部のプロセスとの間の様々なやりとりに用いられます。 ここで、ネットワーク入力のような信頼されていない情報源からシーケンスが発行されることは想定されていません。そのため外部の攻撃者がエスケープシーケンスをWEBrickのログに挿入しそのログを閲覧したとすると、攻撃
Ubuntu8.10のEmacs22にRubyモードをインストールする。 パッケージのインストール KAMUYCIKAP% sudo apt-get install ruby-elisp .emacsに下記を記入する。 (autoload 'ruby-mode "ruby-mode" "Mode for editing ruby source files" t) (setq auto-mode-alist (append '(("\\.rb$" . ruby-mode)) auto-mode-alist)) (setq interpreter-mode-alist (append '(("ruby" . ruby-mode)) interpreter-mode-alist))
anything-c-source-shell-command という anything のソースを書きました。M-x shell-command または C-u M-x shell-command を anyhting から行うようなものです。僕の中では、anything-c-source-shell-history の弟分という位置づけです。アクションの一部はコードももらいました。「たぶん .zshhistory にあるよな〜とanything を起動したら、無かったよ、とほほ」というときに使います。このソースを導入すれば、anything-c-source-shell-history から "Edit and Execute" するよりも画面遷移1つ分ラクをできます。"Execute" アクションは、たぶん anything-c-source-shell-history と同じ動きを
Emacsはバッドノウハウだとか、古くさいエディタなんつーことをよく聞きます。でも、Rを使うにこれほど便利な道具はありません。 特に、Rでガリガリ計算させたい人にとってネットワーク越しで他のマシン使って計算させているうちにローカルのマシンで他の仕事させたいなんてことは、よくあること。そんなときにターミナルで起動できるEmacsを覚えておけば、快適にターミナル上でも書けますよね。Emacsってよくわからない、という理由だけでEmacs使わないというのは、もったいなさすぎな気がします。 ということで、今回はEmacsでRを使うに快適に使うための設定をまとめてみたいと思います。 ちと長いですが、これを読んでもらってEmacsの便利さを分かってもらえる人が増えればいいなーって思います。 まずはESS これがないと始まりません。debian系使ってる人はaptで簡単に導入できるのでサクッと入れておき
jump.el は、elisp シンボルの定義元にワンキーで飛べるようにする elisp です。 EmacsWiki を徘徊していたら見付けたので、その紹介です。 試していませんが、おそくらく、jump-jumper 変数の設定しだいで、elisp 以外でも使えるように思います。 紹介 通常、elisp を書くとき、Help ( describe-function や describe-variable )を利用して、関数や変数の定義元に飛ぶという事をすると思います。 しかし、その場合、 Help のバッファに移り、そこからファイル名上で C-m を押す等して定義元へ飛ぶという事をしなければならないので、少々手間がかかります。 jump.el を使うとポイント上の関数の定義元へワンキーで飛ぶ事ができ、また、ワンキーで元居たバッファに戻る事もできます。 そのため、 elisp ソースを書いた
Emacsのjs2-modeはリアルタイムに構文エラーを示してくれてなかなかよさげな感じだったのだけど、インデントまわりが残念でずっとjavascript-modeを使ってた。 結構前の話だったので、どう残念だったか思い出すために試してみた。 コールバック関数を引数に取る関数なんかで下のような感じになる。(インデント4マスの場合) hoge(function () { foo(); // ここじゃなくて bar(); // ここに来て欲しいわけ }); というのをどうにかして直せないかと探し回って対策を発見。 Editing JavaScript with Emacs — js2-mode / Projects / Mishoo's homepage ほぼ丸パクリでかなり良い感じになりました。多謝。 導入手順 とにかく必要なのは js2.el と espresso.el の2つ。ロードパス
前にやった以下の続き 画像サイズをPythonで取得してみた - 牌語備忘録 - pygo EmacsでPythonスクリプトを実行してHTMLの画像をサイズ取得して(以下略 - 牌語備忘録 - pygo 準備 PILをインストールしておく 例(macportsで) sudo port install py25-pil まずPythonで ファイル名を『get_image_size_tag_for_html.py』にして、とりあえずホームに置いた場合(~/get_image_size_tag_for_html.py) #!/usr/bin/env python # *-# -*- coding: utf-8 -*- import PIL.Image import os.path import sys def get_image_size(path): f = PIL.Image.open(
探してみても見あたら無かったので慣れないelispで書いてみたでござるの巻 (eval-when-compile (require 'cl)) (require 'flymake) (setq anything-c-source-flymake '((name . "Flymake") (init . (lambda () (setq anything-flymake-err-list (loop for err-info in flymake-err-info for err = (nth 1 err-info) append err)))) (candidates . (lambda () (mapcar (lambda (err) (let* ((text (flymake-ler-text err)) (line (flymake-ler-line err))) (cons (fo
elisp の、function, symbol-function, fset, setf, letf, flet と似たような名前の関数が、どういう構文で関数定義を置き換えるかという視点で少し整理しました。意味的な違い?に関しては調べきれてないですが、長くなってしまうので、ここで一区切り。 ▼ symbol-function の docstring "Return SYMBOL's function definition. Error if that is void. (fn SYMBOL)" ▼ function の docstring "Like `quote', but preferred for objects which are functions. In byte compilation, `function' causes its argument to be compil
Emacsauto-complete.el は,補完候補をプルダウンで表示し,補完してくれる非常に強力な Emacs の拡張です.インストール,初期設定と詳しい説明については以下を参照してください.http://www.emacswiki.org/emacs-en/AutoComplete 今回は,この拡張で関数やプロパティ名などを補完するようにしてみました.基本的には前の記事と同じような感じです.http://d.hatena.ne.jp/jimo1001/20080712/1215842570因みに,補完候補のリストは xyzzy のようにリストの記述されたファイルを使用します. 補完候補リストのファイルhttp://files.undo.jp/completions.tar.gz Source以下 JavaScript 定義です.他のモードは適当書き変えると動きます. ;; ac-m
概要 Emacs Lisp でデータを ".el ファイル" で保持する場合の扱いやすいデータ構造には、連想リスト、ベクタ型オブジェクトのハッシュテーブル、pure elisp のハッシュテーブル型オブジェクトのハッシュテーブル、clパッケージによるハッシュテーブル型オブジェクトのハッシュテーブルがあるようです。それぞれを少し触ってみました。あらかじめちょっとヒントを挙げておくと、文字列をキーにしたい場合は equal での比較を指定することです(僕がハマった)。 パターン1 連想リスト これは誰もが使いますね。基本です。 ;; データベースの作成 (defvar db-a '(("key-a" . "val-a") ("key-b" . "val-b"))) ;; 確認 db-a => (("key-a" . "val-a") ("key-b" . "val-b")) ;; データの登録
いい加減ちゃんとIDの管理をしようと思って、Emacsで動くID/Password管理ツールを作ってみました。gpgが入っていて、EasyPGやalpacaなどで自動的にファイルが暗号化される仕組みを前提にしています。UbuntuのEmacs23.1でしか試していませんが、ちょっと直せばMacやWindowsのEmacsでも動くと思います。 svn: http://svn.codecheck.in/lang/elisp/id-manager/trunk/id-manager.el 上のelispを適当なところにおいて、 (require 'id-manager) します。例によってanything前提で、 (global-set-key (kbd "M-7") 'id-manager) としておけば、M-7などで起動します。anythingで絞り込んでパスワードをコピーしたり、参照したり、
概要 anythig-web-search という、 anything アプリをつくりました。ブログ「日々、とんは語る。」で有名な id:tomoya さんのつくられた search-web.el の anythig 化です。search-web.el の解説は tomoya さんのエントリをご覧下さい。 anythig-web-search は、 emacs から直接、anyhting のインターフェイスを利用して以下のいずれかの検索エンジンにクエリを投げ、ブラウザに検索結果を表示します。 google.com google.com (search?hl=ja) google.com (search?hl=en) maps.google.co.jp/maps youtube.com search.twitter.com dictionary.goo.ne.jp www.answers.c
こんばんは。php-completion.el で、 persistent-action を用いて php.net のマニュアルを参照できるようにするハッピーハックを行いました。本体のコードを参考に、少しだけ弄って実装しました。よかったら使って下さい。僕は C-o で呼び出す関数を phpcmp-complete から my-phpcmp-complete に変更して、これから使う予定です。問題ないといいな。php-completion.el をインストール済みなら、下の設定を dot.emacs に追加すれば機能します。 (setq phpcmp-persistent-document-buffer "*phpcmp persistent doc*") (defun phpcmp-popup-document-persistent-action (candidate) (interact
Emacs の info 読んでたら、follow-mode というマイナーモードがあることを知りました。これがなかなか、ノート PC のみでプログラムをいじるような環境しかない人にはちょうど良いモードだと思います。 follow-mode といってもなかなか名前からは想像しにくいと思いますが、一つのファイル 2 つのウィンドウに分けて、シームレスに表示できるマイナーモードです。 とはいえ、文章では理解しにくいので実例で。 下の画像は、Emacs 23.1、Mac OS 用の INSTALL ファイルです。わりかし長いので、1 つの window では見切れています。 ここでウィンドウを 2 分割した後に、M-x follow-mode で follow-mode を有効にします。 同じファイルが 2 つのウィンドウに読み込まれた状態になります(2 つのウィンドウで同じファイルを見ている状
こんにちは。ネットサービス事業部開発グループの amano です。 最近eclipseなどのIDEが流行しているって聞くのですが、本当でしょうか。もし本当ならemacsやviのような洗練されたエディタを未来に残すためにも、現在使用している人が自らのノウハウを公開する記事を書かねばならないと思います。 さて、仕事柄テキストの整形をすることが頻繁にあるのですが、膨大な量のログなどを整形するときはperl、awkなどでフィルターを書きます。しかし、ほんの数行のテキストにちょっとした加工をしたいときperlで加工処理を書いて実行するというのは、あまり適切ではない場合があります。 例えば、下記のようなcsvがあるとします。 ID, NAME, RUBY, ADDR 0, 雷部どあ夫, らいぶどあお, 東京都 1, 雷部どぁ子, らいぶどぁこ, 島根県 2, 雷部怒亜蔵, らいぶどあぞう, 鳥取県 3
auto-completeのインライン補完対応をちょっぴりやってみた。 将来的にはミニバッファでのファイル名の補完なんかに対応する予定。 次のURLの実験版auto-complete.elをインストールして、 http://cx4a.org/pub/auto-complete.el (setq ac-style 'inline) を評価してやればインライン補完の雰囲気を味わうことができる。 ちなみにこの実験版auto-complete.elはVitaly Ostaninという人が送ってくれた 長い行で表示が崩れるバグを修正するパッチ 無駄にUNDOが記録される問題を修正するパッチ が適用されていて、地味に使い勝手が向上している。
最近短い英語の文章を書く事が多いのだが、スペルミスが多い。メールなら Gmail がスペルミスを教えてくれる。 ただ issue tracking でやりとりするときなどは ChangeLog メモに文章を書いてコピペするのでスペルチェッカを通してなかった。 kosaki さんの日記のコメント欄で flyspell-mode の存在を知り試してみたのだがとても良かったので紹介。 M-x flyspell-mode でスペルチェッカが有効になる スペルミスと思われるところは自動で入力中に強調表示される ctrl + . で自動訂正も可能 .emacs ChangeLog メモ編集時に flyspell-mode を有効にする例。 (add-hook 'change-log-mode-hook '(lambda() (flyspell-mode) (local-set-key [(contro
Emacs でつくる JavaScript と ActionScript の環境 という記事を書きました。 という宣伝ポストで終わると面白くないので、簡単だけどあまり知られてない Emacs の使い方を紹介します。 よく使う操作のコマンドを作成する。 例えば、カーソル行を切り取りたくなった場合、行頭へ移動してカットします。つまり、C-a C-k というキーバインドを使って操作します。改行も切り取りたければ、C-k を連続で行なえば良いので、C-a C-k C-k となります。 こういった操作を頻繁に行なうので、コマンドを定義してキーバインドに登録したいと思います。 (define-key global-map (kbd "C-S-k") (lambda () (interactive) (move-beginning-of-line 1) (kill-line))) move-beginn
Emacsは*.elというEmacs Lispソースファイルと*.elcというバイトコンパイルされたファイルがある。 で、ソースのみが変更されたとき、*.elcよりも*.elが新しくなるのだが、そのとき、古い*.elcを読み込んでしまう。 だから、「変更したはずなのに、反映されてない、おかしいなあ」ということになる。 この問題に対処する方法として、保存直後に自動バイトコンパイルするという手があるのだが、Gitリポジトリとかからの変更をとりこんだときとかはわすれてしまう。あと、でかいファイルの場合、バイトコンパイルで待たされるので困る。 そこで、起動時に必要があればバイトコンパイルすることにした。 そもそもこの問題が起きるのは、Emacs Lispがホームディレクトリにある場合だ。だから、load-pathに加える時点で、読み込む前に必要あればバイトコンパイルしてしまえばよい。必要あればディ
前回に続き内部で shell じゃなくて ansi-term や eshell を使いたい人向けに以下の機能を追加した。また使えるシェルも選択できるようにした。これでこのシリーズはひとまず終わりの予定。(^_^; ■EmacsWiki http://www.emacswiki.org/emacs-en/ShellPop ■Elisp http://www.emacswiki.org/emacs/shell-pop.el ■追加機能 - shell, terminal, ansi-term, eshell どれでも好きなのを使えるように修正。設定インタフェイス関数として shell-pop-set-internal-mode を追加。 - bash, zsh, tcsh どれでも好きなのを使えるように修正。設定インタフェイス関数として shell-pop-set-internal-mode-
僕は MacBook を使っていて、昔は iTerm を使っていたけども、現在は標準の Terminal.app + Visor で、どこでもターミナル環境を使っておりますた。 ですが、Emacer たるもの、Shell も Emacs でという思いもあり、どうするべかなーと考えていましたが、一念発起して Shell 環境を整えてみることにしました。 Emacs で使える Shell。 とりあえず、Emacs で Shell を使うには、有名な3つのモードがあります。 Ubuntu Weekly Recipe:第38回 ターミナルソフトウェアにこだわる(2) 上の記事に紹介がありますが、 shell term (ansi-term) eshell の、3つです。それぞれ、M-x でコマンドをうちこむ事で使うことができます。 とりあえず、どれを使うのがいいかという判断は、やっぱり全部使ってみ
k1LoW さんがデフォルトで (migemo) に対応するコードを入れてくれました。よって、最新の anything-hatena-bookmark.el をインストールすれば、anything-hatena-bookmark.el の編集は必要ありません。つまり、anything-migemo.el をインストールするだけで、migemo に対応できるようになったという訳です!! みなさん、id:k1LoW さんの作成した、Anything を使ってローカルではてなブックマークをブラウジングする anything-hatena-bookmark.el という便利な Elisp をご存じですか? Anything って何?な人は、まずはもう初心者なんて言わせない、Anything で始まる Emacs 道。をご覧下さい。 M-x install-elisp http://trac.cod
追記:より使いやすいように修正しました。こちらが最終版です。 エディタで文章を編集している時は、それに意識を集中させ分散させたくないものだ。とはいえその最中でも何らかの用事をシェルに頼まなくてはいけないことがある。shell-mode や term-mode に切り替えてコマンドを打つのはいいのだけれど、バッファ切り替えによる集中力のオーバーヘッドをなるべく減らせないかと思った。 ■要求 - 文章を編集している時にはウィンドウを他のことに使いたくない。画面リソースは貴重だ。 - 時折シェルは打つ必要があるんだけど、集中は切らせたくない。簡単に切り替えたい。 ということで、この要求を満たすような機能を作成し、インタフェイスとして CapsLock キーをホットキーにしてトグルで呼び出せるようにしてみた。好きな時に *shell* バッファを呼び出してコマンドが打てるようになり、用事が済んだら
http://taiyaki.org/elisp/sense-region/上記のsense-region.elで、矩形選択が視覚的になり、コピーやカットなど操作も直感的にすることができる!!↓こんな感じ.emacs ;; sense-region.el (autoload 'sense-region-on "sense-region" "System to toggle region and rectangle." t nil) (sense-region-on) 操作は、C-SPC でset markにしてカーソルを動かしてさらに C-SPC を押下するだけ。すごく直感的です。もちろん C-W なり M-W なりでカットやコピーができます!リージョン内の削除マークした文字列を消すのに、C-w(カット)でもいいんですが、いちいちマークリングに記録されるのもいやだし、C-x r d は忘れ
いつもコピーしてC-M-%打っていたのでコマンドにしてみました。 デフォルトだとanything-c-moccur-occur-by-moccur起動中にC-M-%にバインドされます。 あと、パターン入力中に使われるsyntax-tableをanything-current-bufferのsyntax-tableに変更しました。 anything-c-moccurのquery-replace-regexpのコードはこんな感じです。 (defun anything-c-moccur-query-replace-regexp () (interactive) (lexical-let ((input-re (minibuffer-contents)) (cur-point (first anything-current-position))) (setq anything-saved-acti
なんか車輪の再発明っぽいけど、自分の用途にフィットしてミニマムなものがみつからなかったので作ってしまいました。 jot-mode とは "単語"と"自分が書いたメモ"を関連付けるためのマイナーモードです。 jot-modeを書こうと思った理由は、code readingをしているときに「あれ、この関数ってなんだっけ」と思うことが何度もあったからです。 gnu globalを使えば、Emacs上で目的の関数の定義にジャンプして調べることができます。しかし、こういうときに欲しいのは「関数の定義」ではなく、「関数の(自分の)理解」なわけです。関数の定義(実装)やその周辺のコメントも有用ですが、「よーするにこういう役割の関数」とか自分の言葉で書いたメモを即座に参照したい。 この問題を解決するためにjot-modeを書きました。jot-itコマンド(デフォルトではM-j)を実行すると、現在カーソルの
久しぶりに wanderlust で gmail を読もうとしたら、 Cannot open: elmo-network-initialize-sessionなんてエラーが表示され、メールが取得できなくなってしまっていた。 色々調べる内に、原因と対策が判明したので、以下に記録する。 以下のページがとても役に立った。感謝します。 [riwablo: さくらインターネットとimapとopensslとwl] http://riwablo.blogspot.com/2008/04/imapopensslwl.html 原因 imap.gmail.com へ SSL/TLS で接続する際、 imap.gmail.com のサーバ証明書の検証に失敗するため、 wanderlust (elmo) がセッション確立の途中でエラーを吐いて終了する。 サーバ証明書の検証に失敗してしまうのは、 証明書の発行者
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
emacsでRails開発をする際、emacs-railsを使っている方が多いと思います。emacs-railsはとても便利なelispなのですが、最近は更新頻度が低く、rhtml→html.erbの対応も一部されていなかったりします。あとRspecの対応もイマイチ。emacs使いの人たちは一体どうやってRails開発しているのでしょうか? そこでRinariですよ Rails On Emacs | Google グループを見ると最近は"Rinari"の話題で持ち切りなようです。Rinariはemacs-railsとは違いコア部分を小さく保って、プラグインで拡張していくタイプのelispです。 Rinari: Ruby on Rails Minor Mode for Emacs 基本的には上記に全部書いてあるのですが、整理する意味でまとめてみます。 コア部分のインストール まず、gitでダ
Emacs を使っていると、選択範囲に対してなにか処理したいということはよくある。それなのに、Lisp がわからないからということで、あきらめてしまってはいないだろうか。Emacs でいろいろなことをやるにはLisp は必須だけど、「選択範囲に対して何か処理を施す」というだけであれば、Lisp はほとんど知らなくても実現できてしまう。 要は、選択範囲を引数として自作のスクリプトに渡して、それの戻り値を受取ることができればいいわけだ。選択範囲をスクリプトに渡すという部分はLisp で書かなければいけないんだけど、そこはここで示すテンプレートをコピーして使うだけで問題ない。 それでは、例として、選択範囲の小文字を全て大文字に変換するというものを作ってみよう。 (これ自体はEmacs の標準のコマンドでできるけど、ここは例としてこれを作る) まず、雛形となるLisp のテンプレート my-fun
Emacsの特徴の1つに、柔軟にカスタマイズが可能な点がある。本記事ではフォントの変更や外観の変更、キーバインディングの変更と行った基本的なカスタマイズと、定番のカスタマイズを紹介する。 Emacsは「Editor Macros」の略から命名されたことからも分かるように、柔軟にその動作をカスタマイズすることができる。EmacsのカスタマイズにはEmacs Lisp(elisp)と呼ばれる、Lispベースの専用マクロ言語を利用するのが一般的だが、Emacsに備えられているカスタマイズ機能を用いたカスタマイズも可能だ。elispによるカスタマイズは柔軟性に優れるものの、elispの文法はCなどの手続き型言語とは異なるため、取っつきにくさを感じる人も多いだろう。そのため、まずはカスタマイズメニューを用いたカスタマイズや、定番のカスタマイズ例をコピー&ペーストで利用する方法を覚えておくとよいだろう
現在 Emacs から和英・英和・翻訳・国語辞書・などを SDIC や lookup を使って引けるようにしているんですが、電子辞書版の「現代用語の基礎知識」が2007年度版で止まっており、最近のカタカナ語や新語などに対応できていませんでした。 ということで最近の新語に対応するため、Emacsからはてなキーワードを辞書のように引くものを作ってみました。 自分で使うには満足な状態なのと、これ以上手を入れる気もなく、埋もれさすのもあれなので公開しておきます。 最近は小学生の間でも辞書を読むことがブームだそうで。はてなキーワードの散策なんていかがでしょうか。 ●インストール w3mを使っていますので事前に入れておいてください。sudo apt-get w3m-el あるいは w3m-el-snapshot として w3m を入れたら、~/.emacs に、(require 'w3m-load)と
追記 この記事を元に書籍が出来ました! 時間と命を削って、より詳細に解説しましたので、Emacs に興味がある人はぜひ一度手に取ってみて下さい。 Emacs実践入門 ?思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus) 作者: 大竹智也出版社/メーカー: 技術評論社発売日: 2012/03/07メディア: 単行本(ソフトカバー)購入: 22人 クリック: 396回この商品を含むブログ (1件) を見る僕が Emacs を使いはじめたのは、MacBook を買ってからなので、月日が短く、まだ1年半くらいしか経っていないのですが*1、Emacs を使い始めてすぐに至るところで目にしたのが Anything という単語でした。 たぶん、現 anything.el のメンテナの id:rubikitch さんの記事今anything.elがアツいあたりを見て知って、使
あればいいなと思うもの - wasabi0522's blog ==== emacs でパッケージ管理システム 現状、特定の elisp をインストールしようと思うと、依存する elisp も手動で入れないといけな い。おまけに、更新された elisp も自分で探さないといけない。 M-x install-elisp-from-emacswiki auto-install.el auto-install.el の M-x auto-install-batch がある。ただ、現在のところ少数しか対応していないので、適宜 auto-install-batch-list に追加しよう。そして、 EmacsWiki の AutoInstall のページ の「 Support Other Extension Batch Install 」に報告よろしく。 もうひとつは ELPA がある。これも個人ベ
anything.el による補完の改善すべき点=視線の移動 - http://rubikitch.com/に移転しました にて anything.el による補完は視線の移動がつらいという意見があったので、選択している候補をその場で表示する anything プラグインを作成しました。 anything アプリケーションを require するときに自動で検出するので、 anything-show-completion.el を load-path の通った場所に置くだけで使えます。 現在、 anything-complete.el 、 anything-rcodetools.el 、 anything-dabbrev-expand.el 、 perl-completion.el に対応しています。 M-x install-elisp http://www.emacswiki.org/c
追記 この記事を元に書籍が出来ました! 時間と命を削って、より詳細に解説しましたので、Emacs に興味がある人はぜひ一度手に取ってみて下さい。 Emacs実践入門 ?思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus) 作者: 大竹智也出版社/メーカー: 技術評論社発売日: 2012/03/07メディア: 単行本(ソフトカバー)購入: 22人 クリック: 396回この商品を含むブログ (1件) を見る簡単とは言え、Elisp とかの話がメインだった前回までとは、がらりと変って、今回はキーバインドの話をしたいと思います。 なので、Lisp とかわからんちんな人も、今回は大丈夫なはずです。 キーバインドの調べ方。 Emacs と言えば、よくその特殊なキーバインドが覚えられない。という意見が多く聞かれます。 逆に、Emacs をずっと使っている人は、キーバインドで何
Transfer your website 24/7 Customer support 99.99% Uptime guarantee Unlimited websites Start Now Meet your success halfway. Web hosting with Real power. Single & Premium Hosting plans for any project! The power of cutting-edge hardware meets intuitive software built on years of experience - you get all this and more with Hostinger. Every tool you need to start your online success story. Take advan
http://unknownplace.org/memo/2009/04/07#e001 気がつくと emacs のバッファがすごい数になっていて補完などが重くなるのである程度たまった ら自動で古い物(しばらく visit してない物)を自動的に削除するようなものが欲しい。 標準添付の midnight.el とかどうだろうか。 (require 'midnight) しておけば midnight-hook に登録している関数を毎日 0 時に実行するようになる。 そこに clean-buffer-list という一定時間以上表示していないバッファを掃除する関数がある。 midnight-hook にはデフォルトでそれが登録されているから、 require 一本で実現する。
いいかげん shebang 行とかエンコーディングを毎回書くのがメンドくさくなってきたので、Emacs のテンプレート作る。 ~/.emacs.d/template/template.py を以下の様に用意。 #!/usr/bin/env python # -*- coding:utf-8 -*- def main(): pass if __name__ == '__main__': main() これが Python ファイルを新規に作成する際に挿入される。 次にテンプレートを読み込むように ~/.emacs.el に記述。 ;;;;;;;;;;;;;;;;;;;;;; ;; テンプレート設定 ;;;;;;;;;;;;;;;;;;;;;; (setq auto-insert-directory "~/.emacs.d/template/") (setq auto-insert-query
http://www.emacswiki.org/emacs/highlight-cl.el Emacs Lispのコーディング規約をちゃんと守っておきたい人向け。subr とかで定義されてる dolist とかは別の色にしてくれる親切設計。つか昔2chで見た気がしなくもない。 cl をロードする前にキーワードを集める事で cl だけかそうじゃないかを区別してるから、batch-byte-compile でバイトコンパイルしてから使ってくださいませ。 これ作って、初めて eval-and-compile の使い道がなんとなくわかった。少なくとも、マクロAが関数Bに依存していて、マクロAが同じ elisp 内で使われる場合は eval-and-compile か eval-when-compile の中に関数Bを定義しておかなきゃいけないみたい。マクロはバイトコンパイル中でも展開する為に「評
screenshot.el は Emacs 内で簡単にスクリーンショットを撮り、保存、アップロードを自動化します。保存先は予め指定されたディレクトリ、カレントディレクトリ、リモートホスト( SSH )、 EmacsWiki です。 ImageMagick パッケージの import コマンドと scp コマンドが必要なのでインストールしてください。 http://www.emacswiki.org/emacs/ScreenShot M-x install-elisp http://www.emacswiki.org/cgi-bin/wiki/download/screenshot.el EmacsWiki に画像を置くには yaoddmuse.el も必要です。 M-x install-elisp http://www.emacswiki.org/cgi-bin/wiki/download
最近いろいろやったらちょっと便利になったので紹介。 auto-complete-mode 編集中のBufferの単語を補完できる。 標準だとカーソルキーを押さないといけないけど、候補の中からC-n, C-pで選択できるようにした。 (require 'auto-complete) (global-auto-complete-mode t) (define-key ac-complete-mode-map "\C-n" 'ac-next) (define-key ac-complete-mode-map "\C-p" 'ac-previous) 本当は、全部のBufferから補完できるようにしたいけど、分からないので、そのときだけM-/で補完してる。 iswitchb-mode (iswitchb-mode 1) Bufferをインクリメンタルサーチして切り替えられる。 以前はBufferの
TwitterのBasic認証APIは6月で廃止される予定なのですが、OAuthという認証方法はブラウザを起動してユーザに認証して貰わなければなりません。一見flickrアプリケーションの様な認証方法を想定しますが、OAuthはflickr認証の様にサーバから貰ったトークンをブラウザから渡して認証させる様な物ではありません。 今回OAuthの問題を解決すべくOAuthを拡張した認証方式であるxAuthが取り入れられました。 詳しくはAPIドキュメントか以下のサイトが分かりやすいかと思います。 s-take Blog.: Twitterによる簡易版OAuth: "xAuth" 従来のOAuth認証ではまずアプリケーション(OAuthコンシューマ)がTwitterに接続してRequest Tokenを取得し、認証画面を開いてRequest Tokenを承認させ、承認されたRequest Tok
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー CUIベースのビジュアルデバッガpudbを紹介したときは「Pythonの達人はデバッガを使わない」というようなことを書いたけど,僕は最近pudbを使い始めた。ただ,日常的に使っているわけではなく,特定の場面でだけ使うようになった。開発中,テストがfailしたり例外が出たりしたときだけ,pudbを使っている。 最近見つけたnose-pudbはとても便利なツールだ。Pythonのテストユーティリティにnoseというのがある。インストールすると,プロジェクトに関連した複数のテストを順番に走らせてくれ,Pythonのunittestを拡張してくれるとても気の利いたPythonicなツールだ。n
waf - The flexible build system http://code.google.com/p/waf/ wafというものを最近知り一目惚れしてしまったので、紹介記事を書きます。ユーザーが増えると嬉しいな。 wafとは何か?特徴・利点・使うべき理由 wafはPythonベースのビルドシステムです。同様のことを行うツールとして、Autotools、Scons、CMake、Antなどがあります。Sconsからの派生で、比較的新しいソフトウェアです。 分かりやすい Pythonで書かれており、スクリプトもPythonで記述します。シェルスクリプトと謎のマクロが入り混じるAutotoolsや、独自言語のCMakeなどに比べて扱い易いです。Pythonを知っていれば非常にすんなりと使いこなすことが出来ます。Pythonを知らなくても、他の独自言語を覚えるよりは実りがあるかと思います
waf - The flexible build system http://code.google.com/p/waf/ wafというものを最近知り一目惚れしてしまったので、紹介記事を書きます。ユーザーが増えると嬉しいな。 wafとは何か?特徴・利点・使うべき理由 wafはPythonベースのビルドシステムです。同様のことを行うツールとして、Autotools、Scons、CMake、Antなどがあります。Sconsからの派生で、比較的新しいソフトウェアです。 分かりやすい Pythonで書かれており、スクリプトもPythonで記述します。シェルスクリプトと謎のマクロが入り混じるAutotoolsや、独自言語のCMakeなどに比べて扱い易いです。Pythonを知っていれば非常にすんなりと使いこなすことが出来ます。Pythonを知らなくても、他の独自言語を覚えるよりは実りがあるかと思います
ExtractContent は、HTMLから本文を抽出するRubyモジュールです。 RubyForge: ExtractContent: Project Info Webページの本文抽出 (nakatani @ cybozu labs) Perl用の同名モジュールもありますが、今回はRubyモジュールを基にしてPythonへ移植してみました。 # -*- coding:utf-8 -*- import re import unicodedata class ExtractContent(object): # convert character to entity references CHARREF = { "nbsp" :" ", "lt" :"<", "gt" :">", "amp" :"&", "laquo":u"\xc2\xab", "raquo":u"\xc2\xbb", }
でた.プレリリースが先週出ていて,その1週間後に予定通り本リリース.データストア周りが結構変わっていて,これまで苦労していた部分で苦労しなくて済みそうな感じ. Query Cursor いわゆるカーソルが導入された.RDBだと普通にあるのだけど,データストアからの読み出しにrangeで制約をつけておき,結果からカーソルを取得しておくと,次に同じキュエリをだすときに,カーソルを指定して,そのつづきから,という形で検索ができる. これまでだと,ソートのキーになっているプロパティの値を取っておいて,それを条件に加えて検索していたのだけど,そんなテクは不要に. No more 1000 result limit これまで,データストアには,1000個以上の値を返せない,という結構きつい縛りがあった.rangeで指定しても,たとえば 900-1100 みたいな検索ができなかった.この制約が無くなった
FofouはPython製/Google App Engine用のオープンソース・ソフトウェア。インターネット上のコミュニケーションの基本と言えばフォーラムだろう。掲示板は初期のWebサイトでも大抵設置され、そこでは閲覧者と管理人が一緒になって会話していた。 シンプルなフォーラム それは今の時代も変わらない。メールが廃れないようにフォーラムソフトウェアもまた廃れる気配がない。リアルタイムが叫ばれる昨今ではあるが、この時間差や距離感がちょうど良いときもある。FofouはGoogle App Engine上で動作するフォーラムソフトウェアだ。 FofouはJoel On Software forum softwareにインスパイアされて作られたソフトウェアで、とてもシンプルなインタフェースだ。フォーラムを作成し、その中にトピックを作って会話する。フォーラムにはタグを付けたり、Google An
本稿の前編では、Webシステムをスケールさせるための一般的な手法や考え方、そしてGoogle App Engineの概要と特徴について説明しました。中編となる本稿ではミニブログサービスのTwitterとGoogle App Engineを連携させるレコメンドアプリケーションの設計について説明し、後編では実装編として実際のソースコードに基づき説明します。 はじめに Google App EngineはGoogleのインフラを使用し、開発したアプリケーションをインターネットで公開できるサービスです。Google App Engineの特徴はアクセスや負荷に応じてシステムが自動にスケールする仕組みと、Google独自のスケーラブルなデータベースであるBigtableを使用できることです。BigtableはKey-Value方式のデータベースで、ペタバイト級のデータを扱うことができます。そのような
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー pudbは,CUI環境(つまりシェル)で動くGUIライクなデバッガ。Pythonには標準でpdbというデバッガがついてくるけど,コマンドラインベースでちょっと使い方が面倒だよね。pudbはpdbよりノリがいい。まあスクリーンショットを見てもらうのが早いかな。 CUIベースでGUIっぽいことをするというのは,レトロなノリだよなあ。でもCUIベースならシェルが動く環境ならどこでも動く,という利点もある。ローカルのPythonでもssh越しのPythonでも,シェル上なら同じように動くというのは嬉しい。 インストールは簡単。いつものごとくeasy_installを使って「$ easy_ins
第3回は、CouchDBを利用してWebアプリケーション開発を行うためのツールと、Windows版CouchDBについて紹介します。筆者はCouchDBをWebアプリケーション開発者だけが使うのではなく、システム管理者やMicrosoft Officeで事務処理を行っているユーザーにとっても有意なツールだと考えており、そういった方面での活用できるのではないか? と考えています。 CouchDBを使った開発は、いままでとどう違うの? Webアプリケーションの世界で、いま現在よく使われているのは「3層モデル」と呼ばれる仕組みだと思います。クライアントからのリクエストに対し、アプリケーションサーバがデータベースからデータを持ってきて、処理した上でクライアントに結果を返す、というイメージです。CouchDBを使った仕組みでは、CouchDBをホスティングしているサーバがいるだけです。つまり、Cou
GAE アプリを開発しているけど、Python と GAE の両方とも初心者なので、どう実装したらいいのか迷う。そこで、「オープンソースのGAE向けアプリを参考にすればいいじゃないか」と考え、ネットで探してみた。 kay-framework - A web framework made specifically for Google App Engine - Google Project Hosting GAE に特化して開発された Python フレームワーク。 アプリの開発に使ってもいいし、オレオレフレームワーク開発の参考にするのもアリ。 google-app-engine-oil - Yet another web framework on App Engine - Google Project Hosting Ruby on Rails を意識して作られた GAE/Python 向
“Python for Informatics” Open Textbook Remixed in 11 Days - Creative Commons ミシガン大学の教授 Chuck Severance が、講義で使う教科書 Python for Informatics: Exploring Information をたった11日で作ったとのこと。それが可能だったのは、彼が Think Python: How to Think Like a Computer Scientist をベースにしたから。 要は『Think Python』が GNU Free Documentation License の元でオンライン公開されているから可能になった芸当ということで、学生は Espresso Book Machine を使って10ドルで教科書をオンデマンド印刷できるとな。オープンコンテンツはこの
One thing I really love with the Python programming language is its incredible extensibility. Here’s a list of 50 awesome modules for Python, covering almost all needs: Databases, GUIs, Images, Sound, OS interaction, Web, and more. Graphical InterfaceThe Python Standard Library comes with TkInter, but you can take your GUIs to the next level using an external Python module. wxPython: Create truly
こんにちは。 最近いろいろごたついてて、ブログなんか更新してませんが、それなりに充実した生活を送っているのでご心配なくw ところで、今日はいつもどおり Python の話題です。 いま、某 LUG であるプログラムを作っているのですが、その中でマルチスレッドを使えたらなーと思って、ちょっといじってみました。 マルチスレッドが使えると...: 複数の作業を並列して実行できる 一定間隔で何かを実行するような処理を簡単にできて便利。 CPU を有効的に使える などいろいろ利点がありますが、今回は主に 2 番目のものをターゲットにしてみました。 結局、1番目も関わってくるんですけどね。 Python でスレッドを生成するには、threading モジュールを使うのが便利です。 http://www.python.jp/doc/release/lib/module-threading.html こい
BloggartはPython製/Google App Engine用のフリーウェア(ソースコードは公開されている)。Google App EngineはWebアプリケーションを開発するのに便利なクラウドサービスだが、もっと一般化するためにはできあがっているWebアプリケーションの普及が欠かせないだろう。 エントリー画面 一般ユーザが使いやすいものとしては、現状筆頭とも言えるのがブログエンジンだろう。BloggartはGoogle App Engine上で動作するように作られたブログエンジンであり、小規模なブログであればフリーではじめられることになる。 Bloggartは管理画面付きのブログエンジンで、新規ポストや一覧、編集を管理画面で行う。サイドバーについては設定ファイルを修正する必要があるし、デザインの修正もテンプレートを変更する必要があるので一般ユーザにはまだ敷居が高いかも知れない。
When you hear the word “creative”, what type of profession comes to mind? Maybe a graphic designer, painter, sculptor, illustrator, or writer? It’s unlikely that you would consider a “programmer” when thinking of creative fields of work. But programmers have the potential to be creative and come up with ideas or concepts that will impact others in positive ways. We often turn to programmers to sol
実践的な DJango テクニック集として、凄くいい記事だったので、勝手に超訳してみました。 http://zeroandone.posterous.com/top-10-tips-to-a-new-django-developer 1. import にプロジェクト名を書かないこと 例えば "project3" というプロジェクトに "xyz" アプリケーションがある場合、次のようにはしないこと。 from project3.xyz.models import Author これではプロジェクトとアプリケーションの結びつきが強すぎて、以下の弊害がおこる。 アプリケーションの再利用がしづらい 将来プロジェクト名を変えたくなっても変更が難しい なので、このようにしよう。 from xyz.models import Author python パス上にある django プロジェクトならば、
The Rails team has finally released the Rails 3 beta, after more than a year since the Rails and Merb teams started working on this release. You can read all about it at the official Rails blog, but I figured I’d take the opportunity to share my take on the release. First of all, you’re probably sick of hearing this, but we’ve done far, far more than we ever expected. A lot of that happened in the
You thought we were never going to get to this day, didn’t you? Ye of little faith. Because here is the first real, public release of Rails 3.0 in the form of a beta package that we’ve toiled long and hard over. It’s surely not perfect yet, but we were out of blockers on the list, so here we go. Please give it a run around the block, try to update some old applications, try to start some new ones,
TOPICS Programming , Python 発行年月日 2010年02月 PRINT LENGTH 244 ISBN 978-4-87311-442-2 FORMAT 本書には改訂版(第3版)があります。 プログラミング言語Python(パイソン)の作者Guido氏が書き下ろしたPython入門者のための手引き書。Pythonの言語とシステムの基本的な機能やコンセプトを解説する。さらにPythonの特徴的な機能を数多く取り上げて紹介することで、読者がこの言語の雰囲気とスタイルをつかめるよう配慮している。本書第2版ではPython 3に対応。また、Python 2の構文にも対応できるよう、2.xシリーズとの違いや注意点についての付録も追加掲載している。本書を読めば、Pythonのモジュールやプログラムを読み書きできるようになり、ライブラリリファレンスで解説されているさまざまなモジ
概要 この文書は、sort() 組み込みメソッドを使って、リストをソートする方法を紹介する、ちょっとしたチュートリアルです。 この文書の原文は、http://www.python.org/doc/howto/ の Python HOWTO ページから、PostScript、PDF、HTML、アスキーテキストを含む、各種フォーマットで入手できます。 目次 基本的なデータ型のソート クラスの比較 翻訳について Python のリスト型には、sort() という組み込み関数があります。 リストをソートするには様々な方法があって、色々なマニュアルがあるのですが、ひとつの集約的な文書はありません。 そこで、私が書くことにしました。 1 基本的なデータ型のソート 単純な昇順ソートは簡単です。 リスト・オブジェクトの sort() メソッドを呼び出せば事足ります。 >>> a = [5, 2, 3, 1
phpshはPython製のオープンソース・ソフトウェア。PHPはWebシステム開発で手軽に使えて、小さな規模から大規模までこなせるプログラミング言語だ。時々槍玉にあがることはあるが、使い手次第といった所だろう。なにせ今やYahoo! Inc.すらも追い越そうという勢いのFacebookでも使われているのだ。 Pythonで実装されているのがミソ そんなFacebookではオープンソース・ソフトウェアを多数リリースしており、Apache Software Foundationのゴールドスポンサーにもなっている。そして新しくリリースされたソフトウェアがphpshだ。PHPではあるがソフトウェア自体はPythonで作られている。 phpshはPHP用のシェル環境だ。標準でもインタラクティブモードがあるが、それのFacebook版だ。予め--with-readlineのようなオプションを付けずに
この記事で更新していた「基礎文法最速マスター」のまとめは,現在,プログラミング言語「基礎文法最速マスター」ランキング にて更新しています.この記事の更新は停止していますので,最新の結果はそちらを参照下さい. ここ最近,「○○○ 基礎文法最速マスター」と言う記事が流行っていたようです.この各記事の被ブクマ数を見ていると,プログラミング言語毎の(はてな界隈での)人気がよく表れているなーと思ったので被ブクマ数の多い順に列挙してみました*1.尚,調査する際には Perl基礎文法最速マスター - Perl入門〜サンプルコードによるPerl入門〜 の「このエントリーを含むエントリー」と 基礎文法最速マスターぞくぞくキターーー! - 燈明日記 を利用しました. JavaScript 基礎文法最速マスター - なんとなく日記 PHP 基礎文法最速マスター - Shin x blog Perl 基礎文法最速
リスト内包表記(LC)使った方が圧倒的にコードが読みやすく、短くなる。慣れてないという理由で使われてない気がするので今後の自分のためにも、メモを残す。 LCは基本的に、ListやHashを処理する際に使用される。例えば、規則性のある並びのListが欲しい時などに利用すると良い。 1, 基礎 リストの作成 forの前が処理、forからList名までがひとつのforの段落で前から評価される。 src_list = [1,2,3,4,5] print [x for x in src_list] # [1,2,3,4,5] リストの作成2 for部で取り出された要素が、その後ろif部で評価され真だったものだけが、初めのx*2に渡され処理される(この場合は、2.4だけ) src_list = [1,2,3,4,5] print [x*2 for x in src_list if x % 2 == 0
Feed-busterはPython製/Google App Engine用のオープンソース・ソフトウェア。FriendFeedでは画像や動画配信に対応したフィードを取り込むと、リストに表示する際にメディアを表示してくれる。だがこれはただフィードの中に画像リンクがあればいいというレベルではない。 フィードを変換するサービス いわゆるポッドキャスティングやボッドキャスティングに対応したフィードを生成する必要があるのだが、システムを対応させるのは手間だろう。そこで使ってみたいのがフィードを変換してくれるFeed-busterだ。 Feed-busterはGoogle App Engine上で動作する。フィードのURLを与えると、コンテンツに書かれているメディア情報をピックアップしてメタデータとして追加してくれる。Firefoxで生成後のフィードを見るとメディアファイル情報が追加されているのが分
Perl基礎文法最速マスターの元ネタ Perl基礎文法最速マスター - Perl入門〜サンプルコードによるPerl入門〜 http://d.hatena.ne.jp/perlcodesample/20091226/1264257759] RubyRoute 477 - Ruby基礎文法最速マスター - , 1. 基礎 , 2. 数値 , 3. 文字列 , 4. 配列 , 5. ハッシュ , 6. 制御文 , 7. サブルーチン , 8. ファイル入出力 , 知っておいた方がよい文法 , 余談 , (おまけ)Ruby書籍紹介 http://route477.net/d/?date=20100125] PHPPHP基礎文法最速マスター | Shin x blog http://www.1x1.jp/blog/2010/01/php-basic-syntax.html] PythonPython
↓に便乗してPython版も書いてみました。 Perl基礎文法最速マスター - Perl入門〜サンプルコードによるPerl入門〜 Ruby基礎文法最速マスター - Route 477 PHP基礎文法最速マスター - Shin x blog ほとんど上記の記事と同じような内容で書いたのでPython入門記事としては色々抜けていたりしますがご了承ください。 Pythonは現在3.x系がリリースされていますが本記事では基本的にPython2.6について書きます。 参考文献: 初めてのPython (asin:4873113938) Python Documentation Index http://www.python.org/doc/ Python 和訳Document http://docs.python.jp/2/ 0. 対話環境として使う 対話環境 pythonはそのまま実行すると対話環
こんにちわ、sqlalchemyを日本で一番使い倒してるであろうmopemopeです。 sqlalchemyのcacheに関して具体的なコードを書いている人がいないのはみんなexampleのあれを見てるからなのか? と思ったのですがあえて書いてみます。 SQLの内容を60秒間キャッシュする例: import hashlib from sqlalchemy import create_engine, MetaData from sqlalchemy.orm import create_session, scoped_session, mapper as sqla_mapper from sqlalchemy.orm.query import Query from sqlalchemy.sql import visitors class CachingQuery(Query): _timeou
1 automate anything you see 2 automate using screenshots 3 work on Windows/Mac/Linux What's SIKULI? Sikuli is a visual technology to automate and test graphical user interfaces (GUI) using images (screenshots). Sikuli includes Sikuli Script, a visual scripting API for Jython, and Sikuli IDE, an integrated development environment for writing visual scripts with screenshots easily. Sikuli Script aut
ドラッグアンドドロップで与えられたファイルリストを、ワイルドカードでフィルタしたい場合があります。 そういう場合はglobではなくfnmatchモジュールを使います、pythonではワイルドカードとは呼ばずに「Unix ファイル名のパターンマッチ」と呼ぶそうです。 >>> import fnmatch >>> >>> a = ["test.txt","test.py","test.png","foo.txt"] >>> #ファイルリストをフィルタリング >>> fnmatch.filter(a,"*.txt") ['test.txt', 'foo.txt'] >>> >>> #単一のファイルを判断 >>> fnmatch.fnmatch("test.txt", "*.txt") True >>> #大文字、小文字を判断する場合はfnmatchcase >>> fnmatch.fnmatch
Parrot Foundationは1月20日、動的言語向けの仮想マシン「Parrot 2.0.0」(開発コード名「Inevitable」)をリリースした。同団体のWebサイトより入手できる。 ParrotはPerl開発者が中心となって開発が進んでいる仮想マシンプロジェクト。当初はPerl 6の実行環境として開発が進められていたが、現在ではPerlだけでなく、PythonやRubyといった動的言語のほか、CやBASICといった言語のランタイム環境としての利用も想定されている。ParrotのWebサイトでは現在開発中のプロジェクトとしてJSON、Ruby、PHP、Pythonなどの実装があり、Perl 6実装の「Rakudo Perl 6」もある。 Parrot 2.0.0ではContext PMC(PolyMorphic Container)で属性ベースのイントロスペクションをサポートし、
MediaCoreはPython製/Webベースのオープンソース・ソフトウェア。動画を自分のサイトでも楽しみたいと思ったら、ストレージが必要になったり、帯域を確保できるサーバが必要になる。ごく少数であれば良いが、ある程度の規模で作ろうと思うと意外とコストがかかるのだ。 動画登録&配信プラットフォーム そこで使ってみたいのがYoutubeのような外部のサービスだ。そして管理画面も合わせて提供してくれるMediaCoreが便利そうだ。MediaCoreはPythonで作られたソフトウェアで、動画の配信と管理、ポッドキャスティング配信を行うプラットフォームだ。 MediaCoreでは一般ユーザは動画のアップロードでき、管理画面からはファイルのアップロードの他にYoutube/Googleビデオ/Vimeoといった動画配信サービスのURLが登録できるようになっている。ポッドキャスティングとして動画
皆様、お疲れ様でした。 Python Hack-a-thonとか言いつついろんな話ができるのがPython Hack-a-thonのいいところでもありますが、 せっかくなのでPythonの話もしていきたいですね。 個人的には毎回、少しマニア向けなPythonネタを発表できればいいかなと思います。 聞きたい話などのリクがあればそれについて話してもいいですし。 前回の資料も合わせて以下に置いておきます。 mopemope / python-hackathon — Bitbucket もうbruceしか使ってないので同じ形式で見たい人はbruceでみてください。 (pythonで書かれたプレゼンツールです) Google Code Archive - Long-term storage for Google Code Project Hosting.
会場はリクルートメディアテクノロジーラボさん。会場もキレイだし、スクリーンマルチだし、無線LANもあるしで、至れり尽くせり:-D => ありがとうございました。 発表を聞くだけでなく、適時突っ込みを入れるスタイル。 => 議論が深まって面白かったです。発表者は大変だと思いますけど:-D こんなpostやこんなpostがあったりで、このノリ大好きです:-D 運営のみなさん、ありがとうございました。 次回は来月開催だそうです。みんなやさしい人達だから、興味ある人は参加すると良いですよ。 会場はオラクルさん。マルチスクリーン、電源あり、無線LANあり、飲み物無料、キレイと、こちらも至れり尽くせり。 => ありがとうございました。 両日共にこんなに素晴らしい会場を無料で提供頂けるのは本当にありがたいことです。 hackathon初参加。 ワークショップはGAE+Facebookにちらっと参加して、
1章: 始めよう¶ Pythonのインストール Pythonの実装系 Jython IronPython PyPy その他の実装 Linux へのインストール パッケージインストール ソースコンパイル Windows へのインストール Python のインストール MinGW のインストール MSYS のインストール Mac OS X へのインストール パッケージインストール ソースコンパイル Python プロンプト インタラクティブプロンプトのカスタマイズ iPython: より良いプロンプト setuptools のインストール 動作原理を理解する EasyInstallを使ったsetuptoolsのインストール distutilsにMinGWのフックを入れる 作業環境 エディターと補助ツールを使う コードエディター Vimのインストールと設定 その他のエディタを使う その他のバイナ
ということで、とりあえずスライド紹介。 PythonなのにLua! PythonなのにLua! いや、本当になぜPythonでLuaなのか訳がわかりませんが、 #1, #2とデスマってて約束が果たせなかったのでやっと果たして参りました。 基本的な機能に関しては網羅しているような感じではありますが、 実際には駆け足で抜けもあるので何かあれば質問してもらえれば解る範囲で答えられるかもしれません。 というか機能網羅する必要ないよな、という気もしつつ、速度とかサイズだけ語ってもLuaはLuaたりえないので なるべくLuaっぽいところを話したつもりでする。 最速の言語Lua ~Python Hack-a-thon #3~View more documents from Isoparametric. 最速の言語と銘打ってますが、実際にはPawnというもっとミニマムで高速な言語があったりします。 が、実
to: @wozozo metaclass1.py # coding:utf-8 class MyMetaclass(type): """ メタクラス """ def __new__(cls, name, bases, attrs): # fieldsという名前のフィールドからメソッドを生成する def make_method(v): # クロージャ return lambda self: "%s" % v for k, v in attrs.get('fields', {}).iteritems(): attrs[k] = make_method(v) return type.__new__(cls, name, bases, attrs) class MyBaseClass(object): """ メタクラスを使ったクラス """ __metaclass__ = MyMetaclas
土曜の夜、株式会社ハートビーツさん主催のインフラエンジニア勉強会へ行ってきました。 hbstudy#7 今回のテーマは「システムの命綱、バックアップ(仮)、Google App Engineの勘どころ」…なのですが、じつは、当日まで「GAE上のシステムのバックアップ」の勉強会だと自分はカン違いしてました。GAEとバックアップは別々の話題だったんですね。 Google App Engineの勘どころ(柴田淳さん) システムの命綱、バックアップ(坪井義浩さん) どちらも濃いお話が聞けて、楽しかったです。というわけで、備忘のためにメモをアップしておきます。 Google App Engineの勘どころ(柴田淳さん) hbstudy7 | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記:ご本人のブログ記事 GAE事例紹介 Google Modelatorを使ったオバマ大統領
I dagens samfunn er det mye som skal forsikres. Boligen, bilen, telefonen din, samt deg selv og reisefølget ditt når dere skal på ferie. Og for å ikke snakke om livsforsikring, ulykkesforsikring og så videre. Kanskje har man også tatt opp et forbrukslån, som man vurderer å forsikre for å unngå å havne i økonomisk trøbbel dersom man skulle bli syk eller av andre årsaker ikke klarer å betale det man
twitterのbot制作で困る点の一つに定期実行がある。 多くはcronって言うのを使って定期的に実行する。 けど、それが出来るレンタルサーバーやウェブサービスは珍しい。 あっても有料だったりして面倒だ。 で、 『GAE-Cron』のソース&サービス登録サイト公開 がすごい。 『Google App Engine(以下 GAE)』を使って自前のcronサービスが作れる。 botのcron管理が便利になりそう。 GAE自体は一定量の負荷まで無料で提供されているのでお試し程度の気持ちでも試せる。 リンク先では既に 『GAE-Cron Club - プロバイダ一覧』 としていくつかの公開サービスが出来ていた。 バナーがダジャレ効いてて良いね。 そして自前でGAEにデプロイする方法なんだけど一点詰まったところが。 どうやらデプロイするのにpythonが必須らしい。 readmeにはテストする時は
以前、Amazon Web Serviceで書籍情報を取得する(2008/12/20)というエントリを書きましたが、2009年8月15日から新しく認証が導入されてそのままでは使えなくなっていることに気がつきました。サービス名もProduct Advertising APIに変更されたそうです。AmazonのWebサービスはときどき使いたくなるのでPythonから使う方法を改めて調べてみました。以下のサイトを参考にさせていただきました。 Product Advertising API アマゾンAPIを使うのに2009年8月15日から認証が必要になるらしい AmazonアソシエイトWebサービス改めProduct Advertising APIの電子署名について調べてみました Python + Amazon = Pyzon amazon.py まず、Pyzonを参考にアイテムID(ASIN、I
この記事は Google App Engine の Python 2.5 runtime 版 GAE-Cron について書かれたものです。 Python 2.7 runtime 版 GAE-Cron のソースファイルは、 GAE-Cronの説明書 GAE-Cronソースファイルダウンロード furyutei/GAE-Cron · GitHub にて公開中です。 2014年現在、Python 2.5 runtime 版アプリケーションは、Google App Engine 上では新規に作成できなくなっている模様です。 2013年以前に Python 2.5 runtime で作成したアプリケーションはまだ動作しています(将来的には動作しなくなる可能性があります)。 バージョン2.7への移行を:Google App Engine、Python 2.5ランタイムを非推奨に - @IT Googl
Jeremy Ashkenas氏がRuby/Pythonライクな文法でJavaScriptを記述する、興味深い試みをおこなっている。同氏が開発した「CoffeeScript」と呼ばれる簡易言語は、"a little language that compiles into JavaScript"の名のとおり、コンパイルするとJavaScriptコードを出力するというものだ。Ruby製のコンパイラが用意されており、デベロッパはCoffeeScriptで書かれたファイルをコンパイラに通すことでJavaScriptコードを得られる。 CoffeeScriptで記述されたソースをコンパイルした結果。左側にCoffeeScript、右側にコンパイル後のJavaScriptが表示されている - Mini Overviewより引用 現在のバージョンは1月10日(米国時間)にリリースされた0.2.3で、Th
昨日に引き続いて、今日も作成中の Google App Engine アプリ用のUI部品の作成。HTMLの一部に記述された(もしくは別途JSONで取得した)ワード・リストの入力を autocomplete を使って簡単にしようという試み(Google Suggestのようにダイナミックにリストを取得する必要はない)。 そこで、まずは既存のライブラリ・プラグインの調査から。必要とする人も多いようで、少し調べただけで20個ぐらい見つかる。デモを見て5つに絞ってからそれぞれのソースコードを解析。例によってどうしようもない品質のコードもあるので、結局のところたどり着いたのは、比較的コードがきれいなこの二つ。 jQuery Autocomplete Mod JQuery Plugins by Dylan Verheul - autocomplete どちらかをそのまま使っても良かったのだが、どちらも
pmcygはWindows向けのオープンソース・ソフトウェア。PC性能が上がった今では仮想化させたLinuxを使うことが多くなったが、今でもそしてかつてはCygwinを使ってLinux的な操作を実現することが多かった。だが専用のインストーラーがあるのだがあまり便利ではなかったように思える。 ミラーサイトはメニューで選べる 一応本家のインストーラーでもオフラインインストールを可能にする機能があったはずだが、それよりももっと手軽に使えそうなのがpmcygだ。pmcygを使えばミラーサイトからパッケージをダウンロードし、セットアップ実行ファイルも含めて一つのパッケージにしてくれる。 使い方は簡単で、起動したらミラーのあるサーバを選択し、後は実行するだけで良い。ターゲットが決められるので最低限にしたり、逆に全てダウンロードしてしまうこともできる。定期的に行えばアップデートされたパッケージだけダウン
調べた限りGAEには(日本語を)全文検索する機能はついてない。なのでちょっくら作ってみました。一応動くのは出来たけど、いろいろ不満な点が多い。転置インデックスはN-gramでN=2で作成。サンプルをサイトで公開してますが、検索は完全一致で結果の順位は考慮してません。最もシンプルなシステムで、検索語句を入力すると、Datastoreに格納されているその語句が含まれる文章を表示し、検索語句を強調表示します。また、100文字以下の文章ならDatastoreに格納できます。何故100文字以下かというと、文字数が多くなるとそれに伴い転置インデックスの作成量を増えていきます。となると、処理時間も長くなってGAEの処理時間オーバーのエラーが発生してしまう。うーん、もっと効率のよい転置インデックスの作成方法がないものか。全文検索の心臓部分のコードは以下の通り。GitHubにも置いてます。 http://g
はじめに IT業界というと、3Kだとか、帰れないとか、泥のようにだとか、昔からいろいろ言われてきています。しかも、Mっ気のある人が多いせいか、言われても反論したり怒ったりせずに、そのままネタにして楽しんでいたりするから余計にたちが悪かったりします。とは言ってもその実、業務外でも頼まれてもいないのに積極的に勉強会に行って同業他社の人と交流したり、土日までつぶしてイベントを開催したり、大量の本を買って家の中がいっぱいになったり…家も会社も関係なく、全力でIT技術者という職業を楽しんでいる人が数多くいます。中には、海外のカンファレンスまで出かけてしまう人もいるぐらいです。まだ、勉強会という場を知らないために、出てこない人もいますが、一度楽しさを知ってしまった人は定期的に色々な勉強会に顔を出して新しい情報を取り入れたり、人に教えて感謝されたり、自信が付いたり、多くの恩恵に授かっています。 さて、そ
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー promiseはPythonの関数の実行速度を高速化するためのモジュール。 デコレータ関数を使って,関数のバイトコードを書き換えることによって関数の実行速度を高速化する。 実際どのくらい高速化されるのか試してみよう。Pythnonの標準モジュールdecimalの__new__()メソッドにpromiseを使い,使わなかったケースと実行速度を比較してみた。 def foo(): D = decimal_p.Decimal D('3.14') D((0, (3, 1, 4), -2)) D(314) D(' 3.14 \\n')
下記のAppEngineアプリケーションの自動テストシリーズに続く、第四回目です。 AppEngine用のアプリケーションの自動テストについて(1) #AppEngine 用のアプリケーションの自動テストについて(2) - Datastoreに関するテスト #AppEngine 用のアプリケーションの自動テストについて(3) - メール送信に関するテスト Taskの「投入」をテストする TaskQueueのテストといっても「Taskの投入」をテストするのか「Taskの実行」をテストするのか、といった2種類のテスト対象が考えられます。 今回は「Taskの投入」をテストする説明をします。「WebHandlerによるTask実行」については、例えば私はテストしやすいように以下のような手法で実装しています。 何らかの機能で、Taskを投入する 投入されたTaskはWebHandler内で実行するこ
【同心�鹨�•共�\�l展】�|安�^��工���e�k��工���雍图寄芨��� �樯钊��W�����亍霸炀鸵恢Ш甏蟮男滦彤a�I工人大���,��好主人翁���、建功新��江”工��工作新主������,7月16日���,由�|安�^��工��主�k的牡丹江市�|安�^“�鹨咔���、促�l展���、��好主力����,��技能�����、提�|量���、建功新�|安”��工���雍图寄芨���――��工�Q��在牡丹江木工�C械有限公司拉�_帷幕���。牡丹江市��工��副主席肖�L旭�,�|安�^委副�������、�y�鸩坎块L伊�约t�����,�|安�^副�h��干部尹��出席�_幕式�。... “USP-M系列超��波除水垢�b置”�<以u�����A�M�Y束 2013年4月18日����,牡丹江金盟��器有限公司�M��邀����家...... 牡丹江金盟��器有限公
peppyはPython製のオープンソース・ソフトウェア。最近のスクリプト言語は各プラットフォームのGUIも扱えるようになっている。さらに実行ファイルに変換することも可能で、それらを駆使すればスクリプト言語でGUiアプリケーションを作ることも決して不可能ではない。 関数一覧 その実例としてpeppyを紹介しよう。動作はスムーズ、メニューやサイドバーなど大抵のテキストエディタには決して引けを取らない多機能さがあるテキストエディタだ。特に開発者をターゲットにしているようで、XEmacsをターゲットに据えている。 Python製だけあって各種プラットフォーム向けに動作する。XEmacsを目指してはいるが今の所キーバインドは普通のエディタ並みだ(カスタマイズは可能)。テキスト系のファイルであれば何でも開け、さらにハイライトも多数の言語に対応している。言語ごとにコンパイルや実行などの特殊な処理を割り
Learn to Program. For Free. Learning to program makes you a smarter and more capable human being. Rocket science uses programming, but programming isn't rocket science. Whether you're a student preparing for a software career, an office worker buried under spreadsheet files, or a hobbyist who wants to make video games, the Python programming language is an excellent start in the world of programmi
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 第二特集「コードを読む技術」の中で,MySQLをのソースコードを「超効率的に読む」方法について解説している。コードを読むとなにが嬉しいのかとか,オープンソースのライブ感とかについて言及してあったりして,とにかくすばらしいと思ったので記録しておく。 ちなむと,Pythonのコードを読む場合はテストコードを読むととっかかりがつけやすくて効率的なので,僕はいつもそうやってる。自分でテスト書かない人は思いつかない方法かもしれんなあ。
Chapter 1 Read online: Chapter 1 - Installing Python Videos: Installing Python on Windows Installing Python 3.1 under MacOSX Install Python 3.1 using Linux Chapter 2 Read online: Chapter 2 - The Interactive Shell Chapter 3 Read online: Chapter 3 - Strings Download source: hello.py Copy source to clipboard: Use the online diff tool to find typos in your code: hello.py Chapter 4 Read online: Chapter
apache + mod_pywebsocketで web sockets のサーバーインストールまで出来ました。 ここまで、来ると せっかくなんだから、Web IFのGUIが欲しいなぁ とか echoだけだと寂しいから、チャットのサンプルが欲しいなぁ とか思ってしまいます。てことで、作って見ました。 google code(subversion)にサンプルを置いておきましたので、 $ svn checkout http://html5clock.googlecode.com/svn/trunk/websocketsample somewhere でチェックアウトして見てください。html が、Websocketsサーバーを使うためのクライアントhtml, pythonが apache+mod_pywebsocket用のチャットサンプルです。それぞれの環境に応じて、適当なディレクトリにそれ
Moonlight is an open source implementation of Silverlight (http://silverlight.net), primarily for Linux and other Unix/X11 based operating systems. Novellは17日(米国時間)、同社がスポンサーとして取り組んでいるMonoプロジェクトからMoonlight 2がリリースされたと発表した。MoonlightはMonoプロジェクトで開発されているSilverlight互換環境。Silverlight 2に対応するとともに、Silverlight 3の一部の機能も提供している。 Moonlight 2ではユーザの接続状況に応じてマルチメディアコンテンツのストリーミングを最適化する機能が追加されているほか、Monoランタイム機能が追加されており、C
とりあえずその場で動けばokなプラグインを書いてみる。 Tracの環境を一つ用意して、TRAC_ADMINの権限を設定しておく。 用意したTrac環境のpluginsディレクトリに以下のhello.pyを作成する。 from trac.core import * from trac.web.api import IRequestHandler class HelloPlugin(Component): implements(IRequestHandler) def match_request(self, req): return req.path_info.startswith('/hello') def process_request(self, req): req.send_response(200) req.send_header('Content-Type', 'text/plai
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー けっこう誤解している人がいるみたいなので啓蒙。 Pythonは教育用プログラミング言語として設計されているわけではない。 このことについてはGuido本人が質問に答える形で言及している。 To answer the question of whether Python was designed from the beginning with education in mind, the answer has to be negative. My goal was to have a language that I could use for rapid application deve
Tracのナビゲーションバーにリンクを追加するNavAddPluginを使う。 今回はメインナビゲーションバーにリンクを追加する。 ダウンロードしたzipアーカイブを展開し、setup.pyのあるディレクトリへ移動して以下のコマンドにてインストール。 sudo python setup.py installtrac.iniにnavaddの設定を追加。 [components] navadd.* = enabled [navadd] add_items = foo,bar foo.title = ふー foo.url = http://www.google.com/ foo.target = mainnav bar.title = ばー bar.url = /wiki bar.target = mainnavtrac.iniのtracセクションのmainnavに追加したリンクを設定する [t
とりあえず資料貼っておきます. そもそも何でお前が Python の発表してるんだって言われるかもしれませんが, 許してくだしあ>< で,懇親会で LT 出来るという事なので急遽, インデントのせいで Python を嫌っている人に 「じゃぁ インデントしないで書けばいいじゃん」 というプレゼンをしました. (所属を asakusa.rb にしたのに誰も突っ込んでくれませんでした) インデントをブロックとして使ったほうが良いと考えているので, 使わないで書くのは大変ですが,出来無いと言われると悔しいので ちゃんと出来る方法を書きました. ちなみに end 書けばいいじゃんは「うじひさ」のネタ インデントを使わない(ワンライナ)は 昔,lambda を覚えるときに id:nishiohirokazu に教えてもらったネタです.
Boost の一部ながらも「実用的」すぎるため、とかくテンプレートメタプログラミングを愛好する諸兄から黙殺されてきた不幸のライブラリ、Boost.Python。Boost.勉強会でこいつの魅力を伝えようと思ったのだけど、時間の都合で無理だったので、簡単に紹介してみたい。 Boost.Python の基礎 Boost.Python は C++ のクラスや関数をラップする Python モジュールを恐ろしく簡単に書けるようにする、強力なライブラリである。 特に、Pyrex や Cython と比べて何がうれしいのかというと、 Python側にいちいちラッパ関数を書かなくてよい (テンプレートにより自動的に定義される) コンバータを登録することで、Python⇆C++の型の透過的な変換が容易にできる C++ のクラスを分かりやすい形で Python のクラスとして見せることが可能 といった点が挙
文字列の比較で疑問から引用: d1 = 'a a' d2 = 'a a' id(d1) # => 27605856 id(d2) # => 27606080 えっなんで? 文字列は変更不可能なオブジェクトなので普通はisじゃなくて==で比較をするんだけどね。空白で区切られた同一内容の文字列を2つ、対話的環境で個別に作成してからisで比較するとFalseになるようだ。 Python 2.6.1 (r261:67515, Jan 25 2009, 00:21:48) [GCC 4.0.1 (Apple Inc. build 5490)] on darwin >>> a = "a a" >>> b = "a a" >>> a is b False しかし、一つの式で書くとTrue >>> "a a" is "a a" True 一つの関数にまとめてもTrue >>> def foo(): ...
そろそろpythonでもSQLを直に書くのが面倒になってきたので、O/Rマッパーを探してみたところ、幾つか種類があったので有名どころを使ってみることにしました。今回試したのは以下の4つです。 SQLAlchemy SQLObject Elixir Storm まず用途についてですが、僕はテーブルスキーマはSQLで直に書きますので、ORMでDDLを扱うつもりはありません。DMLを簡単に扱いたいというのが一番の目標です。そこで予め作成して置いたテーブルに対してCRUD操作のし易さを比べてみました。比較に使用したのは以下のテーブルです。 CREATE TABLE `books` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(100) DEFAULT NULL, `price` int(11) DEFAULT NULL, `isbn
26. Python http ://ja .wik iped ia.o rg/w iki/P Unicode ytho n 2009 12 12
タイムライン取得とかつくらんとなー。つけた。 http://gist.github.com/253169 # encoding: utf-8 import urllib2 import cookielib import re import xml.dom as dom import xml.dom.minidom as minidom from BeautifulSoup import BeautifulSoup, Tag, Comment, NavigableString __all__ = ( 'AmebaNowClientException', 'UnsupportedContentTypeError', 'AuthenticationError', 'PostError', 'UnexpectedResponseError', 'AmebaNowClient', ) class A
PythonでCSVのFixtureをYAMLに変換(添削希望・・・)などと書いていたんですが、なんとid:perezvonさんが添削してくださいました! あざーっす! 元のコード: import sys import csv if (len(sys.argv) < 2): print 'Usage: %s ' % sys.argv[0] quit() csv_file = sys.argv[1] filename, suffix = csv_file.split('.') reader = csv.reader(file(csv_file, 'r')) i = -1 res = [] for row in reader: i += 1 if i == 0: column = row continue s = filename + str(i) + ":\n" for j in range
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 半裸Botを作ったとき,PythonでTwitterAPIをほげほげするのにPython-twitterを使ったんだけど。ちょっと長いTweetをPostしようとすると,「140文字以上あるよ!」という例外が発生してしまう。実際Tweetは60文字くらいしかないんだけど,おかしい。 なんでだろうと思ってソースを見てみたら原因が判明。ユニコードの8ビット文字列を,バイト列として見ている。これだと日本語のマルチバイト文字列が3倍の文字数と判別されてしまう。ASCII圏のことしか考えないのは欧米製のライブラリにはよくあることで,ひょっとしたらとは思ってたけど。 ソースコードをちょっと書き換え
IronPython is an open-source implementation of the Python programming language which is tightly integrated with .NET. IronPython can use .NET and Python libraries, and other .NET languages can use Python code just as easily. 2.7 2.7.12 released on 2022-01-21 release notes | source 3.4 3.4.1 released on 2023-07-12 release notes | source Experience a more interactive .NET and Python development expe
12月に入り、すっかり冬めいて来ました。 寒風吹きすさぶ中、家に帰って入るおこたの温かさ、たまりませんね。 さて、そんな冬がやってくると忘れてはならないのが、Pythonです。 寒くなってくるとなぜかPythonを書きたくなるのは一部では周知の事実ですね。 例えば、私。 2007年 2007年冬、帯にある「Google言語」の文字につられて「みんなのPython」を買いました。正月休みはこれを読んでPythonで遊びました。 2008年 2008年冬、CakePHP漬けだったのになぜかPython関西勉強会で発表する機会があり、Djangoと戯れました。DjangoPHPというナゾのネタをやったのを先週思い出しました。 2009年 そして2009年冬、なぜか突然Python + GAEを始め、勢いでこんなエントリを書いたりしました。 どの年も突然はしかのようにPython書きたい病が発症し
8月ぐらいから取り組んでいたSphinxの日本語訳がほぼ完了しました。一部間違い発見したのをIssue Trackerにいれたのを修正待ちだったり、分からないところをMLに聞いていたり、LaTeXのオプションが未訳だったりするけど、まぁ一旦ここでクローズ。 Docutils本体もそうだけど、Sphinxの拡張機能は色々ユメが広がる感じです。ディレクティブとロールを自分で作るだけでも、ドキュメントのレベルを一歩先に進めてくれそうですし。WebアプリケーションのURLとアクションとか、Web APIとか、クロスリファレンスできるとうれしいモノっていっぱいあるよね。 次はSphinxの拡張機能を色々やりたいね。youtubeディレクティブとか作りたいなぁ、なんて思っています。Docutilsの知識とかもいろいろ必要になってくるけどね。
BOTつくろう会参加 いつのまにか師走に突入、突進、激突、破壊、炎上の季節になってきましたがみなさんいかがお過ごしで。 かれこれ2週間ほど前に、BOTつくろう会の勉強会が開催されました。この勉強会は「Google App Engine×pythonでBOTつくろうぜ!」というコンセプトなのですが、「え?python?パイソンっておいしいんですか?」状態の僕は持ち前の空気読まない力を存分に発揮し、何も事前勉強せずに参加してみたら、みんなすっごい優しいのな……!右も左もわからない僕に対して懇切丁寧に教えてくださって涙が出ました。*1ああいう優しさに触れて、生きてることのありがたみを今さらながら実感したんですけど、その話は置いておいて、例のBOTの話をします。はい。 俺の家にあるBOTをなんとかしたいんや・・・ ぼくが2年ほど前に思いつきで作った高田純次BOTと森田一義BOTが奇跡的なフォロワー
Djangoでのテストを書くときに、URLにアクセスしてステータスコード見るだけってテストをコピペで量産するのはかっこ悪いので、どうにかする例。 test.pyにTestCaseをちょっと拡張したクラスを書いておく test.py from django.test import TestCase class BaseURLTestCase(type): def __new__(cls, name, bases, dict): counter = 0 for url in dict['url_list']: def _outer(url): def _url_test(self): response = self.client.get(url[0]) self.assertEquals(response.status_code, url[1], '%d != %d %s' % (respon
コンテンツへスキップ 無料で使える!HubSpotの顧客リストの活用法 無料のアンケート作成ツール 比較/まとめ 無料「Excel」 テンプレート 比較/まとめ 無料で使えるノートアプリ比較 (Evernote / OneNote / Google Keep) おすすめの無料Web会議システム5選 WebP Converter 徹底解説!初心者でも直ぐに使える HubSpot は、マーケティング、セールス、サービスのためのCRM(Continue reading 多くの人の声を聞くことで改善できることも多い 企業や団体など運営していContinue reading 就職・転職には必須となる履歴書・職務経歴書 これから就職活動をスタートContinue reading 便利なノートアプリで効率的な仕事をしよう いつの時代も仕事をしていてメContinue reading 近年、リモートワーク
reStructuredTextからPDFファイルを生成するツールにrst2pdfというものがありますが、インストールとか設定でたまにはまる。もっと手軽にPDF作りたいなーってことでAppEngineに乗っけてみました。 URL http://www.rst2pdf.net/ https://rst2pdf-net.appspot.com/ HTTPSで使いたい場合はappspot.comのドメインのほうを使って下さい。 何ができるの reSTのテキストを投稿する(アップロードする)とPDFファイルを作成できます HTTPSで利用するとダウンロードページにパスワードを設定することができます 通常のrst2pdfと同じような使い方のコマンドツールがあります 注意点 テキストのみのreSTにしか対応していない どうやって使うの まずは http://www.rst2pdf.net/ にアクセス
仕事で Jython を使う機会があって ほぼ、初めて Jython を触ったんですけど、めっちゃおもしろい。 Java のクラスが何も考えずに使えちゃう。 たとえば、 HTML (not XHTML) をパースして XPath で取得するコードとかを nekohtml と xalan で以下のように書ける from java.io import FileInputStream from org.xml.sax import InputSource from org.cyberneko.html.parsers import DOMParser from org.apache.xpath import XPathAPI # input source = InputSource(FileInputStream('test.html')) source.setEncoding('UTF-8')
Google App Engine アプリを作っていると、「ログインしていないときはログインページにリダイレクトする」コードをよく書きます。 class MainHandler(webapp.RequestHandler): def get(self): # ログインしていないときは、ログインページにリダイレクト if not users.get_current_user(): self.redirect(users.create_login_url(self.request.uri)) return self.response.out.write('Hello world!') ログインが必要なメソッドの先頭で、このコードを毎回記述するのは面倒です。かといって、共通化しようにも、ベースクラスを用意してヘルパーメソッドを定義するのはイマイチ。 そこで思いついたのが、Python のデコレー
PystachioはJavaScript製のオープンソース・ソフトウェア。Webシステムにおいてクライアントサイドで選べる言語はあまり多くない。JavaScript/ActiveX/Flash/Javaくらいだろうか。動作の軽快さやユーザビリティを考えるとJavaScriptが良い選択肢になるだろう。 PythonのコードをJavaScriptに変換して実行する とはいえサーバサイドと合わせて二つの言語を使いこなすのは面倒だ。そこでPystachioの出番となる。PystachioはJavaScriptで作られたソフトウェアだが、Pythonのコードを解釈してJavaScriptとして実行してしまおうという試みがなされている。 キーワードはscriptタグの「text/python」になるだろう。これが埋め込まれている内部のコードを解釈してJavaScriptに変換するのがPystachi
PHPを日々書いている人へ。 たまにはPHPから離れて他の言語でプログラムを書いてみましょうという話です。 Webシステムのプログラムを書く手段としてPHPは実用的なのですが、他にも様々な言語が存在しているのは周知のとおりです。PHPにはPHPの、他の言語には他の言語の良いところ悪いところがあり、それらは普段使っている言語を離れて他の言語を知ることによって、初めて気付かされます。 また他の言語での実装方法を知ることにより、PHPで実装する際に別の角度からプログラムを見ることができ、さらに深い理解を得ることができます。 PHPを極めていくことはとても良いことなのですが、ある程度頭で描いた仕様が実装できるようになったのなら、是非他の言語を触ってみることをおすすめします。 では実際どの言語を触ってみるのが良いかという話になるのですが、普段PHPでWebシステムを開発しているなら、おすすめはPyt
Web ShellはiPhone向け、Python製のオープンソース・ソフトウェア。Webブラウザ上でターミナルをエミュレートするソフトウェアは幾つか存在する。セキュリティの話を無視すれば技術的には非常に面白く可能性を感じさせる。だがいかんせんなんちゃっての実現方法が多かった。 自由にコマンドを送れる そんな中、ハイレベルなオンラインターミナルが登場した。それがWeb Shellだ。Pythonで作られており、専用のWebサーバを立ち上げる。そしてiPhoneからブラウザ経由で接続するという仕組みになっている。セットアップ時には独自の認証ファイルを生成し、HTTPS経由で接続するようになっている。 ユーザログインにも対応し、コマンドはターミナルと変わらずに実行できる。iPhoneだけに幾つかのキー(矢印キーやCtrlキーなど)は存在しないが、Web Shellが専用のキーを用意している。そ
調査方法 @a244s2でクロールしている2chまとめブログのURLを対象に、「はてなブックマーク件数取得API」を参考にしつつそれぞれのサイトの総ブックマーク数を取得。ていうかpythonでXML-RPC使う練習をしてたらエントリのネタができてしまったというね。 結果 多い順に並べてみたけどブックマークが付きにくいタイプのサイトもあるから(短レス系とかえっちいのとか)順番はあんまり参考にならないね。もともとクロール対象になっていないサイトもあります。 サイト名 調査URL 総ブックマーク数 痛いニュース(ノ∀`) http://blog.livedoor.jp/dqnplus/ 299164 アルファルファモザイク http://alfalfa.livedoor.biz/ 297621 【2ch】ニュー速クオリティ http://news4vip.livedoor.biz/ 138131
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー Web開発で,Pythonのコードをクライアントサイド(Webブラウザ)でダイナミックに実行したいというニーズはけっこうあると思う。 pystachio(ピスタチオ)はユニークなアプローチでPythonのコードをWebブラウザ上で実行する仕組みだ。Pythonのコードを,JavaScriptを使ってダイナミックにPythonのコードに変換して実行する,というもの。開発者はHTMLなどにPythonのコードを埋め込むだけでいい。あとはpystachioがPythonのコードをJavaScriptに変換して,実行してくれる。 まずは <script type="text/javascrip
Google AppEngineではBigtableの上にDatastore Serviceが構築されていて、開発者は、このDatastore Serviceを利用してBigtableにアクセスすることになります。このDatastore ServiceはPython版もJava版も機能はほとんど同じです。もしかすると、全く同じものかもしれません。 GAE/Jの場合、JDOを通じて、Datastore Serviceを利用するのが推奨されていますが、実はこれが嵌りポイント。 JDOは汎用的なインターフェースなので、Datastore Serviceを理解するのには向いていません。Datastore ServiceがRDBMSのような高機能なら、JDOを通じて抽象化し、Datastore Serviceのことは知らなくても済すのもぜんぜんありなのですが、残念ながら、そうなってはいません。 Da
Mercurialといえば、gitと並んでよく使われている分散型バージョン管理システム。Google Codeやsourceforge.netでも利用可能である。 そしてMercurialと言えばpythonで構築されている事でも有名である。 ただ、pythonであるがために、ソースに手を入れ辛い(それ以前にpythonをよく知らない)、文字化け等でトラブった時もなかなか対応できないという事もままあったりする(pythonを勉強したら済むと言えばそれまでだが) そこで登場するのが、今回紹介するAmp。Mercurialのコマンドであるhgの100%互換を謳っており、Rubyで書かれている 。このRubyで書かれている事が重要。ちょっとソースを覗いてみようか、という気になるし、カズタマイズやトラブルシューティングも(Mercurialよりは)楽にできるはず。 Ampとは Rubyで書かれたM
僕はOracleでRDBMSとかSQLを勉強した人間なので、絶対に外部キーを張り、可能であればチェック制約もかけて、絶対に不正なデータは入れさせたくないと思う人間なのだが、LAMPサーバーを並べてスケールさせるっていう今時のサイトでは、外部キーを張らない設計の方が主流らしい。・・・本当!?確かに、アプリケーションやORMで頑張れば、外部キーを張るメリットが消え、外部キーを張るデメリットだけが残り、そしてMySQLはRDBMSではなく、SQLをサポートする単なるストレージになるだろうが・・・ちなみにSQLAlchemyならばテーブル定義から外部キーを消しても、mapperの定義で明示的に示してやれば、いままで通りのコードが動くはず。以下は「飼い主(Owner)と犬(Dog)の間に一対多の関係がある」という場合の例。 # -*- coding: utf-8 -*- from sqlalchem
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
続きを書きました(2010/2/16) ユーザ向けのドキュメントを作成するのによいツールがないかと探していたのですが、SphinxというPythonのドキュメント作成に使われているツールを試してみました。SphinxではreStructuredTextというマークアップ言語で記述したファイルからHTML、HTML Help、PDFなどを自動生成することができます。 今までWordファイルからPDFとHTMLを作成していたのですが、自動生成されるHTMLはそのままでは使えず手作業で修正しており、これをいい加減なんとかしたいと思っていました。 以下は、Windows環境にて一からPDF形式のドキュメントを生成できるようになるまでの手順のメモです。 Pythonのインストール Pythonをインストールします。Python2.6のWindows用インストーラでインストールしてPATHを設定しまし
Google App Engine向けのアプリを作る際に最初に悩んだのはフレームワークの選択。Google App Engineにはwebappという最低限の機能を持ったフレームワークが付いて来るが、Python使いの人たちの間では、DJangoというフレームワークが広く使われているらしいし。かといって、あまり大きなフレームワークを使うと、パフォーマンスのチューニングとかもしにくくなるし、フレームワークそのもののバグや制限に悩ませられる可能性もある。 そんな中で増井君が見つけてくれてまず試したのが、Junoというフレームワーク。DJangoと比べると遥かに小さく、WebappよりもURLのルーティングのメカニズムとかが充実している。 そこで一旦はアプリをJunoの上で作り始めたのだが、Junoのソースコードを見ているうちにいろいろと気に入らないところが出て来た。不必要にオプションが多いし、
めーるあどれす ruby -rbase64 -e'puts Base64.decode64 %q(dGFrYW5vMzJAZ21haWwuY29t)' ■ [Twitter][Python] TwitterIrcGatewayでの発言にサフィックスをつけるハッシュタグとかに使えますね。 DLRスクリプトによる実装です。Configs/${USER}/Scripts の中に入れてください。ちなみに、このコード表示の右上にあるアイコンからクリップボードにコピーできます。よい子のニコニコ動画閲覧者のみんなはフラッシュとかインストールされてるよね。 import sys import clr import re import thread import time import Misuzilla.Applications.TwitterIrcGateway import Misuzilla.App
調査会社の米Evans Dataの最新調査によると、2008年4月に米Googleが「Google App Engine」を公開以来、北米開発者におけるスクリプト言語「Python」の利用が1年半で約45%増加したという。 この調査は、今年10月、北米地区の開発者500人を対象に詳細な調査を行い、「North American Development Survey」としてまとめたもの。 それによると、GoogleがApp Engineを公開して1年半でPythonの利用が13%から20.3%となり、45%増加したという。App Engineは、GoogleのインフラでWebアプリケーションの開発・実行ができるサービス。2008年4月の発表時はPythonにしか対応しておらず、1年後の2009年4月にJava対応が加わっている。 Evans Dataによると、Ruby、PHP、Perlなど他
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
同じようなコードをそれぞれの言語で書いてみた。 Ada: with Ada.Text_IO; with Ada.Strings.Unbounded; procedure MyTest is use Ada.Strings.Unbounded; use Ada.Text_IO; task MyTask is entry Hello(Message: String); end; task body MyTask is Received_Message: Unbounded_String; begin loop select accept Hello(Message: in String) do Received_Message := To_Unbounded_String(Message); end Hello; end select; Put_Line(To_String(Received_
Python Programming Language Business Wire、New Survey Shows Python Use Has Risen 45% Since Google App Engine DebutedにおいてEvans Dataが実施した調査結果の概要が紹介されている。北米の開発者向けに2009年10月の前半から実施された調査の結果の一部を取り上げたもの。次の内容が示されている。 Pythonの利用率が20.3%と大きく伸びている。2008年4月が13%であったことから、この1年半ほどで45%シェアを伸ばしたことになる。この大幅な伸びはGoogleがApp EngineでPythonを採用したことに原因があると考えられる Ruby、PHP、Perl、Actionscriptのシェアは多少の増減はあれど安定している 現在クラウドを利用しているユーザは8.7%だが
2009/11/14に行われた、Python Hack-a-thon #2 に参加して、Kayフレームワークの勉強をしてきました。 講師は、開発者の松尾さんです。 Python Hack-a-thon #2 http://atnd.org/events/1288 オラクル青山センター 2009/11/14 10:00-19:00 Kayの基本 Kay = ケィ http://code.google.com/p/kay-framework/ ドキュメント http://kay-docs-jp.shehas.net/ Kayで作られたアプリケーション theokayblog(ブログ) http://code.google.com/p/theokayblog/ 心を引いたKayの特徴 デバッグ機能。 エラーの位置が詳細に表示される エラー画面からコンソールを叩ける Pythonのアプリだと、この
以前書いたpythonicなA*関数をままgoで書いてみました。 astar.go: http://gist.github.com/233012 astar_main.go: http://gist.github.com/233013 参考python版: http://gist.github.com/147645 そのとき調査で理解したものを紹介します。 0値 goの0値(初期値を設定しないときのデフォルト値)がどうなるか、そしてどう比較するかの例です。 http://golang.org/doc/go_spec.html#The_zero_value package main import "fmt" type location struct { x, y int } func main() { var v location; fmt.Printf("%v\n", v); //fmt.
<< Windmill 日本語ドキュメント Windmill IDE の使い方 Windmill IDE はテストの作成、編集、出力のモニタリングやブラウザ上での Javascript を使った通信を実現するグラフィカルなツールです。 IDE の起動 windmill firefox http://www.example.com (Mac 上で Safari を使う場合は上記 firefox の部分を safari に変更してください) 上記コマンドの実行により Firefox が起動、Windmill が読み込まれます。 Windmill の読み込みが完了すると2つのウィンドウが表示されます。ひとつはテスト対象アプリケーションのページ( http://www.example.com) で、もうひとつが Windmill IDE です。 テストのレコーディング レコーディング機能を使う
jQueryのハンズオンをやりますが全然準備していないので即興でやります。 jQueryを始める上であるとよいもの jQuery jQuery 開発環境 Mac、PC、Linux 向け新高速ブラウザー | Firefox Firebug FireQuery is a Firebug extension for jQuery development FireQuery - jQueryを扱う際に便利なFirebug拡張 - - 文殊堂 https://addons.mozilla.org/en-US/firefox/addon/11905/ FirefinderはJavaScriptプログラマ以外も使うべき - 文殊堂 ドキュメント http://api.jquery.com/browser/ 下の方に"INSTALL NOW"とかあるのでクリックしてAdobe Air板をインスコしましょう
渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 Sphinxについていろいろ考え中です。ツールとしてのすばらしさは申し分なく、いろいろ夢が広がりすぎて困ってしまうぐらいです。悩んでいるテーマは2つ。 Sphinx hack-a-thon @aohtaから、公式ハッシュタグについてのアナウンスもあった、Sphinx hack-a-thon。偶然、同日に同じ会場でやることになっている、Python hack-a-thonと共同開催です。やる内容はこんな感じかな、と思っています。 ハンズオン Sphinxをインストールしてみて、料理のレシピか何かのドキュメントを作ってみよう!という30分~50分程度のハンズオン。参考資料は↓このあたり。手前味噌だけど。@MiCHiLUがPDF出力とか説明してくれたりするかな!? Sphinxドキュ
Google App Engine のDatastoreには、通常のリレーショナルデータベースと比べた時にいくつかの制限があるが、その一つが「このプロパティの値は常にユニークでなければならない」という指定(ユニーク制限)ができないことである。 Invoice IDのように自動生成するものであれば、アプリケーション側でなんとかすることも簡単だが、メールアドレスやハンドル名など、ユーザーが入力するものになると、ユニークであることをきちんと判定した上でEntityを作ることが必要になる。 もちろん、単純に「有無をチェックして、なければ作る」というプログラムではスレッド間の競合に対応できないので、そこはトランザクションを使ってアトミックに処理をする必要がある。 App Engine上でトランザクションを実現するには、エンティティグループという仕組みを使って行うが、気をつけなければいけないのは、エン
今週に入ってから、ようやく少し本気でGoogle App Engineでプログラムを書き始めている私だが、ようやく Entity Group の使い方が分かって来たので簡単に解説してみる。 Entity Groupとは、一口で言えば「トランザクションを使ったアトミックな読み書きの対象となるEntity(=データベース上のオブジェクト)の集まり」である。 イメージとしては、まず「一つのハノイの塔を三人で同時に遊んでいる姿」を思い浮かべると分かりやすいかも知れない。全くのルールなしで皆で同時に遊ぼうとすると、腕が交錯してぐちゃぐちゃになってしまう。 そこで、「ある時点でハノイの塔ボード(三つの棒を支えている水平に置かれた板)に触ることが出来る人は常に一人。一度ボードに触った人はすべての円盤をいずれかの棒の位置に置いた状態にしてからしか手を離してはいけない。もし自分がハノイの塔に触りたい時に、す
auto-complete.elを曖昧マッチに対応させるため、今回からfuzzy.elという拡張が同封されるようになりました。この拡張は必須ではありませんが、曖昧マッチを使う場合は必要になります。 曖昧マッチで補完を行うにはac-fuzzy-completeコマンドを実行します。このときカーソルが赤色になりますが、これが曖昧マッチで補完を行っていることを表わしています。 曖昧マッチによる補完はauto-completeコマンドからでも行うことができます。このとき曖昧マッチを使うかどうかのフラグであるac-use-fuzzy変数がtである必要があります。デフォルトはtなので、曖昧マッチを使いたくない人のみ適宜nilにしてください。auto-completeコマンドが実行されると、従来のマッチで補完候補の生成を試みますが、このときに一つも補完候補を生成できない場合のみマッチの方法を曖昧マッチに
auラインナップへのスマートフォン導入とAndroidスマートフォン向けアプリマーケットの提供について ~スマートフォンのラインナップを強化~ KDDI、沖縄セルラーは、個人のお客さま向けに初めてAndroid OS搭載スマートフォン「Androidスマートフォン」およびWindows Mobile OS搭載スマートフォン「Windows phone」を、2010年6月以降発売します。また、「Androidスマートフォン」の導入にあわせ、KDDIがおすすめするアプリケーションなどを集めた新たなアプリマーケットの提供も、同時に開始します。 KDDIの「Androidスマートフォン」では、Google社が提供する、世界中のアプリケーションをダウンロードできる「Android マーケット」に加え、KDDIが開設するアプリマーケットもご利用いただけます。 KDDIが開設するアプリマーケットでは、お
現在の宇宙のなかで最も熱い4兆度という超高温状態をつくり出すことに、理化学研究所や東京大、米ブルックヘブン国立研究所などの研究チームが成功した。 宇宙が始まった「ビッグバン」から100万分の1秒後の状態を再現したと考えられ、宇宙進化を解明する手がかりになると期待される。米ワシントンで開かれる米国物理学会で15日に発表する。 研究チームはブルックヘブン研究所の施設(加速器)で、金の原子核同士を光速に近いスピードで衝突させた。衝突で生じる膨大なエネルギーによって、周辺には、物質を構成する究極の素粒子「クォーク」などが液体のように広がる状態が発生した。 この時発せられた光の強さを分析したところ、衝突時の温度が4兆度に上ることがわかった。太陽の中心部の25万倍高い温度で、現在の自然状態の宇宙には存在しない温度と考えられる。 研究に参加する東京大の浜垣秀樹准教授は「超高温状態を調べることで、宇宙進化
東京都台東区で黙々とウェブでサービスを開発している株式会社アストロデオのホームページです。
追記: 増やした。 今、こんな文書を書いている。 Word の数式の基本 XPS 版 PDF 版 僕が TeX から Word に移行していったのは修士過程に通っていた頃からだ。学科の修論テンプレートはもちろん LaTeX のスタイルファイルだったが、それと見た目そっくりな Word テンプレートを作って、Word で修論を書いた。当時はまだ Office 2003 だったか。2007 になって、Word はさらに使いやすくなった。もはや TeX を使う理由は全くない。 時代は流れ、僕はもはや TeX のことなんて忘れていたんだ。でも、風のうわさで、いまだに学生は TeX で論文を書いているらしいというのを小耳にはさんだ。もうすぐ Office 2010 が出ようというこのご時世にだ。 そこで、今日は僕が TeX を使うのを辞めた理由を書いてみようと思う。 1. 一生のスキルたり得るか 「
Python 2までは、「raise OSError, 'foobarbaz'」という記法が利用できましたが、Python 3では使えなくなっています。ここでも、より明解な文法のみが採用され、古く曖昧に見える文法が取り除かれています。 モジュールの統合や改名 PythonにはPEP 8という変数などの命名ルールを決めた文書があります。この文書には、モジュール名は英小文字で構成することとあります。このように命名規則を設けることで、プログラム中でどんな種類のオブジェクトを扱っているのかが分かりやすくなります。 ところで、Python 2の標準ライブラリの中には、QueueやConfigParserなど大文字で始まるものがいくつかありました。大文字で始まる命名規則はクラスに採用されているため、紛らわしいという議論がありました。 また、urllibとurllib2など紛らわしい名前のモジュールが混
言語としての一貫性を重視したPython 3の進化:よりPythonicなPythonを目指して(後編)(1/2 ページ) Python 3.0では、Python 2で書かれたスクリプトが動かなくなるような実装が行われた。なぜ、後方互換性を崩してまで大きな仕様変更を行ったのか。それは、PythonがよりPythonらしくあるためだ。 前編「Python 3が後方互換性を捨てても求めたもの」では、後方互換性を犠牲にしてでも、よりPythonらしくあるために仕様を変更したことに触れながら、いくつかの機能変更を見てきました。 それは、「誰もが正しいと考える、たった1つの方法をできる限り採用する(There should be one-and preferably only one-obvious way to do it)」というPythonの設計思想を、より高次元で実現するために必要だったから
How do I get started?¶ Download the code. Install Django (read the installation guide). Walk through the tutorial. Check out the rest of the documentation, and ask questions if you run into trouble. What are Django’s prerequisites?¶ Django requires Python. See the table in the next question for the versions of Python that work with each version of Django. Other Python libraries may be required for
GNU/Linux Firefox uses the GTK setting to determine whether Emacs-like/Readline-like keybindings are active in text fields. There are two different methods depending upon whether or not you run Gnome. If in doubt, it doesn't hurt to do both. Standard method: .gtkrc-2.0 To enable Emacs keybindings, add the line gtk-key-theme-name = "Emacs" to ~/.gtkrc-2.0 (create the file if it doesn't exist) and r
12月3日、Python 3.0がリリースされました。Python 3.0はPython 3000とも呼ばれており、Python 2.x系から大幅な仕様変更が加えられています。 主な(そして注意すべき)変更点は「What's New In Python 3.0」にまとめられていますが、「Python 2.xとは互換性が無い」と言われるように、かなりの仕様変更が行われています。主立ったものをまとめると、 print文が関数となり、色々と仕様も変更された。もう「print "ほげほげ",」という記法は使えない 「dict.keys()」や「dict.items()」、「dict.values()」といったDictionaryを扱ういくつかの関数の動作が変更され、リストの代わりにViewやIteratorを返すようになった 比較演算子(<、>、<=、>=)の仕様変更。明らかに不自然な比較(たとえ
サザエさんをどこまで美人に描けるか、挑戦してみようぜwww カテゴリ☆☆☆☆☆ 1 :以下、名無しにかわりましてVIPがお送りします:2010/02/16(火) 22:27:59.18 ID:eCamznMBO デジタルでも、アナログでも、色付きでも、モノクロでも、描いてうp 2 :以下、名無しにかわりましてVIPがお送りします:2010/02/16(火) 22:29:35.76 ID:UkPM4aoY0 上手いな 3 :以下、名無しにかわりましてVIPがお送りします:2010/02/16(火) 22:30:38.48 ID:lSpc4+id0 色っぽく描いてくれ 4 :以下、名無しにかわりましてVIPがお送りします:2010/02/16(火) 22:31:06.75 ID:tvY+Lard0 おもしろい 俺も描く 5 :以下、名無しにかわりましてVIPがお送りします:2
はじめに ここ最近、NoSQLというキーワードが注目を集めています。 リレーショナルデータベースは、一般的にスケールアウト(サーバの台数を増やして性能向上を図る手法)が難しく、特に大規模サービスにおいてパフォーマンス上のボトルネックとなりえます。また、タグやグラフ構造のようなデータは関係モデルに馴染みにくいため、それらを扱う際にはアプリケーションコードもぎこちないものになりがちです。 これらの問題を背景に、何にでもリレーショナルデータベースを使うのではなく、用途に応じてKVSなど他のデータストアを選択する流れが広まりつつあります。このムーブメントがNoSQL(Not Only SQL)と呼ばれているものです。 今回は、NoSQLなデータベースの1つであるMongoDBをご紹介します。 MongoDBとは MongoDBは高いパフォーマンスとスケーラビリティを特徴とするドキュメント指向型デー
まだ自分でインストールして確かめていないが、kumofsに興味津々である。何が興味深いかというと、まあスケーラブルで且つ耐障害性に優れるところだ。もちろんそれだけなら分散KVSということである程度予想された機能である。個人的な興味としては「この種のKVSを使ってRDBMSもどきが作れないか」というところにある。 この構想は 超 並列RDBMSは成立するか – L.star的デザイン(1) でずいぶん前から暖めているものであるが、ここでいうリソースノードをkumofsで代用できないかというものだ。引用して、機能的な実装の必要でないものを除くと リソースノード storage engineである DDL的には、テーブルスペースに近い位置づけとして定義可能であると考えている。 sequential scan, index scan, seq scan+sortを行い、その結果を返すDBである。M
Memcached のベンチマークツールを公開しました。自作の KVS のパフォーマンス測定に使っていたものです。 以下のように簡単にベンチマークがとれます。 $ mcbench -b 10000 -t 10 -n 1000 -s 127.0.0.1 -p 11211 -c get ==== mcbench started ======================= Server: 127.0.0.1:11211 10 threads x 1000 = 10000 commands. Inserting base data 10000 ... done Sending get Commands ... done ==== mcbench result ======================== Interval: 138 msec Performance: 72661 comma
前回は、kumofsはなぜスケールするかということについて紹介しました。その中で最後に、耐障害性もスケーラビリティにとって重要だーと述べました。 そこで今回は、kumofsはなぜ落ちないのか、なぜ耐障害性が高いと言えるのかーということについて紹介したいと思います。 分散システムはテストが難しいことに定評がありますが(たぶん^^;)、その中でも耐障害性の検証は最上級に困難な部類です。 耐障害性は実際のところ、アルゴリズムの設計以前に実装上のバグが大きく影響するので、設計上は耐障害性が高いと言っていても、実際に使ってみると良く止まるという話はありがちな話です。(個人で開発している場合など、開発リソースが小さい場合はなおさら) そのため耐障害性の高いシステムを実現するためには、実装しやすくバグが入り込みにくい設計も重要かなーと思います(もちろん、アルゴリズムも重要ですが)。 分散システムには複雑
memcachedに依存するシステムやコードを書く人は大嫌いな訳だけど、スケーラビリティを向上させてレスポンス時間の高速化には必須なmemcachedですが、最近のプロトコル変更には疑問を感じてしまう。 1.4.0では、こちらに書いた通り、いつの間にかdeleteのtimeoutがサポートされなくなった。なので、 delete key timeout noreply というコマンドが無効になって困ることになった。それでも delete key timeout というコマンドは、timeoutにどんなも文字列が入っていてもエラーになることはなかった。timeoutは効かないけど。 ここから1.4.4ではさらに悪化。timeoutが0でないとエラーになるようになった。つまり delete key 0 noreply delete key 0 は有効なんだけど、 delete key 10 がエ
このドメインは お名前.com から取得されました。 お名前.com は GMOインターネットグループ(株) が運営する国内シェアNo.1のドメイン登録サービスです。 ※表示価格は、全て税込です。 ※サービス品質維持のため、一時的に対象となる料金へ一定割合の「サービス維持調整費」を加算させていただきます。 ※1 「国内シェア」は、ICANN(インターネットのドメイン名などの資源を管理する非営利団体)の公表数値をもとに集計。gTLDが集計の対象。 日本のドメイン登録業者(レジストラ)(「ICANNがレジストラとして認定した企業」一覧(InterNIC提供)内に「Japan」の記載があるもの)を対象。 レジストラ「GMO Internet Group, Inc. d/b/a Onamae.com」のシェア値を集計。 2023年5月時点の調査。
技術フェチ日記 (2010年 1月) 先月, 来月 へ 一覧へ 首藤のページへ 2010/1/31 (日) 休日がない。 30,31日は出張, 23,24日は原稿書き, 16,17日は講義準備。 10日(日) は少ししか仕事せずに済んでた。 秋葉原 (日記1/18分) へ。 ヨドバシカメラの前には、一心不乱に Nintendo DS に向かう人々の姿が。 ジャイヒンド 秋葉原店 (11/21分)。 3日ぶりのインドカレー。 何かのカレー1,300円、ナン 300円。 1,050円のランチは、日曜祝日はやってないとのこと。 金の蔵 Jr. 秋葉原店 (google)。 2010/1/30 (土) 船橋へ。 船橋は、一度、車で通ったことがあるくらい。 ラーメン 無限大 (google)。 11:50 頃入店。 大勝軒の雑誌記事が壁に貼ってあるなあ、と思ったら、茨城大勝軒グループ (日記2009
TerrastoreはJava製のオープンソース・ソフトウェア。KVS(キーバリューストア)はオンメモリーのものが多い。つまり高速ではあるが、サービスを再起動すると全てなくなってしまうということだ。それが利点でもあるが、活用していく中では物足りなく感じることもあるだろう。 サーバ起動中 そこで使ってみたいのがファイルストア型のKVSだ。有名なものとしてはAmazon S3が知られている。キーを使ってデータにアクセスし、更新したり削除できるシステムだ。そしてTerrastoreはRESTfulにデータアクセスができるKVSまたはドキュメントストアだ。 HTTPによるアクセスなのでJavaに限らず他の言語から(またはターミナルから)扱うことが出来る。データはJSON形式に保持されるようになっている。マスターとサーバによって複数台のスケーラブルな構成がとれるようになっているのが特徴だ。 データは
はじめに 本連載ではここまで、ソーシャルデータの取得とアクティビティの作成について説明してきました。OpenSocialアプリケーションに欠かせないもう一つの機能が、今回扱うデータの永続化です。一般的なアプリケーションでユーザーが入力したデータなどをファイルやデータベースに保存するように、OpenSocialアプリケーション内で扱うデータについても、この永続化機能を使ってOpenSocialコンテナ上に保存することができます。OpenSocial JavaScript APIでは、このアプリケーションデータの永続化機能をPersistence APIと呼んでいます。 Persistence APIは、ただアプリケーションの利用者のデータの保存、取得を行うだけでなく、他のユーザーのデータを取得することもできます。他のユーザーのデータの取得が可能になることから、Persistence APIは
Working with hugedomains.com was a quick and easy process. We got to speak to multiple real people located in Colorado without having to wait on hold! Our only complaint was we felt we had to overpay more than this particular domain was worth, and we weren't able to negotiate it down to a level that we felt was fair. However, payment and delivery were seamless, and within a few hours we had all of
Verified details These details have been verified by PyPI Maintainers jaraco Unverified details These details have not been verified by PyPI Project links Homepage Meta License: Python Software Foundation License, Zope Public License (PSF or ZPL) Author: The fellowship of the packaging Tags CPAN, PyPI, distutils, eggs, package, management
構造と仕組みをちゃんと理解する。いきなりJDOとかダメって。 http://songofcloud.gluegent.com/2009/11/slim3-datastore1.html 間違い、追加等ありましたらおしえてください。 1.概要 http://www.atmarkit.co.jp/fjava/index/index_bigtable.html 分散KeyValueストア:「巨大なハッシュ=datastore」に「小さなハッシュ=Entity」をたくさん詰め込む get/putの速度:データが無限に増えても遅くならない 全体図 2.スキーマレス Entity = Hashみたいなもの : Valueには全プロパティがシリアライズされて保存される Key / Kind プロパティの型 : int / string / date / list / ... 3.インデックス / クエリ
I've been trying to follow the fast-moving world of NoSQL lately, and -- like a visit to the carnival funhouse -- it has left me with double vision, queasy stomach, and a staggering gait. (And it's not even Saturday morning...) Yet I find myself coming back for more. If you're new to NoSQL, you'll want to do a bit of background reading. I'll keep this quick and limit my recommendations to just the
11月30日に、Perlプログラマの集まるイベント「Shibuya.pm Technical Talk #12」に参加して、発表を聴いてきました。 中心となったのは「NoSQL vs. NoKVS ライトニングディスカッション」。実際に高速(分散)KVSやRDBMSを開発したり使ったりしている豪華メンバーが壇上に並んで、発表や議論を繰り広げました。 そのほかの発表も含めて、実開発者による濃い話が面白く語られていました。全体的に、アプリの実行速度にこだわった話が多かったのが印象的です。あと、予定の9時ぴったりに終わったのにもびっくり。 1週間たっちゃいましたが、以下、自分の復習として、メモをまとめておきます。 Tatsumaki" I/O bound HTTP clients in web frameworks(miyagawa) Shibuya.pmといえばこの人、miyagawaさんのセ
TAKESAKOさんにお誘い頂き、shibuya.pmでLux IOについて話してきました。 Perlとはほとんど関係無いですが、NoSQL特集ということで呼んで頂きました。 以前のKey-Value Store 勉強会よりも少しだけ設計方針などを交えましたが、 あんまり変わらない資料で恐縮です。一応、以下に載せておきます。 Lux IO - Shibuyapm View more documents from mogwaing. NoSQL vs NoKVS みたいなのもテーマとしてあったらしく、発表の後半の奥一穂さんなどは、NoSQLではなくて、やっぱりリレーショナルモデルでACID性があって安定していてそこそこ高速なオープンソースのRDBMSをスケールさせて使いたいとのことで、InclineとPacificという新しいプロダクトの紹介をされていました。 KVSの基盤となるD
開発しているシャーディングミドルウェアである Incline と Pacific については YAPC::Asia 2009 を始めいろいろな所で話をする機会をいただいてきたので、今回は、なぜ RDBMS ベースのアプローチを採用したのかという背景を中心に説明させていただきました。概念的な話が多くて分かりにくかったと思います(すみません)が、細かな点についてはパフォーマンスとスケーラビリティのためのデータベースアーキテクチャ (BPStudy#25発表資料)を参照いただければと思います。 また、中で出てきた「実体化ビュー」については、Materialized view - Wikipedia, the free encyclopediaが良くまとまっているかと思います。Incline は一言でいうと、RDBで構成されるshard群の上で read-only かつ eventually co
Shibuya.pm#12 に行って来た。本物の宮川さんを見れた!(ミーハー)。難しくてわからないところがたくさんあったけど、刺激になった。また行きたい。 最近DB(Oracle)のお勉強しているので、「 NoSQL vs. NoKVS ライトニングディスカッション」が面白かった。特定の目的に特化したデータベースを自分で作られていて、すごいと思った。 以下、とても断片的で不正確なメモ。 特別講演 宮川達彦(id:miyagawa)さん - "Tatsumaki" I/O bound HTTP clients in web frameworks Tatsumaki at Shibuya.pm Tech Talks #12 - bulknews.typepad.com まず、PSGI/Plack がわかってない。 Perl web applications と web servers のインタ
前回の「送金のトランザクション処理パターン」では、EntityGroupにまたがるトランザクション処理について簡単に紹介しました。 様々なコメントいただきまして(ありがとうございます)、どうやら「Distributed Transactions on App Engine - Nick's Blog」のやり方が非常に優れているようですので、今回は「送金のトランザクション処理パターン」で紹介した手法に最適化を施して、Nickさんのやり方に近付けてみようと思います。 今回紹介する最適化は、前回のような「狭い範囲のACIDトランザクション」と「べき等性による処理の伝搬」を組み合わせた分散トランザクション一般に適用できそうな手法です。そんなに大層なことはしていませんが、例によってまだ構想段階ですので、また至らない点があればご指摘いただければ幸いです。 おさらい 送金のトランザクション処理パターンで
Song of Cloudで送金のトランザクション処理パターンが紹介されていました。 http://songofcloud.gluegent.com/2009/11/blog-post_18.html 同様のpython版がこちら Distributed Transactions on App Engine - Nick's Blog 上記のやり方で基本的には問題はないのですが、バージョン管理による楽観的排他制御を行っていないので、送金だけを考えるなら、残高を差分で更新しているので大丈夫ですが、これを一般的なパターンに拡張しようとすると、楽観的排他制御は必要になります。 楽観的排他制御とは、エンティティにバージョン番号を持たせておいて、メモリ読み込んだときのバージョン番号と書き込むときのバージョン番号が等しいことを確認する方法で、RDBMSの場合は、次のようなSQLを実行することで実現しま
今流行のkey-value storageの利点と欠点など。小さいデータをたくさん扱うタイプで、単純なkey-value型のデータモデルを持つ分散KVSについて。 Webアプリをとりまく最近のKVS事情、雑感を読んで、ちゃんと整理して把握しておかないといけないな、と思ったので少し整理。 それは違うぞーという事があったらコメントくださいm(_ _)m ※2009-11-17 追記:現在、KVSという用語の意味は定義されておらず、使う人によって揺れています。ここで言うところの分散KVSは、Dynamo や kumofs や ROMA など を想定しています。 分散KVSの利点 スケールアウトできる 簡単にサーバーを追加して性能を上げられる 単体の性能が高い スキーマレス 最初は少ない台数で安く、後からサーバーを足してスケールアウト!という運用ができる。アプリケーションに影響せずに、ストレージ側
November 15, 200912:12 カテゴリプログラミングネタ key-value store に特化したWAFとか、key-value store のみでランキングを効率よく管理する方法とか 同僚が新しい WAF(Webアプリケーションフレームワーク) を作っていて、その中で使うデータクラスの O/Rマッパーを何にするかで迷っているようだったので、こう叫んでおいた (心の中で)。 O/Rマッパーなど、SQLもまともに扱えない軟弱者があみだした不格好な補助輪にすぎない ! Webアプリケーションが重い理由の8割はO/Rマッパーのせいだ ! 漢なら SQL 直書きが当たり前 ! そうでなければ時代の流れに沿って key-value store 専用に設計すべき ! まあそんなこと言っても、現実には作業効率とか考えたら使うけどね、O/Rマッパー。 そんなことより、key-value
濃縮還元オレンジニュース MySpace、MapReduceフレームワーク「MySpace Qizmt」をオープンソースで公開 2009年9月16日、MySpaceは.NETプラットフォーム上で動作する分散処理フレームワーク「MySpace Qizmt」をGoogle Code上に公開しました。 MySpace Qizmtの分散処理部分はGoogleのMapReduceに基づいて設計されています。オープンソースのMapReduce実装としてはJavaで書かれた「Hadoop」が有名ですが、MySpace QizmtはC#で書かれており、WIndowsサーバ上で稼働することが特徴的です。MySpace自体が数千台のWindows 2003サーバ上で動いていることから、このようなフレームワークが.NETで作られていることもうなずけます。ジョブを記述するにあたってデバッガが付いた専用のエディタも
楽天、分散キー・バリュー型データストア「ROMA」のソースコードを公開 | 日経 xTECH(クロステック) ってかITpro速い(笑) 公開してすぐに記事になってる.きっと会場で記事書いたのでしょう. 西澤さんがまつもとゆきひろさんにエンターキーを押してもらって記念すべき初公開,としようとした時のトラブルについては触れられてませんw ROMAのページはこちら. Google Code Archive - Long-term storage for Google Code Project Hosting. さて,FreeBSDで実験してみます. ドキュメントの通りruby-1.9とruby-1.9用のgem,それからgem経由でeventmachineをインストールした後,いよいよROMAをインストールします. 最初から最後までトラブル無しでした.素晴らしい. # wget http://
Update: If you are interested in Python 3 you might also like my book Porting to Python 3 – An in-depth guide. In the python-incompatibility project I’ve added loads of code that works under 2.5 but does not work under Python 3.0. I’ve also added code on how to re-write the code so that it will run under both 2.6 and 3.0. Quite a lot of time, the rewritten code will run not only under 2.6 and 3.0,
2009年10月04日20:18 KVS Ruby 噂のTokyoCabinet/TokyoTyrantを使ってみた key-value ストアに興味がある ささたつ です。key-value ストアとして有名なものといえば memcached かと思いますが、他にも TokyoCabinet や TokyoTyrant というものも注目されています(不思議な名前ですね!)。key-value ストアでありながら高速、かつ、データをメモリで無くファイルに保存しているため、サーバが落ちてもデータが消えないとか。 実際に mixi の最終ログイン時間の保持などに使われているそうです。 memcached をセッションの保持などに使っている場合、memcached のサーバがダウンしてしまったら、データは全て消えてしまいます。その結果 RDBMS にアクセスが集中し、パフォーマンスが大幅に悪化し
今まで簡単に触れてきたmemcachedのCAS(Compare and Swap)機能ですが、今回はその具体的な使用例や、プロトコルの違いによる特徴を紹介します。また、mixiでの今後のmemcached運用動向を紹介します。 CASの概要 memcachedには特定のデータに対してアトミックな更新を試みる機能が存在します。この機能の仕組みは単純で、クライアントは特定のコマンド(テキストプロトコルの場合は“gets”)を実行することにより、サーバから特定のレコードとその状態を表すユニークな識別子を与えられます。 この識別子はレコードが何らかの手段によって更新されると変更され、クライアントが保持している識別子とは別の値になります。したがって、クライアントは与えられた識別子を更新命令と一緒に送信することで、サーバはレコードをアトミックに更新できるかを確認することができます。もし識別子が
UPDATE: My slides and a protected instance (will open up for play soon) or swinger, available here I’ll be honest. When I created Sammy.js, It was more of an academic exercise then a means to an end. I had ideas for how it could be useful, and had some immediate uses for it, but the initial thought was ‘recreating Sinatra’s API in JavaScript’. Little did I know – with a little introduction and the
RDBMSは細かなデータ構造を管理したい時には便利だが、メモやWebページのようなコンテンツを管理する際には大袈裟になる場合がある。そうした時にはキーバリュー型のシンプルなデータベースが便利だ。キーバリュー型というとmemcachedのような補助的なシステムを思い浮かべるが、そこだけに収まらない使い方が出来る。 キーバリューデータベースを使ったCMS その実例としてTokyo Promenadeを紹介しよう。Tokyo Cabinetの作者で知られるmikio氏が開発したCMSだ。 今回紹介するオープンソース・ソフトウェアはTokyo Promenade、Wikiのようなページ管理ができるCMSだ。 Tokyo PromenadeはWikiのように誰でもコンテンツが編集できるCMSだ。記法としてはLaTeXでよく使われる記法を採用しており、見栄えもそれに近いものになっている。また音声ブラウ
GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠
riak - a decentralized key value store - basho technologiesRiak combines a decentralized key-value store, a flexible map/reduce engine, and a friendly HTTP/JSON query interface to provide a database ideally suited for Web applications. A document-oriented Web database Schema-free document databases are in many ways a more natural fit for Web applications than the traditional RDBMS. With interface
July 24, 200915:39 カテゴリmysqlプログラミング マイ・ブラックホール (2) - いかにして私はブラックホールに辿り着いたか ブログのアクセス解析用に使うストレージを選定するのに先だって,こんな条件下での速度比較をしてみた。 主な処理は,ブログ毎,あるいはページ毎のアクセス数のカウントアップ。つまり,ブログid & 記事id をキーとして,memcached なら set/incr, sqlなら insert 〜 on duplicate key update 〜 文の発行をする。200個のプロセスが,それぞれ平行して「あるキーのカウントアップ(書き込み) を行い,続いて別のキーの読み出しを行う」という処理を500回繰り返す。(合計10万回のカウントアップと10万回の読み出しに相当。)ストレージは,ベンチマークを行うスクリプトとは別のサーバ上にあり,必ずネットワーク
人気の記事 11ビットコインが1000万円を突破--史上初 2024年03月05日 2計算アプリ「Photomath」、グーグルのアプリとして公式に公開 2024年03月04日 3マイナカードのiPhone搭載「もうちょっとお待ちを」--河野大臣が笑顔で言及 2024年03月05日 4楽天の株価に連動して「楽天ポイント」が増減する新サービス 2024年03月05日 5「ストリートビュー」が捉えたクレイジーすぎる光景38連発 2018年08月05日 6アップル、M3チップ搭載MacBook Airを発表--2台の外部ディスプレイに対応 2024年03月05日 7LINEヤフー、総務省から行政指導--度重なる情報漏えい受け、経営体制見直しも 2024年03月05日 8「Pixel Watch 2」の一部機能、初代モデルでも利用可能に 2024年03月05日 9ビットコインが一時2万ドル割れ--
日本Ruby会議2009初日のライトニングトークスにて発表した、「ローカル環境向けKey-Valueストアの紹介」の資料です。 概要 Rubyによる誰でも使えて”みんなに良し”なローカル環境用Key-Value Storeを作成しました。 永続化機構を工夫した結果、以下の機能を実現しています。 1.Key-Value Storeとしての処理を極めて簡潔なコード記述で実装している事 2.オンメモリで動作する事 3.シームレスにエンドユーザと連携が出来る事 このKey-Value Storeの成り立ちとそこから得られた気付きを、このLTで語りたいと思います。 当日のIRCで流れた、世界からの喜びの声 やるとおもったwwwwww これはひどい *** hahahaha 実装もひどいwwwww 本当に実装も酷いwww これはあかんw ビバExcel! excel'ent スライド Key Valu
少し前までデータベースと言えばRDBMSのことだったが、最近では徐々に変わり始めている。顕著なのがスキーマレスのデータベースの存在だ。さらにCouchDBというクライアントサイドでも使える分散型データベースも登場している。 シンプルなWiki スキーマレスというのは扱い勝手が悪いように感じられることもあるが、その利用ケースによってはぴたりと当てはまってくる。StrokeDBもその一つだ。 今回紹介するオープンソース・ソフトウェアはStrokeDB、Ruby製の分散型ドキュメントデータベースだ。 StrokeDBはCouchDBと似ているが、幾つかの特徴を備えている。まず分散型であることにおいてスケーリングが容易になる。ドキュメントのフォーマットはJSONを利用している。そのこともあってクライアントサイドの言語(JavaScriptやActionScript)との親和性も高い。 サンプルのス
Amazon Dynamoはシンプルなキー/バリューデータベースシステムだが、大量のデータを冗長化やレスポンスを維持しながらサービスを提供する点が特徴だ。外部向けのサービスとしては提供されていないが、SimpleDBがAmazon Dynamoを外部向けにしたものと言われている。 起動した所 キー/バリュー型のデータベースには注目が集まっているが、Amazon DynamoのクローンとしてDynomiteを紹介しよう。 今回紹介するオープンソース・ソフトウェアはDynomite、Erlangで作られたAmazon Dynamoクローンだ。 DynomiteはErlang製のキーバリュー型データベースだ。Erlangと言えば分散化、リアルタイム性、並列化などが特徴なので、大規模なデータベースを構築する上ではとても期待ができそうだ。 クラスタリングにも対応している。既に稼働しているクラスタに新
KVSでORマッパーを使うという事 ケイレキ.jpの中でケイレキ.jpに招待して欲しい人を呼びかけても絶賛スルーされてるYappoです。さて今回は今巷で大人気のKey Value StorageでORマッパーを使う事についてお話するのじゃ。 一般的にORマッパーとはオブジェクトとリレーショナルデータベースをマッピングする為の仕組みの呼び名だと言うのは知られている所です。はい、そうするとKVSってのはハッシュデータベースであるわけなのでおかしいですね。今回の話はData::Model::Driver::Memcachedを使う事を前提としてるので問題が無いのです。なぜなら「data/object mapper」とか書いてあるから。 いわゆるPerlなORマッパーってのは行データをHASHで管理します。それはRDBが一般的に表形式でデータを管理しているからなんだと思います。なんでKVSをオブジ
maihaさんの日記を見て、MongoDBのことを思い出したので関連しそうな記事の紹介だけでも。 ヽ( ・∀・)ノくまくまー(2009-07-02) 以下の記事で、3種のkey-valueストレージの性能比較を行っている。 Evaluating key-value and document stores for short read data « Blue Collar Bioinformatics 280万件のレコードを読み込ませ、その初期読み込み時間、レコードの読み込み時間、ファイルサイズの比較を行っている。 Tokyo Tyrant : 初期の読み込み時間が遅い CouchDB: レコード読み込み時間が遅い MongoDB: ファイルサイズが大きくなる となったそうな。 ただ、Pythonのライブラリを経由した結果であること、コメントで様々なツッコミが入っているなど、どの程度信頼性の
@ITに掲載された「もう1つの、DBのかたち、分散Key-Valueストアとは」では、「分散KVSとは実は『クラウドによる全体最適のメリットを享受するための分散化のプラクティス』である」と結論づけた上で、エヴァンゲリオンを引用して以下のようにたとえています。 「『出来損ないの群体として行き詰まったITシステムを、完全な単体インフラへ人工進化させる』(クラウドによるIT補完計画)」 「群体だったITシステムが単体であるクラウドへと融合し、究極の全体最適を実現するうえで、分散化に対応できないRDBは足かせとなります。分散KVSというグーグルが見つけた“指輪”の正体は、この「クラウドへの進化」そのものといえるでしょう」 あらゆるITシステムがクラウドに融合してしまったら、プログラマーにとっての自由度はすごく下がりそうですね。
require 'rubygems' ###################################################################### ### ActiveRecord (PostgreSQL) require 'active_record' ActiveRecord::Base.establish_connection(:adapter=>"postgresql", :database=>"jpop", :user=>"maiha") module PG class Song < ActiveRecord::Base # Indexes: "index_songs_singer" btree (singer) end end # p PG::Song.count # => 64482 ##############################
もう1つの、DBのかたち、分散Key-Valueストアとは:分散Key-Valueストアの本命「Bigtable」(1)(1/3 ページ) RDBとは別の、クラウド時代のデータベースとして注目を浴びている「分散Key-Valueストア」。その本命ともいえる、Googleの数々のサービスの基盤技術「Bigtable」について徹底解説 クラウド時代のデータベース「分散Key-Valueストア」 グーグルがインターネットの世界をここまで席けんできた最大の理由は何でしょうか。実は、それは同社の優れた検索技術ではありません。グーグルが成し遂げた最も大きなブレークスルーの1つは、同社が生み出した巨大な分散データストア、「Bigtable」にあります。 Bigtableは、Google検索をはじめ、YouTubeやGoogle Map、Google Earth、Google Analytics、Goog
相対性理論のボーカルが頭から離れないmikioです。熱いわっふるの声に応えて今回はTokyo Cabinetのテーブルデータベースにおける検索機能の実装について語ってみたいと思います。とても長いのですが、最後まで読んだあかつきには、自分でも全文検索エンジンを作れると思っていただければ嬉しいです。 デモ モチベーションをあげていただくために、100行のソースコードで検索UIのデモを作ってみました。Java 6の日本語文書を対象としているので、「stringbuffer」とか「コンパイル」とか「倍精度浮動小数」とかそれっぽい用語で検索してみてください。 インデックスがちゃんとできていれば、たった100行で某検索エンジン風味の検索機能をあなたのデータを対象にして動かすことができます。ソースコードはこちら(テンプレートはこちら)です。 でも、今回はUIの話ではないのです。ものすごく地味に、全文検索
Kaiにtelnetで接続してstatsコマンドを送っても値を確認できますが、ここではPHPのmemcached実装を使ってみましょう。リスト1のような簡単なPHPスクリプトを実行すると以下のような結果が得られます。 リスト1 kai_stats.php <?php $host = "localhost"; $port = 14013; $memcache = new Memcache; $memcache->connect($host, $port) or die ("Could not connect"); $status = $memcache->getStats(); print_r($status); ?> リスト1の実行結果 $ php kai_stats.php Array ( [uptime] => 1077608 [time] => 1246117054 [version
Ruby Weekly is a weekly newsletter covering the latest Ruby and Rails news. MongoDB a is a high-performance, open source, schema-free, document-oriented database written in C++. It's sort of a cross between scalable key/value stores and traditional functionality-rich relational databases. MongoDB might be useful as a fast, simple, non-transactional data store for a web application, or as a caching
サーバー一覧を実行中でも変更できるmemcachedのプロキシサーバーを作ってみました。 相当にコンセプトだけです…とりあえず get (とget_multi) と set と delete はプロキシできます。 クライアントを待ち受けるコードは memcachedプロトコルのストリームパーサ や mp::wavy あたりを使っています。サーバーに接続するコードは libmemcached です。 コードはgithubにあります:http://github.com/frsyuki/memxy/tree 使い方 # githubからclone $ git clone git://github.com/frsyuki/memxy.git $ cd memxy # コンパイル $ ./bootstrap $ ./configure && make && sudo make install # l
mod_libmemcached_cacheでApacheのcacheをmemcachedに保存する Apacheのmod_cacheのキャッシュ保存先にmemcachedが使えればいいのにと長年思ってきましたが、mod_libmemcached_cacheがそれを実現してくれました。 しかも、libmemcachedを利用しているので、性能も高く、またConsitent Hashingも使えますし、バイナリプロトコルもばっちりです。 図にするとこんな感じ。revserse proxyのcacheがmemcachedになるので、cache効率が上がり、またApplicationサーバからも同じmemcachedが参照できるのでcacheを変更したりできるかもしれません。 導入 mod_libmemcached_cacheはgithubから入手できます http://github.com/a
梅雨。部屋干しした洗濯物による異臭騒ぎに苦しむmikioです。今回は、Tokyo Cabinetのテーブルデータベースで超お手軽に全文検索をする方法について説明します。 使い方 テーブルデータベースについてまずおさらいしておきましょう。PerlやRubyのハッシュのようにコラム名とその値を関連づけた構造を、主キーを識別子として保存するデータベースです。例えばRubyからデータを保存するに以下のように行います。データベースであることをほとんど意識させないというのが素敵ポイントです。APIはCでもPerlでもRubyでもほとんど同じなので、言語にかかわらず同じようにレコードを操作できます。 require 'tokyocabinet' include TokyoCabinet # データベースを開く tdb = TDB::new tdb.open("casket", TDB::OWRITER
「日本でゼロからクラウドを生み出すムーブメントを作り出したい」(実行委員長 門林雄基氏)---“クラウドを支える技術”の開発力を競う「クラウドコンピューティングコンペティション」が2009年6月11日、Interop 2009の会場で開催された(写真1)。企業や大学・大学院の研究者、そして高校生を含む若手エンジニアが、新しいアイディアと技術力で作り上げたクラウドコンピューティングの基盤ソフトウエアを披露した。 クラウドコンピューティングコンペティションは、奈良先端科学技術大学院大学の門林雄基准教授らの呼びかけで実現したイベント。若手のエンジニアがP2P(ピア・ツー・ピア)技術や分散データ処理技術といったクラウドコンピューティングの基盤技術を開発し、その成果を競う。検証環境として、情報通信研究機構(NICT)が運用するクラスタ環境「StarBED」のコンピュータを最大1000台まで使用可能で
前回、Kai のインストールと基本的な使い方を説明しましたので、今回は、Kai最大の特徴であるクラスタついて詳しく説明します。 なお、前回同様、本連載が対象とするKaiのバージョンは0.4、ErlangのバージョンはR13Bです。 データの保存・取得とリクエストの転送 memcachedでは、クライアントがデータの場所を決定します。このため、クライアントは、クラスタを構成するすべてのmemcachedノードを把握していなければなりませんでした。 一方Kaiでは、ノードがデータの場所を決定し、クライアントからのリクエストを適切なノードに転送します。クライアントは、すべてのノードを把握する必要がありませんし、L4ロードバランサで機械的に負荷分散することもできます。また、クラスタへノードが追加されても、クライアントのノード一覧を修正する必要がありません。 では、前回、構築した3ノード構成のクラス
Saturday, 13 June 2009 NOSQL debrief The relatively young but rapidly growing "nosql" community met last Thursday in San Francisco. The idea was to give attendees a solid introduction to how distributed, non relational databases work as well as an overview of the various projects out there. If I may say so myself we succeeded in doing both. Thanks to all the presenters for very interesting talks a
id:frsyuki さん & id:hirose31 さん、クラウドコン優勝おめでとうございます! (参考: Interop Tokyo 2009のクラウドコンでグランプリいただきました!! - (ひ)メモ) Pacific はリゾルバがボトルネックになるが、Consistent Hashing + double-hash-space で分散できるのではないか。データの再配置を悲観的ロックではなく楽観的ロックでやるあたりが問題になりそうか…そこはまだ考えてない。 ※2009-06-14追記:データの再分配が起こらなければ問題ないので、最初は小さく始めて動的に増やす(動的な運用)を考えなければ、台数固定で分割してやってもリゾルバは分散できそう。 分散ストレージの収束する方向 - sdyuki-devel リゾルバ自体をある程度増やすのは簡単だったりします。リーダやライターは、リゾルバクラス
サーバーサイドの分散ストレージについて。広域P2Pとかデータセンター間で同期するとかCDN云々は知らない。 kumofsのアプリケーション-Gateway間のインタフェースは Get(key) だが、Gateway-Server間のインタフェースは実は GetByHash(key, partitioning-id)(とGetByHashIfModified(key, partitioning-id, time))だったりする。(実際の名前は違うけど意味は同じ) 現状ではpartition-idはkeyにハッシュ関数を掛けて自動生成するが、実際には任意の値を指定できる。 つまり関連するkeyには同じpartitioning-idを指定して同じノードに保存されるようにして、partitioning-idが同じkey同士ならトランザクションできるようにすることも、案外に容易にできる。 Consi
InteropTokyo 2009 クラウドコンピューティングコンペティション(通称クラウドコン)は、我等がえとらぼチームが優勝しました! 実行委員・StarBEDプロジェクト・IBMの皆様を始め関係者の皆様、ありがとうございました。 プレゼンテーションムービーとポスターとパンフレット*1を公開しました。 プレゼンムービー(マウスクリック/矢印キーで進む) PDF版 ポスター パンフレット *2 …どれも相当に気合いが入っているので、ぜひご覧ください^^ Ustream.tvの録画もあります(えとらぼチームはちょっと細切れですが) 途中で行ったデモは、StarBEDの45台の物理サーバーを使ってkumofsを動かして、ランダムで選んだノードを自動的にkill/再起動するスクリプトを走らせたものです。サーバーが落ちてもシステムは全然止まらないし、どのサーバーにも均等に負荷が分散されます。 時
タイトルの通り Key で sort 済みの Key-Value Storage を作りはじめました。 良くある DHT だと Key の Hash を取る事で分散させるので順序情報を失ってしまうのですが、それを Skip Graph という仕組みで順序情報を保持したまま分散させることが可能になります。 sort 済みだとうれしいのは KVS に対して Range Query が可能になること。 例えば、empno-999 以上の value リストを 最新10件、KVS に要求するみたいなことが出来るようになります。 従来の KVS では上記のような Range Query は不可能だったので、そこは RDBMS に任せていたと思うんですが。(RDBMS で Range Query 後、Key のリストを KVS に投げるなど) この辺りの RDBMS の負荷と分散しづらさを KVS 側
講演は ustream で見て、懇親会だけ参加してきた。かな〜り勉強になった。GAE Data Store 関連でよくわからないことがあったので、2点質問をした。 Q. entity を更新してから index を更新していると言うが、それだと unique secondary index はサポートできないと思うのだが、どうか。 A. unique secondary index については、別途テーブルを作って管理してください。 感想. 複数の、ノードを跨がる unique secondary index があると 2-phase commit 的な話になるので、その割り切りはアリなのかなー。 Q. range query をサポートしていないというが、sharded, sorted array なのに何故? A. 上下の両界をサポートしていないだけで、片方を指定した ascendin
また、Erlangの公式サイトではWindows向けにインストーラ付きのバイナリも提供されています。 ここでは、公式サイトからソースコードをダウンロードし、CentOS 5.3上でコンパイルする方法を説明します。 なお、執筆時のErlangの最新バージョンはR13Bであるため、本連載ではR13Bを用いて説明します。しかし、Kaiの推奨バージョンはR12B以上ですので、ご利用のプラットフォームが提供するErlangパッケージのバージョンがR12B以上であれば、そちらをご利用されても差し支えありません。 もし、パッケージからErlang をインストールするのであれば、インストールの説明をスキップし、Erlang VMの起動まで進んでください。 Erlangのソースコードは、Erlangの公式サイトから取得できます。 ダウンロードページからR13Bのソースコード(53.1 MByte)をダウンロ
_ 分散Key/Valueストア,Kaiを使ってみよう! [kai] gihyo.jp に,Kai の記事を書かせていただきました. 特集:分散Key/Valueストア,Kaiを使ってみよう!|gihyo.jp … 技術評論社 これまで,Kai には利用者のための情報がほとんどありませんでした.ML で問い合わせるか,ソースを読まないと,使いこなすのは難しかったと思 います.また,運用実績やノウハウもありませんでした. 今回の連載記事では,これらをまとめて紹介する予定です.第一回は Kai のコンセプトについて書かせていただきましたが,第二回以降で具体的な 利用方法や運用ノウハウについて紹介していきます.第二回以降の連載は, Kai の開発者でもある id:cooldaemon さんと,gooホームでKai を運用さ れている橋本さんが担当します.ご期待ください. なお,Kai の情報はこ
今回から数回にわたり、Kaiという分散Key/Valueストアについて解説させていただきます。 まず、第1回では井上がKaiのコンセプトをご紹介します。次回以降は、Kai開発者の一人である幾田さんがKaiの利用方法について解説します。最終回では、gooホームでKaiを運用している橋本さんから、Kaiの運用方法について紹介していただく予定です。なお、本連載が対象とするKaiのバージョンは0.4です。 Kaiとは Kaiとは、分散型のKey/Valueストアです。Amazon.comが2007年に発表したDynamoというシステムに触発されて、そのオープンソース版として開発されています。Kaiをバックエンドに据えてWebサイトを構築することで、高いスケーラビリティやアベイラビリティを実現できます。2009年5月には、gooホームのバックエンドに導入され、運用実績も高まってきました。 Kaiは多
今回から数回にわたり、Kaiという分散Key/Valueストアについて解説させていただきます。 まず、第1回では井上がKaiのコンセプトをご紹介します。次回以降は、Kai開発者の一人である幾田さんがKaiの利用方法について解説します。最終回では、gooホームでKaiを運用している橋本さんから、Kaiの運用方法について紹介していただく予定です。なお、本連載が対象とするKaiのバージョンは0.4です。 Kaiとは Kaiとは、分散型のKey/Valueストアです。Amazon.comが2007年に発表したDynamoというシステムに触発されて、そのオープンソース版として開発されています。Kaiをバックエンドに据えてWebサイトを構築することで、高いスケーラビリティやアベイラビリティを実現できます。2009年5月には、gooホームのバックエンドに導入され、運用実績も高まってきました。 Kaiは多
Apache CouchDBに関するメモ書き。 #理解が不完全なので、後で正しく書く。 【元ネタ】 Apache CouchDB: The CouchDB Project Web 時代の非リレーショナルデータベース: 第 1 回 Apache CouchDB の概要とインストール Web 時代の非リレーショナルデータベース: 第 2 回 Apache CouchDB と Ruby on Rails を使って wiki アプリケーションを作成する Web 時代の非リレーショナルデータベース: 第 3 回 Apache CouchDB で MapReduce フレームワークに基づく問いあわせを行う MOONGIFT: ? Web2.0時代のニュータイプDB「CouchDb」:オープンソースを毎日紹介 CouchDBはこのように説明されている。 CouchDB を探る CouchDB はオープン
最近のWebシステム開発ではキャッシュを使うケースが増えつつある。各種Webアプリケーション向けフレームワークでもキャッシュをデフォルトでサポートしているものも多く、その筆頭に挙げられるのがmemcachedだ。 top風にmemcachedのステータスが確認できる memcachedは軽量で、あると便利だと思える機能が殆ど実装されていない。ステータスを監視するような機能もないが、そこは独自に開発されたmemcache-topを使えば解決する。 今回紹介するオープンソース・ソフトウェアはmemcache-top、memcachedのステータスを表示するコマンドラインスクリプトだ。 memcache-topはPerlで作られたスクリプトで、既に立ち上がっているmemcachedサーバを一覧し、そのステータスを表示してくれる。デフォルトで3秒ごとにリフレッシュされるようになっており、topコマ
IIJのMapReduce実装である「ddd」(Distributed Database Daemon)の話を聞いてきました。立ち話なのでごくさわりの部分だけでしたが、以下にメモしておきます。素人なので、理解が間違っていたらごめんなさい。 インターネットバックボーンのルーターの莫大なログを集計してトラフィックを解析するために開発 (emasaka注:元から散らばっているログを一箇所に集めずに集計できるので、MapReduce系に向いた用途か) GoogleのMapReduce論文を参考にフルスクラッチで実装 WinnyっぽいP2P技術も採用 Key-Value Storageによる分散ハッシュテーブル Amazon Dynamo? ノードを増やせばそれだけスケールするスケーラビリティ ノードが落ちてもほかのノードにもデータがある可用性 マスターがなくすべてのノードが完全に対等なP2P構成
Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at
Twitterに似たWebサービスを提供するPlurk.com。時間軸を持つことで、よりインタラクティブな印象与えるサービスだ。世界的に展開しているのでアクセス数も相当多い。そのような中で活躍するのがキャッシュサーバだ。 実践で使われている信頼性高いキー/バリューデータベース Plurk.comでは3つのデータベースが使われている。一つはMySQLもう一つはmemcached。そして最後にLightCloudだ。 今回紹介するオープンソース・ソフトウェアはLightCloud、Tokyo Cabinetをベースにしたキー/バリューデータベースだ。 LightCloudはmixiなどでもお馴染みのTokyo Cabinetを利用して構築されている。ライブラリはPythonのみではあるが、他の言語へのリプレースもそれほど難しくなさそうとのことだ。実際にPlurk.comで使われているという点が
Facebookで写真配信のために使われているストレージシステム「Haystack」に関する情報が公開されました。(Needle in a haystack: efficient storage of billions of photos) Facebookは最初はNFSを使っていたようです。しかし写真の1枚1枚をファイルとして保存していたため、ディレクトリエントリなどのinodeメタデータの総量がキャッシュに収まらないサイズになってしまい、一つの写真を保存したり取り出したりするのにHDDのシークが複数回発生していたのがボトルネックになっていたそうです。 (もしかしたら「NetAppは高すぎた」のがもっと重要だったかも知れません:Facebook、独自の写真配信ネットワーク、Haystackを完成―収益性の改善に寄与か?) シークの問題を軽減するために、profile用などの小さな写真はキ
WEB+DB PRESSの特集がkey-valueストア入門だったり、日経コンピュータでも 「キー・バリュー型データストア開発者が大集合した夜」という記事を掲載していたり 最近何かと「Key Valueストア」という用語を目にする機会が多いのではなかろうか。 クラウドを技術的側面で語る際に、仮想化などと並んで欠かせない要素となっている ような印象を受けるかもしれないが、実際のところどうなのだろうか? このKey Valueストアの盛り上がりを後押ししているのがクラウドコンピューティング ブームであることは間違いない。ただ、Key Valueストア自体はとりたてて新しい技術 ではなく、Oracleが買収したことで一時期話題になったBerkrey DBなど、古くから 存在していたものもある。ではなぜクラウドだからKey Valueストアという流れが できるのだろうか。3つの流れをみていきたい。
ノートPCの冷却ファンがうるさいのを対処しようとしてWebで調べたら、そのファンの設計者が「静音性へのこだわり」を語ったページにたどり着いて複雑な心境のmikioです。今回は、Tokyo Cabinet(TC)の最新バージョンで実装された動的デフラグ機能について長々と説明します。 断片化とデフラグ 任意のサイズのデータを管理する記憶装置においては、利用可能領域の断片化(fragmentation)の問題が常につきまといます。ファイルシステム上で任意のサイズのファイルを管理する際にも、データベースファイル内で任意のサイズのレコードを管理する際にも、C言語のmalloc/free関数群でメモリの管理をする際にも、様々なレイヤで断片化が起きうるのです。なぜなら、データを削除もしくは移動した際の空き領域を再利用するにあたって、その領域と同じサイズのデータが常に入ってくるとは限らないからです。特にデ
Webアプリケーションと言えばデータベースが大抵使われるが、本当にRDBMSである必要があるのだろうか。そもそも構造的に管理する必要がなかったり、非効率的になってしまうこともある。そのような場合に考えたいのがキー/バリュー型のDB導入だ。 ベンチマーク データを細かく管理するよりもオブジェクトごとキー/バリューデータベースに放り込んでしまうという方法がとれる。ここ数年で幾つかのソフトウェアが登場したが、それらを統合して利用できるようにするのがMonetaだ。 今回紹介するオープンソース・ソフトウェアはMoneta、各種キー/バリュー型DBの共通インタフェースだ。 Monetaが対応しているのはファイル、Memcached、メモリ、DataMapper、Amazon S3、Berkeley DB、Redis、SDBM、Tokyo CabinetそしてCouchDBとなっている。各DBごとにラ
OpenSocialとかC++0xとか世の中の流れが早すぎて、いろいろと勉強しなきゃなと焦りつつも、ついついピクミン2にはまってしまうmikioです。今回はTokyo Tyrant(TT)を使ってユーザ独自のストレージシステムを簡単に構築する方法について説明します。 プラグインとは オブジェクト指向プログラミングに慣れた人にとっては、インターフェイスと実装を分離することによってプログラムの拡張性や保守性を向上させる技法(データ抽象)は常識ですよね。その考えをさらに進めると、インターフェイスのみをプログラムに記述しておいて、具体的な実装は実行時に割り当てるという、いわゆるプラグイン(plug-in)という技法に至ります。プラグインでカスタマイズできる能力をプラガブル(pluggable)などと言ったりもします。 例えばTokyo Cabinet(TC)では、レコードの挿入、削除、参照といった
The abstract for the talk given by Bob Ippolito, co-founder and CTO of Mochi Media, Inc: Building large systems on top of a traditional single-master RDBMS data storage layer is no longer good enough. This talk explores the landscape of new technologies available today to augment your data layer to improve performance and reliability. Is your application a good fit for caches, bloom filters, bitma
ConsistentHashing - コンシステント・ハッシュ法 とあるチャットで聞かれて図まで書いて解説したのでもったいないからエントリー化。ちなみにチャットが1時間弱だったのでこういうタイトルにした。 で、Bが消えるとBの責任範囲が全部Dに押し付けられてDがかわいそうでしょ。 Dの仕事が増えるでしょ。Cとか暇そうじゃん!サーバを複数用意しているメリットが薄れてる。みんなが同じくらい働くのが望ましい。 で、Bが1個の点で表現されているから「Bの手前」もDの1個だけで、そのせいで全部Dが引き受けるはめになった。つまり、仕事が細かく分割されてなくて1個の塊だから引き継ぐ人も1人だけで引き継いだ人涙目。あらかじめ仕事を100分割しとけばみんなで分担して肩代わりできて幸せだよね。 だからサーバが5個だけど点は5個じゃなくて500個打とう。それが仮想ノード。 実装はどうするの?という質問に対して
In a meantime elliptics network got a little bit harden node crash management – all transactions which were not sent prior node crash will be resent to another nodes according to the changed routing table. This was only slightly tested though, since real-life examples are a bit hard to catch. I will write a test script, which will write to the node which will forward all requests to another one, a
サボっていた早朝ジョギング@駒沢公園を再開して2週間たち、やっと抜かれる数より抜く数の方が増えてきたmikioです。今回は、PerlやRubyのハッシュの代用としてTokyo Cabinetを使うことでメモリ使用量を激減させられることを説明します。 抽象データベースAPI Tokyo Cabinetには抽象データベースという機構があり、先日、そのPerlとRubyのバインディングをリリースしました。それを使うと、各種言語のハッシュとほぼ同じような共通したインターフェイスで、以下のデータ構造を利用することができます。 オンメモリハッシュ:各種言語に標準のハッシュと同じく、メモリ上でkey/valueの関係を表現する。 オンメモリツリー:メモリ上の二分探索木としてkey/valueの関係を表現する。 ファイルハッシュ:いわゆるDBMとして、ファイル上でkey/valueの関係を表現する。 ファ
[ITproカンファレンス:Amazonクラウド]クラウド時代のDB技術はこうして作られた--- NTT未来ねっと研の井上氏 2009年4月10日に開催されたITproテクノロジ・カンファレンス「徹底理解『Amazonクラウドサービス』」で講演のトリを飾ったのは,NTT未来ねっと研究所 研究主任の井上武氏(写真)。現在クラウドサービスに利用されているデータベース技術は,伝統的なリレーショナル・データベースからどのように進化したか,順序立てて説明した。 まず井上氏は,従来のリレーショナル・データベースの特徴に言及。データの不整合性を排除するリレーショナル(関係)モデルや,経過的な状態を排除するためのトランザクション処理は「データベースが主に金融機関の帳票データを保管していた時代のニーズに合致したものだった」(井上氏)と説明した。 「データベースが進化するきっかけは,管理対象データが変わったこ
先日、隅田川の屋形船で花見と洒落込んだのですが、その日はまだ一分咲きも行ってなくて悲しい思いをしたmikioです。今回はTokyo Tyrant(TT)に格納したデータを対象としてMapReduceのモデルに基づく計算をする方法について述べます。 MapReduceとは Googleが使っているという分散処理の計算モデルおよびその実装のことだそうですが、詳しいことはググってください。Googleによる出自の論文やApacheプロジェクトによるHadoopなどのオープンソース実装にあたるのもよいでしょう(私は両者とも詳しく見ていませんが)。 今回の趣旨は、CouchDBがMapReduceと称してJavaScriptで実現しているデータ集計方法をTTとTCとLuaでやってみようじゃないかということです。簡単に言えば、以下の処理を実装します。 ユーザから計算開始が指示されると、TTは、DB内の
最近 クラウド という単語が流行していますが、「大規模な計算資源を低コストで提供してくれるトコロがあるらしいので、自前で持っていた計算資源を委託しちゃえば運用する手間も知識も要らないし、そもそもサーバーを買う費用を省けちゃうから嬉しい」という発想に基づいているらしく、しかし技術的には 大規模な計算資源を低コストで構築する技術 がポイントでしょう。 大規模な計算資源をどうやって安く構築するか。 従来は、システムの能力を高めるためには、高性能・高機能(それゆえ高価な)マシンを導入するというスケールアップの手法が採られていたのだが、この手法では10倍に性能を上げるために、たとえば30倍のコストがかかるかもしれない。スケールアップと比べてスケールアウトでは、導入したコストにほぼ比例して、パフォーマンスの向上が見込める。 『UNIX magazine 2009年4月号』 p.31 *1 何百万円もす
Apache Software Foundationは3月31日、Apache CouchDB 0.9.0のリリースをアナウンスした。CouchDBは、ドキュメント指向(document-oriented)の非リレーショナル型の分散データベースで、JSON APIによるRESTfulなデータアクセスを提供する。 Apache Software Foundationは3月31日、Apache CouchDB 0.9.0のリリースをアナウンスした。CouchDBは、ドキュメント指向(document-oriented)の非リレーショナル型の分散データベースで、JSON APIによるRESTfulなデータアクセスを提供する。開発言語にはErlangが使われているが、クライアントはHTTPリクエストが利用できる任意の環境からアクセスできる。 Apacheの育成プロジェクト(Apache Incub
Posted on | 12 月 9, 2008 | なぜ最近、Tokyo Cabinet、Tokyo Tyrantと言い続けているのか?と言うと、memcacheの代替として使えないかなーと思っているからです。ここ最近、cakePHPもそうなんですが、セッションストレージとしてmemcacheを使うケースが多くなってきている気がしています。自分自身、仕事で作るアプリケーションの一部にはセッションストレージでは無いのですが、memcacheをストレージとして利用しているケースがいくつかあります。 それらの運用をしていく中で、気がついたのは「memcache 落ちたら消える さようなら」と言う事です。いくらレポリケーションしていたとしても、落ちたら消えます。きれいさっぱり。 仮にログインセッションをmemcacheにストレージしていた場合、「memcache 落ちたらログアウト さような
kumofs kumo fast storage 古橋 貞之 自己紹介 • 古橋 貞之(ふるはし さだゆき) • 筑波大学 情報学類3年 • id:viver • frsyuki@twitter 自己紹介 ディスクレスブートシステム ペアプログラミング 支援システム 多人数音声チャットシステム kumofs • 背景 • kumo fast storage概要 • 保証範囲 • 性能(目安) • ノード追加中の動作 • MessagePack-RPC 背景 • えとらぼ株式会社のプロジェクトで: • 小さいkey-valueを大量に保存 • 落ちないストレージ • キャッシュではなくて永続化したい • サーバーを足すと読み・書き性能が向上 • 導入・運用が楽 kumo fast storage • key-valueストレージ • Consistent Hashingで分散 • レプ
gooyaは2月17日、受取人の住所を知らなくてもTwitterでつながっていればプレゼントを宅配できるサービス「ギフトナウ」を開始した。 ギフトナウでプレゼントを贈れる相手は、住所/氏名を知っている知人やメールアドレスしか知らない知人、Twitterで相互にフォローしている人。プレゼントと一緒に写真、動画メッセージのQRコードを添付したメッセージカードも贈れる。 たとえばTwitterでフォローしあっている人にプレゼントを贈る場合は、ギフトナウにログインし、TwitterのID、パスワードを入力する。ギフトナウ配送センター宛にプレゼントを送ると、ギフトナウがTwitterのダイレクトメッセージで相手の住所を確認し、プレゼントを贈ってくれる。受取人の情報が差出人に伝わることはないという。
3.0はこれまでのリリースの中で唯一意図的に後方互換性が失われたバージョンだ。移行には従来よりも手間が必要になる。推奨されている移行手順は次のとおり。 従来のPythonソースコードをPython 2.6へ移植する。この段階ではほとんど手間はかからない Python 2.6で -3 オプションを指定してワーニングを出力させ、ワーニングがなくなるように編集を実施する Python 3.0の2to3ソースコードトランスレータ(2to3-3.0)を使って自動変換を実施する 移行用のブランチとして用意されている2.6系に移行してから、2.6でワーニングがでないように調整し、最後にPython 3.0で提供されているトランスレートスクリプト2to3-3.0(1)を使って変換だ。2to3-3.0(1)は指定されたPythonソースコードを3.0対応に変換するための差分を出力してくれるので、これを参考に
Python3には、2系で作られたコードを3用に変換する案をパッチを生成する2to3というコマンドラインツールが付属してます(本体はlib2to3という標準モジュール群)。たとえば、エンコード引数つきのunicode関数でも、そのままエンコード引数が存在しないstr関数に変えるなど、変換も完璧ではないけれど、たいていのコードは3で動くようになります。 しかし、変換してしまうとそのコードは2系では動かなくなります。ということで、2系でも3でも両方で動くようなコードを書くのはどうすればいいか、を考えてみました。 両方で動くようにするには、ない機能を使うわけには行かないので、どうしても共通部分のみでかかざろうえません。なのでお勧めはできないのですけど、一応両方で動かす前提で書くことを考えてみました。 print 関数風にカッコつき呼び出しにする(ただしprintのみの一行で) print(obj
2to3 — Automated Python 2 to 3 code translation¶ 2to3 is a Python program that reads Python 2.x source code and applies a series of fixers to transform it into valid Python 3.x code. The standard library contains a rich set of fixers that will handle almost all code. 2to3 supporting library lib2to3 is, however, a flexible and generic library, so it is possible to write your own fixers for 2to3. De
1967年から73年まで「週刊少年マガジン」(講談社)で連載され、数々の社会現象を巻き起こした人気コミック『あしたのジョー』が、ついに実写映画化されることになったという。 「制作はTBSで、主人公の矢吹丈を演じるのはNEWSの山下智久だそうです。映画は3月末にクランクイン予定で、5月くらいまでを撮影期間としているようですね。主演の山下は連続ドラマの収録が終わり次第、本格的なボクシング練習に打ち込むそうですよ」(映画関係者) 現在、山下はドラマ『コード・ブルー ドクターヘリ緊急救命- 2nd season』(フジテレビ系)に主演中。初回視聴率18.8%(ビデオリサーチ調べ、関東地区/以下同)で、平均視聴率も16.9%と、今クールの連ドラのなかでも屈指の視聴率を誇っている。 「山下の映画主演は、08年に公開された『クロサギ』だけですが、興行収入も17億円とヒットしました。ただ、この作品はドラマ
Twittexceler スクリーンショット これは何ですか? Excel VBA でかかれた Twitter クライアントです。 お仕事中とかにもこっそり使えるかもしれませんがどうでしょうね。 動作環境 Excel 2003 以降で動くんじゃないかと思いつつVista+Excel 2007でしか確認していません。 Excel 2003 でも動作するというウワサです。 ダウンロード http://www.misuzilla.org/~mayuki/dist/Twittexceler_r34972.zip (Excel 2003/xls形式) http://svn.coderepos.org/share/platform/excel/Twittexceler/Twittexceler.xlsm ライセンス MIT License 作った人 Committer:mayuki Changes 2
2006年にサービススタートしたTwitterですが、昨年から日本でもユーザーを増やしつつあり、使い始めたという方も多いのではないでしょうか。気軽につぶやけるゆるさや思わぬつながりにやみつきになってしまう気持ち、よくわかります。ただ、気軽につぶやいていると無意識の内に個人的な情報を公開してしまう可能性も。今回は実は危険かもしれないTwitterのもうひとつの顔をお伝えしたいと思います。 ■ 個人的な状況を検索 まずはTwitter公式検索を使って特定の状況の個人を検索できてしまうというエントリーを紹介します。 ▽twitter大ブームも個人情報の『ダダ漏らし』に要注意/岐阜のヒューマネット専務ブログ エントリーの中では 「彼氏と別れたばかりの女性」 を検索するキーワードが具体的に紹介されています。同様にして 「子供が今春で入学する」 「近く結婚式を挙げる」 といった特定の状況にある人を割り
This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.
"コマンドを disable する" というのは、そのコマンドに、 "(実行する前に)確認を要 するコマンドである" というしるしを付けることです。コマンドを disable する目的 は、(ユーザーが誤まって実行し)混乱や事故を起こすのを防ぐことです。 コマンドを disable する(直接的な)メカニズムは、そのコマンドの Lisp シンボルに non-nil のdisabledプロパティーを持たせます。このプロパティーは、(通常)ユーザー の `.emacs' ファイルで次のような Lisp 式で設定されます。 (put 'upcase-region 'disabled t) disabled プロパティーの値がストリングの場合、このストリングは、(その) コマンド を用いる際に表示されるメッセージに含まれます。 (put 'delete-region 'disabled "Text
20 High Quality Free Fonts for Designers | Freebies デザイン性の高いハイクオリティなフォントが色々集まったエントリのご紹介です。 汎用的なフォント、というよりは個性を出したい場合に使えそうなフォントが色々とあってここぞ、という時に使えるかもしれません。 手書き風だけど綺麗なフォント 漫画っぽいフォント。色合いもいいですね 鉛筆で塗りつぶしたようなアナログ感があるフォント 丸い形が印象的なフォント どれも個性があってつい使ってみたくなるデザインですね。 関連エントリ カーブが美しいフォント色々 すごく良い感じの英文フォントいろいろ これは素晴らしいアートが詰まった24の絵文字フォント色々
Dear lazyweb: I am in search of a mailing list for discussion on matters related to digital identity and privacy in the information age. Unfortunately, my (limited) searching has not unveiled results, mostly because many mailing lists have “privacy agreements” or somesuch, polluting the results with pointers to those. If you know such a list, or you don’t but you are interested in the topic, don’t
中学受験ネタからはじまった学歴エントリーはその後様々なブログで引用され、大いにその是非が議論された。 たった数日の間に合わせて600近くのコメントがついたのは、多くの日本人の心に受験勉強の思い出がいかに深く刻み込まれているかの証左であろう。 しかし、その後、議論は思わぬ方向に進展した。 日本では、このような受験を勝ち抜く秀才の多くが、医師や弁護士という国家資格に向かい、必ずしもグローバル経済の中でますます熾烈さを増す技術開発やビジネスの国際競争に、その才能が活かされていないという問題提起である。 医師の仕事の多くが厚生省の官僚と製薬会社によって定型化されており、必ずしも理数系の才能が必要とされるわけではない。 また、外科手術のような分野は、受験勉強の才能より、手先の器用さといった素養がより重要であることはいうまでもなかろう。 弁護士の仕事にしたって、ほとんどの業務は犬も食わないような内輪げ
とっちゃんです。 ClickOnce を使う場合は、Standard Edition 以上にしてもインストール先の選択は出来ません。 Express との違いは、必須コンポーネントを追加する際に、必要なものを別途用意しなくても良いという程度しか違いはないそうです。 インストール先を選択できるようにするには、通常形式のインストーラを作る必要があります(.msiの拡張子のやつですね)。 こちらは、Visual Studio 2005 では Standard Edition 以上で利用できます。 ほかには、InstallShield 11.5 が .NET 2.0 に対応しています。 ちょっとお高い(Proの新規導入が可能)ですが。。。 英語でもよければ、WiX というオープンソースプロジェクトがあります。 製品そのものは英語版ですが、日本語版インストーラも作成可能です。 実際、既にいくつかの製
1967年から73年まで「週刊少年マガジン」(講談社)で連載され、数々の社会現象を巻き起こした人気コミック『あしたのジョー』が、ついに実写映画化されることになったという。 「制作はTBSで、主人公の矢吹丈を演じるのはNEWSの山下智久だそうです。映画は3月末にクランクイン予定で、5月くらいまでを撮影期間としているようですね。主演の山下は連続ドラマの収録が終わり次第、本格的なボクシング練習に打ち込むそうですよ」(映画関係者) 現在、山下はドラマ『コード・ブルー ドクターヘリ緊急救命- 2nd season』(フジテレビ系)に主演中。初回視聴率18.8%(ビデオリサーチ調べ、関東地区/以下同)で、平均視聴率も16.9%と、今クールの連ドラのなかでも屈指の視聴率を誇っている。 「山下の映画主演は、08年に公開された『クロサギ』だけですが、興行収入も17億円とヒットしました。ただ、この作品はドラマ
企業のTwitter利用とかが注目されていますので、ちょっとでも参考になればと思って、昨年末に行ったEye-Fiの割引キャンペーンの事例をいまさらながらまとめてみました。 簡単に言うと、この1つぶやきでAmazonの在庫がなくなるまで売れました。 なんか思いつきっぽいつぶやきですが、実は一生懸命考えた上で狙ってつぶやきました。 ポイント1:タイミング 12月の第二週の金曜:景気が悪いとはいえ、12月第二週の週末はボーナスが出てすこし財布の紐が緩くなっているところ、ネット通販のかき入れ時と言われています。つぶやくならこの日だと決めていました。 PM5時という時間帯:金曜日の退社前、特に飲み会とかが無くても、なんとなく開放感があり、ワクワクしている時間帯です。実は私はミーティングの真っ最中でしたが、TLの流れを見て、「今だ!」と思ってPostしました。 ポイント2:アクション誘発型の呼びかけ
This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.
Flash Playerにクラッシュの脆弱性情報があるとの情報は2008年9月に寄せられたが、修正は次のリリースに先送りされた。 米Adobe Systemsはプロダクトマネジャーのブログで、Flash Playerに脆弱性があるとの報告を受けていながらこれまで放置してきたことを認め、謝罪した。 Flash Playerプロダクトマネジャー、エミー・ファン氏のブログによると、2008年9月にセキュリティ研究者からFlash Playerにクラッシュの脆弱性があるという情報が寄せられた。社内でこれを再現し、脆弱性を確認したが、翌10月に「Flash Player 10」の出荷を控えてチームが手一杯だったため、この脆弱性の修正を次のリリースである「Flash Player 10.1」に先送りしてしまうという「過ちを犯した」としている。 その後、2009年11月にリリースしたFlash Play
原因不明の長期無期限休養中のお笑いコンビ「アンタッチャブル」の柴田英嗣だが、今週発売の「週刊女性」によると、不倫相手を妊娠させてしまったという。 「柴田の不倫相手は元カノで、出演するテレビ番組で再会し不倫関係に発展。その元カノに妊娠させたのが奥さんにバレてしまい、離婚問題に発展。柴田夫妻と事務所が話し合い、問題が解決するまで休養することになった」(テレビ関係者) そのうえ、柴田はその元カノに脅迫めいたメールを送り、警察沙汰に発展していたのだ。 「柴田は元カノに1日30回近く脅迫めいたメールを送ったようで、元カノは警察に『殺されかけた』などと相談したが、被害届はまだ出していない」(同) 元カノが被害届を出せば刑事事件に発展。「事務所は内々的に、半年間の謹慎処分を下した」(スポーツ紙記者)というが、仕事どころではない。 「人気お笑いタレントの女性問題といえば、06年7月に未成年への淫行問題を起
台湾庶民の味「魯肉飯」。 ご飯に汁もののおかずを乗せて食べるのが好きなようですね。 台湾でも店や家庭によって微妙に作り方が違うそうです。 つまり同じ魯肉飯は二つとないのだとか。 食在台湾といわれるグルメの地。 コトコト煮込んで作りましょう。 豚の皮・・・・・・・・・・・・・200g 豚の赤身肉(もも肉)・・・・・・・200g (それぞれ1センチ角に切る) 長ネギ・・・・・・・・・・・・・・1本 干し椎茸・・・・・・・・・・・・・4枚 干しエビ・・・・・・・・・・・・・大さじ4杯分 ニンニク・ショウガ・・・・・・・・各大さじ1杯 (以上すべてみじん切り) 紹興酒・・・・・・・・・・・・・・100cc 濃縮しょう油ラーメンスープ・・・・1袋 (あるいは中華出汁+醤油) ゆで卵・・・・・・・・・・・・・・4個 八角・・・・・・・・・・・・・・・1個 1. 鍋に油を入れ、ニンニク・ショウガを焦がさ
アビイ・ロード・スタジオ売却へ=ビートルズゆかり−英紙 アビイ・ロード・スタジオ売却へ=ビートルズゆかり−英紙 【ロンドン時事】ビートルズがレコーディングに活用し、数々の名曲を生んだ英ロンドンの「アビイ・ロード・スタジオ」が、親会社の音楽大手EMIグループにより売りに出されていることが分かった。16日付の同国紙フィナンシャル・タイムズが報じた。 EMIは販売不振で深刻な経営難に陥っており、数千万ポンド(1ポンド=約141円)に上るとみられる売却収入を、自社の運転資金に充てたい考えだ。 同紙によると、ビートルズは1962〜69年に約9割の曲を同スタジオで録音。ピンク・フロイドなどの著名アーティストも好んで利用した。ただ近年では、利用料が割安で技術的に優れた他国のスタジオとの競争にさらされており、EMIが高価な施設を保有する理由が薄れていたという。 スタジオの名称は通り名に由来し、スタジ
MY MUSIC (Also available in my Shop) My Trust is in thy Mercy (Psalm 13) (SATB, S,A divisi) SheetMusicDirect.com, SheetMusicPlus.com, jwpepper.com, swirlymusic.com When David Heard (SB with keyboard): Sheetmusicdirect.com, SheetMusicPlus.com, jwpepper.com, swirlymusic.com Popule Meus (SSAB with organ) sheetmusicplus.com, sheetmusicdirect.com, swirlymusic.com Kyries for Worship Service (SATB): She
<a href="http://twitpic.com/13lz94" title="Share photos on twitter with Twitpic"><img src="http://twitpic.com/show/thumb/13lz94.jpg" width="150" height="150" alt="Share photos on twitter with Twitpic"></a> Remember! Twitpic Community Guidelines specify that if you post a Twitpic photo on an external website, the photo must link back to its photo page.
NEW ALBUM 「EIZO JAPAN 3」/EIZO Japan 全16曲収録 品番:TQCJ-1014 税込価格:¥2,571/税抜価格:¥2,381 発売元:TARGET ENTERTAINMENT 販売元:バウンディ株式会社 お求めは全国のCDショップまたは、TARGETeSHOPにて。
経営再建中のPHS事業者ウィルコムが、18日にも東京地裁に会社更生法の適用を申請する方針を固めたことが明らかになった。同社から支援要請を受けている、官民による企業再生ファンド「企業再生支援機構」は25日までに正式に支援決定する見通し。新たなスポンサーのソフトバンクと国内投資ファンドも出資方針を内定済みで、日本航空と同様に大口債権者とあらかじめ再建計画で大筋合意を得ておく「事前調整型」での法的整理となる。 法的整理に踏み切るのは、350億円にのぼる社債の圧縮や、取引銀行に債権放棄を求めるうえで、透明性と公平性を確保するのが狙いだ。社内や機構の一部では、信用低下を心配し、法的整理への反対意見もあった。しかし、債権放棄額を巡って難航していた取引銀行団との交渉が合意にこぎ着け、機構やスポンサーの支援見通しも固まり、深刻な顧客離れは避けられると判断した模様だ。 機構は更生法の適用申請後、1週間以
As part of some house-keeping I've been checking over my systems and ensuring they're all tickity-boo for the past couple of days. One thing that I'm getting increasingly tempted by is converting my kvm guest to a 64-bit system. I've not quite sold myself on the prospect of what will be a fair amount of downtime, but I'm 90% there. I do think that a lot of my setup needs an overhaul, for example:
米国のSNS大手Facebookは、日本向けの携帯電話向けサービスを本格展開する。まず米国本社のエンジニアを常駐させる日本事務所を2月2日に開設した。今後、日本の携帯電話の環境に合わせた新たなサービスを開発する。開始時期などは未定だ。 Facebookのヘッド・オブ・インターナショナル・グロース、ジャヴィア・オリヴァン氏が日経トレンディの取材に対して明らかにした。同社が米国以外のオフィスに本社のエンジニアを派遣するのは初めて。日本国内でも積極的に携帯電話向けサービスを展開して、国内の大手SNSに対抗する。 2008年5月にスタートした日本語版Facebookは現在約100万人のユーザーを抱える。ただ、さらに利用者を拡大するには、国内の大手SNSと同様、携帯電話向けサービスの拡充が不可欠となる。日本のモバイル環境に合わせた新たなプラットフォームを開発するための拠点として日本事務所を開設した。
飲むカフェスイーツ「ドロリッチ」の擬人化同人誌『ドロリッチなう。』が、ZIN秋葉原店に15日に入荷していた。サークルs-flakeがコミティア91で頒布されたもので、参加イラストレーターさんは、ラノベ「シュガーダーク」などのmebae氏、「ワールドイズマイン」などのredjuice氏ら34人。ZINの中の人いわく『すごいですよ。ドロリッチですよ』とのこと。 グリコの飲むカフェスイーツ「ドロリッチ」の擬人化フルカラー同人誌「ドロリッチなう」が、15日にCOMIC ZIN秋葉原店に入荷していた。 ドロリッチ擬人化フルカラー同人誌「ドロリッチなう」は、サークルs-flakeがコミティア91で頒布されたもので、参加イラストレーターさんは「DOGS/BULLETS&CARNAGE」や初音ミク「恋は戦争」の三輪士郎氏、ラノベ「シュガーダーク」イラストなどのmebae氏、初音ミク「ワールドイズマイン」の
Expired:掲載期限切れです この記事は,ロイター・ジャパン との契約の掲載期限(30日間)を過ぎましたので本サーバから削除しました。 このページは20秒後にNews トップページに自動的に切り替わります。
某所で頼まれた案件。gumblarで被害を受けていないかあるサーバを調べてくださいと。で、問題なければそのままサーバをアップグレードしてください、とのことでたやすいだろうと受ける。このサーバは公開ではないしこのサーバのアカウントをクライアントに持っているユーザもごく限定されているので、ftpアカウントが奪取されて云々という可能性は低いので簡単なスクリーニング程度でよいだろうということで。構成は2発HDDを積んだマシン。もともとDebian Sargeが動いていた。RAIDはドライバ未対応にて当時できなかったので組んでいないが、今のご時世では可能なマシンらしい。00:0f.1 IDE interface: Broadcom CSB6 RAID/IDE Controller (rev a0)上記リンクではIBMのサーバに搭載とでているが、こちらはFUJITSUのPRIMERGY TX150。割
ささっと以前から書いてはいたのですが、検索される方も多いようですので、独学Linuxさまの手順を踏まえて、わたしなりの変更例を書きます。 起動画面を美しく表示する方法《GRUB2》を元に書いています。 $ dpkg -l | grep grub2 ii grub2 1.97~beta4-1ubuntu4.1 1. 1024*768の背景にしたい場合 作業1. 素材をpicture.tgaにする。 素材を探し、GIMPで1024x768にセットします。元が1600*1200の比率ですと綺麗に収まると思います。違えば、その数値を以下の設定で入れればそれなりの画像にはなると思います。名前はpicture.tgaとしています(参照リンクさまと同じです)。 作業2. 素材を/boot/grubにコピー $ sudo cp picture.tga /boot/grub 作業3. gfxmodeの変更
Wikipedia Chromium Chrome拡張機能とは? Wikipedia Chromiumとは、コンパクトなWikipediaをポップアップ表示するChrome拡張機能です。 https://chrome.google.com/extensions/detail/lcdocinjhgfhieldmbmkhdghoodolebc [動作確認環境] Ubuntu 9.10 + Google Chrome 5.0.307.7 Wikipedia Chromiumでは、ツールバーのWikipediaアイコンをクリックするだけで、コンパクトなWikipediaをポップアップ表示することができます。 Wikipedia Chromiumで検索した内容はキャッシュされるので、ポップアップを閉じてもアイコンをクリックすれば、すぐに再表示できます。 Wikipedia Chromiumで、日本語
前はあっさりと消せたのですが、不具合(?)があったっぽいので解説。Wubiでアンインストールを行うとboot.iniにUbuntuの記述が残ったままになってしまいます。それが残っていると、消したにも関わらずどれを起動するか問われるので非常に困り物です。では解説。 1.「ファイル名を指定して実行(Windowsキー+Rでも可能)」を開く。 2.「sysdm.cpl」と入力し、OKをクリックします。そうするとシステムのプロパティが開かれます。 3.詳細設定を開き、起動と回復の設定をクリックします。 4.起動と回復のウィンドウが開かれた後、起動のオプションファイルを編集します。 5.一番下の項目にUbuntuと記述された行があるのでそれを消す。 6.再起動後にブートの選択が消えているはずです。 Tip:[boot loader]timeout=30と記された場所の数字を弄ると選択の時間を変えるこ
1 名前:以下、名無しにかわりましてVIPがお送りします:2010/02/15(月) 01:19:53.40 ID:MzzkoODV0 ひっかける人居れば ひっかかる人有り 4 名前:以下、名無しにかわりましてVIPがお送りします:2010/02/15(月) 01:23:01.27 ID:M8Mj5Sdn0 >>1さんとえっちするにはどうしたらいいですか?>< >>4 とりあえずアド晒してくれれば即刻メールが行く 100通/day位 6 名前:以下、名無しにかわりましてVIPがお送りします:2010/02/15(月) 01:27:01.04 ID:VYGafOlRO サクラで雇ってください >>6 とりあえずタイプ数はかろうか 俺のとこではそれが重要 7 名前:以下、名無しにかわりましてVIPがお送りします:2010/02/15(月) 01:27:22.86 ID:wJHFhWqVO さく
2009/02/27記 本記事の方法で変換した場合、プリギャップ情報が失われるという問題があることが分かった。修正版の記事を作成したので、今後はそちらの記事を参考にして欲しい↓ 可逆圧縮TAKをWAV+CUEに変換しよう(修正版) プリギャップのないTAKを変換する分にはこの記事の通りで問題ないが、プリギャップが含まれている場合はその情報が失われてしまう。これはfoobar2000のバグ(仕様?)だと思われる。 プリギャップについては以下のサイトが詳しい。 プリギャップとは 【pregap】 - 意味・解説 : IT用語辞典 プリギャップ(プレギャップ)、ポストギャップ、CUE Sheetについて こちらの手順でエンコードしたTAKファイルをWAV+CUEに変換(デコード)する方法を紹介する。 デコーダにはfoobar2000 0.9.5.2を使用する。 こちらのページの「Download
4月よりフジテレビ系「ノイタミナ」枠で放送されるアニメ「四畳半神話大系」のエンディングテーマに、いしわたり淳治と砂原良徳の新ユニット“いしわたり淳治&砂原良徳”の新曲「神様のいうとおり」が決定した。 森見登美彦の小説を原作とした「四畳半神話大系」は、京都の男子大学生を主人公に不思議な並行世界を描いた物語。構成と脚本はヨーロッパ企画の上田誠が担当、キャラクター原案はイラストレーターの中村佑介が手がけている。 エンディングテーマを手がけたユニット“いしわたり淳治&砂原良徳”は、今後継続的な活動を予定しているとのこと。第1弾となる新曲「神様のいうとおり」にはボーカルにやくしまるえつこを迎え“いしわたり淳治&砂原良徳 + やくしまるえつこ”として発表する。 この曲のCDリリース等、詳細は現在のところ不明。3人がどんな化学反応を生み出したのか、続報に注目しよう。なお、アニメ「四畳半神話大系」のオープ
個人事業主もサラリーマンも、知っておいて損はない「税」の話。今回は一般になじみ深い「所得税」の計算ロジックを考えてみよう。 今年も確定申告の時期がやってきた。個人事業主は前年1月から12月までの所得を申告し、税額を確定、納税する。サラリーマンも副業の収入を申告したり、医療費が多い場合は還付を受けたりする。今年は2月16日から3月15日まで1カ月間がその期間だ。 筆者は2年前に「パソコン好きが青色申告を体験してみると?」という記事を書いた。個人事業主になったばかりの方と、起業を考えている方を対象に書いたが、今回はサラリーマンの方も対象に“税”について書いてみたい。 政権交代により、「子供手当」「高校の無償化」といった言葉を耳にする機会が増えた。その財源として配偶者控除や扶養控除が廃止になるといったニュースも飛び交うようになった。この手のニュースや記事に出てくるのが、年収○百万円、中学生と高校
いまやWeb制作に欠かせなくなったJavaScript。でも、「JavaScriptはほとんど“アリモノ”で済ませている」という方も多いのでは? そこで、WebデザイナーやマークアップエンジニアなどのWeb制作者の方向けに、いま一番人気のJavaScriptライブラリー「jQuery」の基本を学べる特別レッスンをお届けします。題して、「40分で覚えるjQuery」。要点だけにぎゅっと絞って解説しますので、手を動かしながら今すぐjQueryを始めましょう。 【0分目:導入編】 jQueryのダウンロードと利用方法 jQueryのライブラリー本体(JavaScriptファイル)は公式サイトからダウンロードし、head要素などにscript要素を書いて読み込みます。
We are in the process of deploying DNSSEC, the DNS Security Extensions, on the Debian zones. This means properly configured resolvers will be able to verify the authenticity of information they receive from the domain name system. The plan is to introduce DNSSEC in several steps so that we can react to issues that arise without breaking everything at once. We will start with serving signed debian.
by Mr Groove 下着メーカーのワコールの調査で、ランニングをするときにスポーツブラを着用する女性ランナーがわずか3割しかいないことが明らかになりました。所有率は約5割で、スポーツブラを所有していない人の8割は普段のブラで走っているそうです。スポーツブラに対して「小学生が使うもの」「女性らしくない」という先入観があり、自分が着けるものではないと考えている人が多いようです。 詳細は以下から。 スポーツブラ着用実態アンケート結果について(2010年02月16日) 2009年10月から12月に、ワコールが女性ランナー1003人に対して行ったアンケートによると、スポーツブラの所有率は約5割で、ランニング時に常時着用している人は3割しかいなかったそうです。また、スポーツブラ非所有者のうち8割は普段のブラで走っているとのこと。 ただし、ランニングを続けているうちにだんだんと意識が変わってくるよ
紀伊國屋書店では、2001年5月より映画を中心としたDVD作品の刊行を開始し、現在300を超えるタイトルを揃えています。『ゴダール 映画史』『テオ・アンゲロプロス全集』など映画芸術的な名作を主体にして、『戦艦ポチョムキン』『裁かるるジャンヌ』などクラシック映画を最高の状態でご提供する〈Critical Edition〉シリーズ、溝口健二監督『雪夫人絵図』、五所平之助監督『大阪の宿』などの〈新東宝傑作セレクション〉、『メトロポリス』『M』などの〈フリッツ・ラング コレクション〉の刊行を開始しました。また、『サスペリア』『火星年代記』など娯楽作品を集める〈ENTERTAINMENT COLLECTION〉シリーズの他、現代日本映画、カルチャー系、歌劇やアニメーションなど充実したラインナップを揃えています。 今後もルイス・ブニュエル監督作品、大島渚監督作品などファン待望の作品を刊行していく
2/20(土) Twit & Shout Vol.5@三軒茶屋Hell's Bar 入場開演 23:00 閉場 06:00 料金 1000+500yen(1drink) !!! 先着30名前後に店から軽食のサービスあり !!! DJ @lie_ @yosshibox @basara36 @DJWILDPARTY @ageha1980 @stein_ @inumoto @merli 三毛猫ホームレス(@mochilon + @hironica) タイムテーブル(仮) 23:00-23:40 @merli 23:40-00:20 @basara36 00:20-01:00 @lie_ 01:00-01:40 @三毛猫ホームレス 01:40-02:30 @yosshibox 02:30-03:20 @DJWILDPARTY 03:20-04:00 @inumoto 04:00-04:40 @ag
◇7月の改正法施行、間に合わない-- 難病の拡張型心筋症で東北大学病院(仙台市青葉区)に入院中の市立仙台二中3年、寺町沙也(さや)さん(14)が、米国で心臓移植手術を受けられるよう支援しようと、「さやちゃんを救う会」(本部・札幌市)が募金活動を進めている。15歳未満からの臓器提供を認める改正臓器移植法は7月17日に施行されるが、沙也さんは昨年末に「余命半年」と宣告され猶予はない。救う会は「沙也さんの命を未来につなぎたい」と支援を呼びかけている。 札幌市内の中学に通っていた沙也さんは07年11月28日、ソフトテニスの練習後に倒れ心停止状態になった。市立札幌病院へ搬送され、同12月6日に再び心停止状態に。北海道内での治療は困難と、同日中に人工心肺などをつけて東北大学病院へヘリコプターで搬送された。 心臓の左側が機能しないため、補助人工心臓を装着しているが、ほかの臓器に負担がかかり症状が悪化。早
“NASAL MYIASIS” この動画またはグループは、YouTube のユーザー コミュニティから不適切な動画として報告されており、一部のユーザーに適切でないコンテンツを含む場合があります。 この動画またはグループを見るにはログインまたはアカウントを作成して、18 歳以上であることを証明してください。
リテールテック JAPAN 2024 社会課題や環境問題の解決、顧客体験の向上、従業員の効率化など、次世代の小売業の未来をDX変革する新たな取り組みをご紹介
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く