goのチャネルの簡単なまとめ

Goならわかるシステムプログラミングを読んで。 概要 キュー構造である ただしランダムアクセスはできず、投入と取り出しのみ行うことができる 並列処理されても正しくデータを受け渡す同期機構である goroutine間での情報共有としての利用が推奨されている …

ブラウザアクセスでファイルをダウンロードさせる方法

やり方 HTTPレスポンスヘッダーにContent-Disposition: attachmentをセットする。 デフォルトでは、Content-Disposition: inlineとなっており、Webページとして表示される。 ちなみにdispositionの意味は、何かの置き方や配置の仕方、という意味。 The way i…

depを触ってみたよ

the "official experiment" dependency management tool for the Go languageというdepを触ってみた。 これがgoのライブラリ管理ツールでは公式になっていく模様。 公式ドキュメントを見ながらやってみる。 installation macの場合、crewで入る。 $ brew ins…

CentOS6にscreen-4.6.2をインストールする

ソースを取ってくる このサイトから、screen-4.6.2.tar.gzのリンク先をコピーして/usr/local/src/下にダウンロードする。 $ cd /usr/local/src/ $ sudo wget https://ftp.gnu.org/gnu/screen/screen-4.6.2.tar.gz インストール まずは解凍 $ sudo tar -zxvf …

実践ハイパフォーマンスMySQLメモ

はじめに 実践ハイパフォーマンスMySQLを読む中で、知らなかった単語や気になったことのメモ この書籍では5.5について書かれているが、最新は5.7なので異なる点がいくつかあるのだろうと懸念はある。 とはいえ、根本的な仕組みはそうそう変わるものではない…

DockerとかCI試す用のアプリ作ったよ

Dockerで何かアウトプットをしておきたかったのと、 CircleCIを使ってみたかったので簡単な、本当に簡単なアプリケーションを作った。 githubに置いておいた。 使い方はリンク内のINSTALLATION AND LAUNCHを参照のこと。 このアプリケーションでCIを試す CI…

Athenaで元データのカラム数とテーブル定義が一致しない時どのような挙動になるか

概要 ある日のデータからカラムが追加されることになった。 その時、Athenaではどのようなデータが表示されることになるのだろうか テスト準備 csvファイルを2つ作成(Athenaに対応しているファイル形式なら何でもよい) まずは下記カラムのファイルをここで作…

AWS 認定ソリューションアーキテクトに合格するまで

AWS認定ソリューションアーキテクト – アソシエイト (2018 年 2 月リリース)を取った。 どんなことやったかとかを書いておく。 前提レベル エンジニア歴1年半 普段ちょこちょこAWSサービスに触るものの自分で環境構築することはほぼない 使ってたりちょこっ…

MySQLのEXPAINの見方

EXPLAINとは クエリオプティマイザがクエリをどのように実行するのかを解明する手段 どのインデックス使ってるのかなーとか確認する 実際に実行するとこんな感じになる mysql> EXPLAIN SELECT * FROM covering_test WHERE key1 = 1; +----+-------------+---…

アルゴリズムの計算量について

1年ちょい前に基本的なソートと探索は研修で実装したんだけど(written in Perl) その頃はなんだか分からないまま実装してた感あったので計算量もちゃんと意識やってみる それにあたって計算量の基本の確認 計算量の評価 計算量の評価は時間計算量と領域計算…

メインルートテーブルに関してすごい勘違いをしていた

背景 AWSソリューションアーキテクトの勉強も兼ねてVPCの勉強をしていて、どーしても分からないなぁとなっていた。 VPC自体にルートテーブルを設定して何に使うんだ?と。 サブネットに設定されてあるルートテーブルでええやん?と。 結論 VPCに設定したルート…

DNSとDNSレコードについて

AWSについて勉強していて、Route 53に差し掛かったところでそもそもDNSよく分かってないや、ってなったので簡単なまとめ。 Route 53独自のレコードについても触れる。 そもそもDNSサーバ 2種類あるから混同させちゃダメ DNSキャッシュサーバ PCなどから名前…

バイト列を受け取ったブラウザがDOMツリーをつくるまで

概要 ブラウザがページをレンダリングするまでにはいくつかのステップを経ている。 googleのConstructing the Object Modelを読んで、分からなかった単語などを調べながらまとめる。 CSSDOMのところは除いてとりあえずDOMツリーが作られるところまで。 バイ…

MySQLのデータ型の後にある括弧について(おまけ: charとvarchar)

整数型の場合 テーブルを作る 何文字まで入るのか、確認のためINSERTしていく mysql> CREATE TABLE tinyint_test ( `num` tinyint(1) NOT NULL ); mysql> INSERT INTO `tinyint_test` VALUES ( 1 ); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO…

URIのスキーマを省略すると?

