Goでnet/httpを使わずに雰囲気でechoしてみる
本記事について
このアドベントカレンダーの2日目の記事です。
まだ寝てないので、寝るまでが今日理論でいくとセーフです。
概要
当日まで何も決まっておらず、「あああああヤバイ!!」みたいな感じだったのですが、寿司を食べて元気を出したところでなんとなーくやってみるかって感じでプロセス間通信をやってみました。
それで実装にあたって下記の記事を参考にとりあえず調べてました。プロセス間通信と聞いて、自分が思ってたのはマップドメモリーだったのですが、めちゃめちゃ種類があってビビりました。
で、見てるとソケット通信ってのがあってめっちゃwebサーバーっぽかったのでそれをやってみました。
実装
他ブログやQiitaの記事などいろいろ参考にさせていただき、雰囲気で書きました。
やってることはポート指定してそこで待機し続けて、入力が来たらその入力を返すしかやってないので、多分説明することもないです。
所感
なんとなーくwebフレームワークとかの実装ってこうなってんのかな、とか思いました。フレームワークの読んだこと無いので雰囲気でですが。
あとはチラっとserver.goとかのソース読んだりしたり、普段書かないようなコードやライブラリとか使ってやる部分を見ると全然知識足りてないことを認識できるので、やる気が上がっていい感じでした。
次は誰がアドベントカレンダーの記事を書くかわかりませんが楽しみにしておきます。(適当な記事書いてすいません)
参考にした記事
net - The Go Programming Language
エロ漫画読み放題サービスに登録するためにデビットカードとクレジットカードを契約した話
皆様、いかがお過ごしでしょうか? 今年もアドベントカレンダーの季節になりました。僕はといいますと、やる気がなくなり、毎日誰かに向かって助けを求める日々。
最近は布団に向かって「ハァああ〜〜〜〜助けてくれ助けてくれ助けてくれーーー!!」と叫ぶのがマイブームなっています。
つらいね。
この記事について
このアドベントカレンダーの初日を務める記事になっています
ノリで登録したのでめっちゃビビってますが、頑張って書こうと思います
内容は記事名通りです
エロ漫画読み放題サービス・komiflo
ところで皆様はkomifloをご存知ですか? そう、エロ漫画読み放題サービスです。おそらく人類史上最も望まれていたサービスです。なんで望んでいるか?こんなことわざわざ言わなくてもおわかりでしょうが、多い人で日に数度、平均的には日1、誰しもが"ソレ"に臨んでいるからです。
またエロ漫画は平成の見る抗うつ剤とも言われています。人々はソレほどまでにエロ漫画に興味と関心を持っているのです。
いやそれにしえもエロ漫画、ロマンがありますよね。特に僕は童貞なのでロマンしか感じられないです。
komifloとの出会い
今年の5月7日経緯は忘れてしまいましたが、大先輩から「komiflo契約しよう」と誘われて言ってきて調べたら「最高……!最高〜〜〜!!!!」ってなったのが始まりです。
komiflo、気になった
— ワイルド (@while_D_) 2017年5月7日
月額1000程度だしアリな気がしてる
そのときのツイートです。 なんかメチャメチャ冷静になっていますが、相当なカルチャーショックを受けこの時すでに股間で物事を考えています。 多分この日はトップ画面のパソコンいじってる娘でヤッたのではにでしょうか?覚えていません。
komiflo契約編
デビットカードの章
股間と脳みそに衝撃を受け、思い立ったが吉日ということで即銀行にデビットカードを契約しにいくことになりました。
3限が空きコマの月曜日、昼に友人とメシを食べる前に少し待っててもらい、ウキウキで銀行に直行。 「これから僕の人生はバラ色に変わっていくんだ……!」と期待感をあらわにオタク特有のニチャニチャした笑いを浮かべながら行ったら、何があったのか詳しくは忘れた(多分印鑑忘れたとかそんな)のですが、そこでは契約できないことが判明。ただ気持ち悪い顔を晒しに行っただけで無駄足でした。
最悪ですね。その日はちょうど駅付近でザーメン色のモンスターエナジーを配っていたのでそれを飲みながらメッチャ溜息をついていたと思います。
後日、近所の銀行に行き契約を行いました。
それから一週間後無事デビットカードが届き再びニチャ笑い。「今度こそ俺は"""最高"""になれる……!」という気持ちでウキウキだったのですが、なんと契約したデビットカードは対応してないことが判明。
こみふろのためにデビットカード作ったらお前のは対応してないよって言われて死んだ
— ワイルド (@while_D_) 2017年8月4日
komiflo登録しようとしたらこのデビットは使えないって言われて死んだ
— 前の川 (@whileD_) 2017年5月26日
2つのアカウントで同じことを言っているあたり、相当ショックだったことが伺えます。
その後、僕の行動はなんだったんだといった気持ちになり、腹いせにkomifloのトップ画面の娘でヤリました。 あとエロ漫画を一冊購入しました。
クレジットカードの章
さる日からおよそ4ヶ月程。 「やはり諦めきれないぞ……!」となり、今度はクレジットカードを契約する決意を固めました。
デビットカードの失敗から次は店頭に行かずにネットを介して契約することに。
そして即申請。
1週間後、サークルの合宿でドチャクソ意識が高くなってるところで必要書類の送付のお願いの電話がかかりました。適当な受け答えをし、帰ったらこちらも即送付するぞと股間への意識の高まりも見せていました。
しかし、実際に帰って来て即送付しなかったのが失敗。
大学が始まり、後期の実験の班が留学生と留年生3人という新旧共演のスーパーチームになったりなどの激アツ案件が多数発生し、全てのやる気が地に伏しました。
現実を受け止めたくなさすぎて実験中に一心不乱に2048のプレイを研究したり、グラブったりしていると、だんだんとうつに。そこでようやく己の本分を思い出します。ARMSばりにエロ漫画を求め始めました。
――エロ漫画が読みたいか……
――エロ漫画が読みたい!
――エロ漫画が読みたいならくれてやろう!
気がつけば僕の手の中にはクレジットカードが存在していました。
それから
クレジットカードを作ったはいいものの、諸事情により直後は見送っていました。
そして講義中思い出し、即座に契約。ニチャニチャしながら講義を聞いていました。
人生が最高になってきました pic.twitter.com/CA5sLkfX7v
— ワイルド (@while_D_) 2017年11月22日
その日の夜は疲れマ○みたいな感じだったのですが、家の脱衣所で「最高〜〜〜!!!最高最高〜〜!」と叫びながら興奮が最高潮に達したことを覚えています。あと、親が脱衣所に入ってきそうになってビビった。
このようにkomifloを契約すると人生が最高になってくるので、皆さんも契約してみては?
終わりに
komiflo、僕の先輩の使用率が高く、やはり全人類が望んでいる……という気持ちにさせてくれます。
まだ改善したほうがいい点は多くありますが、普通にいいサービスです。
TUT 今年もTwitterしかしてません Advent Calendar 2017 - Adventarの、次のライターはわたりんべー(@wtrnby)さんです。よろしくおねがいします。
余談
致した後は即エッチなコンテンツをタブから削除するので、komifloのブックマーク機能が永遠に使えない現象、どうにかなりませんかね。
Golangのinterface自分用覚え書き
Goでinterfaceを少しだけ使ってみたのでそれの覚え書き
Goのinterfaceはメソッドリストでこれをすべて実装していればいいらしいです。他にもfunc f(args ...interface{})のように、任意の型を引数に取るための使われるinterface{}というのもある。こっちは他にも使い方ありそうだし全然調べてないので割愛。
最初に言ったのを少し書いてみたのが下のコード
NeovimでGo言語を快適に書きたい
最近Go言語を触り始めました。最初はvscodeとかatomを試してたんですけどなんかしっくりこなかったのでvimを使おうと思った。 でもvimも完全に「画面分割ができるメモ帳」のような使い方をしていたので、どうせならとneovimに移行した。移行というのも怪しいが。
Neovimを入れる
導入からinit.vimとかdein、deopleteなどのプラグインの設定はこちらを参考にしました。
Go用のプラグインを入れる
GitHub - fatih/vim-go: Go development plugin for Vim
GitHub - zchee/deoplete-go: deoplete.nvim source for Go
とか入れると良さそうだったのでこの2つを入れた。 下のようにgo.tomlとか作って{lazy : 1}で読み込んだ。 間違ってなければ多分これでgoファイルじゃないときはプラグインは読み込まれない。
#go.toml [[plugins]] repo = 'fatih/vim-go' on_ft = 'go' [[plugins]] repo = 'zchee/deoplete-go' build = 'make' on_ft = 'go' depends = ['deoplete.nvim'] hook_source = ''' let g:deoplete#sources#go#gocode_binary = $GOPATH . '/bin/gocode' '''
あと、deoplete-goのREADMEにも書いてあったけどgocode_binaryでgocodeのバイナリーのパスを設定しなければならなと動かない。なんでかわからないけど見落としてて最初「なんで動かんの……」って焦ってた。
go get -u github.com/nsf/gocode
まとめ
まだまだ使い始めたばかりですが、:wするだけでgo fmtを走らせてくれたりtestするとQuickfixリストを出してくれたり、とてもいいです。
だだすくりぷと
某大盛りラーメン屋のインスパイア系ラーメン屋である田田という店が八王子にある。
ここは僕が通っている大学のポケサーを筆頭に、他体型がふくよかな方に人気で、特にトッピングの仕方が特徴的で「ニンニク入れますか?」と聞かれたら「ヤサイアブラ」や「ニンニクマシカラメ」などの呪文を唱えなければならない。
そこで思った。この""ヤサイ""を""マス""というのはBrainF**kのポインターをインクリメントするのとほぼ同じではないか?
マシ == pointer++
!!!!!!!!!!!!!!!!!!!!!!!!!!!!
書いた。
BrainF**kの解説はいっぱいあるのでコードとハローワールドだけ
Brainfuckのインタプリタ
なにかのアドベントカレンダー24日目
嘘です。Spring bootとかGo言語の記事は書きません。最近fuckしか言ってないんでBrainfuckについて書こうと思います。
Brainfuckの仕様はwikipediaとかに書いてますが一応書いておきます。
- ">" ポインタをインクリメントする
- ”<” ポインタをデクリメントする
- ”+” ポインタが指す値をインクリメントする
- ”-” ポインタが指す値をデクリメントする
- "." ポインタが指す値を出力する
- ”,” 入力から1byte読み込んで、ポインタが指す先に代入する
- "[" ポインタが指す値が0なら、対応する"]"の直後にジャンプする
- "]" ポインタが指す値が0でないなら、対応する"["にジャンプする
以上です。シンプルですね。以下がC++で実装したコードです。その下がBrainfuckでのHello world!です。
gist29eaacfdaafc11764e18fc18136d8b8c
これを実行して
+++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-.------------.<++++++++.--------.+++.------.--------.>+.
を入力すると
Hello, world!
と出力されます。
解説
なし。感じてください。
それでは皆さんもどんどん脳を犯していってください。
このアドベントカレンダーの最後はかったーさんです。
ブログ
なんか書こうと思います。