Collected Quotes July/August 2012

My main page on quotes is Quotes to Make You Think. Additional ones can be found under the Quotes tag.


I read like a wolf eats.
I read myself to sleep every night.
— Gary Paulsen

There is nothing on this earth more to be prized than true friendship. — Saint Thomas Aquinas

If you surrender completely to the moments as they pass, you live more richly those moments. — Anne Morrow Lindbergh

I know that when people pull apart, they usually employ misunderstanding as a weapon, deliberately getting hold of the stick’s wrong end, impaling themselves on its point in order to prove the perfidy of the other. ― Salman Rushdie, Fury

Open a book this minute and start reading. Don’t move until you’ve reached page fifty. Until you’ve buried your thoughts in print. Cover yourself with words. Wash yourself away. Dissolve. ― Carol Shields

Always the beautiful answer who asks a more beautiful question. ― E.E. Cummings

Never let your sense of morals get in the way of doing what’s right. ― Isaac Asimov

Good news travels fast; bad news travels faster.

We are drowning in information, but starved for knowledge. — John Naisbitt

A man who procrastinates in his choosing will inevitably have his choice made for him by circumstance. — Hunter S. Thompson

The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. — George Bernard Shaw

There can be no effective control of corporations while their political activity remains. To put an end to it will be neither a short nor an easy task, but it can be done…It is necessary that laws should be passed to prohibit the use of corporate funds directly or indirectly for political purposes; it is still more necessary that such laws should be thoroughly enforced. Corporate expenditures for political purposes…have supplied one of the principal sources of corruption in our political affairs…  — Theodore Roosevelt, speech at Osawatomie, Kansas, “The New Nationalism” (August 31, 1910)

You were once wild, don’t let them tame you — Isadora Duncan

Love is an abstract noun, something nebulous. And yet love turns out to be the only part of us that is solid, as the world turns upside down and the screen goes black. — Martin Amis

Thanks to all the friends and inspirations who shared quotes: Anthony, Patrick, Janice, Alina.

The Long Problem

Wait Time

We encountered a vexing issue where sections did not appear for the class list for students. We confirmed the students were properly enrolled. We confirmed the current date was between the dates for learning contexts and terms. We confirmed the access was granted to the students. Still, the sections were not showing, but the usual suspects of administrator or instructor error we not the culprits. Someone eventually figured out that the sections showed up in a student’s editor for showing hidden classes, but not on the classlist. Moving the section higher in the list caused other sections to disappear.

We found strange errors in the webct.log about: “com.webct….SettingsDAOException: Generic DB exception(SMS)-SettingsDAOImpl::loadSettingValue java.sql.SQLException: Numeric Overflow”. The stack trace talked about oracle.jdbc.driver.NumberCommonAccessor.getLong which for the Oracle JDBC driver to react like this… We knew was bad. Open a ticket ASAP with Blackboard with a high severity bad.

Then we noticed these errors: “com.webct….NewMemberEJB METHOD: isRoleHasAccessToLc Failed to get sms setting for lcId =9999999999999 and setting = restrictAccessSection_SSTU”. This restrict access had to be related to the students not being able to get into their sections. Failing to look up the value was the curious part.

In Java’s primitive data types, there is one called the long data type. It has a maximum value of 263-1, aka 9,223,372,036,854,775,807. (Yeah, 9 quintillion.) According to Blackboard, Inc., it should take a hundred years to use up the possible values. This supposes that values are added by incrementing them by 1.

It turns out the section copy tool adds a digit each time the section is copied. So the original has about ten digits. The copy has eleven. The copy of the copy has twelve digits. This is our third year in the product with the capability. We have three terms a year. So that is nine potential generations. So ten digit values become nineteen in three years not a hundred. Doh!

Blackboard’s workaround is to divide the numbers exceeding Long by a thousand. Of course, there is a sanity check to make sure none will conflict with existing values. Ugh. In testing I found changing any setting different than a higher context adds a new value to the database. So basically we have to fix every setting change our clients make not just access to sections for students.

Our legendary analyst figured out changing the setting at the institution level and applying to child contexts removes the settings. Of course, that removes the customization of each course or section.

Counting

In the beginning I used TOTAL=`ls /d2lmig/*/*/bak/*/* | wc -l` to get a total count. All was good.

Until at around 55,000 files I got: -bash: /bin/ls: Argument list too long.

Then I used TOTAL=`find /d2lmig/*/*/bak/*/* -name *.bak | wc -l` to get a total count. All was good.

Until at around 90,000 files I got: -bash: /usr/bin/find: Argument list too long.

It happened that I was already using a for do done loop and getting a count for each bak directory. So I added within the for loop:

TOTAL=`expr $TOTAL + $COUNT`
if [ $RUNTYPE = “INTERNAL” ] ; then echo ” Running total = $TOTAL” ; fi

(INTERNAL is a value I pass at the command line that controls whether the email is sent to me or other parties.)

Comment out the TOTAL using find. Voila.

I know, I should have done it this way in the beginning. Sloppy code to go back and get the total. Maybe because I have this post here, I reference it and not be so bad in the future.

Students Out PR Professionals

As a Valdosta State University student, we nicknamed the student paper the Speculator. Incorrectly reading between the lines were their specialty. Grammatical errors and spelling mistakes were part of their standard. But it was amusing to see them go after the administration. Not so much to be reported on when I made big mistakes.

