諸行無常

IT色々お勉強中のブログ

brew install yarn --without-node オプションが使えなくなった

brew install yarn --without-nodeオプションを付けると動かない

$ brew install yarn --without-node
Updating Homebrew...
==> Auto-updated Homebrew!
Error: invalid option: --without-node

こないな感じでそんなオプションありまへんでって言われる

github.com

無くなったらしい

$ brew install yarn --ignore-dependencies
Warning: --ignore-dependencies is an unsupported Homebrew developer flag!
Adjust your PATH to put any preferred versions of applications earlier in the
PATH rather than using this unsupported flag!

これで上手くいく

npm install --globalに失敗した場合の対応方法

npm install --global babel-cli
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'

こんな感じのエラーが出て、インストールできない時

$ mkdir ~/.npm-global
$ npm config set prefix '~/.npm-global'


   ╭─────────────────────────────────────╮
   │                                     │
   │   Update available 5.6.0 → 6.9.0    │
   │     Run npm i -g npm to update      │
   │                                     │
   ╰─────────────────────────────────────╯
$ echo ' export PATH=~/.npm-global/bin:$PATH' >> ~/.bash_profile
$ source ~/.bash_profile

そうすると動くようになった

$ npm install --global babel-cli
+ babel-cli@6.26.0
added 305 packages in 12.8s

Surrogate Pair(取り敢えず入れたくない)

mysqlでutf8mb4の文字コードが入ってるくそDBに対してどう対応するか 文字コードが変えられない残念な人のrails対応 サロゲートペア拒否

  validates :text, length: { maximum: CONTENTS::CAP::LONG::TEXT },
                   format: { without: /[\u{10000}-\u{10FFFF}]/,

mercari.go #6

https://mercari.connpass.com/event/118695/

kentanさん concarency ・robpike fake google search channelの機能で書けた javaで書くと意外と綺麗に書けた  completableFuture ・オブジェクト指向でない InterfaceとReceiverの概念はある 書こうと思えばかける super 敢えてやる必要ない

yamlをテストする babarotさんSRE Terraform書く人 IaC Policy as Codeこうあるべきをポリシーとして記す Kubanetis yamlでやりたい Stein 状態をチェックすることを出来るツール Goで書いた理由、ブログ読んでね

sliceのコピーで起きた不思議な話 ques0942 バックエンドエンジニア Goの配列Javaと同じ固定長、可変長で扱うためにsliceを使う sliceはarrayをラップしている、shallow copyの問題を抱えている

wiring compiler in GO kitasuke 今はバックエンド書いてるSwiftのコンパイラ書いてた Writing an Interpreter in Go本インタープリターの方AST Monkeyという言語 wiring compiler in GO アセンブラの先、VMを自分で作る方 GO→ast IR→ssa token Int Plus Identifier lexer やってよかったこと、コンパイラの仕組みがわかった、GO自体の勉強になった、astの理解につながった

GoのMapとHeapを自作してみた @DQNEO mercari米の方 コンパイラは素人らしい 自作コンパイラ三原則 ・小さくはじめる 任意の方は忘れてintだけ 個数も少なく アセンブリで書く ・動けばOK ・遅くても大丈夫 map set mallocを作る 擬似malloc作る 動的アドレス参照するのでsegmentation faultが起こる 8ccの移植をやった

ポメラニアン専用Goコンパイラ tenntennさん 「それ僕専用のやつです」に変える奴(最適化?) SSA変数の代入を一度だけにする https://github.com/golang/go 最適化のルールS式で記述されている

Goのエラーハンドリング morikuni error interface エラーが発生する可能セガある関数はerrorを返す 標準パッケージ エラーの定義:エラーを値で定義、エラーを型で定義 エラーの返却:エラーをそのまま返す、独自型でラップする、文字列として結合する エラーの比較:値で比較、型で比較、専用の比較関数を使う ・スタックトレースが欲しい、・自作でエラーをラップするのがめんどい、・中身を取り出すのがめんどい ・gihub.com/pkg/errors  スタックトレースはける、ラップしても中身を取り出せる(erros.Cause) xerrorsのエラーハンドリング ・xerrors.Errorf ・xerrors.Is ・xerros.Asエラーの中身取り出す failure作った奴 ・識別子で識別したい ・ラップを統一 ・カスタマイズを高める

mac mojaveでgdbが動かない、、

gdbのバージョンが新しいと動かないらしいんでバージョン下げた

brew unlink gdb
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/9ec9fb27a33698fc7636afce5c1c16787e9ce3f3/Formula/gdb.rb

brew pin gdb

HighSierra以降は以下設定が必要

 echo "set startup-with-shell off" >> ~/.gdbinit

rcmdnk.com

このgdb32bitしか動かん奴やん、、、

(gdb) run
Starting program:
No executable file specified.
Use the "file" or "exec-file" command.

stackoverflow.com

file、stringsコマンド、gdb動かず、、

fileコマンド

$ file ngrok
ngrok: Mach-O 64-bit executable x86_64

$ file Downloads/odbg201/ollydbg.exe
Downloads/odbg201/ollydbg.exe: PE32 executable (GUI) Intel 80386, for MS Windows

fileコマンドを使うと実行ファイルがどのOS、bit向けか分かる

stringsコマンド

webkaru.net

stringsコマンド使おうとしたらエラーになった

$ strings sishyu.jpeg
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

何事かと思ったら昨晩Mojaveにアップデートしたから、xcodeアップデートしたら治った

xcode-select --install

gdb

brew install gdb

試しプログラム

#include <stdio.h>

int main(void) {
    printf("test\n");
    return 0;
}

コンパイル

gcc -g test.c -o test

動かす、

gdb ./test
(gdb) run
Starting program: /Users/hoge/tmp/test
Unable to find Mach task port for process-id 4465: (os/kern) failure (0x5).
 (please check gdb is codesigned - see taskgated(8))

怒られる、、

qiita.com

やった、再起動

ps aux | grep taskgated 
sudo kill 1206

署名

codesign -s gdbcert /usr/local/bin/gdb
Unable to find Mach task port for process-id 910: (os/kern) failure (0x5).
 (please check gdb is codesigned - see taskgated(8))

まだ動かんなんでや