プログレッシブ・プロレタリアート

無産階級エンジニアが生きる知恵をはき出すブログ

PLANETS CLUB第4回定例会に行ってきました

2018/06/01に渋谷のキャンプファイヤーで開催された定例会の感想まとめです。

 

 

そもそもPLANETSって?

PLANETSとは評論家の宇野常寛さんが主宰するコミュニティで平日のメルマガ配信やニコニコ生放送などを行っています。(月額864円)

http://wakusei2nd.com/

 

PLANETS CLUBって?

同じく宇野常寛さんが主宰するコミュニティで入会すると会員向けのFBグループに招待されます。

会員向けの定例会やその他突発でイベント等も開催されております。
宇野さんを中心に感度の高い人が集まるコミュニティは学ぶものが多そうなので僕も加入しております(月額4980円)

僕個人としては今のツイッターのダメ文化がどうしても耐えられないし何とかしたいと思ってもいましたが特に何も出来ることがない中でなんとかする力がありそうな人に協力したいと思い、こちらに加入しておりました。

 

camp-fire.jp

 

定例会の内容について

今日の定例会はその宇野常寛さんが書かれた、母性のディストピアの導入部分の解説会となりました。

 

定例会の内容

母性のディストピアが書かれるまでの話しと第一章の解説になりました。
その辺りはメインコンテンツのはずですが僕の整理が追っつかないので省略で・・・

本のコンセプトについての説明がありました。

  • 戦後アニメーションの決定版を書く(宮崎はともかく富野、押井論がない)
  • アニメ論を書くことで現代という時代への回答にしたい(サブカルについて考えることが活動や思想の指針になっている)

政治と文学のねじれ、小林秀雄見田宗介の問題の接続の辺りはちょっと僕の理解が追いついていないので省略・・・ 

懇親会

懇親会では5〜6人程度で入場に渡された紙に書かれた番号のテーブルについて座談会。
やはりアニメから入っている人が多く話していて面白かったです。

また途中席替えもあったので、このへんの懇親会のやり方はIT系のイベントでも参考にしたいなと思いました。

また各テーブルに必ず宇野さんが訪れて話をしてくれるのでおーこれがあの宇野常寛さんかーとドキドキしていました。

 

特に2回目に宇野さんが隣に来た際には宇野さんの腕が自分の体に当たっていたのでドッキドッキでした。(ドルオタ3日目みたいな感想)*1

 

ちなみに、ネカフェで泊まるのでオススメの漫画として宇野さんから幕張という漫画をオススメされたのですが、泊まったネカフェにはその漫画はありませんでした。

 

面白かったところ 

・30代後半という働き盛りの時期に価値のある仕事をした

宇野さんのこの発言から個人的にも30代半ばにさしかかりつつあるので考えさせられる一言だった。(果たして自分が今から6年掛けて価値のある仕事が出来るのだろうか?)

・今のインターネットはTVワイドショーにそっくりだからだめ

→全くその通りで、日大のアメフト部の元監督やコーチなどに石を投げて喜んでる今のツイッター文化はTVでやってること言ってることと全く同じだと感じた(宇野さんが繰り返し言っていることでもありますが)

 

・正しく引きこもろうとすると都合の良い情報だけを見せるだけのアーキテクチャが発展してしまう

(イノセンスの)バトーのように守護天使(素子)の存在だけを信じながら自己完結できるかという問いかけ、正しく引きこもるには情報量が少ないこと実際にはインターネットには素子がいないので難しい。
逆に狭い世界に捕らわれることで都合の良い情報だけを見せるだけのアーキテクチャが発展してしまう。

 

ここの都合の良い情報だけを見せるアーキテクチャーとしてインターネットが発展しているという部分が個人的に面白かった。

確かに今、ツイッターでは気に入った人だけをフォローできるので、自分が良いと思う情報が優先的に流れてくるし、youtubeでもレコメンド機能のおかげで自分のyoutubeにはいきなり演歌が流れてくることもない。

 

趣味の世界は良いと思いましたが、政治的な部分(ざっくり言うと産経新聞や保守速報がリツイートで廻ってきたりリツイートしているような人なんかは、野菜を食べない子供にこの子は肉が大好きだから肉だけを与え続けるアーキテクチャなんかは偏った人間になる遠因とも思う)

その意味で、産経ばかり読んでる人には突然赤旗をレコメンドするようなアーキテクチャがあってもいいのかなと思った。*2 

今後について

地方民なので20時開始というかなり良心的な開始時間でも、開毎回参加は厳しい部分がありますが、金曜日開催などいけそうなところではなるべく参加しようと思った。(今回も新幹線の中でテザリングで仕事しながらの移動になってしまった)

