エンジニアの卵の成長日記

https://blog.toru-takagi.dev/profile/

【アスペクト指向JavaScriptフレームワーク】Cerny.jsの英語ドキュメント翻訳

Cerny.jsを翻訳した
Qiitaにあげたのだが、最近ガイドライン系で問題になっていて、消されてもおかしくない内容なのでこちらでもあげることにした



qiita.com





概要
導入
Cerny.jsは大規模な開発チームのJavaScriptプロジェクトの開発を容易にすることを目的としてJavaScriptライブラリ
以下の解決を提供する目標を達成しようとする

  • メソッド呼び出しをインターセプションする
  • 関数呼び出しの引数と戻り値の型チェック
  • 依存関係の管理
  • ロギング
  • スキーマに対するオブジェクトの検証
  • プログラミングの規約
  • 辞書
  • JSONをテキストやHTML形式で表示
  • 簡単な設定
  • 良いドキュメント
続きを読む

WannaCryとかいうランサムウェアが話題らしい

このランサムウェアはIT速報の記事で知った
研究室のメンバーがランサムウェアの研究をしているので、少し読んだが調べることはしなかった
だが、今日TwitterではWannaCryのツイートが多く、研究室の先生のブログでも取り上げられていたので、調べてみることにした
その結果を書いていこうと思う

ランサムウェアってなんだ?
特徴として、身代金を要求してくる
『お前の大事な画像やファイルを暗号化した!直してほしければ金払え!』みたいな感じ

WannaCry
画面をロックし制御不能にし、今までの作業はすべて中断する(あるサイトに書いてあったが本当?)
基本的にOfficeやプログラム、データベース等マイクロソフト系のありとあらゆるファイルが暗号化され使用不能になる
暗号化されるファイル一覧については以下のサイトで記載されていました
d.hatena.ne.jp

5月12日から全世界的に被害が拡大しているみたいで、フィッシングメールを通じてPCに感染するらしい
Windows SMBの脆弱性を利用

  • CVE-CVE-2017-0144

Windows SMBのリモートでコードを実行される脆弱性


問題の経路を通じて、ご自身のイントラのサーバ上にファイルがダウンロードされ、それを実行することによりそれぞれの端末が暗号化
その際に脅迫文となるファイルが作成され金を要求してくる

  1. 脆弱性を利用して侵入
  2. サービスプロセスとして不正なファイル実行
  3. 実際のランサムウェアとして振る舞う不正なファイルを作成
  4. 脅迫状の表示
  5. ファイルの暗号化(WNCRYファイル)

誰がこれを仕掛けた?
Shadow Brokersと呼ばれるハッカー集団が今年4月に米国の国家安全保障局(NSA:National Security Agency)からハッキングツールや攻撃コードを盗んだらしい

IPAの会見
注意喚起をするために会見を開いた。3月15日に修正プログラムが配布され、WannaCryの亜種だと考えているらしい。
日本での被害事例はなし(トレンドマイクロの記事だと被害が出てると言ってた)

IPAによる対策方法

  • 不審なメールを開かない
  • 添付ファイルは開かない
  • 不審なアドレスにアクセスしない
  • 何かあれば即急にシステム管理者に相談
  • 事前にバックアップ
  • サポート終了後の古いWindowsについても修正プログラムがが配布されているから更新をしよう
  • ウイルス対策ソフトの更新
  • 感染したらIPAの情報相談安心窓口等に相談

【第二話】先生のありがたいお言葉

書こうと思った理由
先日ゼミで発表があり、1チームがあまり良いとは言えない発表だった
先週までの成果、今週の成果、来週までの目標のみで5分ほどだった
しかも、発表の一週間前に先生から『やったことのモチベーションをちゃんと書け』と言われたのだが、
それもなかった

初めて先生に怒っている姿を見た
そこで話してくださった内容が印象的だったので、残しておこうと思う