As university staff, I made the Spectator in information technology articles on viruses, online elections, WebCT upgrade, and the portal. At first they made me nervous because I worried about them finding out about the skeletons. After a couple interviews, it became obvious they had no idea about the skeletons and would only cursory look at the topic without digging very deep. So it would good publicity and exposure.

The Red & Black as a daily published much more that the Speculator. Last year the paper moved to a weekly print but daily web. This week several students (Editor-in-Chief, other editors, photographers, etc) all quit in reaction to a memo placing editorial control in the hands of non-students and hiring professionals to take over more decisions in the creative process. Immediately the students setup a web site, Red and Dead, a Twitter account @redanddead815, a Facebook page. Their Twitter account was suspended for gaining followers too quickly.

At present, the whole story is extremely one-sided. A couple statements from the R&B board against the draft memo, dozens of statements, bloggers, and newspaper articles like the Chronicle of Higher Education, New York Times, and Washington Post critical of the board. It is like the board is not even trying? Or unaware or unable to use the public relations avenues available to them. None of this means they are in the wrong or think they are in the wrong. It just helps the rush to judgment against them.

Maybe these students are in the wrong field? Public relations seems to be their strength.

Context Menu

Almost everyone using a computer to access the Internet uses the left click on a link to go to its location. Exceptions might be left handers who switch the buttons on a mouse, those using screen readers, or similar small niche users of the Internet.

I tend to multi-task, so I will scan a page and open all potential links I want to check in a new tab. The  way I accomplish this is the browser’s context menu with a right click on the link. In both Mozilla Firefox and Google Chrome, the open in new tab (or window) are the first options.

Since my exactly what I wanted to check does not persist in memory, opening them all up in their own tab, lets me not have to remember. I can just circle back through the tabs.

So any time a web designer changes the context menu so it is not there, my blood pressure rises.

A decade ago, web designers were terrified of people stealing photos and source code, so they would disable the context menu. Back then, I would turn off JavaScript from running, go to the page, download their images and source code, then email it to them as a proof of concept that all they did was annoy people.

Today, it seems my nemesis is a support portal where the right click on a link operates the exact same as a left click. At least Ctrl+Click still opens the item in a new tab, which is what I want. I did not name the company in hopes it takes them longer to not break my workaround too.

P.S. It appears that they keep track of the last page visited, but updating a ticket does not make it the last one visited. So I end up somewhere else.
🙁

Universities and SIS “Innovation”

Several years ago, while I worked at a medium-sized university, there was a very similar incident like what happened in Student Is Sanctioned for Creating Class-Registration Web Site. A student wanted into a full class. So he built an application to routinely check for whether a seat was available in the Student Information System. The database administrator for the SIS noticed too much traffic from this user while looking into why the system was working too hard. My impression was the level of traffic was not at the Denial of Service level, but still something that needed to be addressed to improve the experience of others.

The CIO had a chat with the student. At the time it amused me because years before I had been in the same chair as the kid. After, the CIO joked about wondering whether to hire the student, the same as he had joked about me and a friend.

The student went on to develop a student organization site and other good things. He found the right outlet for him to express in code things to scratch his itches. Personally, I think this is good for the students and good for the university. However, a close eye needs to be kept on these students to ensure they make secure, stable, and long-term viable products. When the student graduates, there needs to be a plan for someone taking over the upkeep.

Since then, I have run across even professionals making these students’ mistakes of slamming a system with traffic. One administrator wanted to check whether we were up, so he wrote a JavaScript web page that would hit the development site we provided. It had one two machines, so when five people had that page open at the same time, they somehow got 4 on the same machine which croaked at that kind of load. Weblogic, in my experience, does not handle the same transaction for the same session when the first has not yet completed. Each subsequent transaction takes even longer than the first until it builds up to the point it is taking minutes to complete what should take a fraction of a second.

In general, developers will contact us about developing something to work against our system. We try to be helpful and advise what are likely successful directions. There are still mavericks, who will write something that causes a problem and we try to track down who it is slamming our systems. I consider it part of the job of running a system people want to use. Someone will try to accomplish things outside the normal enter a URL, type in a username, type in a password, click, click, click…. Heck, we write scripts to get around this.

These events are all opportunities to meeting and educating developers.

Spoilers

Ewww? Sports: I bought my first DVR specifically to record the 2006 World Cup games while at work. I was in my first few months and did not feel like I could afford to take off work to catch all the games I desired. For the 2010, I tuned out of Facebook because I knew lots of people posting live about games. Comments by friends on social media during a game is usually better than the announcers. Unless someone I know is actively posting about a game, I tend not to post anything of my own trying to respect others who might be time shifting the game.

Books and Movies: If asked, I tend to spoil books and movies. I tend to be better about holding myself back for movies newly in theaters or on DVD/Bluray. But if something has been out for a long time, then someone has had plenty of time to consume that story. Maybe they eventually will, but I tend not to save up things. Probably because the longer I wait the less likely I ever will. The exceptions for me tend to be the movie version of books where I watch after reading. The difficulty for me is explaining why someone would or would not want to see something with them feeling like it has not been spoiled.

George R. R. Martin killing off the sympathetic characters is a good example. Some people hate it. Some people love it. It feels unfair not to warn people that it happens in each book. Why someone might like the TV series better without saying anything that happens? Ugh.

Scripted Television: Pretty much both issues of sports and movies apply. I am not very sympathetic regarding shows that have been around for a long time. But I try not to spoil things that are live.

So, I guess people should avoid talking about things they want to see or read around me.