中小企業に勤めるITエンジニアの徒然日記

中小企業に勤めるITエンジニア(三十路女子)が日々のよしなしごとや、IT技術についての記事をつらつらと書いていきます。

私は大学を卒業して小さなソフトウェア開発会社に入社して、その後、転勤を機に今の会社に転職しました。なので今の会社が2社目になります。

1社目は6年ちょい過ごして、現在の会社は4年近くになります。上司や同僚に認められて、年収は前の会社で500万だったのが、今は680万まで増えました。年収だけで転職に成功した、とう言えるわけではないですが、1つの目安になるとは思います。今の会社は業績も安定していますし、当分は転職することはないと思います。

しかしながら現在はIT業界は売り手市場と言われています。オリンピックに向けた整備や、銀行系の基幹システム刷新など、どこもITエンジニアが足りていない状況と聞いています。

もしかしたら今より良い条件の会社があるかもしれないですし、そうじゃなくとも自分の市場価値は常に把握しておいたほうがよいと考えて、転職サイトに登録することにしました。

今すぐ転職を考えてなかったとしても転職エージェントからもらえる情報は貴重ですし、多少の時間は使いますが損はないと思います。

というわけで次回は登録したサイトとそれぞれの長所短所をあげて見たいと思います。
このエントリーをはてなブックマークに追加

当たり前なんですけどね。

経験則としてそういう傾向があるなと感じるだけで、もちろん仕事ができる人でも敬語が上手く使えない人もいますし、その逆もありますが、やっぱり仕事ができず、敬語も上手く使えない人は悲惨だなとおもいます。

私も敬語が得意で秘書検定◯級レベルですってわけではないので偉そうなこという立場にはないですが、あまりにも基本的なことができてないので言わせて欲しい。

で、同僚にひどく不得意な人がいます。いや、不得意というかそもそも敬語を使おうと思っていない人がいまして、正直、恥ずかしいきらやめてほしいなぁとおもいます。

恥ずかしいことその1

社外の人に対して自社の上司のことをさん付けで呼ぶ。
人の呼び方は自分中心で考えているので上司、先輩はさん付け。そして後輩にはくん付けで呼びます。

「◯◯については××さんの承認が必要なので承認され次第、発注します」
みたいな感じです。

- 違和感ないよ
でも話している相手は社外の人です。

- 発注ってことは業者とか下請でしょ?いいんじゃないの
社外であれば相手が業者だろうが関係ないと思いますが、そこを譲ったとしてもこの人はお客さんに対しても同じです。

- 仲良かったらいいんじゃないの
それは一理ありますね。仕事は人と人でするものだと思いますし、くだけて話せる相手、ということであれば。
でもこの人と電話先の人は別に仲が良いというわけではなく、この人は誰に対してもこうです。

恥ずかしいことその2

社外の人でも年下だと分かったら「くん」付で呼ぶ。

これもお客さんだろうが業者だろうが関係なく、ですね。社会人なんだから年齢基準ってなんかね、、と思うわけです。

仕事ができる、と思える人でもそういう人は少しガッカリしますし、仕事ができない人に対してはさらに恥ずかしい、と思ってしまいます。

その人のことをよく知らなかったとしても、呼び方が上手くできてなかったら「この人仕事できる人じゃないな」と思ってしまいます。

「おります」とか「いらっしゃいます」とかの謙譲語、尊敬語を間違えている人や、電話を「もしもし」で取る人もちょくちょく見かけますが、やっぱり一番気になるのが「社外の人に対する自社の人の呼び方」です。
このエントリーをはてなブックマークに追加

2016年10月16日に、関東の某大学にて情報処理技術者試験のITストラテジストを受験してきました。

例によって午前1は免除のため、午前2からの受験でした。

9時30分に会場に到着し、ベンチに座って午後2のサンプル論文を読みながら周りを確認。相変わらずおじさまだらけ。いや自分の年齢を考えるとお兄様と言った方が適切か。

午前2
25問出題されます。25問あるうちの15問正解すれば合格な上、15問くらい過去問から出るので過去5年分の過去問をやっておけば余裕で通過できます。

4択なので分からないところも最悪4分の1の確率で当たります。

時間は10時50分開始で11時30分終了の40分。

過去問はバッチリやっていたので開始10分で終了。こんな問題で本当に足切りされる人いるのだろうか。基本情報とか応用情報なら分かるが、ITストラテジストを受験する人は他の区分をいくつか合格してる人てある程度試験慣れしてるだろうから1割も落ちない気がするのだが。

早く終わっても午後と違って途中退席できないのが辛いところですが、ともかく残り30分は午後1、午後2に備えて目をつむって頭を休めることにしました。

