Profile

Cover photo
Benjamin Russell
Attended Yale University, New Haven, CT
Lives in Tokyo, Japan
535 followers|207,381 views
AboutPostsPhotosVideos

Stream

Benjamin Russell

Shared publicly  - 
 
「Charlotte(シャーロット)」というアニメの第一話を視たが、腹が立つ展開だった。

要約すると、5秒間だけ、他人に乗り移る超能力を持った乙坂有宇さんという青年が、その能力を利用して有名高校に入り、更にそこでみんなのエリート生徒でマドンナ的役だった白柳弓さんという少女を、交通事故から助けるフリをして付き合い始めたのだが、彼の超能力に気付いた別の超能力少年少女の為の学校の生徒会長の友利奈緒さんに強制転入をさせられた上に「他言無用で学校の外に出る事を禁ずる」と言われ、急な転校の理由を説明出来ず、会いに行けなくなった為に白柳さんにフラれる羽目になってしまった。

何故友利さんは白柳さんに乙坂さんが転入させられた理由を説明出来なかったのだろうか?あれでは白柳さんから見て、会いに来れない乙坂さんがあまり白柳さんの事を好きではないようにしか見えない。エリートのお嬢様という設定なので、当然、相手の立場が分からず、彼を振る事になる。相手の立場が分からないのがお嬢様なのだから。

それより寧ろ、あの馬鹿生徒会長に腹が立つ。意地が悪いとしか言えない。この展開ではもう白柳弓さんの出番は今後ないだろうし、きっと代わりに非エリートのどこかの半端超能力者のアホが現れるだろう。そんなのはいらない。もうこのアニメを視ないかもしれない。消えろ、馬鹿製作者。っていうか、首でも吊って死ね。
 ·  Translate
大切な何かを失うとしても、少年は運命に立ち向かう。麻枝 准は問う、眩しい青春の行方を。TVアニメ「Charlotte(シャーロット)」2015年7月よりTOKYO MX他にて放送開始
1
Add a comment...

Benjamin Russell

Shared publicly  - 
 
Choosing a suitable major in college is so very difficult for a haiku poet-aspirant with some programming ability who wants to live comfortably.

Choosing English typically does not lead to work with sufficient income.

Choosing computer science typically does not lead to work which is interesting for a poet.

At my college, there was no option to choose a minor.  I tried to double-major in computer science and Japanese language & literature, but chose to write a translation program for my senior essay in the latter without sufficient natural linguistics background, and would up having to focus on only the former as a result.

As a result, I wound up becoming a computer science major who could write haiku poetry well, but who was weak in programming, and who didn't have much background in linear algebra.

Eventually, I wound up becoming a patent translator.
1
Add a comment...

Benjamin Russell

Shared publicly  - 
 
From what I saw when I was a student in college, mathematicians and programmers tend to differ in one key aspect:  degree of focus on pedantry.

A mathematician lives by writing proofs for theorems.  A proof must be correct in every respect; otherwise, it is incorrect and is a failure.  Therefore, mathematicians, by nature, tend to be pedants.

A programmer lives by writing and debugging computer programs.  Most programs for most programming languages are buggy at first, and are gradually refined until they work.  A programmer who does not write a program until proving its correctness, for most programming languages (with the exception of functional programming languages such as Haskell), usually does not write much code.  Therefore, programmers, by nature, tend not to be pedants.

I happen to be a consummate pedant.  I become extremely angry every time that I see anyone using a split infinitive, and regularly go to great lengths to avoid this sloppy construction.

For this reason, even though I am a haiku poet-aspirant and neither a programmer nor a mathematician, I tend to get along better, overall, with most mathematicians than with most programmers, unless the programmers use a functional programming language written in a functional style, simply because most non-functional programmers tend not to share my focus on pedantry.
1
Add a comment...

Benjamin Russell

Shared publicly  - 
 
Andy Wingo has written a somewhat opinionated guide to Scheme implementations.

It is somewhat unfortunate that the only implementations of Scheme that come with a standard IDE are Racket and Chez Scheme.  I had a number of arguments with one prominent member of the Racket community, who once told me, "There cannot be two types of members in this community:  those who contribute code, and those who don't."  I am a haiku poet-aspirant who occasionally writes code for fun, and who works as a professional translator; as such, I simply don't have enough time or energy to contribute code; I prefer submitting many bug reports, instead.

Also, I don't really like the style of coding for many of the libraries in the Racket community.  A few years ago, I read a blog entry by someone who commented that many Racket libraries tend to use code that is rather verbose and not particularly elegant, and one of them even went so far as to claim that Racket code was actually more bloated than Common Lisp code.

