Terminator Reruns

I should probably be doing something more productive than watching reruns of “Terminator: The Sarah Connor Chronicles”…

Today at work I had to think about recycling a bunch of old computer equipment. I’m not so good at throwing things away, but in this case the decision is comparatively easy. But now that I sit here watching bad science fiction - well, it’s very melodramatic - I can’t help thinking about our enslavement to technology.

Posted in film-and-TV, olssons | no comments | no trackbacksPosted by Evan Bittner Thu, 14 Aug 2008 02:48:00 GMT

The Following Items Will Remain On Backorder

I found an amusing document on my desk when I arrived this morning. We place a lot of book orders with a certain wholesaler which shall remain nameless. We have about seven active accounts. I place orders for every account on a more-or-less daily basis through an electronic data interchange (EDI) system.

For those of you who haven’t encountered the concept, much of what I order ships right away, but some of it is ‘backordered’. In a world of suppliers in competition to supply your stock, there is no need for backorders. You simply move to the next supplier and place an order there. Backordering is like a codependent relationship: You can probably get what you want faster by going somewhere else.

In the book business, one publisher owns the rights to a book, and wholesalers are like a convenience store. I one order, I can get books from multiple publishers. It saves a lot of time. Especially for a small store.

Years ago, there were several people in my department, dealing with any number of inefficient processes: We would often search reference books for publishers we had never dealt with before, only to discover that they needed us to mail a check in advance. Often they wouldn’t sell a single copy of a book, and we had one customer willing to place a special order.

Now, the department is me. And if a supplier doesn’t have it, we have to turn the customer away. Or tell them to be patient… Because I have no idea if the supplier will really come through, or give up months later.

So let’s talk about the amusing document: It is a report for a single store listing all the books that are backordered. It doesn’t seem to be sorted by any criteria that I know. Not ISBN, not purchase order number, not order date (almost the same as order number)… Oh, look at this: It’s in alphabetical order by title. And to make matters worse, it looks like they ignore the cancellation date I submit on some items. One book on the report is from December ‘06, with a cancellation date of February ‘09. Apparently, that item was postponed. So if I order before the publication date, it stays on backorder until that date? Who can say.

Reports are useless to me. I’m not a consumer of data - I’m a processor of data. There’s a difference. Dead tree reports are almost always sorted the wrong way. Somebody here is going to be interested in a particular title, and someone is going to ask why some items from a particular order haven’t arrived. There is, in fact, a web site I can visit to see this same information, but it doesn’t have that resort-on-the-fly capability that I want either. I’m forced to go down the rabbit hole. It would seem that we do not share the same object schema: I can get a list of orders, and I can get a list of books on a particular order, but there doesn’t seem to be any way to get a summary of orders for an item. On the POS system, I do have that capability. As you might imagine, checking the two side by side can be a little tedious.

The thing is: I can’t bring myself to through this report away. It’s a page full of data, and it ought to be useful. I just know the moment I get rid of it, I will have to check it for something.

Posted in databases, computer-interface, olssons | no comments | no trackbacksPosted by Evan Bittner Mon, 11 Aug 2008 00:30:00 GMT

My Mind Dwells

For a long time I thought my role here on Earth was to understand the concepts. With exploration, then repetition, those concepts become familiar friends, supporting me in everything I try to do. Even when things work the way I expect them to, I like to consider the fringes, where anything might go wrong. Problems crop up when you don’t expect them, so it’s nice to be prepared.

Wherever I thought I was weak in taking action, it made sense to have a more solid grasp of the ideas behind the action… Well, it made sense to me. On a normal day it simulates an infinite regress into the netherworld of ignorance - me paralyzed by the bottomless pit of the unknown, and unable, really, to act at all.

Apparently, nobody else sees concepts as helpful support. This is made clear when the people around me get progressively more confused. Without those concepts, how is anybody supposed to digest the colossal blocks of information being served? Everybody needs handy ways of chunking, filtering and prioritizing all that information. I thought they called that “Education”.

It’s a personal prejudice, I know, but it is hard for me to accept when people balk at mastering something technical. I don’t expect them to get it right away… I understand that some things take time - these are usually things that it took me some time to learn, let alone master, and I know that a particular person, learning a particular thing, may never get the whole way. But, in many of these cases, part way would actually help out a lot.

If (hypothetically) you’re my boss, and you want me to find ways to reduce the cost of the company website, the least you can do is figure out the broad strokes of our current situation, and how to communicate with me. Your misconceptions are just more work for me. And if you’re going to be ignorant, that’s fine - as long as you respect your ignorance.

