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, 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.org や tizenassociation.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.]