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.

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

Wednesday, December 30, 2015

Playing Games with Our Children's Emotional Well-being

I've spent a lot of time watching my children playing video games these last few weeks. It's something I've needed to do for a long time. Parents should play with their children, even if the games the children are playing are no longer interesting to the parents like they used to be.

My son's main game is Star Wars Battlefront. Or whatever.

My daughter's main game is Dragon's Dogma.

Dragon's Dogma has a lot of realism, in that you can see the relationship between what you have done in the past building up what you can do now and in the future.

But it is missing some important realism. After a certain point, which my daughter passed long ago (well, about a month ago, but a month is a long time for kids), beating and killing every apparent enemy in sight should start burning your game karma.

She did recently get a quest to go help a goblin king, but this goblin king is not related to the goblins she kills on a regular basis to improve her experience points and get money so she can get into the harder parts of the dungeon Dragon's Dogma world.

Well, now that her experience points are getting on up there, the goblins die too cheaply now to pay as much attention as she used to. She just runs past them more, now.

I'm thinking that, at her level, killing domestic pigs and wild rabbits for sport and practice should produce negative experience points. Likewise, killing weaker enemies should begin to carry negative experience points, and running past them should yield positive points.

Or maybe the game should begin to track karma in addition to experience at some point, such that unnecessary violence would negate experience.

One more thing, there ought to be ways to actually help enemies constructively, in a way that would give bonus karma or something.

If you've read this far, maybe you can guess what critiques I have for Star Wars Battlefront.

The game, as it exists (or, perhaps, as my son plays it) runs in a "Bang! You're dead!" -- "I'm a new man now!" mode that is typical of young children's cops-and-robbers games. You attack or hide and snipe. You get killed. You come back to life at sort-of random places in the battlefield and continue until time runs out or one team hits the points target. Points for kills and points for assists and points for taking out automated weapons, etc.

Beginners' strategy. It's good for practicing the controls.

I'd personally rather they called "kills" "takedowns", and called "coming back to life" "extraction and re-insertion", but that's not my primary concern.

There is an attempt to capitalize on strategy-building game play, and some of the games look like they should push the players towards cooperative strategies, but I don't really see that happening. That is, it seems like you have to pay to join the parts where strategy building can occur and where real cooperation can occur. Since I'm a cheapskate and not paying all of his college tuition, he doesn't have enough money to get into those parts, and I can't see if that really happens.

It's hard for me at this point to be too critical of EA about their marketing strategies. The laborer is worthy of her hire. And thou shalt not muzzle the ox. Etc. But I have the impression that paying to play just gets you more weapons and armor, and entrance to more battlegrounds.

I want to see play modes other than I'm-a-new-man. I'm-a-new-man mode should only be the most basic practice mode.

There could be a slightly advanced tag mode where, instead of killing, you freeze the enemy. And if you touch a frozen player on your team, he is unfrozen.

This alone would expand the strategies and significantly reduce the emotional isolation my son plays in. And it would be more realistic, better echoing the need to get wounded soldiers out of the battlefield in real war conditions.

I think there is a built-in audio chat function, but it costs money. If that's the case, maybe I should subsidize that part of my son's play. Chat could help him learn more cooperative strategies.

And he needs to learn to talk with the other guys he's playing with. Anonymous fighting is not good for a person's emotional health.

I'd like to see a standard battle mode where soldiers are responsible for getting downed soldiers to the battlefield hospital. It would be really cool to have players taking turns as medics and carrying the downed players off the battlefield, but even requiring a simple tag from a teammate to bring the downed players out would be an improvement.

Having to spend too long recuperating would impact the play-action, but coming back to life takes about fifteen seconds anyway. That might as well be visualized as being in the battlefield hospital.

I know enough about games programming to know it would not be easy to do the part about carrying the downed players off the battlefield. The rest of what I've described above should not be too hard.

Not really changing the subject, ...

Yesterday, we heard news about a high school boy who killed his grandparents because he was stressed out at school. It is not clear that he had any ill-will towards his grandparents.

What follows is a bit speculative, but I think it's stuff that needs to be considered more carefully.  

Watching my son play his game, I could see how easily a boy could get lost in the play of the game and not really be able to understand that killing people in the real world means they are really taken out. Permanently.

I feel sad for that boy's family, but I also feel sad for that boy. He has lost his grandparents to his own lack of judgement, he has lost a normal relationship with his parents, and he has lost a huge piece of his own life.

My son has the advantage of a Christian background. He understands that the Japanese/Buddhist traditions about re-incarnation are not to be taken too seriously.

I'm not sure that he recognizes that the apparent cruelty of many historic samurai was in part due to the belief that everyone gets recycled anyway.

I'm not saying that the current crop of video games train children to be killers.

I'm not saying we have a duty to make all the games fit some goody-two-shoes helicopter parents' point of view. Taking all the violence and gore out is not a good idea.

I am saying we are not teaching our children some good things that we could be teaching them.

I am saying that the question
Will it sell like hotcakes and make my company the number one company in the world?
as a marketing question is in the same class of thinking as I'm-a-new-man-again games. Managers who talk like that should be retired if they are old enough. If ther are too young to retire, they should be sent back down the ladder or temporarily taken out of the game, to learn more about what's really important.

(Everyone is too young to retire, really.)

We can and should do better, not for today's bottom line, and not for tomorrow.

We must learn to do better for all of our children's tomorrows that may not be.

(I plan to translate this into Japanese, but I have no time today.)

Friday, December 25, 2015

About Breaks My Heart

(This post actually belongs on my Freedom Isn't Free blog, but I don't have time to write a post that long today.)

Gene Heskett asks a sort of innocuous question:
Need a calculator that knows about coulombs
Quite a series of revelations in that thread.

[Update: I blogged about a bc programming example from my contributions to this thread under Programming is Fun. JMR20160111]

What almost breaks my heart is that we arrogant mortals think we, as a race, have advanced. We don't know how we got here, and we could not do it again, without help.

And we refuse to look to the source of help that got us here.

My children play their video games. They are getting good. Their parents think it's such a waste of time.

Investors (on Wall Street, etc.), who could be helping move money to producers and move product to the market, play their investment games.

Management (at technology companies, etc.), who could be making technology available to consumers, play their market games.

Lawyers, who could be helping people understand each other, play their games (and it's much more clear that it's about power and controlling others instead of themselves, not about money).

Who else do we have playing games, while people are dying?

And the rising generation can't get us back to the moon. Read the thread I linked to above if you want to know why.

[I don't think I've unpacked this explicitly anywhere yet, but it's a thread that underlies many of my freedom-isn't-free rants. It has to do with managers and marketeers thinking they have to monetize everything, so that technology becomes hard to get to, or wrapped it tape barriers, and with attrition among the real technologists, the people who knew how to do the technology without the monetized marketizing, getting old and leaving us you guys behind. JMR20151230]

