読者です 読者をやめる 読者になる 読者になる

2017年触っておきたい技術メモ。ときどきJavaリパーク。

雑記

2017年流行りそうな技術、あるいは今まで逃避していた関連の触っておきたいもの。

わーい!くるしーい!じごく!

  1. QUIC(HTTP2)
  2. WPA
  3. WebAssembly
  4. Java9
  5. PostCss
  6. Promiseのソースコード
  7. デプロイ手法
  8. Web VR
  9. 静的型付けとOOP

1.QUIC

ドラフト中だったはず。英語だね、日本人なので辛いよ。UDPベースの新しいプロトコル、現在ドラフト中。HTTP2の時代はHTTPSのついでに来るだろうと見ているので、やっておきたい。

HTTP2のTLSとかそういった部分に残る課題を解決したい意図がある模様。

HTTP2ついでに一緒にやっておけば手札が増えて得じゃない、くらいの感覚でやりたい。

もしかしたら、UDPが陽の目を見る世界ができるのかもしれない。

 

2.WPA

WebProgressiveApps。2016年からよく出ていた言葉ですね。ServiceWorkerをきちんとやっておきたい。

 

3.WebAssembly

Chrome58で使えるようになるみたい。Javaが使えるのが一番いいのだけど、ダメならダメでMozilaが作ってるあの言語とかでやってみたいですね。

今年、かなり盛り上がりそうな部分だと個人的には予測。根拠は勘。

 

4.Java9

今夏、延期さえなければリリースされるはずのこれ。本当にリリースされるかわからないが、モジュールシステム等のJavaにおいて画期的な仕様が新規に組み込まれるので結構楽しみにしている。後もう少し暗号系とJSON扱いやすくなってほしい。

 

5.PostCSS

出来れば触りたくない。僕はChatOpsのようなUIがいらない世界が一番好きだ。

 

6.Promiseのソースコード

Futureでもいいのだけれど。Pub/Subでキューイング~みたいな話を聴いたのでちょっと追ってみたい。多分2日で挫折すると思われる。

 

7.デプロイ手法

Dockerとか。この辺り正直かなり時代遅れなので、ブルーグリーンデプロイとかそのあたりから、最近までをきちんと追いたい。DockerはGitとかと同様に必須の世界になるのだろうか。

 

8.WebVR

WebとVRデバイス接続インタフェースが存在するので、ちょっとやってみたい。ただの興味。日本はミーハーだし僕は日本人。

 

9.静的型付けとOOP

TypeScriptじゃないよ、Null安全もないよ。Javaだよ、Javaリパークだよ。わーい!すごーい!くるしーい!

Protectedとかそういった部分をきちんとやりたいわけですね。プリミティブとかジェネリクスとか面倒な部分はあるけれども今年はきちんとJavaを身につけたいわけ。

とりあえず、Effective Java。そしてnio、マルチスレッド。

 

 

これ流行るよやれって奴あったら教えてください。

 

では。

好きになるその瞬間を。

見てきました。クリスマスイブ、オタクと二人で。

 

川崎の舞台挨拶、多分4回目くらいのアレ。(客が入らなかったのか)シアターが変更されてるとか、第一週からの特典全部貰えるとか、あまり売れ行きよくないのかな的な雰囲気を感じつつ。

 

以下は、ネタバレのような、ただのメモ書きのようなもの。語彙力0のオタク感想文。

 

108の設定の1つ、僕ラブコメが好きって満面スマイルではしゃいでた隣のオタクが一番印象に残った。

 

内容としては、歌の内容を映画一本分に強引に引き伸ばした感が否めない。前作に比べると少し構成とかが雑な印象を受けた。雛の一人語りで序盤の場面の切り替わりをしていたのと、中学の時の話を随分引っ張ったなーと。

後、(多分)乃木坂の演技がめちゃくちゃ下手だった。歌だけでええやんけ。

個人的には、高校入ってからの(歌の部分以外の)部分を濃くしてほしかったなとか。

ずっすきの方が良かったなとか思っちゃったので、もっと頭空っぽに純粋に楽しめばよかったなー。

 

とはいえ、作画もよく、最後のシーンで雛がぬるぬる動いていたのはすごかった(KONAMI)

瀬戸口雛好き、可愛いので。神谷くん演じる優もかっこいいしストレスレスだし、瀬戸口家好きすぎて好きになった。

ついでに松岡君が出演してて、好き、好きーてなってしまった。松岡君、好き。

 

終盤の虎太郎が校門で泣いてる雛にかけた台詞が、二次元の幼馴染にだけ許された台詞感があってよかったです。

後、EDの静止画かなり好きだったし、アレ映像化してほしい。頼む、予算降りて。

 

 

