2019年5月29日水曜日

IT人材の不足ですと!?

こんばんは、こうちゃんです。

https://z-channel.jp/cyber-u/y/03_1_pc/?utm_source=ycd&utm_campaign=01atpc&utm_content=45

<IT人材不足が深刻化>10年後、78.9万人不足に?!

だそうですが・・・当たり前ですよねえ。
今の日本を支配している無知・無能なのに金だけは持っている政治家の年寄層なんて、
USBがなんのかもわからない、パソコンなんて触ったこともない、なんて人間ばかりで、
そんなんが各大手の会社なども牛耳ってるせいで、
長年新興業界であるIT業界は冷遇され続け、
例えば、物を作って売る、サービスを提供する、などにはちゃんとお金を出しても、
なぜか仕事がはるかにはかどるようになるようなシステム制作には、最低賃金基準としか思えないようなお金しか払ってきませんでしたもんね。

筆者自身ずっとIT業界で仕事しているのでわかりますが、
社内の業務効率化にIT化、システム化は必須であると、それでIT会社に仕事を振ってくるくせに、例えば10人月の仕事を、200万円でやれ、とか言ってくるのザラですよ。

10人月、つまり、1人が10ヶ月働く仕事量、と、それで200万円!?
会社が社会保険も負担してたり、そもそも会社が人を使うのに管理部門もコストがかかってる、というのも含めて考えますと、一般に、社員の給与の倍、その社員がいるとお金がかかると言われています。
じゃあ、この仕事で考えれば、システム作る社員には、1月20万円、個人の得るお金は10万円計算ですよねえ。
それで、IT会社は朝から朝まで仕事が当たり前、
そりゃあ、そんな業界に誰も来ませんよね。
一部パソコンをいじる以外に生きる道がない人や、パソコンいじりが好きで好きでしょうがない人間がいるので、こんな暗黒の業界にも人がいますけど。

ほんとに社会のためと考えるのでしたら、機械のことなんて何もわからない無能高齢層や、ふんぞり返っているだけで実際には管理なんて何もしていない管理職なんてのは、全員給与は減っていく仕組みにして、
現場にきちんと給与をあげなくちゃ。
そもそも日本型のしょうもない年功序列型で賃金を決めてる時点で社会も終わりでしょうに。
人間なんて年とるにつれ能力は落ちてゆくのですから、若いほど給与を高くして、年に応じてどんどん給与減らさなくちゃ、新しいIT技術を学べたり身に着けられる若者たちが誰も生きていけませんけど。

そうした根本の原因から目をふせて、ただIT技術者が不足しますよー、て危機感だけあおっても、何も解決しませんね。

本格的にIT技術者不足を解消するのでしたら、
技術者の育成に時間がかかることも考えますと、今が最後のチャンスじゃないですかねえ。

まずはIT案件にはきちんと高額な仕事料が払われて当然、という社会の認識を強く植え付けさせ、当然その仕事を担うIT技術者には高額の給与、
そうして、世間で若者のなりたい職の上位にIT技術者が輝いて当たり前、な社会にしていかなくては未来が暗いのではないでしょうか。

こうちゃん

2019年5月23日木曜日

Deprecatedエラーを消す方法

こんばんは、こうちゃんです。

PHPでプログラミングをしていますと、やや昔に作ったシステムを、
最新のPHPバージョンのサーバーに乗せ換えて動かすこともよくあります。

このような場合に、PHPの古いバージョンでは使えていた関数等で、
今後廃止になる予定や、非推奨のものの場合、動かすと、
画面に、
Deprecatedエラー
が出てしまうことがあります(もちろんエラー表示の設定次第ですが)。

この非推奨エラーは、どうしてもPHPの仕様で、今後の警告のために設定されているものですので仕方ありませんが、
これが画面に出てしまう場合、色々と具合が悪いものです。
自分で使うシステムでも、他者が見るものや、一般ユーザーが見るものでも。

