君は心理学者なのか?

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

2018-01-01から1年間の記事一覧

【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 眩しい。どこかで蛍光灯が光っている。 背中にはぺらぺらの布団と、硬い床の感覚。 目を開いた。見覚えのある部屋。 どうやら無事に家に帰ってきたらしい。 その2 眼鏡を探す。ない。 スマホを探す。これもない。 目がさめると、…

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

なんとなく 前勤めていたシステム会社の求人を見ていて驚いた。 面接の流れ のページには確かにこう書いてあった。 「面接は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の不正アクセス回数を、…

puttyからsshでログインしようとした時に、Disconnected: No supported authentication methods availableと言われてしまった

puttyを使ってsshでパスワード認証を使ってログインしようとした こんなエラーが表示されました。 Disconnected: No supported authentication methods available とりあえずサーバに入り、/etc/ssh/sshd_configをみてみる いろいろな原因が考えられるが、と…

duコマンドを使って、現在いるディレクトリにあるファイルの合計サイズを出したい

現在いるディレクトリにあるファイルの合計サイズを出したい $ du -sh . 解説 sオプションについて sオプションをつけないとどうなるか $ du -h . 1.2G ./directoryA 1.2G ./directoryB 24K ./pra すべてのディレクトリのサイズがでてくる。 つけるとどうな…

Angularを使って、カートで商品を選択する画面を作ってみた〜親子コンポーネント・サービス間連携をしてみる〜

Angularの復習をしようと思った 今回の開発で、Angularを使った。 基本フロント側は一人で開発をしていたが、 1画面で扱っているコンポーネントの数が600個をこえたり、 画面間で引き継ぐ項目がどんどん増えてきたりで、 だんだん大変なことになってきた。 …

module.exportsとは何か、どうもわからなかったので実験してみた〜Node.jsにて外部moduleをrequireする〜

いきさつ 今まで何も考えずに npm install して、 var module = require('module-name'); して使ってきたが、 Node.jsについて知らなさすぎて、 node_moduleディレクトリ配下に格納されているmoduleをみても、 ぜんぜん読めないことに気づいた。 exports.mod…

本番環境にテストデータを入れてしまったときは、deleteではなくtruncateでテーブルからレコードを一掃しよう〜deleteとtruncateの違い〜

いきさつ 社内で使用するシステムの開発が一旦落ち着いたので、 本番環境構築することになった。 といってもすでにテスト環境を構築しているので、 慣れたものである。 種々のインスタンスを立ち上げ、ansible用のユーザを作成し、 playbookの諸々の設定位置…

シェルで文字列を比較したときに、[: =: unary operator expected :というエラーがでる

いきさつ 空行を検出するスクリプトを書いていた 古池や 蛙飛び込む 水の音 をシェルに読み込ませ、空行があったときに 「空行があるよ」というスクリプトを書いた。 ※ 実際の処理を簡略化してます #!/bin/bash while read line do if [ $line = '' ]; then …

1つのファイルを複数のディレクトリにコピーしたい〜UNIXコマンド:xargsとcpについて〜

1つのファイルを複数のディレクトリにコピーしたい dir1, dir2, dir3にfileをコピーしてばらまきたい。 結論 echo dir1 dir2 dir3 | xargs -n 1 cp -v file 読み解いてみる xargs とは 標準出力をコマンドライン引数に変えるコマンド。 今回の例で言えば、e…

社長の家ですき焼きしたら、破壊神シヴァが現れた話。

いきさつ 今年の冬、linuxの資格であるLPICのレベル1を取得した。 資格のレベル自体は大したことないのだけれど、 社長「お祝い何がいい?報酬とは別に、どこかお店つれってったげる」 社長「みんなで高いお店行こー!」 私「それなら」 私「すき焼きやりま…

curlからフォームデータを贈りたい時のオプションについて

curlの使い所 スクリプトから直接URLを叩きたい時 パラメータを変えてたくさんのリクエストを贈りたい時 こんなときはcurlが便利。 フォームデータを投げたいときは-data, -dオプション curl --data form_name=form_value http://www.example.com/ POSTでフ…

盗み聞きしてみた(コンテナ上のnginxプロセスと、ホスト間の通信パケットをtcpdumpでキャプチャしてみた〜CoreOS toolboxを使ってみる〜)

パケットキャプチャとは サーバさんたちがどんなおはなしをしているのか、 ぬすみぎきすることだよ(白目) いきさつ ホスト間とコンテナ上のnginxがどういう通信をしているのか気になった。 普通のサーバへの通信と変わらないのかな。 こういうときは実験だ…