先生のお言葉
ルールを変えることは強制力を働かせるということ
これは最後の手段ということだ
世の中は効率が高いことが大好きである
効率が高いということはうまくいく方法を最初に取るということ
仕事が辛いと言っている人の半分くらいは自業自得
怒られないとやらない人だから、上司は面倒だけど怒っている
最初から全力を出す。そしてもっと頑張れと言われた時に、これ以上は出来ませんと言えばいい。
それを繰り返せば、上司はこの人は最初から全力を出す人だとわかってもらえて、怒らなくなる。
普通の人なら、怒るのが無駄だとわかるから
もう少し頑張れると人に思われることはよくない
だからまずい。一回目でできないのは



最後に
自分で取った議事録の内容をブログにしているので、少しニュアンスが違うかも
自分は結構好きな言葉でした

VMwareを使ってCentOS7でインターネット接続までの環境構築

今回の記事は、ちょっと前に大学の大きなサーバに仮想環境を構築したよって話


なぜ構築することになった?
背景として、僕が所属している研究室だけ大学のサーバに仮想環境を構築することが許されている
(先生がサーバ担当者だから僕たちのために許可をもらってくれたらしい)
だが、僕は一年生の時に研究室でCentOS6.5のしょぼいWebサーバを構築したので、勉強するだけならそれで十分だった

最近Googleカレンダーの内容をSlackにつぶやくシステムを作った
qiita.com


自分で作っといてなんだが、以外と便利
このシステムとwena wristの組み合わせはとても最高


話を戻すと、常時動かしている自作PC1号機には余計な仕事をさせたくなかったので、
このシステムは自作PC2号機(メイン)で動かしていた

このシステムのためだけにメイン機を常時起動は嫌だったので、
大学のサーバで動かしてもらうことを決意した



環境構築

まずはContOS7のインストール

f:id:kurowasi2525:20170428014028p:plain
f:id:kurowasi2525:20170428014043p:plain
f:id:kurowasi2525:20170428014052p:plain
f:id:kurowasi2525:20170428014059p:plain
f:id:kurowasi2525:20170428014103p:plain

今回はこんな感じ

一番驚いたのは2階にある大学のサーバが4階の研究室のPCに入っているISOファイルを使ってインストールできること
ほとんどの人が普通だろ!って思うんでしょうが、僕は不思議な気持ちになりました

f:id:kurowasi2525:20170428014108p:plain
f:id:kurowasi2525:20170428014112p:plain


インストール完了!

Proxy設定
/etc/yum.conf を修正

#Distroverpkegの1行下に追加
proxy=http://000.11.222.33:80

CentOS7からネットワークの設定方法が変わったみたい
CentOS7からの推奨ネットワークマネージャー TUIを使用

$ nmtui
Edit a connection 
 ↳ens192

IPv4CONFIGURATIONに変更
Addressを『000.111.222/24』に設定
 ※末尾のビット数は初期で32に設定されているため24へ変更
Gatewayを『000.111.22.333』に設定
DNS serversを『000.111.22.33』を追加
Require IPv4~~~~を有効にする
IPv6に変更
Automatically connectを有効化する

Automatically connectを有効にすることでNICが自動で有効になってくれる
NIC(Network Interface Card):ざっくり言うとLAN(俗に言うインターネット)に接続する際に
必要なカード(基盤のようなもの)


これで終了!
以下はシステムを動かすときに入れたものや、他の時にいれたやつを記載

MySQL関係

$ yum install -y http://dev.mysql.com/get/mysql-community-release-17-5.noarh.rpm
$ yum install -y mysql-community-server

PHP関係

$ yum install -y php

Apache関係

$ yum instal -y httpd
$ firewall-cmd --permanent --add-service=http
$ systemctl enable httpd

Git関係

$ yum install git
$ git config --global http.proxy http://000.11.222.33:80
$ git config --global https.proxy http://000.11.222.33:80
$ git config --global http.sslVerify false

NVM関係

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.26.1/install.sh | bash
$ source ~/.bashrc


以上!
作成してから2週間くらいたったが、今のところ何の問題もなく動いてくれています

