OSX marvericksでmysqlが起動しなくなった時のメモ
パーミッションと所有権がおかしいのが原因っぽかったので、
sudo chown -R _mysql /usr/local/var/mysql sudo chmod -R o+rwx /usr/local/var/mysql
これで動いた。
それでも治らないなら my.cnfの設定見直す、mysqlそのものをインストールし直す。
システムがフリーズしたあととか、mysqldのプロセスが残りっぱで再起動できない時もあるみたいなので、そういうときは
ps -ef | grep mysql
してmysqldのPIDをしらべて、
kill -9 PID
してプロセスを殺した後に、
mysqld_safe
とかやってmysqldを再起動させればなんとかなる感じです。
適当にかいたJavaScriptがきもちわるい
適当にJavaScript書いてると、viewの操作とデータの操作とを同時にやりはじめちゃったりして、後から読んだ時にすごい気持ち悪くなる
DOMからいまの値とって、それをもとに次の値を決める、みたいな操作が結構多いからかもしれないので、それなりに意識して書かないとつらい。
なるべくMVCとかMVなんとかみたいなパターンを意識して書いてるけど、それが言語的にあってるのかがよくわからないのですごい人にそこらへんの考え方おしえてほしい。
Gruntを使った開発用テンプレートをGithub上に公開しました
自分用のテンプレートを運用しやすくする目的も兼ねて、普段使っているWebフロントエンドの開発用テンプレートをGitHub上に公開しました。
構成
テンプレートの構成は以下のとおり。
- Grunt; タスク管理
- Jade; HTML生成用テンプレートエンジン
- Sass; css生成
- Compass; Sassコンパイル補助
- Bower; JavaScriptライブラリ管理
- Karma; テスト用
- mocha+expect+sinon; テスト
- node-easymock; APIモック作成
使い方
gruntのデフォルトタスクを実行するとコンパイルが実行され、.tmpフォルダに展開、.tmpフォルダをベースディレクトリとしてnode serverがlocalhost:9000
で立ち上がります。
また、grunt build
をするとproductionモードでコンパイルが実行され、distフォルダに圧縮などされたファイルが出力されます。
テストを実行するときは、testディレクトリにテストファイルを適当に入れた後、grunt test
で実行します。
bowerでjsのライブラリをいれるときは、grunt bi
を実行するとbower.jsonの情報をもとにsrc内にライブラリファイルがコピーされます。
Readmeを用意したり微調整をしたりはこれからしていく予定。
何か有りましたらissueに投げるか、gitter.im(https://gitter.im/rtshaaaa/frontStart)も使えるのでそちらなどでどうぞ。
Jadeでconditional Commentがいつの間にかサポート外になっていた
Jadeをしばらくアップデートせずに使っていたので気づかなかったのですが、 どうやらconditional Commentがバージョン1.1.5からサポート対象外になっていたみたいです。
それ以前のバージョンでは
// if lt IE 9 script('hogehoge.js')
という風に書くときちんとコンパイルされていたのですが、それ以降のバージョンではこれだと正しくコンパイルされずに謎のコメントが埋め込まれるだけ、という風になっていたみたいです。
ソースを見てみたら、生で書いてね、という感じで書いてあったのですが、さすがに毎度毎度生で書いていくのはしんどいので超簡単なmixin
をとりあえず用意して運用することに。
mixin ltIE9 <!--[if lte IE 9]> block <![endif]--> mixin ltIE8 <!--[if lte IE 8]> block <![endif]-->
これを適当に/mixin/_cComment.jade
とかで保存しておいて、
include /mixin/_cComment doctype html html(lang='ja') head meta(charset='utf-8') +ltIE9 script(src='/js/lib/html5shiv.js') title hoge body hogehoge
とかいう感じでつかえばとりあえずはいいかなー。
もうちょっと改善できそうなので時間あいたときにでももう少し調整するかもしれません。
たぶん古いIEなんでダサいぜ、みたいな感じでサポート切ったんでしょうね。
[2014/02/06] コンディショナルコメントの表記がちょっと間違ってたので修正しました。
JavaScript書いてた人がRubyに入門する その2
どこから入門しようか
入門するにあたって、まずは雰囲気をしってからコードを書いていったほうがいいなと思いました。
そして悩んだすえ、前々から気になっていたドットインストールを使ってみることに。
ドットインストール - 3分動画でマスターする初心者向けプログラミング学習サイト
ドットインストールは国内で伸びてきてるプログラミング入門者むけの勉強サイトですね。国産なので言語の壁を気にせずに使えるのはとても魅力的です。
RubyのJavaScriptとの違い
とりあえずドットインストールでRuby入門全32回をパパっと終わらせてみての感想。
JavaScriptはなんというか、すごい適当な言語だったんだなあと再認識。
破壊的かどうかなどの挙動の性質をきちんと記号として見えるようにメソッドが定義されているのはとてもわかりやすいなと。とうかJSだと破壊的かどうかってあんま意識してなかったし大体非破壊的で時々例外的に破壊的なメソッドが現れてる、というかんじでわかりにくいところは多かった。
JavaScriptでさんざ苦しめられたthis
句の扱い。RubyのClassだとちゃんとインスタンス変数が@hoge
という形で呼び出せるので、これは楽そう。JSはなぜthis
が変わり続けるのか。つらい。(そもそもクラスという概念がJSにはないのだけれど)
文法の違いなど
文法は細かい違いはいくつかあれど、感覚的には似ている部分がおおいし、エディタの補完とかもあるので特に気にならなそうでした。Rubyはシンプルで直感的な感じ。
javascriptだと'
と"
はあまり区別しないし、HTML側で"
をよく使うからという理由で'
を基本てきに使っていたけれど、Rubyになると変数をエスケープするかどうかできちんと使い分けるので基本的には"
を使っていくみたい。でもくせで'
を多用しそうなので、ここだけは注意したほうが良さそうだった。
とりあえずのとっかかりとして、ドットインストールは動画で勉強になるのでかなり良いなあと思いました。手を動かしながら勉強しようとするとブラウザのみで勉強が完結しないのはちょっと不満点でもあるけれど、基本的には雰囲気をつかむ程度の入門レベルだったので、それくらいでもいいのかな。