Is this making sense? I only ask that people not try to walk around in boots that are too big to fit.

Please don’t let technical details confuse you: Cut everything back to the basic concept. Master that concept. Then take the next step. Refine as you go along.

My boss just demonstrated how profoundly confused she was about where our company website resides. We went over this two years ago! It was a painful process, and I shudder to think that after all those discussions, she has simply forgotten what is involved. To this day, a bill for web hosting can cause a whole new round of soul searching based on terrible misunderstandings of who we pay and for what service.

In the mean time, I’ve only become better at explaining it all. Every file transfer; Every database record insert or query; Every patch to the scripts or styles: It all caused me to consider the structure of what we have, how the parts work together, and what I might do in a contingency.

It all reflects my odd personality. I can’t just do anything. I wonder at the surrounding network of knowledge and ability, and I wonder at the inner workings. I am Extensive and Intensive at the same time. Depth and Breadth.

Posted in ontology, web-craft, olssons | no comments | no trackbacksPosted by Evan Bittner Mon, 04 Aug 2008 16:46:00 GMT

Moving In

By some quirk of fate, I now have the biggest office. All to myself. I like to keep the florescent lights off and use only my desk lamp.

Monday my boss and our boss sat down to review what might get missed in the coming weeks. A lot of our responsibilities overlap anyway. And, I wonder how much things are going to change in the near future.

Yesterday there was cake. We had our little going-away party in the afternoon. When I left, there was still a mountain of unsorted files and printouts, and she was resolved to clear it all out before she left.

The truck driver asked me this morning if I was busy “Moving In”. I might have said “making my mark on the place”, or “customizing my environment”. It might be nice to remove one of the three desks. I do sometimes have a guest working in here, but it’s safe to say it will never be crowded again soon.

Now I have a bit more latitude for organizing. There are a lot of things that I might be able to toss out, for one thing - But the more subtle change involves the filing systems I no longer have to share with anybody. I’ll be thinking about optimizing a few of those to my strengths.

Posted in olssons, ontology | no comments | no trackbacksPosted by Evan Bittner Wed, 30 Jul 2008 15:29:00 GMT

Site Maintenance Blues

I may have finished the latest round of changes to the Olsson’s website. That all depends upon whether I really had a single goal, or whether I was just making requested changes, ironing out the ramifications, and generally ad-libbing.

I am in the process of changing all the ancillary pages to the same design as the main page. Some of the (relatively) high-traffic pages needed to be in PHP so that content could be updated more rapidly. I don’t know if it’s simpler, but it might be easier to explain. There are just some days I can’t make it any simpler than: Get the file with ftp, edit the file in a text editor, and put the file back with ftp. Why don’t I just instruct people to log on to the server through Network Solutions and use the file manager they provide? Well, that’s an interesting story…

I wanted to give it a try myself - as a test pilot. It was a disaster. They should rename it the “File Mangler”. I went down the list to open a bunch of pages with navigation bars so that I could update the file names in the hyperlinks. The File Mangler thought I wanted to look at the files in WYSIWYG - but I didn’t. So, I switched to text mode. Every single one of those files was damaged by the online editor. I spent part of my afternoon yesterday fixing the damage in my text editor. It doesn’t look like I can instruct anybody to do it that way.

I had to go in to the template for every single blog we have on Blogger to edit those same hyperlinks, then republish all associated pages. I have spoken many times about the difficulty of republishing a single blog on Blogger. You can imagine that it probably took me 5-6 days to accomplish this, and that is how long it took, and now it is completed. Blogger actually came up with new bizarre error messages, and a screen that included everything at once: “No publish results to display”, “Publishing files to your blog (with ‘spinner’ animation)”, “Uploading via…”, “Show Transfer Details”, “Hide Transfer Details”, “Files Transfered: (big blank)”, “Your blog published successfully”, “Last successful blog publish: (apparently never)”, “Your blog published with errors”, “You publish is taking longer than expected. To continue waiting…”, and all the other junk that you eventually see after it succeeds. It had everything!

I’ve been wanting to write myself a script to check links on the site. I probably have access to something that already does this. “WinHTTrack” is a program to archive entire sites. I’ve used it in the past to create backups, and it does a fine job. More to the point, it gives you a report of all the trouble it encountered, so that might be helpful. I’ll probably use it as a double-check, but I ought to write the script anyway - It shouldn’t take long. The site is at a cusp in some ways: It’s not big enough to really need a strategy, but it’s still more pages than I can conveniently list. I should probably aslo ‘take out the garbage’: eliminate as many useless or marginal files as I can.

Oh, and I still need to tweak the customerror pages for 404, etc. Gotta go do that now…

