From cab760a1b7912548daf2fa033f11b4ea939a86f3 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Wed, 14 Jan 2015 15:08:36 -0500 Subject: this was sitting there --- Makefile | 24 +- .../1/wordpress/2010/09/hello-world/index.chtml | 24 + dep/lukeshu.ath.cx/1/wordpress/2010/09/index.chtml | 22 + .../1/wordpress/2010/10/icb-journals/index.chtml | 26 + dep/lukeshu.ath.cx/1/wordpress/2010/10/index.chtml | 28 + .../school-essay-what-i-know-for-sure/index.chtml | 26 + .../10/suicide-as-an-act-of-optimism/index.chtml | 25 + .../1/wordpress/2010/10/who-am-i/index.chtml | 25 + .../1/wordpress/2010/11/fuse-is-crazy/index.chtml | 25 + dep/lukeshu.ath.cx/1/wordpress/2010/11/index.chtml | 22 + dep/lukeshu.ath.cx/1/wordpress/2011/01/index.chtml | 22 + .../wordpress/2011/01/java-has-issues/index.chtml | 24 + .../wordpress/2011/01/pointers-in-java/index.chtml | 23 + dep/lukeshu.ath.cx/1/wordpress/2011/02/index.chtml | 21 + .../index.chtml | 22 + dep/lukeshu.ath.cx/1/wordpress/2011/05/index.chtml | 21 + .../wordpress/2011/05/why-sed-i-exists/index.chtml | 22 + .../index.chtml | 22 + .../index.chtml | 22 + dep/lukeshu.ath.cx/1/wordpress/2011/08/index.chtml | 21 + .../1/wordpress/author/lts/index.chtml | 28 + .../1/wordpress/author/lts/page/2/index.chtml | 26 + .../1/wordpress/category/computers/index.chtml | 24 + .../computers/programming-lessons/index.chtml | 22 + .../1/wordpress/category/morning-pages/index.chtml | 21 + .../wordpress/category/school-2/essays/index.chtml | 28 + .../1/wordpress/category/school-2/index.chtml | 28 + .../1/wordpress/category/uncategorized/index.chtml | 21 + dep/lukeshu.ath.cx/1/wordpress/index.chtml | 28 + dep/lukeshu.ath.cx/1/wordpress/page/2/index.chtml | 26 + .../1/wordpress/tag/fallibilism/index.chtml | 24 + .../1/wordpress/tag/progtut/index.chtml | 22 + .../1/wordpress/tag/ramble/index.chtml | 23 + .../1/wordpress/tag/school/index.chtml | 24 + .../1/wordpress/2010/09/hello-world/index.chtml | 0 mk/lukeshu.ath.cx/1/wordpress/2010/09/index.chtml | 0 .../1/wordpress/2010/10/icb-journals/index.chtml | 0 mk/lukeshu.ath.cx/1/wordpress/2010/10/index.chtml | 0 .../school-essay-what-i-know-for-sure/index.chtml | 0 .../10/suicide-as-an-act-of-optimism/index.chtml | 0 .../1/wordpress/2010/10/who-am-i/index.chtml | 0 .../1/wordpress/2010/11/fuse-is-crazy/index.chtml | 0 mk/lukeshu.ath.cx/1/wordpress/2010/11/index.chtml | 0 mk/lukeshu.ath.cx/1/wordpress/2011/01/index.chtml | 0 .../wordpress/2011/01/java-has-issues/index.chtml | 0 .../wordpress/2011/01/pointers-in-java/index.chtml | 0 mk/lukeshu.ath.cx/1/wordpress/2011/02/index.chtml | 0 .../index.chtml | 0 mk/lukeshu.ath.cx/1/wordpress/2011/05/index.chtml | 0 .../wordpress/2011/05/why-sed-i-exists/index.chtml | 0 .../index.chtml | 0 .../index.chtml | 0 mk/lukeshu.ath.cx/1/wordpress/2011/08/index.chtml | 0 .../1/wordpress/author/lts/index.chtml | 0 .../1/wordpress/author/lts/page/2/index.chtml | 0 .../1/wordpress/category/computers/index.chtml | 0 .../computers/programming-lessons/index.chtml | 0 .../1/wordpress/category/morning-pages/index.chtml | 0 .../wordpress/category/school-2/essays/index.chtml | 0 .../1/wordpress/category/school-2/index.chtml | 0 .../1/wordpress/category/uncategorized/index.chtml | 0 mk/lukeshu.ath.cx/1/wordpress/index.chtml | 0 mk/lukeshu.ath.cx/1/wordpress/page/2/index.chtml | 0 .../1/wordpress/tag/fallibilism/index.chtml | 0 .../1/wordpress/tag/progtut/index.chtml | 0 .../1/wordpress/tag/ramble/index.chtml | 0 .../1/wordpress/tag/school/index.chtml | 0 .../1/wordpress/2010/09/hello-world/index.chtml | 296 +++++++++ .../1/wordpress/2010/09/hello-world/index.html | 293 +++++++++ web/lukeshu.ath.cx/1/wordpress/2010/09/index.chtml | 181 ++++++ web/lukeshu.ath.cx/1/wordpress/2010/09/index.html | 178 +++++ .../1/wordpress/2010/10/icb-journals/index.chtml | 204 ++++++ .../1/wordpress/2010/10/icb-journals/index.html | 201 ++++++ web/lukeshu.ath.cx/1/wordpress/2010/10/index.chtml | 275 ++++++++ web/lukeshu.ath.cx/1/wordpress/2010/10/index.html | 272 ++++++++ .../school-essay-what-i-know-for-sure/index.chtml | 199 ++++++ .../school-essay-what-i-know-for-sure/index.html | 196 ++++++ .../10/suicide-as-an-act-of-optimism/index.chtml | 200 ++++++ .../10/suicide-as-an-act-of-optimism/index.html | 197 ++++++ .../1/wordpress/2010/10/who-am-i/index.chtml | 206 ++++++ .../1/wordpress/2010/10/who-am-i/index.html | 203 ++++++ .../1/wordpress/2010/11/fuse-is-crazy/index.chtml | 202 ++++++ .../1/wordpress/2010/11/fuse-is-crazy/index.html | 199 ++++++ web/lukeshu.ath.cx/1/wordpress/2010/11/index.chtml | 176 +++++ web/lukeshu.ath.cx/1/wordpress/2010/11/index.html | 173 +++++ web/lukeshu.ath.cx/1/wordpress/2011/01/index.chtml | 205 ++++++ web/lukeshu.ath.cx/1/wordpress/2011/01/index.html | 202 ++++++ .../wordpress/2011/01/java-has-issues/index.chtml | 269 ++++++++ .../1/wordpress/2011/01/java-has-issues/index.html | 266 ++++++++ .../wordpress/2011/01/pointers-in-java/index.chtml | 328 ++++++++++ .../wordpress/2011/01/pointers-in-java/index.html | 325 ++++++++++ web/lukeshu.ath.cx/1/wordpress/2011/02/index.chtml | 176 +++++ web/lukeshu.ath.cx/1/wordpress/2011/02/index.html | 173 +++++ .../index.chtml | 225 +++++++ .../index.html | 222 +++++++ web/lukeshu.ath.cx/1/wordpress/2011/05/index.chtml | 176 +++++ web/lukeshu.ath.cx/1/wordpress/2011/05/index.html | 173 +++++ .../wordpress/2011/05/why-sed-i-exists/index.chtml | 198 ++++++ .../wordpress/2011/05/why-sed-i-exists/index.html | 195 ++++++ .../index.chtml | 231 +++++++ .../index.html | 228 +++++++ .../index.chtml | 202 ++++++ .../index.html | 199 ++++++ web/lukeshu.ath.cx/1/wordpress/2011/08/index.chtml | 205 ++++++ web/lukeshu.ath.cx/1/wordpress/2011/08/index.html | 202 ++++++ .../1/wordpress/author/lts/index.chtml | 449 +++++++++++++ .../1/wordpress/author/lts/index.html | 446 +++++++++++++ .../1/wordpress/author/lts/page/2/index.chtml | 220 +++++++ .../1/wordpress/author/lts/page/2/index.html | 217 +++++++ .../1/wordpress/category/computers/index.chtml | 353 ++++++++++ .../1/wordpress/category/computers/index.html | 350 ++++++++++ .../computers/programming-lessons/index.chtml | 179 ++++++ .../computers/programming-lessons/index.html | 176 +++++ .../1/wordpress/category/morning-pages/index.chtml | 174 +++++ .../1/wordpress/category/morning-pages/index.html | 171 +++++ .../wordpress/category/school-2/essays/index.chtml | 273 ++++++++ .../wordpress/category/school-2/essays/index.html | 270 ++++++++ .../1/wordpress/category/school-2/index.chtml | 273 ++++++++ .../1/wordpress/category/school-2/index.html | 270 ++++++++ .../1/wordpress/category/uncategorized/index.chtml | 174 +++++ .../1/wordpress/category/uncategorized/index.html | 171 +++++ web/lukeshu.ath.cx/1/wordpress/index.chtml | 716 +++++++++++++++++++++ web/lukeshu.ath.cx/1/wordpress/index.html | 713 ++++++++++++++++++++ web/lukeshu.ath.cx/1/wordpress/page/2/index.chtml | 280 ++++++++ web/lukeshu.ath.cx/1/wordpress/page/2/index.html | 277 ++++++++ .../1/wordpress/tag/fallibilism/index.chtml | 179 ++++++ .../1/wordpress/tag/fallibilism/index.html | 176 +++++ .../1/wordpress/tag/progtut/index.chtml | 179 ++++++ .../1/wordpress/tag/progtut/index.html | 176 +++++ .../1/wordpress/tag/ramble/index.chtml | 179 ++++++ .../1/wordpress/tag/ramble/index.html | 176 +++++ .../1/wordpress/tag/school/index.chtml | 179 ++++++ .../1/wordpress/tag/school/index.html | 176 +++++ 133 files changed, 16629 insertions(+), 6 deletions(-) create mode 100644 dep/lukeshu.ath.cx/1/wordpress/2010/09/hello-world/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/2010/09/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/2010/10/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/2010/10/suicide-as-an-act-of-optimism/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/2010/10/who-am-i/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/2010/11/fuse-is-crazy/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/2010/11/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/2011/01/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/2011/02/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/2011/05/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/2011/08/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/author/lts/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/author/lts/page/2/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/category/computers/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/category/morning-pages/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/category/school-2/essays/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/category/school-2/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/category/uncategorized/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/page/2/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/tag/fallibilism/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/tag/progtut/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/tag/ramble/index.chtml create mode 100644 dep/lukeshu.ath.cx/1/wordpress/tag/school/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/2010/09/hello-world/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/2010/09/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/2010/10/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/2010/10/suicide-as-an-act-of-optimism/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/2010/10/who-am-i/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/2010/11/fuse-is-crazy/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/2010/11/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/2011/01/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/2011/02/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/2011/05/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/2011/08/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/author/lts/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/author/lts/page/2/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/category/computers/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/category/morning-pages/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/category/school-2/essays/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/category/school-2/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/category/uncategorized/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/page/2/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/tag/fallibilism/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/tag/progtut/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/tag/ramble/index.chtml create mode 100644 mk/lukeshu.ath.cx/1/wordpress/tag/school/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/2010/09/hello-world/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/2010/09/hello-world/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/2010/09/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/2010/09/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/2010/10/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/2010/10/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/2010/10/suicide-as-an-act-of-optimism/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/2010/10/suicide-as-an-act-of-optimism/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/2010/10/who-am-i/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/2010/10/who-am-i/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/2010/11/fuse-is-crazy/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/2010/11/fuse-is-crazy/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/2010/11/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/2010/11/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/2011/01/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/2011/01/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/2011/02/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/2011/02/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/2011/05/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/2011/05/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/2011/08/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/2011/08/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/author/lts/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/author/lts/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/author/lts/page/2/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/author/lts/page/2/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/category/computers/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/category/computers/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/category/morning-pages/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/category/morning-pages/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/category/school-2/essays/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/category/school-2/essays/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/category/school-2/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/category/school-2/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/category/uncategorized/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/category/uncategorized/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/page/2/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/page/2/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/tag/fallibilism/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/tag/fallibilism/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/tag/progtut/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/tag/progtut/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/tag/ramble/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/tag/ramble/index.html create mode 100644 web/lukeshu.ath.cx/1/wordpress/tag/school/index.chtml create mode 100644 web/lukeshu.ath.cx/1/wordpress/tag/school/index.html diff --git a/Makefile b/Makefile index 31418c9..d27cd56 100644 --- a/Makefile +++ b/Makefile @@ -6,13 +6,21 @@ sed 's/[ \t<>]/\n/g #tokenize' '$1'|\ grep href |\ sed -r \ -e "s/'/\"/g #normalize quotes" \ - -e 's@^href="http://([^"]*)"@\1@ #strip href off' \ - -e 's@^/@http://lukeshu.ath.cx/@ #fix docroot' |\ + -e 's@^href="http://([^"]*)"@\1@ #strip href off ' \ + -e 's@^/@http://lukeshu.ath.cx/@ #fix docroot ' \ + |\ grep '^lukeshu\.ath\.cx/1/wordpress' |\ +fgrep -v '/feed/' |\ +fgrep -v '/wp-admin/' |\ +fgrep -v '/wp-content/' |\ +fgrep -v 'wlwmanifest.xml' |\ +fgrep -v 'xmlrpc.php' |\ +fgrep -v 'wp-login.php' |\ sed 's/\#.*//' | sort | uniq endef sleep = x=$$RANDOM; let 'x %= 15'; sleep $$((30+$$x)) +download = wget -U '$(ua)' '$(call url,$1)' -O tmp/$$$$ && mkdir -vp $(@D) && mv -v tmp/$$$$ $@ default: rm -rf mk @@ -20,11 +28,9 @@ default: .SECONDARY: web/%: - mkdir -p $(@D) - wget -U '$(ua)' '$(call url,$*)' -O tmp/$$$$ && mv tmp/$$$$ $@; $(sleep) + $(call download,$*); $(sleep) web/%/index.chtml: - mkdir -p $(@D) - wget -U '$(ua)' '$(call url,$*/)' -O tmp/$$$$ && mv tmp/$$$$ $@; $(sleep) + $(call download,$*/); $(sleep) dep/%: web/% Makefile test -f $< @@ -35,3 +41,9 @@ mk/%: dep/% mkdir -p $(@D) touch $@ sed -e 's@.@mk/&@' -e 's@/$$@/index.chtml@' $< |xargs -d '\n' $(MAKE) -k + +%.html: %.chtml + sed '1,3d' < $< > $@ + +html: + find web -name '*.chtml'|sed 's/chtml$$/html/' |xargs $(MAKE) diff --git a/dep/lukeshu.ath.cx/1/wordpress/2010/09/hello-world/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/2010/09/hello-world/index.chtml new file mode 100644 index 0000000..9feddb5 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/2010/09/hello-world/index.chtml @@ -0,0 +1,24 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/?p=1 +lukeshu.ath.cx/1/wordpress/tag/progtut/ diff --git a/dep/lukeshu.ath.cx/1/wordpress/2010/09/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/2010/09/index.chtml new file mode 100644 index 0000000..8abefaf --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/2010/09/index.chtml @@ -0,0 +1,22 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/tag/progtut/ diff --git a/dep/lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/index.chtml new file mode 100644 index 0000000..9b648f1 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/index.chtml @@ -0,0 +1,26 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/ +lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/ +lukeshu.ath.cx/1/wordpress/2010/10/who-am-i/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/?p=18 +lukeshu.ath.cx/1/wordpress/tag/ramble/ diff --git a/dep/lukeshu.ath.cx/1/wordpress/2010/10/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/2010/10/index.chtml new file mode 100644 index 0000000..008f399 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/2010/10/index.chtml @@ -0,0 +1,28 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/ +lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/ +lukeshu.ath.cx/1/wordpress/2010/10/suicide-as-an-act-of-optimism/ +lukeshu.ath.cx/1/wordpress/2010/10/who-am-i/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/tag/fallibilism/ +lukeshu.ath.cx/1/wordpress/tag/ramble/ +lukeshu.ath.cx/1/wordpress/tag/school/ diff --git a/dep/lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/index.chtml new file mode 100644 index 0000000..1d31b01 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/index.chtml @@ -0,0 +1,26 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/ +lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/?p=11 +lukeshu.ath.cx/1/wordpress/tag/fallibilism/ +lukeshu.ath.cx/1/wordpress/tag/school/ diff --git a/dep/lukeshu.ath.cx/1/wordpress/2010/10/suicide-as-an-act-of-optimism/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/2010/10/suicide-as-an-act-of-optimism/index.chtml new file mode 100644 index 0000000..fb65e68 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/2010/10/suicide-as-an-act-of-optimism/index.chtml @@ -0,0 +1,25 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/10/suicide-as-an-act-of-optimism/ +lukeshu.ath.cx/1/wordpress/2010/10/who-am-i/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2010/11/fuse-is-crazy/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/?p=29 diff --git a/dep/lukeshu.ath.cx/1/wordpress/2010/10/who-am-i/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/2010/10/who-am-i/index.chtml new file mode 100644 index 0000000..116b926 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/2010/10/who-am-i/index.chtml @@ -0,0 +1,25 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/ +lukeshu.ath.cx/1/wordpress/2010/10/suicide-as-an-act-of-optimism/ +lukeshu.ath.cx/1/wordpress/2010/10/who-am-i/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/?p=23 diff --git a/dep/lukeshu.ath.cx/1/wordpress/2010/11/fuse-is-crazy/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/2010/11/fuse-is-crazy/index.chtml new file mode 100644 index 0000000..e9182a4 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/2010/11/fuse-is-crazy/index.chtml @@ -0,0 +1,25 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/10/suicide-as-an-act-of-optimism/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2010/11/fuse-is-crazy/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/?p=38 diff --git a/dep/lukeshu.ath.cx/1/wordpress/2010/11/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/2010/11/index.chtml new file mode 100644 index 0000000..6e1a39a --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/2010/11/index.chtml @@ -0,0 +1,22 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2010/11/fuse-is-crazy/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ diff --git a/dep/lukeshu.ath.cx/1/wordpress/2011/01/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/2011/01/index.chtml new file mode 100644 index 0000000..93e5fe8 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/2011/01/index.chtml @@ -0,0 +1,22 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ diff --git a/dep/lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/index.chtml new file mode 100644 index 0000000..5da0cb2 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/index.chtml @@ -0,0 +1,24 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2010/11/fuse-is-crazy/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/?p=49 diff --git a/dep/lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/index.chtml new file mode 100644 index 0000000..6fb072f --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/index.chtml @@ -0,0 +1,23 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/?p=53 diff --git a/dep/lukeshu.ath.cx/1/wordpress/2011/02/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/2011/02/index.chtml new file mode 100644 index 0000000..96899f3 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/2011/02/index.chtml @@ -0,0 +1,21 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ diff --git a/dep/lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/index.chtml new file mode 100644 index 0000000..f2fb239 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/index.chtml @@ -0,0 +1,22 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/?p=60 diff --git a/dep/lukeshu.ath.cx/1/wordpress/2011/05/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/2011/05/index.chtml new file mode 100644 index 0000000..96899f3 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/2011/05/index.chtml @@ -0,0 +1,21 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ diff --git a/dep/lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/index.chtml new file mode 100644 index 0000000..fd827ec --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/index.chtml @@ -0,0 +1,22 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/?p=67 diff --git a/dep/lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/index.chtml new file mode 100644 index 0000000..5cecf78 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/index.chtml @@ -0,0 +1,22 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/?p=82 diff --git a/dep/lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/index.chtml new file mode 100644 index 0000000..4fda417 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/index.chtml @@ -0,0 +1,22 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/?p=92 diff --git a/dep/lukeshu.ath.cx/1/wordpress/2011/08/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/2011/08/index.chtml new file mode 100644 index 0000000..96899f3 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/2011/08/index.chtml @@ -0,0 +1,21 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ diff --git a/dep/lukeshu.ath.cx/1/wordpress/author/lts/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/author/lts/index.chtml new file mode 100644 index 0000000..1de8698 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/author/lts/index.chtml @@ -0,0 +1,28 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/ +lukeshu.ath.cx/1/wordpress/2010/10/suicide-as-an-act-of-optimism/ +lukeshu.ath.cx/1/wordpress/2010/10/who-am-i/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2010/11/fuse-is-crazy/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/author/lts/page/2/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/tag/ramble/ diff --git a/dep/lukeshu.ath.cx/1/wordpress/author/lts/page/2/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/author/lts/page/2/index.chtml new file mode 100644 index 0000000..8dc4831 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/author/lts/page/2/index.chtml @@ -0,0 +1,26 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/author/lts/page/2/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/tag/fallibilism/ +lukeshu.ath.cx/1/wordpress/tag/progtut/ +lukeshu.ath.cx/1/wordpress/tag/school/ diff --git a/dep/lukeshu.ath.cx/1/wordpress/category/computers/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/category/computers/index.chtml new file mode 100644 index 0000000..fc5f4a6 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/category/computers/index.chtml @@ -0,0 +1,24 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2010/11/fuse-is-crazy/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/tag/progtut/ diff --git a/dep/lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/index.chtml new file mode 100644 index 0000000..8abefaf --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/index.chtml @@ -0,0 +1,22 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/tag/progtut/ diff --git a/dep/lukeshu.ath.cx/1/wordpress/category/morning-pages/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/category/morning-pages/index.chtml new file mode 100644 index 0000000..96899f3 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/category/morning-pages/index.chtml @@ -0,0 +1,21 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ diff --git a/dep/lukeshu.ath.cx/1/wordpress/category/school-2/essays/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/category/school-2/essays/index.chtml new file mode 100644 index 0000000..008f399 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/category/school-2/essays/index.chtml @@ -0,0 +1,28 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/ +lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/ +lukeshu.ath.cx/1/wordpress/2010/10/suicide-as-an-act-of-optimism/ +lukeshu.ath.cx/1/wordpress/2010/10/who-am-i/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/tag/fallibilism/ +lukeshu.ath.cx/1/wordpress/tag/ramble/ +lukeshu.ath.cx/1/wordpress/tag/school/ diff --git a/dep/lukeshu.ath.cx/1/wordpress/category/school-2/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/category/school-2/index.chtml new file mode 100644 index 0000000..008f399 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/category/school-2/index.chtml @@ -0,0 +1,28 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/ +lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/ +lukeshu.ath.cx/1/wordpress/2010/10/suicide-as-an-act-of-optimism/ +lukeshu.ath.cx/1/wordpress/2010/10/who-am-i/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/tag/fallibilism/ +lukeshu.ath.cx/1/wordpress/tag/ramble/ +lukeshu.ath.cx/1/wordpress/tag/school/ diff --git a/dep/lukeshu.ath.cx/1/wordpress/category/uncategorized/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/category/uncategorized/index.chtml new file mode 100644 index 0000000..96899f3 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/category/uncategorized/index.chtml @@ -0,0 +1,21 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ diff --git a/dep/lukeshu.ath.cx/1/wordpress/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/index.chtml new file mode 100644 index 0000000..f0f360e --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/index.chtml @@ -0,0 +1,28 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/ +lukeshu.ath.cx/1/wordpress/2010/10/suicide-as-an-act-of-optimism/ +lukeshu.ath.cx/1/wordpress/2010/10/who-am-i/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2010/11/fuse-is-crazy/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/page/2/ +lukeshu.ath.cx/1/wordpress/tag/ramble/ diff --git a/dep/lukeshu.ath.cx/1/wordpress/page/2/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/page/2/index.chtml new file mode 100644 index 0000000..13986a2 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/page/2/index.chtml @@ -0,0 +1,26 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/page/2/ +lukeshu.ath.cx/1/wordpress/tag/fallibilism/ +lukeshu.ath.cx/1/wordpress/tag/progtut/ +lukeshu.ath.cx/1/wordpress/tag/school/ diff --git a/dep/lukeshu.ath.cx/1/wordpress/tag/fallibilism/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/tag/fallibilism/index.chtml new file mode 100644 index 0000000..3138539 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/tag/fallibilism/index.chtml @@ -0,0 +1,24 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/tag/fallibilism/ +lukeshu.ath.cx/1/wordpress/tag/school/ diff --git a/dep/lukeshu.ath.cx/1/wordpress/tag/progtut/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/tag/progtut/index.chtml new file mode 100644 index 0000000..8abefaf --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/tag/progtut/index.chtml @@ -0,0 +1,22 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/tag/progtut/ diff --git a/dep/lukeshu.ath.cx/1/wordpress/tag/ramble/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/tag/ramble/index.chtml new file mode 100644 index 0000000..9a9f403 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/tag/ramble/index.chtml @@ -0,0 +1,23 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/tag/ramble/ diff --git a/dep/lukeshu.ath.cx/1/wordpress/tag/school/index.chtml b/dep/lukeshu.ath.cx/1/wordpress/tag/school/index.chtml new file mode 100644 index 0000000..3138539 --- /dev/null +++ b/dep/lukeshu.ath.cx/1/wordpress/tag/school/index.chtml @@ -0,0 +1,24 @@ +lukeshu.ath.cx/1/wordpress/ +lukeshu.ath.cx/1/wordpress/2010/09/ +lukeshu.ath.cx/1/wordpress/2010/09/hello-world/ +lukeshu.ath.cx/1/wordpress/2010/10/ +lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/ +lukeshu.ath.cx/1/wordpress/2010/11/ +lukeshu.ath.cx/1/wordpress/2011/01/ +lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/ +lukeshu.ath.cx/1/wordpress/2011/02/ +lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/ +lukeshu.ath.cx/1/wordpress/2011/05/ +lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/ +lukeshu.ath.cx/1/wordpress/2011/08/ +lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/ +lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/ +lukeshu.ath.cx/1/wordpress/author/lts/ +lukeshu.ath.cx/1/wordpress/category/computers/ +lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/ +lukeshu.ath.cx/1/wordpress/category/morning-pages/ +lukeshu.ath.cx/1/wordpress/category/school-2/ +lukeshu.ath.cx/1/wordpress/category/school-2/essays/ +lukeshu.ath.cx/1/wordpress/category/uncategorized/ +lukeshu.ath.cx/1/wordpress/tag/fallibilism/ +lukeshu.ath.cx/1/wordpress/tag/school/ diff --git a/mk/lukeshu.ath.cx/1/wordpress/2010/09/hello-world/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/2010/09/hello-world/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/2010/09/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/2010/09/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/2010/10/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/2010/10/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/2010/10/suicide-as-an-act-of-optimism/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/2010/10/suicide-as-an-act-of-optimism/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/2010/10/who-am-i/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/2010/10/who-am-i/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/2010/11/fuse-is-crazy/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/2010/11/fuse-is-crazy/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/2010/11/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/2010/11/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/2011/01/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/2011/01/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/2011/02/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/2011/02/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/2011/05/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/2011/05/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/2011/08/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/2011/08/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/author/lts/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/author/lts/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/author/lts/page/2/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/author/lts/page/2/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/category/computers/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/category/computers/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/category/morning-pages/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/category/morning-pages/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/category/school-2/essays/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/category/school-2/essays/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/category/school-2/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/category/school-2/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/category/uncategorized/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/category/uncategorized/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/page/2/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/page/2/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/tag/fallibilism/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/tag/fallibilism/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/tag/progtut/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/tag/progtut/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/tag/ramble/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/tag/ramble/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/mk/lukeshu.ath.cx/1/wordpress/tag/school/index.chtml b/mk/lukeshu.ath.cx/1/wordpress/tag/school/index.chtml new file mode 100644 index 0000000..e69de29 diff --git a/web/lukeshu.ath.cx/1/wordpress/2010/09/hello-world/index.chtml b/web/lukeshu.ath.cx/1/wordpress/2010/09/hello-world/index.chtml new file mode 100644 index 0000000..3833d5e --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2010/09/hello-world/index.chtml @@ -0,0 +1,296 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/2010/09/hello-world/. It is a snapshot of the page as it appeared on Dec 10, 2011 05:24:42 GMT. The current page could have changed in the meantime. Learn more

Text-only version
+
 
+ + + + + Lesson 1: Bourne Shell Scripting | ltsBlog + + + + + + + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + +
+ + + +
+

