So-net無料ブログ作成
前の10件 | -

これからはじめるSQL入門 [読書]

これからはじめる SQL入門草稿のレビューをしました

社会人プログラマー一年生はもちろん、非プログラマーな営業企画職や、ゲームディレクター、プロデューサー、広報とかの「データを検索したり集計したい」人まで向け。
逆に多少なりとも SQLを使ったことある人には、簡単すぎると思われ。


まったく初めてのところから、

- SELECT, INSERT, UPDATE, DELETE
- INNER JOIN , OUTER JOIN
- Window 関数
- 簡単なサブクエリ

あたりまで。
SQL としては基本だけれども、ここらへんまで理解できれば、あとは実務をしながら
・・・というあたりまで。

サンプルデーターベースを使って、書籍の説明の通りに SQL を実行すると、書籍の結果と同じになる、という感じで、二色刷りで読みやすく、内容も丁寧。
サンプルデーターを使って、ストーリー立てて、簡単なものからだんだん難しいSQLを説明するようになっていて、良く書けていると思う。

特筆すべきは、サンプルデーターベース・・・の入った PostgreSQL・・・の入った Ubuntu のイメージ・・・入った DVD が付録になっていて、サンプルデーターベースを使うまでのハードルが低い、という点。
それで、表紙に「Windows/Mac両対応」と書いてある。(実際は Ubuntu)

超初心者のための入門書が、どんなに分かりやすく書いても、
「ネットワーク上になるダンプデータをリストアしてください」
では、そこでくじけてしまう人が多いので、そこをどれだけ簡単にできるかを真剣に考え、
いろいろ考えた結果が VirtualBox のイメージを、おまけ DVD に付けるという結論だったらしい。

PostgreSQL を使っているのは、標準 SQL に近くて、ライセンス的に問題ないものという理由で、著者が PostgreSQL信者というわけではないと思われ。

コメント(0) 
共通テーマ:日記・雑感

Python Boot Camp in 柏の葉 [Python]

故郷愛知 http://nakagami.blog.so-net.ne.jp/2017-07-29-1 に続いて、26年間暮らす千葉(の柏の葉)で開催された Python Boot Camp in 柏の葉に TA として参加した
https://pyconjp.connpass.com/event/81251/

このイベントの TA は
「なんか、うまく動きませーん」
と質問されたときに、

- python3 のつもりで 2.7 が動いてた
- pip install を sudo 付きで実行してた
- エディターをインストールしてない

と、トラブルのバリエーションが多くて、それを限られた時間で解決しないといけないので緊張する。


愛知の時は、環境が動かせなくて、ほぼ座学になってしまった人がいたが、今回は、まったく Python が動かせなかった人はいないようだった。ほっとした。

ハンズオン中に受講者の人が
「これは、ひとりではできないよなぁ」
ってぼそっと言ってた。

最初の一歩の手助けができて、このうちの何割かでもプログラマー仲間になってくれるとうれしい。

柏の葉キャンパスは、都会で学際都市で ITベンチャーがいっぱいあって産学共同で、その象徴が KOIL ・・・っていうイメージだったけど、話を聞くと、あくまでも千葉(田舎)で、新宿、渋谷とは差があるんだなぁという感じだった。
KOIL の中はきれいでおしゃれだったけど。
東京にはイベントがあって、いざとなれば東京に行けばいいじゃん、って思うけど、心理的なハードルがあるようで、今回柏であるから来ましたっていう人が多かった印象。
千葉開催が決まったときに 「柏?都会じゃん」と思ったけど、マインドは田舎だった。
僕が何かの助けになればよかった。

コメント(0) 
共通テーマ:日記・雑感

Python で日本語文章要約 [Python]

最近、諸般の事情により、
「自然言語処理でなんか面白いことできないかなー」
って調べてて
「そういえば以前に、どっかの大学院生が日本語要約を python でやっててソースを公開してたな」
ってことを思い出して探したんだけど・・・
https://recruit-tech.co.jp/blog/2015/10/30/summpy-released/
↑これだった。
公開した直後以降はソースコードの更新は行われず、python2.7 でしか動かないようだった。残念、というかもったいない。Python2.7 でしか動かないものは、今後使われなくなってしまう。