こうした場合は、サーバーのphp関連で設定に干渉できる場所を使って、画面に出てしまわないようにしましょう。
※もちろん直せるのならば、推奨のロジックに直せれば一番ですが、そう都合よくもいかないでしょうし

方法としてはいくつかありまして、

1.php.iniに書く場合
php.iniではそのサーバー上で動く全部のPHPの設定の基になる部分ですので、
ここをいじれるのであれば、今後のためにもそれが一番です。
error_reporting設定のところを探し

error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED

というように、Deprecatedエラーを非表示にします。

2.PHPソースに書く場合
レンタルサーバーなどでphp.iniを編集はできない場合で、そのPHP動作ファイルでだけ起きるような場合には、もういっそ、そのPHPファイルの文頭で宣言してしまい、そのファイルでエラー表示されないようにしてしまうのも手です。
<?php タグで記載している部分に

error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED);

と記載します。

3.httpd.confや.htaccessに書く場合
php.iniは操作できないものの、そのサーバー上で動く多くのPHPファイルでエラーが出てしまい、一括で直したい場合は、
もしもapacheの設定ファイルがいじれるのならば、httpd.confに
php.ini同様、httpd.confもいじれないなら(レンサバは多い)、
.htaccessに

php_value "error_reporting" "E_ALL & ~E_NOTICE & ~E_DEPRECATED"

を記載します。

このいずれかの方法で、今後の
Deprecatedエラー表示は抑制できます。

※.htaccessやphpファイル文中に記載して設定した場合は即時反映されますが、
php.iniやhttpd.confを変更したときにはApache(webサーバ)の再起動が必要です。注意してください。

こうちゃん

2019年5月12日日曜日

セキュリティ緩すぎっ!!

こんばんは、こうちゃんです。

またちょっとFacebook関連で衝撃のニュースが、
ってか、前にも会員情報大量流出やらかしてたのに・・・

またもやっちまったんかい!?

【警告】またもフェイスブックの“超ずさん”セキュリティ問題が発覚! 6億人のパスワードを社員が見放題… 今スグ対処を!
https://tocana.jp/2019/05/post_94810_entry.html

いやいや、これ、特に対処も漏れた会員相手に補償もしてないけど、
当然社員の中にはこの情報全部保存して業者や犯罪者に売ったヤツがいるだろうし、
少なくともこの漏れた人達にはなんらかの補償すべきでしょ、
プライバシー駄々洩れ、場合によってはそのパスワードから個人情報とか抜かれてる人もいるだろうし。
うーん、こんだけIT化が進んでも、結局運用面で意識が低いとこんなことも起こるんですね。

そして、ツッコミどころとしては、
パスワードを社員が自由に見れる状態だったのは論外としても、
そんな状況で、第三者が見てもパスワードがすぐにはバレないように、ハッシュ化(元のパスワードが復元不可能)か、せめて、暗号化(一定の暗号化法則が判明すれば復元可能)くらいはしていなかったのかと??
それ、社員が見れる状態じゃなくても、システム部の悪いヤツが小遣い稼ぎに6億人分のID、パスワードを悪の組織に売ったら稼ぎ放題じゃないの、と。
ネットバンクとかにも同じアカウント、パスワード使う人間は多いものですから、こういった個人情報は、簡単にリスト攻撃に悪用されますから、セキュリティは高くなければならないというのに・・・勘弁してくださいよ、こんな大企業が。

こうちゃん

2019年5月9日木曜日

FuelPHPでindex.phpを省略する方法

こんばんは、こうちゃんです。

プログラム言語のひとつで、htmlとの親和性の高さで、サイト制作によく使われる言語のPHPで、高速かつ便利な機能が充実していて近年人気の高まっているフレームワーク、
FuelPHP
このFuelPHPを用いて開発をする時に、
最初にぶつかりがちな壁のひとつの解決方法を解説します。

FuelPHPをサーバーに入れて、初期設定を済ませて、webで見られるようにした時、
最初、URLは、
http://ドメイン名/index.php/コントローラ名/アクション名

