ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

iPhone7のシャッター音を無音化できる方法

2016-09-20 17:06:26 | ネットワーク
だそうな。

iPhone7のシャッター音/スクショ音を消せるiOS 10の裏技
http://gadget-shot.com/hacks/36850

もっとも、iPhone持ってないんだけど(^^;)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

スケジュール駆動開発のほうが、炎上しやすいはず・・・

2016-09-20 13:32:29 | Weblog
スケジュールを先に決めて、それに基づいて開発を行っていくスケジュール駆動開発の場合、
一般に炎上しやすくなると思う。


 というのも、(一般論として)スケジュールは、みんな守ろうとする。
 その場合、
   ・よく分からないけど、大事な部分
   ・よく分かっていて、簡単な部分
 とあると、「よく分かっていて、簡単な部分」を先にやれば、その間はスケジュールを
守れるので、「よく分からないけど、大事な部分」を後回しにして、簡単な部分を先に
行う。これがGUIとかになる。


 しかし、後回し(=先送り)にしたら、問題が解決するというケースは少なく(理解が
進んで問題が解決するケースも無いわけではないが、少ない)、多くは、その問題は残った
ままとなる。つまり、よく分からない、大事な部分は、スケジュールの後のほうに濃縮される。
 これらはよく分からないので、計画通り行かない。それがいっぱいになれば、計画通り
行かないものが積み重なるのだから、スケジュールを守れない確率は、劇的に高くなる・・・

・・・のみならず、この時点では、簡単な部分は、すでにできている。
そこに、よく分からないけど、大事な部分をやったら、実は思い違いで、簡単な部分も
修正が入るとなると、その修正部分の工数が増加するので、スケジュールは守れなくなる。

ここで、スケジュールは破綻し、大事な部分の見込み違いが続くと、炎上する。

なので、スケジュール駆動にすると、(大事な部分を後回しにして、そこで問題起こすと
いままでやった部分の修正もしないといけなくなるので)炎上しやすくなる。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

<スマホ失明>,<スマホ老眼>だって!

2016-09-19 23:23:40 | Weblog
あとでよむ

ベッドの中でスマホを見続けて<スマホ失明>!? 急増する若者の<スマホ老眼>が進むと……
http://healthpress.jp/2016/09/-205051.html

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

経産省が無料の観光写真素材を配布中! Photo METI

2016-09-19 16:24:56 | ネットワーク
つかえそう!なのでメモ

経産省が無料の写真素材を配布中?!美しい日本を伝える観光促進サイト Photo METI
http://photoshopvip.net/94598



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

オープンデータで自治体サービスは住民目線に変わる

2016-09-19 10:22:20 | Weblog
をあとでよむ

オープンデータで自治体サービスは住民目線に変わる 官民協働で取り組む“宝”の利活用
http://logmi.jp/158604

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Kindle Unlimitedって、何?なにそれ、おいしいの?

2016-09-18 16:56:56 | Weblog

おいしいらしい・・・?

Kindle Unlimitedに参加したら月296万円稼いだ話
http://ironsugar.hatenablog.jp/entry/2016/09/16/023959

さらに

鈴木みそは「アマゾン読み放題」で儲かったのか!? 金額発表!
http://www.misokichi.com/chinge/2016/09/post-295.html


ちょっと、しらべてみようかな・・・?

※注意:Kindle Unlimitedを本当に、全く知らないで、このブログを書いています。
 その点、注意。自己責任で・・・


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

SNSで、親はいいと思っても、子供の写真をアップしておくと・・・

2016-09-18 11:15:09 | ネットワーク
子供が親を訴えることもあり得る・・・

10代の女の子、赤ちゃんの頃の恥ずかしい写真をFacebookに公開した両親を訴える
http://www.huffingtonpost.jp/2016/09/15/sharing-childhood-photographs_n_12038116.html


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

AppleとGoogleが自社ウォレットにブロックチェーン導入検討

2016-09-17 21:16:49 | Weblog
を後で読むためにURLをメモメモ