MIT ライセンスなので、結果のよさそうな LexRank アルゴリズムのエッセンスの部分を1ファイル(1モジュール)に抽出して Python3 で動かせるようにして gist に貼っておきます。
https://gist.github.com/nakagami/92c0904ac9c1a98ee4ff8d8fb644fd69
正直、アルゴリズムの数学的な意味などさっぱり分かっていないけど・・・

自然言語処理研究者でない人(例えば自分)向けの LexRank による要約についての
ざっくりとした日本語解説は、これが比較的わかりやすいかと思います
https://qiita.com/takumi_TKHS/items/4a56ac151c60da8bde4b

jabstract.py をダウンロードして
import jabstract
text = '複数の文がある、ながーい文章'
sentences = jabstract.summarize(text, sent_limit=10)
print(sentences)

という感じで要約できるんだけど、ちゃんと動いてるかな?
必要なパッケージとか、関数のパラメーターとか、詳しくはソースコード読んでください。

コメント(0) 
共通テーマ:日記・雑感

EV 車と自動運転 [未来予測]

僕はペーパードライバーで自動車のことに詳しくない。
欧州で
「これからはクリーンディーゼルを推進する。(ハイブリッドを含む)ガソリン車はエコじゃない」
という法規制が行われようとしてたときに
「日本メーカーやばいじゃん。ハイブリッドに注力してたおかげで出遅れてるじゃん」
と心配した。

僕は、そのときまったく気づいてなかったけど、
(というか、国がそういうインチキをするとは思ってなかったけど)
それはヨーロッパの自動車メーカーがハイブリッド車開発でトヨタに負けてて、
なんとかヨーロッパの自動車メーカーが有利になるように進めた政策だったようだ。

でも、何となくイメージしてるエコとディーゼルってあってないんだけど? と思っていたら、
「ディーゼルは CO2 排出は少ないけど NOx の排出が多くて欧州の大気汚染が大変」らしい
https://carview.yahoo.co.jp/article/column/20180305-20103667-carview/2/
なんだよー。

そんなこともあって、「EV車」と「自動運転」も疑ってみてた。
どうせこれも、日中韓インドの車に押されて苦しいアメリカ政府が自国メーカーを救済しようとしてるだけだろう・・・と
最近、それらも行き詰まりが見えるように思う。

EV 車の リチウムイオン電池は、自動車の駆動のための燃料タンクとしては高くて劣化しやすくて資源も限られていて無理がある。

自動運転は、ほんの数個の車載カメラで物体を認識するのには無理がある。
いまにも飛び出しそうな子供や猫とアイコンタクトをとって一時停止するか低速で通り抜けるか判断してるのを、
機械がかわりにするためには、人も車も(できるなら猫も)道路に出る人はすべてイージス艦のような大量のセンサーを搭載して、
それらがお互いに通信しないといけないんだと思うんだよなぁ。

Uber や テスラが死亡事故を起こし、テスラの資金繰りの苦しい中、モデル 3 は 思ったように量産できてないし、
ちかぢか EV車と自動運転が本物なのか単なるブームだったのか決着がつくと思うのだが

コメント(0) 
共通テーマ:日記・雑感

Java 10 が出てしまった [プログラミング]

JDK 1.0 か JDK 1.1 の頃に、状態によって四角を緑と赤に描き分ける Applet を書いたことがある。
まあ、おもちゃみたいなもので、とても書いたことがあると言えるような経験ではなかったが、
職業プログラマーとして、いつかは Java のコードを書くんじゃないかと思って来た。

Java 8 までは、この本を読んだり

Java SE8 for the Really Impatient: A Short Course on the Basics (Java Series)

Java 8 Oracle JDK をインストールしてみたりしてみたりしていたが
http://nakagami.blog.so-net.ne.jp/2014-03-22

「Java 9 では jshell なんてのが使えるんだー」
と思いながら、Java9 について何もしないまま Java 10 が出てしまった。
var で型推論するコードなんか見てもなじめそうにない。そして、あと半年すると Java 11 が出てしまうらしい。

もうだめだ。ついていけなくなった。
Perl, PHP, JavaScript, Scala といった「勉強したけど挫折したプログラミング言語リスト」の中に Java が加えられてしまった。

・・・といいつシンタックス上の変更について調べてしまう。

流行りの型推論が導入されるらしい。
Go言語だと、宣言での型の指定が後置になっていて、型の部分を省略すると推論するようになってるんだけど、
Java 10 の場合、型を書くべきところに var って書くようになっていて、それだったら型書いたほうが読みやすくない?
って思ってしまう。