また懇親会であった人たちも結構面白かったので、例えばLT(ライトニングトーク)タイムなど他の参加者による定例会テーマに沿った発表時間みたいなのがあっても面白いのかなと思った。(IT系の勉強会によくある)

 また、地方で開催されるオフ会というのもタイミング合えば行ってみたいなと思った。

 やはり、コミュニティというのは一度は参加して実際に話してみる必要あるよなーって思いました。

 

*1:そもそも自分はアイドルさんとチェキを撮る際もどうしても接触が怖いので適当に距離感をもてるチェキを依頼することが多く、握手も自分から求めないという高い童貞力を持っています。そんな感じなので握手なしでも個人的にはまぁいいのですが、別れ際に握手のために手を伸ばしてくれるアイドルさん(某十束さん)は天使だなと思ってます。

*2:産経と赤旗は比喩です

Djangoのfilterとかexcludeをoverrideしたい

そういう需要があるかどうか分かりませんがfilterやexcludeをoverrideして特定のModelに対するquery発行時に必ずなんらかの処理を入れる方法です。

python: 3.6
Django:1.11

models.py
class MyModel(models.Model):
    objects =  ObjectsManager.as_manager()


class ObjectsManager(models.QuerySet):
    def filter(self, *args, **kwargs):
        # argsとkwardsにQobjectsやdictが来ているのでそこを上手いこと処理する
        return super().filter(*args, **kwargs)

    def exclude(self, *args, **kwargs):
        # argsとkwardsにQobjectsやdictが来ているのでそこを上手いこと処理する
        return super().exclude(*args, **kwargs)

多分これでうまいこと行きます。

ちなみにこれはどんな場合でもfilterやexcludeを動かすときは必ずこのような処理が走って欲しい!!!って時専用になります。(もう今までのfilterはどこからも動きません)

filterっぽいものを作りたいときは objectsではなく違う名前で宣言してみましょう。

models.py
class MyModel(models.Model):
    objects2 =  ObjectsManager.as_manager()


class ObjectsManager(models.QuerySet):
    def filter(self, *args, **kwargs):
        return super().filter(*args, **kwargs)

    def exclude(self, *args, **kwargs):
        return super().exclude(*args, **kwargs)


 MyModel.objects2.filter(order='spam')

【PR】 sora tob sakana というアイドルグループのPVがとてもよいです。 今度ハイスコアガールというアニメに使われるみたいです。 この記事が役に立ったよって人は是非見ていただけると幸いです

Djangocongressに行ってきました(主にイベント運営的な感想)

2018/05/19にサイボウズで行われたDjangocongressに参加してきましたのでその参加報告ブログになります。

 が、技術的なことよりも運営的なところを書いていこうと思います。。

Djangocongressについてはこちら

djangocongress.jp

 

イベント運営について

・行動規範を宣言していた

DjangoConJP/CodeOfConduct.md at master · django-ja/DjangoConJP · GitHub

イベント中のハラスメントや差別的な表現が起きないようにと言う徹底した宣言がされていました。*1

 

・写真に写りたくない人のためにオレンジ色の首かけ用意されていた

トラブル防止のために写真に写りたくない人を一目で分かるようにしたすごく良い配慮だと思いました。

 

・余ったお金の使い道が宣言された

余剰金はDjango Software Foundationに寄付すると言うことです。使い道も良いと思いますし、それをきちんと宣言してくれるのは運営としてすごくしっかりした姿勢だなと感じました。

 

・会計レポートが上がってた

多分途中段階ですが上がっていました。

docs.google.com

 

・会場が良かった

会場が東京駅から徒歩10分ぐらいということで、新幹線遠征民としては、アクセスがしやすくて助かりました。
また、オフィス街のせいか、休日はお昼でもお店で並ぶようなことがなく、ご飯を食べれて良かったです。

 

・ツイートが多かった

参加者がほとんどDjango利用者で固まってるせいかツイートの数も多く、それだけ参加者の興味を引く内容だった気がします。

 

フロアも東京のいけいけな会社って感じがして良かったですね

f:id:darakunomiti:20180521171855j:plain

 

 

感想

Djangoコミュニティを背負っただけあってかなりしっかりしたイベントだったように思います。

特に日本語の後に英語で同じ内容が話されたりして仕組みとしても国際的なイベントと言って差し支えない内容になっていたようにも思いました。(実際に日本語話者以外の方も多く来ていました)