Posted in writing-craft, olssons | no comments | no trackbacksPosted by Evan Bittner Thu, 24 Jul 2008 13:35:00 GMT

I Helped Another Mac User

So it turned out that there was a second person at work who could benefit from access to the POS system over the Internet, but was excluded by her choice of operating system. We have a part-timer who does graphic design - flyers for the stores and some advertisements. She stays at home to take care of her kids.

Here we have a threshold effect: Because nobody considered it valuable enough to solve her problem, we never did - and she never complained. But the moment I succeeded in setting up one computer, it was a proven fact. And free. So, she wanted in, too. Open up the flood gates.

Add to this the crucial fact that I would not have had the confidence to help someone set up the program if I hadn’t seen it for myself - remember how I had to learn the ANSI escape sequences?

And potentially more exciting that all that: I now have a user with years of experience with both the Mac and the eccentric system we use at work. Miss R__ had a modest amount of each of those, which didn’t make her a good test case: Now I have somebody who asks all the right questions - I had forgotten that a major reason both of these people needed access was to edit textfiles stored on the POS system. I won’t even begin to explain the weird text editor. I had an infuriating time once trying to create and edit a message from home because the keyboard mapping is different. I originally learned on a dumb terminal, which had special function keys. With each new terminal emulator program on the PC I had to get used to the keyboard quirks - and in some cases, the main system offers to provide other emulations. The choices start to multiply, and none of them is perfect.

Posted in computer-interface, olssons | no comments | no trackbacksPosted by Evan Bittner Mon, 21 Jul 2008 14:48:00 GMT

Telnet From Mac OS X - Success!

If you read this then you will be interested to know that I succeeded.

Miss R_ didn’t know very much about her Mac laptop. I discovered it runs “Tiger” and the Terminal program welcomed me to “Darwin”, which I guess I knew was a “Bash Shell”. I had to provide the IP address. The menu command was a red herring. Can anybody tell me why?!?!

I came in on a Saturday - I was a little short on hours, and I had promised to figure all of this out. The air conditioning is also much better here at the bookstore.

Terminal’s menu command had a dialog to fill out - I told it every relevant detail I could think of - and when I clicked OK, the window asked for a login and password, but none of the possibilities worked. I was obviously in the wrong place. I changed my approach a little - I keyed in a simple telnet [ip] command - and I was in.

The screen emulation was note perfect. The function keys were not. First, I made some adjustments to the font size to make it more readable, then I went looking for more pertinent help… I discovered a good page of SCO ANSI escape sequences (from the Canadian Government?!?!) and I programmed them into F1, F2, F3, & F4. F4 is an essential key on our system. It exits from nearly every context. It’s also known as PF4 or BAR-IV. F2 and F3 are only slightly less important. But function keys were prime real estate on this computer. Every one of those keys was already a Desktop command. I got creative… I wound up using option-F9 through option-F12. They didn’t launch a calendar or change the speaker volume.

For now, I’ve saved the command text in a .txt file on Miss R_’s Desktop, but I know there must be a way to structure a shell script to open Terminal and invoke the command directly - so it’s just a double-click from the desktop. This sort of thing is easy in Windows because I am so used to doing it that way that it makes sense. But it is the simple things that trip you up the most - they would be right there in front of you if you could just recognize them.

Posted in olssons, computer-interface | no comments | no trackbacksPosted by Evan Bittner Sat, 19 Jul 2008 22:41:00 GMT

The Republish Follies

Web site maintenance can be easy some days. And then, there is today…

I have been dragging my feet on the latest re-design project. It is surprisingly easy to update the main page on the site - it functions in many ways as a switchboard. And, a name change is easy to patch through the server because it’s the default page. Every other page links back to the default, not an explicit named page. I suspect there must be some .htaccess file tricks I can use. This blog in particular makes heavy use of redirection - that leaves a server log file full of plain names without file extensions, and that’s a bit annoying when I get to the site statistics.

But I should explain the redesign: I wrote about it here and here. Briefly, I was getting ready to recast the Olsson’s pages in PHP, for no greater reason than to use the ‘include’ function to store common chunks in named files - all the better for those following after me to understand their purpose at a glance. It was also an inspired bit of “Refactoring”.

This week, I got some redesign instructions from the Marketing Director, and (finally!) some feedback on the new design. So, basically, I have the go-ahead to update the ‘department’ pages with the new design. I don’t have to make them PHP files. I can always use script output for to make static pages and upload those. But, I made my decision. Now I’m not so happy.

Blogger Doesn’t Want Me To Change…