Lesson 1: Bourne Shell Scripting

+ +
+

Introduction

+

This is the first installment in a series of articles introducing one to programming and hacking in general.

+

One pitfall that comes with teaching users unfamiliar with a shell to program is that they often struggle with concepts such as arguments and Standard In/Out. So, at Nathan’s suggestion have decided to begin with shell scripting.

+

The “shell” is the program that you use to interact with the operating system and launch programs. Many users are familiar with graphical shells, such as explorer.exe in MS Windows NT, X in *NIX, or Quartz on Mac OS X. However, “shell” is usually used to mean a command-line shell. I will try to teach about shells in the Bourne family, but will focus on GNU BASH. Bourne shells are nice in the fact that they are both a well-designed language, and a complete user interface.

+

Acquiring BASH

+

Almost any modern UNIX-like system will include BASH. If you already have a Mac OS X, BSD, or GNU/Linux machine then you probably already have BASH. If you use MS Windows, I would recommend erasing it and installing a Free UNIX-like system. However, since this may not be an option, you can install a program called Cygwin that makes Windows like a *NIX system.

+

If you use Cygwin, be sure to have it install BASH, and `bc’, `sed’, and `grep’, and nano (at least) (I don’t think it installs bc or nano by default).

+
    +
  • To access BASH on Mac OS X, launch the “Terminal” app.
  • +
  • To access BASH on GNU/Linux, launch `xterm’ or another terminal emulator; or hit <ctrl>+<alt>+F1 for a full-screen terminal.
  • +
  • To access BASH on Cygwin there should be a program in the “All Programs” menu from the Start menu.
  • +
+

Your first Shell script

+

Open a BASH session. You should see a “$ ” prompt, possibly with other text such as username and the current directory (folder). Because of this when you see a command like “$ cp foo foo.bak”, the “$ ” only indicates that it is a shell command; you don’t actually type the dollar sign.

+

Use the $ nano script1.sh command to create and edit the file “script1.sh” with the nano text editor.

+

In my examples I use nano, but feel free to use another text editor. I chose GNU nano because it is new-user friendly, comes pre-installed on Mac OS X, most modern *NIXen, and is easily installed with Cygwin. While there are many better new-user friendly text editors, such as Notepad++ and gedit, they are not the same across all systems. Additionally, there are many more sophisticated editors such as Emacs or VI that are awesome, but take some time to learn. I personally use GNU Emacs.

+

For the first line of the file, type:

+
#!/bin/bash
+

