My Best Teaching Is One-on-One

一対一が僕のベスト

Of course, I team teach and do special lessons, etc.

当然、先生方と共同レッスンも、特別レッスンの指導もします。

But my best work in the classroom is after the lesson is over --
going one-on-one,
helping individual students with their assignments.

しかし、僕の一番意味あると思っている仕事は、講義が終わってから、
一対一と
個人的にその課題の勉強を応援することです。

It's kind of like with computer programs, walking the client through hands-on.
The job isn't really done until the customer is using the program.

まあ、コンピュータプログラムにすると、得意先の方に出来上がった製品を体験させるようなことと思います。
役に立たない製品はまだ製品になっていないと同様です。

Sunday, August 5, 2012

Too late to complain: The performance of Intel's Atom

インテル社のアトムの性能について文句言うのは、もう遅い。

[update 2015.07.22: I think I'll finish translating this. もう、訳しちゃおうか。]

Well, one meaningless post deserves another.

まあ、意味無しの投稿の後はまた意味無しの投稿。

Somewhere, I've written about bc and the joys of calculating pi to lots of digits on your own computer.

どこかでbc と、自分のコンピュータで π を、沢山の桁数まで算出する喜びについて書いたことがある。

(What is bc you say? You don't say. Well, bc is this handy-dandy command-line basic calculator utility that comes free with most Unix, Gnu/Linux, BSD, and related OSses. Android and iOS are unfortunate exceptions, although it shouldn't be that hard to add.)

(ええっっ、 bc ってなんだ?って聞かれるのですか?言わんか。まあ、 bc というものは便利に便利な命令型、基礎的な計算機道具です。およそのユニックス、 GNU/Linux 及び BSD 系のOSに、タダで添え付けてくれるのです。アンドロイドや iOS は残念ながらの例外です。取り付けるのはそれほど難しくあるはずないのに。)

(Gag. How did this go live? I don't have time to finish the Japanese, and I didn't want to post without a mention of Intel's plans to own the pipes. Erk. Cough. Splatter. I'm getting too old to keep up. And stupid Google can't decide what "edit" means.)

[update 2015.07.22:
ゲッ。どうやって生投稿になったんか。日本語に直す暇がないけど、インテルが世界の情報管を自分のものにする企みについて一言もなく投稿するつもりではなかった。アッ。ゴクン。ピシャッ。いや、こんな歳なんか、叶わぬ。それに、グーグル上、「編集」の意味は決められなさそう。]

So, here is the command line that starts a timed session of bc with the commands to calculate 1/4 pi to 4000 places:

[update 2015.07.22:
では、πの四分の一を4千桁まで計算する命令を持って、bc との対話を開始し、その経過時間を測る命令は次の通りです。]

time echo "scale=4000;a(1)" | bc -l
Here are the resulting times for three of the computers I own:

[update 2015.07.22:
その当時持っていた三台のコンピュータ上の結果です。]

1.25 GHz PowerPC G4 (1.2) Bus speed 167 MHz
real 0m55.246s
user 0m53.573s
sys  0m0.180s

CPU0: Intel(R) Atom(TM) CPU N455   @ 1.66GHz stepping 0a
real    0m55.324s
user    0m55.210s
sys    0m0.003s
CPU0: AMD Sempron(tm)   2600+ stepping 01
Detected 1832.806 MHz processor.
real    0m34.198s
user    0m34.022s
sys    0m0.004s

Yeah, the Sempron uses a bit more power than the Atom, more than double, I think. But it's about five years older. The G4 is how many years older than the Sempron? Uses about the same power curve as the Atom, judging from the netbook's battery life. Smaller battery than the iBook's, half the running time between charges.

[update 2015.07.22:
そうです。センプロンのCPUの消費電力はアトムのCPUより大きいです。倍以上大きい。ただ、このアトムよりは五年古い。この G4のCPUはセンプロンよりは何年古いでしょう?アトムと大体同じ消費電力の仕様に思われるのは電池がiBookの電池より小さく、充電寿命がその半分です。]

Steve Jobs, over there where you are now, tell me: Just what did you mean about Intel's road map? Why did you sell your soul to the other half of Leviathan? Is this what you bought?

[update 2015.07.22:
向こう側に渡られていらっしゃるスティーヴ・ジョブズ殿よ、教えてください。インテルの進む道案内って言ってたのは何れご存じでしたか?言い方が悪いが、レビアタンのあの半分にお魂売りになったのは如何でございました?とても失礼ですが、これが手に入れるはずだった結果でございますか?]


What to do about UEFI?

Woke up in a minor panic this morning.

If I don't tell the world about the inherent vulnerabilities in UEFI, the world will fall apart!

Yeah, I have these attacks, sometimes -- the "clarity" of the dreaming mind. I suppose I should post a rant about that clarity sometime. But I have three posts in suspended animation, and I really have two other, paying, jobs that I should be putting first, especially if I'm going to be working on Sunday.

(I'll pretend this is service instead of work. ;-) (erk. No, that's not really a valid defense, either. If I'm wrong here, I'm wrong.)

After the morning chores, I still feel inclined to post this, so I'll post the short version here, and (probably after I finish a translation job I've been letting slide too long) unpack it later on my defining computers blog.

So, some primary inherent vulnerabilities in UEFI, at least, as Microsoft is pushing it for MSW8:

  • Microsoft owns the keys to your computer (including MSWindows "smart phones").
Think about that. Would you be comfortable with GM owning the keys to your car? I'm going to leave a lot of questions begging on that one, because that question should be enough to get you thinking.

  • You cannot re-tool the keys to your computer without breaking the "license" Microsoft issues for your computer running their OS, starting from MSWindows 8.
So, if you decide you don't want Microsoft to own your computer, and install your own keys in precedence over Microsoft keys, you cannot legally run MSWindows 8 OS stuff. On ARM processors, you aren't even supposed to be physically able to re-tool the keys at all. Maybe you think you don't mind now, but if you ever change your mind, you can't to anything about it without "breaking the law". (See DMCA for how bad that is in the US.)

  •  Microsoft's master key works on everyone's computer, as I understand it.
So, let's use the automotive analogy again: GM would have the master key to your car. And it would be the same key for every car made by GM. (Not a perfect analogy, but when you get into the details, it's close enough.) Are you comfortable with the idea that anyone who can duplicate or reverse-engineer that master key could now drive away with your car?