This afternoon, I finalized the department pages: Books, Music, & DVDs. Now all I have to do is update the navigation bar on every static page and partner site. Some of these updates were simple, easy, clean and fast. Blogger.com has so far been none of those.

I’m starting to rue the day - and it’s still the same day! Ignoring the potential “.htaccess rewrite rule” solution, there was a small change I had to make to the navigation anyway - no escape for me on that one. I haven’t tried to publish several blogs at a time for months now. One is bad enough. Seven is a disaster (this includes the obsolete ones… can’t have them pointing to the wrong place, too). Recently it seemed like the publish problem had cleared up. Today it seems as bad as ever.

The worst part is that Blogger goes to a lot of trouble to present the illusion of work being done… and then nothing happened!

Posted in web-craft, olssons | no comments | no trackbacksPosted by Evan Bittner Thu, 17 Jul 2008 21:50:00 GMT

I Just Got To The Captcha Party And It's Over

I guess I always suspected this, but within a few days of deciding to protect the feedback form with a captcha, I spotted “How CAPTCHA got trashed” over at Computerworld.

Now I suppose it’s just another fun intellectual puzzle for me to get one working. Otherwise, the whole notion is one more flimsy barrier that might not get knocked down for a little while.

The sad part to me is the futility - wait, I’m not talking about the futility of doing my job, I’m talking about the futility of the spam itself - There are about three people in the organization that ever even see it, so it doesn’t reach a lot of eyeballs. It only gets in the way of doing work, and improves my chances of deleting real customer feedback when I’m click happy from deleting the junk.

Some of this was fresh in my mind from “The Future Of The Internet”. Zittrain mentioned the scripted outsourcing of challenges: Reward someone for answering the challenge (ahem - with naked ladies…) and send those answers back to the original. So that means that any conceivable challenge to prove yourself can be fed to someone currently surfing.

Posted in web-craft, olssons | no comments | no trackbacksPosted by Evan Bittner Wed, 16 Jul 2008 18:28:00 GMT

Feedback Form Recap

I haven’t done any work on the feedback form yet, because I’m faced with choices.

If you’re a web developer, then you know: There are two sides to a form. The page or script that generates the fields for the user to fill out, and the action script. Or, as we might put it, the “Sender” and the “Receiver”. This is only mildly complicated by the fact that a script can be written to generate the “Sender” by default - i.e., if no form data is submitted.

Legitimate visitors to the bookstore site are presented with the form, fill in some details, click the “Submit” button, and the script is run. I’ve got some Javascript code to stop people from submitting the form without a name or a proper email address.

But who cares about the “Sender”! All the ways to abuse this system are crafted calls to the “Receiver”. It is up to the Receiver to handle every irregularity.

Enter The Captcha…

At the heart of it, a captcha is like a password. Every time the form is generated, it should include a random password - but the script needs to know, through some back-channel, what word to expect each time. If somebody is sending HTTP requests directly to the script, they won’t have any way of knowing what password to include, so each one of those requests will be ignored. I think there must be a simple way to send a hashed token or something. But this absolutely requires the page generating the form to run code. The embedded scripts (PHP, eRuby) are a natural for this. I already know that there has to be code to invoke the captcha.

Now that I’ve thought about it some more, I think I am going to move the form pages anyway. Any time you move files on a web server, somebody is going to have the old URL bookmarked or external sites are going to have it linked. At least I have control over the site linkages… I’ve been tempted to move a lot of stuff to PHP so I can take advantage of the ‘include’ function and store commonly used page code in named files.

Followup…

It is really annoying to work really hard on something and then wind up falling back to a second challenge. I’m still flying blind with the Perl module - I don’t know how to let the script find it on the server, and I have no reasonable way to troubleshoot the server error that always comes up. Heck, maybe I forgot a semicolon somewhere in the code.

Now I have a PHP version of the form in place and I can link to it later once everything else is ready. The “Receiver” script correctly verifies the captcha. Now I have to either rewrite the whole ‘email and log to a file’ bit in PHP - Or figure out how to reuse the Perl script I already had. Although, that’s not likely - as code that doesn’t strictly verify anything, it must be removed when I’m done. We have to climb into the boat that isn’t leaky.

The worst part is that I’m leaving a big mess to clean up. Lots of files to raid for code fragments. I’m going to have to clarify the dependencies and clean up what isn’t needed. I can’t do it until the whole project is finished, but I can scarcely remember what is what as it is.

Posted in web-craft, olssons | no comments | no trackbacksPosted by Evan Bittner Mon, 14 Jul 2008 22:07:00 GMT

Older posts: 1 2 3 4 5 ... 13