仮想通貨の次は?AppleとGoogleが自社ウォレットにブロックチェーン導入検討|クレジットカード危機
http://virtualmoney.jp/I0000574/&page=1



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「なぜIT関連技術者にはメンタル不調が多いのか?」その理由は・・・

2016-09-17 12:16:44 | Weblog
SEが心に問題を抱える意外な理由として挙げられているのは、長時間労働などによるストレスではなく、業務上で求められる技術水準にまで達していないことからもたらされるストレスやプレッシャーによって、というケースが非常に多く見られる

ただ、SE2の場合(PMO見習いなどを含む)
世の中には一定の範囲内で技術を取得すれば、その範囲内で働き続けられる業務もあり、このような仕事に従事している人はスキル不足を原因とした不調は当然ながら起きにくい
とのこと

SE1の場合は、テクノロジー分野はどんどん進歩していくために、勉強しても追いつかないので、
業務上で求められる技術水準にまで達していないことからもたらされるストレスやプレッシャーによって心が折れると・・・

なぜIT関連技術者にはメンタル不調が多いのか?
http://blogos.com/article/189902/

(太字は上記サイトより引用)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

グループごとに最大値のレコードを求め、最大値以外の項目を取得するSQL

2016-09-16 13:21:27 | Weblog
っていうことを検索したら

同一グループの中で最大のレコードを取得する SQL を書く
http://labs.timedia.co.jp/2014/10/selecting-max-record-in-group-by.html

が出てきて、「違っ、そのやりかたでない」というので、
思い出すまで時間かかったので、次に忘れたときの自分へのメモ用




■お題

 各社数台の車を持っていて、車からは緯度経度の情報が逐次上がってくる。
 この状況で、ある会社のある車の直近の緯度経度が知りたい。
 
※つまり、会社(グループIDとしている)と車(カーNOとしている)をクループ化して、
 グループ内で、最大値の時間をもつレコードの緯度経度を取り出すSQLが欲しい

 テーブル構造は、以下の通り


 緯度経度はCMDに入っている。このCMDをそのまま取り出せばよい
 現在入っているレコードは、こんなかんじ

 つまり、結果は(CMDだけだと分かりにくいので、レコード全体出している)

 のようにID3、32、37が取得できるはず




■注意&制約

 時間の最大値だけだと、たまたま同じ時間に別の会社の別の車が存在し、違うデータを取得してしまう可能性もある。
 だだし、ある会社のある車において、ある時間のデータは1つしか存在しないものとする(複数個所に車があったら分身の術なのでおかしい)。時間が違えば、ある会社のある車のレコードは複数有るかもしれないし、1個かもしれないし、全く無いかもしれない。




■方法

・各会社の各社(GROUPID,CARNO)ごとに、時間の最大値(MAX(TIME))を取る
・それと自分の全体データを自然結合する
   ON条件 GROUPID,CARNO,TIMEとMAX(TIME)であるlasttimeの一致
・自分の全体データの、欲しいところを取り出せばよい




■記述するSQL

SELECT m.CMD
FROM `mylogtbl` AS m
INNER JOIN (
SELECT GROUPID, CARNO, MAX( TIME ) AS lasttime
FROM mylogtbl
GROUP BY GROUPID, CARNO
) AS s
ON m.GROUPID = s.GROUPID
AND m.CARNO = s.CARNO
AND m.TIME = lasttime

のあとにWHERE句で自分の出したいグループを続ける。
たとえば、ABCを出したければ上記SQLのあとに

WHERE m.GROUPID='ABC'

を続ける。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Javaの入門書と教科書

2016-09-15 13:24:51 | Weblog
Javaの「入門書」

やさしいJava 第6版 高橋麻奈
Java言語プログラミングレッスン 結城浩
スッキリわかるJava入門 中山清喬、国本大悟


麻奈本に1票

Javaの「教科書」

アクティブラーニングで学ぶJavaプログラミングの基礎 大野澄雄、荻谷光晴
新わかりやすいJava入門編 川場隆
基礎からのJava 宮本信二
新・明解Java入門 柴田望洋
明快入門Java 林晴比古

だそうな

