Skip to content

Instantly share code, notes, and snippets.

View shyouhei's full-sized avatar

卜部昌平 shyouhei

View GitHub Profile
@shyouhei
shyouhei / gist:266178ffedab5767a5b69b972c76f88a
Created September 27, 2017 07:31
優秀なプログラマーになるためのコツ

優秀なプログラマーになるためのコツ

重要な順で

優秀なプログラマーになるには非常に長い時間がかかるという現実を直視すべし

優秀なプログラマーというのは寝ている間に異世界に召喚されて無双するのとはわけが違うんですよ。

自分の例で言うとプログラミングを始めた中学生の時から優秀なプログラマだったかって、そんなわけない。みんなヘッポコからスタートしているに決まってるわけです。以来二十余年、地道に生き恥を晒し続けてきた結果として、現在いちおう業界の末席を汚すところまで来ている。このプロセスから目を背けるべきではないです。優秀なプログラマーに生まれる人間なんかいない。優秀なプログラマーに「育つ」んだし、それには時間が必要。今日から無双したいと思うな。

ASUS ZenBook 3 ファーストインプレッション

前使ってたSony VAIO Pro 11が壊れた。

"Sony"は勘違いではなく、実際まだVAIOが分社化する前に買ったものだ。なのでかなりながらく使っていたと思う。すぐ壊れるという前評判と経験則をおおいに裏切って延長保証が切れるまでなんの問題もなく動き続けてくれた。買ってよかったと思う。

とはいうものの壊れてしまったので、別のものを買わなければいけないのだが、残念ながら今回はVAIOは選択肢に入らない。VAIO Pro 11に相当する後継製品がないからだ。なおS11はキーボードがNG。

色々と調べた限りでは国内で買える選択肢は少なそう。しょうがないので、ASUS ZenBook 3 UX390UAKを個人輸入でUS Amazonで買った。

@shyouhei
shyouhei / chart.png
Last active September 29, 2017 05:50
chart.png
% lldb -- ./miniruby -e0
(lldb) target create "./miniruby"
Current executable set to './miniruby' (x86_64).
(lldb) settings set -- target.run-args "-e0"
(lldb) env RUBY_DEBUG=gc_stress
(lldb) run
Process 92824 launched: './miniruby' (x86_64)
Process 92824 stopped
* thread #1: tid = 0xc1c4b, 0x00000001001b2f5a miniruby`rb_const_defined(klass=4317686760, id=3579) + 106 at variable.c:3067, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x10)
frame #0: 0x00000001001b2f5a miniruby`rb_const_defined(klass=4317686760, id=3579) + 106 at variable.c:3067
This file has been truncated, but you can view the full file.
% lldb -- ./miniruby -e0
(lldb) target create "./miniruby"
Current executable set to './miniruby' (x86_64).
(lldb) settings set -- target.run-args "-e0"
(lldb) DYDYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib
(lldb) MALLOC_PROTECT_BEFORE=1
(lldb) env MALLOC_CHECK_HARDER=1
(lldb) RUBY_DEBUG=gc_stress
(lldb) run
Process 53714 launched: './miniruby' (x86_64)
% lldb -- ./miniruby -e0
(lldb) target create "./miniruby"
Current executable set to './miniruby' (x86_64).
(lldb) settings set -- target.run-args "-e0"
(lldb) env DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib
(lldb) env MALLOC_CHECK_HARDER=1
(lldb) env MALLOC_PROTECT_BEFORE=1
(lldb) env RUBY_DEBUG=gc_stress
(lldb) run
Process 11348 launched: './miniruby' (x86_64)
% lldb -- ./miniruby -e0
(lldb) target create "./miniruby"
Current executable set to './miniruby' (x86_64).
(lldb) settings set -- target.run-args "-e0"
(lldb) env RUBY_DEBUG=gc_stress
(lldb) run
Process 10265 launched: './miniruby' (x86_64)
Process 10265 stopped
* thread #1: tid = 0x7fe2a, 0x00000001001b1eea miniruby`rb_const_defined(klass=4320554240, id=3579) + 106 at variable.c:3067, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x10)
frame #0: 0x00000001001b1eea miniruby`rb_const_defined(klass=4320554240, id=3579) + 106 at variable.c:3067
% make miniruby
CC = gcc-7
LD = ld
LDSHARED = gcc-7 -dynamic -bundle
CFLAGS = -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wno-tautological-compare -Wno-parentheses-equality -Wno-constant-logical-operand -Wno-self-assign -Wunused-variable -Werror=implicit-int -Werror=pointer-arith -Werror=write-strings -Werror=declaration-after-statement -Werror=implicit-function-declaration -Werror=deprecated-declarations -Wno-packed-bitfield-compat -Wsuggest-attribute=noreturn -Wsuggest-attribute=format -Wimplicit-fallthrough=0 -Wno-expansion-to-defined -pipe
XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector -fno-strict-overflow -fvisibility=hidden -DRUBY_EXPORT -fPIE
CPPFLAGS = -I/usr/local/opt/libressl/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -I. -I.ext/include/x86_64-darwin15 -I/Users/urabe.shyouhei/data/src/ci.ruby-lang.org/ruby/branches/ruby_2_3/in
% lldb -- ./miniruby -I/Users/urabe.shyouhei/data/src/ci.ruby-lang.org/ruby/branches/ruby_2_3/lib /Users/urabe.shyouhei/data/src/ci.ruby-lang.org/ruby/branches/ruby_2_3/enc/make_encmake.rb enc.mk
(lldb) target create "./miniruby"
Current executable set to './miniruby' (x86_64).
(lldb) settings set -- target.run-args "-I/Users/urabe.shyouhei/data/src/ci.ruby-lang.org/ruby/branches/ruby_2_3/lib" "/Users/urabe.shyouhei/data/src/ci.ruby-lang.org/ruby/branches/ruby_2_3/enc/make_encmake.rb" "enc.mk"
(lldb) env DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib
(lldb) env MALLOC_PROTECT_BEFORE=1
(lldb) env MALLOC_CHECK_HARDER=1
(lldb) run
Process 43554 launched: './miniruby' (x86_64)
GuardMalloc[miniruby-43554]: Allocations will be placed on 16 byte boundaries.
zsh % lldb -- ./miniruby -I/Users/urabe.shyouhei/data/src/ci.ruby-lang.org/ruby/branches/ruby_2_3/lib /Users/urabe.shyouhei/data/src/ci.ruby-lang.org/ruby/branches/ruby_2_3/enc/make_encmake.rb enc.mk
(lldb) target create "./miniruby"
Current executable set to './miniruby' (x86_64).
(lldb) settings set -- target.run-args "-I/Users/urabe.shyouhei/data/src/ci.ruby-lang.org/ruby/branches/ruby_2_3/lib" "/Users/urabe.shyouhei/data/src/ci.ruby-lang.org/ruby/branches/ruby_2_3/enc/make_encmake.rb" "enc.mk"
(lldb) env DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib
(lldb) run
Process 41621 launched: './miniruby' (x86_64)
GuardMalloc[miniruby-41621]: Allocations will be placed on 16 byte boundaries.
GuardMalloc[miniruby-41621]: - Some buffer overruns may not be noticed.
GuardMalloc[miniruby-41621]: - Applications using vector instructions (e.g., SSE) should work.