なんていうか、普段長野に閉じこもっている我々とは向いてるところが違うなぁと、そういう意識の部分の差というものを随分見せつけられたイベントだったように思いました。

セッション内容も、普段Djangoを使っている自分にはとても親しみが持ててしかもすぐに実戦に役に立つ内容のイベントでした。

*1:エンジニア界隈はどうしても男性の数が多いせいか、ホモソーシャル的な雰囲気になってしまいがちな部分があるので、けっこうきつめに宣言しておくのはトラブル防止としてとても良いと思いました。また日本では人種差別の問題に関しては鈍感な部分がありますが、世界的なイベントを目指すDjangoCongressとしては欧米の基準に則った世界基準に規範を合わせることは、もうなんだか目指す世界、見ている世界の違いすら感じました。

Python 3 エンジニア認定基礎試験に合格しました

タイトルの通り、さっさと取ろうと思いつつ結局資格が立ち上がってから1年以上たってしまいました。

取得しようと思った目的はお賃金に他なりません。(身も蓋もない)

 

詳細はこちら

pcを前にして四択問題をぽちぽちするだけです。

合格もその場で分かります。

www.pythonic-exam.com

 

勉強したこと

・そもそもここ2年ぐらい毎日Djangoを書いてる

Pythonチュートリアル 第3版をさらさら読む
ここで模試が無銭で無限に受けれるので分からなかった部分を実際に動かしたりぐぐったりして解決を4週ぐらい繰り返す。

 

抜けてると感じたこと

・模試を受けると普段意識しないことが意識できるので良かったです。

例えばprint(range(4))みたいなコマンドを実務で打つことなんてまずないので、そもそも range(4)は何を返すのか見たいな細かい挙動を知ることなどがが出来ました

・意外と知らないことも多い

結果

850点で合格でした。

一問25点だと思うので6問ほど取りこぼし。。。

うーん。。一応毎日Pythonに触ってる割には出来が良くないなぁと思いつつ、とりあえずお賃金はあがるからいいかなという気持ち。

 

 

大変だったこと

・毎日Python使ってるんだから落ちると恥ずかしいというプレッシャーとの戦い
・受験料1万円とちょっと高い
・田舎だから受験日と受験会場が少ない
・受験会場までどうしてもクルマが必要で、自分は田舎に住んでるくせにマイカーを持っていないので事故らず迷わずたどり着くのがプレッシャーだった。
・異様に簡単な問題が結構あって逆に悩んだ(基礎だから当然と言えば当然)
・時間が充分過ぎるぐらい余った(じっくり見直ししても15分ぐらい余りました、会場の人を呼んでさっさと終わらせました)

 

 

余談

そういえば合格体験記を送るとマグカップかぬいぐるみ貰えるみたいだけどこれまだあるのかな・・問い合わせだけしてみよう

www.pythonic-exam.com

 
【PR】

ここまでの情報が役に立ったという方は・・

フィロソフィーのダンスというファンクアイドルグループが思わず体が踊り出すような五感に訴えてくる楽曲ばかりですのでテンションが上がって楽しいので是非聴いてみてください!(僕にお金は入りません)

youtu.be

みんなのPython勉強会#34 Fintech & Blockchain 特集のまとめ

こんにちは、start python club の長野支部長の中島です。

 

 

いきなりブログを書き始めた きっかけ 

gihyo.jp

 

長野のGeekLab.Naganoというコミュニティを運営している中島祐樹さんは,東京の勉強会に参加した後,長野にもライブ中継してほしいというリクエストをくれました。そこでデスクトップ共有のウェブアプリを使って,長野のGeekLab.Naganoをサテライト会場として,ライブ中継しました。中島さんにはStapyの長野支部長として,月例の勉強会のライブ中継や巡業イベントを手伝ってもらっています。こうして地域的な広がりができたのもよかったです。

 

支部長と言いつつあまりに何もしていないのにも関わらずこういった記事とかで名前を載せていただいたりして、、色々と恐縮してしまうことばかりですので、少しは役立てるためにせめて前回の感想記事ぐらいは書こうと思います。

 

発表の動画は以下に残っています(これを公開して良いかどうかは不明)

 

youtu.be

 

みんなのBlockChain

 

あべんべんさんからblock chainについてでした。

twitter.com

 

speakerdeck.com

 

・FintechとはFinance(金融)Technology(技術)

  

ブロックチェーンとは

 

 

ブロックチェーンを学ぶ

 

ブロックチェーンのビジネス展開

仮想通貨だけではなく、本人確認、契約管理やIoTまでも??

個人的に面白かったのはデータの持ち方だけでなく社会や組織が階層-規律-統制から自立 -分散-強調型に変化してきているという話。