午前2の試験中に消しゴムがないことに気づいて昼休みにご飯を食べた後買いに行きました。大学から一番近くのコンビニでも徒歩で15分くらい。山を下るので結構大変でした。最後の1個をゲット。助かった。

午後1
12時30分から14時まで1時間30分。4問の中から2問選択して解きます。

最初の10分で4問全て問題をざっと読んで1問目と4問目がいけそうだったので選択。

あとは1問30分ずつかけて解いて、残り20分で退出。時間が足りなかったことはなかった。

13時40分から午後2の説明が始まる14時15分まではひたすら休憩。甘いココアを飲んで、頭を休ませます。午後1、2の試験直前は悪あがきをして新たに詰め込むよりもひたすら頭を休めて最高のコンディションに持っていくことが重要ということをこれまでの経験で学んでいたのでひたすら休憩。

午後2
14時30分から16時30分まで2時間、3問から1問選択。
何問目か忘れたけどビッグデータを活用した革新的なサービスについて論述した。1番書きやすそうだったので迷わず選択。
対象システムの内容シートを5分で記入して、ア・イ・ウの3つ設問があるうちのイから書き始めた。これは参考書に書いてあった方法。イ→ウ→アの順番で書くと書きやすいとのこと。

この方法はハマった。いつもアから書き始めたのはいいものの、イで展開が変わってしまってアの内容と矛盾してしまうことが多々あった。この方法だとそのような書き直しがないので時間に無駄がない。

そんなこんなで2時間でなんとか書き終えることができて、論述展開も矛盾なく無理もなく書けたかなと思う。

時間いっぱいまで使ったせいで「はい、終えてください」のタイミングで、どの問題を選択したかのマルをつけてないことに気づき、回収前にギリギリマルをした^_^

総論
問題にマルをしてないなどのつまらないミスがなければ合格してるんじゃないかと思うくらいの手応えでした。

とはいえ合格率的には30人くらい部屋にいた中の5人しか受からないと思うと絶望的な気分になりますが、これまでの試験でも同じだったのでやっぱり合格するんじゃないかと思っています。
このエントリーをはてなブックマークに追加

仕事でPHPで作られたあるWebのパッケージソフトウェアを使うことになりました。

一般的にパッケージって、汎用的に機能が作られていて、拡張しやすく、盛りだくさんに作られているので、専用のソフトウェアよりも遅いと思うのですが、このパッケージも同じく遅い。。


画面遷移をするのに毎回2〜3秒かかってしまいます。

いろいろと検証した結果、単純に処理量が多くてCPUがボトルネックになってる模様。


PHP5.6を使っていたので、処理速度が2倍以上になると言われているPHP7.0にアップグレードすることも考えたのですが、OPcacheを使うのが効果的という情報を見つけて早速試してみました。


PHPはインタプリタなので実行時に1行ずつ解析してオペコードに変換されますが、OPcacheはこのオペコードを最適化してキャッシュする代物です。


適用した結果、毎回2〜3秒かかっていた画面遷移が1秒弱でサクサク動くようになりました。


すごい!!

http://php.net/manual/ja/book.opcache.php

↑導入方法等

かなり効果があるので全体的に遅い場合は適用してはどうでしょうか。というかデフォルトでOPcacheを適用していてもいいと思う。

デメリットとしてはプログラムを修正した場合の反映にタイムラグができてしまう、というところでしょうか。

これもopcache_resetなどの関数を呼び出すプログラムを用意しておいて、プログラム修正後はそのプログラムを叩いて強制的に反映させる、という手もありますし、自動反映させる設定もphp.iniで変更できるのでキャッシュされることがわかっていればいくらでも何とでもなりそうです。

このエントリーをはてなブックマークに追加

2016年度の秋期試験でITストラテジストを受験することにしました。

2015年度春期試験でプロジェクトマネージャに合格しているため、今回は午前1が免除です。

なので受験するのは

・午前2
・午後1
・午後2

の3つの試験になります。

高度試験のどの区分でも同じですが、午前2の試験を通過しないと午後1、午後2の採点はされませんし、午後1を通過しないと午後2の採点はされません。

とはいえ午後2は過去問を何度かやっておけば簡単に通過できるので、難関は午後1、午後2になるでしょう。

というわけで午後1、午後2の勉強に向けて、参考書を購入しました。私はiPadを持ち歩いているので、これのKindle版を購入して電車の中でも勉強できるようにしました。



10/16(日)まであと4週間。こんな感じのスケジューリングでいきます。

1週目:まずはこの参考書を1週間かけて読み切るところから始めます。

2週目:論文の元ネタ作成。過去問をもとに10種類くらい準備する予定。

