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

DjangoCongress 2018 [Python]

昨日行われた DjangoCongress 2018 の Day 1 にSpeaker として参加してきた

https://djangocongress.jp/

人前で緊張するということはないけれども、
- 発表自体が尺に会うか(ものすごく時間が余ったり、時間が足りなくて話したいことが話せないのではないか)
- トラブルで画面に出せなかったりネットワークが使えなくて発表が台無しにならないか
が気になって、45分のトークは緊張した。

発表内容はこれ https://gist.github.com/nakagami/098db7387d78ab9c6aa85d77a0eeecf5

後半は駆け足になってしまったが、それも尺が余った場合に丁寧に話そうと思って用意していたものなので、自分的には満足のいく発表ができた。
内容は、 PyCon JP の CfP では通らないようなニッチな内容だったので、発表する機会が与えられて良かった。
終わったら、どっと疲れが出て、俺ってこの発表がこんなに重荷になってたんだなぁって自分で驚いた。

他の人のトークも、雑なアニメコラージュでうけ狙いみたいなのがなくて良かった。
みな「内容は雑でたいしたことないけど、有名人だから」みたいな発表ではなかった。そういう CfP があったのかどうか知らないけど。

自分のもほかの人のも、トーク中に聞いている人が twitter にハッシュタグ #djangocongress 付きで投稿してくれている人が多くいてよかった。トークの様子もわかるし、盛り上がっている感じも伝わるし。

なにより良かったのは、スタッフの人たちが終わったときに口々に「良かった」と表明していたことだった。
ボランタリーで無報酬でやって、達成感はあるものの自分の聞きたいトークも聞けなくて燃え尽きて終わってしまう→イベントが開催されないとなったら残念なので。

結局、100人という規模で食事とかノベルティとかいろいろしないで運営の負担が少なかったのが良かったと思う。
もしよかったら来年もできる範囲で開催されるといいなぁ、と思う。

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

Windows + Python 3.6 の msys2 + minitty で utf-8 [Python]

気が付いたら、Python3.6 では、Windows で、コマンドプロンプトとファイルシステム(フォルダー名、ファイル名)のデフォルトの encoding が utf-8になってた

https://www.python.org/dev/peps/pep-0528/
https://www.python.org/dev/peps/pep-0529/

以下のようなーコードで
import sys
print(sys.stdin.encoding)
print(sys.stdout.encoding)
print(sys.stderr.encoding)

print('あいうえお')
コマンドプロンプト上で
utf-8
utf-8
utf-8
あいうえお
こんな感じになった。

すばらしい

しかし自分が普段使っている Git for Windows (Msys2) + mintty で、
上記と同じWindows にインストールした python3.6 で実行すると
cp932
cp932
cp932
▒▒▒▒▒▒▒▒▒▒

となってしまう。

・・・結局、環境変数に

export PYTHONIOENCODING=utf-8

を設定したらutf-8 でうまく表示できた。

まだ、minitty で interactive shell が動かないんだけど、コマンドプロンプトでは interactive shell ちゃんと動くし自分の Windows 環境がだいぶ良くなった。

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

小学生のプログラミング教育に期待すること [未来予測]

2020年頃に、日本の小学生にもプログラミング教育が始まろうとしているらしい。
どんなに工夫したって、プログラミングには英語、というか、アルファベットが必要で、日本語でのプログラミングやアイコンのドラッグ&ドロップによるプログラミングはかえって混乱をまねくだけなので、無理して小学生から教えるのは、やめたほうがいい。

・・・と思っていたんだが、最近その考えが少し変わってきた。

ひとつめの理由は、義務教育でなかったらプログラミングになんて決して触れることがなかったような家庭環境の子が興味を持って、最終的に才能を開花させる可能性があるということ。
今、僕が田舎の農家の子だったら、家にパソコンもインターネットもなく、スマートフォンでゲームをやって、
「新しい iPhone 欲しいな~」
と思っているだけの人間だった可能性が高い。
そんな 21世紀の、(もうひとりの)自分にプログラミングの楽しさを知ってもらうきっかけになればいいなと思う。
そのために大多数の子が
「全然わからないし、なんのためにやっているのかわからない」
と思っても知ったこっちゃない。

もう一つの理由は、そうやって小学校のときに、まったく思った通りに動かないということを知った人たちが、
「こんなの簡単でしょ」(←じゃあ、お前がやれよ)
とプログラマーに無茶ぶりしてくることがしなくなるんじゃないかと。
さらに、職業プログラマーが
「小学生のあんなにわけわからなかったプログラミングを職業にしてるなんて」
と、尊敬してもらえる可能性もあるぞ。

いずれにせよ、小学校でプログラミングを教えたりなんかしたら、英語や数学以上に挫折する子が出ると思うのだが文部科学省の人は覚悟できているんだろうか。

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

これからはじめる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) 
共通テーマ:日記・雑感
前の10件 | -