セカイモンの裏側

★毎週木曜日更新★ 海外ショッピングサイト『セカイモン』のブログです。私たちスタッフの仕事風景や日々の出来事など、     “セカイモンの舞台裏”とも言える日常を綴っていきます。

プログラミングテスト3

問3

http://www.sekaimon.com/pbapi/search.do?searchCountry=us&keyword=BMW

http://www.sekaimon.com/pbapi/search.do?searchCountry=us&keyword=nike

でアクセスしてもわかるようにJSON形式でおのおのの情報が取得できます。

 

http://153.126.153.193:8888/test3/

で開いたページのサンプルのようにしてください。

手順は

①検索した文字列をキーワードにAPIを呼び出す

②category1テーブルに入っているカテゴリのみをリストに表示させる

③BANの値が1の場合は「you can not buy」と表示する

 

サーバーアクセス手順はこちらを参考にしてください。

category1のデータの登録、更新は自由に行ってください。

デフォルトで入っているデータは削除しないでください。

sekaimon.hatenablog.com

 

プログラミングテスト2

FTP接続情報
Host(IP): 153.126.153.193
User: test1
Password: テスト時に通知します。
Port: 29870

File Transfer Protocol: SFTP 

 

WinSCPを使った接続設定例 

f:id:sekaimon-staff:20170308135116j:plain

 

■DB情報

phpMyAdmin からはいって

'database' => 'sample1',
'username' => 'sample',
'password' => 'pass',

 

■ヒント

Laravel Framework version 4.2.17を使用しています。

Laravelのリファレンスはweb上にたくさんありますので調べながら行っていただいて構いません。

 

------------------------------------------------------------------------------------------------

問1

http://153.126.153.193:8888/test2

上記URLにアクセス

 

現在商品IDしか画面に出力されていないので

商品名(item)と価格(price)を画面に出力せよ。

 

・編集対象ファイル

/var/www/test_8888/app/controllers/Test2Controller.php

 

 

------------------------------------------------------------------------------------------------ 

問2

商品名(item)価格(price)の値を入れてDBに登録できるようにする。

 

・登録先DB

DB: sample1

テーブル:test1

 

・編集対象ファイル

/var/www/test_8888/app/controllers/Test2formController.php

 

 

 

なぜ紙は白いのか

「なぜ一般的なテキストエディタをはじめ、デフォルトの背景が白いのか。」

背景に色のついたテキストエディタを使ってふと考えさせられる。

今でも小中学校では黒板を使い、暗い背景色のディスプレイが根強く支持されている。

スマートフォンが普及した21世紀が17年目となってなお、チョークと黒板なのか。

 

真っ先に思いつくのはコスト面である。

電子化されたディスプレイは確かに便利そうではあるが、おしなべて精密機器であるからして、耐久性においてアナログに劣る。

また、消耗品としてもチョークは、タッチペンやホワイトボード用のペンよりはるかに安い。ただ安いだけではなく、書こうとして書けない、といった心配もなく、一度や二度折れたとしても使用に支障をきたさない。

そして何より、夜空に星がきらめくがごとく、暗い中での明るい色は目立ちやすく、さらにチョークは一定の太めの線で書き続けることができる。

そして何より、強すぎる光が目に負担を与えるように、背景が明るい色であった場合は、光の当たり具合によっては見えにくくなるのではないだろうか。

 

当たり前になり過ぎたことで、疑問を持たなくなっていることが日常には数多くある。不便さばかり目につきがちな黒板であるが、存外に今でも一定の高い実用性を保っている。

見過ごされがちな長所に気づけたように感じられたのは、ひとつの収穫であった。

 

なお、紙が白いのは印刷の発色をよくするためであり、人工的に漂白しているからである。

未経験でもできるエンジニア実践テスト 問1と問2

サーバーのIPアドレス 153.126.153.193

アカウント:test1 パスワードは別途報告します。

ポート:29870

 

Windowsの場合はWinSCPMacの場合はFileZillaなどでサーバーに入ってください。

下記の画像を参考にしてください。

f:id:sekaimon-staff:20170308135116j:plain

 

問1

http://153.126.153.193:8888/test1

で見えるとおり

f:id:sekaimon-staff:20170208174111j:plain

IDと価格のデータしか見れないの

でそれを下記の画像のように商品名も表示する

 f:id:sekaimon-staff:20170208174433j:plain