技術だけの話ではなく世の中全体がこのように変わってきているというのは面白い指摘だったように思う。

 

f:id:darakunomiti:20180509231741j:plain

 

あべんべんさんの読書量が半端ないのが凄い。
新しい時代を築く人というのは、技術だけでなくもっと世の中に対して広い視野を持って眺めていると感じた。

 

aidemyのブロックチェーン基礎は今は無料なのでやるなら今のうち!(2018/05/09時点)

 

 

新しい資金調達の形と、そこから始まる地方創生

登壇者はクラウドリアルティ川崎さん

 

スライド未upload

・エクイティクラウドファンディングという手法で土地や建物の取得をみんなからの投資で賄って、そこで購入した土地や建物を使って運用し、利益を出資者に分配するというビジネスを行っている

 

・つまり銀行とかではなかなか融資が難しいようなケース(京の町家など)に投資をすることでその建物から上がる利益で投資家が儲かるよ!ってことらしいです。

 

・昨今はやりのクラウドファンディングですが、金融関係の事業をやるときには法律の壁が厚くて色々大変だと感じました。

・本来は特区とかを作って?こういうのを突破できればいいのになぁと思いました。

 

・投資額は一口5万円程度らしいのですがプロジェクトによっては最低3口とかなので15万は最低必要っぽい

 

・技術的にはすべてpythonで作成

○シンプルに書ける

○PEP8などのコーディング規約のおかげでみんなが同じような書き方が出来る。

 

・エンジニアが一人しかいないと言うことで、一人でこれだけのシステム作っちゃうのはすさまじい生産性だなぁとも感じた

 

Python株式投資

 Smart Tradeの内田さん

発表資料

SmartTrade資料.pdf - Google ドライブ

 

・日本人が投資をしなさすぎて景気が悪いという話

投資信託を買うと3%の手数料を取られて損をする

・サラリーマン向けの金融商品はないのか??

 

・Quantxアドバイザー

無料で投資のアルゴリズム開発(python)と投資が出来る

f:id:darakunomiti:20180510000318j:plain

資料より引用

 

アルゴリズム開発は面白そうなのでやってみようかなと思います!!(間違っても使っちゃダメなものになりそうだけど・・)

 

まとめ

技術的な内容よりも金融株式的な話がメインだったが、もうすでにそれらの最新技術を支える裏側はpythonで支えられており、せっかくpythonのいろはが分かるのだから、こういった所にもちょっとやってみるとかしたいなぁと感じた。

 

今回からは長野支部長(誰?)ではなく1スタッフとして堂々としていられるようになにかこういった形でコミュニティに貢献していきたいなと感じました。

 

忙しい時期に体に起こったこと、これからどうするか

1月〜3月までデスマっていたのでその時に体に起こった不調をメモしておきます。

12月頭

風邪を引いたような気がする。

仕様は何も決まっていなかった。

 

2月7日

全身になぞのかゆみと腫れ、最初は電気毛布を消さずに寝ていたので全身低温火傷でもしたかと思ったけど、原因はじんましん。
飲み薬やら塗り薬やらを処方される。

ゴールのイメージは全くできていなかった。

 

2月以降

休日に夜中や朝まで働いてそのまま月曜日は休みを取って眠り続けると言った生命維持が必要な休息のみをとり続ける。

会社にいても自社にいてもslack通知が来れば24時間365日即時対応を求められるような状態ではっきり言って家にいても退社しても全く心は安まらなかった。

飯寝る仕事以外のあらゆることはできておらず、かなり病んでたと思う。

仕様はもちろん決まらないしテストもほぼなしでとにかく20時頃に欲しいと言われた機能を25時頃本番反映するような生活を続けた。

 

3月某日

せめてもの憂さ晴らしにSNSで暴れていたら会社のめっちゃ偉い人、1年に10回も顔を合わさないレベルの偉い人よりSNSの利用に関する注意喚起が入る。

中指を立てたかったが本人に言われたわけではないので堪え忍ぶ

 

3月某日

謎の歯痛。夜中ほとんど寝れず。
翌日痛みは治まったが念のために歯医者に行くも虫歯はないと言われるし歯周病などでもないし原因不明と言われる。
恐らく肩こりとかに起因するものじゃないかと思う。

 

3月終盤以降

休日に呼び出されることはなくなったのでまぁましにはなったと思う。

しかし、デスマ時にはこんな地獄から抜け出すためにギーラボでイベントを毎週開いてもっと楽にお賃金を稼ぐための行動をするんだと思いつつも現状何も全くできていない。

