Port:80が使用されていてapacheを起動できない

apacheを起動しようとしたらほかのプロセスが80番ポートを使用しているらしく起動することができない。

netstat -ano で使用しているプロセスを確認。

f:id:satomiO:20170508150048p:plain

PID:4とはなんじゃらほい……

4とはWindowsのSystemで動いているものだそう。 ふむ、止められないか……?

lovee7.blog.fc2.com

こちらのブログを参考に解決をもくろむも、World Wide Webサービスにチェックがないのでここが原因ではないことが判明。

念のため、チェックが入っていた.NET FrameWorkのチェックを外して再起動してみるもやはり効果はなくポート80は生きたまま。 ほかのサービスか……

blog.naosan.jp

今度はこちらのブログを参考にしてみる。

コンパネの管理ツールからサービスをチェック。 SQL Server……これが自動になっているのが怪しい。 SQL Serverのプロパティを変更して手動起動に。 これだけでは解決できなかったので、かつ停止にしてみる。

netstat -ano !!!!!

ポート80が解放されたああああああああ 長い戦いだった……

外部キーの設定でError:1215

あるテーブルにカラムとそのカラムに対応する外部キー制約を追加することになった。

BEGIN;

ALTER TABLE テーブルA ADD id int(10) AFTER quantity; ALTER TABLE テーブルA ADD CONSTRAINT テーブルA_ibfk_1 FOREIGN KEY (id) REFERENCES テーブルB (id) ON DELETE CASCADE ON UPDATE CASCADE;

COMMIT;

よく見る形だと思うが、これでエラーが吐き出されてしまった。

Error Code: 1215. Cannot add foreign key constraint

どうやらINDEXも張らないと外部キーが設定できないらしい……(使用しているのはMySQL5.6(InnoDB))

INDEXを張ることで外部キーが設定できるようになった。

JSライブラリを用いてパーティクルを飛ばす

web背景にパーティクルを飛ばすJSライブラリ

 

・particles.js

particles.js - A lightweight JavaScript library for creating particles

・particlejs

github.com

 

 名前が似ているが……

どちらもパーティクルの形やマウスクリック時の動作、色など、サイト上で動かしてみたコードを自動的に吐き出してくれる。

導入は比較的容易そうなので、よりリッチなページにしたい場合に用いることができる。

UI参考ページまとめ(リンク集)

baigie.me

liginc.co.jp

ohako-inc.jp

www.hp-stylelink.com

http://uxblog.meycou.com/entry/2014/01/05/153419uxblog.meycou.com

NativeゲームとWebゲームでのUIデザインの違いと目指す価値「海賊コロンブスと消滅都市の比較」 | GREE Creators Blog

design.kayac.com

techstars.jp

biz.moneyforward.com

ゲームUIブログ | ゲームUI画像の収集と考察

MySQLでupdate文を実行するとError:1175

MySQLでUPDATE文を実行すると、以下のエラーが発生した。 (Workbench使用のときに限る)

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences

実行したSQLはこちら。

ex.

UPDATE table SET count_max = floor(count/100) WHERE floor(count/100) < count_max; なお、countもcount_maxもPKではない。

このエラーが起きる原因は、大量の(主キー以外の)update/deleteをワークベンチから行えない制約になっているから。 一時的にこの制約を外してあげると実行可能。

SET SQL_SAFE_UPDATES = 0;

なお、元に戻してあげるには、このフラグを1にする。

SET SQL_SAFE_UPDATES = 1;

Smartyでfor文を書く

基本的にはforeachでなんとかなってしまうが、稀にfor文のようにループを行いたい場合がある。

phpとは違い、Smartyではsectionを使用。

{section name=i start=1 loop=13} {$example[i]} {/section}

startに初期値、loopにいくつまでループさせるのかを設定すれば、ループごとにi++をしてくれる。

Error Code: 1248. Every derived table must have its own alias

あるテーブルに対して以下のようなSQLを発行する。

select ( case when (select * from (select * , count(*) as count from SAMPLE where columnA = 1 group by columnB) where count >= 5) then ( select * from SAMPLE where columnC = 1 and columnD = 0 and columnE = 0 ) else null end)

このSQLのままだと

Every derived table must have its own alias

というエラーが出る。

「derived」は生成された、という意味。

意訳(ほぼ直訳だけど)すると、すべての生成されたテーブルはそれぞれのエイリアスを持たなければならない、とのこと。

派生テーブルにはエイリアスをつけてあげろよな!ということなので、

select ( case when (select * from (select * , count(*) as count from SAMPLE where columnA = 1 group by columnB) as SAMPLE_A where count >= 5) then ( select * from SAMPLE_A where columnC = 1 and columnD = 0 and columnE = 0 ) else null end)

にしてあげるとこのエラー自体はなくなりました。