舞台挨拶は割愛。

 

書いてて思った、この映画について語れることのNASA

 

とりあえず、AWよりは面白かったです。

君の名は>ユーフォ==聲の形>>好き瞬>>>>>>>>>>>>>>>>>>>>>>AW

 

 

【忘備録】DjangoとJSONとAjax

python

Djangoで、AjaxでDBからデータを取得、JSON形式で返すためのメモ。

 

 

まず、AjaxDjangoでするには、postだと下記ページのような処理が必要。

Django公式:https://docs.djangoproject.com/ja/1.10/ref/csrf/

 

DjangoにはデフォルトでJSONresponseやserializeのようなJSON変換用のライブラリが存在するが、Modelのデータを直接取ってJSON化するため、pk等の不要なデータまで送られてしまい微妙である。気になったら公式に例があるので動かしてください。

 

そこで今回は、Pythonのライブラリを使って、Ajaxのために別でJson変換用の関数を定義し、そこへurls.pyで飛ばすように制御することを考えた。

 

sample/models.py

class Sample(models.Model):
    name = models.CharField(max_length=30)
first = models.CharField(max_length=30)

sample/ajax.py(views.pyの代わり)

 

def SampleListAjax(request): 
objs = Sample.objects.all()
data = [dict(name = obj.name, first = obj.first) for obj in objs]
json = json.dumps(data)
return HttpResponse(json, content_type="application/json")

 

 

sample/urls.py

 

class urlpatterns=[
url(r'^sample/',ajax.SampleListAjax)
]

 

後は普段通り、JavaScript系の何かでAjaxして設定したurlにリクエストしてJSONデータを取得するだけ。

 

 

【django】クラス汎用ビューについて

python

タイトル通りクラス汎用ビューの覚書きです。

 

Djangoの公式チュートリアルでは関数ベースのビューを使っているため非常につかみ辛かったのですが、何とか消化できたので記載。

 

クラス汎用ビューとは

雑に言うとあらかじめDjangoが用意してくれている、汎用的なビューのことです。

基本的にFormviewやListviewなどのクラス汎用ビューを継承して、テンプレート用のHTMLに指定された変数名を記載しておくだけで画面が作れてしまうという非常に便利なものです。

 

例:ListView

mysite/sample/urls.py

from django.conf.urls import url
from django.views.generic import ListView

urlpatterns = [
url(r'^sample/',SampleListView.as_view(),name='sample'),
]

 

mysite/sample/views.py

template _nameを指定しないと、sample/model_list.html を参照するっぽいです。

from django.http import HttpResponse
from django.views.generic import ListView
from sample.models import Sample
@method_decorator(login_required, name = 'dispatch') class Sample
ListView(ListView): model = Sample template_name = 'sample_list.html'

mysite/sample/models.py

from django.db import models

class Sample(models.Model):
    name = models.CharField(max_length=30)

mysite/template/sample_list.html

上のviews.pyでget_context_dataをオーバーライドして取得データをprint してみると何取得してるかわかります。

<table>
<thead><tr>
<th>id</th>
<th>name</th>
</tr></thead>
<tbody>
{% for sample in object_list %}
<tr>
<td> {{sample.id}}</td>
<td> {{sample.name}}</td>
{% empty %}
<a> empty </a>
{% endfor %}
</table>




(importしてるものちょくちょく抜けてたりしますが、)こんな感じに適当にコーディングしてあげるとDjangoが勝手に解釈して作ってくれます。

もちろんクラス汎用ビューはget_context_data()等を持っているのでこれらをオーバーライドして処理を加えたりすることもできます。

CreateViewやFormViewなど色々な汎用ビューがあるので詳しくは公式Docmentを読んでみてください

Django公式

https://docs.djangoproject.com/ja/1.10/topics/class-based-views/

 

(何か間違いなどありましたらご指摘お願いします。)

 

 

【忘備録】Django1.10の基本的なこと【Django環境構築】

python

Django、初めて触ったので覚書き。Flask使いたい

ついでにDjangoの比較的新しいバージョンの日本語の記事あまり見ないので記載。

続きを読む

【雑記】ここ2カ月でやったこと

雑記

忘備録、ここ2カ月でやったことのメモ。

 

Jqueryの基礎学習

on()でDOM生成詰まった、読み辛いなって感じ。とはいえ、やろうと思えば一通り何でも出来ちゃうので助かる。

 

ブロックチェーンの概況

BitCoinが生み出したイノベーションのお話。マイナーとかPoWとかあるいはスマートコンストラクトとか。

 

読みやすいコードのお話

単純にリーダブルコードを読んだとか、あるいはUNIXの思想やDRY、KISSとかそんな話を学んだだけ。