のように、URLの中でドメイン名の次に、動作ファイルの名前である、index.phpが入ってしまいます。
通常のサイトで、PHPファイルを配置、見えるようにした時の
http://ドメイン名/index.php
でしたら見えていてもいいですし、外のページも、
例えば、
http://ドメイン名/access.php
みたいに各ページに名前がつくのでindex.phpも見えていても構わないですが、FuelPHPの場合、その続きにコントローラ名、アクション名がつくので、
すべてのURLに変わらずindex.phpがつくのはあまり見栄えのいいものでもありません。
ですが、初期で勝手にこのindex.phpを抜いて

といったURLにアクセスしてもエラーで画面が表示されません。
この場合の、index.phpを除いて
http://ドメイン名/コントローラ名/アクション名
としてアクセスするための方法の解説です。

変更すべき点は3ヶ所で、

1.
fuel/app/config/config.php
の中ですでに用意されていますので、コメントアウトを削るだけです。

 * Set this to 'index.php if you don't use URL rewriting
 */
- //'index_file' => false,
+ 'index_file' => false,

2.
/public/.htaccess
の同じく、すでに用意されているコメントアウトの#を外すだけです。
#Remove index.php from URL
- #RewriteCond %{HTTP:X-Requested-With} !^XMLHttpRequest$
- #RewriteCond %{THE_REQUEST}               ^[^/]*/index\.php [NC]
- #RewriteRule ^index\.php(.*)$         $1 [R=301,NS,L]
+ RewriteCond %{HTTP:X-Requested-With}  !^XMLHttpRequest$
+ RewriteCond %{THE_REQUEST}                ^[^/]*/index\.php [NC]
+ RewriteRule ^index\.php(.*)$          $1 [R=301,NS,L]
コメントアウトを外すだけで対応できます

3.
.htaccessを有効に
これはサーバー設定で、すでに有効化してあれば対応しないで大丈夫です。
上記1.2.を設定しても動かない場合、この対応をしましょう。
まずはapacheの設定
linuxサーバーならばたいていこのパスにある設定ファイル
/etc/httpd/conf/httpd.conf
を編集

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

のように、フォルダ設定がある場所で、NoneをAllに変更しましょう。
-AllowOverride None
+AllowOverride All

この変更後、保存して、webサーバー再起動します。
service httpd restart
レンタルサーバーなどでコマンドラインを操作できない場合は、そのレンタルサーバーのサービスごとにあるであろう設定変更の手順やサーバー再起動の箇所を探してください。

以上の対応で、以降Fuelプロジェクトで、

http://ドメイン名/コントローラ名/アクション名

のように、index.phpなしでアクセスできるようになります。
FuelPHP導入時によくハマるあるあるですので、どうぞご参考にしてください。

こうちゃん

2019年5月7日火曜日

target="_blank"でなくjquery制御でリンクを別ウインドウ開き

こんばんは、こうちゃんです。

htmlを使ってサイトを作っていると、必ずといっていいほどある、
外部リンク
多くの場合、外部リンクに飛ばす場合は別ウインドウで開く、というのがweb制作の定番ではありますが、例えば、サイト作成の途中でその挙動を変えたくなることがあるかもしれません。
そうした場合、通常のhtmlでリンクを製造しますと

<a href="URL" target="_blank">サイト名</a>

として別ウインドウ開きのリンクは作りますが、この場合、
例えばサイト中に多くのページがあり、大量にリンクがあった場合、書き換えが大変です。
もちろんソース全部に文字列の置換等はかけられますが、その後再度関係ページを全部アップし直しなど、手間がかかることは間違いないです。

そうした時に、全部のリンクの挙動を一括で管理するのに、
例えばjQueryを用いておくと大変便利です。

まずは定番、ヘッダでjQueryを読み込んでおきます。
<head></head>間に

<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>

の記述をしてGoogle提供のjQueryライブラリを読んでおきます。

その上で、
script表記中か、読み込んでるJSファイル中に
$(function(){
        $('.クラス名').click(function(){
        window.open(this.href, '_blank');
        return false;
        });
});
を記載すれば、htmlファイル中で、例えば、

