君は心理学者なのか?

大学時代に心理学を専攻しなぜかプログラマになった、サイコ(心理学)プログラマかろてんの雑記。

JavaScriptのgetter, setterについて復習してみた

getter, setterとは オブジェクトに値を代入したり、 参照したりする時に呼ばれる関数のこと。 書き方 set {プロパティ名}(value) { // 処理 } get {プロパティ名}() { // 処理 } のように書く 実例 var obj = { set value(val) { this._value = val + 1; },…

json-serverが鬼のように便利で、しかも可愛かった

いきさつ APIのmockがほしかった。 今までexpressとかで実際にAPIをつくっていたのだが、 ちょっとめんどくさくなってきた。 何かいい方法がないかな〜と思ってたら「json-server」という良さげなものがあったので試してみた。 github.com install npm insta…

【突然の沈黙】JavaScriptのobjectスプレッド演算子について

いきさつ ソースコードを読んでいたら、 var arr = [1, 2, 3] var arr2 = [4, 5, 6] arr.push(...arr2) とつぜん処理の中で沈黙(...)し始めた。 気持ち悪かったので調べてみた。 ドキュメントを見てみる スプレッド構文を使うと、関数呼び出しでは 0 個以…

Vue.jsにて、特定のroutingの時に後からComponentを読み込む〜ログイン後にコンポーネントを読み込みたいからLazy Loadしてみた〜

いきさつ ログイン前はログインコンポーネントだけ、 ログイン後はアプリケーションに必要なコンポーネントを読み込みたい。 目的は、 ログイン前に読み込むJavaScriptソースコードの軽量化と、 それによるセキュリティリスクの減少。 やりかた はじめ、こん…

Vue.jsでComponentを利用する〜templateのみ〜

いきさつ 職場でVueを使うので勉強する必要がある。 とりあえず vue-cliを使っても良いが、 きちんと理解したいので生で書くことにした。 ルートコンポーネント <html> <head> <meta charset="utf-8"> <title>Vue TEST</title> </head> <body> <div id="app"> <my-component></my-component> </div> <script src="./vue.js"></script> </body></html>

イスラーム過激派のハッカーが知人のサーバをハッキング。マルウェアが6000個検出された話

いきさつ 知人のサイト(WordPress)が見れなくなったということで、 とりあえずsshでログインしてみた。 とりあえず調査 探し方としてはかなり荒っぽいけど、とりあえず phpファイルのうち、evalを含むファイルを検索した。 find . -type f -name "*.php" |…

ファイルのタイムスタンプを保持したまま、scpコマンドで転送する

いきさつ サーバからファイルをダウンロードした後、 日付情報を用いてファイル処理をする必要があった。 コマンド scpコマンドにpオプションを付けるだけ。 scp -rp remote_host:remote_dir local_dir ちなみに ファイル転送時に新しく作られるディレクトリ…

【OSSリーディング企画】BootstrapのJavaScriptを読み解く【その1】

いきさつ Bootstrap、すごい便利。 htmlタグさえドキュメントどおりにおけば*1、 カルーセルは動くわモーダルは開くわアラートは出るわ、、、 いつも本当にお世話になっております。 ただ、、、ただね、 「なんで動くのか」について全然考えたことがなかった…

つるのおんがえし〜「決して、この部屋をのぞかないで(Permission denied)」〜

この記事のゴール この記事を読めば、 $ ls hoge d rwx-----x. 1 owner group 4096 Dec 22 15:48 hoge この rwx-----x が読めるようになる(ハズ)です。 あらすじ おじいさんが罠にかかっているつるを見つけました。 苦しんでいるつるがかわいそうだったの…

【Java言語で学ぶリファクタリング入門】クラスの抽出

いきさつ 昔書いたコードが悲しい感じだった&どこから手を付ければよいかわからない感じだったので、 リファクタリングの知識が欲しかった。 そしたら手元にこの本があった。 リファクタリング前 Playerクラス class Player { private _currentMedia; priva…

【Node.js】Expressをinstallして起動(npm start)するまで

いきさつ 少し作りたいものがあったので、 Expressをinstallして起動してみる 手順 express-generatorをグローバルインストール $ npm install express-generator -g expressコマンドでプロジェクトを作成 $ express restapi 必要なnode_moduleをinstall $ c…

【CTF】サーバをハックする〜Simple Auth IIとSQLiteと〜

いきさつ セキュリティの勉強も兼ねてCTFの問題を解いてみた。 サーバをハックするより前にソースコードが見えているので ハックするような大したことはしていない。 問題 ksnctf.sweetduet.info 20ptなので超簡単ということだが。。。? 考えたこと ログイ…

#Cでsocket通信をしてみる。ついでにnetstatでlistenしているポートを調べる。

C#でソケット通信 職場でC#を使うのと、 ソケット通信に興味があるのでちょっと練習してみた。 ソースコード server側 using System; public class Server { public static void Main() { string ipString = "127.0.0.1"; System.Net.IPAddress ipAdd = Syst…

iphoneを探していたはずなのに、いつしか私は死に場所を探していた。

※ 学生の頃の話です その1 眩しくて、白くて、冷たい。 どこかで蛍光灯が光っていて、それが網膜に突き刺さっている感覚。 ぺらぺらの布団から感じる、硬い床の感覚。 妹が弾くピアノの弦の振動が、体を這う感覚。 そして、見覚えのある部屋。 どうやら無事…

以前勤めていた会社で、どうやら宇宙飛行士の募集を開始したらしい

なんとなく 前勤めていたシステム会社の求人を見ていて驚いた。 面接の流れ のページには確かにこう書いてあった。 「面接は1次〜7次面接まであります」 これ宇宙飛行士の選考かよ! が、落ち着いてよくよく考えてみると、、、 これマジで宇宙飛行士採用しよ…

目が覚めると、女物のパンツが、ポケットに2枚、入っていた。

※ ノンフィクション その1 この間ものすごく酔っ払って家に帰った。 朝起きたら目線がすごく低かった。そして寒い。 どうやら昨夜(ほぼ朝)、 家につくなりすべての鎧を脱ぎ捨て、そのまま床で寝てしまったらしい。 あたりには服が散乱し、僕の肌は寒さで…

sedコマンドを使って、特定の文字列以降を削除〜ソースコードのコメントを削除したかったの〜

いきさつ sample.txtの内容は以下。 $aa = 'hoge'; // コメントだよ $bb = 'fuga'; // コメントだよ このファイルから、コメントだけ削除したい。 つまり、//以降だけ削除したい。 結論 sed -i '.bak' -e 's/\/\/.*//' sample.txt 解説 iオプション これがな…

macにscalaをinstallして、コマンドラインからscalaを実行する

いきさつ 業務でscalaを使いそうなので、とりあえずhello worldをやっておきたかった。 手順 jdkをinstallする brew cask install java sbtをinstallする brew install sbt@1 scala console(名前は会っているのか?)を立ち上げ sbt hello world scala> pri…

カレントディレクトリ以下にファイルがいくつあるか、再帰的に探索して確かめる

結論 ls -lR | grep '^-' | wc -l 解説 ls -lR lオプション…ファイルの情報を表示する Rオプション…ディレクトリ内のファイルも表示する grep '^-' 先頭に「-」が含まれている行を表示。 wc -l 行数をカウントする。 なおオプションを変えると、 バイト数、…

You can't specify target table '***' for update in FROM clause〜MySQLにて、サブクエリのみに適用されるエラーがある〜

こういう感じのSQLを書いた UPDATE parent SET name = 'hogehoge' WHERE parent_id IN ( SELECT parent.parent_id FROM parent LEFT JOIN children as c ON parent.parent_id = c.parent_id ); そしたらこんなエラーが出てきた You can't specify target tab…

scpでリモートサーバからローカルにファイルを落とす&ローカルからリモートに転送する

↑ test-serverにあるfilesディレクトリの中身を、localに落としてきているところ。 scpコマンドについて ファイルを送信したり、受信したりすることができる。 ファイル送受信時に使用するプロトコルはsshプロトコルなので安全。 また、使用帯域なども絞れる…

canvasで画像を表示する

いきさつ canvasを使って画像のリサイズをしたり、 画像のくり抜きがしたかったので、まずはcanvasで画像を表示できるようにした。 手順 1. input type='file'で画像を登録できるようにする <input type="file" id='file'> 2. fileを登録した時にイベントが発火するようにする /** input要…

macのlocal環境にtypescriptを導入

職場が静的型付け言語使ってきた人が多いので、 その人達の学習コストの事だったり コンパイル時にバグを発見できたりであったり そんな事情でtypescriptを使っています。 導入の仕方の備忘録。 typescriptの導入 1. typescriptをglobal install npm install…

地下アイドル「私、ぜったい売れっ子アイドルになるんだから!」で学ぶデザインパターン(Observer)〜アイドルとオタクを疎結合にしてみた〜

ある日の地下アイドル 地ア「は〜あ。今日もライブは3人しかこなかったなぁ」 地ア「きょう来てくれたのは、たっくんと、しのぶんと、ゆっきーか」 地ア「この3人、いつも来てくれるんだよねぇ。大事にしなくちゃ」 地ア「私、ぜったいに売れっ子アイドル…

【JavaScript】画像をdrag and dropしてサムネイルを表示する〜DragEvent, DataTransfer, File, FileReaderオブジェクトについて〜

こういうのがやりたかった 手順 簡単に言うと、 DragEventからDataTransferを取得 DataTransferからFileを取得 FileをFileReaderで読み込み、サムネイルとして表示 という手順になります。 1. dropエリアの準備 1-1. まずはdropエリアを作成する imgは後でサ…

bashで特定の文字列を含むファイルの名前を、一括置換する

bashである文字列を含むファイルについて、一括置換したかった カレントディレクトリにあるファイルのうち、 無題を含むものをmudaiに変える、みたいなことがしたかった。 結論 解説 まず、以下のようにファイルを準備します。 $ touch hogeA hogeB fugaC こ…

MySQLにて、特定のカラムに日本語が含まれているかどうかを抽出

あるカラムに日本語が含まれていることを検出したい 結論 あるカラムに対して、 LENGTH CHARACTER_LENGTH の値が異なることを利用する。 SQLの例 SELECT * FROM table_name WHERE LENGTH(column_name) != CHARACTER_LENGTH(column_name); 解説 LENGTHは「バ…

sshのセキュリティ設定で、なぜポートを22から変えるとよいのか〜サーバとポートと/etc/ssh/sshd_configと〜

サーバのsshdプロセスに対して、1日900回以上の不正アクセスがあった 詳しくはこの記事。 karoten512.hatenablog.com 対応方法の一つ /etc/ssh/sshd_configを編集し、 sshdがlistenしているポートを22→10022に変える。 そもそもポートとは サーバでは、いろ…

user「PPAP」からの不正アクセスを検出しました〜sshdのログ(/var/log/secure)から不正ユーザの名前を取り出し、セキュアじゃないユーザ名について考えてみた〜

存在しないユーザからのアクセスがあった Failed password for invalid user *** from ... これは、 「linux上で登録されていないユーザ *** からのアクセスがありました」 ということ。 今回、攻撃者がどんな名前を用いてアクセスしてくるのか 探ってみる。…

僕が借りているサーバが、世界各国から「1日900回」不正アクセスされている話〜/var/log/secureからみえる攻撃者の影〜

私用で使っているサーバの/var/log/secureをみてみた 見に覚えのないアクセスが大量にある。。。 しかもuserはrootだったりadminだったり。。。 これ、不正アクセスってやつか? 1日どれくらい不正アクセスを試みられているのか 2/4の不正アクセス回数を、…