もうだめだと思ったが、 Java 9 では jshell が Java 10 では型推論が使えるようになったくらいかな?

コメント(0) 
共通テーマ:日記・雑感

Ubuntu 17.10 でAngular 環境を用意する [プログラミング]

notejs とか npm とかよくわかんないから、はまるのやだなーと思って避けてたけど Ubuntu 17.10 だと、apt ではまらずにインストールできたっぽい

$ sudo apt install nodejs npm
$ sudo npm install -g @angular/cli
$ sudo npm install -g typescript
$ nodejs -v
v6.11.4
$ npm -v
3.5.2
$ tsc -v
Version 2.7.2

npm install でワーニング出て、よくわかんないけどそういうもんなの?

$ ng new my-app
$ cd my-app
$ ng serve --open

でブラウザーで http://localhost:4200/ にアクセスすると Angular のスタート画面が出た

(追記)
ここまでの手順で良さそうではあるのだが、nodejs は、もっと新しいのを入れるのがいいの?
http://jsstudy.hatenablog.com/entry/Difference-in-version-of-Nodejs
https://nodejs.org/ja/download/releases/

ここ↓を参考にして、最新にしたほうがいいのかなぁ・・・
https://qiita.com/seibe/items/36cef7df85fe2cefa3ea

やっぱり、よくわからない
コメント(0) 
共通テーマ:日記・雑感

工数をパズルのように埋め、おおざっぱに管理する [日記]

最初に入った受託開発をメインにした会社は工数管理がしっかりしていた。
案件に工番(こうばん)または製造番号(せいぞうばんごう)、製番(せいばん)と呼ばれる番号が割り振られて15分単位で時間をつけていた。
日立グループで作番(さくばん)と呼んでいるものとだいたい同じらしい。

僕のような若手は相互に差しさわりがあるということか、複数の案件に割り当てられることはなかった。
つまり、1人月の案件が 4/1 に始まると、4/30までは、日報にはその工番をつけて、それ以降はつけちゃいけないことになる。
そしてその工番で予実管理をした。
工数が予定より多くなってら怒られるんだが、少なくてもいやな顔をされた(見積もりの精度が悪いんじゃないかといわれた)

日報には、工番と合わせて、今やっている作業が「設計」「プログラム作成」「テスト」(さらに細かく分かれていた)の何をやっているかも書かないといけなかった。
おおざっぱに 1/3 づつくらいの工数にわかれてないと「おかしい」と言われるので
「んー、今やっている作業はなにかなー。設計にもプログラム作成にも見えるけど、今の工数の消費具合からいうと、プログラム作成につけておこうかなー」
とかやっていた。ほかの人がどうしていたか知らない。

途中、客先の仕様確認とかレビュー結果をもらうとか、結果待ちに時間が空いてしまうときがある。
ミーティングの日程だってこちらの都合だけで決められるわけではないので、ミーティングまでに時間が空いてしまう。
「んー、じゃあドキュメント整理の製番でもつけておくかなー」
と、そのときさほど必要でもないドキュメントを書いてたりしてた。

あの日報をつける時間は馬鹿にならなかったし、それを集計する課長の時間も馬鹿にならなかった。
日報を転記して週に一回の課長会議みたいなのをしてたようだったが、そのための資料作るの大変だったろうな。
課長は、売り上げに結びつかなくても許される伝家の宝刀「営業製番」99998 を付けられたが、僕は、めったなことではその製番を付けることはできなかった。
社内には、社内インフラを整備する工数が割り振られていた人もいたが、そういうのは売上が結びつかなくても怒られなかった。
一方で我々一般の兵隊は売り上げに結びつかない工番はつけられなかった。
僕が、社内インフラ整備とか書籍の執筆とかを仕事ですることに、いまだに抵抗があるのは、この頃の「売上に結びつかない仕事はしちゃだめ」と思っていたのを引きづっているのだと思う。三つ子の魂百まで。

いろいろ理由で、苦しかったし予定が遅れることはあっても早まることはなかった。
今思えば、予実があってないと怒られるのは、サービス残業の発生する温床だったんじゃなかろうか。
ここまでで読んでる人は気づいたと思うけど、実績としてつけていた工数はかなり予定に合わせていて真の実績とは離れていたと思う。
あの実績で振り返っていては全然現実が見えてないな。

僕は、その会社を辞めるまではソフトウェア業界って、みんなこんなふうに工数管理しているものと思っていた。
転職してみると、15分単位に日報をつけるのは例外的だと知った。