<a href="URL" class="宣言したクラス名">サイト名</a>

と書いたリンクに関しては、この挙動、今回は別ウインドウで開く、
ということになります。
また、もしも挙動を変えたい場合、簡単に一か所書き換えるだけ、

        window.open(this.href, '_blank');

の、_blank を、例えば、_self にすれば、
これまで新規ウインドウで開いていたリンクが一斉にそのウインドウ上に、つまり、普通の画面遷移に切り替わります。
システム、サイトが大きくなればなるほど途中で変えるのは大変なものですので、こういった工夫が重要になってきます。

こうちゃん


2019年5月4日土曜日

スマホ向けのファビコン設定

こんばんは、こうちゃんです。

今回はサイト作りの際に見栄えに役立つ、
ファビコン(favicon)の情報紹介です

ファビコンとは、元々パソコンのブラウザ上でブラウザ上部のタブに表示されるアイコン画像のことで、ブックマークした時などにも表示されます。
こちら、スマホでも、仕様は異なりますが、
ホーム画面にお気に入りでショートカットを登録した際などにはスマホ向けファビコンが表示されることとなります。
ファビコンは通常のWebサイトとは別に、スマホ向けの指定をすることができます。

画像は、PC向けですと、.icoの拡張子で指定した画像ファイルになりますが、
スマホ用でしたら、.pngのファイルで用意することになります。
そして、今のメジャーなスマホ用OSですと、iPhone、Androidがありますが、
それぞれに対して、ファビコンの指定は以下のようなタグをhead要素内に記載する方式になります。

<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="apple-touch-icon" href="apple-touch-icon.png" sizes="180x180">
<link rel="icon" type="image/png" href="android-touch-icon.png" sizes="192x192">

記載はこのようなタグを書き、画像は参照できれば大丈夫ですので、
href以降のパスは好きなようにサイト内に配置して構いません。

このようにすれば、それぞれのスマホでお気に入りした時に、
指定の画像がアイコンとして表示されます。

こうちゃん

2019年5月1日水曜日

新時代の画像規格webp

こんばんは、こうちゃんです。

せっかくの技術系のITエンジニアでマニアックな研究オタクでもあるので、
ちょっと最近出てきたファイルの種類でひとつご紹介。

webpファイル

こちら、googleが提唱する新規格の画像ファイルでして、

WebP(ウェッピー)は、米Googleが開発しているオープンな静止画フォーマット。ファイルの拡張子は「.webp」。

ウェブサイトのトラフィック量軽減と表示速度短縮を目的としており、インターネットのWebページで広く使われている非可逆圧縮のJPEGや可逆圧縮のGIF、PNGの置き換えを意図する規格である。JPEGとは異なり、非可逆圧縮でもアルファチャンネルを扱える。

Googleの示した事例では、ファイルサイズは非可逆圧縮モードで(同一画像、同等画質の)JPEGと比較して25-34%小さくなり、可逆圧縮モードでPNGと比較して28%小さくなるとしている。また22%のファイルサイズ増加でアルファチャネルを追加できるとしている。可逆圧縮は、エンコードはPNGよりも時間がかかるが、デコードはPNGよりも高速であると主張している。

とのことで、google開発による画像フォーマットで、主にweb重視のgoogleらしく、画像ファイルのサイズの低容量化ができているようです。
まだ既存のwebサイトを見る限りは低容量で高速表示を目指すサイトで使われているのはjpgファイルが多いですが、今後普及も進むかもです。

ただ、他の画像とのフォーマットの違いで、混在している現在では若干不便なところも否めません。

今のところ、例えばwebpファイルをjpgファイルに変えて使う場面などでは、単に拡張子を変えるだけでは対応できず、技術的に変換する必要があり、各種ソフトウェアや、

https://convertio.co/ja/

のようなオンラインの変換サービスなどを使う必要があります。

まだこれから広がりゆく技術だと思われますので今の内に把握、チェックしておくことをオススメします。

こうちゃん