3週目:午後1の過去問を解く。

4週目:午前2の過去問をパーフェクトにし、午後1・午後2の復習


がんばるぞ!
このエントリーをはてなブックマークに追加

動作環境:CentOS7.2, PHP7.0

PHP5.4から「ビルトインウェブサーバー」という機能が標準装備されています。


一言で表現すると、「開発支援用のしょぼいWebサーバ」です。

ポート8888で、/var/wwwをドキュメントルートとしてWebサーバを動作させたい場合は、以下のコマンドで起動させます。
[user@testserver]$ /usr/bin/php -S localhost:8888 -t /var/www
localhostだと外部にlistenされない

[user@testserver]$ ss -an | grep 8080
tcp    LISTEN     0      128    127.0.0.1:8080                  *:*            

自マシン以外からアクセスさせたい場合はlocalhostの部分はIPアドレスにする必要があります。

[user@testserver]$ /usr/bin/php -S {ipaddress}:8888 -t /var/www
外部にlistenされていることがわかります。
[user@testserver]$ ss -an | grep 8080
tcp    LISTEN     0      128    {ipaddress}:8080                  *:*            

このエントリーをはてなブックマークに追加

PHP7.0がリリースされてから10か月以上経ちました。
PHP5.5も2016年6月にサポート対象外となり、5.6もあと1年を切りました。

というわけでいま新規でPHP環境を構築するならPHP7.0です。

CentOS7.2にPHP7.0をインストールしてみました。

リポジトリの追加
sudo rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/7/x86_64/e/epel-release-7-8.noarch.rpm

sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

PHP7.0のインストール
sudo yum install --enablerepo=remi,remi-php70 php php-devel


以上、かんたんですね。
このエントリーをはてなブックマークに追加

少しはまってしまったので備忘録

ググるとmy.cnfに以下を設定する方法がたくさん出てくるが、最近のMySQLではこのやり方ではできない
 
[mysqld]
log=/var/log/mysql-query.log
「log」は使えない

再起動するとエラーとなる

$ sudo systemctl restart mysqld.service
Restarting mysqld (via systemctl):  Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
                                                           [FAILED]
失敗のログが出力される
$ sudo journalctl -xe
-- Unit mysqld.service has begun starting up.
Sep 16 08:25:38 general-web mysqld[16544]: MySQL Daemon failed to start.
Sep 16 08:25:39 general-web systemd[1]: mysqld.service: control process exited, code=exited status=1
Sep 16 08:25:39 general-web systemd[1]: Failed to start SYSV: MySQL database server..
-- Subject: Unit mysqld.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit mysqld.service has failed.

正しい設定は以下の通りlogではなくgeneral_logとgeneral_log_fileを使用する。

[mysqld]
general_log=1
general_log_file=/var/log/mysql/sql.log

このエントリーをはてなブックマークに追加

いままで私はリダイレクトはGETメソッドしかできないと思っていました。

まさかリダイレクトでPOSTメソッドを送る方法があったとは。


今でも302リダイレクトと言ってしまいますが、HTTP1.1からはリダイレクトの用途に応じてHTTPステータスが303と307の2つに分かれています。

HTTPステータスコード説明用途
303See Otherたとえば、登録処理後に一覧画面へ自動遷移する、などに使用する。
307Temporary Redirect
従来の302と同じ。一時的にリソースが移動されている場合に使用する。

301, 302の場合は元リクエストをPOSTで送信していたとしても、307の場合は元リクエストがGETであればGET、POSTであればPOSTで送信されるようです。

ちなみにPHPでheader関数を使ってリダイレクトする場合はデフォルトのHTTPステータスは302になるため、307になるようにしてやる必要があります。

やり方は簡単。header関数の第二引数、第三引数を設定します。
header("Location: http://example.com", TRUE, 307);
このエントリーをはてなブックマークに追加

mod_rewriteを設定しようとしてハマってしまったので備忘録的に残しておく。

Apache2.2の場合
<Directory "/var/www/html">
    Order allow,deny
    Allow from all
</Directory>
Apache2.4の場合
<Directory "/var/www/html">
    Require all granted
</Directory>
新規でApacheインストールするのは2.4の方が多いのに、未だにネットで調べると2.2の書き方が上位に出てくるのでハマりやすいポイントかもしれない。

しかも普通にApacheは起動するので書き方が間違っていることに気づけない。
なので起動する前に以下のコマンドでチェックするのがよいかもしれません。
apachectl configtest
上記はCentOSの場合、Ubuntuだと以下。
apache2ctl configtest
このエントリーをはてなブックマークに追加

↑このページのトップヘ