悩めるJava子羊たちに入門書と教科書の違いを説く
http://ascii.jp/elem/000/001/227/1227746/




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「ふるさと納税」の足引っ張るマイナンバー制

2016-09-14 21:52:54 | Weblog
マイナンバーのせいで、事務が増える・・・
・・・てのは、他人事ではない。


「ふるさと納税」の足引っ張るマイナンバー制
事務簡略化のはずが、自治体の作業が殺人的に
http://jbpress.ismedia.jp/articles/-/47845




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

MySQLの脆弱性の問題に対する影響

2016-09-14 10:41:24 | Weblog
前のエントリ

MySQLに重大な脆弱性見つかるが、パッチは10月18日に公開予定の件(それまで攻撃され放題?)
http://blog.goo.ne.jp/xmldtp/e/472ca926edfa7d11b3c592c210bf5e32

が、自分たちにどれだけの影響があるか、分かりにくいので、ちょっと細かく書く。

■現象

この現象は、以下の条件の「全てが成立」しないと「rootの乗っ取り」はできない。

(1)SQLインジェクションを使って、SELECT文で設定ファイルを書き出す
 →このバグは修正されている

(2)書き出すときに、logging関数を使う
 →つまりログとして書き出す。こうすると、上記修正の漏れをついて、
  設定ファイルにできる

(3)設定ファイルに、mysqldで、悪意のあるライブラリを実行するように書き換える
 →そのライブラリが実行してしまう。

実際には、設定ファイル(my.cnf)が書き換えられると、もうwebサービスはとまるので、
(2)が出来た時点で、問題がある。

MySQL脆弱性 CVE-2016-6662 について (2016 09 13現在)
http://t-suzuki.hatenablog.jp/entry/2016/09/13/181555

の「今回の脆弱性」の「my.cnfに追記する」に、どういうSELECT文を流すとアウトなのか、
(コメントになっているけど)書いてある。

■とりあえずの対策
 上記「MySQL脆弱性 CVE-2016-6662 について (2016 09 13現在)」にもあるけど、
 設定ファイルを書き換えられなくすればよい。つまり、

・/etc/my.cnf がmysqlユーザで書き込み権限がないこと(例えば rootで 0644 )を確認する
・/usr/local/mysql 直下が mysqlユーザの書き込み権限がないこと (例えば以下のようになっていること。mysqlユーザはここにmy.cnfを配置できない)を確認する

(太字は上記サイトより引用。具体的なコマンドも上記サイトにある)
を確認すれば言いだけなんだけど・・・

■話が発展してしまうと・・・

 SQLインジェクションを起こさなければいいじゃん!
 といわれると、そりゃーそうなんだけど、
 それ、調べますか・・・(^^;)

 いや、調べないといけないけど・・・

 で、そのとき、

「脆弱性があったとき、その責任は発注者?開発者-判決では開発者」という話を聞いてきた!
http://blog.goo.ne.jp/xmldtp/e/3a0b8abaacb7feab2a9d1646735d8f44

に書いたように、SQLインジェクションが起こった場合の責任は、
「お客様がSQLインジェクション対策しろと言っていなくても」
開発者側の責任になることがある(善管注意義務)
なので・・・SQLインジェクションに話を膨らまされると、ちょっと面倒なのだ・・


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

MySQLに重大な脆弱性見つかるが、パッチは10月18日に公開予定の件(それまで攻撃され放題?)

2016-09-14 01:01:08 | Weblog
5.7系、5.6系、5.5系の全バージョンに、デフォルトで起こるそうな

  SQLインジェクションを用いてリモートからmy.cnfファイルを変更できる
       +
  mysqld_safeによるstartup時のライブラリのpreload機能
       =
  任意のコードをroot権限で実行することが可能

ということらしい。

記事になっているのは、以下のサイト

MySQLに重大な脆弱性見つかる、パッチ存在せずデフォルトで影響
http://www.itmedia.co.jp/news/articles/1609/13/news055.html

この記事の写真にもある、脆弱性について詳しく書いたサイトが

http://legalhackers.com/advisories/MySQL-Exploit-Remote-Root-Code-Execution-Privesc-CVE-2016-6662.html