[Update: I'm looking at qucs now. It looks rather interesting. JMR20151225]

Wednesday, December 16, 2015

8 or 10 -- 八か十 -- The Sales Tax on Food in Japan 日本の食費に掛かる消費税

Raising the sales tax on food to 10% draws enough ire to slow the spenders in the government down a bit, apparently.
食費に掛かる消費税を10%に繰り上げる案は税金のお金を使いたがる政治家をある程度差し止める程の怒りを引き起こしています。

It has been a top topic of my wife's favorite morning talk show this past week.
妻のお気に入りのラジオトークショーは今週よく取り上げています。

So they are planning to allow the tax on food to stay at 8%. (Is this really going to help people who aren't making enough money?)
それで、食費に掛かる消費税を8%のままに残す計画ができています。(収入の足りない人達は本当に助かるでしょうか?)

But non-essential foods, so the thinking goes, should be taxed like non-food.
但し、必須の食事でなければ、食費ではないものと同じように税が掛かるべき、と考えられているようです。

Where to draw the line?
どこで線を引くべきでしょう?

The current discussion is focusing on eating out on the one hand, and buying at a hamburger or pizza place and taking it home. Taking it home somehow magically brings it under the umbrella of essential foods.
現時点の焦点として、外食をすることと、準備済の食事を家の外で買って、持ち帰りにすることを事細かく議論しています。お持ち帰りにすると、食事は魔法的にに必須項目に変換させるようです。

And so they are writing an overly detailed set of rules to determine which is which. Reminds me of the Pharisaical limits on Sabbath day activities.
したがって、外食と持ち帰りを区別する細かすぎる法則を作成中です。安息日の活動に制限をつけるパリサイ型立法のようなものだとボクは思っています。

I think computers spoil us as to how complicated laws can be.
どれほど複雑な法律を作って良いかについてはコンピュータがあると皆が甘えるかも知れません。

These complicated rules will not be abused?
こんな複雑すぎる法は悪用されること無いと思えるでしょう?

My mom used to tell me, when you write exceptions into the law, the exceptions become the law.
お母さん曰く〜例外を法律に組み込むと例外が法になる。法が例外になる。

If you have to make a distinction, the restaurant should have to collect full taxes when the price of a meal for a single person exceeds half the daily wages of a poverty-line worker. That would be about 5000 yen right now, and that's a clean, fair line.
区別しないと行けないなら、一人前の食事の値段が貧しい人の一日の給与の半分を超えた時点で普通の税金がかかればいいでしょう。現在は凡そ5千円です。公平に、綺麗に引ける線です。

But the difference between eighty yen on a thousand and a hundred yen on a thousand is really, well, only two percent. Yeah, my wife tells me about the psychological effects, but taxes shouldn't be a game of boiling the proverbial frogs by degrees.
しかし、千円に八十円と千円に百円の差は、本当は、2パセントに過ぎないのです。家の妻はその精神的影響について話ししてくれるにしても、税金は、蛙をお湯に入れて少しずつ温度上げて煮物にするような遊びではなかったと思います。

Shouldn't be a game at all. Why don't they just completely drop taxes on food? Then they don't have to spend money on untangling complicated rules every time someone buys food at some sort of restaurant.
何の遊びになっているはずない。食費に掛かる税金を完全に無くしたほうが良さそうではありませんか?そうだと、何らかの食堂に食物を買う度に、絡まった税法を解けることにお金を費やす必要がないでしょう。

Friday, December 4, 2015

When You Find Yourself Inclined to Swear, Look in the Mirror.

Sometime last week or the week before, my wife received the first Unsolicited Commerccial Message I think she has ever received on her mobile phone.

(UCM, in other words, so-called "spam". My memory is that the term "spam" was originally said to be a coinage derived from the coined term, "spatter mail", but the Monty Python theory seems to gain the better press. I know the term was in use well before the 1990s.)

It was an offer to register on some sort of social media kind of web service. It looked like bait for e-mail addresses to me. My son looked up the name of the supposed service and he thinks the name is intended to be a spoof of a possibly legitimate new social web service.

(I personally think that social media is just an organized method of spamming, but ...)





About four more of these messages have found their way to here inbox since then, and we've been talking about it, on and off.

But I have somehow forgotten to tell her she can block the source address if it doesn't change. She is thinking of changing the e-mail address of the phone.

And I, in my distraction, have been talking too much about how it is all Microsoft's fault for producing the very shoddy Microsoft Windows OS family and the very shoddy Outlook and Outlook Express e-mail software and the very shoddy Microsoft Word and other very shoddy Microsoft Office components.

All of Microsoft's offerings have traditionally emphasized feature over safety, or even usability. Their current offerings are improving, but still are not safe on the internet at any speed. And the rest of the information industry seems to feel themselves compelled to chase Microsoft's putative feature list, so that most of what is available now is not that secure any more, either.

(Unfortunately, the Linux OS community also seems to be caught up in this race.)


We were talking about it some more yesterday morning while I was exercising, and the talking was slowing me down, making me about fifteen minutes later out the door than I intended to be, a bit too close to the wire for comfort.

I was just a little stressed, but still within my range of rational thought and not pushing too hard on the Tourette's buttons.

It was raining, a fine drizzle, not quite light enough to ignore, but light enough that I debated leaving my umbrella shut to make it easier to run.

I wanted to check the time, to see how motivated I should be to run.

So I pulled out this expensive pocket watch I call a cellphone, ...

... and the external time display was blocked by a notification.

You know, something like, "You have mail waiting." Or whatever. Something was more important than my need to see the time.

This mobile phone is a semi-recent clamshell. I think I've had it about a year.

CPU, RAM, persistent store (FLASH) -- the specs were pretty much the same, except for the screen, as a cheap Android phone on the next shelf over when I bought it.

The OS is, as near as I can tell, whatever the thing was called between LiMo and Tizen. Or maybe it is Tizen. Anyway, it's built on a partially GNU userland running on a Linux kernel.

Technically required to be GPL-licensed, and thus supposed to be technically accessible to the end-user/owner, should said end-user owner desire to go to the effort of modifying something like the format of notifications so the time is visible when there is an active notification.


Technically required to be GPL, and there is, somewhere, on a public-facing server owned by Sharp, a tarball that technically fulfills the requirement of access to the GPL-licensed code.

A tarball that no ordinary engineer without a lot of expensive debugging equipment and other things that no one but the manufacturer has access to can use.




Anyway, I swore at whoever had caused that notification. (Okay, I've been getting a bit careless about the Tourettes tendencies lately.)

Had to wait for a stoplight, so I looked again. The notification was a schedule reminder, one I had set myself, to remind myself that I had a visit with the doc this morning.

So I was swearing at myself. Look in the mirror.

You know, that scheduler is much better than the one on the phone that this phone replaced (which was a LiMo phone). It's almost useable.

And if I were to dig into the Tizen website, I might find information that would allow me to alter the notification templates.

Or even write the stopwatch applet I wanted to write for my previous phone (which was a LiMo).

Or maybe even bc in a bash shell. No, probably not that. They wouldn't allow that, I'm sure. That would be way too much power in the hands of the user.

I won't really know until I take the time to nose around the site and exercise the patience to read the Japanese.


Monday, November 23, 2015

Waking the Sleeping Dog

Notwithstanding this blog post, violence is not the way to solve things. When God condemns the greedy rich for not giving to the poor, He also condemns the greedy poor for taing by violence and force what they have convinced themselves they deserve.

You may want to think that the other guy will give in when you show you are serious about what you claim to be your rights, but the spirit of reason does depart from human beings when they refuse to listen to it.

Desolation is the result.

There are more important things than vengeance and making others conform to your ideals.

[And I had a few more thoughts on this today. JMR20151207]

Shopping Conundrums

I'm in a bit of a funk.

My father raised me and my siblings with a sense of honesty that echoed the stories about Abe Lincoln walking back to a store to return a penny. I remember Dad driving back to a store to return a dime when a cashier gave him that much too much change and he hadn't noticed until he got home.

Now, that was back in the day when a dime could buy you a loaf of good whole-wheat bread. (Or two loaves of white bread-substitute, as Dad put it.) And that was a whole loaf, not the third-loaf packs of partial whole wheat bread we usually buy for between 160 and 230 yen.

So when the decorative hammer loop on these ancient blue jeans I'm wearing today caught a pack of breaded squid rings and knocked it to the floor in the store, I was wanting to talk to a clerk, buy the whole pack but ask them to discard the one squid that ended up on the floor.

The store manager was in the checkout lane I was lined up in, but he did not want to talk about it. He had four lines of customers nearly filling his small store, and it was the time of day that the volume would make the day's quota of profits.

Now I see that I had two options that would have partially or wholly satisfied my conscience.
  • Just close the pack back up with the dirty ring in it, buy it, and throw it all away when I got home. That would make the manager whole, and I would take the 189+tax yen loss. But he would not have approved.
  • Or take the manager's offer and buy a fresh one and let him dump the spoiled one. That would allow me to split the loss with him, and I don't think he'd have disapproved.
As it was, he took the whole loss, and I took the singed conscience home.

Taking the dirty ring out so I and my kids could eat the clean ones was not an option. There was no room to perform that kind of operation, and walking around with the pack open so I could find a place to do so would have invited misconceptions about what I was trying to do, and would possibly have wasted store personnel time in tracking my actions.

Having the "personal faith" to put the ring back and taking them back home for the family to eat them was also not an option, of course. It's not just my faith at question there.

I'm not smart enough to live according to my conscience.

I left that store on my bicycle and went to another store. Had to walk through that store carrying a tied grocery bag containing what I had bought at the the first store. This is not just a bad example that might give others ideas about how to shoplift, it makes it harder for the people at that store to keep track of potential shoplifters.

Leaving the bag in the basket on my bike is not an option, of course, not even in Japan.

The thing I should do is get or make a big bicycle baggage carrier with a lock. Then I could safely leave stuff on the bike. Maybe not in the States, but it would be okay in Japan.

I don't have the money to do that.

I'm not making enough money to live according to my conscience.

Now I know that this is not my fault. It's the world we live in. Mass produced merchandise makes things available to relatively poor people that have not been available in the past, but those things don't really help poor people do the things that would enable them to quit being poor.

Jumping past the analysis of what rich people do to the world to make themselves rich, God allows this world to exist.

He doesn't ask us to do things we can't do. He just asks us to make the best choices we can from the options that are available to us.

So, I'll just have to try to think more quickly next time I break something at the store. And try to remember to arrange my path around the stores to allow me to carry the purchases in ways that don't set the bad example or require store personnel to try to guess whether my implicit assertion that the stuff in the tied bag is not from their store is legitimate.

And let the disturbances to my conscience keep me on my toes, rather than induce me to quit caring.

Saturday, October 24, 2015

Adventures in OpenBSD (and NetBSD) parts 1 through 4, MacBSD

My first sorties into OpenBSD were almost twenty years ago, trying to install OpenBSD and NetBSD on old Macintosh hardware. Ran into SCSI and floating point issues. And bad CPU mask set problems.

Really wish I had known Apple was offering to replace the bad mask set 68LC040 in the LC/Performa 630 series Macintoshes. Found out about it too late.

The bad mask set CPU in the Performa 630 had faulty MMU operations during exceptions in certain address ranges. It almost functioned reliably for Mac 7.0 and 7.1, but not so much for Mac OS 7.5 or 8.x. Loading OpenBSD or NetBSD, you'd get tantalizing close, and then it would panic. (Actually logged in once to a completely installed NetBSD, looked around a bit, then tried to conpile something, at which point it died. Later versions would not even get that far.)

Was somewhat tempted by offers of a full 68040 on ebay, for $100 plus or minus, but I needed the money for rent and food for the kids.

The problem with the Performa 550 was lack of hardware floating point. (Always regretted not splurging 6,000 yen for the 68882 when I had a chance to get it on a closeout at, I think it was Ninomiya in Sannomiya.) My understanding was that the SCSI problems there were partly due to lack of floating point. Mac OS 7 ran pretty well, though.

Still have both machines, although my wife wishes I'd get rid of them. The 550 seems to have developed whiskers in the floppy circuitry that cause phantom disk insertion interrupts. The 630 has something in the monitor circuitry that ruins focus and color. Maybe that's whiskers, too. (Early lead-free PC boards tended to whisker around the solder joints.)

I keep them for sentiment, I guess. And because I someday hope to have the time to implement figFORTH and my bif version of FORTH in 68K assembler.

I extracted the ROM image from the 630 recently, to run the BasiliskII emulator under OpenBSD and on Android. It looks nice, but a major part of the magic of the old Macintosh was the careful timing that made the mouse work smoothly. That timing does not work under emulation. It's bad enough to prevent me using either emulated environment to start working on my re-implementation of FORTH during commute time on the train.

No current OS, including Mac OS X, really gets the mouse timing right, by the way.

To really get the timing right, the GUI really should be controlled by a separate CPU.

Consider what could have been in 1992, had Apple simply started putting both the Mac OS and A/UX in a single box, each with its own CPU, instead of running off into fantasies with the first abortive re-design which was theoreticallly intended to become Mac OS 8 but ended up as a pipe dream.

Saturday, September 12, 2015

Inanimacy -- One of the Weird Things about Teaching English Grammar in Japan

One of my lead teachers is using a book called Grammar 80 or something like that.

It presents 80 examples of applied English grammar that some Japanese teachers of English seem to think need special attention.

I don't think the book itself is bad. It has issues. Any attempt to write such a book on budget and get it on the market is going to have issues. Some of the issues in the orginal printing have been addressed, or even fixed. Some remain.

I do not think the school that employs me is bad for using the book as a textbook. Well, not especially bad. It's typical of the things private schools do here, and the practice is, unfortunately, spreading to public schools. (Such as my daughter's school. Ick. The things I have to fix when she comes home. Talk about pushing that stone up that hill.

Teaching to the tests is not my present topic.

(You know, I'm sure Kate Bush was channeling Sisyphus when she did that song. Oh. Some people will think that video is not safe for work, I guess. I'm an aging dancer. To me it's more about responsibility in relationships in general than about sex in particular, but I do admit explaining that to some teen-agers is difficult.)

No, teaching to the tests is not my present topic. I think I've blogged about tests before, but I only find an incomplete post in the summer English blog from two years ago. Looking in the wrong places, maybe.

Tests are supposed to be an adventure. But that is not what I'm talking about.

The unit from Grammar 80 that inspired this rant was on the topic of inanimacy in English: 無生物主語、 or inanimate subjects.

Example:
Weather prevented the airplane from taking off. 
This seems to be a surprise to Japanese academics because "preventing" is something people do, not something the weather should do.

According to their incomplete dictionaries.

Another example:
How fast computers develop! New computers enable us to do a lot more work than last year's models.
Now I've fixed those examples, and I'll return to their original form shortly.

But what is this?

English is a language in which animacy, if it was ever a grammatical principle in the old language, has almost entirely disappeared. Some point to gender diferentiation as a vestige of animacy, but that is a theory.

Just a theory.

Animacy is a principle in Japanese grammar, yes.

But the problem is that dictionaries fail to provide sufficient definition, fail to point to both the animate and inanimate corrolary vocabulary and idiom in Japanese. Or that students don't look far enough.

We are wasting two hours of high school students' valuable time talking about examples of theoretical issues that are better the topic of post-graduate theses.

Ten words of explanation, two example sentences, move on to more important things.

And then there is this example about "my father preventing me from marrying an actor". Well, I guess, if they are going to use this as an excuse to demonstrate uses of "prevent", it's a good example, even though it seems to reach beyond the unit title.

(Not sure if it does to the Japanese academic. There may be some obscure grammar in operation on the Japanese side that drags certain animate subjects into the tangle of inanimacy grammar. Something to look into at some point.)

This one, I'm going to quote verbatim:
Law prevents lots of bad things from happening.
There was one student last week that came up to us after class and asked about the logical issues of that sentence. The lead teacher is not temperamentally equipped to deal with such questions, and, really, five minutes between classes is not enough time. But he seemed to be sufficiently satisfied when I admitted that the sentence has logical issues in either language.

(The teacher said, "Please don't confuse the students."

Heh.

She's a good teacher, mind you. Very good.

The system is the problem, not the textbook, not the teacher, not the school.

I'm walking on thin ice, I know.)

Now, the original of the sentence about computers was something like this:

New computers enable us to do a lot more work than the computers sold last year.
(Ignoring the fact that it is an outdated bit of sales blurb, ....)

These poor kids are being taught the use of passive before they are being taught the use of active from junior high school.

They are being taught style instead of grammar, and, inevitably, they are being taught inappropriate style,

... because they are trying to teach English as if it were chained to ages of forced formalisms, just as Japanese is supposed to be (but is not).

Many good teachers. Lots of great students doing their best. Many good schools.

The problem, as it always is, is the system.

But there is good news. Modern Japanese is losing the formalisms. This also creates generation gap issues and other such problems, but, hey, we are problem solving creatures.

As long as the system doesn't get reactionary and try to keep individuals from trying to solve their own problems, we can work around these kinds of things.

Keeps life interesting.

Entanglement Easter Egg? 'Norah Jones — Pointer Song'

I was looking around for some indication that someone has had at least partial success in re-writing Unix in Ada, and found the Dargauds' pages on programming quotes (http://www.gdargaud.net/Humor/QuotesProgramming.html).

There was/is a quote on the page about taking a break from programming and listening to Norah Jones's Painter Song (solopsism, "Pointer Song" was the joke), and I was feeling obtuse, so I took a listen on Youtube.

Returning to the quotes page as she picked back up after the bridge, I suddenly got a voice-over, "Don't use language like that! Use C++."

Weird timing for Guillaume's audio on that page. Had me wondering whether he'd written it to trigger only on Norah's song playing in another window. Or even to dig deeper and find open browser windows with pages about Ada showing.

Couldn't find the "show source" button in Firefox just now. I know it's there somewhere, just can't remember where in this "advanced" UI.

Climbed the URL to the home page and got more sounds. Now I'm assuming it was just a glitch in the event management that held the voice-over off.
 Well, reading a few more quotes, I see that when "C" (the language) shows up in the text, it often is linked to a page about C in particular, and those links have a rollover that activates the voiceover. It was just a coincidence.

(Still, I shut firefox down and rebooted. --> various complaints about javascript elided.)

Incidentally. I've tried C++. Don't like it. Sometime, maybe I'll blog about why, but I have more important things to do right now.


Thinking about Learning Ada -- Could You Write Unix in Ada?

I'm pretty much dissatisfied with every programming language I know. But I used to think Pascal was not too terrible, and Ada has a reputation for getting right many of the things C++ gets wrong.

The question is, Can it be used for the kind of programming I tend to do? If it is a good language, why hasn't anyone built something like Linux using Ada?

This is a list of stuff that came up when I started casually looking for work on implementing a Unixish kernel and userland in Ada:

I'm not finding all the links I found yesterday, but it's enough to make me curious enough to see if I can pick up Ada. I'll try to update this list as I do so.

I'll also try to post some of my self-education efforts on my languishing Programming Fun blog.

(By the way, I did find enough to be sure that Ada is not going to be my dream language. Just enough to get me interested in seeing what I can do with it.)

Monday, August 31, 2015

Why I Can't Use the Phrase "Re-inventing Wheels" as an Insult

Many times you hear someone accuse someone else of "re-inventing the wheel" in a tone of derision.

Sometimes I say that someone is re-inventing the wheel.

But, from me, that can't be an insult.

You see, if I could find someone to sponsor me, I'd be re-inventing the entire information industry infrastructure.

Information encoding? Yeah. I want to replace Unicode with an encoding standard that would encompass the functionality of asn.1 and sgml in one rational, accessible whole, not to mention make embedding binary data in text work much more smoothly. And reduce or eliminate glyph aliasing with out-of-context characters. And separate the international encoded sets from the national encoded sets, to help reduce such aliasing and make regular expressions work better in local contexts.

That's definitely re-inventing a lot of things perceived as wheels, not presently worth the attention of further refinement.

Programming languages? Yeah. I want to re-invent the language C, the runtime, add a couple of storage classes to reduce the problems of overwriting local variables and controlling concurrent access from separate threads, and add little bits to function declaration and call syntax. And I want to reinvent a language called FORTH, so it would be more amenable to being used as a user interface shell language, among other things. And re-invent Unix with a new executable object format supporting all this. That's going to be equivalent to an earthquake in userland, not to mention in the system itself.

Networking? Of course. I want to get rid of IPv6 and implement nested IPv4 addressing. Make NATted addresses optionally visible externally, to open up more static addresses and reduce the incentive for ISPs to charge through the nose for a static address, for starters.

CPUs? Those too. Intel has been burning up resources building their monopoly on the CPU market for far too long. ARM helps, but too many manufactures are too willing to play games trying to lock their customers in. And no one really supports proper separation of user resources in current CPUs. We need to focus away from raw speed and more on stability and securability.

And so on.

Yeah, I want to re-invent wheels. So, if I merely note that someone is re-inventing wheels, that, in and of itself, is not evil. And I do not intend insult by it.

Re-inventing wheels is good for many reasons, and not just to provide churn for the sales crew to work.

(Re-inventing wheels solely for sales churn is somewhat evil, but it can be better than keeping the world as it is. I should rant about that sometime, too.)

Thursday, July 16, 2015

Ender's Game -- エンダーのゲーム

[Update, 17 July 2015 -- There are many things I want to say about Orson Scott Card's Ender's Game. Too many things. Could not get everything I wanted to say into a single post, so I ended up saying almost nothing beyond noting that the book was engaging enough to keep me up all night for a re-read. I'll add a few comments, mixed into the original weak post.]

I was at Kinokuniya on a Friday night a couple of months ago looking for some new teaching materials and thinking things like, "I could make something better than this if I had the time." and "Would this save me enough time to be the limits it imposes?"

And I found a novel from deep in my past.

A really good friend gave me a copy of the original novelette more than twenty-five years ago, so I picked it up to read a few pages. I ended up reading it until closing time, buying a copy, reading it on the train, and finishing it, standing up in the light by the ticket machines at my station, before I went home at about 3:30 Saturday morning.

[One of the less important thoughts I had was to compare the relationship of the original novelette to the novel by offering a parallel with Arthur C. Clarke's Against the Fall of Night and The City and the Stars. But all that really does is to point out that authors do, sometimes, re-write their own works.]

I get lonesome for English, and, in truth, if I don't read, my English goes downhill.

But I can put Harry Potter or Heinlein or even Bradbury down. [Or Clarke.]

Ender's Game is a good book, very thought-provoking, and not badly written at all.

Orson Scott Card's prose is reasonably clean, so it should also be a good novel for non-native students of English, as well.

[I have noticed a trend, as personal computers allow people to write more and write more quickly, away from the careful editing and honing that used to be a part of the publishing process. 

Scott acknowledges the imperfections in the novel. Some of them were partially addressed, to varying effect, in producing the movie.

No literary work is perfect. So what? Go read Wuthering Heights, and think about what we'd miss if we insisted on perfection.

I'd still prefer to use Word Perfect 3 for serious writing, rather than any of the word processing software we have available today, but that thought has nothing to do with Ender's Game.]

The novelette and the novel are not the same. Some differences are minor, some not so minor. But it's the same story.

I also rented the DVD. Showed it to my daughter. She thought it was interesting, but not as interesting as her anime. She isn't going to suddenly decide to try to read the novel in English, at least, not until she's finished with The Wizard of Oz.

The movie is significantly different from the novel. Some of the differences are substantial.

[But they do not interfere one of the more important messages of the book, one which becomes more and more important as our modern society becomes ever more "modern". Bad things happen when people manipulate people, even with good intent. And then we have to let the world go on without what might have been.]

The DVD shows some cut scenes that I think I agree should not have been cut. It might have made the ending more readable, but the ending should be readable to any serious science fiction fan.

[Those scenes would have made the movie more satisfying, and more understandable, I think. Spoiling the ending should not have been a concern.]

Movies do not always have to have O'Henry-style surprises.

[I think I want to emphasize one message from the book: Failing banks, failing nations, marketing wars that destroy the foundations of the industries the markets were founded on. Why are we so sure have to win it all?

And I recommend the sequel, Speaker for the Dead, as well. It is not the usual more-of-the-same that you have in sequels.]


Thursday, July 9, 2015

reminder -- ssh fingerprints

This is a quick reminder to myself about connecting via ssh to various sites, such as with subversion or other source code repository tools.

When the site lists its fingerprint as something like

SSH2/RSA     2048     86:7b:1b:12:85:35:8a:b7:98:b6:d2:97:5e:96:58:1d

(Note, I am not trying to mirror keys here. If anyone reading this needs the keys for some site, such as the one I linked to above at one point, that person should go to the site itself, and complain loudly if keys can't be found.)

That format is the old, less secure MD5 format.

Go into the ssh configuration file for the user, probably something like

.ssh/config 

and add or uncomment this line:

FingerprintHash="MD5"

But be sure to comment it back out when done, so you use the more secure protocol options instead.

(Should edit this when I'm awake again to add the site specifier line, which partially mitigates the problem of choosing the less secure protocol options. And otherwise say more sensible things.) 

(Also need to complain loudly to said site about not publishing the SHA256 fingerprint keys yet.)

Wednesday, July 8, 2015

Fumble-fingered Microsoft

Coincidence?

I just posted this morning about big companies behaving like Microsoft, fumbling the technologies and blaming on the competition.

I have a USB flash drive which I use to transfer files at work. Over the last few days, I have used it to transfer files between a MSWindows7 notebook machine on my desk and an MSWindows7  narrow tower machine up in the computer lab. I always get nervous about moving data on USB drives like this. Microsoft's software has bitten me in the past. So I back it up periodically.

But it had been a while since the last time. Have I backed it up this week?

So it was a little bit of an unpleasant surprise to plug it in to the notebook on my desk and see the warning dialog:

"Some problems have been detected in several files on this media."
"Do you want to fix them?"

There is no right answer to that dialog box.

Hit "Yes" and it messes up your file system.

Hit "No" and it messes up your file system a different way.

Close the accursed dialog without answering and it messes with your file system for spite.

Rip the USB out without mounting, or try to leave the dialog unanswered while you try to properly unmount the USB, and it leaves the file system and/or partition structures in a half-altered state.

It shouldn't be writing anything to those structures at that point in the first place. You don't have to write to those structures if you are only reading files on the disk.

Yes, Microsoft screwed up their various definitions of FAT file systems and the associated partitioning standards.

And they patented their screw-ups and charge people who produce non-MSWindows OSses patent-use fees for not using their patented standards screw-ups.

And if you refuse to pay because you don't want to use their intellect-impaired "Intellectual Property" anyway, they take you to court and force you to provide all sorts of proof that you and you grandparents and your in-laws have never used those patents, are not using them, and never-ever-ever will, as long as everyone lives.

Until you just give up, sign on the dotted line, and commit yourself to refrain from doing anything that would ever harm Microsoft's position in the market-place, etc.

(No, I'm not exaggerating, and I'm only speaking metaphorically about the in-laws and grandparents. Think technology relationships. That is what Microsoft's "right to innovate" is all about.)

But that doesn't mean they have any reason to write to your partition map just to mount and read the media.

So, I have to capture the data on this drive when I go home tonight, and reconcile it with my backups. Then re-format and figure out what I need to carry with me. The fewer files I carry, the safer it is.

And, incidentally, a pox on Intel, too, for helping bad players in the industry impose these poorly designed, fragile USB media on us. A pox on Microsoft and Intel both.

"Blocking less secure mail apps"

I should not post in the heat of anger. But let's see if putting my complaints into words helps me cool down.

About a month back, my aging primary computer died. I think the CPU needs more heat-sink grease, but it's a 32-bit Sempron. The RAM is kind of tight, too, just 760 MB. Using the software everyone around me thinks I have to use has been getting difficult. So I am moving my operations to other hardware.


My mail client, when I'm not being lazy and logging in to my gmail account from the web, is usually Sylpheed. (A little more about Sylpheed from wikipedia.) I had been using Sylpheed on a regular basis when things hit the fan with systemd, but I had been rather lazy from that point until the hardware died. Moving from debian and learning how to use openbsd didn't leave me much time for setting up the mail client. I don't know when I last logged in to gmail with Sylpheed.

After moving to new hardware a few weeks back, I find myself unable to log into my regular gmail account from sylpheed. (I can log into my family gmail-hosted e-mail, however.)

Couldn't find any answers on Google. Didn't have time to dig into it.

I've filtered notices and other junk from Google into a folder just for Google, and I often forget to look there. I have to start looking there more often.








I looked in there just now and found a notice from Google from a few weeks back:

Hi Joel,

We recently blocked a sign-in attempt to your Google Account [address].

Sign in attempt details
Date & Time: [date and time]
Location: [location]
If this wasn't you
Please review your Account Activity page at https://security.google.com/settings/security/activity to see if anything looks suspicious. Whoever tried to sign in to your account knows your password; we recommend that you change it right away.
If this was you
You can switch to an app made by Google such as Gmail to access your account (recommended) or change your settings at https://www.google.com/settings/security/lesssecureapps so that your account is no longer protected by modern security standards.
To learn more, see https://support.google.com/accounts/answer/6010255.

Sincerely,
The Google Accounts team      
    This email can't receive replies. For more information, visit the Google Accounts Help Center.    

You received this mandatory email service announcement to update you about important changes to your Google product or account.

So I was, indeed, blocked.

Well, if I were using MSOutlook or MSOutlookExpress, especially on MSWindows98 or MSWindowsXP, I'd almost consider this a reasonable approach to a real problem.

Except I can log in to gmail from my Android 4.something-now-old tablet that is not getting updates from anyone any more. That fact puts a little unsavory perspective on things.

I checked the links. It was more of the same. Apparently no comprehension that it might be Google fumbling the more secure login handshake.

This reeks of Microsoft's deliberate habit of fumbling the newer, better open standards in an effort to convince everyone to believe they have to use Microsoft's less secure, less capable, completely inferior offerings.

(Financially speaking, Microsoft has been quite successful at this game. Four of five people who read this post will still be running some sort of Microsoft OS, and are still in the habit of thinking that Microsoft Office is the definition of office productivity software. What OS are you using? Maybe you are using Firefox, but who makes the rest of your software?)

I probably need to be explicit about this, but Sylpheed is not a fly-by-night Android App built by someone I've never heard of. The OS is not that Android OS, that, finally, in version 5, supports some semblance of one of the foundations of a secure OS, a way to login as a specific user.

(... But is ultimately still effectively tied to the OEM's opinion of what freedoms the end-user should be able to exercise -- Breaking out of the OEM's jail requires, for most people, using another fliy-by-night app by some developer you-nor-I have ever heard of, only mechanically rated by the PlayStore rating system.)

So much for Google's dalliance with "Don't be evil."

(And, yes, this one does get posted, even though I'm much calmer now than when I started typing. Filtering a few swear words and other less-coherent rants out of the post helps me calm down. I have a lot of these rage posts that I don't bother posting. There are more that I delete. But this one gets posted.)

Friday, May 29, 2015

Getting Freshclam

I installed clamav on my openbsd notebook because I decided I needed clamav for when friends ask for help.

Trying to get the current database resulted in the message

    ERROR: Please edit the example config file /etc/clamav/freshclam.conf
    ERROR: Can't open/parse the config file /etc/clamav/freshclam.conf

A quick scan through the configuration file didn't reveal any particular problems that I noticed. (If it had been a snake, it'd have bitten me.) No file ownership or permission issues.

Searching the web sent me to lots of answers like this:

     Comment out the "Example" directive on the third or fourth line of the file.

The clamav team really wants you to at least look in the file, I guess.

Not a bad idea.

I'm downloading the current database now. Next step is to write an image of this to the bootable USB drive.

Wednesday, April 29, 2015

The Frustrations of Technological Convenience (Cellphone) -- 技術の便理に不便(携帯電話)

Sometimes my cellphone inspires violent desires in me.
この携帯電話が俺の心を激しく乱すことがあります。

The other morning, I was hurrying to the train. My wife had asked me to get milk on the way home, and I thought, to keep myself from forgetting, I'd use the memo feature on the phone.
先日、朝の電車に間に合うように急いでいたところ、妻に牛乳の買い物を頼まれていたことを忘れないようにと思って、携帯のメモを使ってみようとのとっぴな発想。

I didn't think the memo needed a title, so I left the title blank empty and saved it.
題名は得に必要無いと思って、その欄を空にして保存しました。

So it saved with the title 「メモ」 ("memo" in katakana).
したがって、「メモ」と言う題名で保存できました。

I didn't think it needed a title. I did not want it to have a title. I was too busy to think about it that much, but I knew the title, "memo" was not going to help.
題名不用と思っていたのです。題名を付けたくなかったのです。急いでいて考えたくなかったのですが、「メモ」何かは役に立たぬ題名のように思っていた。

If I'd been thinking, and more resigned to letting a stupid machine have its way (or, rather, not arguing with the engineer who mis-designed the user interface) I'd have just typed "milk" into the title field and saved it. Such a silly little thing.
まあ。考えていたら、いや、機械は基本的に頭脳に恵まれているワケじゃないこと、つまり、このユーザインターフェースを設計したエンジニアと意見を争う必要ないことにもうちょっと諦めの心を持つことできてたら、ええっ、素直に、「ミルク」と言う文字を題名のところに打ち込んで保存して終わったでしょう。大したことない物さ。

But I wasn't thinking. I was in a hurry, and I was not in the mood to slow down to make sense of senseless mis-engineering. So I tried three times to save it without a title. No dice. It kept seeing the title blank empty and then helpfully filling it in with the default title.
しかし、考えていなかったのです。急いでいたのです。ゆっくりと、感覚の無い目的外れの設計を考慮して意味を見つける気分ではなかったのです。三度も題名なしのまま保存を試みたのに当たりなかった。ただ、題名の空きを見て、助けてくれるように指定なし時の題名を、埋め込んでくれるのです。

And, because I couldn't walk fast and mess with the phone, I missed the train I wanted, and had to take the next one.
受話器をいじりながら速歩きはできないので電車を一つ遅らしてしまった。

Memos in this cellphone simply SHALL HAVE TITLES.
この携帯電話にしては規則があります。ただ単に、メモというものは、題名あり。

I wanted to throw it against the wall and kick it into oblivion.
どこかの固い壁に当てて投げつけて忘却の川に蹴っ飛ばしたくなった。

But actually, it saved me from riding the overcrowded commuters' express.
でも、これのことでちょっと助かったよ。通勤特急に乗らず済んだのです。

Standing room only on that train, packed like sardines.
あの便は立つだけの余地です。すし詰めです。

And I had a few minutes on the platform to reflect on the difference, too. I don't remember if I sat down on that regular, but I could read my scriptures on my android tablet. I got to work fifteen or so minutes early instead of twenty, still had enough time to talk with the teacher about the first class.
ホームで、急行と各駅の違いを反省する暇もありました。座ったかどうかは覚えていませんが、アンドロイドのタブレットで聖典を読む余地があった。20分早くつかなかったとしても、15分早くは着いた。先生と最初のクラスの打ち合わせもできました。

This cellphone is built on "free and open source technology" underpinnings. I'm not sure how things fit together, because I never could find my way into the old Linux Mobile Foundation stuff.
この携帯電話は「自由自在技術」の土台の上ににできている。一昔の「リモ・ファウンデーション」の資料などに潜り込めなかったので、どういう感じでできているかがわかりませんが、一応、「フリー・アンド・オープン」なはずです。

My previous phone, another docomo phone by Panasonic, was a LiMo phone, and I could find a tarball (in an odd format) with some sort of source on Panasonic's support site, and I could find the LiMo website, but I couldn't find my way into the developer mailing lists or the source tree or any information about how to get started on the thing. People would tell me it was there, but I couldn't find my way in. I still don't know why.
一つ前の受話器はまた別のパナソニック製のリモ型電話でした。ソースコードの圧縮塊を(見たことのない圧縮形式で)パナソニックのサポートサイトで見つけたのは見つけたのですが、開発者のメールリストやソースコードのレポジトリー(倉庫)が入れなく、最初の一歩できなかったのです。あるのはあると言われていましたが、入り口がわからなかった。まだまだ状況がわからないままです。

Maybe it had something to do with language issues. I can deal with Japanese and English, but not with Korean or Chinese.
言語の問題だったかも知らない、日本語と英語はいけるけど、韓国語や中国語はできません。

The LIMO Foundation has been superceded by the Tizen Association. Their websites, tizen.org and tizenassociation.org, seem more accessible. Maybe they felt the heat from Android.
リモ・ファウンデーション については、 Tizen Association がその後を次いでいるようです。ウェブサイトの tizen.orgtizenassociation.org はリモよりも入れそうです。アンドロイドからの競争熱を感じているかな?

Maybe I'll be able to actually dig into this and make a memo app that doesn't fight with me. Or a calculator that is useful, or a timer/clock that shows seconds.
もしかして、潜り込んで、自分と喧嘩しないメモアプリを作ることが出きるかな?それとも、役に立つ電卓アプリとか秒数を表示するタイマーや時計など?

Friday, March 20, 2015

Semi-bright Spots for Developing on-the-go on Google's Android

I have a friend who is augmenting his standard of living in seriously positive ways writing apps for iOS. I commented that I have not been happy with Apple since they got in bed with Intel on the switch.

(Would not have minded if they hadn't been binary about the switch, if they had simply added Intel models and not dropped the PowerPC processor. Would mind less if there were AMD models. Would mind much less now if I could get a usable development capable workstation running (Mac OS, I assume) on a 64 bit ARM processor.)

He replied that Google has become the new Microsoft.

Yeah, Google is going the way of all big companies. We know that.

Going big is going bad. WordPerfect fell into that trap, didn't they? I expected Google to go downhill.

He encouraged me to get an Android tablet anyway and start learning to build apps on it. He was right, and I did, and I have been digging into developing on/for it. It's definitely more of a mess than the iOS, but that's to be expected, too. Open source software is software developed by committee, and it may be the best way that committees can and should work, but the lack of focus shows through.

Found some sort-of bright spots, but the shine doesn't last.

Up front, before I go full-negative here, the Android device is a nice portable mailbox. Gmail is improving, and I really should try out some of the 3rd-party mail apps. It's also a very nice box for reading scriptures on the train. Google maps is really handy, although my portable router gets plugged up and kicked off the telephone network rather quickly. Not sure why.

But everything is so half-baked. Here are some of the frustrations I'm working against at the moment:

** Even the math/algebra/geometry app Geogebra has the UI hog-tied (in the Android version, because of lack of mouse and real keyboard, I assume). (Slightly unfortunate name, that. Would Algeobramathetry have been better? And there is a Japanese site.)

But I really wish they weren't deluded into thinking that everyone has all-day connection and that saving to their servers is somehow better than saving to the user's own disk drive.

** The text editor Jota has gone, how can I say this politely? connected. You get ads from Google when you run it, unless you pay for it. Seems reasonable, except that a text editor should never have any reason to connect to the network internally.

Externally, yes, it's nice to hook the file save/load dialogs into the system's networking functions. Not internally. Instead, by external connection that I have to initiate myself.

When I'm writing in my journal, some of that is so un-processed that I wouldn't even want myself to have access to it, if I could avoid that. And if the text editor is getting ads unless I pop for the low-low use fee, how do I know that it is not copying my keystrokes to the web even if I pay the low-low use fee?

Functionally, it's pretty nice, and getting better. But I can't trust it to use for the things I most need a text editor for.

And Jota is the best text editor I've been able to find so far.

And all the others do the same thing about ads.

** The file manager Astro has the same problem, too. It's a little funky about how you dig around in your file system because, I suppose, of the fake walls Google helps the vendor put up, making a show of protecting your data. But the real sin here is the connected "functionality". The "Free Astro Backup Account" and the "Rate Us".

Again, I can't trust it for what I need it most for.

** Raised my eyebrows just now when I updated the LDS Gospel Library and it asked for access to my profile.

Why should it need that? If it really does need something out of there, Google has done a poor job of normalizing the storage of my profile.

** Oh. Yeah. Google has done exactly that. That's one of the reasons my friend called them the new Microsoft. Cutting corners as a way to increase access to potentially profitable stuff.

(Hmm. Is there a way for an app to tell me that it is giving back access that the developers realize they don't need after all?)

** Basically, all the apps that fill in the functionality that the vendors have stripped out have the same problem. Trying to force the revenue stream. Succumbing to the temptation to over-reach in functionality.

There would be no problem if the developers for these apps offered external integration to for-pay backup space and such, say, a way to use the file access dialogs to save and load across the network.

But the functional integration is gratuitous, gets in the way of using the apps as tools, and breaks the agreement of trust.

Apps should do the minimum, and delegate the rest. That's the way they can be trusted.

Moving on to some of the more developer-oriented tools:

** The wireless keyboard loses connection and bounces. Really hard to get stable text entry with it on the train or anywhere else there is a lot of wireless traffic.

Bluetooth is such a ... . Well, I don't have nice things to say about bluetooth. You should not consider bluetooth a feature. Call it a blob of misfeatures.

** Gforth is nice.

Unfortunately, it tends to go pop every now and again. Sends you to the Android equivalent of a desktop, and when you go back, your session is gone.

The keyboard and non-ASCII characters seem to be some of the issues here. The pseudo-walls also cause problems, and not being run from a real shell causes more.

Actually, if I weren't busy with my own projects, gforth on Android is something I would be focusing on. It is definitely one of the brighter spots. Cool stuff here, and they need more of a user community.

** No-root Debian is nice, but you do need a hardware (USB) keyboard and mouse to do any serious work, and it goes pop every now and then like gforth does. Probably for similar reasons.

Trying to edit code in it on the train has not worked well for me. But I've been able to walk it through compiling code on the train, even with the software keyboard. Cool? Yeah.

bc and gforth run nicely enough.

A little bragging on myself, my 6800 assembler and my bif-c implementation of forth compile and run well enough on no-root debian. (Need to try compiling Joe Allen's exorsim on no-root debian sometime, or write my own 6800 simulator.)

Now this is not your free ticket to editing the system files. It's subject to the same pseudo-walls as all the apps that play "nicely" in the Playstore sandbox.

** terminal-ide is useful for understanding what's going on under the hood. It is subject to the sandbox rules like no-root debian, but the help functionality gives you a bit better view of what's happening on the tablet when you are working with the Google-provided hosted developer tools.

Working with an incomplete set of libraries, and without a true shell, is not exactly productive. I haven't been able to get the 6800 assembler to produce object code, nor have I been able to get the bif-c interpreter to give me a command prompt before segfaulting.

Not even thinking of trying to compile bc yet.

** Google's hosted developer tools are, well, developer level. Steep learning curve.

The biggest disappointment was trying to get admin-level access to my Acer tablet. I won't comment more on that until I buy a Nexus and try again, to make sure it wasn't just me.

The developer tools don't run well on openbsd. I don't want to use Linux any more after various things (such as /usr, and uefi) in the flap surrounding the systemd fiasco made it obvious that Linux is subject to social engineering. But I'll probably have to get a dedicated dev box with some sort of Linux running, if I decide to get serious about getting my own apps running on Android tablets.

Whether I do that before I buy a Mac and an iPad and start digging into iOS, I'm not sure.

Ask for help getting the android dev tools working on openbsd on the misc@ list,
and you'll get laughed at and accused of selling your soul.

Which is as it should be.

---------

I hear Android 5.0 brings back users.

You say, "WHat?"

User login. Where you have a user name that you choose and an associated password.

On Android, until Android 5.0, the idea was that everyone would not want the bother of managing users on a portable phone.

Stupid idea. If you want to lend your phone to a friend, you probably don't want to lend your friend your private phone book. And, for mixing business and personal use on the same phone, well, that's the data sink that feeds about half of the spam between PCs running Microsoft's OSses. Ticking time bomb.

And so much mistaken security effort induced by that one bad decision, trying to re-work the (correct) security model of *nix systems into an (incorrect) model that just ended up needing to be fixed.  And all the phones that have been sold with the engineering error, and all the vendors who are unwilling to provide upgrades to Android 5 for their hardware.

Until I see for myself whether Android 5 has actually brought real user logins or just gone further down the road of trying to re-invent things that were done right to start with, just so managers could pretend they were being productive without really doing anything, I can't say whether things have actually been fixed.

---------

The GPL and all other true open-source licenses are legal implementations of something called an "agreement between gentlemen".

Simply put, there are rules to business. Treat each other nicely or drown in the cesspool of your own making. And when you are drowning, well, if it's your greed that is part of what is filling the cesspool, don't be surprised if everyone else is too busy trying to float in a mixture that is less dense than they are to help you.

(You do understand the real danger of cesspools? It's not the smell. It's that the human body, which floats somewhat well in clean water, sinks in a cesspool.)

The gentleman's agreement is that we play the games, but we don't go too far. When we see someone going too far, the agreement allows us to kick the recalcitrant in the seat of the pants to get his attention. If necessary, it allows us to kick the consistent offenders out of the game. Not just allow it, require it.

With open source licenses, the license helps us talk about figuring out what going too far means:

  • Take, but give back.

  • Don't build and sell stuff intended to be used once and thrown away. 

  • Support your customers. 

  • When you aren't able to support your customers, allow them to support themselves.

  • Most of all, don't demand that your customers get approval for every little thing they want to do with the product they have been kind enough to buy from you.

Take. But give back.

That's how real value is generated. When we give back, if we give for real, we don't lose anything real, but the surrounding community gains more than we give.

That's the first law of economics.

Applied to free OSses like Android and Linux and the BSDs, if you are making money from them, support the developer communities with money, code, and especially infrastructure.

Publish your source code, including those no-they-aren't-really-your-crown-jewels drivers, of course.

Set up the infrastructure and support crew (cough, Darwin, Apple?) for open work on the software that makes your business model work.

Not just Apple, of course.

My first cell phone was a Docomo-branded Panasonic running a Limo/Tizen OS. Somewhere in the documentation was a link, and I found, somewhere on docomo's servers, a tarball that claimed to contain the source code that was their "compliance" to the GPL. I never was able to unpack that tarball in any meaningful way before that phone died.

That's not compliance. Bare minimum compliance would have been a link to a page that would
  • tell a competent end-user how to find the community and join it,
  • tell a competent end-user what kind of system was necessary to get at the source code,
  • describe how the competent end-user could set himself up with a system to do at least some useful custom work on the phone without eating more than half a month's pay check
  • in addition to a tarball (but better an open source tree) that could be opened by standard tools.
Maybe I didn't need to know how to get a shell on that phone. But it would have been really useful if I could have used my Java skill to produce a rudimentary stopwatch, among other things. And there were some other things that I have fought with that could have been solved fairly easily with access to a shell.

My new phone is a Docomo-branded Sharp built phone. (I plan to give it to my daughter shortly.) It has problems, and I could solve some of those problems with shell access. I haven't bothered looking for the compliance tarball for it, probably will not bother.

When I talk about such things at the Docomo service centers, if the service rep knows what I'm talking about, there's a look in her eyes that should be reserved for when she sees a terrorist.

If the wireless phone network is that vulnerable, I'm not the problem, the phone company itself is.

What is the difference between Limo/Tizen and Android?

Google did a better job of telling interested developers how to get started.

That's about it.

But there's still something missing.

When I got this Acer brand Android tablet, it was still at Android 3.2 or so. Acer provided an update to Android 4. That is, they provided a binary update.

I found some source code on Acer's site, but I am not optimistic about being able to use it. None of the mainstream Linux distributions or *BSD OS communities have it in their repositories, because it is really hard to integrate the code into their trees and workflows. And it's hard to get the hardware, and hard to get the hardware set up to reliably test the OS that results.

If they are going to be able to use this source code, they need more help from Acer and Google. This is where things shift from the taking phase to the giving phase.

They need Google and Acer to assign an engineer to help them get the code integrated into their source tree. And they need test hardware.

NO WAY!!!!!!! you say. No company is going to waste valuable engineering time on supporting non-product!

This is where you shift from taking to giving, Google. All the billions you have in the black, surely you could give up maybe ten thousand of dollars worth of engineering time. And a pair of each of the current model Nexus tablets to the Fedora, Debian, and Ubuntu communities, and to the FreeBSD, netBSD, and openBSD communities wouldn't even begin to hit your bottom line.

That would provide enough to provide a way to keep these tablets useable even after the maker quits providing Android updates. It would also help the makers figure out how to set up user support communities for Android on their products, which is where it comes back around to strengthen your bottom line.

That's what is missing in Android. Just because Apple is being a pig is no excuse.

Thursday, February 26, 2015

Skating Mashup on White Rock

Chasing around in memories of progressive rock.

Looked up Rick Wakeman's White Rock and found this mashup of The Shoot and Olympic performances by Tessa Virtue and Scott Moir on youtube.

And I'm distracted by the confllicts between law, courtesy, and art. I'm sure Rick Wakeman wouldn't mind, and I imagine Tessa Virtue and Scott Moir might be pleased. Maybe.

It's the Olympics committees I'm worried about.

Courtesy is owed, but it should not be forced.

Art is art.

Tuesday, February 3, 2015

To the Girl on the Train

(One of those had-a-bad-day riffs, still not sure whether I should post it.)

You got legs.
Pretty legs.
And a skirt to show them off.

Well I can see you got legs.
It's not my business, how beautiful they are,
It's not something I wanted to know.

I got eyes.
Bad eyes.
They only see what's in front of them,
And that, none too well.

If I see your legs in that skirt you're wearing,
Is it my fault or yours?

I don't know.

Fashion, what you wreak in men!
What you wreak in women!

I was already distracted,
My thoughts gone far afield
To arcane mathematical hobbies,
And now I see your legs.

You got needs.
I can see your needs in the fashion you wear.

But I'm not one to see your legs
And I'm not one to know your needs.
Will you pardon me
If I turn my eyes away?

[Really hadn't wanted to channel ZZ Top today.]

Monday, January 5, 2015

What WordPerfect Corp Should Have Done in the 1980s (or, the Reasons They Did Not Hire Me)

A question about running Unix WP 5 on a modern Debian system brought back some ancient memories.

I was at BYU in the mid-'80s, when WordPerfect was becoming the standard word processor. I knew the guy who managed the Macintosh version development for the first several years. Took classes from one of the founders of the company. Etc.

Tried to get a job there. I was headed in a different direction than they were, so they turned me down.

One of Satellite Software International's products was a FORTH language system which I used (not very effectively) as an intern at IBM when I was recovering from a broken engagement in 1986 or so.

(Heh. As I write this, the English wikipedia page on WordPerfect has it as Satellite Systems International, which is a completely different company. The Japanese page has it correct. There's one kind of bit rot.)

My memory is that Dr. Ashton once said, in class or lab, something about early versions of WordPerfect being implemented in FORTH, and that the C code base had a lot of FORTH-isms for quite a while. (This would not be surprising. FORTH, like LISP, is structured well for text stream processing, which is a lot of what made WordPerfect such a successful product.)

If I could have gotten Dr. Ashton's ear --

Never saw Bruce Bastion on campus that I remember, but I did have some opportunities to talk with Dr. Ashton, since I took a class from him. I tried to talk FORTH and the 6809 up to him. Didn't find out about their FORTH language system product until some time after that class. This was just another example of the social, political, market, non-technical stuff going on at the time, and my studied cluelessness.

I daydreamed while doing my homework, about getting into that company and building a "WordPerfect PC" using the 6809 or the 68000. About re-writing, as I assumed, the code in FORTH, and thus making it possible for the customers to add custom modules.

About using WordPerfect and a canonical WordPerfect Personal Computer as a wedge to push a new cross-platform freedom-enabling OS based on constructing a Unix-like system on the foundations of FORTH as a run-time and library model.

I was enamored with FORTH. They were moving the code base for WordPerfect along on standard C.

-- Don't get me wrong. I like C, to play with. It's lacking in certain features to support large projects, and C++ and Java only manage to point their fingers sort of in the right directions.

-- And not that FORTH did/does not need extending to handle some of the things that C handles well. But FORTH has the extensibility that C still lacks. (And I know that extensibility is a two-edged sword, the tendencies of source code to slip away from standards. And I now have an idea how most FORTH enthusiasts have cut themselves carelessly wielding that sword)

I was interested in the cooperative and open models of software development. They were interested in capitalizing their intellectual property.

I was anxious to set up viable opposition to the Microsoft Way. They were interested in a cozy third-party relationship with Microsoft.

I do not understand why anyone would want to voluntarily enter into a relationship with either Microsoft or Intel. It was obvious to me back then, that both companies were hell-bent on pushing their (quite patently false) claims of being the standard, pushing until they had a de-facto monopoly. And anyone who knows history knows the tyranny of monopolies.

Bell Telephone was the only counter-example of a non-evil monopoly, and the only reason they kept their nose (mostly) clean was that the government was breathing down their back.

There seem to be sirens lounging and singing on the rocks of technology --

Technology can be built into systems. (Computers are the archetype of this.)

Systems are great tools for tying customer relationships.

If you can discover it first, keep it secret, get a patent, you can tie your customers to your technology and then you have a guaranteed revenue stream.

It's a siren song.

These kinds of royal grants have been the tools of tyrants in practically every age, and the wedge they form in the social structures of tyranny has proven to be the most effective and destructive tool in undoing the same tyranny.

Unfortunately, innocent bystanders usually get hurt in the wars that result, by the thousands and millions.

That's the reason the US Constitution said "limited time". Temporary stewardship over part of the intellectual and creative commons, derived from the facts of individually-implemented ambition. None of this nonsense about making property out of the social artifacts of the intellectual domain.

No one was supposed to be able to keep control of their inventions and writings their whole lives.

Otherwise tyranny results.

Well, I was disappointed that people who should have been steeped in the traditions of freedom at BYU should be taking their company right into the heart of tyrannical traditions.

And they weren't interested in an idealistic, naive fourth-year sophomore like me.

Now, who's naive?

I guess we all are.

You know, here's the whole reason idolatry is so strictly discouraged in the Bible:
Systems.

The tyrannical pseudo-religious systems that idols represent.

Until we, as a race, become mature enough to quit worshipping systems, I think God will never let us build a proper computer operating system.