While I'm not certain whether I agree with that last assessment, personally, I prefer such implementations as Gauche Scheme and MIT Scheme, which more closely following the minimalist philosophy of R5RS Scheme, than Racket, which tends to follow the contrasting non-minimalist philosophy of R6RS Scheme.

Chez Scheme has a fast implementation, good documentation, and a friendly architect, but lacks mailing lists.  Since my main goal in studying a programming language is to discuss it, although I enjoy programming in Chez Scheme, I have great difficulty in discussing it in a forum that is restricted to that implementation.

The main problem with Scheme has always been that there has never been a single main reference implementation, unlike, say, Haskell.  Haskell has the GHC implementation, which is a reference implementation; unfortunately, Scheme does not have any corresponding reference implementation.

Although I have had a number of arguments in the past with some members in the Haskell community, nobody there has ever told me anything equivalent to "There cannot be two types of members in this community:  those who contribute code, and those who don't."  The worst that has happened is that I once got flamed on Haskell-Cafe by a French mathematics professor for trying to discuss a topic in mathematics without really knowing what I was talking about; because of his rather condescending reaction at the time, I later became extremely careful in discussing anything relating to mathematics with any Haskellite.  However, his reaction does make sense for an elitist pedantic researcher in mathematics, and as a pedant myself, I can understand and somewhat appreciate how pedantic mathematicians think.
Hark, the beloved programing language! But hark, also: for Scheme is a language of many implementations. If Scheme were a countryside, it would have its cosmopolitan cities, its hipster dives, its blue-collar factory towns, quaint villages, western movie sets full of façades and no buildings, ...
1
Add a comment...

Benjamin Russell

Shared publicly  - 
 
After being exposed to Scheme, I find it difficult to appreciate the combination of parentheses and brackets in Clojure.  Why didn't Rich Hickey just stick to parentheses?

When reading Scheme code, after a while, the parentheses start to resemble bubbles of code, with values floating across closures.

However, when brackets get mixed in, those brackets resemble rocks among those bubbles.

Why did Hickey choose to mix parentheses and brackets?  While those brackets may look familiar to Java programmers, they look ugly to a former Scheme programmer.  I don't need rocks among my code bubbles.
1
Add a comment...

Benjamin Russell

Shared publicly  - 
 
After some research, I discovered that the difference in typing, which is static for Haskell, and dynamic for Clojure, may be one reason that some programmers become angry with Clojure, but not with Haskell.

According to one post in the referenced thread,

> [–]tempeh11 2 points 7 months ago [this line translated from Japanese]
> This matches my experience precisely.
> I learned Java, C, Python, C++. Then I learned Clojure, and it was fun
> and beautiful and enlightening, but I could not tolerate dynamic
> typing after a while. Too many useless bugs.
> Then I learned Haskell, and it took me around two days to realize I
> was done with Clojure. It made me remember why I used to love
> programming. It lets you build elegant things the right way.

The key phrase above is "the right way."  This is actually also a nickname for the MIT/Stanford approach to programming ("The Right way"), which emphasizes consistency of expression over simplicity of implementation.  It is distinguished from the New Jersey approach ("Worse-is-Better"), which emphasizes the reverse, which seems to characterize Clojure.

What I still don't understand is the reason that whereas studying Clojure makes me angry, studying Ruby, which is also dynamically typed, doesn't.  Both Clojure and Ruby are also strongly typed, so strong typing vs. weak typing isn't the issue here, either....

I still need to research this issue to discover what aspect(s) of Ruby vs. Clojure cause study of Clojure to make me angry, but not study of Ruby.  This aspect is very strange.

I suspect that the difference in consistency of expression may be the difference.  Although both Clojure and Ruby are both dynamically typed and strongly typed languages, Clojure tends to be designed so as to favor simplicity of implementation on a case-by-case basis over consistency of expression, whereas Ruby is actually consistent in expression.  Ruby has a pedantic flavor, which Clojure doesn't.

Now I just need to demonstrate why Ruby is pedantic, but Clojure isn't.
1
Benjamin Russell's profile photo
 
I think that I have figured out the reason that I like all of Haskell, Ruby, and Scheme, but not Clojure, and that the reason is surprisingly simple.

It concerns consistency of expression.

In R5RS Scheme, parentheses are always used to enclose expressions, whereas brackets are not used.  In Clojure, both parentheses and brackets are used, and this combination seems impure and ugly after exposure to R5RS Scheme.

In Haskell, parentheses are rarely used, and therefore, the syntax appears clean and elegant.

In Ruby, again, parentheses are rarely used, and the syntax has the flavor of English poetry; therefore, the syntax appears clean and elegant.