とにかく眠り続けたいの一心で生きている。

休みの日は11時頃起きてきてお昼を食べたら17時頃まで寝るような生活をしている。

もはや飯と睡眠と合間にアニメを見るだけの生活だ。

 

4月9日

仕事は落ち着いたが突然謎の歯痛が再発。
翌日になっても全く痛みが引かず。
虫歯がないことは3月半ばに確認済みなのでとりあえず内科に行くも耳鼻科に行けと言われる。

鼻の奥や喉は腫れているのでその影響かもと言うことで痛み止めと抗生物質その他が処方される。

熱は38度弱、原因は不明ながらとりあえず薬を飲み続ける。

 

本日

薬は尽きる、痛み止めは残っているので痛みで悶絶することはないのだろうが原因が分からないので恐怖の日々は続く。

 

原因)

老いてストレス耐性がなくなったのか今までにないストレスを受けて体がおかしくなったのかはよく分からない。

正直あまりの体力低下にこのままでは下請けIT業界で仕事し続けることはもう不可能なんじゃないかと思う。

 

もちろんデスマを乗り切っても休日が与えられるわけもなく、今月も単価に沿った労働をしなければならない。
ならないが今月すでに2日も休んだため絶賛遅延中、遅延しているのは分かっているが残業する気力もすでにない。

 

対策)

とりあえずラジオ体操を再開してみた。

あとアニメを見るときは寝っ転がらずに立って腕ふりなんぞをしながらみるようにしてみた。

目に見える効果はまだない。歯痛の原因も分からない。仕事は絶賛遅延中

Django SwaggerにQuery stringの項目も出したい!

環境

Django==1.11
django-rest-swagger==2.1.1
djangorestframework==3.6.1
coreapi==2.3.0

やりたいこと

swaggerにそのapiで対応しているQuerystringの項目名を表示してやりたい。
例) クエリストリングで日付を指定する必要があるapi
xxx.com/api/access_data?start=2013-03-04&end=2018-02-02

QueryStringのチェックはSerializerを使いたいのでSerializerを宣言したらそこの項目が自動的にswaggerに表示されると良いな

★最終的にできた画面 f:id:darakunomiti:20180404231728j:plain

やったこと


とりあえず、表示したいselializerを宣言する
selializer.py

class XxxxParameterSerializer(serializers.Serializer):

    start = serializers.CharField(help_text='開始日(yyyy-mm)', required=True)
    end = serializers.CharField(help_text='終了日(yyyy-mm)', required=True)

・Swaggerに返す用のBaseFilterBackendを宣言
ここでSerializerに書かれた内容を読んでcoreapiFieldにセットする。
serializerはserializer_classで宣言したものが渡ってきます。

import coreapi
from rest_framework.filters import BaseFilterBackend


class SwaggerQueryStringFilter(BaseFilterBackend):
    """
    create query string parameter for swagger
    """
    def get_schema_fields(self, view):
        fields = []
        for key, value in view.serializer_class._declared_fields.items():
            field = coreapi.Field(name=key, description=value.help_text, required=value.required, location="query",)
            fields.append(field)
        return fields

上記の二つをviewにセットする。
view.py

class MyApiView(APIView):

    serializer_class = XxxxParameterSerializer
    filter_backends = (SwaggerQueryStringFilter,)

    def get(self, request):
        """
        # コメント書くよ
        """return Response(datas)

ベストな方法かどうかは分かりませんが、とりあえず自分はこの方法で解決しました。

こつとしては filter_backends の宣言を一つだけにして汎用的に使えるようにしたぐらいでしょうか。

他のViewSetとかの時は?


ModelViewSet だと modelやserializerの宣言がされていると思うのでそれが表示されます。
その際には model.pyの書くフィールドの宣言のhelp_textがディスクリプションに表示されるのでhelp_textをがんがん書くといいのかなと思います。

調査するときに困ったこと


swagger 0.3の話がいっぱいあった →swagger0.3と 2系はかなり破壊的な変更がはいっているのでyamlにコメント云々みたいなのは0.3の話なので無視しましょう。

課題


Django swaggerってexampleとかtypeって表示できないのかなぁ・・・・(今の表示項目だけだとちょっと物足りない)

感想


APIのドキュメントを作るのはしんどいし、なにもないのもしんどいような場合swaggerがドキュメントの代わりを出来れば良いなと思って今回トライしてみました。
ただでさえ少ないDjangoエンジニアでDjangoRestFrameworkを使っててswaggerを使ってqueryStringをここに表示させたいなんて需要日本で他にあるのだろうか・・・