【第一話】社会人になっても使えそうなエンジニア経験談

今日バイト先で褒められた内容を書いていこうと思う
気をつける点を記録することで、また正解を選ぶことができると思うからである

今回学んだことは2点

  • 送られてくる情報に無駄な情報はない
  • 自分の先の工程を想像する

とても当たり前なことですが、重要だと再認識しました。
新社会人には基礎が大事だと思うのでメモメモ

今回の仕事は『システムの画像が古かったり、ダサいものをExcelにまとめて提出して』でした。

自分に仕事が来るまでの経緯はこんな感じ

f:id:kurowasi2525:20170419225525p:plain


上記の経緯が把握できたのは開発部のCさんが送ってくださったメールからである
内容はこんな感じ

高木徹さん。

システムを触って古い画像などを見つけてExcelにまとめてください。

今日一日で終わらせるのを目標にしてください。
午前中は会社にいます。

開発部 C

>>開発部 Bさん
>>
>>わかりました。
>>バイトの日程を確認しときます
>>
>>開発部 C
>>
>>
>>>>開発部 Cさん
>>>>
>>>>いつも通りDさんに修正してもらって
>>>>
>>>>画像の洗い出しはバイトでもいいのでExcelにまとめて
>>>>レビューは私がします。
>>>>
>>>>開発部 B
>>>>
>>>>
>>>>>>開発部 Bさん
>>>>>>
>>>>>>システムの画像をどうにかしてくれませんか?
>>>>>>・○○の画像(画像が荒い)
>>>>>>・○○の画像(画像が古臭い)
>>>>>>など
>>>>>>
>>>>>>営業部 A


Excelのフォーマットは自由だったので、全部の画像を保存し、『変更が必要なもの』『自分では判断できないもの』『絶対に大丈夫なもの』の3シートに分けてCさんに提出した

Cさん曰く、シートは多いと確認が面倒とのこと
当たり前だが、1つのシートにまとめすぎるのはよくないが、綺麗にまとめることが可能であればシートは少ない方が確認しやすいみたい
(当たり前と言えば当たり前か。。。 クラス図の設計と同じ感じかな?(笑)
一つのシートに表現することに。。。


自分なりにフォーマットを考えた結果

  • 元の画像の列

    理由を言わなくてもわかりますよね笑

  • 変更が必要か『○』『△』『×』で表現する列

    これなら変更が必要なものかわかりやすいかなと思い
    (最初は変更が必要な画像だけをまとめたExcelファイルを提出ということだったので、
     変更が必要ないものを貼るのは見づらくするだけだと思ったのですが、
     自分の判断だけでシステムの出来が変わるのが嫌だったので、
     上の人にも判断してもらえるように、全ての画像を貼りました。
     ダメだという指摘を受けなかったので、今回は正解かな?)

  • ダメな理由を書く列

    DさんもこのExcelファイルを見ると思ったので、
    直すべき理由(画像がダサい、画質が悪いなど)が書いてあれば、
    修正すべき点を考えたり、経緯を理解したり、誰かに聞いたりしなくても済むと思った

  • Dさんが作成してくれた画像を貼る列

    開発の人がどこの画像をどの画像に変更すれば良いかわかりやすくなると思ったのと、
    比較しやすければBさんがレビューしたやすいと思い、この形にした



社会人の人からしたら当たり前だわって感じだと思います。
ですが、学校では1言われたことを10やってくる方法をあまり教えてくれないと思う(教えてくれてるのかも。。。)

今回、1言われたことを10やろうと思って、-10になったりしなかったのはよかった
午前中には終わらせたかったが、午前には終わらせることができなかったが、
昼休憩後にはOKをもらえたのはよかった

今日中に終わらせてねって言われたものを80%くらいのクオリティーで〆切の半分くらいで出した
100%のものを〆切付近で渡すより
80%のものを〆切の半分で提出したほうがいいのかも


そんな試行錯誤を繰り返すバイトの日々です