そこにあるように、「CVE-2016-6662」なので、ググる場合は、これで調べたほうが早い。
日本語では

MySQLでリモートからroot権限でファイルを実行できる脆弱性(CVE-2016-6662)
https://oss.sios.com/security/general-security-20160912



MySQL脆弱性 CVE-2016-6662 について (2016 09 13現在)
http://t-suzuki.hatenablog.jp/entry/2016/09/13/181555


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

位置をGoogleMapに表示するためのAPI利用法

2016-09-13 18:18:58 | JavaとWeb

場所とタグを含んでTweetし、みんなの位置をGoogleMapに表示するために必要なAPI
http://blog.goo.ne.jp/xmldtp/e/a741445a4bfde8e7ce03dca78db360f7

の後半、「位置をGoogleMapに表示する」を行います。

■お題
前の

Yelp APIを使って、東京のマクドナルドを検索する方法
http://blog.goo.ne.jp/xmldtp/e/f307a7f1a7d24b4c8983da873411d17f

で出てきた、

某マックの緯度経度
 latitude": 35.6977588049412, "longitude": 139.707627867968

にマーカーをつけ、その周辺の地図を表示する。
(地図は、lat: 35.6977, lng: 139.70762 を中心に出す)




■手順

Google Mapsの表示にはAPI登録が必須になりました
http://design-plus1.com/tcd-w/2016/06/google-maps.html

にある

・「APIキーの取得」
 をします
 (googleアカウントは持っているという前提を置きます。
 もっていない場合は、googleアカウントの取得が必要です)

次に
・「プログラムを作成」

して、
・ブラウザで表示

します。以下詳細に説明します。




■APIキーの取得

まず、Googleアカウントでログインします。

https://accounts.google.com/servicelogin?hl=ja


その後、そのブラウザで

Google Maps APIs for Web
https://developers.google.com/maps/web/


キーを取得をクリック

続けるをクリック

適切に選択して「同意して続行」

キーの制限「なし」でよければそのまま、いやなら適当に設定して「作成」。次にAPIキーが出てくる。

閉じる前に、キーの値をコピーして、どこかに保存する。




■プログラムを作成
まず、

https://developers.google.com/maps/documentation/javascript/

にある「デモとサンプルコード」のソースをコピー

そして、

https://developers.google.com/maps/documentation/javascript/markers

マーカーを参考に
(サンプルコード中、上の var markerは、引数内に
map: map,
 がある。これは初期表示などに使う。一方下のvar markerは、
 引数内にそれがない。その場合は、
  marker.setMap(map);
 と、動的にマーカーをつける)

お題である

某マックの緯度経度にマーカー
 latitude": 35.6977588049412, "longitude": 139.707627867968
地図
 lat: 35.6977, lng: 139.70762を中心
にしてみる。

以下のようなソースになる。

<!DOCTYPE html>
<html>
<head>
<!-- This stylesheet contains specific styles for displaying the map
on this page. Replace it with your own styles as described in the
documentation:
https://developers.google.com/maps/documentation/javascript/tutorial -->
<link rel="stylesheet"

href="https://developers.google.com/maps/documentation/javascript/demos/demos.css">
</head>
<body>
<div id="map"></div>
<script>
function initMap() {

// Create a map object and specify the DOM element for display.
var map =" new google.maps.Map(document.getElementById('map'), {
center: {lat: 35.6977, lng: 139.70762},
scrollwheel: false,
zoom: 18
});

var myLatLng = new google.maps.LatLng(35.6977588049412,139.707627867968);
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
title: 'Mac'
});

}

</script>
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap" async defer></script>
</body>
</html>

YOUR_API_KEYに、コピーしたAPIのキーを入れて、保存



■ブラウザで表示

保存したものをIE等で表示させる。こんなかんじになる

・・・って、このMac知ってる!いったことある!!
多分、よく要求開発アライアンスの会場になる、日本総合システム株式会社の近くにある、東新宿駅前のマック・・・

って、なぜここのマックなんだろう?そんなに有名なのか?

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする