明日も楽をするために

めんどくさがりなITエンジニアが書くメモ帳

Mysqlの最大接続数の設定

作ったサービスのMysqlの接続数の設定とか全然してかったなぁ~と思いつき色々調べたのでメモ(笑

現在設定してある最大接続数の設定確認

show global variables like 'max_connections';

起動してからこれまでの最大同時接続数

show global status like 'Max_used_connections';

スレッドの色々な状態

show global status like 'Thread_%';

↑でThreads_createdが異常に多い場合はキャッシュの数が足りない
(私のでは2万ぐらいになってた。キャッシュの設定はしていなかったので)

キャッシュ接続数の確認

show variables like 'thread_cache_size';

/etc/my.cnfに以下を追加して再起動

[mysqld]
thread_cache_size = 100

即時反映なら

set global thread_cache_size=100;


キャッシュサイズの値は最大同時接続数の1~3倍ぐらいがいいかも

SVNを普段使っている人がWindowsでGitインストールしてみた

普段はSVNを仕事で使っていますが、ここ最近はGitが流行っていてSVNの肩身が狭いです。

codezine.jp
ここの記事によると


ソースコードの管理では、ほとんどのユーザーがGit(69.3%)を使用しており、SVN(36.9%)がそれに続いている”


SVN使用者が減ってきているのを感じます。でもそこまでSVN嫌いじゃないけどね!


github.com
しかしイケイケな開発者や、会社は当たり前のようにGithub使ってますし、確かにGit使えないとエンジニアとして遅れている感じがします。

個人的に作ったサイトはLinuxでGitを使ってソース管理していますが、Androidのソースを管理しようとした時にWindowsでGit使えないと色々めんどうだなと思ったので使う方法を探しました。

ちなみに2、3年前にも某Gさんに「エンジニアはGitぐらい使えないと駄目だよね」言われたのを思い出した( ˘ω˘ )なつい・・・・



msysgit.github.io
とりあえずWindows標準っぽいのを今回はインストールします
英語なので忘れそうなのをメモ

f:id:makoto1212:20150417001319p:plain
上二つはショートカットの設定なので、お好みで初期ではチェックがAdvanced Contextに入ってますが、普通のが良いのでSimple Contentで右クリックメニューに追加する項目をチェックします。

f:id:makoto1212:20150417001322p:plain
git bash以外で以外で使うかの設定。これもシンプルなのが良いので一番上のgit bash onlyを選択

f:id:makoto1212:20150417001324p:plain
最後に改行の設定。Windowsで使うので自動でLFをCRLFに変えたりしてくれるが、いまどきのはエディターが複数の改行コードに対応しているので特に変換なしの一番下を選択

f:id:makoto1212:20150417002517p:plain
インストール後に右クリックメニューに先ほど選択した項目が追加されます


f:id:makoto1212:20150417002521p:plain
Let's enjoy Git life!!





追記
ソースコードのインデントは、Tab派(45.0%)がスペース派(33.6%)を上回る結果となった。”

なんでじゃ!!スペースの方がいいに決まっtくぁwせdrftgyふじこlp;

IT業界の常駐について

この記事は深夜のノリ30%と、リリース後の疲れ70%で出来ています。

良いこと(少し)書いたので、ぶっちゃけます(笑
IT業界の新人の方の今後の参考になるかな~

この業界の会社は大きく分けて二つあると思っていまして、一つは常駐系の会社、もう一つは社内開発系の会社です。

私は常駐系の会社に勤めていました。たぶんIT業界的には常駐系の会社の方が多いのではと思います。

常駐は他の会社に行って働くことですが、知らない人に言わせると派遣みたいなものです。派遣とは違うんだと力説されたこともありますが(笑



常駐する際は会社にもよりますが、常駐先の会社の面接を受ける必要があります。そもそも正社員であるはずの人間が別の会社に行って何故面接をしなければ行けないのかずっと疑問に思っていましたし、これでは正社員になった意味がないなと思っていました。



そもそも常駐には限界がありまして、年齢が高くなると面接が受かりにくくなります。年齢が高いと言うことは、それだけ技術者としての経験が豊富なはずですが、まず受かりません。

原因は常駐する会社で「作業の支持をする人」<「作業をする人」の年齢が高くなって指示が出しにくくなるからです。自分より年齢が高い人に雑用みたいに作業を指示することは難しいですからね。


私は常駐がメインの会社には将来性がないと思っています。そもそもつい最近も特定労働派遣(常駐のこと)が廃止されるなんて話もありました。実際は廃止にはなりませんでしたが・・・この先どうなるか予想もつきません。

これでもマイルドに書いた内容です。

退職しました

私はこの度、5年間勤めた会社を退職することになりました。

//良いことを書く

20歳から働き始めて、1人で案件をこなしたり、部下を持ったりと、同じ年齢の人達が出来ない経験を得ることができたと思います。

その分もちろん辛い経験を何度もしましたし、くじけそうになる時もありましたが最後までやり遂げることが出来たと思います。

IT業界に入って良かったと思うところは、その技術を元に色んな人と交流できたことですかね。プライベートでもそうですし、仕事でも年齢の差を越えて色々な意見をまじえたり、話し合いができるのは楽しいことです。

新しい職場でも切磋琢磨し、より良いものを作っていきたいと思います。

自宅サーバー自動起動用シェルスクリプトメモ

サーバーの自動起動用に

/sys/class/rtc/rtc0/wakealarm

に時間をタイムスタンプで指定する。
上書きする際は0で初期化しないと書き換えられない?

crontabに設定してシェル実行後に起動する日程を設定して、そのあとでシャットダウン

例:
0 4 * * * sh /site/auto_power.sh

rootで実行しないとシャットダウンコマンドが動かないので注意

#!/bin/sh

#初期化
echo 0 > /sys/class/rtc/rtc0/wakealarm

#該当の時間が何曜日か取得する
day_of_week=`date -d +1hour +%w`
if [ $day_of_week -eq 6 ]; then
    #土曜日
    #4時設定で14起動
    echo `date +%s -d +10hour` > /sys/class/rtc/rtc0/wakealarm
elif [ $day_of_week -eq 0 ]; then
    #日曜日
    #4時設定で14起動
    echo `date +%s -d +10hour` > /sys/class/rtc/rtc0/wakealarm
else
    #4時設定で18起動
    echo `date +%s -d +14hour` > /sys/class/rtc/rtc0/wakealarm
fi

#設定内容の表示
#cat /proc/driver/rtc
/sbin/shutdown -h now

ホームページの表示速度を計測してみる

お前に足りない物、それは!情熱、思想、理念、頭脳、気品、優雅さ、勤勉さ!そして何よりもー!

f:id:makoto1212:20150312203147p:plain:w300
速さが足りない!!


なので今日はGooglePageSpeed Insightsを使って作ったのサイトのスピードを計測しようと思います。

使い方は簡単でPageSpeed InsightsにアクセスしてURLを入れて分析ボタンを押すだけ!すると・・・・

モバイル
f:id:makoto1212:20150312203608p:plain
パソコン
f:id:makoto1212:20150312203615p:plain

いや分かってたよ・・・画像は元サイズのまま使ってたしな。モバイルは対応してないので、こんなもんでしょ・・・

なので書かれている通り、画像サイズを圧縮して最適化してみた!!
↓以前書いたこれを使ってね。

すると・・・

f:id:makoto1212:20150312204023p:plain
青までにはいかなかったけど、まぁまぁいいんじゃないかな?キャッシュは運用的に辛そうだし。モバイルは今のところ対応するつもりはないので、ここには載せません。

ただ、Googleの検索はSEO的にモバイルに対応しないと順位が落ちるそうです。それを裏付けるようにGoogleウェブマスターからモバイル対応しろってメール来ましたね。

Javaの適切なバッファサイズとは?

例えば以下のようなコードがあったとして

byte[] data = new byte[1024];
while ((size = fis.read(data)) != -1 ) {
    fos.write(data, 0, size);
}

byteに指定する値はいくつが適正なのか?

ちなみにBufferedInputStreamなどを使う方法だと、デフォルトのサイズはJavaのバージョンによって異なるらしい(512~8024ぐらい??)

Java ファイルコピー(バッファサイズを変更) / Chat&Messenger
ここによると1MBが適切らしい。ネット検索すると1024のサンプルコードが多いけど、それはテキストを対象とした場合かなと思う。

zipなどを読み込もうとすると、だいたい容量で数十MBから数百MBはすると思うので1024だと1KBで、どう考えても時間がかかる。

//1MBの指定
byte[] data = new byte[1048576];

1024で指定してるコードが多いということは最近の人はJavaのコードをネットにあげてないのか。それともみんなコピペコードばかりなのかな。

Githubで検索すると、こんな感じで書いてあるコードがそこそこある。