This tells the operating system how to run text files as programs. Most programs are binary files that the computer can run directly, and humans can’t really read. However, text scripts that reverse this; we can read them, but the computer needs help. In this case, it checks to see if the file begins with a shebang (hash[#]-bang[!]), and if it does, uses the binary program file on the line after it to read the program. Since we are writing a BASH script, we list “/bin/bash”, which is where BASH is usually installed.

+

Now, if you are even slightly familiar with the command line, you know that a command-line shell primarily takes a simple list of commands, in order. Writing a shell script like this is exactly like typing it directly at the command-line. Well, actually, there are 2 differences:

+
    +
  1. The shell won’t be interactive, it won’t print the prompt before each command.
  2. +
  3. The shell will exit when it’s done, instead of waiting for another command.
  4. +
+

Now, the first program anyone ever learns to write is “hello world”, so:

+
#!/bin/bash
+echo 'Hello, world!'
+
+

Once you have entered this into your editor, save and return to your interactive shell. In nano, do this by entering <ctrl>+o to save, and <ctrl>+x to exit back to the shell. Now, in order to run the script as a program, we must let the computer know that it is a program, tell the computer that it is “executable”. Do this by running the command “$ chmod +x script1.sh” (change mode +executable on the file “script1.sh”).

+

Now, actually running your program. I could simply tell you run “$ ./script1.sh”, but I’ll instead take the time to explain why this is how you run the program, and why you need “./” for it, and you don’t for most programs. There are two ways to tell BASH what program to run:

+
    +
  1. Give just the command/file name, and check the PATH and shell built-ins for the command.
  2. +
  3. Give the path to the specific file.
  4. +
+

The first way is by far the most common, let me explain how it works. Take for example the “echo” command we used. Since it does not contain a “/” it must be a filename, rather than a path. BASH can be first checks it’s list of built-in commands, and uses built-in echo. However, you can configure BASH to disable most built-in commands, in which case it would not find the built-in echo, and begin to look in the PATH. PATH is a special environmental variable that tells shells where to look for programs. To see what your PATH is, run “$ echo $PATH”. For example, my current PATH is:

+
/home/luke/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
+

Now, path is a list of directory/folder locations, separated by colons. The shell will look in the first folder for a file with the name of the command. So, on my system, BASH will look for the file “/home/luke/bin/echo”, which doesn’t exist, so it will go on and look in the next folder, until it eventually finds “/bin/echo”, when it will run that file. If the shell can’t find a command with that name, it will display an error message. The second way, we give the path directly to the command we want to run, the folder it’s in, and the file in it. So, if I didn’t want to re-configure BASH, but wanted to run the non-built-in version of echo, I could type “$ /bin/echo 'Hello, world!'”. BASH knows that this is a complete path because it does contain a “/”. Now, you can either give the an absolute path, or a relative path. An absolute path gives is like saying “at this address”, where a relative path is like saying “1 mile east from here”. Now, on a UNIX-like operating system, the file-system begins with “/” as the root folder, all other folders go inside of it, so if the path begins with a “/”, then it is an absolute path. If the path does not begin with a slash, then the first item listed is directly inside of the current directory. So, since our program is directly in the same directory as we are, so it would just be “script1.sh”, right? Well, then bash doesn’t know that it’s a path, rather than a command, so how do we add a slash, but not have to list exactly where we currently are? The simple answer is that on UNIX-like systems all directories always have at least 2 sub-directories, “.” and “..”, both with special meanings. “.” is the same folder that it’s in, so “/home/luke/././././” is the same as just “/home/luke/”. “..” is the parent directory, the directory that this one is inside of; so “/home/luke/../” is the same as “/home/”. So, when we want to say that something is directly in the current directory, and we need a slash, we can use “./script1.sh”, which is the same location as “script1.sh”, but BASH knows that it’s a path.

+

Variables

+

TODO

+

Standard Out

+

TODO

+

Standard In

+

TODO

+

Flow control

+

TODO

+

Afterward/Other resources

+

As will be norm, if you wish to become proficient in a language, you must do more than just read my Lessons, you must find other resources, but more importantly, do something, find hands-on experience. Just this weekend, I wrote a system monitor (a program to display things like processor use, memory consumption, battery level, etc.) in BASH, and even though I already considered myself proficient with both my operating system, and BASH, in doing so learned several things about both (namely, BASH traps).

+

Anyway, about other resources: I often have trouble recommending resources to people, since I feel that there are so few good resources available, and that 90% of the resources available are crap. However, I feel confident recommending the book Advanced Bash-Scripting Guide, available online at The LDP in many formats (to view in your web browser, go for the HTML version). One page that is especially useful, even to experienced coders is its Reference Cards page. While the book is a great resource, there are several minor issues with it that I need to address before I feel comfortable recommending it:

+
    +
  • It frequently says “Linux” when it means “GNU/Linux”, which is especially unfortunate because there are times when it really does mean just “Linux”.
  • +
  • It frequently uses the word “hack” when it means “crack”.
  • +
  • Don’t believe it 100% when it says something about defaults, or that some operating system does something. For example, it claims several times that all GNU/Linux (well, it says just “Linux”) systems that BASH is the default shell. This is generally true, many do, but several do not, namely Ubuntu, for which the default is DASH.
  • +
+

Less specifically, O’Reilly Media is well-known among hackers for providing quality resources, often written by hackers themselves. Especially the books with an animal on the front, those are good stuff.

+ +
+
+ +
+ +
+ This entry was posted in Computers, Programming Lessons and tagged . Bookmark the permalink. + +
+
+ + + + + +
+ +

2 Responses to Lesson 1: Bourne Shell Scripting

+ +
    + +
  1. +
    +
    + + Jade Parsons says: +
    + + +
    +

    Hi Luke. I remembered you saying you have a website, so being the curious person I am, I decided to check it out. Now I could use some help. I opened BASH session and am a tad bit confused. Your entry says,”Use the $ nano script1.sh command to create and edit the file “script1.sh” with the nano text editor.” This is where I got lost. I tried typing “script1.sh” in, but that was not it of course. So where do I: 1.use the $ nano script1.sh 2.create the file? Maybe I am a little mixed up. I could use some clarification please.

    +
    +
    + Reply +
    +
    + +
      + +
    • +
      +
      + + lts says: +
      + + +
      +

      When you open the BASH prompt, type nano script1.sh. This will open the file in Nano. If the file does not exist, it will be created when you save.

      +

      In Nano you save with Ctrl-O.

      +

      At the bottom where you see “^G Get Help” and such, these are the keyboard commands; “^” means “Ctrl-”.

      +
      +
      + Reply +
      +
      + +
    • +
    +
  2. + +
+
+

Leave a Reply

+
+

Your email address will not be published. Required fields are marked *

*

+ +

+

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

+ + + +

+
+
+ +
+ +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2010/09/hello-world/index.html b/web/lukeshu.ath.cx/1/wordpress/2010/09/hello-world/index.html new file mode 100644 index 0000000..d9017d2 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2010/09/hello-world/index.html @@ -0,0 +1,293 @@ + + + + + Lesson 1: Bourne Shell Scripting | ltsBlog + + + + + + + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + +
+ + + +
+

Lesson 1: Bourne Shell Scripting

+ +
+

Introduction

+

This is the first installment in a series of articles introducing one to programming and hacking in general.

+

One pitfall that comes with teaching users unfamiliar with a shell to program is that they often struggle with concepts such as arguments and Standard In/Out. So, at Nathan’s suggestion have decided to begin with shell scripting.

+

The “shell” is the program that you use to interact with the operating system and launch programs. Many users are familiar with graphical shells, such as explorer.exe in MS Windows NT, X in *NIX, or Quartz on Mac OS X. However, “shell” is usually used to mean a command-line shell. I will try to teach about shells in the Bourne family, but will focus on GNU BASH. Bourne shells are nice in the fact that they are both a well-designed language, and a complete user interface.

+

Acquiring BASH

+

Almost any modern UNIX-like system will include BASH. If you already have a Mac OS X, BSD, or GNU/Linux machine then you probably already have BASH. If you use MS Windows, I would recommend erasing it and installing a Free UNIX-like system. However, since this may not be an option, you can install a program called Cygwin that makes Windows like a *NIX system.

+

If you use Cygwin, be sure to have it install BASH, and `bc’, `sed’, and `grep’, and nano (at least) (I don’t think it installs bc or nano by default).

+
    +
  • To access BASH on Mac OS X, launch the “Terminal” app.
  • +
  • To access BASH on GNU/Linux, launch `xterm’ or another terminal emulator; or hit <ctrl>+<alt>+F1 for a full-screen terminal.
  • +
  • To access BASH on Cygwin there should be a program in the “All Programs” menu from the Start menu.
  • +
+

Your first Shell script

+

Open a BASH session. You should see a “$ ” prompt, possibly with other text such as username and the current directory (folder). Because of this when you see a command like “$ cp foo foo.bak”, the “$ ” only indicates that it is a shell command; you don’t actually type the dollar sign.

+

Use the $ nano script1.sh command to create and edit the file “script1.sh” with the nano text editor.

+

In my examples I use nano, but feel free to use another text editor. I chose GNU nano because it is new-user friendly, comes pre-installed on Mac OS X, most modern *NIXen, and is easily installed with Cygwin. While there are many better new-user friendly text editors, such as Notepad++ and gedit, they are not the same across all systems. Additionally, there are many more sophisticated editors such as Emacs or VI that are awesome, but take some time to learn. I personally use GNU Emacs.

+

For the first line of the file, type:

+
#!/bin/bash
+

This tells the operating system how to run text files as programs. Most programs are binary files that the computer can run directly, and humans can’t really read. However, text scripts that reverse this; we can read them, but the computer needs help. In this case, it checks to see if the file begins with a shebang (hash[#]-bang[!]), and if it does, uses the binary program file on the line after it to read the program. Since we are writing a BASH script, we list “/bin/bash”, which is where BASH is usually installed.

+

Now, if you are even slightly familiar with the command line, you know that a command-line shell primarily takes a simple list of commands, in order. Writing a shell script like this is exactly like typing it directly at the command-line. Well, actually, there are 2 differences:

+
    +
  1. The shell won’t be interactive, it won’t print the prompt before each command.
  2. +
  3. The shell will exit when it’s done, instead of waiting for another command.
  4. +
+

Now, the first program anyone ever learns to write is “hello world”, so:

+
#!/bin/bash
+echo 'Hello, world!'
+
+

Once you have entered this into your editor, save and return to your interactive shell. In nano, do this by entering <ctrl>+o to save, and <ctrl>+x to exit back to the shell. Now, in order to run the script as a program, we must let the computer know that it is a program, tell the computer that it is “executable”. Do this by running the command “$ chmod +x script1.sh” (change mode +executable on the file “script1.sh”).

+

Now, actually running your program. I could simply tell you run “$ ./script1.sh”, but I’ll instead take the time to explain why this is how you run the program, and why you need “./” for it, and you don’t for most programs. There are two ways to tell BASH what program to run:

+
    +
  1. Give just the command/file name, and check the PATH and shell built-ins for the command.
  2. +
  3. Give the path to the specific file.
  4. +
+

The first way is by far the most common, let me explain how it works. Take for example the “echo” command we used. Since it does not contain a “/” it must be a filename, rather than a path. BASH can be first checks it’s list of built-in commands, and uses built-in echo. However, you can configure BASH to disable most built-in commands, in which case it would not find the built-in echo, and begin to look in the PATH. PATH is a special environmental variable that tells shells where to look for programs. To see what your PATH is, run “$ echo $PATH”. For example, my current PATH is:

+
/home/luke/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
+

Now, path is a list of directory/folder locations, separated by colons. The shell will look in the first folder for a file with the name of the command. So, on my system, BASH will look for the file “/home/luke/bin/echo”, which doesn’t exist, so it will go on and look in the next folder, until it eventually finds “/bin/echo”, when it will run that file. If the shell can’t find a command with that name, it will display an error message. The second way, we give the path directly to the command we want to run, the folder it’s in, and the file in it. So, if I didn’t want to re-configure BASH, but wanted to run the non-built-in version of echo, I could type “$ /bin/echo 'Hello, world!'”. BASH knows that this is a complete path because it does contain a “/”. Now, you can either give the an absolute path, or a relative path. An absolute path gives is like saying “at this address”, where a relative path is like saying “1 mile east from here”. Now, on a UNIX-like operating system, the file-system begins with “/” as the root folder, all other folders go inside of it, so if the path begins with a “/”, then it is an absolute path. If the path does not begin with a slash, then the first item listed is directly inside of the current directory. So, since our program is directly in the same directory as we are, so it would just be “script1.sh”, right? Well, then bash doesn’t know that it’s a path, rather than a command, so how do we add a slash, but not have to list exactly where we currently are? The simple answer is that on UNIX-like systems all directories always have at least 2 sub-directories, “.” and “..”, both with special meanings. “.” is the same folder that it’s in, so “/home/luke/././././” is the same as just “/home/luke/”. “..” is the parent directory, the directory that this one is inside of; so “/home/luke/../” is the same as “/home/”. So, when we want to say that something is directly in the current directory, and we need a slash, we can use “./script1.sh”, which is the same location as “script1.sh”, but BASH knows that it’s a path.

+

Variables

+

TODO

+

Standard Out

+

TODO

+

Standard In

+

TODO

+

Flow control

+

TODO

+

Afterward/Other resources

+

As will be norm, if you wish to become proficient in a language, you must do more than just read my Lessons, you must find other resources, but more importantly, do something, find hands-on experience. Just this weekend, I wrote a system monitor (a program to display things like processor use, memory consumption, battery level, etc.) in BASH, and even though I already considered myself proficient with both my operating system, and BASH, in doing so learned several things about both (namely, BASH traps).

+

Anyway, about other resources: I often have trouble recommending resources to people, since I feel that there are so few good resources available, and that 90% of the resources available are crap. However, I feel confident recommending the book Advanced Bash-Scripting Guide, available online at The LDP in many formats (to view in your web browser, go for the HTML version). One page that is especially useful, even to experienced coders is its Reference Cards page. While the book is a great resource, there are several minor issues with it that I need to address before I feel comfortable recommending it:

+
    +
  • It frequently says “Linux” when it means “GNU/Linux”, which is especially unfortunate because there are times when it really does mean just “Linux”.
  • +
  • It frequently uses the word “hack” when it means “crack”.
  • +
  • Don’t believe it 100% when it says something about defaults, or that some operating system does something. For example, it claims several times that all GNU/Linux (well, it says just “Linux”) systems that BASH is the default shell. This is generally true, many do, but several do not, namely Ubuntu, for which the default is DASH.
  • +
+

Less specifically, O’Reilly Media is well-known among hackers for providing quality resources, often written by hackers themselves. Especially the books with an animal on the front, those are good stuff.

+ +
+
+ +
+ +
+ This entry was posted in Computers, Programming Lessons and tagged . Bookmark the permalink. + +
+
+ + + + + +
+ +

2 Responses to Lesson 1: Bourne Shell Scripting

+ +
    + +
  1. +
    +
    + + Jade Parsons says: +
    + + +
    +

    Hi Luke. I remembered you saying you have a website, so being the curious person I am, I decided to check it out. Now I could use some help. I opened BASH session and am a tad bit confused. Your entry says,”Use the $ nano script1.sh command to create and edit the file “script1.sh” with the nano text editor.” This is where I got lost. I tried typing “script1.sh” in, but that was not it of course. So where do I: 1.use the $ nano script1.sh 2.create the file? Maybe I am a little mixed up. I could use some clarification please.

    +
    +
    + Reply +
    +
    + +
      + +
    • +
      +
      + + lts says: +
      + + +
      +

      When you open the BASH prompt, type nano script1.sh. This will open the file in Nano. If the file does not exist, it will be created when you save.

      +

      In Nano you save with Ctrl-O.

      +

      At the bottom where you see “^G Get Help” and such, these are the keyboard commands; “^” means “Ctrl-”.

      +
      +
      + Reply +
      +
      + +
    • +
    +
  2. + +
+
+

Leave a Reply

+
+

Your email address will not be published. Required fields are marked *

*

+ +

+

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

+ + + +

+
+
+ +
+ +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2010/09/index.chtml b/web/lukeshu.ath.cx/1/wordpress/2010/09/index.chtml new file mode 100644 index 0000000..343f432 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2010/09/index.chtml @@ -0,0 +1,181 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/2010/09/. It is a snapshot of the page as it appeared on Dec 8, 2011 19:53:14 GMT. The current page could have changed in the meantime. Learn more

Text-only version
+
 
+ + + + + September | 2010 | ltsBlog + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ + + +

Monthly Archives: September 2010

+ + +
+ +

Lesson 1: Bourne Shell Scripting

+ + + + +
+

This is the first installment in a series of articles introducing one to programming and hacking in general. We will cover setting up a *NIX environment, basic notation, and Bourne shell scripting. Continue reading

+ +
+ + +
+ + + Posted in Computers, Programming Lessons + + | + + + + Tagged + + | + + 2 Comments + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2010/09/index.html b/web/lukeshu.ath.cx/1/wordpress/2010/09/index.html new file mode 100644 index 0000000..01a5b61 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2010/09/index.html @@ -0,0 +1,178 @@ + + + + + September | 2010 | ltsBlog + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ + + +

Monthly Archives: September 2010

+ + +
+ +

Lesson 1: Bourne Shell Scripting

+ + + + +
+

This is the first installment in a series of articles introducing one to programming and hacking in general. We will cover setting up a *NIX environment, basic notation, and Bourne shell scripting. Continue reading

+ +
+ + +
+ + + Posted in Computers, Programming Lessons + + | + + + + Tagged + + | + + 2 Comments + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/index.chtml b/web/lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/index.chtml new file mode 100644 index 0000000..001a211 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/index.chtml @@ -0,0 +1,204 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/. It is a snapshot of the page as it appeared on Dec 6, 2011 23:07:23 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + ICB Journals | ltsBlog + + + + + + + + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + +
+ + + +
+

ICB Journals

+ +
+

+A while back I had to do a bunch of journals on the book In Cold Blood.
+I have decided to post several of these journals, they are very incoherent.
+Each journal had a passage associated with it, which have not been reproduced here. +

+

#3, Page 20 – The Last to See Them Alive

+

Perhaps this is a bit of a tangent, but this passage makes me wonder “What makes someone become a life insurance agent?” It must be the most depressing job ever, next to working in a cemetery/crematorium/funeral home. Even if one can claim ignorance of that fact when entering the field, what makes someone want do do that? Are there high-school students who want to sell insurance when they grow up?

+

#7, Page 65 – Persons Unknown

+

I tried to read her story, however, she kept using the phrase “hot as Hades,” and I couldn’t take her seriously (does this make me an awful person?). I find the phrase “hot as Hades” to be humerus; a hot hell is a distinctly Christian concept, the Greek Hades was cold, icy. This certainly fits much of the imagery of death, the “cold grip of death,” bodies get cold when they die, and you get the chills when one is scared (exposed to death). It appears that my mind is wandering, I’m going to attribute this to lack of hacking. Relatedly, I should probably finish the book Hackers, (I have to write a review of it, as I got a free “review copy”) I’ll do that as soon as I finish this book.

+

#15, Page 147-148 – The Corner

+

It’s funny how the events we build up in our heads end up not being fulfilling as we imagine them to be. Whatever this journal was going to be just got derailed by my recollection of a paper I once read. The paper essentially stated that individuals with depression are the sane people, and that we are all the ones with the disorder. It asserted that we have a condition that causes us to over-estimate how future events will affect us, both good events and bad. Individuals with depression actually function properly, but without the unfounded optimism fount in the rest of us, they fail to be motivated or feel good. If this is correct, it means that the world just sucks. It would seem here that Dewey indeed does not have depression, for he is subject to our condition of falsely inflating gratifying events.

+ +
+
+ +
+ +
+ This entry was posted in Essays, School and tagged . Bookmark the permalink. + +
+
+ + + + + +
+
+

Leave a Reply

+
+

Your email address will not be published. Required fields are marked *

*

+ +

+

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

+ + + +

+
+
+ +
+ +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/index.html b/web/lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/index.html new file mode 100644 index 0000000..d5baa7d --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2010/10/icb-journals/index.html @@ -0,0 +1,201 @@ + + + + + ICB Journals | ltsBlog + + + + + + + + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + +
+ + + +
+

ICB Journals

+ +
+

+A while back I had to do a bunch of journals on the book In Cold Blood.
+I have decided to post several of these journals, they are very incoherent.
+Each journal had a passage associated with it, which have not been reproduced here. +

+

#3, Page 20 – The Last to See Them Alive

+

Perhaps this is a bit of a tangent, but this passage makes me wonder “What makes someone become a life insurance agent?” It must be the most depressing job ever, next to working in a cemetery/crematorium/funeral home. Even if one can claim ignorance of that fact when entering the field, what makes someone want do do that? Are there high-school students who want to sell insurance when they grow up?

+

#7, Page 65 – Persons Unknown

+

I tried to read her story, however, she kept using the phrase “hot as Hades,” and I couldn’t take her seriously (does this make me an awful person?). I find the phrase “hot as Hades” to be humerus; a hot hell is a distinctly Christian concept, the Greek Hades was cold, icy. This certainly fits much of the imagery of death, the “cold grip of death,” bodies get cold when they die, and you get the chills when one is scared (exposed to death). It appears that my mind is wandering, I’m going to attribute this to lack of hacking. Relatedly, I should probably finish the book Hackers, (I have to write a review of it, as I got a free “review copy”) I’ll do that as soon as I finish this book.

+

#15, Page 147-148 – The Corner

+

It’s funny how the events we build up in our heads end up not being fulfilling as we imagine them to be. Whatever this journal was going to be just got derailed by my recollection of a paper I once read. The paper essentially stated that individuals with depression are the sane people, and that we are all the ones with the disorder. It asserted that we have a condition that causes us to over-estimate how future events will affect us, both good events and bad. Individuals with depression actually function properly, but without the unfounded optimism fount in the rest of us, they fail to be motivated or feel good. If this is correct, it means that the world just sucks. It would seem here that Dewey indeed does not have depression, for he is subject to our condition of falsely inflating gratifying events.

+ +
+
+ +
+ +
+ This entry was posted in Essays, School and tagged . Bookmark the permalink. + +
+
+ + + + + +
+
+

Leave a Reply

+
+

Your email address will not be published. Required fields are marked *

*

+ +

+

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

+ + + +

+
+
+ +
+ +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2010/10/index.chtml b/web/lukeshu.ath.cx/1/wordpress/2010/10/index.chtml new file mode 100644 index 0000000..ecce96a --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2010/10/index.chtml @@ -0,0 +1,275 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/2010/10/. It is a snapshot of the page as it appeared on Dec 6, 2011 12:02:29 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + October | 2010 | ltsBlog + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ + + +

Monthly Archives: October 2010

+ + +
+ +

Suicide as an Act of Optimism

+ + + + +
+

If you have been personally touched by suicide, please don’t be offended, I do not entirely agree with the sentiment of this essay.

+

You are not a beautiful, unique snowflake of specialness. You are made of the same decaying, organic matter as everything else. Accept that you are going to die and let go.

+

Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + Leave a comment + +
+ +
+ +
+ +

Who am I?

+ + + + +
+

I am the nerd, the geek, the hacker. In most aspects, I am the stereotypical nerd. I wear glasses, a belt, a button down shirt, and a pocket protector. I play Dungeons and Dragons. I’m smart and have a passion … Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + Leave a comment + +
+ +
+ +
+ +

ICB Journals

+ + + + +
+

A while back I had to do a bunch of journals on the book In Cold Blood. I have decided to post several of these journals, they are very incoherent. Each journal had a passage associated with it, which have … Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged + + | + + Leave a comment + +
+ +
+ +
+ +

What I Know for Sure

+ + + + +
+

I don’t know anything for sure. For all I know, I am a brain in a jar. Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged , + + | + + Leave a comment + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2010/10/index.html b/web/lukeshu.ath.cx/1/wordpress/2010/10/index.html new file mode 100644 index 0000000..8cb72da --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2010/10/index.html @@ -0,0 +1,272 @@ + + + + + October | 2010 | ltsBlog + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ + + +

Monthly Archives: October 2010

+ + +
+ +

Suicide as an Act of Optimism

+ + + + +
+

If you have been personally touched by suicide, please don’t be offended, I do not entirely agree with the sentiment of this essay.

+

You are not a beautiful, unique snowflake of specialness. You are made of the same decaying, organic matter as everything else. Accept that you are going to die and let go.

+

Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + Leave a comment + +
+ +
+ +
+ +

Who am I?

+ + + + +
+

I am the nerd, the geek, the hacker. In most aspects, I am the stereotypical nerd. I wear glasses, a belt, a button down shirt, and a pocket protector. I play Dungeons and Dragons. I’m smart and have a passion … Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + Leave a comment + +
+ +
+ +
+ +

ICB Journals

+ + + + +
+

A while back I had to do a bunch of journals on the book In Cold Blood. I have decided to post several of these journals, they are very incoherent. Each journal had a passage associated with it, which have … Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged + + | + + Leave a comment + +
+ +
+ +
+ +

What I Know for Sure

+ + + + +
+

I don’t know anything for sure. For all I know, I am a brain in a jar. Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged , + + | + + Leave a comment + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/index.chtml b/web/lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/index.chtml new file mode 100644 index 0000000..ace1b1c --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/index.chtml @@ -0,0 +1,199 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/. It is a snapshot of the page as it appeared on Dec 6, 2011 23:11:31 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + What I Know for Sure | ltsBlog + + + + + + + + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + +
+ + + +
+

What I Know for Sure

+ +
+

I don’t know anything for sure. I’m not entirely convinced that there’s a laptop sitting in front of me now, as I type this. Sure, I see it, I feel it, I hear it, but I cannot be certain that my senses are not fooling me. I cannot be certain that I am not a brain in a jar, a computer simulation, a mad man in a asylum, an unknown species dreaming that I am man. If my perception of the universe is correct, this philosophy is called “fallibilism.”

+

If memory serves, I have subscribed to fallibilism for quite some time, though I didn’t know the term for most of it. For an even larger portion of that time, I held the belief that I could know axiomatic information; I could properly reason through, and assure myself that 2+2=4. Quite surprisingly, I became dissuaded from this not by the book 1984 (which spent a good deal of time on “2+2=5”), but from spending a week high out of my mind on pain pills. I’m not sure if it was the penicillin, the ibuprofen, the Demerol, or the meso-whatever, but during this time, I became convinced of the fallibility of my own mind, to a degree that I hadn’t been able to imagine before. Before, I accepted that my logic was fallible, that I made mistakes, but that I knew when I had some level of competence. I became fairly convinced that one can never rely on one’s self having some level of competence. Formerly I had been able to make the judgment that because I am thinking, I am; I am no longer convinced that I am not making a logical fallacy.

+

The most fundamental thing I believe is: it matters because I want it to matter. This is not something that I can prove, or something that I can reason through or back up. It’s something that I feel in my gut and accept. It’s something we all must do. We all must decide what matters to us and make the most of it. Whether or not reality is subjective, our perception of it is, so it is impossible to identify universal truths. Whether something “truly” matters or not (something we can’t properly judge), I have found that it is nice to choose what you want to matter, and pursue it. Make the most of it. We must, because, honestly, what else are you going to do, try to have an awful time?

+

In our pursuit of these things that only matter to us, we often try to convince others that it does matter. It is my belief that, whether we are aware of it or not, this is an attempt to get closer to other people. We are trying to alter other’s realities (or perceptions of it) to coincide with our own. For many it is an attempt to “aid” people, and show them the “truth”, and make their perception of reality coincide with what the convincer perceives to be the “true reality.” In doing so, we often become enamored of trying to justify why these things matter to us and ought to matter to others.

+

This is sometimes very difficult task, as it is hard to justify that hitting a ball, or whatever, is existentially rewarding. We all work differently, some of us are rewarded by hitting that home run, some aren’t. Since we all have different things that make us tick, each person must figure out “What matters to me?” in order to make the most of themselves. We can’t simply take the values of others, the freedom to decide what matters to us appears to me to be a fundamental freedom; our founding fathers recognized it as the pursuit of happiness. To find that happiness, one must recognize what rewards himself, what matters to himself. If we don’t, we’re just adrift.

+

Perhaps I’m all wrong, what do I know? I don’t know anything.

+ +
+
+ +
+ +
+ This entry was posted in Essays, School and tagged , . Bookmark the permalink. + +
+
+ + + + + +
+
+

Leave a Reply

+
+

Your email address will not be published. Required fields are marked *

*

+ +

+

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

+ + + +

+
+
+ +
+ +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/index.html b/web/lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/index.html new file mode 100644 index 0000000..5e9c26d --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2010/10/school-essay-what-i-know-for-sure/index.html @@ -0,0 +1,196 @@ + + + + + What I Know for Sure | ltsBlog + + + + + + + + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + +
+ + + +
+

What I Know for Sure

+ +
+

I don’t know anything for sure. I’m not entirely convinced that there’s a laptop sitting in front of me now, as I type this. Sure, I see it, I feel it, I hear it, but I cannot be certain that my senses are not fooling me. I cannot be certain that I am not a brain in a jar, a computer simulation, a mad man in a asylum, an unknown species dreaming that I am man. If my perception of the universe is correct, this philosophy is called “fallibilism.”

+

If memory serves, I have subscribed to fallibilism for quite some time, though I didn’t know the term for most of it. For an even larger portion of that time, I held the belief that I could know axiomatic information; I could properly reason through, and assure myself that 2+2=4. Quite surprisingly, I became dissuaded from this not by the book 1984 (which spent a good deal of time on “2+2=5”), but from spending a week high out of my mind on pain pills. I’m not sure if it was the penicillin, the ibuprofen, the Demerol, or the meso-whatever, but during this time, I became convinced of the fallibility of my own mind, to a degree that I hadn’t been able to imagine before. Before, I accepted that my logic was fallible, that I made mistakes, but that I knew when I had some level of competence. I became fairly convinced that one can never rely on one’s self having some level of competence. Formerly I had been able to make the judgment that because I am thinking, I am; I am no longer convinced that I am not making a logical fallacy.

+

The most fundamental thing I believe is: it matters because I want it to matter. This is not something that I can prove, or something that I can reason through or back up. It’s something that I feel in my gut and accept. It’s something we all must do. We all must decide what matters to us and make the most of it. Whether or not reality is subjective, our perception of it is, so it is impossible to identify universal truths. Whether something “truly” matters or not (something we can’t properly judge), I have found that it is nice to choose what you want to matter, and pursue it. Make the most of it. We must, because, honestly, what else are you going to do, try to have an awful time?

+

In our pursuit of these things that only matter to us, we often try to convince others that it does matter. It is my belief that, whether we are aware of it or not, this is an attempt to get closer to other people. We are trying to alter other’s realities (or perceptions of it) to coincide with our own. For many it is an attempt to “aid” people, and show them the “truth”, and make their perception of reality coincide with what the convincer perceives to be the “true reality.” In doing so, we often become enamored of trying to justify why these things matter to us and ought to matter to others.

+

This is sometimes very difficult task, as it is hard to justify that hitting a ball, or whatever, is existentially rewarding. We all work differently, some of us are rewarded by hitting that home run, some aren’t. Since we all have different things that make us tick, each person must figure out “What matters to me?” in order to make the most of themselves. We can’t simply take the values of others, the freedom to decide what matters to us appears to me to be a fundamental freedom; our founding fathers recognized it as the pursuit of happiness. To find that happiness, one must recognize what rewards himself, what matters to himself. If we don’t, we’re just adrift.

+

Perhaps I’m all wrong, what do I know? I don’t know anything.

+ +
+
+ +
+ +
+ This entry was posted in Essays, School and tagged , . Bookmark the permalink. + +
+
+ + + + + +
+
+

Leave a Reply

+
+

Your email address will not be published. Required fields are marked *

*

+ +

+

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

+ + + +

+
+
+ +
+ +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2010/10/suicide-as-an-act-of-optimism/index.chtml b/web/lukeshu.ath.cx/1/wordpress/2010/10/suicide-as-an-act-of-optimism/index.chtml new file mode 100644 index 0000000..df34a8f --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2010/10/suicide-as-an-act-of-optimism/index.chtml @@ -0,0 +1,200 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/2010/10/suicide-as-an-act-of-optimism/. It is a snapshot of the page as it appeared on Dec 6, 2011 20:45:22 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + Suicide as an Act of Optimism | ltsBlog + + + + + + + + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + +
+ + + +
+

Suicide as an Act of Optimism

+ +
+

If you have been personally touched by suicide, please don’t be offended, I do not entirely agree with the sentiment of this essay. The prompt here was “Write about suicide as an act of desperation.”. We had just listened to a lecture about how most student’s essays end up being the same for the same prompt; any unique or different essay will score better. Additionally, you can’t lead me that much in the prompt. Sure I agree that suicide is a bad thing, but we can’t treat that as a given.
~ Luke Shumaker

+

You are not a beautiful, unique snowflake of specialness. You are made of the same decaying, organic matter as everything else. Accept that you are going to die and let go. It is the only way to find freedom. The only way to live life to the fullest is to accept, and embrace, that life does not matter. Suicide can be an act of optimism.

+

You are going to die. Everyone you have ever loved or cared for is going to die. Everyone you have ever met is going to die. If you’re having trouble wrapping your mind around this, perhaps a religious interpretation may help; God’s ultimate plan for you: to die. Everything you create will fall apart and be forgotten. Nothing you will ever do will matter. Losing all hope; this is nihilism.

+

To commit suicide is therefore to accept our place in the universe, and embrace our fate. To embrace “God’s will” for us, to fulfill our divine mission, surely is a noble act, a positive act of optimism. We don’t have to do anything; we fulfill our mission by being born, living for a while, then dying.

+

When we accept this, accept our mortality, and the futility of life, a massive burden is lifted. When we accept that our mission in life is to die, we no longer must worry about fulfilling it; we will. We no longer have an obligation to be significant, to make a difference. We become free. Losing all hope, and finding freedom; this is existentialism.

+

Plato wrote that Socrates had taught of “reluctant leadership.” That the “enlightened” must return from their “enhanced world,” to lead those who had not attained enlightenment; they were obligated to, though they would not want to. He believed that philosophers should govern society. Perhaps you remember Plato’s allegory of the Cave? In it, the individual who found his way outside of the cave, and saw the true world had to return to the cave to watch over those who did not realize that there was a world beyond the cave. I can’t be the only one who found this horribly depressing. You attain enlightenment, and are rewarded by being forced to return and govern idiots who think you a fool for believing in a world beyond the cave. I don’t want to hack an awesome piece of software, then spend my days running its mailing list.

+

To find freedom, we must give up all that matters to us; for it does not matter. We must come to what are possibly the most painful realizations a person can have. We must give up the life we know, the life that matters. We must accept that we are going to die, and stop caring. Then we can enjoy what we have, the way we want to. The phrase “live and let live” is a good start, but how about “live and let be?” Why must the other person in the phrase live? The phrase embodies allowing others to make their own choices, regardless of what you think, so shouldn’t they get the choice to not live a life? In order for us to find our freedom, and them to find their freedom, we must accept that life does not matter. We don’t all have to kill ourselves, but accept that life does not matter.

+ +
+
+ +
+ +
+ This entry was posted in Essays, School. Bookmark the permalink. + +
+
+ + + + + +
+
+

Leave a Reply

+
+

Your email address will not be published. Required fields are marked *

*

+ +

+

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

+ + + +

+
+
+ +
+ +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2010/10/suicide-as-an-act-of-optimism/index.html b/web/lukeshu.ath.cx/1/wordpress/2010/10/suicide-as-an-act-of-optimism/index.html new file mode 100644 index 0000000..56e17a3 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2010/10/suicide-as-an-act-of-optimism/index.html @@ -0,0 +1,197 @@ + + + + + Suicide as an Act of Optimism | ltsBlog + + + + + + + + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + +
+ + + +
+

Suicide as an Act of Optimism

+ +
+

If you have been personally touched by suicide, please don’t be offended, I do not entirely agree with the sentiment of this essay. The prompt here was “Write about suicide as an act of desperation.”. We had just listened to a lecture about how most student’s essays end up being the same for the same prompt; any unique or different essay will score better. Additionally, you can’t lead me that much in the prompt. Sure I agree that suicide is a bad thing, but we can’t treat that as a given.
~ Luke Shumaker

+

You are not a beautiful, unique snowflake of specialness. You are made of the same decaying, organic matter as everything else. Accept that you are going to die and let go. It is the only way to find freedom. The only way to live life to the fullest is to accept, and embrace, that life does not matter. Suicide can be an act of optimism.

+

You are going to die. Everyone you have ever loved or cared for is going to die. Everyone you have ever met is going to die. If you’re having trouble wrapping your mind around this, perhaps a religious interpretation may help; God’s ultimate plan for you: to die. Everything you create will fall apart and be forgotten. Nothing you will ever do will matter. Losing all hope; this is nihilism.

+

To commit suicide is therefore to accept our place in the universe, and embrace our fate. To embrace “God’s will” for us, to fulfill our divine mission, surely is a noble act, a positive act of optimism. We don’t have to do anything; we fulfill our mission by being born, living for a while, then dying.

+

When we accept this, accept our mortality, and the futility of life, a massive burden is lifted. When we accept that our mission in life is to die, we no longer must worry about fulfilling it; we will. We no longer have an obligation to be significant, to make a difference. We become free. Losing all hope, and finding freedom; this is existentialism.

+

Plato wrote that Socrates had taught of “reluctant leadership.” That the “enlightened” must return from their “enhanced world,” to lead those who had not attained enlightenment; they were obligated to, though they would not want to. He believed that philosophers should govern society. Perhaps you remember Plato’s allegory of the Cave? In it, the individual who found his way outside of the cave, and saw the true world had to return to the cave to watch over those who did not realize that there was a world beyond the cave. I can’t be the only one who found this horribly depressing. You attain enlightenment, and are rewarded by being forced to return and govern idiots who think you a fool for believing in a world beyond the cave. I don’t want to hack an awesome piece of software, then spend my days running its mailing list.

+

To find freedom, we must give up all that matters to us; for it does not matter. We must come to what are possibly the most painful realizations a person can have. We must give up the life we know, the life that matters. We must accept that we are going to die, and stop caring. Then we can enjoy what we have, the way we want to. The phrase “live and let live” is a good start, but how about “live and let be?” Why must the other person in the phrase live? The phrase embodies allowing others to make their own choices, regardless of what you think, so shouldn’t they get the choice to not live a life? In order for us to find our freedom, and them to find their freedom, we must accept that life does not matter. We don’t all have to kill ourselves, but accept that life does not matter.

+ +
+
+ +
+ +
+ This entry was posted in Essays, School. Bookmark the permalink. + +
+
+ + + + + +
+
+

Leave a Reply

+
+

Your email address will not be published. Required fields are marked *

*

+ +

+

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

+ + + +

+
+
+ +
+ +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2010/10/who-am-i/index.chtml b/web/lukeshu.ath.cx/1/wordpress/2010/10/who-am-i/index.chtml new file mode 100644 index 0000000..3d9178c --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2010/10/who-am-i/index.chtml @@ -0,0 +1,206 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/2010/10/who-am-i/. It is a snapshot of the page as it appeared on Dec 6, 2011 12:09:37 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + Who am I? | ltsBlog + + + + + + + + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + +
+ + + +
+

Who am I?

+ +
+

I am the nerd, the geek, the hacker. In most aspects, I am the stereotypical nerd. I wear glasses, a belt, a button down shirt, and a pocket protector. I play Dungeons and Dragons. I’m smart and have a passion for computers. I keep mostly to myself. However, in contrast to the stereotypical nerd, people like me. While I would expect myself to have some friends, the acceptance I have among my peers is something that continually surprises me. This is not something that has always been true, but has been for most of high school. The most logical reasons for this seems to be the emotional maturity of high-schoolers, combined with the publics’ increasing acceptance of nerds. Still, it feels like I’m doing something wrong as a nerd, and that I’ve betrayed my people.

+

The quality of my relationships with other people seem to vary inversely with quantity. For much of my life I have had a small inner circle of friends that I was very close to. As I branched out, the I have drifted from the friends I was once extremely close to. That is not to say that I am not still close to them, but that we are not as close as we once were. Since I mostly keep to myself, most of my friendships seem to form by others seeking to be friends with me. For this reason it is not infrequent that I am not sure whether I am currently friends with someone who I once was.

+


+

I am mildly insane. Somehow that became my concession. In Poe’s Tell-Tale Heart the character desperately insists that he is sane. I gave up on that plea long ago, now it’s, “don’t worry guys, I’m only slightly insane.” It’s okay though, I’m sane enough to function, but insane enough that it’s interesting. To delve into precisely in which way I am insane is neither something that would fit in this document, nor something I am entirely comfortable sharing.

+


+

I am a hacker. I think. I used to tell people that I was aligned with the hacker ethic, and followed the practices of hackers, but that I felt the term denoted s level of proficiency that I had not reached. I’m not sure I’ve progressed significantly since then, but I now feel comfortable telling people that I am a hacker.

+

I should probably clarify what “hacker” means. A hacker is someone who enjoys hacking, and subscribes to the hacker ethic. Now I must define “hack,” which is an incredibly hard word to define. To quote hacker Phil Agre, “The word hack doesn’t really have 69 different meanings. In fact, hack has only one meaning, an extremely subtle and profound one which defies articulation. Which connotation is implied by a given use of the word depends in similarly profound ways on the context.” I would say that most accurately, but least helpfully, hacking means “creative problem solving.” Hacker esr characterizes hacking as “an appropriate application of ingenuity.” Some hackers do apply this to breaking computer security, many, many more do not. I should also note that when hackers do break security, it is not with malicious intent, to do that would be a violation of the hacker ethic. Hacking normally applies to computer programming, but it can be applied to anything.

+

When I inform some people that hacking does not mean security breaking, as the mainstream media has them think, they act like I am nitpicking at a definition, or being stubborn. Let me assure you that when I hear hacker used in such a way, I am confused for a moment before I realize that many people use the term to mean security breaker.

+


+

I am lazy, but smart. Perhaps I am using a slightly different meaning of “lazy” than is normal, it is not that I avoid work, but tend to do other work instead, or avoid unnecessary work. It is commonly said that laziness is a sign of a good programmer; he will put thought into the design of his code to avoid more work later. When I don’t do a school assignment, it isn’t because I idly wasted my time; I was probably up until the wee hours of the morn working, but on hacking instead of another exercise that I don’t perceive to benefit me (other than the grade). Perhaps rather than lazy, this could be described as having bad priorities. This is probably true, and the reason I haven’t changed is that I still get away with it. I’ve gotten reasonable grades in classes by getting a “0” on homework, then setting the curve on the test. This isn’t the usual situation, though, I can usually get the work completed in a few minutes before class.

+

This brings me to my attitudes towards school. I enjoy learning, but I don’t care about grades. I know that they will help me out later; I know I’ll wish I did care when I’m applying to colleges; but they don’t matter to me. I come to school to learn, not to play some game with grades. Once I learn a topic I am not likely to spend more time on it doing 150 more practice problems, when I could be hacking, teaching myself, reading, researching, or teaching someone else.

+


+

I’m informed that many of these attributes are not atypical of people of my intelligence and passion for learning. However, I do not believe I have met anyone (in my age group, at least) that remotely fit this description.

+ +
+
+ +
+ +
+ This entry was posted in Essays, School. Bookmark the permalink. + +
+
+ + + + + +
+
+

Leave a Reply

+
+

Your email address will not be published. Required fields are marked *

*

+ +

+

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

+ + + +

+
+
+ +
+ +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2010/10/who-am-i/index.html b/web/lukeshu.ath.cx/1/wordpress/2010/10/who-am-i/index.html new file mode 100644 index 0000000..d915778 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2010/10/who-am-i/index.html @@ -0,0 +1,203 @@ + + + + + Who am I? | ltsBlog + + + + + + + + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + +
+ + + +
+

Who am I?

+ +
+

I am the nerd, the geek, the hacker. In most aspects, I am the stereotypical nerd. I wear glasses, a belt, a button down shirt, and a pocket protector. I play Dungeons and Dragons. I’m smart and have a passion for computers. I keep mostly to myself. However, in contrast to the stereotypical nerd, people like me. While I would expect myself to have some friends, the acceptance I have among my peers is something that continually surprises me. This is not something that has always been true, but has been for most of high school. The most logical reasons for this seems to be the emotional maturity of high-schoolers, combined with the publics’ increasing acceptance of nerds. Still, it feels like I’m doing something wrong as a nerd, and that I’ve betrayed my people.

+

The quality of my relationships with other people seem to vary inversely with quantity. For much of my life I have had a small inner circle of friends that I was very close to. As I branched out, the I have drifted from the friends I was once extremely close to. That is not to say that I am not still close to them, but that we are not as close as we once were. Since I mostly keep to myself, most of my friendships seem to form by others seeking to be friends with me. For this reason it is not infrequent that I am not sure whether I am currently friends with someone who I once was.

+


+

I am mildly insane. Somehow that became my concession. In Poe’s Tell-Tale Heart the character desperately insists that he is sane. I gave up on that plea long ago, now it’s, “don’t worry guys, I’m only slightly insane.” It’s okay though, I’m sane enough to function, but insane enough that it’s interesting. To delve into precisely in which way I am insane is neither something that would fit in this document, nor something I am entirely comfortable sharing.

+


+

I am a hacker. I think. I used to tell people that I was aligned with the hacker ethic, and followed the practices of hackers, but that I felt the term denoted s level of proficiency that I had not reached. I’m not sure I’ve progressed significantly since then, but I now feel comfortable telling people that I am a hacker.

+

I should probably clarify what “hacker” means. A hacker is someone who enjoys hacking, and subscribes to the hacker ethic. Now I must define “hack,” which is an incredibly hard word to define. To quote hacker Phil Agre, “The word hack doesn’t really have 69 different meanings. In fact, hack has only one meaning, an extremely subtle and profound one which defies articulation. Which connotation is implied by a given use of the word depends in similarly profound ways on the context.” I would say that most accurately, but least helpfully, hacking means “creative problem solving.” Hacker esr characterizes hacking as “an appropriate application of ingenuity.” Some hackers do apply this to breaking computer security, many, many more do not. I should also note that when hackers do break security, it is not with malicious intent, to do that would be a violation of the hacker ethic. Hacking normally applies to computer programming, but it can be applied to anything.

+

When I inform some people that hacking does not mean security breaking, as the mainstream media has them think, they act like I am nitpicking at a definition, or being stubborn. Let me assure you that when I hear hacker used in such a way, I am confused for a moment before I realize that many people use the term to mean security breaker.

+


+

I am lazy, but smart. Perhaps I am using a slightly different meaning of “lazy” than is normal, it is not that I avoid work, but tend to do other work instead, or avoid unnecessary work. It is commonly said that laziness is a sign of a good programmer; he will put thought into the design of his code to avoid more work later. When I don’t do a school assignment, it isn’t because I idly wasted my time; I was probably up until the wee hours of the morn working, but on hacking instead of another exercise that I don’t perceive to benefit me (other than the grade). Perhaps rather than lazy, this could be described as having bad priorities. This is probably true, and the reason I haven’t changed is that I still get away with it. I’ve gotten reasonable grades in classes by getting a “0” on homework, then setting the curve on the test. This isn’t the usual situation, though, I can usually get the work completed in a few minutes before class.

+

This brings me to my attitudes towards school. I enjoy learning, but I don’t care about grades. I know that they will help me out later; I know I’ll wish I did care when I’m applying to colleges; but they don’t matter to me. I come to school to learn, not to play some game with grades. Once I learn a topic I am not likely to spend more time on it doing 150 more practice problems, when I could be hacking, teaching myself, reading, researching, or teaching someone else.

+


+

I’m informed that many of these attributes are not atypical of people of my intelligence and passion for learning. However, I do not believe I have met anyone (in my age group, at least) that remotely fit this description.

+ +
+
+ +
+ +
+ This entry was posted in Essays, School. Bookmark the permalink. + +
+
+ + + + + +
+
+

Leave a Reply

+
+

Your email address will not be published. Required fields are marked *

*

+ +

+

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

+ + + +

+
+
+ +
+ +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2010/11/fuse-is-crazy/index.chtml b/web/lukeshu.ath.cx/1/wordpress/2010/11/fuse-is-crazy/index.chtml new file mode 100644 index 0000000..c8690c8 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2010/11/fuse-is-crazy/index.chtml @@ -0,0 +1,202 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/2010/11/fuse-is-crazy/. It is a snapshot of the page as it appeared on Dec 6, 2011 23:13:58 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + FUSE is crazy | ltsBlog + + + + + + + + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + +
+ + + +
+

FUSE is crazy

+ +
+

Well, I suppose just I’m only talking about Linux FUSE, I haven’t fiddled with FUSE on any other kernel. Anyway, FUSE screws with the idea of the root user:

+
$ ls
+Makefile
+build.log
+...
+$ sudo ls
+ls: cannot open directory .: Permission denied
+$ 
+

For those who don’t get it, the user with user ID `0′, usually with the username `root’ is the supreme administrator account — it is locked out of nothing, the kernel doesn’t even check file permissions when the user is root. The sudo (switch user do) command runs the following command as root. Anyway, even though the kernel doesn’t check file permissions when the user is root, FUSE does, in fact, it forces a umask of 0077, which means that even if the file permissions say “anyone logged in can read this file”, only the owner of the file can actually read it. I’m sure that this can be configured, but that doesn’t mean that it’s not brain damaged by default.

+ +
+
+ +
+ +
+ This entry was posted in Computers. Bookmark the permalink. + +
+
+ + + + + +
+
+

Leave a Reply

+
+

Your email address will not be published. Required fields are marked *

*

+ +

+

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

+ + + +

+
+
+ +
+ +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2010/11/fuse-is-crazy/index.html b/web/lukeshu.ath.cx/1/wordpress/2010/11/fuse-is-crazy/index.html new file mode 100644 index 0000000..8c1e9ab --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2010/11/fuse-is-crazy/index.html @@ -0,0 +1,199 @@ + + + + + FUSE is crazy | ltsBlog + + + + + + + + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + +
+ + + +
+

FUSE is crazy

+ +
+

Well, I suppose just I’m only talking about Linux FUSE, I haven’t fiddled with FUSE on any other kernel. Anyway, FUSE screws with the idea of the root user:

+
$ ls
+Makefile
+build.log
+...
+$ sudo ls
+ls: cannot open directory .: Permission denied
+$ 
+

For those who don’t get it, the user with user ID `0′, usually with the username `root’ is the supreme administrator account — it is locked out of nothing, the kernel doesn’t even check file permissions when the user is root. The sudo (switch user do) command runs the following command as root. Anyway, even though the kernel doesn’t check file permissions when the user is root, FUSE does, in fact, it forces a umask of 0077, which means that even if the file permissions say “anyone logged in can read this file”, only the owner of the file can actually read it. I’m sure that this can be configured, but that doesn’t mean that it’s not brain damaged by default.

+ +
+
+ +
+ +
+ This entry was posted in Computers. Bookmark the permalink. + +
+
+ + + + + +
+
+

Leave a Reply

+
+

Your email address will not be published. Required fields are marked *

*

+ +

+

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

+ + + +

+
+
+ +
+ +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2010/11/index.chtml b/web/lukeshu.ath.cx/1/wordpress/2010/11/index.chtml new file mode 100644 index 0000000..beafa8a --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2010/11/index.chtml @@ -0,0 +1,176 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/2010/11/. It is a snapshot of the page as it appeared on Dec 6, 2011 12:07:50 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + November | 2010 | ltsBlog + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ + + +

Monthly Archives: November 2010

+ + +
+ +

FUSE is crazy

+ + + + +
+

Well, I suppose just I’m only talking about Linux FUSE, I haven’t fiddled with FUSE on any other kernel. Anyway, FUSE screws with the idea of the root user: $ ls Makefile build.log … $ sudo ls ls: cannot open … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + Leave a comment + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2010/11/index.html b/web/lukeshu.ath.cx/1/wordpress/2010/11/index.html new file mode 100644 index 0000000..4ae5f5c --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2010/11/index.html @@ -0,0 +1,173 @@ + + + + + November | 2010 | ltsBlog + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ + + +

Monthly Archives: November 2010

+ + +
+ +

FUSE is crazy

+ + + + +
+

Well, I suppose just I’m only talking about Linux FUSE, I haven’t fiddled with FUSE on any other kernel. Anyway, FUSE screws with the idea of the root user: $ ls Makefile build.log … $ sudo ls ls: cannot open … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + Leave a comment + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2011/01/index.chtml b/web/lukeshu.ath.cx/1/wordpress/2011/01/index.chtml new file mode 100644 index 0000000..d5655a1 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2011/01/index.chtml @@ -0,0 +1,205 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/2011/01/. It is a snapshot of the page as it appeared on Dec 6, 2011 12:11:24 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + January | 2011 | ltsBlog + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ + + +

Monthly Archives: January 2011

+ + +
+ +

Pointers in Java

+ + + + +
+

This was originally posted to Facebook by me at 2010-08-02 23:20. Note: For purposes of anyone interested in this, pointers in Java are more commonly referred to as references, because everything in Java must have it’s own name (method vs. … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + 2 Comments + +
+ +
+ +
+ +

Java has issues

+ + + + +
+

This was originally posted to Facebook by me at 2010-09-02 23:19. It was edited by me there 2010-07-03. Java is an alright language. There are a lot of things it does right, but there are a few things it doesn’t. … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + Leave a comment + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2011/01/index.html b/web/lukeshu.ath.cx/1/wordpress/2011/01/index.html new file mode 100644 index 0000000..c0503d3 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2011/01/index.html @@ -0,0 +1,202 @@ + + + + + January | 2011 | ltsBlog + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ + + +

Monthly Archives: January 2011

+ + +
+ +

Pointers in Java

+ + + + +
+

This was originally posted to Facebook by me at 2010-08-02 23:20. Note: For purposes of anyone interested in this, pointers in Java are more commonly referred to as references, because everything in Java must have it’s own name (method vs. … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + 2 Comments + +
+ +
+ +
+ +

Java has issues

+ + + + +
+

This was originally posted to Facebook by me at 2010-09-02 23:19. It was edited by me there 2010-07-03. Java is an alright language. There are a lot of things it does right, but there are a few things it doesn’t. … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + Leave a comment + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/index.chtml b/web/lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/index.chtml new file mode 100644 index 0000000..afc5885 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/index.chtml @@ -0,0 +1,269 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/. It is a snapshot of the page as it appeared on Dec 7, 2011 21:53:20 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + Java has issues | ltsBlog + + + + + + + + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + +
+ + + +
+

Java has issues

+ +
+

This was originally posted to Facebook by me at 2010-09-02 23:19. It was edited by me there 2010-07-03.

+

Java is an alright language. There are a lot of things it does right, but there
+are a few things it doesn’t.

+
    +
  1. Distinction between classes and packages. I should be able to create
    + sub-classes the same way as I add classes to a package; a package should
    + just be an empty class.
  2. +
  3. Too many primitives. I should be able to (re-)construct more of the
    + language.
  4. +
  5. No preprocessor/inlines. OO isn’t an excuse for this, make me do it at the
    + class level (or rather, source file, not supporting `#include’ is fine). I
    + should at least be able to add `#define int8=byte’ like in C. This
    + wouldn’t be as much of an issue if all these things weren’t primitives; I
    + could just do “public class int8 extends byte”. (yes, I could extend the
    + `Byte’ class, but it wouldn’t come with all the syntactic sugar primitives
    + get.)
  6. +
  7. Numbers: names. Yes the names used are long-standing convention in CS.
    + These include some of the worst short-sighted mistakes in all of
    + hackerdom… because they stuck. Yet, most reasonable languages can still
    + support them, and sane equivalents.

    +
      +
    • byte -> int8
    • +
    • short -> int16
    • +
    • int -> int32
    • +
    • long -> int64
    • +
    • float -> float32
    • +
    • double -> float64
    • +
    +

    This would easily be fixed if they weren’t all primitives (point 2), or if
    + I had a preprocessor (point 3).

  8. +
  9. Numbers: unsigned. How about unsigned integers (uint16)? This would be
    + easy to implement, if everything weren’t a damn primitive.
  10. +
  11. Give me an actual `struct’, like in C. I’m not asking for full manual
    + memory management, just the ability to organize a chunk of it; you can
    + still manage it for me. It would make serialization hellofalot
    + easier.
  12. +
  13. It’s inconsistent about whether it uses the system encoding or it’s
    + internal encoding. The String object just became worthless to anyone
    + wanting to do any amount of I18N.
  14. +
  15. It’s internal encoding is junk. It maps UTF-16 symbols onto the `char’
    + primitive, which is 16 bits.

    +
      +
    1. UTF-16 is junk, use UTF-8
    2. +
    3. With any UTF encoding you must allow for a dynamic bit-length, for
      + UTF-16 it’s 16-32 bits, UTF-8 is 8-32 bits
    4. +
    +

    I understand how/why it arrived at the solution it uses; at the time Java
    + was designed, it was using UCS-2, which is a 16-bit encoding, and was
    + superseded by UTF-16 in 1996 with Unicode 2.0. However, this is one of
    + those things where you specify a new JVM version, and switch to UTF-8. You
    + can even leave a legacy mode in the JVM that still uses UCS-2.

  16. +
  17. Octal prefix: `0′ is used as the prefix to specify an octal literal. Any
    + third-grader can tell you why using a 0 as a prefix to a number is a bad
    + idea; the number might just have padded zeros. Let’s look at the prefix
    + used for hexadecimal: `0x’. This is great:

    +
      +
    1. It starts with a numeric character, which means that it must be a
      + literal. If it started with an alphabetic character, it might be a
      + variable name.
    2. +
    3. The second character is a alphabetic character that is not used in
      + any number system that is used in computer science. This allows it
      + to serve a a unique identifier.
    4. +
    +

    Given these reasons, let’s think of a new prefix for octal… how about
    + `0o’. That took literally less than 10 seconds for me to realize why `0′
    + sucked, and to think of a better one.*

  18. +
+

All-in-all, its still better than C++

+

* although, writing this gave me an even
+better idea, but it would break `0x<value>’ for hex, which is incredibly
+common among many languages:
+`<base-in-decimal>x<value>’
+so octal would be `8x<value>’
+and hex would be `16x<value>’
+It would be incredibly understandable, and, depending on implementation allow
+simple arbitrary-base literals.

+ +
+
+ +
+ +
+ This entry was posted in Computers. Bookmark the permalink. + +
+
+ + + + + +
+
+

Leave a Reply

+
+

Your email address will not be published. Required fields are marked *

*

+ +

+

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

+ + + +

+
+
+ +
+ +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/index.html b/web/lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/index.html new file mode 100644 index 0000000..99e751c --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/index.html @@ -0,0 +1,266 @@ + + + + + Java has issues | ltsBlog + + + + + + + + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + +
+ + + +
+

Java has issues

+ +
+

This was originally posted to Facebook by me at 2010-09-02 23:19. It was edited by me there 2010-07-03.

+

Java is an alright language. There are a lot of things it does right, but there
+are a few things it doesn’t.

+
    +
  1. Distinction between classes and packages. I should be able to create
    + sub-classes the same way as I add classes to a package; a package should
    + just be an empty class.
  2. +
  3. Too many primitives. I should be able to (re-)construct more of the
    + language.
  4. +
  5. No preprocessor/inlines. OO isn’t an excuse for this, make me do it at the
    + class level (or rather, source file, not supporting `#include’ is fine). I
    + should at least be able to add `#define int8=byte’ like in C. This
    + wouldn’t be as much of an issue if all these things weren’t primitives; I
    + could just do “public class int8 extends byte”. (yes, I could extend the
    + `Byte’ class, but it wouldn’t come with all the syntactic sugar primitives
    + get.)
  6. +
  7. Numbers: names. Yes the names used are long-standing convention in CS.
    + These include some of the worst short-sighted mistakes in all of
    + hackerdom… because they stuck. Yet, most reasonable languages can still
    + support them, and sane equivalents.

    +
      +
    • byte -> int8
    • +
    • short -> int16
    • +
    • int -> int32
    • +
    • long -> int64
    • +
    • float -> float32
    • +
    • double -> float64
    • +
    +

    This would easily be fixed if they weren’t all primitives (point 2), or if
    + I had a preprocessor (point 3).

  8. +
  9. Numbers: unsigned. How about unsigned integers (uint16)? This would be
    + easy to implement, if everything weren’t a damn primitive.
  10. +
  11. Give me an actual `struct’, like in C. I’m not asking for full manual
    + memory management, just the ability to organize a chunk of it; you can
    + still manage it for me. It would make serialization hellofalot
    + easier.
  12. +
  13. It’s inconsistent about whether it uses the system encoding or it’s
    + internal encoding. The String object just became worthless to anyone
    + wanting to do any amount of I18N.
  14. +
  15. It’s internal encoding is junk. It maps UTF-16 symbols onto the `char’
    + primitive, which is 16 bits.

    +
      +
    1. UTF-16 is junk, use UTF-8
    2. +
    3. With any UTF encoding you must allow for a dynamic bit-length, for
      + UTF-16 it’s 16-32 bits, UTF-8 is 8-32 bits
    4. +
    +

    I understand how/why it arrived at the solution it uses; at the time Java
    + was designed, it was using UCS-2, which is a 16-bit encoding, and was
    + superseded by UTF-16 in 1996 with Unicode 2.0. However, this is one of
    + those things where you specify a new JVM version, and switch to UTF-8. You
    + can even leave a legacy mode in the JVM that still uses UCS-2.

  16. +
  17. Octal prefix: `0′ is used as the prefix to specify an octal literal. Any
    + third-grader can tell you why using a 0 as a prefix to a number is a bad
    + idea; the number might just have padded zeros. Let’s look at the prefix
    + used for hexadecimal: `0x’. This is great:

    +
      +
    1. It starts with a numeric character, which means that it must be a
      + literal. If it started with an alphabetic character, it might be a
      + variable name.
    2. +
    3. The second character is a alphabetic character that is not used in
      + any number system that is used in computer science. This allows it
      + to serve a a unique identifier.
    4. +
    +

    Given these reasons, let’s think of a new prefix for octal… how about
    + `0o’. That took literally less than 10 seconds for me to realize why `0′
    + sucked, and to think of a better one.*

  18. +
+

All-in-all, its still better than C++

+

* although, writing this gave me an even
+better idea, but it would break `0x<value>’ for hex, which is incredibly
+common among many languages:
+`<base-in-decimal>x<value>’
+so octal would be `8x<value>’
+and hex would be `16x<value>’
+It would be incredibly understandable, and, depending on implementation allow
+simple arbitrary-base literals.

+ +
+
+ +
+ +
+ This entry was posted in Computers. Bookmark the permalink. + +
+
+ + + + + +
+
+

Leave a Reply

+
+

Your email address will not be published. Required fields are marked *

*

+ +

+

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

+ + + +

+
+
+ +
+ +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/index.chtml b/web/lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/index.chtml new file mode 100644 index 0000000..860edd2 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/index.chtml @@ -0,0 +1,328 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/. It is a snapshot of the page as it appeared on Dec 15, 2011 09:12:44 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + Pointers in Java | ltsBlog + + + + + + + + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + +
+ + + +
+

Pointers in Java

+ +
+

This was originally posted to Facebook by me at 2010-08-02 23:20.

+

Note: For purposes of anyone interested in this, pointers in Java are more commonly referred to as references, because everything in Java must have it’s own name (method vs. function). This makes operating the Google DuckDuckGo machine easier. I wish I had known that when I wrote this.

+
+In Java there are a few `primitive' datatypes, the rest of the datatypes are
+implemented as classes.  They are:
+
+byte
+short
+int
+long
+float
+double
+char
+<pointer>
+
+Normally, when declaring a primitive, you write the type of the primitive as
+the variable type.  However, the reason I wrote pointer in brackets is that you
+DON'T write pointer when declaring a variable storing a pointer.
+
+For example, when I write
+java.util.Stack stack = new java.util.Stack();
+The variable stack does NOT store an object. It stores a /pointer/ to an object.
+A pointer stores the memory address where a object is stored.
+
+ALL VARIABLES STORE PRIMITIVES, IT IS IMPOSSIBLE TO STORE AN OBJECT.
+For this reason, it is possible for the JVM to manage memory for you; it keeps
+track of the pointers, and once there are no more pointers pointing to a
+particular object, it can be deleted.
+
+Why does this matter?  Well, consider that `String' is a class
+(`java.lang.String'), not a primitive.  Consider the following code:
+
+String str1 = "foo";
+String str2 = "foo";
+return (str1 == str2);
+
+If String were a primitive, it would return true; but it returns false.
+Strings are a little complex because they contain syntactic sugar.  Let's do
+the same example with an integer instead:
+
+Integer int1 = new Integer(5);
+Integer int2 = new Integer(5);
+return (int1 == int2);
+
+The `java.lang.Integer' class is a class wrapper around the `int' primitive.
+The `new' operator creates a class, and returns a pointer to it.  The source
+code to the java.lang.Integer class contains the:
+    private int value;
+
+    public Integer(int val) {
+        value = val;
+    }
+
+So, the above example generates to objects belonging to the java.lang.Integer
+class.  Even though the .value's of the two objects are the same, they are
+separate objects.  Therefore, int1 and int2 store two separate memory locations.
+These two locations in the memory store the same data, but it is stored at both
+locations.
+
+The `==' operator takes two primitives, and compares their direct values.
+Since int1 and int2 store two different memory locations, `(int1 == int2)'
+evaluates to false.
+
+

Note: as pointed out by Ari Consul, everything following is false. The JVM does not copy the objects, it returns the pointer directly (no magic, as I’d suggested). The JVM will free() the object when there are no more pointers to it, via basic reference-counting

+
+About copying objects:  when returning a private pointer, the JVM makes a copy
+of the object that the pointer points to, and returns a pointer to the new
+object, NOT the original pointer.
+
+For example if I declare the method:
+
+public static Integer getInt() {
+    Integer val = new Integer(5);
+    return val;
+}
+
+It does NOT actually return `val'; it returns a new pointer to a copy of the
+object that val pointed to.
+
+ +
+
+ +
+ +
+ This entry was posted in Computers. Bookmark the permalink. + +
+
+ + + + + +
+ +

2 Responses to Pointers in Java

+ +
    + +
  1. +
    +
    + + Ari Consul says: +
    + + +
    +

    Nice blog, keep discovering and posting!

    +

    The last part is incorrect. getInt() (a bad name BTW: newIntFive() or intFiveFactory() would be a better description) creates a new Integer object, a reference to the Integer object and assigns the object reference to val. getInt() then returns a copy of the object reference. There is no implicit object copying here.

    +

    Some relevant URLs:
    +http://oopweb.com/Java/Documents/ThinkingInJava/Volume/TIJ319.htm#Index2146
    +http://javadude.com/articles/passbyvalue.htm
    +http://java.sun.com/docs/books/jls/third_edition/html/statements.html#6767

    +
    +
    + Reply +
    +
    + +
      + +
    • +
      +
      + + lts says: +
      + + +
      +

      Thank you!

      +

      I know that now, but at the time I’d written it, I had been using Java for less than 6 monthsa very short time. My previous statement was based on a flawed understanding of how Java did garbage collection.

      +

      Of course, the code example wasn’t meant to do anything, just be an example of allocing an object and returning a pointer.

      +

      BTW, if you don’t mind me asking, what lead you here?

      +
      +
      + Reply +
      +
      + +
    • +
    +
  2. + +
+
+

Leave a Reply

+
+

Your email address will not be published. Required fields are marked *

*

+ +

+

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

+ + + +

+
+
+ +
+ +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/index.html b/web/lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/index.html new file mode 100644 index 0000000..6e78d68 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/index.html @@ -0,0 +1,325 @@ + + + + + Pointers in Java | ltsBlog + + + + + + + + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + +
+ + + +
+

Pointers in Java

+ +
+

This was originally posted to Facebook by me at 2010-08-02 23:20.

+

Note: For purposes of anyone interested in this, pointers in Java are more commonly referred to as references, because everything in Java must have it’s own name (method vs. function). This makes operating the Google DuckDuckGo machine easier. I wish I had known that when I wrote this.

+
+In Java there are a few `primitive' datatypes, the rest of the datatypes are
+implemented as classes.  They are:
+
+byte
+short
+int
+long
+float
+double
+char
+<pointer>
+
+Normally, when declaring a primitive, you write the type of the primitive as
+the variable type.  However, the reason I wrote pointer in brackets is that you
+DON'T write pointer when declaring a variable storing a pointer.
+
+For example, when I write
+java.util.Stack stack = new java.util.Stack();
+The variable stack does NOT store an object. It stores a /pointer/ to an object.
+A pointer stores the memory address where a object is stored.
+
+ALL VARIABLES STORE PRIMITIVES, IT IS IMPOSSIBLE TO STORE AN OBJECT.
+For this reason, it is possible for the JVM to manage memory for you; it keeps
+track of the pointers, and once there are no more pointers pointing to a
+particular object, it can be deleted.
+
+Why does this matter?  Well, consider that `String' is a class
+(`java.lang.String'), not a primitive.  Consider the following code:
+
+String str1 = "foo";
+String str2 = "foo";
+return (str1 == str2);
+
+If String were a primitive, it would return true; but it returns false.
+Strings are a little complex because they contain syntactic sugar.  Let's do
+the same example with an integer instead:
+
+Integer int1 = new Integer(5);
+Integer int2 = new Integer(5);
+return (int1 == int2);
+
+The `java.lang.Integer' class is a class wrapper around the `int' primitive.
+The `new' operator creates a class, and returns a pointer to it.  The source
+code to the java.lang.Integer class contains the:
+    private int value;
+
+    public Integer(int val) {
+        value = val;
+    }
+
+So, the above example generates to objects belonging to the java.lang.Integer
+class.  Even though the .value's of the two objects are the same, they are
+separate objects.  Therefore, int1 and int2 store two separate memory locations.
+These two locations in the memory store the same data, but it is stored at both
+locations.
+
+The `==' operator takes two primitives, and compares their direct values.
+Since int1 and int2 store two different memory locations, `(int1 == int2)'
+evaluates to false.
+
+

Note: as pointed out by Ari Consul, everything following is false. The JVM does not copy the objects, it returns the pointer directly (no magic, as I’d suggested). The JVM will free() the object when there are no more pointers to it, via basic reference-counting

+
+About copying objects:  when returning a private pointer, the JVM makes a copy
+of the object that the pointer points to, and returns a pointer to the new
+object, NOT the original pointer.
+
+For example if I declare the method:
+
+public static Integer getInt() {
+    Integer val = new Integer(5);
+    return val;
+}
+
+It does NOT actually return `val'; it returns a new pointer to a copy of the
+object that val pointed to.
+
+ +
+
+ +
+ +
+ This entry was posted in Computers. Bookmark the permalink. + +
+
+ + + + + +
+ +

2 Responses to Pointers in Java

+ +
    + +
  1. +
    +
    + + Ari Consul says: +
    + + +
    +

    Nice blog, keep discovering and posting!

    +

    The last part is incorrect. getInt() (a bad name BTW: newIntFive() or intFiveFactory() would be a better description) creates a new Integer object, a reference to the Integer object and assigns the object reference to val. getInt() then returns a copy of the object reference. There is no implicit object copying here.

    +

    Some relevant URLs:
    +http://oopweb.com/Java/Documents/ThinkingInJava/Volume/TIJ319.htm#Index2146
    +http://javadude.com/articles/passbyvalue.htm
    +http://java.sun.com/docs/books/jls/third_edition/html/statements.html#6767

    +
    +
    + Reply +
    +
    + +
      + +
    • +
      +
      + + lts says: +
      + + +
      +

      Thank you!

      +

      I know that now, but at the time I’d written it, I had been using Java for less than 6 monthsa very short time. My previous statement was based on a flawed understanding of how Java did garbage collection.

      +

      Of course, the code example wasn’t meant to do anything, just be an example of allocing an object and returning a pointer.

      +

      BTW, if you don’t mind me asking, what lead you here?

      +
      +
      + Reply +
      +
      + +
    • +
    +
  2. + +
+
+

Leave a Reply

+
+

Your email address will not be published. Required fields are marked *

*

+ +

+

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

+ + + +

+
+
+ +
+ +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2011/02/index.chtml b/web/lukeshu.ath.cx/1/wordpress/2011/02/index.chtml new file mode 100644 index 0000000..5c27bf8 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2011/02/index.chtml @@ -0,0 +1,176 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/2011/02/. It is a snapshot of the page as it appeared on Dec 6, 2011 23:15:10 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + February | 2011 | ltsBlog + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ + + +

Monthly Archives: February 2011

+ + +
+ +

Questions about copyright of the deceased

+ + + + +
+

I recently acquired a fairly recent printing of Why We Can’t Wait by Martin Luther King Junior. Now, I assumed that the copyright of the book would have passed to either his children, or some foundation. However, feeling curious I … Continue reading

+ +
+ + +
+ + + Posted in Uncategorized + + | + + + Leave a comment + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2011/02/index.html b/web/lukeshu.ath.cx/1/wordpress/2011/02/index.html new file mode 100644 index 0000000..e471325 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2011/02/index.html @@ -0,0 +1,173 @@ + + + + + February | 2011 | ltsBlog + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ + + +

Monthly Archives: February 2011

+ + +
+ +

Questions about copyright of the deceased

+ + + + +
+

I recently acquired a fairly recent printing of Why We Can’t Wait by Martin Luther King Junior. Now, I assumed that the copyright of the book would have passed to either his children, or some foundation. However, feeling curious I … Continue reading

+ +
+ + +
+ + + Posted in Uncategorized + + | + + + Leave a comment + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/index.chtml b/web/lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/index.chtml new file mode 100644 index 0000000..968033a --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/index.chtml @@ -0,0 +1,225 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/. It is a snapshot of the page as it appeared on Dec 7, 2011 22:00:37 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + Questions about copyright of the deceased | ltsBlog + + + + + + + + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + +
+ + + +
+

Questions about copyright of the deceased

+ +
+

I recently acquired a fairly recent printing of Why We Can’t Wait by Martin Luther King Junior. Now, I assumed that the copyright of the book would have passed to either his children, or some foundation. However, feeling curious I decided to check.

+

Following is the copyright page at the beginning of the book. I’ve collapsed some sections that are not relevant to my question into [...]. Emphasis mine.

+

+SIGNET CLASSICS
+Published by New American Library, [...]

+

Penguin Books, Ltd., [...]

+

Published by Signet Classics, [...]

+

First Signet Classics Printing, January 2000
+30 29 28 27 26 25 24 23 22 21

+

Copyright © Martin Luther King, Jr., 1963, 1964
+Introduction copyright © Reverend Jesse L. Jackson, Sr., 2000
+All rights reserved

+

Printed in the United States of America

+

Without limiting the rights under copyright reserved above, no part of this
+publication may be reproduced, stored in or introduced int a retrieval system,
+or transmitted, in any form, or by any means (electronic, mechanical, photo-
+copying, recording, or otherwise), without prior written permission of both
+the copyright owner
and the above publisher of this book.

+

If you purchased this book without a cover [...]

+

The scanning, uploading, and distribution of this book via the Internet of via
+any other means without permission of the publisher is illegal and punish-
+able by law.
Please purchase only authorized electronic editions, and do not
+participate in or encourage electronic piracy of copyrighted materials. Your sup-
+port of the author’s rights is appreciated.
+

+

(To those who will comment on it, my posting of the above text is firmly within fair use.)

+

So, my questions are:

+
    +
  • Is MLK still the copyright holder? Yes: Getting his permission is a little hard. No: Whose permission do I need?
  • +
  • Is distribution without permission of the publisher really illegal? What legal stake do they have to the text of the book? Isn’t it really the copyright holder’s permission I need? (for the text anyway, I’m not concerned about things like typesetting and cover art).
  • +
  • I find it humorous that they end their plea for me to not pirate the book with a thank you for supporting MLK’s rights. Because he totally appreciates his copyright to draw a profit from the book right now. Because he’s more concerned about other not making copies of the book than spreading the message, especially now that he’s dead, and can’t draw a profit from it anyway.
  • +
+ +
+
+ +
+ +
+ This entry was posted in Uncategorized. Bookmark the permalink. + +
+
+ + + + + +
+
+

Leave a Reply

+
+

Your email address will not be published. Required fields are marked *

*

+ +

+

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

+ + + +

+
+
+ +
+ +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/index.html b/web/lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/index.html new file mode 100644 index 0000000..ffa6446 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/index.html @@ -0,0 +1,222 @@ + + + + + Questions about copyright of the deceased | ltsBlog + + + + + + + + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + +
+ + + +
+

Questions about copyright of the deceased

+ +
+

I recently acquired a fairly recent printing of Why We Can’t Wait by Martin Luther King Junior. Now, I assumed that the copyright of the book would have passed to either his children, or some foundation. However, feeling curious I decided to check.

+

Following is the copyright page at the beginning of the book. I’ve collapsed some sections that are not relevant to my question into [...]. Emphasis mine.

+

+SIGNET CLASSICS
+Published by New American Library, [...]

+

Penguin Books, Ltd., [...]

+

Published by Signet Classics, [...]

+

First Signet Classics Printing, January 2000
+30 29 28 27 26 25 24 23 22 21

+

Copyright © Martin Luther King, Jr., 1963, 1964
+Introduction copyright © Reverend Jesse L. Jackson, Sr., 2000
+All rights reserved

+

Printed in the United States of America

+

Without limiting the rights under copyright reserved above, no part of this
+publication may be reproduced, stored in or introduced int a retrieval system,
+or transmitted, in any form, or by any means (electronic, mechanical, photo-
+copying, recording, or otherwise), without prior written permission of both
+the copyright owner
and the above publisher of this book.

+

If you purchased this book without a cover [...]

+

The scanning, uploading, and distribution of this book via the Internet of via
+any other means without permission of the publisher is illegal and punish-
+able by law.
Please purchase only authorized electronic editions, and do not
+participate in or encourage electronic piracy of copyrighted materials. Your sup-
+port of the author’s rights is appreciated.
+

+

(To those who will comment on it, my posting of the above text is firmly within fair use.)

+

So, my questions are:

+
    +
  • Is MLK still the copyright holder? Yes: Getting his permission is a little hard. No: Whose permission do I need?
  • +
  • Is distribution without permission of the publisher really illegal? What legal stake do they have to the text of the book? Isn’t it really the copyright holder’s permission I need? (for the text anyway, I’m not concerned about things like typesetting and cover art).
  • +
  • I find it humorous that they end their plea for me to not pirate the book with a thank you for supporting MLK’s rights. Because he totally appreciates his copyright to draw a profit from the book right now. Because he’s more concerned about other not making copies of the book than spreading the message, especially now that he’s dead, and can’t draw a profit from it anyway.
  • +
+ +
+
+ +
+ +
+ This entry was posted in Uncategorized. Bookmark the permalink. + +
+
+ + + + + +
+
+

Leave a Reply

+
+

Your email address will not be published. Required fields are marked *

*

+ +

+

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

+ + + +

+
+
+ +
+ +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2011/05/index.chtml b/web/lukeshu.ath.cx/1/wordpress/2011/05/index.chtml new file mode 100644 index 0000000..172fd09 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2011/05/index.chtml @@ -0,0 +1,176 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/2011/05/. It is a snapshot of the page as it appeared on Dec 6, 2011 12:14:59 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + May | 2011 | ltsBlog + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ + + +

Monthly Archives: May 2011

+ + +
+ +

Why `sed -i’ exists

+ + + + +
+

I’ve decided to to a morning-pages type thing here, just to get info out. This means that I’ll be posting 250-ish word weblog post snippits sharing whatever, and fairly frequently posting, if this works. So, what is the purpose of … Continue reading

+ +
+ + +
+ + + Posted in Computers, morning-pages + + | + + + Leave a comment + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2011/05/index.html b/web/lukeshu.ath.cx/1/wordpress/2011/05/index.html new file mode 100644 index 0000000..73a1f12 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2011/05/index.html @@ -0,0 +1,173 @@ + + + + + May | 2011 | ltsBlog + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ + + +

Monthly Archives: May 2011

+ + +
+ +

Why `sed -i’ exists

+ + + + +
+

I’ve decided to to a morning-pages type thing here, just to get info out. This means that I’ll be posting 250-ish word weblog post snippits sharing whatever, and fairly frequently posting, if this works. So, what is the purpose of … Continue reading

+ +
+ + +
+ + + Posted in Computers, morning-pages + + | + + + Leave a comment + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/index.chtml b/web/lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/index.chtml new file mode 100644 index 0000000..e853748 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/index.chtml @@ -0,0 +1,198 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/. It is a snapshot of the page as it appeared on Dec 15, 2011 08:37:11 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + Why `sed -i’ exists | ltsBlog + + + + + + + + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + +
+ + + +
+

Why `sed -i’ exists

+ +
+

I’ve decided to to a morning-pages type thing here, just to get info out. This means that I’ll be posting 250-ish word weblog post
+snippits sharing whatever, and fairly frequently posting, if this works.

+

So, what is the purpose of the -i flag to sed? Simply, it edits the file in place, instead of dumping the edit to stdout.

+

Those of you familiar with “cat -v Considered Harmful” or just traditional UNIX design will say “bah, what a useless flag, just use sed 's/regex//' < file > file to write the changes back to the file.

+

But there’s a problem with this. There is a race condition, the file has been opened twice, once for reading, and once for writing. If they get closed in the wrong order, you will end up with an empty file. In my experience this very seldom happens. However, when you have a shell script that usually works, but just occaisionally corrupts your `database’, you’ll see why sed -i‘s important.

+ +
+
+ +
+ +
+ This entry was posted in Computers, morning-pages. Bookmark the permalink. + +
+
+ + + + + +
+
+

Leave a Reply

+
+

Your email address will not be published. Required fields are marked *

*

+ +

+

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

+ + + +

+
+
+ +
+ +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/index.html b/web/lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/index.html new file mode 100644 index 0000000..d1955af --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/index.html @@ -0,0 +1,195 @@ + + + + + Why `sed -i’ exists | ltsBlog + + + + + + + + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + +
+ + + +
+

Why `sed -i’ exists

+ +
+

I’ve decided to to a morning-pages type thing here, just to get info out. This means that I’ll be posting 250-ish word weblog post
+snippits sharing whatever, and fairly frequently posting, if this works.

+

So, what is the purpose of the -i flag to sed? Simply, it edits the file in place, instead of dumping the edit to stdout.

+

Those of you familiar with “cat -v Considered Harmful” or just traditional UNIX design will say “bah, what a useless flag, just use sed 's/regex//' < file > file to write the changes back to the file.

+

But there’s a problem with this. There is a race condition, the file has been opened twice, once for reading, and once for writing. If they get closed in the wrong order, you will end up with an empty file. In my experience this very seldom happens. However, when you have a shell script that usually works, but just occaisionally corrupts your `database’, you’ll see why sed -i‘s important.

+ +
+
+ +
+ +
+ This entry was posted in Computers, morning-pages. Bookmark the permalink. + +
+
+ + + + + +
+
+

Leave a Reply

+
+

Your email address will not be published. Required fields are marked *

*

+ +

+

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

+ + + +

+
+
+ +
+ +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/index.chtml b/web/lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/index.chtml new file mode 100644 index 0000000..f80c28f --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/index.chtml @@ -0,0 +1,231 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/. It is a snapshot of the page as it appeared on Dec 15, 2011 07:15:39 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + [Emacs] autopair problems when using term-mode | ltsBlog + + + + + + + + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + +
+ + + +
+

[Emacs] autopair problems when using term-mode

+ +
+

I found this awesome blog post on the Korean blog Seorenn SIGSEGV.

+

Using Google translate, I was able to extract the information I needed. However, Google translate quite botched it, as did Yahoo and Bing translate. I’ve used a combination of these three tools, and my understanding of Emacs, to put together a more reasonable translation.

+

I’m posting the full English text of it here because this is a problem I’ve had, and would like to help others find the solution. I don’t mean to rip off the original author, his blog seems quite good, worth reading, if you don’t mind poor translations (or, can read Korean).

+

The original post can be found here here.

+

+In Emacs term-mode (M-x term) and multi-term-mode pressing the Enter key causes an error to appear in the mini-buffer, and the keystroke appears to have been eaten.

+

This problem only occurs when using autopair. are thought to In addition to or RET (Enter) as a separate feature for all modes of binding may also occur. if autopair the last of the solution are presented.

+

See below sum up shoveling machine.

+

Issue

+

During term-mode RET does not work. The mini-buffer shows the error message Wrong type argument: characterp, return. RET has been bound to something here, or maybe you saw the state I had a feeling heard nil.

+

Alternative

+

Fortunately, I was able to replace the RET key with C-j. This is used as a temporary measure to work with.

+

Cause Analysis

+

In term-mode use C-h k to find the function that RET is bound to. autopair that certain functions were bound.

+

As a result, be sure that autopair is the culprit.

+

Attempted Solution

+

In term-mode C-h k with C-j to determine the function bound to: term-send-raw.

+

In conclusion, I believe you will solve the problem in the RET key bindings by using define-key to bind the key to term-send-raw in term-mode-map.

+

But the code encounters an error. Is not allowed to do something it felt like.

+

Solution

+

The code below. Not two lines were able to solve it.

+
+(add-hook 'term-mode-hook
+  #'(lambda () (setq autopair-dont-activate t)))
+
+

Source of the above code: http://emacs-fu.blogspot.com/2010/06/console-apps-in-emacs-with-multi-term.html +

+ +
+
+ +
+ +
+ This entry was posted in Computers. Bookmark the permalink. + +
+
+ + + + + +
+ +

One Response to [Emacs] autopair problems when using term-mode

+ +
    + +
  1. +

    Pingback: Fixing “Wrong type argument: characterp, return” in !Emacs | ltsBlog

    + +
  2. + +
+
+

Leave a Reply

+
+

Your email address will not be published. Required fields are marked *

*

+ +

+

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

+ + + +

+
+
+ +
+ +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/index.html b/web/lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/index.html new file mode 100644 index 0000000..f127117 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/index.html @@ -0,0 +1,228 @@ + + + + + [Emacs] autopair problems when using term-mode | ltsBlog + + + + + + + + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + +
+ + + +
+

[Emacs] autopair problems when using term-mode

+ +
+

I found this awesome blog post on the Korean blog Seorenn SIGSEGV.

+

Using Google translate, I was able to extract the information I needed. However, Google translate quite botched it, as did Yahoo and Bing translate. I’ve used a combination of these three tools, and my understanding of Emacs, to put together a more reasonable translation.

+

I’m posting the full English text of it here because this is a problem I’ve had, and would like to help others find the solution. I don’t mean to rip off the original author, his blog seems quite good, worth reading, if you don’t mind poor translations (or, can read Korean).

+

The original post can be found here here.

+

+In Emacs term-mode (M-x term) and multi-term-mode pressing the Enter key causes an error to appear in the mini-buffer, and the keystroke appears to have been eaten.

+

This problem only occurs when using autopair. are thought to In addition to or RET (Enter) as a separate feature for all modes of binding may also occur. if autopair the last of the solution are presented.

+

See below sum up shoveling machine.

+

Issue

+

During term-mode RET does not work. The mini-buffer shows the error message Wrong type argument: characterp, return. RET has been bound to something here, or maybe you saw the state I had a feeling heard nil.

+

Alternative

+

Fortunately, I was able to replace the RET key with C-j. This is used as a temporary measure to work with.

+

Cause Analysis

+

In term-mode use C-h k to find the function that RET is bound to. autopair that certain functions were bound.

+

As a result, be sure that autopair is the culprit.

+

Attempted Solution

+

In term-mode C-h k with C-j to determine the function bound to: term-send-raw.

+

In conclusion, I believe you will solve the problem in the RET key bindings by using define-key to bind the key to term-send-raw in term-mode-map.

+

But the code encounters an error. Is not allowed to do something it felt like.

+

Solution

+

The code below. Not two lines were able to solve it.

+
+(add-hook 'term-mode-hook
+  #'(lambda () (setq autopair-dont-activate t)))
+
+

Source of the above code: http://emacs-fu.blogspot.com/2010/06/console-apps-in-emacs-with-multi-term.html +

+ +
+
+ +
+ +
+ This entry was posted in Computers. Bookmark the permalink. + +
+
+ + + + + +
+ +

One Response to [Emacs] autopair problems when using term-mode

+ +
    + +
  1. +

    Pingback: Fixing “Wrong type argument: characterp, return” in !Emacs | ltsBlog

    + +
  2. + +
+
+

Leave a Reply

+
+

Your email address will not be published. Required fields are marked *

*

+ +

+

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

+ + + +

+
+
+ +
+ +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/index.chtml b/web/lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/index.chtml new file mode 100644 index 0000000..6739755 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/index.chtml @@ -0,0 +1,202 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/. It is a snapshot of the page as it appeared on Dec 16, 2011 06:35:41 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + Fixing “Wrong type argument: characterp, return” in !Emacs | ltsBlog + + + + + + + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + +
+ + + +
+

Fixing “Wrong type argument: characterp, return” in !Emacs

+ +
+

A few months ago, I ran into an issue with Emacs that I just found the solution to. In Emacs term-mode (or ansi-term, or multi-term), hitting Enter doesn’t work, and the mini-buffer displays Wrong type argument: characterp, return, and the term doesn’t see the keystroke.

+

I dented about it on identi.ca, and no one was able to help me. This turned out to be a mistake, because I kept seeing the dent as I Googled/DuckDuckGo’ed for a solution.

+

Anyway, I finally found the solution on the Korean blog Seorenn SIGSEGV.

+

The problem is basically that autopair had remapped the return key to an autopair function, which didn’t jive with term-mode. At least, that’s what Seorenn said.

+

If it were that simple, I would have noticed it when I installed autopair. Only in some environments does the problem manifest. For example, on Ubuntu, where I started using autopair, the problem never appears. When I switched to Fedora (and later Parabola), I figured it was some issue with the X server, because it worked fine when running in a terminal.

+

Now knowing that the problem was related to autopair, I can’t figure out how it ever worked.

+

Anyway, the fix is to add the following to your .emacs:

+
(add-hook 'term-mode-hook
+  #'(lambda () (setq autopair-dont-activate t)))
+

(Code segment from emacs-fu, via Seorenn SIGSEGV.)

+ +
+
+ +
+ +
+ This entry was posted in Computers. Bookmark the permalink. + +
+
+ + + + + +
+
+

Leave a Reply

+
+

Your email address will not be published. Required fields are marked *

*

+ +

+

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

+ + + +

+
+
+ +
+ +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/index.html b/web/lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/index.html new file mode 100644 index 0000000..b106c0e --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/index.html @@ -0,0 +1,199 @@ + + + + + Fixing “Wrong type argument: characterp, return” in !Emacs | ltsBlog + + + + + + + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + +
+ + + +
+

Fixing “Wrong type argument: characterp, return” in !Emacs

+ +
+

A few months ago, I ran into an issue with Emacs that I just found the solution to. In Emacs term-mode (or ansi-term, or multi-term), hitting Enter doesn’t work, and the mini-buffer displays Wrong type argument: characterp, return, and the term doesn’t see the keystroke.

+

I dented about it on identi.ca, and no one was able to help me. This turned out to be a mistake, because I kept seeing the dent as I Googled/DuckDuckGo’ed for a solution.

+

Anyway, I finally found the solution on the Korean blog Seorenn SIGSEGV.

+

The problem is basically that autopair had remapped the return key to an autopair function, which didn’t jive with term-mode. At least, that’s what Seorenn said.

+

If it were that simple, I would have noticed it when I installed autopair. Only in some environments does the problem manifest. For example, on Ubuntu, where I started using autopair, the problem never appears. When I switched to Fedora (and later Parabola), I figured it was some issue with the X server, because it worked fine when running in a terminal.

+

Now knowing that the problem was related to autopair, I can’t figure out how it ever worked.

+

Anyway, the fix is to add the following to your .emacs:

+
(add-hook 'term-mode-hook
+  #'(lambda () (setq autopair-dont-activate t)))
+

(Code segment from emacs-fu, via Seorenn SIGSEGV.)

+ +
+
+ +
+ +
+ This entry was posted in Computers. Bookmark the permalink. + +
+
+ + + + + +
+
+

Leave a Reply

+
+

Your email address will not be published. Required fields are marked *

*

+ +

+

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

+ + + +

+
+
+ +
+ +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2011/08/index.chtml b/web/lukeshu.ath.cx/1/wordpress/2011/08/index.chtml new file mode 100644 index 0000000..737de42 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2011/08/index.chtml @@ -0,0 +1,205 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/2011/08/. It is a snapshot of the page as it appeared on Dec 12, 2011 01:22:46 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + August | 2011 | ltsBlog + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ + + +

Monthly Archives: August 2011

+ + +
+ +

Fixing “Wrong type argument: characterp, return” in !Emacs

+ + + + +
+

A few months ago, I ran into an issue with Emacs that I just found the solution to. In Emacs term-mode (or ansi-term, or multi-term), hitting Enter doesn’t work, and the mini-buffer displays Wrong type argument: characterp, return, and the … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + Leave a comment + +
+ +
+ +
+ +

[Emacs] autopair problems when using term-mode

+ + + + +
+

I found this awesome blog post on the Korean blog Seorenn SIGSEGV. Using Google translate, I was able to extract the information I needed. However, Google translate quite botched it, as did Yahoo and Bing translate. I’ve used a combination … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + 1 Comment + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/2011/08/index.html b/web/lukeshu.ath.cx/1/wordpress/2011/08/index.html new file mode 100644 index 0000000..ad59fb8 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/2011/08/index.html @@ -0,0 +1,202 @@ + + + + + August | 2011 | ltsBlog + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ + + +

Monthly Archives: August 2011

+ + +
+ +

Fixing “Wrong type argument: characterp, return” in !Emacs

+ + + + +
+

A few months ago, I ran into an issue with Emacs that I just found the solution to. In Emacs term-mode (or ansi-term, or multi-term), hitting Enter doesn’t work, and the mini-buffer displays Wrong type argument: characterp, return, and the … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + Leave a comment + +
+ +
+ +
+ +

[Emacs] autopair problems when using term-mode

+ + + + +
+

I found this awesome blog post on the Korean blog Seorenn SIGSEGV. Using Google translate, I was able to extract the information I needed. However, Google translate quite botched it, as did Yahoo and Bing translate. I’ve used a combination … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + 1 Comment + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/author/lts/index.chtml b/web/lukeshu.ath.cx/1/wordpress/author/lts/index.chtml new file mode 100644 index 0000000..960191a --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/author/lts/index.chtml @@ -0,0 +1,449 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/author/lts/. It is a snapshot of the page as it appeared on Dec 6, 2011 22:09:33 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + lts | ltsBlog + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+

Author Archives: lts

+ + +
+ +

Fixing “Wrong type argument: characterp, return” in !Emacs

+ + + + +
+

A few months ago, I ran into an issue with Emacs that I just found the solution to. In Emacs term-mode (or ansi-term, or multi-term), hitting Enter doesn’t work, and the mini-buffer displays Wrong type argument: characterp, return, and the … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + Leave a comment + +
+ +
+ +
+ +

[Emacs] autopair problems when using term-mode

+ + + + +
+

I found this awesome blog post on the Korean blog Seorenn SIGSEGV. Using Google translate, I was able to extract the information I needed. However, Google translate quite botched it, as did Yahoo and Bing translate. I’ve used a combination … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + 1 Comment + +
+ +
+ +
+ +

Why `sed -i’ exists

+ + + + +
+

I’ve decided to to a morning-pages type thing here, just to get info out. This means that I’ll be posting 250-ish word weblog post snippits sharing whatever, and fairly frequently posting, if this works. So, what is the purpose of … Continue reading

+ +
+ + +
+ + + Posted in Computers, morning-pages + + | + + + Leave a comment + +
+ +
+ +
+ +

Questions about copyright of the deceased

+ + + + +
+

I recently acquired a fairly recent printing of Why We Can’t Wait by Martin Luther King Junior. Now, I assumed that the copyright of the book would have passed to either his children, or some foundation. However, feeling curious I … Continue reading

+ +
+ + +
+ + + Posted in Uncategorized + + | + + + Leave a comment + +
+ +
+ +
+ +

Pointers in Java

+ + + + +
+

This was originally posted to Facebook by me at 2010-08-02 23:20. Note: For purposes of anyone interested in this, pointers in Java are more commonly referred to as references, because everything in Java must have it’s own name (method vs. … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + 2 Comments + +
+ +
+ +
+ +

Java has issues

+ + + + +
+

This was originally posted to Facebook by me at 2010-09-02 23:19. It was edited by me there 2010-07-03. Java is an alright language. There are a lot of things it does right, but there are a few things it doesn’t. … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + Leave a comment + +
+ +
+ +
+ +

FUSE is crazy

+ + + + +
+

Well, I suppose just I’m only talking about Linux FUSE, I haven’t fiddled with FUSE on any other kernel. Anyway, FUSE screws with the idea of the root user: $ ls Makefile build.log … $ sudo ls ls: cannot open … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + Leave a comment + +
+ +
+ +
+ +

Suicide as an Act of Optimism

+ + + + +
+

If you have been personally touched by suicide, please don’t be offended, I do not entirely agree with the sentiment of this essay.

+

You are not a beautiful, unique snowflake of specialness. You are made of the same decaying, organic matter as everything else. Accept that you are going to die and let go.

+

Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + Leave a comment + +
+ +
+ +
+ +

Who am I?

+ + + + +
+

I am the nerd, the geek, the hacker. In most aspects, I am the stereotypical nerd. I wear glasses, a belt, a button down shirt, and a pocket protector. I play Dungeons and Dragons. I’m smart and have a passion … Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + Leave a comment + +
+ +
+ +
+ +

ICB Journals

+ + + + +
+

A while back I had to do a bunch of journals on the book In Cold Blood. I have decided to post several of these journals, they are very incoherent. Each journal had a passage associated with it, which have … Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged + + | + + Leave a comment + +
+ +
+ + + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/author/lts/index.html b/web/lukeshu.ath.cx/1/wordpress/author/lts/index.html new file mode 100644 index 0000000..d3ee43c --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/author/lts/index.html @@ -0,0 +1,446 @@ + + + + + lts | ltsBlog + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+

Author Archives: lts

+ + +
+ +

Fixing “Wrong type argument: characterp, return” in !Emacs

+ + + + +
+

A few months ago, I ran into an issue with Emacs that I just found the solution to. In Emacs term-mode (or ansi-term, or multi-term), hitting Enter doesn’t work, and the mini-buffer displays Wrong type argument: characterp, return, and the … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + Leave a comment + +
+ +
+ +
+ +

[Emacs] autopair problems when using term-mode

+ + + + +
+

I found this awesome blog post on the Korean blog Seorenn SIGSEGV. Using Google translate, I was able to extract the information I needed. However, Google translate quite botched it, as did Yahoo and Bing translate. I’ve used a combination … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + 1 Comment + +
+ +
+ +
+ +

Why `sed -i’ exists

+ + + + +
+

I’ve decided to to a morning-pages type thing here, just to get info out. This means that I’ll be posting 250-ish word weblog post snippits sharing whatever, and fairly frequently posting, if this works. So, what is the purpose of … Continue reading

+ +
+ + +
+ + + Posted in Computers, morning-pages + + | + + + Leave a comment + +
+ +
+ +
+ +

Questions about copyright of the deceased

+ + + + +
+

I recently acquired a fairly recent printing of Why We Can’t Wait by Martin Luther King Junior. Now, I assumed that the copyright of the book would have passed to either his children, or some foundation. However, feeling curious I … Continue reading

+ +
+ + +
+ + + Posted in Uncategorized + + | + + + Leave a comment + +
+ +
+ +
+ +

Pointers in Java

+ + + + +
+

This was originally posted to Facebook by me at 2010-08-02 23:20. Note: For purposes of anyone interested in this, pointers in Java are more commonly referred to as references, because everything in Java must have it’s own name (method vs. … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + 2 Comments + +
+ +
+ +
+ +

Java has issues

+ + + + +
+

This was originally posted to Facebook by me at 2010-09-02 23:19. It was edited by me there 2010-07-03. Java is an alright language. There are a lot of things it does right, but there are a few things it doesn’t. … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + Leave a comment + +
+ +
+ +
+ +

FUSE is crazy

+ + + + +
+

Well, I suppose just I’m only talking about Linux FUSE, I haven’t fiddled with FUSE on any other kernel. Anyway, FUSE screws with the idea of the root user: $ ls Makefile build.log … $ sudo ls ls: cannot open … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + Leave a comment + +
+ +
+ +
+ +

Suicide as an Act of Optimism

+ + + + +
+

If you have been personally touched by suicide, please don’t be offended, I do not entirely agree with the sentiment of this essay.

+

You are not a beautiful, unique snowflake of specialness. You are made of the same decaying, organic matter as everything else. Accept that you are going to die and let go.

+

Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + Leave a comment + +
+ +
+ +
+ +

Who am I?

+ + + + +
+

I am the nerd, the geek, the hacker. In most aspects, I am the stereotypical nerd. I wear glasses, a belt, a button down shirt, and a pocket protector. I play Dungeons and Dragons. I’m smart and have a passion … Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + Leave a comment + +
+ +
+ +
+ +

ICB Journals

+ + + + +
+

A while back I had to do a bunch of journals on the book In Cold Blood. I have decided to post several of these journals, they are very incoherent. Each journal had a passage associated with it, which have … Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged + + | + + Leave a comment + +
+ +
+ + + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/author/lts/page/2/index.chtml b/web/lukeshu.ath.cx/1/wordpress/author/lts/page/2/index.chtml new file mode 100644 index 0000000..f2115cf --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/author/lts/page/2/index.chtml @@ -0,0 +1,220 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/author/lts/page/2/. It is a snapshot of the page as it appeared on Dec 6, 2011 23:16:23 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + lts | ltsBlog | Page 2 + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+

Author Archives: lts

+ + +
+ +

What I Know for Sure

+ + + + +
+

I don’t know anything for sure. For all I know, I am a brain in a jar. Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged , + + | + + Leave a comment + +
+ +
+ +
+ +

Lesson 1: Bourne Shell Scripting

+ + + + +
+

This is the first installment in a series of articles introducing one to programming and hacking in general. We will cover setting up a *NIX environment, basic notation, and Bourne shell scripting. Continue reading

+ +
+ + +
+ + + Posted in Computers, Programming Lessons + + | + + + + Tagged + + | + + 2 Comments + +
+ +
+ + + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/author/lts/page/2/index.html b/web/lukeshu.ath.cx/1/wordpress/author/lts/page/2/index.html new file mode 100644 index 0000000..7f930d7 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/author/lts/page/2/index.html @@ -0,0 +1,217 @@ + + + + + lts | ltsBlog | Page 2 + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+

Author Archives: lts

+ + +
+ +

What I Know for Sure

+ + + + +
+

I don’t know anything for sure. For all I know, I am a brain in a jar. Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged , + + | + + Leave a comment + +
+ +
+ +
+ +

Lesson 1: Bourne Shell Scripting

+ + + + +
+

This is the first installment in a series of articles introducing one to programming and hacking in general. We will cover setting up a *NIX environment, basic notation, and Bourne shell scripting. Continue reading

+ +
+ + +
+ + + Posted in Computers, Programming Lessons + + | + + + + Tagged + + | + + 2 Comments + +
+ +
+ + + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/category/computers/index.chtml b/web/lukeshu.ath.cx/1/wordpress/category/computers/index.chtml new file mode 100644 index 0000000..e3bd8e3 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/category/computers/index.chtml @@ -0,0 +1,353 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/category/computers/. It is a snapshot of the page as it appeared on Dec 6, 2011 22:41:56 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + Computers | ltsBlog + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ +

Category Archives: Computers

+ +
+ +

Fixing “Wrong type argument: characterp, return” in !Emacs

+ + + + +
+

A few months ago, I ran into an issue with Emacs that I just found the solution to. In Emacs term-mode (or ansi-term, or multi-term), hitting Enter doesn’t work, and the mini-buffer displays Wrong type argument: characterp, return, and the … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + Leave a comment + +
+ +
+ +
+ +

[Emacs] autopair problems when using term-mode

+ + + + +
+

I found this awesome blog post on the Korean blog Seorenn SIGSEGV. Using Google translate, I was able to extract the information I needed. However, Google translate quite botched it, as did Yahoo and Bing translate. I’ve used a combination … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + 1 Comment + +
+ +
+ +
+ +

Why `sed -i’ exists

+ + + + +
+

I’ve decided to to a morning-pages type thing here, just to get info out. This means that I’ll be posting 250-ish word weblog post snippits sharing whatever, and fairly frequently posting, if this works. So, what is the purpose of … Continue reading

+ +
+ + +
+ + + Posted in Computers, morning-pages + + | + + + Leave a comment + +
+ +
+ +
+ +

Pointers in Java

+ + + + +
+

This was originally posted to Facebook by me at 2010-08-02 23:20. Note: For purposes of anyone interested in this, pointers in Java are more commonly referred to as references, because everything in Java must have it’s own name (method vs. … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + 2 Comments + +
+ +
+ +
+ +

Java has issues

+ + + + +
+

This was originally posted to Facebook by me at 2010-09-02 23:19. It was edited by me there 2010-07-03. Java is an alright language. There are a lot of things it does right, but there are a few things it doesn’t. … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + Leave a comment + +
+ +
+ +
+ +

FUSE is crazy

+ + + + +
+

Well, I suppose just I’m only talking about Linux FUSE, I haven’t fiddled with FUSE on any other kernel. Anyway, FUSE screws with the idea of the root user: $ ls Makefile build.log … $ sudo ls ls: cannot open … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + Leave a comment + +
+ +
+ +
+ +

Lesson 1: Bourne Shell Scripting

+ + + + +
+

This is the first installment in a series of articles introducing one to programming and hacking in general. We will cover setting up a *NIX environment, basic notation, and Bourne shell scripting. Continue reading

+ +
+ + +
+ + + Posted in Computers, Programming Lessons + + | + + + + Tagged + + | + + 2 Comments + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/category/computers/index.html b/web/lukeshu.ath.cx/1/wordpress/category/computers/index.html new file mode 100644 index 0000000..0d6594a --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/category/computers/index.html @@ -0,0 +1,350 @@ + + + + + Computers | ltsBlog + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ +

Category Archives: Computers

+ +
+ +

Fixing “Wrong type argument: characterp, return” in !Emacs

+ + + + +
+

A few months ago, I ran into an issue with Emacs that I just found the solution to. In Emacs term-mode (or ansi-term, or multi-term), hitting Enter doesn’t work, and the mini-buffer displays Wrong type argument: characterp, return, and the … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + Leave a comment + +
+ +
+ +
+ +

[Emacs] autopair problems when using term-mode

+ + + + +
+

I found this awesome blog post on the Korean blog Seorenn SIGSEGV. Using Google translate, I was able to extract the information I needed. However, Google translate quite botched it, as did Yahoo and Bing translate. I’ve used a combination … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + 1 Comment + +
+ +
+ +
+ +

Why `sed -i’ exists

+ + + + +
+

I’ve decided to to a morning-pages type thing here, just to get info out. This means that I’ll be posting 250-ish word weblog post snippits sharing whatever, and fairly frequently posting, if this works. So, what is the purpose of … Continue reading

+ +
+ + +
+ + + Posted in Computers, morning-pages + + | + + + Leave a comment + +
+ +
+ +
+ +

Pointers in Java

+ + + + +
+

This was originally posted to Facebook by me at 2010-08-02 23:20. Note: For purposes of anyone interested in this, pointers in Java are more commonly referred to as references, because everything in Java must have it’s own name (method vs. … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + 2 Comments + +
+ +
+ +
+ +

Java has issues

+ + + + +
+

This was originally posted to Facebook by me at 2010-09-02 23:19. It was edited by me there 2010-07-03. Java is an alright language. There are a lot of things it does right, but there are a few things it doesn’t. … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + Leave a comment + +
+ +
+ +
+ +

FUSE is crazy

+ + + + +
+

Well, I suppose just I’m only talking about Linux FUSE, I haven’t fiddled with FUSE on any other kernel. Anyway, FUSE screws with the idea of the root user: $ ls Makefile build.log … $ sudo ls ls: cannot open … Continue reading

+ +
+ + +
+ + + Posted in Computers + + | + + + Leave a comment + +
+ +
+ +
+ +

Lesson 1: Bourne Shell Scripting

+ + + + +
+

This is the first installment in a series of articles introducing one to programming and hacking in general. We will cover setting up a *NIX environment, basic notation, and Bourne shell scripting. Continue reading

+ +
+ + +
+ + + Posted in Computers, Programming Lessons + + | + + + + Tagged + + | + + 2 Comments + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/index.chtml b/web/lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/index.chtml new file mode 100644 index 0000000..c151fe6 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/index.chtml @@ -0,0 +1,179 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/. It is a snapshot of the page as it appeared on Dec 16, 2011 05:56:40 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + Programming Lessons | ltsBlog + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ +

Category Archives: Programming Lessons

+ +
+ +

Lesson 1: Bourne Shell Scripting

+ + + + +
+

This is the first installment in a series of articles introducing one to programming and hacking in general. We will cover setting up a *NIX environment, basic notation, and Bourne shell scripting. Continue reading

+ +
+ + +
+ + + Posted in Computers, Programming Lessons + + | + + + + Tagged + + | + + 2 Comments + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/index.html b/web/lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/index.html new file mode 100644 index 0000000..e81ba62 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/index.html @@ -0,0 +1,176 @@ + + + + + Programming Lessons | ltsBlog + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ +

Category Archives: Programming Lessons

+ +
+ +

Lesson 1: Bourne Shell Scripting

+ + + + +
+

This is the first installment in a series of articles introducing one to programming and hacking in general. We will cover setting up a *NIX environment, basic notation, and Bourne shell scripting. Continue reading

+ +
+ + +
+ + + Posted in Computers, Programming Lessons + + | + + + + Tagged + + | + + 2 Comments + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/category/morning-pages/index.chtml b/web/lukeshu.ath.cx/1/wordpress/category/morning-pages/index.chtml new file mode 100644 index 0000000..f38a9b8 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/category/morning-pages/index.chtml @@ -0,0 +1,174 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/category/morning-pages/. It is a snapshot of the page as it appeared on Dec 11, 2011 03:15:10 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + morning-pages | ltsBlog + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ +

Category Archives: morning-pages

+ +
+ +

Why `sed -i’ exists

+ + + + +
+

I’ve decided to to a morning-pages type thing here, just to get info out. This means that I’ll be posting 250-ish word weblog post snippits sharing whatever, and fairly frequently posting, if this works. So, what is the purpose of … Continue reading

+ +
+ + +
+ + + Posted in Computers, morning-pages + + | + + + Leave a comment + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/category/morning-pages/index.html b/web/lukeshu.ath.cx/1/wordpress/category/morning-pages/index.html new file mode 100644 index 0000000..f8e37a1 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/category/morning-pages/index.html @@ -0,0 +1,171 @@ + + + + + morning-pages | ltsBlog + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ +

Category Archives: morning-pages

+ +
+ +

Why `sed -i’ exists

+ + + + +
+

I’ve decided to to a morning-pages type thing here, just to get info out. This means that I’ll be posting 250-ish word weblog post snippits sharing whatever, and fairly frequently posting, if this works. So, what is the purpose of … Continue reading

+ +
+ + +
+ + + Posted in Computers, morning-pages + + | + + + Leave a comment + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/category/school-2/essays/index.chtml b/web/lukeshu.ath.cx/1/wordpress/category/school-2/essays/index.chtml new file mode 100644 index 0000000..2bc8635 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/category/school-2/essays/index.chtml @@ -0,0 +1,273 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/category/school-2/essays/. It is a snapshot of the page as it appeared on Dec 15, 2011 07:37:19 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + Essays | ltsBlog + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ +

Category Archives: Essays

+ +
+ +

Suicide as an Act of Optimism

+ + + + +
+

If you have been personally touched by suicide, please don’t be offended, I do not entirely agree with the sentiment of this essay.

+

You are not a beautiful, unique snowflake of specialness. You are made of the same decaying, organic matter as everything else. Accept that you are going to die and let go.

+

Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + Leave a comment + +
+ +
+ +
+ +

Who am I?

+ + + + +
+

I am the nerd, the geek, the hacker. In most aspects, I am the stereotypical nerd. I wear glasses, a belt, a button down shirt, and a pocket protector. I play Dungeons and Dragons. I’m smart and have a passion … Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + Leave a comment + +
+ +
+ +
+ +

ICB Journals

+ + + + +
+

A while back I had to do a bunch of journals on the book In Cold Blood. I have decided to post several of these journals, they are very incoherent. Each journal had a passage associated with it, which have … Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged + + | + + Leave a comment + +
+ +
+ +
+ +

What I Know for Sure

+ + + + +
+

I don’t know anything for sure. For all I know, I am a brain in a jar. Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged , + + | + + Leave a comment + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/category/school-2/essays/index.html b/web/lukeshu.ath.cx/1/wordpress/category/school-2/essays/index.html new file mode 100644 index 0000000..1620972 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/category/school-2/essays/index.html @@ -0,0 +1,270 @@ + + + + + Essays | ltsBlog + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ +

Category Archives: Essays

+ +
+ +

Suicide as an Act of Optimism

+ + + + +
+

If you have been personally touched by suicide, please don’t be offended, I do not entirely agree with the sentiment of this essay.

+

You are not a beautiful, unique snowflake of specialness. You are made of the same decaying, organic matter as everything else. Accept that you are going to die and let go.

+

Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + Leave a comment + +
+ +
+ +
+ +

Who am I?

+ + + + +
+

I am the nerd, the geek, the hacker. In most aspects, I am the stereotypical nerd. I wear glasses, a belt, a button down shirt, and a pocket protector. I play Dungeons and Dragons. I’m smart and have a passion … Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + Leave a comment + +
+ +
+ +
+ +

ICB Journals

+ + + + +
+

A while back I had to do a bunch of journals on the book In Cold Blood. I have decided to post several of these journals, they are very incoherent. Each journal had a passage associated with it, which have … Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged + + | + + Leave a comment + +
+ +
+ +
+ +

What I Know for Sure

+ + + + +
+

I don’t know anything for sure. For all I know, I am a brain in a jar. Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged , + + | + + Leave a comment + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/category/school-2/index.chtml b/web/lukeshu.ath.cx/1/wordpress/category/school-2/index.chtml new file mode 100644 index 0000000..9d2fe2f --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/category/school-2/index.chtml @@ -0,0 +1,273 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/category/school-2/. It is a snapshot of the page as it appeared on Dec 8, 2011 19:50:12 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + School | ltsBlog + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ +

Category Archives: School

+ +
+ +

Suicide as an Act of Optimism

+ + + + +
+

If you have been personally touched by suicide, please don’t be offended, I do not entirely agree with the sentiment of this essay.

+

You are not a beautiful, unique snowflake of specialness. You are made of the same decaying, organic matter as everything else. Accept that you are going to die and let go.

+

Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + Leave a comment + +
+ +
+ +
+ +

Who am I?

+ + + + +
+

I am the nerd, the geek, the hacker. In most aspects, I am the stereotypical nerd. I wear glasses, a belt, a button down shirt, and a pocket protector. I play Dungeons and Dragons. I’m smart and have a passion … Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + Leave a comment + +
+ +
+ +
+ +

ICB Journals

+ + + + +
+

A while back I had to do a bunch of journals on the book In Cold Blood. I have decided to post several of these journals, they are very incoherent. Each journal had a passage associated with it, which have … Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged + + | + + Leave a comment + +
+ +
+ +
+ +

What I Know for Sure

+ + + + +
+

I don’t know anything for sure. For all I know, I am a brain in a jar. Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged , + + | + + Leave a comment + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/category/school-2/index.html b/web/lukeshu.ath.cx/1/wordpress/category/school-2/index.html new file mode 100644 index 0000000..e35afc6 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/category/school-2/index.html @@ -0,0 +1,270 @@ + + + + + School | ltsBlog + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ +

Category Archives: School

+ +
+ +

Suicide as an Act of Optimism

+ + + + +
+

If you have been personally touched by suicide, please don’t be offended, I do not entirely agree with the sentiment of this essay.

+

You are not a beautiful, unique snowflake of specialness. You are made of the same decaying, organic matter as everything else. Accept that you are going to die and let go.

+

Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + Leave a comment + +
+ +
+ +
+ +

Who am I?

+ + + + +
+

I am the nerd, the geek, the hacker. In most aspects, I am the stereotypical nerd. I wear glasses, a belt, a button down shirt, and a pocket protector. I play Dungeons and Dragons. I’m smart and have a passion … Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + Leave a comment + +
+ +
+ +
+ +

ICB Journals

+ + + + +
+

A while back I had to do a bunch of journals on the book In Cold Blood. I have decided to post several of these journals, they are very incoherent. Each journal had a passage associated with it, which have … Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged + + | + + Leave a comment + +
+ +
+ +
+ +

What I Know for Sure

+ + + + +
+

I don’t know anything for sure. For all I know, I am a brain in a jar. Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged , + + | + + Leave a comment + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/category/uncategorized/index.chtml b/web/lukeshu.ath.cx/1/wordpress/category/uncategorized/index.chtml new file mode 100644 index 0000000..eff5a77 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/category/uncategorized/index.chtml @@ -0,0 +1,174 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/category/uncategorized/. It is a snapshot of the page as it appeared on Dec 6, 2011 12:06:03 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + Uncategorized | ltsBlog + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ +

Category Archives: Uncategorized

+ +
+ +

Questions about copyright of the deceased

+ + + + +
+

I recently acquired a fairly recent printing of Why We Can’t Wait by Martin Luther King Junior. Now, I assumed that the copyright of the book would have passed to either his children, or some foundation. However, feeling curious I … Continue reading

+ +
+ + +
+ + + Posted in Uncategorized + + | + + + Leave a comment + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/category/uncategorized/index.html b/web/lukeshu.ath.cx/1/wordpress/category/uncategorized/index.html new file mode 100644 index 0000000..db3c7a1 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/category/uncategorized/index.html @@ -0,0 +1,171 @@ + + + + + Uncategorized | ltsBlog + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ +

Category Archives: Uncategorized

+ +
+ +

Questions about copyright of the deceased

+ + + + +
+

I recently acquired a fairly recent printing of Why We Can’t Wait by Martin Luther King Junior. Now, I assumed that the copyright of the book would have passed to either his children, or some foundation. However, feeling curious I … Continue reading

+ +
+ + +
+ + + Posted in Uncategorized + + | + + + Leave a comment + +
+ +
+ + + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/index.chtml b/web/lukeshu.ath.cx/1/wordpress/index.chtml new file mode 100644 index 0000000..9a86101 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/index.chtml @@ -0,0 +1,716 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/. It is a snapshot of the page as it appeared on Nov 27, 2011 17:32:56 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + ltsBlog + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ + + +
+ +

Fixing “Wrong type argument: characterp, return” in !Emacs

+ + + + +
+

A few months ago, I ran into an issue with Emacs that I just found the solution to. In Emacs term-mode (or ansi-term, or multi-term), hitting Enter doesn’t work, and the mini-buffer displays Wrong type argument: characterp, return, and the term doesn’t see the keystroke.

+

I dented about it on identi.ca, and no one was able to help me. This turned out to be a mistake, because I kept seeing the dent as I Googled/DuckDuckGo’ed for a solution.

+

Anyway, I finally found the solution on the Korean blog Seorenn SIGSEGV.

+

The problem is basically that autopair had remapped the return key to an autopair function, which didn’t jive with term-mode. At least, that’s what Seorenn said.

+

If it were that simple, I would have noticed it when I installed autopair. Only in some environments does the problem manifest. For example, on Ubuntu, where I started using autopair, the problem never appears. When I switched to Fedora (and later Parabola), I figured it was some issue with the X server, because it worked fine when running in a terminal.

+

Now knowing that the problem was related to autopair, I can’t figure out how it ever worked.

+

Anyway, the fix is to add the following to your .emacs:

+
(add-hook 'term-mode-hook
+  #'(lambda () (setq autopair-dont-activate t)))
+

(Code segment from emacs-fu, via Seorenn SIGSEGV.)

+ + +
+ + +
+ + + Posted in Computers + + | + + + Leave a comment + +
+ +
+ +
+ +

[Emacs] autopair problems when using term-mode

+ + + + +
+

I found this awesome blog post on the Korean blog Seorenn SIGSEGV.

+

Using Google translate, I was able to extract the information I needed. However, Google translate quite botched it, as did Yahoo and Bing translate. I’ve used a combination of these three tools, and my understanding of Emacs, to put together a more reasonable translation.

+

I’m posting the full English text of it here because this is a problem I’ve had, and would like to help others find the solution. I don’t mean to rip off the original author, his blog seems quite good, worth reading, if you don’t mind poor translations (or, can read Korean).

+

The original post can be found here here.

+

+In Emacs term-mode (M-x term) and multi-term-mode pressing the Enter key causes an error to appear in the mini-buffer, and the keystroke appears to have been eaten.

+

This problem only occurs when using autopair. are thought to In addition to or RET (Enter) as a separate feature for all modes of binding may also occur. if autopair the last of the solution are presented.

+

See below sum up shoveling machine.

+

Issue

+

During term-mode RET does not work. The mini-buffer shows the error message Wrong type argument: characterp, return. RET has been bound to something here, or maybe you saw the state I had a feeling heard nil.

+

Alternative

+

Fortunately, I was able to replace the RET key with C-j. This is used as a temporary measure to work with.

+

Cause Analysis

+

In term-mode use C-h k to find the function that RET is bound to. autopair that certain functions were bound.

+

As a result, be sure that autopair is the culprit.

+

Attempted Solution

+

In term-mode C-h k with C-j to determine the function bound to: term-send-raw.

+

In conclusion, I believe you will solve the problem in the RET key bindings by using define-key to bind the key to term-send-raw in term-mode-map.

+

But the code encounters an error. Is not allowed to do something it felt like.

+

Solution

+

The code below. Not two lines were able to solve it.

+
+(add-hook 'term-mode-hook
+  #'(lambda () (setq autopair-dont-activate t)))
+
+

Source of the above code: http://emacs-fu.blogspot.com/2010/06/console-apps-in-emacs-with-multi-term.html +

+ + +
+ + +
+ + + Posted in Computers + + | + + + 1 Comment + +
+ +
+ +
+ +

Why `sed -i’ exists

+ + + + +
+

I’ve decided to to a morning-pages type thing here, just to get info out. This means that I’ll be posting 250-ish word weblog post
+snippits sharing whatever, and fairly frequently posting, if this works.

+

So, what is the purpose of the -i flag to sed? Simply, it edits the file in place, instead of dumping the edit to stdout.

+

Those of you familiar with “cat -v Considered Harmful” or just traditional UNIX design will say “bah, what a useless flag, just use sed 's/regex//' < file > file to write the changes back to the file.

+

But there’s a problem with this. There is a race condition, the file has been opened twice, once for reading, and once for writing. If they get closed in the wrong order, you will end up with an empty file. In my experience this very seldom happens. However, when you have a shell script that usually works, but just occaisionally corrupts your `database’, you’ll see why sed -i‘s important.

+ + +
+ + +
+ + + Posted in Computers, morning-pages + + | + + + Leave a comment + +
+ +
+ +
+ +

Questions about copyright of the deceased

+ + + + +
+

I recently acquired a fairly recent printing of Why We Can’t Wait by Martin Luther King Junior. Now, I assumed that the copyright of the book would have passed to either his children, or some foundation. However, feeling curious I decided to check.

+

Following is the copyright page at the beginning of the book. I’ve collapsed some sections that are not relevant to my question into [...]. Emphasis mine.

+

+SIGNET CLASSICS
+Published by New American Library, [...]

+

Penguin Books, Ltd., [...]

+

Published by Signet Classics, [...]

+

First Signet Classics Printing, January 2000
+30 29 28 27 26 25 24 23 22 21

+

Copyright © Martin Luther King, Jr., 1963, 1964
+Introduction copyright © Reverend Jesse L. Jackson, Sr., 2000
+All rights reserved

+

Printed in the United States of America

+

Without limiting the rights under copyright reserved above, no part of this
+publication may be reproduced, stored in or introduced int a retrieval system,
+or transmitted, in any form, or by any means (electronic, mechanical, photo-
+copying, recording, or otherwise), without prior written permission of both
+the copyright owner
and the above publisher of this book.

+

If you purchased this book without a cover [...]

+

The scanning, uploading, and distribution of this book via the Internet of via
+any other means without permission of the publisher is illegal and punish-
+able by law.
Please purchase only authorized electronic editions, and do not
+participate in or encourage electronic piracy of copyrighted materials. Your sup-
+port of the author’s rights is appreciated.
+

+

(To those who will comment on it, my posting of the above text is firmly within fair use.)

+

So, my questions are:

+
    +
  • Is MLK still the copyright holder? Yes: Getting his permission is a little hard. No: Whose permission do I need?
  • +
  • Is distribution without permission of the publisher really illegal? What legal stake do they have to the text of the book? Isn’t it really the copyright holder’s permission I need? (for the text anyway, I’m not concerned about things like typesetting and cover art).
  • +
  • I find it humorous that they end their plea for me to not pirate the book with a thank you for supporting MLK’s rights. Because he totally appreciates his copyright to draw a profit from the book right now. Because he’s more concerned about other not making copies of the book than spreading the message, especially now that he’s dead, and can’t draw a profit from it anyway.
  • +
+ + +
+ + +
+ + + Posted in Uncategorized + + | + + + Leave a comment + +
+ +
+ +
+ +

Pointers in Java

+ + + + +
+

This was originally posted to Facebook by me at 2010-08-02 23:20.

+

Note: For purposes of anyone interested in this, pointers in Java are more commonly referred to as references, because everything in Java must have it’s own name (method vs. function). This makes operating the Google DuckDuckGo machine easier. I wish I had known that when I wrote this.

+
+In Java there are a few `primitive' datatypes, the rest of the datatypes are
+implemented as classes.  They are:
+
+byte
+short
+int
+long
+float
+double
+char
+<pointer>
+
+Normally, when declaring a primitive, you write the type of the primitive as
+the variable type.  However, the reason I wrote pointer in brackets is that you
+DON'T write pointer when declaring a variable storing a pointer.
+
+For example, when I write
+java.util.Stack stack = new java.util.Stack();
+The variable stack does NOT store an object. It stores a /pointer/ to an object.
+A pointer stores the memory address where a object is stored.
+
+ALL VARIABLES STORE PRIMITIVES, IT IS IMPOSSIBLE TO STORE AN OBJECT.
+For this reason, it is possible for the JVM to manage memory for you; it keeps
+track of the pointers, and once there are no more pointers pointing to a
+particular object, it can be deleted.
+
+Why does this matter?  Well, consider that `String' is a class
+(`java.lang.String'), not a primitive.  Consider the following code:
+
+String str1 = "foo";
+String str2 = "foo";
+return (str1 == str2);
+
+If String were a primitive, it would return true; but it returns false.
+Strings are a little complex because they contain syntactic sugar.  Let's do
+the same example with an integer instead:
+
+Integer int1 = new Integer(5);
+Integer int2 = new Integer(5);
+return (int1 == int2);
+
+The `java.lang.Integer' class is a class wrapper around the `int' primitive.
+The `new' operator creates a class, and returns a pointer to it.  The source
+code to the java.lang.Integer class contains the:
+    private int value;
+
+    public Integer(int val) {
+        value = val;
+    }
+
+So, the above example generates to objects belonging to the java.lang.Integer
+class.  Even though the .value's of the two objects are the same, they are
+separate objects.  Therefore, int1 and int2 store two separate memory locations.
+These two locations in the memory store the same data, but it is stored at both
+locations.
+
+The `==' operator takes two primitives, and compares their direct values.
+Since int1 and int2 store two different memory locations, `(int1 == int2)'
+evaluates to false.
+
+

Note: as pointed out by Ari Consul, everything following is false. The JVM does not copy the objects, it returns the pointer directly (no magic, as I’d suggested). The JVM will free() the object when there are no more pointers to it, via basic reference-counting

+
+About copying objects:  when returning a private pointer, the JVM makes a copy
+of the object that the pointer points to, and returns a pointer to the new
+object, NOT the original pointer.
+
+For example if I declare the method:
+
+public static Integer getInt() {
+    Integer val = new Integer(5);
+    return val;
+}
+
+It does NOT actually return `val'; it returns a new pointer to a copy of the
+object that val pointed to.
+
+ + +
+ + +
+ + + Posted in Computers + + | + + + 2 Comments + +
+ +
+ +
+ +

Java has issues

+ + + + +
+

This was originally posted to Facebook by me at 2010-09-02 23:19. It was edited by me there 2010-07-03.

+

Java is an alright language. There are a lot of things it does right, but there
+are a few things it doesn’t.

+
    +
  1. Distinction between classes and packages. I should be able to create
    + sub-classes the same way as I add classes to a package; a package should
    + just be an empty class.
  2. +
  3. Too many primitives. I should be able to (re-)construct more of the
    + language.
  4. +
  5. No preprocessor/inlines. OO isn’t an excuse for this, make me do it at the
    + class level (or rather, source file, not supporting `#include’ is fine). I
    + should at least be able to add `#define int8=byte’ like in C. This
    + wouldn’t be as much of an issue if all these things weren’t primitives; I
    + could just do “public class int8 extends byte”. (yes, I could extend the
    + `Byte’ class, but it wouldn’t come with all the syntactic sugar primitives
    + get.)
  6. +
  7. Numbers: names. Yes the names used are long-standing convention in CS.
    + These include some of the worst short-sighted mistakes in all of
    + hackerdom… because they stuck. Yet, most reasonable languages can still
    + support them, and sane equivalents.

    +
      +
    • byte -> int8
    • +
    • short -> int16
    • +
    • int -> int32
    • +
    • long -> int64
    • +
    • float -> float32
    • +
    • double -> float64
    • +
    +

    This would easily be fixed if they weren’t all primitives (point 2), or if
    + I had a preprocessor (point 3).

  8. +
  9. Numbers: unsigned. How about unsigned integers (uint16)? This would be
    + easy to implement, if everything weren’t a damn primitive.
  10. +
  11. Give me an actual `struct’, like in C. I’m not asking for full manual
    + memory management, just the ability to organize a chunk of it; you can
    + still manage it for me. It would make serialization hellofalot
    + easier.
  12. +
  13. It’s inconsistent about whether it uses the system encoding or it’s
    + internal encoding. The String object just became worthless to anyone
    + wanting to do any amount of I18N.
  14. +
  15. It’s internal encoding is junk. It maps UTF-16 symbols onto the `char’
    + primitive, which is 16 bits.

    +
      +
    1. UTF-16 is junk, use UTF-8
    2. +
    3. With any UTF encoding you must allow for a dynamic bit-length, for
      + UTF-16 it’s 16-32 bits, UTF-8 is 8-32 bits
    4. +
    +

    I understand how/why it arrived at the solution it uses; at the time Java
    + was designed, it was using UCS-2, which is a 16-bit encoding, and was
    + superseded by UTF-16 in 1996 with Unicode 2.0. However, this is one of
    + those things where you specify a new JVM version, and switch to UTF-8. You
    + can even leave a legacy mode in the JVM that still uses UCS-2.

  16. +
  17. Octal prefix: `0′ is used as the prefix to specify an octal literal. Any
    + third-grader can tell you why using a 0 as a prefix to a number is a bad
    + idea; the number might just have padded zeros. Let’s look at the prefix
    + used for hexadecimal: `0x’. This is great:

    +
      +
    1. It starts with a numeric character, which means that it must be a
      + literal. If it started with an alphabetic character, it might be a
      + variable name.
    2. +
    3. The second character is a alphabetic character that is not used in
      + any number system that is used in computer science. This allows it
      + to serve a a unique identifier.
    4. +
    +

    Given these reasons, let’s think of a new prefix for octal… how about
    + `0o’. That took literally less than 10 seconds for me to realize why `0′
    + sucked, and to think of a better one.*

  18. +
+

All-in-all, its still better than C++

+

* although, writing this gave me an even
+better idea, but it would break `0x<value>’ for hex, which is incredibly
+common among many languages:
+`<base-in-decimal>x<value>’
+so octal would be `8x<value>’
+and hex would be `16x<value>’
+It would be incredibly understandable, and, depending on implementation allow
+simple arbitrary-base literals.

+ + +
+ + +
+ + + Posted in Computers + + | + + + Leave a comment + +
+ +
+ +
+ +

FUSE is crazy

+ + + + +
+

Well, I suppose just I’m only talking about Linux FUSE, I haven’t fiddled with FUSE on any other kernel. Anyway, FUSE screws with the idea of the root user:

+
$ ls
+Makefile
+build.log
+...
+$ sudo ls
+ls: cannot open directory .: Permission denied
+$ 
+

For those who don’t get it, the user with user ID `0′, usually with the username `root’ is the supreme administrator account — it is locked out of nothing, the kernel doesn’t even check file permissions when the user is root. The sudo (switch user do) command runs the following command as root. Anyway, even though the kernel doesn’t check file permissions when the user is root, FUSE does, in fact, it forces a umask of 0077, which means that even if the file permissions say “anyone logged in can read this file”, only the owner of the file can actually read it. I’m sure that this can be configured, but that doesn’t mean that it’s not brain damaged by default.

+ + +
+ + +
+ + + Posted in Computers + + | + + + Leave a comment + +
+ +
+ +
+ +

Suicide as an Act of Optimism

+ + + + +
+

If you have been personally touched by suicide, please don’t be offended, I do not entirely agree with the sentiment of this essay. The prompt here was “Write about suicide as an act of desperation.”. We had just listened to a lecture about how most student’s essays end up being the same for the same prompt; any unique or different essay will score better. Additionally, you can’t lead me that much in the prompt. Sure I agree that suicide is a bad thing, but we can’t treat that as a given.
~ Luke Shumaker

+

You are not a beautiful, unique snowflake of specialness. You are made of the same decaying, organic matter as everything else. Accept that you are going to die and let go. It is the only way to find freedom. The only way to live life to the fullest is to accept, and embrace, that life does not matter. Suicide can be an act of optimism.

+

You are going to die. Everyone you have ever loved or cared for is going to die. Everyone you have ever met is going to die. If you’re having trouble wrapping your mind around this, perhaps a religious interpretation may help; God’s ultimate plan for you: to die. Everything you create will fall apart and be forgotten. Nothing you will ever do will matter. Losing all hope; this is nihilism.

+

To commit suicide is therefore to accept our place in the universe, and embrace our fate. To embrace “God’s will” for us, to fulfill our divine mission, surely is a noble act, a positive act of optimism. We don’t have to do anything; we fulfill our mission by being born, living for a while, then dying.

+

When we accept this, accept our mortality, and the futility of life, a massive burden is lifted. When we accept that our mission in life is to die, we no longer must worry about fulfilling it; we will. We no longer have an obligation to be significant, to make a difference. We become free. Losing all hope, and finding freedom; this is existentialism.

+

Plato wrote that Socrates had taught of “reluctant leadership.” That the “enlightened” must return from their “enhanced world,” to lead those who had not attained enlightenment; they were obligated to, though they would not want to. He believed that philosophers should govern society. Perhaps you remember Plato’s allegory of the Cave? In it, the individual who found his way outside of the cave, and saw the true world had to return to the cave to watch over those who did not realize that there was a world beyond the cave. I can’t be the only one who found this horribly depressing. You attain enlightenment, and are rewarded by being forced to return and govern idiots who think you a fool for believing in a world beyond the cave. I don’t want to hack an awesome piece of software, then spend my days running its mailing list.

+

To find freedom, we must give up all that matters to us; for it does not matter. We must come to what are possibly the most painful realizations a person can have. We must give up the life we know, the life that matters. We must accept that we are going to die, and stop caring. Then we can enjoy what we have, the way we want to. The phrase “live and let live” is a good start, but how about “live and let be?” Why must the other person in the phrase live? The phrase embodies allowing others to make their own choices, regardless of what you think, so shouldn’t they get the choice to not live a life? In order for us to find our freedom, and them to find their freedom, we must accept that life does not matter. We don’t all have to kill ourselves, but accept that life does not matter.

+ + +
+ + +
+ + + Posted in Essays, School + + | + + + Leave a comment + +
+ +
+ +
+ +

Who am I?

+ + + + +
+

I am the nerd, the geek, the hacker. In most aspects, I am the stereotypical nerd. I wear glasses, a belt, a button down shirt, and a pocket protector. I play Dungeons and Dragons. I’m smart and have a passion for computers. I keep mostly to myself. However, in contrast to the stereotypical nerd, people like me. While I would expect myself to have some friends, the acceptance I have among my peers is something that continually surprises me. This is not something that has always been true, but has been for most of high school. The most logical reasons for this seems to be the emotional maturity of high-schoolers, combined with the publics’ increasing acceptance of nerds. Still, it feels like I’m doing something wrong as a nerd, and that I’ve betrayed my people.

+

The quality of my relationships with other people seem to vary inversely with quantity. For much of my life I have had a small inner circle of friends that I was very close to. As I branched out, the I have drifted from the friends I was once extremely close to. That is not to say that I am not still close to them, but that we are not as close as we once were. Since I mostly keep to myself, most of my friendships seem to form by others seeking to be friends with me. For this reason it is not infrequent that I am not sure whether I am currently friends with someone who I once was.

+


+

I am mildly insane. Somehow that became my concession. In Poe’s Tell-Tale Heart the character desperately insists that he is sane. I gave up on that plea long ago, now it’s, “don’t worry guys, I’m only slightly insane.” It’s okay though, I’m sane enough to function, but insane enough that it’s interesting. To delve into precisely in which way I am insane is neither something that would fit in this document, nor something I am entirely comfortable sharing.

+


+

I am a hacker. I think. I used to tell people that I was aligned with the hacker ethic, and followed the practices of hackers, but that I felt the term denoted s level of proficiency that I had not reached. I’m not sure I’ve progressed significantly since then, but I now feel comfortable telling people that I am a hacker.

+

I should probably clarify what “hacker” means. A hacker is someone who enjoys hacking, and subscribes to the hacker ethic. Now I must define “hack,” which is an incredibly hard word to define. To quote hacker Phil Agre, “The word hack doesn’t really have 69 different meanings. In fact, hack has only one meaning, an extremely subtle and profound one which defies articulation. Which connotation is implied by a given use of the word depends in similarly profound ways on the context.” I would say that most accurately, but least helpfully, hacking means “creative problem solving.” Hacker esr characterizes hacking as “an appropriate application of ingenuity.” Some hackers do apply this to breaking computer security, many, many more do not. I should also note that when hackers do break security, it is not with malicious intent, to do that would be a violation of the hacker ethic. Hacking normally applies to computer programming, but it can be applied to anything.

+

When I inform some people that hacking does not mean security breaking, as the mainstream media has them think, they act like I am nitpicking at a definition, or being stubborn. Let me assure you that when I hear hacker used in such a way, I am confused for a moment before I realize that many people use the term to mean security breaker.

+


+

I am lazy, but smart. Perhaps I am using a slightly different meaning of “lazy” than is normal, it is not that I avoid work, but tend to do other work instead, or avoid unnecessary work. It is commonly said that laziness is a sign of a good programmer; he will put thought into the design of his code to avoid more work later. When I don’t do a school assignment, it isn’t because I idly wasted my time; I was probably up until the wee hours of the morn working, but on hacking instead of another exercise that I don’t perceive to benefit me (other than the grade). Perhaps rather than lazy, this could be described as having bad priorities. This is probably true, and the reason I haven’t changed is that I still get away with it. I’ve gotten reasonable grades in classes by getting a “0” on homework, then setting the curve on the test. This isn’t the usual situation, though, I can usually get the work completed in a few minutes before class.

+

This brings me to my attitudes towards school. I enjoy learning, but I don’t care about grades. I know that they will help me out later; I know I’ll wish I did care when I’m applying to colleges; but they don’t matter to me. I come to school to learn, not to play some game with grades. Once I learn a topic I am not likely to spend more time on it doing 150 more practice problems, when I could be hacking, teaching myself, reading, researching, or teaching someone else.

+


+

I’m informed that many of these attributes are not atypical of people of my intelligence and passion for learning. However, I do not believe I have met anyone (in my age group, at least) that remotely fit this description.

+ + +
+ + +
+ + + Posted in Essays, School + + | + + + Leave a comment + +
+ +
+ +
+ +

ICB Journals

+ + + + +
+

+A while back I had to do a bunch of journals on the book In Cold Blood.
+I have decided to post several of these journals, they are very incoherent.
+Each journal had a passage associated with it, which have not been reproduced here. +

+

#3, Page 20 – The Last to See Them Alive

+

Perhaps this is a bit of a tangent, but this passage makes me wonder “What makes someone become a life insurance agent?” It must be the most depressing job ever, next to working in a cemetery/crematorium/funeral home. Even if one can claim ignorance of that fact when entering the field, what makes someone want do do that? Are there high-school students who want to sell insurance when they grow up?

+

#7, Page 65 – Persons Unknown

+

I tried to read her story, however, she kept using the phrase “hot as Hades,” and I couldn’t take her seriously (does this make me an awful person?). I find the phrase “hot as Hades” to be humerus; a hot hell is a distinctly Christian concept, the Greek Hades was cold, icy. This certainly fits much of the imagery of death, the “cold grip of death,” bodies get cold when they die, and you get the chills when one is scared (exposed to death). It appears that my mind is wandering, I’m going to attribute this to lack of hacking. Relatedly, I should probably finish the book Hackers, (I have to write a review of it, as I got a free “review copy”) I’ll do that as soon as I finish this book.

+

#15, Page 147-148 – The Corner

+

It’s funny how the events we build up in our heads end up not being fulfilling as we imagine them to be. Whatever this journal was going to be just got derailed by my recollection of a paper I once read. The paper essentially stated that individuals with depression are the sane people, and that we are all the ones with the disorder. It asserted that we have a condition that causes us to over-estimate how future events will affect us, both good events and bad. Individuals with depression actually function properly, but without the unfounded optimism fount in the rest of us, they fail to be motivated or feel good. If this is correct, it means that the world just sucks. It would seem here that Dewey indeed does not have depression, for he is subject to our condition of falsely inflating gratifying events.

+ + +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged + + | + + Leave a comment + +
+ +
+ + + + +
+ + + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/index.html b/web/lukeshu.ath.cx/1/wordpress/index.html new file mode 100644 index 0000000..ec50ae1 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/index.html @@ -0,0 +1,713 @@ + + + + + ltsBlog + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ + + +
+ +

Fixing “Wrong type argument: characterp, return” in !Emacs

+ + + + +
+

A few months ago, I ran into an issue with Emacs that I just found the solution to. In Emacs term-mode (or ansi-term, or multi-term), hitting Enter doesn’t work, and the mini-buffer displays Wrong type argument: characterp, return, and the term doesn’t see the keystroke.

+

I dented about it on identi.ca, and no one was able to help me. This turned out to be a mistake, because I kept seeing the dent as I Googled/DuckDuckGo’ed for a solution.

+

Anyway, I finally found the solution on the Korean blog Seorenn SIGSEGV.

+

The problem is basically that autopair had remapped the return key to an autopair function, which didn’t jive with term-mode. At least, that’s what Seorenn said.

+

If it were that simple, I would have noticed it when I installed autopair. Only in some environments does the problem manifest. For example, on Ubuntu, where I started using autopair, the problem never appears. When I switched to Fedora (and later Parabola), I figured it was some issue with the X server, because it worked fine when running in a terminal.

+

Now knowing that the problem was related to autopair, I can’t figure out how it ever worked.

+

Anyway, the fix is to add the following to your .emacs:

+
(add-hook 'term-mode-hook
+  #'(lambda () (setq autopair-dont-activate t)))
+

(Code segment from emacs-fu, via Seorenn SIGSEGV.)

+ + +
+ + +
+ + + Posted in Computers + + | + + + Leave a comment + +
+ +
+ +
+ +

[Emacs] autopair problems when using term-mode

+ + + + +
+

I found this awesome blog post on the Korean blog Seorenn SIGSEGV.

+

Using Google translate, I was able to extract the information I needed. However, Google translate quite botched it, as did Yahoo and Bing translate. I’ve used a combination of these three tools, and my understanding of Emacs, to put together a more reasonable translation.

+

I’m posting the full English text of it here because this is a problem I’ve had, and would like to help others find the solution. I don’t mean to rip off the original author, his blog seems quite good, worth reading, if you don’t mind poor translations (or, can read Korean).

+

The original post can be found here here.

+

+In Emacs term-mode (M-x term) and multi-term-mode pressing the Enter key causes an error to appear in the mini-buffer, and the keystroke appears to have been eaten.

+

This problem only occurs when using autopair. are thought to In addition to or RET (Enter) as a separate feature for all modes of binding may also occur. if autopair the last of the solution are presented.

+

See below sum up shoveling machine.

+

Issue

+

During term-mode RET does not work. The mini-buffer shows the error message Wrong type argument: characterp, return. RET has been bound to something here, or maybe you saw the state I had a feeling heard nil.

+

Alternative

+

Fortunately, I was able to replace the RET key with C-j. This is used as a temporary measure to work with.

+

Cause Analysis

+

In term-mode use C-h k to find the function that RET is bound to. autopair that certain functions were bound.

+

As a result, be sure that autopair is the culprit.

+

Attempted Solution

+

In term-mode C-h k with C-j to determine the function bound to: term-send-raw.

+

In conclusion, I believe you will solve the problem in the RET key bindings by using define-key to bind the key to term-send-raw in term-mode-map.

+

But the code encounters an error. Is not allowed to do something it felt like.

+

Solution

+

The code below. Not two lines were able to solve it.

+
+(add-hook 'term-mode-hook
+  #'(lambda () (setq autopair-dont-activate t)))
+
+

Source of the above code: http://emacs-fu.blogspot.com/2010/06/console-apps-in-emacs-with-multi-term.html +

+ + +
+ + +
+ + + Posted in Computers + + | + + + 1 Comment + +
+ +
+ +
+ +

Why `sed -i’ exists

+ + + + +
+

I’ve decided to to a morning-pages type thing here, just to get info out. This means that I’ll be posting 250-ish word weblog post
+snippits sharing whatever, and fairly frequently posting, if this works.

+

So, what is the purpose of the -i flag to sed? Simply, it edits the file in place, instead of dumping the edit to stdout.

+

Those of you familiar with “cat -v Considered Harmful” or just traditional UNIX design will say “bah, what a useless flag, just use sed 's/regex//' < file > file to write the changes back to the file.

+

But there’s a problem with this. There is a race condition, the file has been opened twice, once for reading, and once for writing. If they get closed in the wrong order, you will end up with an empty file. In my experience this very seldom happens. However, when you have a shell script that usually works, but just occaisionally corrupts your `database’, you’ll see why sed -i‘s important.

+ + +
+ + +
+ + + Posted in Computers, morning-pages + + | + + + Leave a comment + +
+ +
+ +
+ +

Questions about copyright of the deceased

+ + + + +
+

I recently acquired a fairly recent printing of Why We Can’t Wait by Martin Luther King Junior. Now, I assumed that the copyright of the book would have passed to either his children, or some foundation. However, feeling curious I decided to check.

+

Following is the copyright page at the beginning of the book. I’ve collapsed some sections that are not relevant to my question into [...]. Emphasis mine.

+

+SIGNET CLASSICS
+Published by New American Library, [...]

+

Penguin Books, Ltd., [...]

+

Published by Signet Classics, [...]

+

First Signet Classics Printing, January 2000
+30 29 28 27 26 25 24 23 22 21

+

Copyright © Martin Luther King, Jr., 1963, 1964
+Introduction copyright © Reverend Jesse L. Jackson, Sr., 2000
+All rights reserved

+

Printed in the United States of America

+

Without limiting the rights under copyright reserved above, no part of this
+publication may be reproduced, stored in or introduced int a retrieval system,
+or transmitted, in any form, or by any means (electronic, mechanical, photo-
+copying, recording, or otherwise), without prior written permission of both
+the copyright owner
and the above publisher of this book.

+

If you purchased this book without a cover [...]

+

The scanning, uploading, and distribution of this book via the Internet of via
+any other means without permission of the publisher is illegal and punish-
+able by law.
Please purchase only authorized electronic editions, and do not
+participate in or encourage electronic piracy of copyrighted materials. Your sup-
+port of the author’s rights is appreciated.
+

+

(To those who will comment on it, my posting of the above text is firmly within fair use.)

+

So, my questions are:

+
    +
  • Is MLK still the copyright holder? Yes: Getting his permission is a little hard. No: Whose permission do I need?
  • +
  • Is distribution without permission of the publisher really illegal? What legal stake do they have to the text of the book? Isn’t it really the copyright holder’s permission I need? (for the text anyway, I’m not concerned about things like typesetting and cover art).
  • +
  • I find it humorous that they end their plea for me to not pirate the book with a thank you for supporting MLK’s rights. Because he totally appreciates his copyright to draw a profit from the book right now. Because he’s more concerned about other not making copies of the book than spreading the message, especially now that he’s dead, and can’t draw a profit from it anyway.
  • +
+ + +
+ + +
+ + + Posted in Uncategorized + + | + + + Leave a comment + +
+ +
+ +
+ +

Pointers in Java

+ + + + +
+

This was originally posted to Facebook by me at 2010-08-02 23:20.

+

Note: For purposes of anyone interested in this, pointers in Java are more commonly referred to as references, because everything in Java must have it’s own name (method vs. function). This makes operating the Google DuckDuckGo machine easier. I wish I had known that when I wrote this.

+
+In Java there are a few `primitive' datatypes, the rest of the datatypes are
+implemented as classes.  They are:
+
+byte
+short
+int
+long
+float
+double
+char
+<pointer>
+
+Normally, when declaring a primitive, you write the type of the primitive as
+the variable type.  However, the reason I wrote pointer in brackets is that you
+DON'T write pointer when declaring a variable storing a pointer.
+
+For example, when I write
+java.util.Stack stack = new java.util.Stack();
+The variable stack does NOT store an object. It stores a /pointer/ to an object.
+A pointer stores the memory address where a object is stored.
+
+ALL VARIABLES STORE PRIMITIVES, IT IS IMPOSSIBLE TO STORE AN OBJECT.
+For this reason, it is possible for the JVM to manage memory for you; it keeps
+track of the pointers, and once there are no more pointers pointing to a
+particular object, it can be deleted.
+
+Why does this matter?  Well, consider that `String' is a class
+(`java.lang.String'), not a primitive.  Consider the following code:
+
+String str1 = "foo";
+String str2 = "foo";
+return (str1 == str2);
+
+If String were a primitive, it would return true; but it returns false.
+Strings are a little complex because they contain syntactic sugar.  Let's do
+the same example with an integer instead:
+
+Integer int1 = new Integer(5);
+Integer int2 = new Integer(5);
+return (int1 == int2);
+
+The `java.lang.Integer' class is a class wrapper around the `int' primitive.
+The `new' operator creates a class, and returns a pointer to it.  The source
+code to the java.lang.Integer class contains the:
+    private int value;
+
+    public Integer(int val) {
+        value = val;
+    }
+
+So, the above example generates to objects belonging to the java.lang.Integer
+class.  Even though the .value's of the two objects are the same, they are
+separate objects.  Therefore, int1 and int2 store two separate memory locations.
+These two locations in the memory store the same data, but it is stored at both
+locations.
+
+The `==' operator takes two primitives, and compares their direct values.
+Since int1 and int2 store two different memory locations, `(int1 == int2)'
+evaluates to false.
+
+

Note: as pointed out by Ari Consul, everything following is false. The JVM does not copy the objects, it returns the pointer directly (no magic, as I’d suggested). The JVM will free() the object when there are no more pointers to it, via basic reference-counting

+
+About copying objects:  when returning a private pointer, the JVM makes a copy
+of the object that the pointer points to, and returns a pointer to the new
+object, NOT the original pointer.
+
+For example if I declare the method:
+
+public static Integer getInt() {
+    Integer val = new Integer(5);
+    return val;
+}
+
+It does NOT actually return `val'; it returns a new pointer to a copy of the
+object that val pointed to.
+
+ + +
+ + +
+ + + Posted in Computers + + | + + + 2 Comments + +
+ +
+ +
+ +

Java has issues

+ + + + +
+

This was originally posted to Facebook by me at 2010-09-02 23:19. It was edited by me there 2010-07-03.

+

Java is an alright language. There are a lot of things it does right, but there
+are a few things it doesn’t.

+
    +
  1. Distinction between classes and packages. I should be able to create
    + sub-classes the same way as I add classes to a package; a package should
    + just be an empty class.
  2. +
  3. Too many primitives. I should be able to (re-)construct more of the
    + language.
  4. +
  5. No preprocessor/inlines. OO isn’t an excuse for this, make me do it at the
    + class level (or rather, source file, not supporting `#include’ is fine). I
    + should at least be able to add `#define int8=byte’ like in C. This
    + wouldn’t be as much of an issue if all these things weren’t primitives; I
    + could just do “public class int8 extends byte”. (yes, I could extend the
    + `Byte’ class, but it wouldn’t come with all the syntactic sugar primitives
    + get.)
  6. +
  7. Numbers: names. Yes the names used are long-standing convention in CS.
    + These include some of the worst short-sighted mistakes in all of
    + hackerdom… because they stuck. Yet, most reasonable languages can still
    + support them, and sane equivalents.

    +
      +
    • byte -> int8
    • +
    • short -> int16
    • +
    • int -> int32
    • +
    • long -> int64
    • +
    • float -> float32
    • +
    • double -> float64
    • +
    +

    This would easily be fixed if they weren’t all primitives (point 2), or if
    + I had a preprocessor (point 3).

  8. +
  9. Numbers: unsigned. How about unsigned integers (uint16)? This would be
    + easy to implement, if everything weren’t a damn primitive.
  10. +
  11. Give me an actual `struct’, like in C. I’m not asking for full manual
    + memory management, just the ability to organize a chunk of it; you can
    + still manage it for me. It would make serialization hellofalot
    + easier.
  12. +
  13. It’s inconsistent about whether it uses the system encoding or it’s
    + internal encoding. The String object just became worthless to anyone
    + wanting to do any amount of I18N.
  14. +
  15. It’s internal encoding is junk. It maps UTF-16 symbols onto the `char’
    + primitive, which is 16 bits.

    +
      +
    1. UTF-16 is junk, use UTF-8
    2. +
    3. With any UTF encoding you must allow for a dynamic bit-length, for
      + UTF-16 it’s 16-32 bits, UTF-8 is 8-32 bits
    4. +
    +

    I understand how/why it arrived at the solution it uses; at the time Java
    + was designed, it was using UCS-2, which is a 16-bit encoding, and was
    + superseded by UTF-16 in 1996 with Unicode 2.0. However, this is one of
    + those things where you specify a new JVM version, and switch to UTF-8. You
    + can even leave a legacy mode in the JVM that still uses UCS-2.

  16. +
  17. Octal prefix: `0′ is used as the prefix to specify an octal literal. Any
    + third-grader can tell you why using a 0 as a prefix to a number is a bad
    + idea; the number might just have padded zeros. Let’s look at the prefix
    + used for hexadecimal: `0x’. This is great:

    +
      +
    1. It starts with a numeric character, which means that it must be a
      + literal. If it started with an alphabetic character, it might be a
      + variable name.
    2. +
    3. The second character is a alphabetic character that is not used in
      + any number system that is used in computer science. This allows it
      + to serve a a unique identifier.
    4. +
    +

    Given these reasons, let’s think of a new prefix for octal… how about
    + `0o’. That took literally less than 10 seconds for me to realize why `0′
    + sucked, and to think of a better one.*

  18. +
+

All-in-all, its still better than C++

+

* although, writing this gave me an even
+better idea, but it would break `0x<value>’ for hex, which is incredibly
+common among many languages:
+`<base-in-decimal>x<value>’
+so octal would be `8x<value>’
+and hex would be `16x<value>’
+It would be incredibly understandable, and, depending on implementation allow
+simple arbitrary-base literals.

+ + +
+ + +
+ + + Posted in Computers + + | + + + Leave a comment + +
+ +
+ +
+ +

FUSE is crazy

+ + + + +
+

Well, I suppose just I’m only talking about Linux FUSE, I haven’t fiddled with FUSE on any other kernel. Anyway, FUSE screws with the idea of the root user:

+
$ ls
+Makefile
+build.log
+...
+$ sudo ls
+ls: cannot open directory .: Permission denied
+$ 
+

For those who don’t get it, the user with user ID `0′, usually with the username `root’ is the supreme administrator account — it is locked out of nothing, the kernel doesn’t even check file permissions when the user is root. The sudo (switch user do) command runs the following command as root. Anyway, even though the kernel doesn’t check file permissions when the user is root, FUSE does, in fact, it forces a umask of 0077, which means that even if the file permissions say “anyone logged in can read this file”, only the owner of the file can actually read it. I’m sure that this can be configured, but that doesn’t mean that it’s not brain damaged by default.

+ + +
+ + +
+ + + Posted in Computers + + | + + + Leave a comment + +
+ +
+ +
+ +

Suicide as an Act of Optimism

+ + + + +
+

If you have been personally touched by suicide, please don’t be offended, I do not entirely agree with the sentiment of this essay. The prompt here was “Write about suicide as an act of desperation.”. We had just listened to a lecture about how most student’s essays end up being the same for the same prompt; any unique or different essay will score better. Additionally, you can’t lead me that much in the prompt. Sure I agree that suicide is a bad thing, but we can’t treat that as a given.
~ Luke Shumaker

+

You are not a beautiful, unique snowflake of specialness. You are made of the same decaying, organic matter as everything else. Accept that you are going to die and let go. It is the only way to find freedom. The only way to live life to the fullest is to accept, and embrace, that life does not matter. Suicide can be an act of optimism.

+

You are going to die. Everyone you have ever loved or cared for is going to die. Everyone you have ever met is going to die. If you’re having trouble wrapping your mind around this, perhaps a religious interpretation may help; God’s ultimate plan for you: to die. Everything you create will fall apart and be forgotten. Nothing you will ever do will matter. Losing all hope; this is nihilism.

+

To commit suicide is therefore to accept our place in the universe, and embrace our fate. To embrace “God’s will” for us, to fulfill our divine mission, surely is a noble act, a positive act of optimism. We don’t have to do anything; we fulfill our mission by being born, living for a while, then dying.

+

When we accept this, accept our mortality, and the futility of life, a massive burden is lifted. When we accept that our mission in life is to die, we no longer must worry about fulfilling it; we will. We no longer have an obligation to be significant, to make a difference. We become free. Losing all hope, and finding freedom; this is existentialism.

+

Plato wrote that Socrates had taught of “reluctant leadership.” That the “enlightened” must return from their “enhanced world,” to lead those who had not attained enlightenment; they were obligated to, though they would not want to. He believed that philosophers should govern society. Perhaps you remember Plato’s allegory of the Cave? In it, the individual who found his way outside of the cave, and saw the true world had to return to the cave to watch over those who did not realize that there was a world beyond the cave. I can’t be the only one who found this horribly depressing. You attain enlightenment, and are rewarded by being forced to return and govern idiots who think you a fool for believing in a world beyond the cave. I don’t want to hack an awesome piece of software, then spend my days running its mailing list.

+

To find freedom, we must give up all that matters to us; for it does not matter. We must come to what are possibly the most painful realizations a person can have. We must give up the life we know, the life that matters. We must accept that we are going to die, and stop caring. Then we can enjoy what we have, the way we want to. The phrase “live and let live” is a good start, but how about “live and let be?” Why must the other person in the phrase live? The phrase embodies allowing others to make their own choices, regardless of what you think, so shouldn’t they get the choice to not live a life? In order for us to find our freedom, and them to find their freedom, we must accept that life does not matter. We don’t all have to kill ourselves, but accept that life does not matter.

+ + +
+ + +
+ + + Posted in Essays, School + + | + + + Leave a comment + +
+ +
+ +
+ +

Who am I?

+ + + + +
+

I am the nerd, the geek, the hacker. In most aspects, I am the stereotypical nerd. I wear glasses, a belt, a button down shirt, and a pocket protector. I play Dungeons and Dragons. I’m smart and have a passion for computers. I keep mostly to myself. However, in contrast to the stereotypical nerd, people like me. While I would expect myself to have some friends, the acceptance I have among my peers is something that continually surprises me. This is not something that has always been true, but has been for most of high school. The most logical reasons for this seems to be the emotional maturity of high-schoolers, combined with the publics’ increasing acceptance of nerds. Still, it feels like I’m doing something wrong as a nerd, and that I’ve betrayed my people.

+

The quality of my relationships with other people seem to vary inversely with quantity. For much of my life I have had a small inner circle of friends that I was very close to. As I branched out, the I have drifted from the friends I was once extremely close to. That is not to say that I am not still close to them, but that we are not as close as we once were. Since I mostly keep to myself, most of my friendships seem to form by others seeking to be friends with me. For this reason it is not infrequent that I am not sure whether I am currently friends with someone who I once was.

+


+

I am mildly insane. Somehow that became my concession. In Poe’s Tell-Tale Heart the character desperately insists that he is sane. I gave up on that plea long ago, now it’s, “don’t worry guys, I’m only slightly insane.” It’s okay though, I’m sane enough to function, but insane enough that it’s interesting. To delve into precisely in which way I am insane is neither something that would fit in this document, nor something I am entirely comfortable sharing.

+


+

I am a hacker. I think. I used to tell people that I was aligned with the hacker ethic, and followed the practices of hackers, but that I felt the term denoted s level of proficiency that I had not reached. I’m not sure I’ve progressed significantly since then, but I now feel comfortable telling people that I am a hacker.

+

I should probably clarify what “hacker” means. A hacker is someone who enjoys hacking, and subscribes to the hacker ethic. Now I must define “hack,” which is an incredibly hard word to define. To quote hacker Phil Agre, “The word hack doesn’t really have 69 different meanings. In fact, hack has only one meaning, an extremely subtle and profound one which defies articulation. Which connotation is implied by a given use of the word depends in similarly profound ways on the context.” I would say that most accurately, but least helpfully, hacking means “creative problem solving.” Hacker esr characterizes hacking as “an appropriate application of ingenuity.” Some hackers do apply this to breaking computer security, many, many more do not. I should also note that when hackers do break security, it is not with malicious intent, to do that would be a violation of the hacker ethic. Hacking normally applies to computer programming, but it can be applied to anything.

+

When I inform some people that hacking does not mean security breaking, as the mainstream media has them think, they act like I am nitpicking at a definition, or being stubborn. Let me assure you that when I hear hacker used in such a way, I am confused for a moment before I realize that many people use the term to mean security breaker.

+


+

I am lazy, but smart. Perhaps I am using a slightly different meaning of “lazy” than is normal, it is not that I avoid work, but tend to do other work instead, or avoid unnecessary work. It is commonly said that laziness is a sign of a good programmer; he will put thought into the design of his code to avoid more work later. When I don’t do a school assignment, it isn’t because I idly wasted my time; I was probably up until the wee hours of the morn working, but on hacking instead of another exercise that I don’t perceive to benefit me (other than the grade). Perhaps rather than lazy, this could be described as having bad priorities. This is probably true, and the reason I haven’t changed is that I still get away with it. I’ve gotten reasonable grades in classes by getting a “0” on homework, then setting the curve on the test. This isn’t the usual situation, though, I can usually get the work completed in a few minutes before class.

+

This brings me to my attitudes towards school. I enjoy learning, but I don’t care about grades. I know that they will help me out later; I know I’ll wish I did care when I’m applying to colleges; but they don’t matter to me. I come to school to learn, not to play some game with grades. Once I learn a topic I am not likely to spend more time on it doing 150 more practice problems, when I could be hacking, teaching myself, reading, researching, or teaching someone else.

+


+

I’m informed that many of these attributes are not atypical of people of my intelligence and passion for learning. However, I do not believe I have met anyone (in my age group, at least) that remotely fit this description.

+ + +
+ + +
+ + + Posted in Essays, School + + | + + + Leave a comment + +
+ +
+ +
+ +

ICB Journals

+ + + + +
+

+A while back I had to do a bunch of journals on the book In Cold Blood.
+I have decided to post several of these journals, they are very incoherent.
+Each journal had a passage associated with it, which have not been reproduced here. +

+

#3, Page 20 – The Last to See Them Alive

+

Perhaps this is a bit of a tangent, but this passage makes me wonder “What makes someone become a life insurance agent?” It must be the most depressing job ever, next to working in a cemetery/crematorium/funeral home. Even if one can claim ignorance of that fact when entering the field, what makes someone want do do that? Are there high-school students who want to sell insurance when they grow up?

+

#7, Page 65 – Persons Unknown

+

I tried to read her story, however, she kept using the phrase “hot as Hades,” and I couldn’t take her seriously (does this make me an awful person?). I find the phrase “hot as Hades” to be humerus; a hot hell is a distinctly Christian concept, the Greek Hades was cold, icy. This certainly fits much of the imagery of death, the “cold grip of death,” bodies get cold when they die, and you get the chills when one is scared (exposed to death). It appears that my mind is wandering, I’m going to attribute this to lack of hacking. Relatedly, I should probably finish the book Hackers, (I have to write a review of it, as I got a free “review copy”) I’ll do that as soon as I finish this book.

+

#15, Page 147-148 – The Corner

+

It’s funny how the events we build up in our heads end up not being fulfilling as we imagine them to be. Whatever this journal was going to be just got derailed by my recollection of a paper I once read. The paper essentially stated that individuals with depression are the sane people, and that we are all the ones with the disorder. It asserted that we have a condition that causes us to over-estimate how future events will affect us, both good events and bad. Individuals with depression actually function properly, but without the unfounded optimism fount in the rest of us, they fail to be motivated or feel good. If this is correct, it means that the world just sucks. It would seem here that Dewey indeed does not have depression, for he is subject to our condition of falsely inflating gratifying events.

+ + +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged + + | + + Leave a comment + +
+ +
+ + + + +
+ + + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/page/2/index.chtml b/web/lukeshu.ath.cx/1/wordpress/page/2/index.chtml new file mode 100644 index 0000000..825c4c7 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/page/2/index.chtml @@ -0,0 +1,280 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/page/2/. It is a snapshot of the page as it appeared on Dec 12, 2011 01:23:09 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + ltsBlog | Page 2 + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ + + +
+ +

What I Know for Sure

+ + + + +
+

I don’t know anything for sure. I’m not entirely convinced that there’s a laptop sitting in front of me now, as I type this. Sure, I see it, I feel it, I hear it, but I cannot be certain that my senses are not fooling me. I cannot be certain that I am not a brain in a jar, a computer simulation, a mad man in a asylum, an unknown species dreaming that I am man. If my perception of the universe is correct, this philosophy is called “fallibilism.”

+

If memory serves, I have subscribed to fallibilism for quite some time, though I didn’t know the term for most of it. For an even larger portion of that time, I held the belief that I could know axiomatic information; I could properly reason through, and assure myself that 2+2=4. Quite surprisingly, I became dissuaded from this not by the book 1984 (which spent a good deal of time on “2+2=5”), but from spending a week high out of my mind on pain pills. I’m not sure if it was the penicillin, the ibuprofen, the Demerol, or the meso-whatever, but during this time, I became convinced of the fallibility of my own mind, to a degree that I hadn’t been able to imagine before. Before, I accepted that my logic was fallible, that I made mistakes, but that I knew when I had some level of competence. I became fairly convinced that one can never rely on one’s self having some level of competence. Formerly I had been able to make the judgment that because I am thinking, I am; I am no longer convinced that I am not making a logical fallacy.

+

The most fundamental thing I believe is: it matters because I want it to matter. This is not something that I can prove, or something that I can reason through or back up. It’s something that I feel in my gut and accept. It’s something we all must do. We all must decide what matters to us and make the most of it. Whether or not reality is subjective, our perception of it is, so it is impossible to identify universal truths. Whether something “truly” matters or not (something we can’t properly judge), I have found that it is nice to choose what you want to matter, and pursue it. Make the most of it. We must, because, honestly, what else are you going to do, try to have an awful time?

+

In our pursuit of these things that only matter to us, we often try to convince others that it does matter. It is my belief that, whether we are aware of it or not, this is an attempt to get closer to other people. We are trying to alter other’s realities (or perceptions of it) to coincide with our own. For many it is an attempt to “aid” people, and show them the “truth”, and make their perception of reality coincide with what the convincer perceives to be the “true reality.” In doing so, we often become enamored of trying to justify why these things matter to us and ought to matter to others.

+

This is sometimes very difficult task, as it is hard to justify that hitting a ball, or whatever, is existentially rewarding. We all work differently, some of us are rewarded by hitting that home run, some aren’t. Since we all have different things that make us tick, each person must figure out “What matters to me?” in order to make the most of themselves. We can’t simply take the values of others, the freedom to decide what matters to us appears to me to be a fundamental freedom; our founding fathers recognized it as the pursuit of happiness. To find that happiness, one must recognize what rewards himself, what matters to himself. If we don’t, we’re just adrift.

+

Perhaps I’m all wrong, what do I know? I don’t know anything.

+ + +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged , + + | + + Leave a comment + +
+ +
+ +
+ +

Lesson 1: Bourne Shell Scripting

+ + + + +
+

Introduction

+

This is the first installment in a series of articles introducing one to programming and hacking in general.

+

One pitfall that comes with teaching users unfamiliar with a shell to program is that they often struggle with concepts such as arguments and Standard In/Out. So, at Nathan’s suggestion have decided to begin with shell scripting.

+

The “shell” is the program that you use to interact with the operating system and launch programs. Many users are familiar with graphical shells, such as explorer.exe in MS Windows NT, X in *NIX, or Quartz on Mac OS X. However, “shell” is usually used to mean a command-line shell. I will try to teach about shells in the Bourne family, but will focus on GNU BASH. Bourne shells are nice in the fact that they are both a well-designed language, and a complete user interface.

+

Acquiring BASH

+

Almost any modern UNIX-like system will include BASH. If you already have a Mac OS X, BSD, or GNU/Linux machine then you probably already have BASH. If you use MS Windows, I would recommend erasing it and installing a Free UNIX-like system. However, since this may not be an option, you can install a program called Cygwin that makes Windows like a *NIX system.

+

If you use Cygwin, be sure to have it install BASH, and `bc’, `sed’, and `grep’, and nano (at least) (I don’t think it installs bc or nano by default).

+
    +
  • To access BASH on Mac OS X, launch the “Terminal” app.
  • +
  • To access BASH on GNU/Linux, launch `xterm’ or another terminal emulator; or hit <ctrl>+<alt>+F1 for a full-screen terminal.
  • +
  • To access BASH on Cygwin there should be a program in the “All Programs” menu from the Start menu.
  • +
+

Your first Shell script

+

Open a BASH session. You should see a “$ ” prompt, possibly with other text such as username and the current directory (folder). Because of this when you see a command like “$ cp foo foo.bak”, the “$ ” only indicates that it is a shell command; you don’t actually type the dollar sign.

+

Use the $ nano script1.sh command to create and edit the file “script1.sh” with the nano text editor.

+

In my examples I use nano, but feel free to use another text editor. I chose GNU nano because it is new-user friendly, comes pre-installed on Mac OS X, most modern *NIXen, and is easily installed with Cygwin. While there are many better new-user friendly text editors, such as Notepad++ and gedit, they are not the same across all systems. Additionally, there are many more sophisticated editors such as Emacs or VI that are awesome, but take some time to learn. I personally use GNU Emacs.

+

For the first line of the file, type:

+
#!/bin/bash
+

This tells the operating system how to run text files as programs. Most programs are binary files that the computer can run directly, and humans can’t really read. However, text scripts that reverse this; we can read them, but the computer needs help. In this case, it checks to see if the file begins with a shebang (hash[#]-bang[!]), and if it does, uses the binary program file on the line after it to read the program. Since we are writing a BASH script, we list “/bin/bash”, which is where BASH is usually installed.

+

Now, if you are even slightly familiar with the command line, you know that a command-line shell primarily takes a simple list of commands, in order. Writing a shell script like this is exactly like typing it directly at the command-line. Well, actually, there are 2 differences:

+
    +
  1. The shell won’t be interactive, it won’t print the prompt before each command.
  2. +
  3. The shell will exit when it’s done, instead of waiting for another command.
  4. +
+

Now, the first program anyone ever learns to write is “hello world”, so:

+
#!/bin/bash
+echo 'Hello, world!'
+
+

Once you have entered this into your editor, save and return to your interactive shell. In nano, do this by entering <ctrl>+o to save, and <ctrl>+x to exit back to the shell. Now, in order to run the script as a program, we must let the computer know that it is a program, tell the computer that it is “executable”. Do this by running the command “$ chmod +x script1.sh” (change mode +executable on the file “script1.sh”).

+

Now, actually running your program. I could simply tell you run “$ ./script1.sh”, but I’ll instead take the time to explain why this is how you run the program, and why you need “./” for it, and you don’t for most programs. There are two ways to tell BASH what program to run:

+
    +
  1. Give just the command/file name, and check the PATH and shell built-ins for the command.
  2. +
  3. Give the path to the specific file.
  4. +
+

The first way is by far the most common, let me explain how it works. Take for example the “echo” command we used. Since it does not contain a “/” it must be a filename, rather than a path. BASH can be first checks it’s list of built-in commands, and uses built-in echo. However, you can configure BASH to disable most built-in commands, in which case it would not find the built-in echo, and begin to look in the PATH. PATH is a special environmental variable that tells shells where to look for programs. To see what your PATH is, run “$ echo $PATH”. For example, my current PATH is:

+
/home/luke/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
+

Now, path is a list of directory/folder locations, separated by colons. The shell will look in the first folder for a file with the name of the command. So, on my system, BASH will look for the file “/home/luke/bin/echo”, which doesn’t exist, so it will go on and look in the next folder, until it eventually finds “/bin/echo”, when it will run that file. If the shell can’t find a command with that name, it will display an error message. The second way, we give the path directly to the command we want to run, the folder it’s in, and the file in it. So, if I didn’t want to re-configure BASH, but wanted to run the non-built-in version of echo, I could type “$ /bin/echo 'Hello, world!'”. BASH knows that this is a complete path because it does contain a “/”. Now, you can either give the an absolute path, or a relative path. An absolute path gives is like saying “at this address”, where a relative path is like saying “1 mile east from here”. Now, on a UNIX-like operating system, the file-system begins with “/” as the root folder, all other folders go inside of it, so if the path begins with a “/”, then it is an absolute path. If the path does not begin with a slash, then the first item listed is directly inside of the current directory. So, since our program is directly in the same directory as we are, so it would just be “script1.sh”, right? Well, then bash doesn’t know that it’s a path, rather than a command, so how do we add a slash, but not have to list exactly where we currently are? The simple answer is that on UNIX-like systems all directories always have at least 2 sub-directories, “.” and “..”, both with special meanings. “.” is the same folder that it’s in, so “/home/luke/././././” is the same as just “/home/luke/”. “..” is the parent directory, the directory that this one is inside of; so “/home/luke/../” is the same as “/home/”. So, when we want to say that something is directly in the current directory, and we need a slash, we can use “./script1.sh”, which is the same location as “script1.sh”, but BASH knows that it’s a path.

+

Variables

+

TODO

+

Standard Out

+

TODO

+

Standard In

+

TODO

+

Flow control

+

TODO

+

Afterward/Other resources

+

As will be norm, if you wish to become proficient in a language, you must do more than just read my Lessons, you must find other resources, but more importantly, do something, find hands-on experience. Just this weekend, I wrote a system monitor (a program to display things like processor use, memory consumption, battery level, etc.) in BASH, and even though I already considered myself proficient with both my operating system, and BASH, in doing so learned several things about both (namely, BASH traps).

+

Anyway, about other resources: I often have trouble recommending resources to people, since I feel that there are so few good resources available, and that 90% of the resources available are crap. However, I feel confident recommending the book Advanced Bash-Scripting Guide, available online at The LDP in many formats (to view in your web browser, go for the HTML version). One page that is especially useful, even to experienced coders is its Reference Cards page. While the book is a great resource, there are several minor issues with it that I need to address before I feel comfortable recommending it:

+
    +
  • It frequently says “Linux” when it means “GNU/Linux”, which is especially unfortunate because there are times when it really does mean just “Linux”.
  • +
  • It frequently uses the word “hack” when it means “crack”.
  • +
  • Don’t believe it 100% when it says something about defaults, or that some operating system does something. For example, it claims several times that all GNU/Linux (well, it says just “Linux”) systems that BASH is the default shell. This is generally true, many do, but several do not, namely Ubuntu, for which the default is DASH.
  • +
+

Less specifically, O’Reilly Media is well-known among hackers for providing quality resources, often written by hackers themselves. Especially the books with an animal on the front, those are good stuff.

+ + +
+ + +
+ + + Posted in Computers, Programming Lessons + + | + + + + Tagged + + | + + 2 Comments + +
+ +
+ + + + +
+ + + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/page/2/index.html b/web/lukeshu.ath.cx/1/wordpress/page/2/index.html new file mode 100644 index 0000000..2f7a969 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/page/2/index.html @@ -0,0 +1,277 @@ + + + + + ltsBlog | Page 2 + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ + + +
+ +

What I Know for Sure

+ + + + +
+

I don’t know anything for sure. I’m not entirely convinced that there’s a laptop sitting in front of me now, as I type this. Sure, I see it, I feel it, I hear it, but I cannot be certain that my senses are not fooling me. I cannot be certain that I am not a brain in a jar, a computer simulation, a mad man in a asylum, an unknown species dreaming that I am man. If my perception of the universe is correct, this philosophy is called “fallibilism.”

+

If memory serves, I have subscribed to fallibilism for quite some time, though I didn’t know the term for most of it. For an even larger portion of that time, I held the belief that I could know axiomatic information; I could properly reason through, and assure myself that 2+2=4. Quite surprisingly, I became dissuaded from this not by the book 1984 (which spent a good deal of time on “2+2=5”), but from spending a week high out of my mind on pain pills. I’m not sure if it was the penicillin, the ibuprofen, the Demerol, or the meso-whatever, but during this time, I became convinced of the fallibility of my own mind, to a degree that I hadn’t been able to imagine before. Before, I accepted that my logic was fallible, that I made mistakes, but that I knew when I had some level of competence. I became fairly convinced that one can never rely on one’s self having some level of competence. Formerly I had been able to make the judgment that because I am thinking, I am; I am no longer convinced that I am not making a logical fallacy.

+

The most fundamental thing I believe is: it matters because I want it to matter. This is not something that I can prove, or something that I can reason through or back up. It’s something that I feel in my gut and accept. It’s something we all must do. We all must decide what matters to us and make the most of it. Whether or not reality is subjective, our perception of it is, so it is impossible to identify universal truths. Whether something “truly” matters or not (something we can’t properly judge), I have found that it is nice to choose what you want to matter, and pursue it. Make the most of it. We must, because, honestly, what else are you going to do, try to have an awful time?

+

In our pursuit of these things that only matter to us, we often try to convince others that it does matter. It is my belief that, whether we are aware of it or not, this is an attempt to get closer to other people. We are trying to alter other’s realities (or perceptions of it) to coincide with our own. For many it is an attempt to “aid” people, and show them the “truth”, and make their perception of reality coincide with what the convincer perceives to be the “true reality.” In doing so, we often become enamored of trying to justify why these things matter to us and ought to matter to others.

+

This is sometimes very difficult task, as it is hard to justify that hitting a ball, or whatever, is existentially rewarding. We all work differently, some of us are rewarded by hitting that home run, some aren’t. Since we all have different things that make us tick, each person must figure out “What matters to me?” in order to make the most of themselves. We can’t simply take the values of others, the freedom to decide what matters to us appears to me to be a fundamental freedom; our founding fathers recognized it as the pursuit of happiness. To find that happiness, one must recognize what rewards himself, what matters to himself. If we don’t, we’re just adrift.

+

Perhaps I’m all wrong, what do I know? I don’t know anything.

+ + +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged , + + | + + Leave a comment + +
+ +
+ +
+ +

Lesson 1: Bourne Shell Scripting

+ + + + +
+

Introduction

+

This is the first installment in a series of articles introducing one to programming and hacking in general.

+

One pitfall that comes with teaching users unfamiliar with a shell to program is that they often struggle with concepts such as arguments and Standard In/Out. So, at Nathan’s suggestion have decided to begin with shell scripting.

+

The “shell” is the program that you use to interact with the operating system and launch programs. Many users are familiar with graphical shells, such as explorer.exe in MS Windows NT, X in *NIX, or Quartz on Mac OS X. However, “shell” is usually used to mean a command-line shell. I will try to teach about shells in the Bourne family, but will focus on GNU BASH. Bourne shells are nice in the fact that they are both a well-designed language, and a complete user interface.

+

Acquiring BASH

+

Almost any modern UNIX-like system will include BASH. If you already have a Mac OS X, BSD, or GNU/Linux machine then you probably already have BASH. If you use MS Windows, I would recommend erasing it and installing a Free UNIX-like system. However, since this may not be an option, you can install a program called Cygwin that makes Windows like a *NIX system.

+

If you use Cygwin, be sure to have it install BASH, and `bc’, `sed’, and `grep’, and nano (at least) (I don’t think it installs bc or nano by default).

+
    +
  • To access BASH on Mac OS X, launch the “Terminal” app.
  • +
  • To access BASH on GNU/Linux, launch `xterm’ or another terminal emulator; or hit <ctrl>+<alt>+F1 for a full-screen terminal.
  • +
  • To access BASH on Cygwin there should be a program in the “All Programs” menu from the Start menu.
  • +
+

Your first Shell script

+

Open a BASH session. You should see a “$ ” prompt, possibly with other text such as username and the current directory (folder). Because of this when you see a command like “$ cp foo foo.bak”, the “$ ” only indicates that it is a shell command; you don’t actually type the dollar sign.

+

Use the $ nano script1.sh command to create and edit the file “script1.sh” with the nano text editor.

+

In my examples I use nano, but feel free to use another text editor. I chose GNU nano because it is new-user friendly, comes pre-installed on Mac OS X, most modern *NIXen, and is easily installed with Cygwin. While there are many better new-user friendly text editors, such as Notepad++ and gedit, they are not the same across all systems. Additionally, there are many more sophisticated editors such as Emacs or VI that are awesome, but take some time to learn. I personally use GNU Emacs.

+

For the first line of the file, type:

+
#!/bin/bash
+

This tells the operating system how to run text files as programs. Most programs are binary files that the computer can run directly, and humans can’t really read. However, text scripts that reverse this; we can read them, but the computer needs help. In this case, it checks to see if the file begins with a shebang (hash[#]-bang[!]), and if it does, uses the binary program file on the line after it to read the program. Since we are writing a BASH script, we list “/bin/bash”, which is where BASH is usually installed.

+

Now, if you are even slightly familiar with the command line, you know that a command-line shell primarily takes a simple list of commands, in order. Writing a shell script like this is exactly like typing it directly at the command-line. Well, actually, there are 2 differences:

+
    +
  1. The shell won’t be interactive, it won’t print the prompt before each command.
  2. +
  3. The shell will exit when it’s done, instead of waiting for another command.
  4. +
+

Now, the first program anyone ever learns to write is “hello world”, so:

+
#!/bin/bash
+echo 'Hello, world!'
+
+

Once you have entered this into your editor, save and return to your interactive shell. In nano, do this by entering <ctrl>+o to save, and <ctrl>+x to exit back to the shell. Now, in order to run the script as a program, we must let the computer know that it is a program, tell the computer that it is “executable”. Do this by running the command “$ chmod +x script1.sh” (change mode +executable on the file “script1.sh”).

+

Now, actually running your program. I could simply tell you run “$ ./script1.sh”, but I’ll instead take the time to explain why this is how you run the program, and why you need “./” for it, and you don’t for most programs. There are two ways to tell BASH what program to run:

+
    +
  1. Give just the command/file name, and check the PATH and shell built-ins for the command.
  2. +
  3. Give the path to the specific file.
  4. +
+

The first way is by far the most common, let me explain how it works. Take for example the “echo” command we used. Since it does not contain a “/” it must be a filename, rather than a path. BASH can be first checks it’s list of built-in commands, and uses built-in echo. However, you can configure BASH to disable most built-in commands, in which case it would not find the built-in echo, and begin to look in the PATH. PATH is a special environmental variable that tells shells where to look for programs. To see what your PATH is, run “$ echo $PATH”. For example, my current PATH is:

+
/home/luke/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
+

Now, path is a list of directory/folder locations, separated by colons. The shell will look in the first folder for a file with the name of the command. So, on my system, BASH will look for the file “/home/luke/bin/echo”, which doesn’t exist, so it will go on and look in the next folder, until it eventually finds “/bin/echo”, when it will run that file. If the shell can’t find a command with that name, it will display an error message. The second way, we give the path directly to the command we want to run, the folder it’s in, and the file in it. So, if I didn’t want to re-configure BASH, but wanted to run the non-built-in version of echo, I could type “$ /bin/echo 'Hello, world!'”. BASH knows that this is a complete path because it does contain a “/”. Now, you can either give the an absolute path, or a relative path. An absolute path gives is like saying “at this address”, where a relative path is like saying “1 mile east from here”. Now, on a UNIX-like operating system, the file-system begins with “/” as the root folder, all other folders go inside of it, so if the path begins with a “/”, then it is an absolute path. If the path does not begin with a slash, then the first item listed is directly inside of the current directory. So, since our program is directly in the same directory as we are, so it would just be “script1.sh”, right? Well, then bash doesn’t know that it’s a path, rather than a command, so how do we add a slash, but not have to list exactly where we currently are? The simple answer is that on UNIX-like systems all directories always have at least 2 sub-directories, “.” and “..”, both with special meanings. “.” is the same folder that it’s in, so “/home/luke/././././” is the same as just “/home/luke/”. “..” is the parent directory, the directory that this one is inside of; so “/home/luke/../” is the same as “/home/”. So, when we want to say that something is directly in the current directory, and we need a slash, we can use “./script1.sh”, which is the same location as “script1.sh”, but BASH knows that it’s a path.

+

Variables

+

TODO

+

Standard Out

+

TODO

+

Standard In

+

TODO

+

Flow control

+

TODO

+

Afterward/Other resources

+

As will be norm, if you wish to become proficient in a language, you must do more than just read my Lessons, you must find other resources, but more importantly, do something, find hands-on experience. Just this weekend, I wrote a system monitor (a program to display things like processor use, memory consumption, battery level, etc.) in BASH, and even though I already considered myself proficient with both my operating system, and BASH, in doing so learned several things about both (namely, BASH traps).

+

Anyway, about other resources: I often have trouble recommending resources to people, since I feel that there are so few good resources available, and that 90% of the resources available are crap. However, I feel confident recommending the book Advanced Bash-Scripting Guide, available online at The LDP in many formats (to view in your web browser, go for the HTML version). One page that is especially useful, even to experienced coders is its Reference Cards page. While the book is a great resource, there are several minor issues with it that I need to address before I feel comfortable recommending it:

+
    +
  • It frequently says “Linux” when it means “GNU/Linux”, which is especially unfortunate because there are times when it really does mean just “Linux”.
  • +
  • It frequently uses the word “hack” when it means “crack”.
  • +
  • Don’t believe it 100% when it says something about defaults, or that some operating system does something. For example, it claims several times that all GNU/Linux (well, it says just “Linux”) systems that BASH is the default shell. This is generally true, many do, but several do not, namely Ubuntu, for which the default is DASH.
  • +
+

Less specifically, O’Reilly Media is well-known among hackers for providing quality resources, often written by hackers themselves. Especially the books with an animal on the front, those are good stuff.

+ + +
+ + +
+ + + Posted in Computers, Programming Lessons + + | + + + + Tagged + + | + + 2 Comments + +
+ +
+ + + + +
+ + + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/tag/fallibilism/index.chtml b/web/lukeshu.ath.cx/1/wordpress/tag/fallibilism/index.chtml new file mode 100644 index 0000000..1700d28 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/tag/fallibilism/index.chtml @@ -0,0 +1,179 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/tag/fallibilism/. It is a snapshot of the page as it appeared on Dec 8, 2011 19:51:42 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + fallibilism | ltsBlog + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ +

Tag Archives: fallibilism

+ + +
+ +

What I Know for Sure

+ + + + +
+

I don’t know anything for sure. For all I know, I am a brain in a jar. Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged , + + | + + Leave a comment + +
+ +
+ + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/tag/fallibilism/index.html b/web/lukeshu.ath.cx/1/wordpress/tag/fallibilism/index.html new file mode 100644 index 0000000..8ad0573 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/tag/fallibilism/index.html @@ -0,0 +1,176 @@ + + + + + fallibilism | ltsBlog + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ +

Tag Archives: fallibilism

+ + +
+ +

What I Know for Sure

+ + + + +
+

I don’t know anything for sure. For all I know, I am a brain in a jar. Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged , + + | + + Leave a comment + +
+ +
+ + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/tag/progtut/index.chtml b/web/lukeshu.ath.cx/1/wordpress/tag/progtut/index.chtml new file mode 100644 index 0000000..480321a --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/tag/progtut/index.chtml @@ -0,0 +1,179 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/tag/progtut/. It is a snapshot of the page as it appeared on Dec 6, 2011 12:04:16 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + progtut | ltsBlog + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ +

Tag Archives: progtut

+ + +
+ +

Lesson 1: Bourne Shell Scripting

+ + + + +
+

This is the first installment in a series of articles introducing one to programming and hacking in general. We will cover setting up a *NIX environment, basic notation, and Bourne shell scripting. Continue reading

+ +
+ + +
+ + + Posted in Computers, Programming Lessons + + | + + + + Tagged + + | + + 2 Comments + +
+ +
+ + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/tag/progtut/index.html b/web/lukeshu.ath.cx/1/wordpress/tag/progtut/index.html new file mode 100644 index 0000000..69fa736 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/tag/progtut/index.html @@ -0,0 +1,176 @@ + + + + + progtut | ltsBlog + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ +

Tag Archives: progtut

+ + +
+ +

Lesson 1: Bourne Shell Scripting

+ + + + +
+

This is the first installment in a series of articles introducing one to programming and hacking in general. We will cover setting up a *NIX environment, basic notation, and Bourne shell scripting. Continue reading

+ +
+ + +
+ + + Posted in Computers, Programming Lessons + + | + + + + Tagged + + | + + 2 Comments + +
+ +
+ + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/tag/ramble/index.chtml b/web/lukeshu.ath.cx/1/wordpress/tag/ramble/index.chtml new file mode 100644 index 0000000..3b75058 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/tag/ramble/index.chtml @@ -0,0 +1,179 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/tag/ramble/. It is a snapshot of the page as it appeared on Dec 8, 2011 19:54:08 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + ramble | ltsBlog + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ +

Tag Archives: ramble

+ + +
+ +

ICB Journals

+ + + + +
+

A while back I had to do a bunch of journals on the book In Cold Blood. I have decided to post several of these journals, they are very incoherent. Each journal had a passage associated with it, which have … Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged + + | + + Leave a comment + +
+ +
+ + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/tag/ramble/index.html b/web/lukeshu.ath.cx/1/wordpress/tag/ramble/index.html new file mode 100644 index 0000000..1a3a1c8 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/tag/ramble/index.html @@ -0,0 +1,176 @@ + + + + + ramble | ltsBlog + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ +

Tag Archives: ramble

+ + +
+ +

ICB Journals

+ + + + +
+

A while back I had to do a bunch of journals on the book In Cold Blood. I have decided to post several of these journals, they are very incoherent. Each journal had a passage associated with it, which have … Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged + + | + + Leave a comment + +
+ +
+ + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/tag/school/index.chtml b/web/lukeshu.ath.cx/1/wordpress/tag/school/index.chtml new file mode 100644 index 0000000..72671a7 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/tag/school/index.chtml @@ -0,0 +1,179 @@ + +
This is Google's cache of http://lukeshu.ath.cx/1/wordpress/tag/school/. It is a snapshot of the page as it appeared on Dec 8, 2011 19:53:50 GMT. The current page could have changed in the meantime. Learn more

+
 
+ + + + + school | ltsBlog + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ +

Tag Archives: school

+ + +
+ +

What I Know for Sure

+ + + + +
+

I don’t know anything for sure. For all I know, I am a brain in a jar. Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged , + + | + + Leave a comment + +
+ +
+ + +
+ + + + + + diff --git a/web/lukeshu.ath.cx/1/wordpress/tag/school/index.html b/web/lukeshu.ath.cx/1/wordpress/tag/school/index.html new file mode 100644 index 0000000..90c8745 --- /dev/null +++ b/web/lukeshu.ath.cx/1/wordpress/tag/school/index.html @@ -0,0 +1,176 @@ + + + + + school | ltsBlog + + + + + + + + + + + + + + + + + + +

ltsBlog

+ + + + + + + + + + + + +
+ +

Tag Archives: school

+ + +
+ +

What I Know for Sure

+ + + + +
+

I don’t know anything for sure. For all I know, I am a brain in a jar. Continue reading

+ +
+ + +
+ + + Posted in Essays, School + + | + + + + Tagged , + + | + + Leave a comment + +
+ +
+ + +
+ + + + + + -- cgit v1.2.3