/var/www/test_8888/app/views/html/test1.php のファイルをいじってお願いします。

秀丸ATOMなどのテキストエディタを使用すればわかりやすくできると思います。

 

 DBのアクセスは

phpMyAdmin

からはいって

'database' => 'sample1',
'username' => 'sample',
'password' => パスワードは別途報告します。

で入れます。

 

問2

f:id:sekaimon-staff:20170208174841j:plain

ここに商品名と価格の値を入れてDBに登録できるようにする。

 /var/www/test_8888/app/controllers/Test1Controller.php

を変更して改修してください。

laravelのクエリビルダーを使ったほうがいいかと思います。

データベース:クエリービルダー 5.1 Laravel

わからないことがあれば何でも質問してください。
すべて正解しなくても、そこまでの思考、どういうコードを書くのか
質問内容によって判定したいと思います。

 注意としては毎時0分にソースコードは初期化されます。

 

 

Google Feed APIが完全終了したっぽいので代替えを考えてみた

前職の人から次のような内容で連絡が来た。(ちなみにその会社内にITの知識を持つ者はゼロ)

----------------------------------------------------------------------

前職でサイト内のインフォメーション(社内向けとお客様向け)を管理するため、フリーのインフォ管理アプリを使用しそのRSSGoogle Feed APIで取得・表示していたのだが、ある時から取得(2017/1/13に確認)できなくなり今も取れていない。どうにかして。

----------------------------------------------------------------------

 


そこで代わりに使えるものがないか調べてみた。
まずは自分の手は動かしたくない(⇦超重要)ので作業工数を限りなくゼロにしたいのと自社内にシステムに詳しい人がいなくても運用できることを条件に探してみた。

1.phpで受ける
2.jsonで取得
3.YQL APIを使う
4.iframeを使う


1.phpで受ける
php使えないサーバーなのでダメ
社内にphpわかる人がいないと運用できない
工数ゼロじゃない


2.jsonで取得
ドメインなのでダメ
工数ゼロじゃない

 

3.YQL APIを使う
これもサービスが終了した時保守できる人がいないといけないのでダメ
工数ゼロじゃない

 

4.iframeを使う
工数ゼロに近い
サービスが終了することもない

 

結局最後の4を提案した。
jsonで取ることばかりを考えていたのですっかりiframeを使うという考えが抜け落ちていた。
何事も近視眼的になるのはよくないなーと感じた出来事。

どこまで引き返せるか

20年以上前から登山を楽しんでおりますが、楽しみの中にも注意すべきことの一つに、道迷いがあります。

今でこそGPSで自分の位置が分かりやすくなりましたが、それでもなお遭難の呼び水として注意すべきところ。

山に入る前には、現在地と行き先を知るために、地図とコンパスでの確認方法を押さえておきました。

 

さて、先週に引き続き、新しいホームページの作成業務にあたっております。

一度に完成まで進むことはほぼなく、コードを1文1文編集してはプレビューを行ない、エラーの出ない組み立ての模索が続きます。

エラーが検出された際には、何を変えたことでエラーとなったかが分かっていれば、引き返すことができます。

慣れればなれるほど見落としのリスクが増すもので、いかに注意していても、時としてエラー起こりえます。

その際いかに冷静かつ素早く立て直しを行なえるかは、今どの作業を行なっているかを把握できる状態に保っていることが大きく影響します。

何をどこまで着手するのか、今どこまで進んでいるのかを見失うことのないよう、作業に当たっていきたいものです。

アクセスが多いテーブル、クリティカルなテーブルをチェックする時

運用年数が10年以上もあると不要なテーブルから、いっぱいあってどれが一番アクセスが多いのかをロジックから見るのは途方もない時間がかかる。

 

そういう時に便利なSQLがありました。

 

SELECT COUNT (*), object_name
FROM v$sql_plan
WHERE operation = 'TABLE ACCESS'
GROUP BY object_name
ORDER BY COUNT (*) DESC;

でアクセスが多いテーブルがわかる

これで以外なテーブルがアクセスが多い事がわかった。。

 

あと、パフォーマンスチューニングをしていく上でデータ削減をしていく上で消すとクリティカルなテーブルがどれかを調査する必要があります。

 

そこで便利なSQLがこれ、

f:id:sekaimon-staff:20170207104033p:plain

これで各テーブルのプライマリーキーがわかるのである程度どのテーブルがどれだけ大事かがわかる。