塩焼きブログ

塩焼きに関しての研究内容を公開しています

2014-12-17から1日間の記事一覧

Phalconに実装されているバリデーター

Phalconのバリデーションについてまとめる PresenceOf フィールドの値がnullではなく、空文字列でもないかチェックする。データベースにNOT NULLを設定していると$model->save()で自動的にこのバリデーションが実行される。 その他 Email メールアドレスか? …

はてなブログのAPI (AtomPub) を利用して自動投稿や複雑なインポートを行う

はてなブログはAtomPubという仕組みによって外部アプリケーションから記事を投稿したり編集したりできる。つまりTwitter APIで外部アプリからツイートするみたいなもん。 私が開発しているCMSはMT形式のエクスポートができなかったし、Markdown記法を継承し…

nginxでのサイト移転に伴うリダイレクト

非常にシンプルにリダイレクトできる。permanentは301リダイレクトとなり、redirectは302リダイレクトとなる。 server { server_name yahoo.co.jp; rewrite ^(.*)$ http://jp.yahoo.com$1 permanent; }

CentOS7へJavaをインストールする

Javaのインストール yumでインストール可能 sudo yum install java-1.7.0-openjdk バージョンを確認 java -version インストールを確認した java version "1.7.0_71" OpenJDK Runtime Environment (rhel-2.5.3.1.el7_0-x86_64 u71-b14) OpenJDK 64-Bit Serve…

Gitのリモートリポジトリを変更する

Githubでforkする時にGitのリポジトリを変更したい git remote set-url origin https://github.com/user/project.git

TerminalのVimでカラースキーマを適用する

Mac上のTerminalでカラースキーマを適用するには256色に対応したカラースキーマを利用する。私のdotfilesをcloneして使ってみてもらえば、ちゃんとTerminalのVimでもシンタックスハイライトが適用されるだろう。ちなみにTerminalの詳細設定から256色に対応す…

JavaScriptのinstanceof演算子

左のオブジェクトが右のクラスのインスタンスであるかどうか調べられる var Foo = function () { this.x = 10; this.y = 10; this.z = 10; } var obj = new Foo(); var date = new Date(); console.log(obj instanceof Date); console.log(obj instanceof Fo…

JavaScriptの文字列で表現された数値と数値の演算

JavaScriptの式では型変換が自動的に行われる。文字列に対して文字列数値、数値、数値に対して文字列を追加した場合はどれも連結として処理される。 var res = 'hello' + '2'; var res2 = 'hello' + 2; var res3 = 2 + 'hello'; console.log(res); console.l…

JavaScriptでオペランドの一つがNaNになる式

そのオペランドだけがスルーされるということはなく演算結果すべてがNaNになる var res = 'hello' - '2' - 2; console.log(res); var res2 = 20 - '2' - 'good'; console.log(res2); // NaN // NaN

JavaScriptの文字列数値と数値で演算を行う

var res = '10' - '2' - 2; console.log(res); // 6

オペランドの意味

コンピュータプログラミングにおいて、演算の対象となる値や変数のこと。「被演算子」と訳されることもある。 演算内容をあらわす記号などは「演算子」または「オペレータ(operator)」という。例えば「A+10」という式では、「A」と「10」がオペランドで、「+…

JavaScriptの配列で未定義の要素を作成する

var arr = [1, 2, 3, 4, 5]; console.log(arr); console.log(arr[1]) // [ 1, 2, 3, 4, 5 ] // 2 var arr2 = [1, , , , 5]; console.log(arr2); console.log(arr2[1]) // [ 1, , , , 5 ] // undefined

JavaScriptのホイスティング

JavaScriptのホイスティング(巻き上げ)を体験する。JavaScriptでは関数スコープというものを使って変数を宣言するが、関数内のどこで宣言された変数でも関数内であれば既に宣言されているということにるらしい。 var foo = 'global'; (function() { console.…

JavaScriptのグローバル変数と同名の変数を関数内のローカル変数で定義する

JavaScriptのグローバル変数を関数内などのローカル変数で定義するとローカル変数が優先される。この時ローカル変数がグローバルスコープになるということはなく、ローカルスコープのままである。 var global = 10; var func = function(global) { return gl…

JavaScriptの==と===の比較

JavaScriptの比較には==と===がある。==は型変換を行う比較で===は型変換を行わない厳密な比較である。PHPにもどうようの演算子があるが同じような感じである。試しにいくつかのパターンで調査してみる。 数値と文字列の比較 console.log('0' == 0); // true…

JavaScriptの文字列はオブジェクトではない

JavaScriptの文字列はオブジェクトではないが、string.replace()のようにメソッドが使える。これはreplace()を参照した時に文字列をオブジェクトに変換してString(string).replace()と同じ処理をさせているからだそうだ。 var text = 'Hanako Yamada'; conso…

Yosemiteアップデート後のmysql.sock復元

私の環境では/tmp/mysql.sockが無いと言われた。mysql.sockを検索すると/var/mysql/mysql.sockに見つけたのでシンボリックリンクを貼って対応した sudo ln -s /var/mysql/mysql.sock /tmp/mysql.sock

JavaScriptでの文字列操作覚書

この文字列を操作していく var text = 'I\'m Mikan. Hello World.'; charAt()で指定した位置の文字列を一文字抽出する。ECMAScript5では角括弧でも同様の処理を行うこともできるが、IEでのサポートが微妙だそうだ。IEの詳しいバージョン調査が必要となるので…

JavaScriptのエスケープシーケンス

JavaScriptのエスケープシーケンスで存在しないものにバックスラッシュを付けると無視されるようだ var text = 'I\'m Mikan.\nHello World \aMikan'; console.log(text); // I'm Mikan. // Hello World aMikan

JavaScriptのNaN値

JavaScriptのNaN値の覚書 どの値と比較しても真にならない x == NaNも真にならない x != x で x が NaN なら真になる isNaN(x) で x が NaN数値でなければ真になる isFinite(x) は x がNaN、Infinite、-Infiniteで真になる

JavaScriptのInfinityと-Infinity

JavaScriptで表現可能な最大値を超えると無限大という値になるそうだ var integer = 10; integer = Math.pow(integer, 20); console.log(integer); // 100000000000000000000 integer = Math.pow(integer, 20); console.log(integer); // Infinity 負数の絶…

JavaScriptの算術演算

四捨五入 Math.round(1.6) // 2 切り上げ Math.ceil(1.2); // 2 切り捨て Math.ceil(1.9); // 1 Mathオブジェクトには他に最大値取得、最小値取得、乱数、絶対値取得、べき乗、円周率、自然対数、平方根、立方根、三角関数などのメソッドがある

ガーベジコレクションとは

JavaScriptは自動的にガーベジコレクションを行う ガベージコレクション(garbage collection; GC)とは、プログラムが動的に確保したメモリ領域のうち、不要になった領域を自動的に解放する機能である。「ガベージコレクション」を直訳すれば「ゴミ収集」と…

JavaScriptのセミコロンの省略

JavaScriptは文を別々の行に記述すればセミコロンを省略できる (function() { var under = 1 under += 1 console.log(under) setTimeout(function() { console.log('Good-bye') }, 1000) })() セミコロン省略派とセミコロン記述派に分かれる。どちらが正しい…

JavaScriptを使ってCanvas要素に図形を書く

canvas要素を書いたHTMLを設置する <html> <head> <title>example.html</title> </head> <body> <h1>Updates</h1> <canvas id="chart"></canvas> <script src="/example.js"></script> </body> </html> getContext()を使って逆三角形を作成する (function() { var chart = document.getElementById('chart'); if (! chart.getContext) { return; } c…

JavaScriptのXMLHttpRequestでAjaxの非同期通信を行う

同一ホストの同一ディレクトリ上にアクセスする度にコンテンツが変わるexample.phpファイルを設置する 取得した結果をリストで一覧にするためにexample.htmlを設置する <html> <head> <title>example.html</title> </head> <body> <h1>Updates</h1> <ul id="updates"> </ul> <script src="/example.js"></script> </body></html>

ApacheのエラーDocumentRoot must be a directory時の対策

Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' for details. エラー通りjournalctl -xnを実行するとずらずらとエラー内容が出てきて、ドキュメントルートがディレクトリでないというエラーを確認した 11月 15 0…

Apacheの設定ファイルのシンタックスを調べる

apachectl configtestで良い apachectl configtest Syntax OK

/sbin/mount.vboxsf: mounting failed with the error: No such device のエラー対応

環境 VirtualBox 4.3.18 Vagrant 1.6.5 エラー対応 Vagrantを利用してVirtualBoxの開発環境を構築しようとしたところ自動でマウントされる予定のディレクトリがマウントできずエラーとなった Failed to mount folders in Linux guest. This is usually becau…

JavaScriptでLocalStorageを使う

JavaScriptからLocalStorageを使えばクライアントサイドだけで長期間のデータ保存が可能となる。実際の使用にはlocalStorageオブジェクトを利用するだけでいい。 if (window.localStorage) { if (localStorage.foo) { localStorage.foo ++; console.log(loca…