More to the point, are you comfortable with the fact that someone could duplicate or reverse-engineer the Microsoft key and, without any notice to you, put a trojan horse, password logger, and all sorts of other evil stuff on your computer. Your bank information, your job information, your private letters, whatever -- all easy pickings.

  • The manufacturers all have master keys, and, as far as I know, those keys are the same for all the computers they manufacture.
So, not just Microsoft, but (for example) DELL also has a master key for your DELL manufactured PC or computer device. It's not the same as the one Microsoft has, but it is a master key, and, as far as I know, there is only one key for all the computers DELL makes. At any rate, it's not one key per computer. Likewise, Lenovo, etc.

  • You are out of the loop. No master key for you. Microsoft and your manufacturer have their own master keys and those take precedence over any master key you can set -- at least any you can set without breaking Microsoft's contracts. And, in the case of ARM-based portable MSWindows devices, any you can set without reverse engineering, which would also put you in breach of the DMCA law in the US.
Fundamentally flawed. Fatally so. What else do you expect from Microsoft and Intel?

Note, that, while Microsoft's and Intel's power games kill your security and create other problems, they also make it much more difficult to run community-developed OSses like Ubuntu or RedHat Enterprise. And they may may make it impossible to legally run them on the same machine you run MSWindows junk on.

Of course, you really have no reason to run MSW8, because all the stuff that keeps you in the MSWindows universe runs on MSW2k, but not on MSW8. Which leads to the proper solution:

  1. Keep your old machines that you have to run the legacy stuff on.
  2. Keep them off the network, or in isolated segments.
  3. Don't let anyone use those old machines as workstations.
  4. In fact, don't let anyone touch them, except to use the legacy programs.
  5. Move all your day-to-day-use workstations to RedHat, Cent, Ubuntu, Mint, FreeBSD, openBSD, etc., now.
  6. Don't buy MSW8. 
  7. Don't buy any software or hardware that is dependent on MSWindows 8.