今は、臨機応変に、それこそパズルのピースを埋めるように時間の空いた人を埋めている。
それは、最初の会社では、もっとも忌み嫌われていた仕事のやり方だ。
(計画しても現実は計画通りに進まないという現実は無視して)
ころころ案件が変わるのは計画ができてないせいだし、案件が頻繁に変わるのはキャッチアップするのが大変だから。
今はお金については社長の「費用対効果」のひとことで解決だしプログラミング言語や仕事のやり方が同じになるように努力しているので、
案件が変わっても、キャッチアップは割とするできる。

会社が大きくなれば、もっとちゃんとした工数管理をしないといけないんだろう。
今のように、みんな仲良く性善説というわけにはいかないだろう。
最初の会社の詳細な工数管理自体は悪いことじゃなくて実態が悪かったのかもしれない。

どれがよくて正解っていうのはないけど、常識っていうのは会社によって違うから、みんなできるうちに一回は転職したほうがいいと思う。

コメント(0) 
共通テーマ:日記・雑感

できることと簡単にできることと janome [日記]

随分前に参加した、Python のもくもく会で 、自然言語処理の研究をしていて、レコメンドエンジンのプロトタイプは Excel のマクロでできていて、それを Python で実装したいんだけど、という人が来ていた。
mecab-python がインストールできなくて苦しんでいた・・・というか、僕がインストールしてあげようとして挫折してしまった。

今現在の、Ubuntu なら apt と pip でインストールできるっぽいが・・・
https://qiita.com/dwarfer7634/items/551886e8d817321abbd5
sudo apt-get install mecab libmecab-dev mecab-ipadic mecab-ipadic-utf8
pip install mecab-python3

言い訳すると、そのときは、Windows がメインで、今日のためにVirtualBox に CentOS6 をインストールしてきましたという状態で、
root 以外のアカウントは登録されてなくて Windows から ssh でログインできるようにもなってなかった。
Ubuntu だと比較的簡単にインストールできるようになったが、やはり windows で python-mecab は鬼門らしい。

この時、挫折してしまったのが申し訳ないのと同時に、
「自然言語処理の研究をしていて、MeCab のインストールに苦しんでいる人いっぱいいるんだろうなぁ。もったいないなぁ」
と思った。

そんなことがあった直後に、pure python の形態素解析器 janome が公開されたので興味を持った

- http://nakagami.blog.so-net.ne.jp/2015-04-11
- http://nakagami.blog.so-net.ne.jp/2015-04-18
- http://nakagami.blog.so-net.ne.jp/2015-04-27

最初 python3.4 でしか動作しなかったものを python2.7 でも動くようにして、その後、多少高速化もした。
ここ↓を見ると、まだ mecab -Owakati の 300倍くらい遅いみたい
https://umiushizn.blogspot.jp/2017/09/blog-post.html
だけど、最近 janome は使われているようで、できることと簡単にできることは大きく違うし、簡単にできることは、それだけで価値のあることだな、と思う今日この頃。
コメント(0) 
共通テーマ:日記・雑感

まじめに働いたら普通に暮らせる世の中になって欲しい [日記]

随分前の記事なんだけど、ずっと気になっている、↓この記事について考えていること。
https://www.buzzfeed.com/jp/satoruishido/gakureki-bundan?utm_term=.iwZ0wxPNp#.bqBYbz7jK

三世代同居で高校卒業まで一緒に暮らした祖父は、明治34年(1901年に)農家の三男に生まれ、尋常高等小学校を出た。
若い頃は肉体労働で稼ぎ最後は雑木林を開墾して農家になった人だ。
昔話に出てくる良いお爺さんの典型のような働きもので、僕が物心ついた時には 70歳は超えて息子に代を譲っていたが、よく働いていた覚えがある。
102歳で亡くなる年まで、杖をついて庭に出て、芝生に座り込んで手の届く範囲で草を取ったり春先にやってくるツバメの巣に猫が来ないように軒下においた椅子に腰かけて番をしていた。

父は昭和15年(1940年)生まれ。ちょうど姉3人妹3人の真ん中の男一人で、生まれた時から跡継ぎと言われ、小学校の頃から親の手伝いで開墾をして、農業高校を卒業した時点では祖父も高齢だったので、すぐに大黒柱として働いたようだ。