どういうこと? こうではなく <img src="https://example.jp/index.html" /> こう書くということ <img src="//example.jp/index.html" /> どうなるの? 現在見ているサイトのプロトコルでリクエストが送られる。 httpで見ているサイトならhttpで、httpsで見ているサイトならhttpsで 短くかけて便利だけど、、、 参考リンクやGoogle HTML/CSS Styl…

UUID生成について

UUIDとは Universal Unique Identifier 汎システム的に他とは重ならない識別子 uuidgen uuidを生成するコマンドラインユーティリティ libuuid(3)ライブラリが使われている 生成されたUUIDは、いつどこで作られたUUIDとも重ならないと考えて良い 書式 uuidgen…

webpack簡単まとめ

はじめに react + echo でSPAを作るぞ、と意気込んだものの色々分からないので、ちょっとずつ進めていく。 自分のレベルはcreate-react-appでTODOアプリくらいは作ってみたけど、なんで動いているのかよく分かっていないよ、くらい node、npmはこの前簡単に…

React の Quick start の簡単なまとめ

はじめに installなど、そのまま簡単に進められたものは省く installationを見るとよい React公式ドキュメントを読み進める中で、覚えておきたいもののメモ。 github-pagesで動いていてて、コードはgithubにあるが、メモ程度に考えてもらった方が、、、 Rend…

npm install のオプションについて

最近はReact+echoでなんか作ろうプロジェクトを進めている! npm install オプション無し ex) npm intall カレントディレクトリに存在するpackage.jsonに応じて、./node_modules/ 以下にモジュールをインストールする package.jsonとは、パッケージ名や、バー…

s3の特定ディレクトリにファイルがあるか確認する

S3のバケット・ディレクトリにファイルが上がっているか、ファイルが空でないかを検知したい。 ので、検知する用のシェルスクリプトを書いた。 あまり綺麗な書き方ではないと思うのでもっといいやり方があれば知りたい。 ディレクトリの想定 特定バケット以…

mysqlで複数カラムを追加・削除したい

mysqlで同一テーブルに対して複数カラムの追加・削除する必要があるときに、 今まで複数のALTER文を発行していたけど、1クエリーで実行できるように書くようにした。 カラム追加 複数行で書くと普通にALTER文を何回か書く感じになる。 ALTER TABLE `table` A…

node.js?npm?Javascriptとどんな関係が?

npmとnode.jsとJavascriptの関係性がよく分からない。 node.js サーバーサイド用Javascript の言語処理系のこと。 サーバーサイド用Javascriptってなんやねん。 ブラウザで動くJavascript(いつもjsファイルに書いているやつ)と似てるようで実は違うJavascrip…

CentOS7にGoの最新版をインストールする

最新版のgoをインストールする流れをまとめてみた 全体の流れ $ uname -m x86_64 $ sudo su - # cd /usr/local/src # wget https://dl.google.com/go/go1.9.4.linux-amd64.tar.gz # tar -zxvf go1.9.4.linux-amd64.tar.gz # mv go /usr/local # exit $ vi ~/…

htmlファイルの上の方にいるあいつら

ブログ長らく放置していたけど、しれっと再開しますw あまり肩肘張らずちょっとした内容でもちょいちょい更新していきます。 そして基本的には丁寧語とか使わず、自分用のメモに近い形で書いていきます。 htmlファイルの先頭とかhead内にいろいろ書くと思う…

ハイパフォーマンスWebサイトを読んで

こんにちは。 寒くなってきましたね。 半袖じゃ若干きついですね、、、 仮想通貨を少し買ってみてるんですが、値段の乱高下が半端ないですね。 ビットコインの分裂があーだこーだというのを聞いても実際がよく分からないので、 近々ブロックチェーン技術を勉…

安全なwebアプリケーションの作り方を読んだ

こんにちは。秋ですね。 昨日暖かかったし、今日は半袖で行けるやろって外出して後悔しています。 アラサー男とは思えない軽はずみな判断に我ながら絶句しています。 それでも今日も僕は元気です。 そんなどうでもいいことはともかくとして、 今回は「安全な…

ソフトウェア開発者の人生マニュアルを読んで

こんにちは。 今日はこれからバスケの試合です! 東京はまた台風です、、、 室内競技でよかった! 今日は『ソフトウェア開発者の人生マニュアル』の内容をまとめます。 特に自分が取り組もうと思った内容だったりを中心にまとめていきます。 基本的な構成 は…

gitのcommitについて調べてみた

こんばんは。 かまいたちがコント優勝しましたね! かまちたちが昔やってた伏せさせて手をあげる奴めっちゃ好きです。 あらびき団懐かしい、、、 Git gitを使っているもののよく分からないことが多かったんですよね。 HEAD ってなんだろとか、gitってそもそ…

祝!!初エントリー

はじめまして はじめまして、今年 (2017年)からプログラマーになった nekootoko3 です。 色々あって営業職からプログラマーへと転身して早9ヶ月、ほんとに早い。 プログラマーはブログやって方がいいよって誰か言ってた気もするし、 勉強したこと何かしらア…