That solves the Microsoft problem, although it doesn't solve the Intel problem.

Nor does it solve the problem of write-protecting your BIOS in a meaningful way.

But it lets you keep operating for now.

There is much more to be said on this, hopefully I'll get a chance to do so before summer ends.

Tuesday, July 31, 2012

selective peeve

Mormons aren't supposed to have pet peeves.

モルモンなら、焦らすものを見てはならないはずです。人の好みはその人に任せてええやろ。

God's truth is huge, broad, covers a lot of territory. (Everything is quite a lot.) Getting hung up on a few little things is a good way to quit moving forward. More important, peeves are about people's foibles, and looking at someone else's sins, especially the little ones, tend to make us blind to our own.

神の真実は幅広く、壮大なの。沢山の領域を行き渡るのです。(「すべてのもの」は確かに沢山でしょう。)自分を前進させないつもりなら、ちょっとした、小さいものに引っかかるのが効力ある方法です。それよりも、人の焦らすものを見るのは、その人の癖を見ているのです。人の罪を見ていると、とくに、人のささいな欠点を見ていると、自分の罪が見えなくなるのです。

So, this may be indulging in a minor sin, but I get hung up on the word "selective."
"Selective" courses at school.
"Selective" medical examinations.
なら、次の話にふけるのは自分の小さい罪となるかもしれませんが、「selective」という言葉に引っかかってしまうのです。
「Selective」な学科。(特選な学科?)
「Selective」な診察。(特選な診察?)
I know there is a bit of ambiguity in the dictionaries, and the speaker always trumps the dictionary anyway. But it also makes sense to understand what other people who use the word intend.

確かに、辞書の定義を読むには選択肢があるし、言葉を使っている人の勝手はいつでものことですし、…

しかし、自分の使っている言葉は、まわりの人が何の意味を以って使っているかを理解するのは合理的なのだと思います。

For a native speaker, well, for this native speaker, "selective" tends to be a synonym for the adjectival use of "select". But, more than that, it tends to describe processes of discrimination, as in the non-pejorative sense of "discriminating taste". Or it tends to refer to the exercise of discriminating taste. A person who is selective, for instance, might tolerate Perrier from a bottle, but would prefer something a bit less commercial.

母語とする人にとっては、まあ、とりあえず、英語を母国語として喋っているこの人にとっては、「selective」とは「選択する」の「select」の形容詞用法の同義語に使っている傾向が多いと思います。よりも、識別の作用について説明する言葉です。「Discriminate」といえば、「差別」ではなく、「discriminating taste」の「見分ける味覚」のような意味を呼び起こすのです。つまり、自分の意志を持って、ものをよく「選ぶ」ような習慣を描写する言葉です。たとえば、「selective」な人なら、ボトルから流れて出るペリエーを我慢できるが、むしろ、商用的なミネラルウォーターでないものの方を好むのでしょう。

Generally, the word intended is "elective".

さて。一般的にいえば、使っているつもりの言葉は多分、「elective」だったと思います。

Hmm. Look at the amount of time and web-paper I wasted on that, when I could have just said,
If you're thinking of using the word, "selective", try "elective" first and see how that fits.
 まあ。以上は時間とウェブ紙の無駄遣いかな? たとえ、
「Selective」と言う言葉を考えているときは、まずは「elective」という言葉をかわりに使ってみては如何ですか?
と言ったほうが簡単に済んだでしょう。

Sunday, June 10, 2012

IRS's convenience trumps Constitution, I guess

Up until 4:00 and 5:00 fussing around with e-file over the weekend.