Therefore, the reason that I don't like Clojure, but do like Ruby, is actually related to Scheme:  Scheme does not mix parentheses and brackets, whereas Clojure does, and the aspect of Clojure that parentheses are not consistently used causes me to treat Clojure as having inconsistency of expression.

That is the simple reason that I don't like Clojure.
Add a comment...
Have him in circles
535 people
Achmad Fahrurizki's profile photo
アブダビサルマン's profile photo
Max Steel's profile photo
Kris Nuttycombe's profile photo
Dylan Knevitt's profile photo
Alex Polyakh's profile photo
Gabriela Martinez's profile photo
Anneshia Miller Grant's profile photo
Mike South's profile photo

Benjamin Russell

Shared publicly  - 
 
Occasionally, I wonder what would have happened had I majored in English language & literature instead of computer science.  My college did not have the option to choose a minor, and although I attempted to choose a double major, I wound up choosing a topic for my senior essay for one of my majors (Japanese language & literature) that required more background than I had possessed in natural linguistics.

Unfortunately, I doubt that English language & literature would have been a feasible option.  My ultimate goal was (and still is) to live in Akihabara; however, that goal required (and still requires) performing work of a technical nature (in the absence of advanced social skills or advanced programming skills, since I grew up as an only-child, my parents were separated when I was in elementary school, and I was raised by an over-protective Japanese mother who essentially locked me at home and forced me to study alone during my high school years in Japan (since she could not afford to send me to a private school, and did not wish to risk my possibly experiencing ijime at a public high school) without allowing me to create any friends until entering college, and, since she was a Luddite, she prohibited my programming, after a program that I tried to sell in 1983 didn't sell, until I entered college in fall of 1989) in order to earn sufficient income.

Most Japanese employers require a copy of a diploma listing the name of the college and the major, but not a transcript.  Since, unlike employers in the US, they tend to value educational background over job experience or work skills (which they usually assume will be taught at work), the choice of the college and major are critical, although grades in college above passing are not.

Given this situation and my skill set and another opportunity, I would probably wind up choosing either the same major or a related major in computer science & the arts (which was unavailable at that time).  The only other related option available then was a related major in computer science & mathematics, which I probably would have avoided given my initial mathematics phobia.

Therefore, my solution was probably actually optimal and, in a sense, inevitable.
1
Add a comment...

Benjamin Russell

Shared publicly  - 
 
Apparently, being a pedant is good for being a patent translator, but bad for being a programmer.

A few years ago, I attended an interview for a programming position by an American in Tokyo.  I wasn't hired, and the reason, according to the president, who interviewed me, was that I was "pedantic."  He specifically said that he wasn't looking for "someone who was pedantic," but for a "programmer."

On the other hand, while working as a patent translator at my current position, initially I received repeated complaints for filing corrections to translations after submission on the grounds that there were "too many corrections."  My supervisor expected no more than 1 correction every several weeks for batches of 10 to 15 translated documents each; 1 correction per week per batch of documents was unacceptable.

Therefore, pedants make relatively good patent translators, but apparently not good programmers.
1
Add a comment...

Benjamin Russell

Shared publicly  - 
 
Mathematicians and samurai share one attribute:  Neither tends to tolerate mistakes.

In mathematics, a proof is either correct or incorrect; there is no such thing as a proof that is both correct and incorrect.

Similarly, in bushido, a battle between two samurai using katana typically ends in either victory or defeat, because to flee usually incurs dishonor, which is typically regarded as worse than death.  One either cuts down the opponent, or is cut down by the opponent.  Although it is possible for two samurai to cut each other down simultaneously, in this case, both essentially lose.

A mathematician is a pedantic scholar who expresses thoughts in the language of mathematics and has no tolerance for mistakes.

A samurai is a perfectionist warrior who expresses emotions in the swordplay of bushido and has no tolerance for mistakes.
1
Add a comment...

Benjamin Russell

Shared publicly  - 
 
Apparently, GNU Guile, an implementation of Scheme, has been declared as the official extension of the GNU Project.

According to the related Wikipedia entry, "Guile stands for the GNU Ubiquitous Intelligent Language for Extensions."

In addition, "There have been a number of past unfinished attempts at replacing or supplementing Emacs's Emacs Lisp (Elisp) extension language with Guile, parallel to the efforts of supporting other languages in Guile."

One of my pet peeves with GNU Emacs has been its usage of Emacs Lisp instead of Scheme.  However, apparently, that may change with the gradual adoption of GNU Guile.

I may add GNU Guile to Haskell and Ruby as a preferential Scheme implementation.  Previously, I had preferred Shiro Kawai's Gauche Scheme; however, that implementation is not used as widely as Haskell or Ruby.  However, GNU Guile may have a chance.  I already know that I do not like Racket because it is not true Scheme, and it also leans more toward R6RS Scheme, which I oppose, and away from R5RS Scheme.
1
Add a comment...

Benjamin Russell

Shared publicly  - 
 
One key difference between R5RS Scheme and Clojure in expression is related to whether only parentheses are used to enclose expressions, or a combination of parentheses and brackets are used.

In Scheme, only parentheses are used.  Brackets are not used.

In Clojure, both parentheses and brackets are used, and they are used for enclosing expressions in different locations.

This mixture of parentheses and brackets in Clojure registers as a kind of "noise" to me.

This is the reason that Scheme code looks beautiful to me, but not Clojure code, even though Clojure code actually includes fewer parentheses.  Scheme code does not mix parentheses and brackets.

Having to distinguish between parentheses and brackets in Clojure after being used to using only parentheses in Scheme while simultaneously trying to do exercises in SICP in Scheme gives me a headache.  Clojure and Scheme just do not mix.

Scheme and Haskell and Ruby can mix, however, because they are all quite different from one another.

However, Clojure and Scheme are similar enough in structure than having to use brackets for the former in places that I use parentheses for the latter just gives me a headache when trying to use both at the same time for different applications.
1
Add a comment...

Benjamin Russell

Shared publicly  - 
 
Here is a feature comparison between Haskell and Ruby.  This comparison includes a number of somewhat funny categories, such as "Makes you angry" (listed as not true for either language).

One interesting aspect of a related comparison on this site, between Haskell and Clojure (see http://vschart.com/compare/haskell/vs/clojure), is that the category "Makes you angry" there is listed as false for Haskell, but true for Clojure.

I actually agree with that assessment; however, I'm not certain of the exact reason.  I think that it is related to a conflict in design philosophy between Haskell's basis in the MIT/Stanford ("The Right Thing") approach vs. Clojure's basis in the New Jersey ("Worse-is-Better") one (since I subscribe to the former); however, there could be other reasons for different programmers.

For some reason, attempting to study Clojure usually causes me to feel like taking a book on Clojure and throwing it at Rich Hickey while yelling at him to:  go back to English grammar school, learn to write pedantically correct English, subscribe to the MIT/Stanford approach, and re-read SICP.  Yes, it does make me angry.
Side-by-side comparison of Haskell vs. Ruby – Spot the differences due to the helpful visualizations at a glance – Category: Programming Language – Columns: 2 (max. 3) – Rows: 120
1
Add a comment...
People
Have him in circles
535 people
Achmad Fahrurizki's profile photo
アブダビサルマン's profile photo
Max Steel's profile photo
Kris Nuttycombe's profile photo
Dylan Knevitt's profile photo
Alex Polyakh's profile photo
Gabriela Martinez's profile photo
Anneshia Miller Grant's profile photo
Mike South's profile photo
Work
Occupation
Patent Abstract Translator
Skills
bilingual (Japanese/English), majored in computer science at Yale University, can compose _haiku_, can write programs in Scheme and C
Employment
  • Patent Abstract Translator, present
Places
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Currently
Tokyo, Japan
Previously
Oceanside, CA - Honolulu, HI - Kuki-shi, Saitama Prefecture, Japan - Tokyo, Japan - New Haven, CT - New York, NY
Story
Tagline
Scholar-aspirant who majored in computer "science." Occasionally discusses algorithms; _haiku_; Scheme, Haskell, and Smalltalk (in the context of programming language theory); astronomy; and some narratology.
Introduction
J-E patent translator in Tokyo. User of Haskell, Scheme, Squeak. Mac Pro user. Amateur programming language/philosophy of mind theorist.  Occasional animals rights activist. 東京在住の特許の翻訳家。Haskell、Scheme、Squeak言語の研究家。Mac Proのユーザー。アマチュアのプログラミング言語/心の哲学の理論家。時折、動物愛護運動家。
Bragging rights
Original author of "Gödel's Second Incompleteness Theorem Explained in Words of One Syllable" (see http://www2.kenyon.edu/Depts/Math/Milnikel/boolos-godel.pdf), submitted as a term paper for a class by then-visiting professor George Boolos at Yale University in fall 1993, later published as the last chapter in _Logic, Logic, and Logic_ (Boolos, George. Cambridge, MA: Harvard University Press, 1999) under George Boolos' name .
Education
  • Yale University, New Haven, CT
    1994
Basic Information
Gender
Male
Other names
Ben