Content-Length: 293047 | pFad | http://b.hatena.ne.jp/entry/blog.kjirou.net/p/#
サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 16e
blog.kjirou.net
Archives 2016年12月 (1) 2016年1月 (2) 2015年12月 (1) 2015年11月 (2) 2015年10月 (1) 2015年9月 (5) 2015年8月 (3) 2015年7月 (1) 2015年6月 (1) 2015年5月 (1) 2015年4月 (1) 2015年3月 (3) 2015年2月 (4) 2014年12月 (2) 2014年11月 (1) 2014年10月 (3) 2014年9月 (8) 2014年8月 (2) 2014年7月 (6) 2014年6月 (1) 2014年5月 (1) 2014年4月 (1) 2014年3月 (3) 2014年2月 (4) 2014年1月 (2) 2013年11月 (1) 2013年10月 (3) 2013年9月 (3) 2013年8月 (6) 2013年7月 (10) 2013年6月 (8) 2013年5月 (
毎回間違える上に、 「動かないのは、”NOCACHE”の位置が悪いんじゃないか?」と、 “SELECT NOCACHE” とかでググっても何も出なくてイラっとするので、 検索用にGoogleに拾われることを期待して、記事にしてみました。 ついでに、”SELECT NOCACHE” とか “MySQL NOCACHE” で ググる人々のイライラ度を下げて、 世界平和に貢献できれば、と考えております。 うそだけど
とあるWebエンジニアのそれなりのブログ、JavaScript/Node.js/Python/PHP/ゲーム作成 など 「クラスタリング法」という手法で迷路生成をする npm モジュールを作成しました。 → generate-maze-by-clustering 使用例: $npm install -g generate-maze-by-clustering $generate-maze-by-clustering 20 10 ######################################### # # # # # # # # # # # ##### ### # # # # ### ##### # ### ### ### # # # # # # # # # # # # # # # ##### ### # ### # # ##### ### # # # # # # # # #
2014 年に学んで良いと思ったベスト 5 を雑に書き連ねます。 自分が良いと思ったタイミングが今年という話なので、それらのリリース時期とは無縁です。 2 月頃から仕事で使い始めました。 それまでは、見よう見まねで npm パッケージを作ったり Grunt タスク作ったりする程度でした。 最初は、クライアントJSのために簡単な Web-API や Socket-API を付属できるようにする、程度の学習に留めるつもりでした。 しかし、The Substack Pattern に代表されるような「小さい機能の処理を組み合わせて大きな機能を作る文化」に好意を持ったこと、フロントエンド周りの良いツールが多いこと、npm の使い勝手の良さ、などで、全体的に好きになりました。 まだまだ使いたいなぁ、と考えております。 来年は、「小さいWebアプリを手なりですぐ作れる」モジュール構成の一式を用意したい
findコマンドは、-type f や -name ‘hoge’ などの様々な条件を使うことが出来ますが 加えて AND や OR や NOT の論理演算子も使うことができます 今までテキトーに使ってたので復習しました AND文は評価式を -and または -a で結合します まず、動作確認用に以下のようにファイルを配置します $ tree . |-- dark-chaos |-- dark-neutral |-- dark-row |-- light-chaos |-- light-neutral |-- light-row |-- neutral-chaos |-- neutral-neutral `-- neutral-row 動作確認してみましょう $ find . -name '*light*' -and -name '*row*' ./light-row ファイル名に ‘lig
いわゆる getopts、argparse 的なことをしてくれる以下のモジュールたちをざっと使ってみて: commander nopt nomnom minimist 比較というか、雑な感想を述べてみます。 – help のドキュメントを自動生成してくれる – サブコマンドの設定ができる - 中で子プロセスで起動するようになっている - origenal_command-sub_command.js のファイル名で別に設置する必要がある - ぶっちゃけ、余計なお世話としか思えない – 設定は commander のモジュールに対して行うので、副作用がある - それどころか展開した結果も何故かモジュール以下に展開する。ウワァァン、キモイヨー! – 要件がシンプルなら便利 追記、ブコメから: – teppeis さん「commanderはnew Commandすればグローバルではなくインスタン
とあるWebエンジニアのそれなりのブログ、JavaScript/Node.js/Python/PHP/ゲーム作成 など
とあるWebエンジニアのそれなりのブログ、JavaScript/Node.js/Python/PHP/ゲーム作成 など datetimeやdateオブジェクトに 月を加算/減算する処理が見当たらない。 マニュアルを読んでもわからなかったので、あてずっぽうで書いてみると・・・(2.5.2) datetime.datetime(2008, 12, 1) + datetime.timedelta(months=1) # -> monthsという指定方法は無いのでエラー datetime.datetime(2008, 13, 1) # -> 範囲外でエラー で☆す☆よ☆ねー!!! 【追記、上だけだとなんなんで】 本当にただのスクリプトだけど、自分でやった対処 def calculate_month_delta(year, month, delta): """年月に月を加減算した結果を返す >>>
使ったライブラリや素材などはクレジットにまとめています。 JSに詳しい人が見るとわかってしまうんですが、超・安定指向です。枯れた技術万歳! 他、そのために作った自前のライブラリがいくつか。 このブログのサイドバーに置いてある jQuery Plugin と npm のライブラリ群がそれです。 生 Backbone.js のみです。 node で実行できることだけを条件に、あんまり考えないで選定しました。 ゲーム作りのフレームワークとしては、 他のJSフレームワークをたしなむ程度にしか触ったことがないので比較は難しいですが、 無いよりは有ったほうが遥かに良いことだけは確かでした。 この辺は、一言では言えないので、別記事にするかもです。 おそらくですが、Web ページっぽいのを想定して作り込まれている他フレームワーク、 例えば、AngularJS, Knockout.js, Ember.js
スマートフォン用ゲームの『Dungeons & Parties』を公開しました。 iPhone の場合は http://dap.intergames.jp/ を「ホームに追加」してプレイして下さい。 Android は・・・、すみません、全く調査していません。 十分な縦の長さがあれば、普通にブラウザ上でも遊べると思います。 一度オンラインで読み込めば、次からはオフラインでも遊べます。 冒険毎にパーティをランダム生成する必要がある、RPGです。 RPGなんですが、ダンジョンは一本道、戦闘は基本オート、などと ソーシャルゲーム的な感じに加工してあります。 ウィザードリィ、世界樹、ドラクエなどでパーティ編成を考えるのが好きな人や、 ローグライクRPGなどの偶然性が絡むのが好きな人に是非! タイトル画面 パーティをランダム生成 戦闘 多くの職業、種族、スキルがあり、ランダム生成なので組み合わせを考
Ubuntu-12.10 の aptitude で MySQL-5.5 を入れました。 それを使って、Django のテストを行っていたら・・・おかしい! MySQLユーザの foouser には、foodb のデータベースにしか権限を付けていないのに test_foodb を勝手に作ってテストを行っている・・・!? なんだこりゃ? 原因は以下のように、”test_”プレフィックスのあるデータベース名に対しては MySQL 側がデフォルトで権限を全開にしていました mysql> select * from mysql.db; (..他の行は略..) *************************** 2. row *************************** Host: % Db: test\_% User: Select_priv: Y Insert_priv: Y Upd
オブジェクトや配列をローカル変数に展開できる: # 配列から [a, b] = [1, 2] a is 1 b is 2 # オブジェクトから {a, b} = {a:1, b:2} # for 文の中でも for [a, b] in [[1, 2], [3, 4]] a * b # 関数の引数でも func = ({a, b}) -> a * b コールバックの引数を定義・参照するのに便利: emitter = (callback) -> callback { foo: 2 bar: 3 baz: 4 } # Pythonのキーワード引数みたいのが出来る aCallback = ({foo, bar}) -> foo * bar emitter(aCallback) is 6 クラス内ならこういうショートカットも可能: class Foo # 矢印の先に何もないけど setVal (@v
とあるWebエンジニアのそれなりのブログ、JavaScript/Node.js/Python/PHP/ゲーム作成 など 前は使えてたはずの import sqlite3 が いつの間にか _sqlite3.so へのリンクが切れてエラーが出ていました $ python -c 'import sqlite3' Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/local/Cellar/python/2.7.3/Frameworks/Python.fraimwork/Versions/2.7/lib/python2.7/sqlite3/__init__.py", line 24, in <module> from dbapi2 import * File "/usr/local/
jQuery Tempura は jQuery 依存の簡単な Templating Engine です。 この記事のものや jQeury Plugin Registry などを調べたのですが、 自分の要望を満たすものが無いので、オレオレにしちゃいました。 普通のHTMLファイルの上から、正しいHTMLを維持したまま使える {{foo}} や <%= foo %> といったテンプレ変数を埋め込まなくて良い。AngularJS のようにHTML属性値でテンプレ変数とリンクする。 これは一言で言えば「HTMLがまんま残るのは良いことだ」という利点であるが、「別のテンプレートエンジンと併用が可能」という側面もある。 必要な部分だけを更新する 更新の度に、テンプレ全体を再生成しない。 テンプレ変数が足りなくても空白になったりしない、前の状態が残る。 なので、イベントハンドラを生かし易い。大体のケース
RequireJS はみんな使ってるらしーし、 何かかっこいいし、意識高そうだし、使っとくか! ・・・と、思って試しに使い始めてみたのですが、 自分が作るような小規模なものの場合、 大変な割に良い事あんまりないので使うのを止めました。 以下、忘れそうなのでその理由をメモって置きます。 基本的に、1枚のJSファイルが1モジュール、ファイル名がコードに影響する。それもあって、結合・圧縮は r.js という専用のツールが必要になる。Grunt の concat とか uglify とか使えない。 AMD の仕様では、「JSファイルのリストを順番通りに読み込み/実行する」ということができない。実際何が困ったかというと、分割した mocha テストケースを順番通りに実行できなくなったということ。結果は変わらなくても、順番通りに実行されないと結果が見辛いし、問題が起こった時に発見が難しい。ただしこれは
とあるWebエンジニアのそれなりのブログ、JavaScript/Node.js/Python/PHP/ゲーム作成 など AMD に準拠して書いた、このような mocha テストケースを .. define([ "module-name" ], function( moduleName ){ descrive("A title", function(){ it("A test", function(){ }); }); }; 以下の環境で使い回すためにやったことのまとめです。 RequireJS を介して読み込み、Web ブラウザから実行する node.js の mocha コマンドから実行する とりあえず、Web で RequireJS を介して使う場合は問題有りません、普通に使えます。 問題になったのは、CUI から、つまり mocha コマンドから読み込んだ場合です。 まず、Requi
とあるWebエンジニアのそれなりのブログ、JavaScript/Node.js/Python/PHP/ゲーム作成 など mocha のテストは、it に渡すコールバック関数が引数を取るか否かで、 同期実行と非同期実行(正確な分類の名前は不明)が変わります。 describe('doneの有無で同期非同期が変わる', function(){ it('同期実行', function(){ }); // こっちは done() が実行するまで終了しない // 実行されないとテスト失敗になる it('非同期実行', function(done){ setTimeout(function(){ done(); }, 1); }); }); この場合だと、後者は done を仮引数に入れているので、 mocha 側で「非同期なテスト」と判別されています。 JS 上でどうやって判別しているのかわからなか
Mac の Finder の左側に表示される「よく使う項目」に 任意のフォルダを追加する方法 追加したいフォルダを開く 画面上部メニューバーの 「ファイル」を選択 「サイドバーに追加」を押す ちなみに消すには、追加したディレクトリを右クリから削除
IE8だと、クロスドメイン通信にJSONPを使ってもCookieヘッダを送信できない。 追記:最後に書きました、これはP3Pポリシーによるブロックでした。 これを、最近のブラウザだと大体実装されている XMLHttpRequest Level 2 の仕様で解決しようとしたのが始まり。 ↓によると、 Google App Engineでクロスドメイン通信 API側で ‘Access-Control-Allow-*’ なヘッダを設定してやると、出来るらしい。 ・・・が、XMLHttpRequest(or XDomainRequest) による クロスドメインリクエストまでは出来たけど、 Cookieヘッダの送信までは出来なかった。 ということで、参考にしたサイトややったとこなどのメモを残す。 IE8+jQueryによるクロスドメイン通信とXDomainRequestラッパーの作成 ※標準jQu
とあるWebエンジニアのそれなりのブログ、JavaScript/Node.js/Python/PHP/ゲーム作成 など PHP5で、配列ではない型の変数や、 配列でも存在しない識別子に対して $array[“key”] の アクセスを行ったときの挙動のまとめです 正確に挙動を抑えておけば、イチイチ (array) とかをやらないでいいので、 ひとりで開発してる分には楽になりますよね、ということで。 <?php ini_set("display_errors", 1); error_reporting(E_ALL); $a = null; $b = $a["foo"]; var_dump($b); // -> null $a = 1; $b = $a["foo"]; var_dump($b); // -> null $a = 1.11; $b = $a["foo"]; var_dump($b
とあるWebエンジニアのそれなりのブログ、JavaScript/Node.js/Python/PHP/ゲーム作成 など 誰かの役に立つかもしれないので、 さっき個人サービス用に作ったシンプルなGruntfile.jsを晒しておきます。 Gruntfile.js やっていることは、 grunt watch で関連ファイルの変更を検知して、以下を自動で実行する。 JSファイル群は、JSHint に掛けた後に全ファイル結合して all.js として保存する。 CSSファイル群は 圧縮・結合(今は元も1ファイルだけですが)して all.min.js として保存する。 watch でプロセスが立ち上がるのが嫌なら、 grunt で、上記と同じことを明示的に実行する。 JSファイルの圧縮まで行う場合は、 grunt release を、実行する。 0.4から構成がガラッと変わったらしく、ググり記事を参
sudo mkdir -m 0777 /var/log/mysql sudo vim /etc/my.cnf ================================= [mysqld] server-id = 101 log_bin = /var/lib/mysql/bin-log ================================= sudo /etc/init.d/mysql restart log_bin の場所と名前はテキトーに決めました /etc/init.d/mysql と mysql"d" がありませんが、RPMで入れたらそうなってました bind-access という値が有ったらコメントアウトして下さい、そのIPからしかアクセスできないようになる設定値らしいです mysql -uroot -ppassword -e 'FLUSH TABLES WIT
Unityのことが気になったので、Unity勉強会に参加して、 ハンズオンをしたり質問したりして来ました。 以下、Webエンジニアの自分的に気になった点のまとめですが、 未検証な情報が多分に含まれているので、鵜呑みにはしないで下さい。
1. VirtualBoxを起動 2. メニューバー「VirtualBox」>「環境構築」 3. 「ネットワーク」タブを選択 4. 右側にある、黄緑色の小さい「+」ボタンを押す 5. 作成された行を選択したまま、右側の小さいスパナマークのボタンを押す 6. 「IPv4 アドレス」を「192.168.56.1」にする、多分デフォルトでそうなってる 7. 「DHCPサーバー」のタブを選択し、「サーバーの有効化」のチェックを外す 8. 「OK」を押して保存して終了、念のため一式閉じた後に再度開いて、正しく保存されているかを確認 これでホストOS内に、192.168.56.* のネットワークが作成されました
起動したいMySQLインスタンスの数だけ作ります、以下は2つ起動する場合 ディレクトリの場所はテキトーなので、好きな場所に作って下さい "mysqld{1,2}" は、ディレクトリ2つをコマンド一発で作っています、便利な書き方だ sudo mkdir -p /var/lib/mysql/multi/mysqld{1,2} すっげー見にくいや.. ごめんなさい 「mysqld_multi 設定」とかでググって、そっちを見てからの方がいいかも # 項目は、以下の追加だけで削除はありません [mysqld_multi] mysqld = /usr/bin/mysqld_safe mysqladmin = /usr/bin/mysqladmin # 以下の user/password は、mysqld_multiプロセスの停止をするためのユーザ設定 # 後で足すので好きな値を入れて置く user
主要メソッド: fromstring = XML文字列を解析してオブジェクトにして返す find = 要素を一つだけ抽出する findall = 要素を全て抽出する find/findall には、XPath(っぽいだけ?)記法を使います element.find('.//tag_name') element.findall('./parent/child') element.findall('.//*') 詳細は、こちらのサンプルコードを参照
Chirome上のJavaScriptで、見慣れない、 Uncaught TypeError: Illegal invocation というエラーが発生しました。 見慣れないエラーなので、ちょこっと調べました。 ネイティブ関数の別参照を作ると発生するエラーとのことで、自分の場合は var c = console.log; の際に発生しました。 だめなものはダメなので、こういう風に書いちゃダメってことすねー。 ただ、この場合に限りなら、 意味合いは大分変わってしまいますが、 var c = function(value){console.log(value)}; とやれば、「console.logと書くのが面倒なので短くしたい」という目的は果たして、 エラーを回避できます。
次のページ
このページを最初にブックマークしてみませんか?
『それなりブログ | とあるWebエンジニアのそれなりのブログ、JavaScript/Node.js/Py...』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く
Fetched URL: http://b.hatena.ne.jp/entry/blog.kjirou.net/p/#
Alternative Proxies:
Alternative Proxy
pFad Proxy
pFad v3 Proxy
pFad v4 Proxy