新卒研修で、散々同期のWETなコードや外にはみでてるコードを読まされて非常にストレスだったので真っ先に勉強した。あの研修で教えていたことをすべて否定するような内容だったので余計悲しくなったりしたが、綺麗なコードをより意識するようになった(できるとは言っていない)。

 

SQLアンチパターン

論理設計のお話。僕自身これは大学でちょろっとやっていたのでその延長線上で。

小さいシステムのDBを設計することになり、自分が保守するので、過去SE達が踏んできた地雷を踏みたくないが故に勉強。設計しててここ臭いなって部分、だいたいアンチパターンにあったので先人は偉大なり。

 

並行処理(マルチスレッド)

これはJavaの並行処理。どうやってアトミック性を維持するのとか、これがって思う奴もあったし、これ当たり前だけど実装できるか怪しいとかそんなこと思いながら勉強。

実装は誰でもできるけど、安全に公開しながらの実装は非常に難しそう。

僕はConcurrentを信じようと思いました。

 

暗号のお話。

話し飛び飛びだけど、ブロックチェーンのために勉強。鍵のお話からハッシュ、認証、署名等々一通り学習。今やって意味あるのかって言われると、まぁなさそう。

途中で互徐法書いたり色々やってたらちょっと時間かかった。

 

NetWork

DNSとかHTTPとか表面上はだいたい知っていたけど、それだけじゃヤバいよねって話で勉強。基礎の基礎くらいは身についた(と感じる)。RESTとか色々あるのでもうちょっと学習が必要だと思った。

 

 

色々寄り道をしてふらふらしながらやっていたとはいえ、2か月でこんだけしかやってないんだなーと思ったり。精進します。

 

 

今後学びそうなこと

 

 

 

新卒ITエンジニアが新人研修を終えて思ったこと

雑記

タイトル通りです。

何やったかというとIT全般のこととJavaについての研修を数か月程でした。

非常にもやっとしたものだったから吐き出させてほしいということ。

 

 

今後誰かの新人研修にプラスになってくれればと、軽い気持ちで抽象的に記載します。

 

1.Javaの開発環境が非IDE

ビビった。まさかコマンドプロンプトとエディタで書かされるとは思わなかった。

初学者に対して学習コスト的にもIDEを使うべきではないかなーって。

Servletになった途端Eclipseになったんですけどね、それなら最初から使わせてほしい。

 

2.最新技術云々の資料が2年前のもの

堂々とプリンタされてる、copy right 2014の文字見て圧倒されました。しかも4年前くらいに通ってそうな技術。クラウドとか3,4年位前にやった記憶あるんだけどなぁ……。

そもそも資料そのものが、そこら辺で酷評されてそうな文系でもわかる~みたいな本の、それ以下の内容だったので使い道がない。でもコストは20倍くらい。

webアプリケーションの話でHTTPの話一度も出てこないときは呆れを通り越して笑った。TCP/IPじゃねーんじゃ。

 

3.提供コードが微妙

せめてStringの条件判定に==はやめよう。あと意味のないロック。ついでに誤字脱字ばかりのDocment。こんな糞コード書いてるやつが俺より金貰ってると思うと腹が立つ。

 

4.講師の英語の発音が違う

せめてif elseくらいきちんと発音してくれ。なんだ”えるそ”って。慣れ過ぎてうっかり発音して笑われたじゃん。

英語に限ったことではないけど、きちんと読めないとほんとに馬鹿に見えるんだなと実感しました。漢字読めない人間なのでこれから気をつけていこうと心に誓いました。

 

5.何のためのMVC

MVCモデルを採用して成果物の作成をした。なぜかロジックの単体テストはしなくてよかった。他人の書いたロジックでエラーにはまった、結局テスト書いた。僕、なんでMVC使ってるのか色々分からなかった。デザパタを盲目的に信じてはいけないということを教えたかったのだろうか。

 

まとめると

 

・最新技術はきちんと最新の技術について触れよう

・開発環境はIDEを使おう

・非推奨なコーディングはやめよう

・英語の発音はしっかりしよう(後輩に馬鹿にされるよ)

単体テストはきっちり書かせる研修にしよう

 

以上です。書いてて悲しくなってきた。

 

まだまだ色々あったんですけど、必要なことを端折りに端折って、そんなの現場に一週間放り込めば身に着けられるだろってことを延々とやらされました。専門学校と一緒だね()

 

そんなこんなで数か月後に弊社に戻って、サーバ側、Linux、並行処理……。要は今辛い。

IT研修は集団でやるものではないのかもしれない、本が資産といわれるのも納得できる。

思い出せば思い出すほど研修内容は酷かったなぁと思いました。

同期に会えて楽しかった部分もあるけれども。