僕の尊敬する先祖2人だが、考えてみると、今のご時世、僕の先祖のように、学がなくても、まじめに一生懸命働いたら財を成すことができる・・・とまでは言わなくても慎ましやかに、普通に結婚して子供を生んで育てるってことが、とても難しくなっている気がする。

結局、僕の息子(現在大学1年生で、もうすぐ2年のはず)の中学の同級生の中で僕が知っている子で高卒で就職した子はいなかった。
高卒で建築関係の、親の知り合いのところに修行に行くと言っていた子は、ワーキングホリデーで海外にいる。高卒で就職して社会に出ることに不安があったのかな、と僕は思っている。勉強は嫌いだったみたいだけど、人当たりが良くて、世話好きで、たまに家に電話してきたときも、非常に礼儀正しかった。今のワーキングホリデーの経験が将来につながるといいんだけど。
専門学校に進んだ子は、あと一年で卒業なんだけれども、就職できるのか、自立できるのか、結婚できるのか心配しているようだ。(心配しつつも、息子とモンハンやってるのだが)専門学校卒が学歴的には高卒ということを、とても気にしている。

自分や自分の子供が大学出て安定した暮らしができればよいというものではない。
大学に行かない子、行けない子が社会の不安要素になるというのは、子供たちが暮らす次の世代の大問題になるだろうし、
「農家の長男として農業高校に進学しろ。大学に行くなんてとんでもない。」
と言われたら従っていたであろう、(そして、その場合の自分の子供は大学なんて行ってなかったであろう)平行世界の自分の問題でもある。

公共住宅政策でも、最低賃金政策でも、医療保険の拡充でも、自分の負担が上がってもいいんで、(勉強が嫌いでも)まじめに働いたら普通に暮らせる世の中になって欲しいと祈っている。

コメント(0) 
共通テーマ:日記・雑感

ソフトウェア開発のストレス [日記]

会社でメンタルヘルス研修というのがあって、普段、どんなことがストレッサーになっているか各自で考えるという課題が出た。

工数を見積もりして、その工数をもとに線表を引いて「〇月×日にできあがる」というスケジュールが出来上がり、いざ開発を開始するという最初期の
「これ、本当に期限通りに終わるの?」
というプレッシャーは、何年やっていてもストレスだなぁ、と思う。

項目ごとの工数を見直してみても、それほど無理な話じゃない。むしろ多少余裕もあるつもりだ。
それでも、過去の炎上プロジェクトを思い出して、想定外のあんなことやこんなことが起こったらどうしよう・・・と思わずにはいられない。
多くの場合は、それは杞憂に終わるし、心配したところで何も変わらないので、そんな心配してもしょうがない。
・・・ということはわかっていても、スタートダッシュで、完成の目途をつけて、それが予定のスケジュールより早めに進行しているところまで来ないと安心できない。
周りからは飄々としているように見えるかもしれないが、自分では結構焦っていて、受託開発の仕事向いてないのかな、と思う。

若い頃の、自らの責任でスケジュールを立て(とはいっても、赤字になるような長いスケジュールは許されない)自らの責任で完成させる・・・
つまり、課長は仕事を持ってきて担当者に丸投げのような体制の会社で、(考えてみれば、工期の短い見積もりをお客さんに出して、できないのは担当者のせいってことにしたら、課長は楽だよな)予定よりも早く終わっても評価されず、遅く終わったら怒られるという環境でのトラウマなのかもしれないし、もともと心配性なのかもしれないけど、この性格は直りそうにない。

この時に書いた http://nakagami.blog.so-net.ne.jp/2012-12-01 アラキさんは最後いつもデスマだったけど、プロジェクトの最初のほうは、希望に満ちあふれ、定時に帰っていた。
「設計がまだ終わってないなぁ・・・ま、今日は帰るか」
と言っていた設計が、当初の想定と違ってやり直しになってたりして、僕は
(最初の頃のあの余裕は何だったんだろう)
と思っていたが、一方で僕はアラキさんの楽観的な性格がうらやましかった。

受託開発じゃなく、自社サービスとか事業会社の内製業務アプリなら、計画はあるにしてももっと気楽にできるんじゃないかっていう気もするけど、僕は弱い人間なんで、スケジュールに対するプレッシャーがないといい仕事ができないんじゃないかという心配もある。

要するに僕は心配性なのだった。

コメント(0) 
共通テーマ:日記・雑感
前の10件 | -