Still not done. Have to buy printer ink after all, print the stuffpit forms, and get them in to a post office by Wednesday evening, so I can get the postmark and claim to be filing on time. (The IRS is kind enough to give overseas taxpayers a two month extension, if you remind them about it in your filing.)

Not that the IRS would penalize me. 15% or 25% of zero is still zero. I'm not making enough to pay taxes over there. Barely making enough to pay rent in a middle-class district, barely making enough to pay any taxes to Japan. But it's better to keep the IRS happy, right?

The IRS does not maintain a way to report my taxes over the Internet. All the hoopla over "e-file", but it's all 3rd-party. (And why should I trust those 3rd parties more than the government?)

And  All the hoopla about "free", but the 3rd-party tax "enablers" are given all the opportunities they could want to try to convince the average taxpayer to spend "only" $15 or $25 to get some set of features they should not have to buy. (Yeah, that's at least a day's worth of food for my family. I suppose I shouldn't be living in a middle class district, but it costs too much to move in Japan.)

Taxpayer. Taxplayer. Bah. Humbug.

A walk through the mall is free. But, then, nobody is holding a gun to my head and threatening me with a theoretical prison sentence if I don't take my obligatory yearly walk through the mall.

Well, it turns out that, because I am depending on the automatic two-month extension given to people who live overseas, I have to file a paper return. According to Intuit's TurboTax, anyway. Ten hours wasted, from late Friday night to about five this morning, looking at different 3rd party's e-file stuff, trying to figure out which I distrust the least.

If I had bought printer ink yesterday, printed out the forms, and done the stuffpit tax report by hand, I'd have been done and got some decent sleep.

Yeah, bought printer ink. Depending on what sort of deal I can find, roughly $40 to $70 (JPY 3400 to 5600) for ink.

Yeah, I probably should buy some eventually, but that's a week's worth of rice plus maybe a day or two's worth of beans and vegetables for the family.

This is the problem with people who get fancy ideas of what is or is not too much of a burden when it comes to taxes. (And other detailed rules and regulations that people ought to follow. Other people, usually.)

Well, let's drop back and think for a minute.

I can get the forms somehow, fill them in by hand, mail them, and the IRS spends the money and time to enter the data into their databases and check it, etc.

Why can't I simply type up the form on a template that I could download from them and email it to them?

PDFs are almost there, but Adobe demands too much money for the software to edit them. So that wouldn't work as a sole solution, but might work as an optional solution. Admittedly, manually transferring the numbers from one screen to another is a little more stress on the eyes than from paper to a screen, but surely the IRS can give their workers sufficient breaks during the day.

MSOffice, of course, is owned by the convicted monopolist, so it should be dismissed out-of-hand. I'd say, offer it as an option, but the write-protect features are too easy to break, and too many taxpayers don't understand how they can make sure they have kept a copy of their own.


Open/LibreOffice would be great as an option.

But so would plain text. The formatting is not that hard, once you shake yourself of trying to imitate the format of the current forms. Those forms were designed to be easy to see while holding lots of data on one page. With computer files, the single page restriction can be set aside.

A partial example template:

For the submitter:

Last name: (type last name here)
First name: (type first name here)
Middle initial: (type middle initial here)

Social security number:  (type social security number here)
(If you do not have a social security number, please refer to <>.)

The IRS would have the taxpayer send this to an address where it would be automatically parsed, and the results of the parse sent back to the taxpayer:

Apparently, you did not type in your first name. This is what we received:

Last name: Joseph P. Sixpack
First name:
Middle initial:

Of course, this could be done almost as easily with an ordinary web page that does not try to calculate for you.

I suppose the expectations of many taxpayers, that the IRS should just calculate it all for them (Oh, ye who know not the meaning of freedom!) are the ultimate excuse that the IRS has for not doing this. But surely they could put up enough warnings?

(I am aware that the calculations by the IRS have to separate from the calculations done at submission time, because of certain principles in the science of information handling, if not for principles of freedom. But that also begs the conceit of not calling the 3rd party companies that provide tax software "tax preparers". Yes, they are preparing your taxes for you.)



Tuesday, May 15, 2012

Using Patents to Claim Things You Didn't Invent

Can Dr. Mitchell's testimony in Google vs. Oracle finally be used to drive the stake through the heart of software patents?

Here's the situation in a nutshell. We have a disagreement between several experts on two points, dynamic vs. static function, and symbolic vs. non-symbolic reference. The patents say dynamic and symbolic, and Dr. August claims Dalvik's dexopt is doing the thing the patent claims neither dynamically nor symbolically. (If they are right, neither does Java, which means that the Sun patent could well be on something never actually implemented, one of the common travesties of the way software patents are currently done.)

Dr. Mitchell, for Oracle, claims that Google's experts are perverting the meaning of both dynamic and symbolic.

But an awful lot of software engineers agree with Dr. August's analysis, and his use of both terms.

For my part, I have heard computer scientists (generally of the type that don't write low-level code) use dynamic and symbolic in the sense that Dr. Mitchell uses it.

But, again, for my part, if we have to use the semantics that Dr. Mitchell is using, I cannot understand how the patent could have been granted, how these claims could have survived the review. If the patent is interpreted that way, there is absolutely nothing new (novel), original, clever, or in any way, shape, or form, patent-worthy in the claims.

Which makes me think that Oracle's lawyers must have been arguing in the patent office something quite different from what they are arguing in court here.

The difference is an interesting topic, and I will blog about it elsewhere sometime, but the point we have here is that software, like all math, is abstract. Abstract means that there is more than one way to interpret any program or software function, whether written in a high-level restricted dialect of English (as most software patents are done) or in real source code that can be compiled and run on real machines.

Even a real program, instantiated and running on a real system, is still subject to interpretation. Change the icons, and much of the sub-function of a traffic control system looks like sub-functions of a factory control system.

Abstract.

There's a danger when you mix abstract with law. That's why the US Constitution doesn't guarantee freedom or privacy or just about any of the democratic ideals specifically. Even when it talks about family welfare, it does not try to define that, leaving the implementation to the individual states, where there is a better chance of making meaningful laws.

When you bring abstract stuff into the courtroom, lawyers can pretty much twist it whatever way suits them, and you have to rely on the judge being unusually (even for judges) sharp, fair, just, knowledgeable, etc., to protect people from predatory legal practice. The Founders knew that. That's the real reason for the Constitutional injunction against all the former trappings of royalty and royalism. (False royalism, but bringing that up will just confuse things here.)

Well, patents are actually one of the few terms they couldn't quite get rid of. But the Constitution specifies limited time. It also specifies another limit that tends to get washed over quite regularly, these days -- there is no provision for giving people rights to things they didn't create or invent.

(I'd prefer that the sale of copyrights or patents should be illegal, but I'm not prepared to argue that here.)

But it is very clear that a patent should not be expanded in the court of a lawsuit beyond what the patent office recognized as patented. That's happening all the time, these (especially with non-practicing entities "owning" patents), and it's what is happening here. Oracle is trying to use their patents, which they bought from Sun, to exercise control over something no one at either Oracle or Sun ever invented, something that actually predates both companies.

The abstract nature of software makes it particularly susceptible to this kind of expansion.

Okay, I just said the same thing I said above, but it seems it has to be emphasized and said in many ways, before people get the idea.

And this is why software patents are not appropriate. It's far and away too easy for unscrupulous or misguided lawyers to expand the scope of the patent way beyond what it should be.

Sunday, May 6, 2012

Copyrighting SSO (at least in APIs) Sure, you can rename, re-organize, and compile, iff ...

Another post on Groklaw:

If and only if Java had a macro-preprocessor like C, you could define a set of macros that mapped Dalvik APIs to Java APIs. And you could give Dalvik a macro-preprocessor, and write a set of macros to reverse the mapping, from Java APIs to Dalvik.

Of course, that not only fails to answer the question, but it also opens a whole new can of worms.

If you do such macro conversion, the combination of macro-preprocessor and the macro definition files will be just as infringing as the current Dalvik implementation is.

That is, if the jury says 10%, then the conversion macro-preprocessing stuff would have to be 10% infringing. Dalvik itself could be separated from the infringment arguments, but the macro-preprocessing stuff could not be.

But then there is that other can of worms, that I sometimes complain about. Lawyers would notice that the macro wall appears porous to them. They would miss the point of the conversion, and assume that macro-coated Dalvik infringes because Dalvik (even with deliberately different APIs) itself infringes, and pretty soon Oracle's lawyers would come after Ruby, Lua, and any other language more recent than Java, because all such languages can (in theory) be mechanically converted back and forth. One successful conversion, and it's offf to the races.

The reason software and other literature/fine art were supposed to be kept out of the patent pool is precisely this possibility of conversion. When you start abstracting things out to this level, everything becomes everything else. The patent with highest precedence is the dictator of the world, and, I'm not speaking metaphorically, I do mean the Constitutions of all Constitional government be damned.

Why am I suddenly talking about patents? Precisely because the argument about copyrighting APIs destroys the barrier between copyright and patent. Yeah. I mean that if you can claim and enforce copyright on APIs, in a few years some lawyer is going to twist that to the plots of novels, and so it goes.

If and only if we could get the lawyers to forever agree not to try to expand the claims on their patents, we could allow source code to be patented on the condition that changing one variable name must be considered equivalent to changing the shape or composition of one physical component, and that changing the compiler or run-time library would be equivalent to changing the physical implementation framework, and that changing the language would be equivalent to a complete re-implementation of the device in different technology, and completely beyond the claims of the patent. And the entire source code would have to be registered and published, just the same as the blueprints have to be registered in physically implemented patents.

Otherwise, you absolutely will open the door to abstracting away all barriers to frivolous litigation, and it's just a matter of time until the entire economy comes grinding to a halt under the burden.

And, now that you think about it, copyright is always a better fit for software than patents, when you place the proper requirements on software patents. The only real issue is how to protect a combination of software and machine, but even that is going to require a lot more specificity than is currently practiced, because a CPU can be used as a basis for arguments abstracting the patent out of the physical implementation.

Symbols are inherently abstract.

Intellectual Paucity

Oh, the Oracle vs. Google thing and all the would-be Napoleans salivating over the prospect of expanding Intellectual Paucity laws.

(If you can't control the world in an economy of plenty, force an artificial scarcity of something important, right?)

Well, if you think IP is a good thing, here are a few things you need to remember:

(1) You can't own what is in someone else's head.

(I mean, sure, there are people who believe they can, but you and I know that, as soon as their back is turned, we think what we want, whether we were acquiescing to their reality distortion field before or not.)

(2) If you can't control it, you can't own it, and the law can only go so far in controlling something for you.

(Again, you and I both know that you can't afford to hire someone to sit in my shop forever, bringing out a shotgun every time I power up my lathe or start etching a new PC board.)

These are natural laws, as sure as air is hard to confine. Which brings up a third point, a natural law as inexorable as gravity, which you should consider carefully before you decide to excrete in your own gruel by "enforcing" "your" "intellectual property" "rights":

(3) Attempts to defy the two principles above have, in the past, resulted in violence, bloodshed, separation of colonies from their "mother country" (Tea party, anyone?), and the downfall of regimes.

This is the final reason we should tread a little lightly when we want to "monetize" "our" "value" in our "IP" a little more fully, even if we refuse to understand the courtesies creative people offer each other.

Why is it so hard for non-practicing parties (including the several "Artists Associations" and certain "standards organizations" to recognize principles like sharing and standing on the shoulders of giants?

Why is it so hard to understand that you can't squeeze the society around you and escape the squeeze yourself?

Why is it so hard to recognize that, if you want to be free to make money, you have to let others be free to make value -- free, as in, without your interference?

Why is it that everybody seems to want to rule the world?