myloseralterego's Blog


christ . . .

I'm still working on the "transaction" classes.  See, there are about eight or ten different transactions the client program needs to be able to perform with the server, and most of them have responses of a different format from the request.  It's drugged monkey work, pure and simple, writing these classes: declare the variables,  write the accessor and mutators (what the rest of the program uses to access those variables), then write the constructor that provides the variables with initial values, then code a read function and/or a write function that reads or writes the variables in xml format.  Some of the classes are derived from an abstract class called TransactionBody, which forms the body of a transaction.  Then a lot of those classes need objects of other classes that they maintain lists of.  For instance, say I want to retrieve statistics about product use.  The client program sends up a UsageRequest transaction with search criteria.  The server program finds the clients that match those search criteria and then, for each client, it constructs a list of usage data for each IAT that client has on the server.  Each of these is stored in a TestUsage class.  Then there's the ClientUsage class that contains a list of TestUsage objects as well as more information about the client.  Then the UsageReport class contains a list of ClientUsage objects.  UsageReport derives from TransactionBody, which is included in an object of type Transaction.   The Transaction class places a small wrapper around the TransactionBody and writes it to an output stream.  There have only been two interesting parts so far, and I use the word "interesting" loosely.  First, the encryption.  Second, dealing with CLOBS.  CLOBS are a database type that are used to store large amounts of text.  I ask people to write a description of how they intend to use the product and let them write basically as much as they want, and that goes in a CLOB.  So, the one fucking interesting part of the program so far *was* that I didn't want to store a bunch of CLOB data in memory because, at the end of it all, I have to take the data that's written by the transaction object and measure it's length, in characters, not bytes.  The text encoding scheme I'm using is UTF-8 in which almost all characters are 8 bits or one byte.  But there are a small handful of exceptions, a few two byte characters, and maybe even a three byte character.  You see, I can't write the data directly to the response stream coming from the server.  Why?  Because one of the variables in every HTTP request is "content-length."  And that has to be set before the data is sent.  So, I write the data to a buffer, but I can't just measure the number of bytes in the buffer at the end of it because some UTF-8 characters are more than a byte, so I have to convert that buffer to a byte array, and then I have to convert that byte array to a "string."  A "string" is a string of characters.  Then I would need to measure the length of the string and set the content length, then output the string to the response stream.

But

I don't want to do it that way because of the CLOBs.  Suppose I get 100 response elements back from the server, each with their own CLOB detailing the intended product use.  Suppose each CLOB runs on and on for whatever reason.  It could easily top a megabyte.  So, I'm writing a megabyte of data to a buffer, then I'm converting that buffer to an array of bytes, then I'm converting that array of bytes to a string.  It just doesn't make sense.  So, I replaced the buffer with a file stream.   When the request comes in, a file is generated with a five minute timer on it.  Data is written to the file in character form because you can specify that for the file, but not for the byte buffer.  Then the file length is gotten and the content length is set, then the file is written to the response stream and deleted.  Or, if five minutes passes and the file hasn't been sent, it's deleted.

But

I did all that and realized -- that could still result in HTTP responses that run into the megabytes.  Big deal?  Kinda.  See, when you open a webpage in your browser, the webpage response contains tags for images and files of java script -- the stuff that provides interactivity to web pages -- or animations, movies, etc.  The browser opens a socket connection with the server for each of these items.  So not that much data is really sent through the HTTP connection.  Socket connections are very different from HTTP requests and responses.  They allow data to flow back and forth from the client to the server rather than relying on one big bit of text on a one way trip.  So, I got kinda jittery about have a megabyte or two of data  come back in an HTTP connection.   So now I'm going to implement separate ProductUseRequest and ProductUseResponse classes that allow the windows program to request the product use CLOB for on person at a time.  Which means that the semi-interesting work will be deleted and replaced with something simpler.  There was still the encryption, but after the elaborate encryption scheme I came up with to encrypt test result data on the server, that's old hat by now.  btw, if you're curious, I wrote up a summary of the encryption technique for the instruction manual so people, if they cared, could try to understand how safe their data is:

To ensure the security of your data and the privacy of your test takers, all result data on the server is encrypted in such a way that it is inaccessible without the password you select when you upload your IAT. As this password is not stored on the server, the result data for your IATs is safe in the event that server security is compromised and the data is also inaccessible to employees of IAT Software. This is accomplished via a sequence of encryptions and decryptions. When you upload an IAT, the test design program randomly generates an RSA private/public key pair. The RSA encryption standard is an example of an asymmetric cipher.


One cipher is used to encrypt the data while another is used to decypt it. To accomplish this, large prime numbers are utilized and it is only practical to encrypt small amounts of data with them. The public key is used to encrypt the data and the private key is used to decrypt it. When you select your password, it is transformed into a 64-bit number that number forms a symmetric DES encryption key. A symmetric key is an encryption key that is used to both encrypt and decrypt data. This DES key is used to encrypt the private portion of the RSA key. The RSA key is then transmitted to the server with the private portion encrypted and is stored in the database. As result data is collected, it is encrypted with randomly generated DES keys. These DES keys are in turn encrypted with the public portion of the RSA key and prepended to the data they are used to encrypt. When your data is retrieved, the test design program receives rst the encrypted RSA key and then stream of encrypted DES keys followed by data those DES keys can be used to decrypt. When you enter your password, the private portion of the RSA key is decrypted and this in turn is used to decrypt each DES key, which then is utilized to decrypt a portion of data.
 

Thus, your data only remains non-encrypted in memory for a very short time before being encrypted and stored to the database.


i lied

 

Highly entertaining.  But then, as I mentioned, I might be a bit manic.

one more

This song is doing it for me this morning after three or four hours of fitful sleep -- need to raise the Lithium.

 

good dexedrine comes on slow . . .

45 minutes in, you're cursing the pharmacist who botched the order then suddenly, wham, fiendish intensity.  Time to get to work then, I guess.  I can't start on the website my dad wants yet, so it'll be work on the client program to manage the customer data for the website.  I also need to finish getting the email server working.  It'll just involve a short phone call.  I don't want to do it over chat.  Arvixe has lousy tech support.  It's included in the price of their products, but the technicians are poorly trained.  Rackspace offers a tech support contract.  It's a $150/month flat fee plus usage charges.  I'm willing to be good, good money that you can get anything you want for that short of having them write your webpages and applications.  I got a virtual server from Rackspace for $10/month, plus a charge for bandwidth which I'm using very little of.  The server comes with 10GB or hard drive space.  If that runs dry, I can buy another 50GB for $10/month.  It's a good deal.  But I would never recommend RackSpace to someone who didn't know a decent amount about how to manage a server.  The server hardly came with any software installed.  Installing software on Linux is a different experience than installing software on Windows.  The software installs, then it's off to the configuration files which can bog you down with  hundred options.  The worse I've run into is the web server program Apache.  Don't get me wrong, Apache's a wonderful product.  But configuring it is a nightmare the first time out.  I'm being entirely serious when I write that the documentation for Apache configuration runs . . . I just checked.  691 pages.  RackSpace servers don't even come with Apache installed, much less with a general set-up configuration to get you started.

Anyway, enough babble.  Work time.

so . . .

I told myself that I'd quit programming at 7:00 and start cleaning and/or get my resume ready for that second job on Craig's List.  I just finished the server app about ten minutes ago and decided not to write the corresponding client application today.  It's just a small program that lets me manage the people who use the software, collect very basic statistics about their use, grant them additional administrations or hard drive space, approve their requests for a copy of the program, etc.  I have to write what I hope will be an equally simple windows program next to communicate with the server program.  In other news, my dad wants a website.  He offered me $300.  It'll likely be two weeks of work, but I could hardly turn him down after everything he's done for me.  I wish I could do it for free, but I'm flat broke and need the money.  

That's about it.  I finally got my shaman up to level 85 today.  Sure, laugh it up.  I like to think of it like those old Johnny Walker ads ---  " . . . and he plays World of Warcraft too."

job hunting and showing off new haircut (christ, i sound like a chick)

 

done

I decided I'm not going to do more with it:


Choose Your Own MMF (yes, really)


It's like a computerized "Choose Your Own Adventure Story." Except it's pornographic.

back to work

I'm torn about how to do the "product requests" for my program.  I mean, I know what information I want to gather and have a pretty good idea about the requirements for what people have to meet to get a free copy -- I'm giving it away for a year and a half under some circumstances to get people using it.  I'm just torn about how I want to go about it.  I have already have a webpage written that'll let people enter their information and a servlet it backs to that stores that information to the database.  What I view as the "right" way to do it is to write a simple windows program -- it doesn't have to look good since I'll be the only one using it -- that retrieves the data and lets me approve the requests I want, and then the program will send a message to the server to make it migrate the request to another database table and grant that person the number of test administrations -- my product lets people design a specific type of psychological test of attitudes that can't be falsified -- and the number of product activations, and their disk space allotment on the server, and then the server will return their randomly generated product activation code and download password so I can email it to them.  

The "wrong" way would be to just create a series of webpage that lets me manage it, but it would be easier to implement.  The first way might take a week or two or even three.

a whole f---ing afternoon down the drain

Ridiculous.  After I got ZoneAlarm installed, I started setting up the printer to function wirelessly.  The installation program wouldn't configure the printer's wireless adapter.  It wanted me to use the "Wireless Network Setup Wizard" that I could access through the tiny LED display on the printer, only it wasn't there, so I tried to do it manually and couldn't.  So I selected the option to connect by USB cable so I could set up the wireless connection through the computer and, stupidly, plugged the printer into the computer at this point so it could be detected.  Then the installation crashed.  It had run for about an hour and a half.  Don't ask me what's so elaborate about the HP Deskjet L7555 that it needs a 2 hour installation program.  It's an all-in-one, which I tend to look down on.  Sure, they do everything, but they don't do anything very well.  Still, they are ideal for a home setting.  

So, after fiddling for a bit, trying to salvage the original installation, I'm uninstalling and starting again.

zone alarm day

The security suite I bought with my last computer, McAfee Complete Protection or something like that expired yesterday so I'm putting ZoneAlarm, a far superior product, on two computers over at my dad's -- I've had it on my home computer for a while now.  After this, I guess I should call Arvixe.  I didn't realize how unstable I was until I got over here.  All that damned time alone.  Whym and I used to speak for three to five hours a day and, without her, I've been destabilizing from the isolation.  I haven't been able to work over at my dad's because the software I was writing the instruction manual with can only be installed on one computer at a time.  

I asked my shrink for a bottle of Trilifon last week.  2mg, the smallest size.  60 of them.  I'm going to start taking one at night to ease this . . . whatever you want to call it.  All I know is that I spent two hours last night extemporaneously speaking about Christianity and arrived at the conclusion, quite by accident, that it's rather like worshiping Shaggy from Scooby Doo.  Strangely, I didn't recognize this as a problem at the time, not that it would have been if I hadn't had the window open.  In my defense it was an entirely lucid train of thought, even clever at times.  

What bothers me about acting crazy isn't the strange behavior, it's the mean behavior.  And I do get mean at times.  As I was drifting off into sleep, a woman came by around dawn and started off under the window on something like, "My husband is heading off to work at this time of morning and . . . "   She didn't know that I'd been up till 1:30am working on the email server, obviously.  Anyway, what came out of my mouth was something along the lines of, "What about you?  Are you going to get the kids off to school then settle down with your bowl and watch daytime talk, try to be straight by afternoon and get dinner on the table tonight?  Maybe you'll squeeze in a call to one of your friends and talk about the life you could have had if only you'd had that abortion."   I'm not proud of that sort of stuff.  I used to pull my punches more.

postfix

It wasn't as hopelessly convoluted as I'd remembered.  I've got a setup I'm ready to test, but the problem is that when I switched over from Arvixe, my old hosting provider, to RackSpace (awesome company IF YOU KNOW WHAT YOU'RE DOING), they didn't actually change the A record on my domain.... So, when I try to check my email @iatsoftware.net . . . my Windows Live Mail program tries to connect to mail.iatsoftware.net and winds up trying to connect to an arvixe server.  I'll call tomorrow and get it sorted out, transfer the domain completely over to the RackSpace address.

who's the long-toothed, hairy sea cow?

I just posted the instruction manual to the server:


http://www.iatsoftware.net/IATClientManual.pdf

It's not really quite done.  I put it there so my dad can download it and proof read it for me.  He's a published author.  Almost twenty books.  Most of them either college textbooks or self-help stuff.  He's also a psychologist.  He's been getting senile more recently, but he's happy, happier than when he wasn't getting senile.  So maybe it's for the best.  It's odd.  I don't quite know what he wants from me.  I don't know how else to phrase that.   Anyway.  

This week is job hunting week.  Tomorrow I'm going to wash clothes and get a haircut.  I'm exhausted, like I was worried I'd be if I pushed myself to write the instruction manual in a week.  But not so exhausted that I can't go job hunting, I don't think.  Now that the client program is ready for use for research, I've got to put a page up with details on how to acquire a copy.  First step is to set up an email server on, um, the server.  The one that's most widely used is called Postfix.  It's a nightmare to setup.  I tried before on another server and gave up.  Then I've got to make up a mailing brochure and have it printed up at Kinko's.  Then I've got to acquire a list of people in psychology and sociology departments and whomever else I can think of to mail it to.  A good first step would probably be to do a literature search and find everyone who's done research with IATs in the past.  And I still want to put together the morale proposal for the Kansas City guy.  

And then I've got to finish the additions to the program, the stuff that will make it useful to businesses, changes that revolve largely around how data is retrieved and displayed and some in-program data analysis stuff, as well as stuff to export data to Excel and SPSS files.  Since I want to start looking for a computer job in the summer, this is a daunting amount of work.  The computer job will doubtlessly be half-time, but I want to start back at school in the fall in a graduate program, so . . . 

Well, I can rest when I'm dead.

after a fashion

I've finished everything but the table of contents and the glossary.  The table of contents is going to be awfully short, so I'm going to put it on the title page, so that means two, maybe three more pages.  I'm exhausted.  I haven't had a full day off since a week ago last Tuesday.  

. . .

The strangest thing.  Hearing that thing from the California guy yesterday seemed to unwind something inside of me.  I fell asleep last night before the speed wore off, without the evening pills, thinking it was just going to be a nap.  I slept 12 hours, which is odd also because if I fall asleep without the evening mood stabilizers, I typically wake up seven hours later in a confused, too fast jumble of thoughts.  I took a half dose this afternoon when I woke and will probably be a bit groggy for a few hours as a result.  I should clean some, but I feel confident that I can get the instruction manual done by Wednesday at the latest without killing myself.  I just feels so good to know that I didn't waste those two and a half years, probably not anyway.  We'll see how marketing the thing goes.

anyway . . .

I think my neighbor's wife left him today, again.  I don't blame her.  He's being such a fucking cock-block.  I mean, she wants my dick and he doesn't want her to get it because he's worried, that if she gets it, there won't be any remedy left over for him (the remedy issues forth from my cock).  Of course, this is sheer idiocy.  Me pumping his wife full of remedy has nothing to do with his odds of getting the cock.  Sadly he didn't see it that way.  And now he's alone.

Welcome to the inner workings of my mind.

getting there



Those are the manual pages for creating surveys. Now I just have to do the walkthrough, the table of contents, and the glossary. And I want to probably add a bit more to the section IAT block design and the main screen. At the very least, I want to put a little bit about the theory of the 7-Block IAT, which will require some reading on my part to make sure I get the details correct.

:D

I just heard from the guy in California. He wrote, and I'm  quoting here, " I searched and searched for something just like what you provide and even the principle investigators did not know of anything half as good."  I can't wait to get that job and start advertising this thing.  Turns out, he's not actually having trouble with the help files on his own machine, though obviously his students might, so I'm not going to put off writing the manual, but they're not going to begin using it until the sixth week of the semester so I don't have to kill myself.



it's like the f---ing never-ending story


need to pick up the pace a bit

Ten pages done for the instruction manual.   At least 15 to go.  I don't  know if I'll finish it this weekend after all.  

I have nothing to say, really, it seems.  Not quite awake yet after a cup of coffee and an amphetamine.  I should clean some before I get to work anyway.  In a bit, though.  I got my death knight to level 80 right before going to bed last night.  Now I can start going into the "cataclysm" areas.  Want to spend an hour or so at that.

sleep if for the sorts of losers who can have fun without alcohol

Up all night last night and an hour and  a half nap this evening.  Getting to work now.  I figure I stopped about this time last night and I wanted a day off.  I've had it.  It's time to work.

 

Some whackjob is probably going to read something into that.  It's just, after the three years since I found it, still my favorite video on YouTube.   You know, sometimes I get paranoid that I have a gay stalker.  I say this because I have a gay stalker.  I don't know how to make it any more clear to him that I wouldn't toss him an ass-fucking if I was in the middle of the Sahara Desert, dying of thirst, and he had a canteen of water.  now, i know a lot of you are probably thinking that i can't prove he's actually gay stalking me, but i can.  i just haven't had the opportunity to yet.  i can prove it by filming my having sex with his mother and showing him.  if he's merely angered and disgusted, he's not gay stalking me.  but if he completely loses his temper, he obviously is.  so, with that out of the way, if you have a son whom you believe is not gay stalking me, perhaps we should meet.

   1-20 of thousands of Blogs   

Previous Posts
christ . . ., posted January 27th, 2012
i lied, posted January 27th, 2012
one more, posted January 27th, 2012
good dexedrine comes on slow . . ., posted January 27th, 2012
so . . ., posted January 26th, 2012
job hunting and showing off new haircut (christ, i sound like a chick), posted January 25th, 2012
done, posted January 24th, 2012
back to work, posted January 24th, 2012
a whole f---ing afternoon down the drain, posted January 23rd, 2012
zone alarm day, posted January 23rd, 2012
postfix, posted January 23rd, 2012
who's the long-toothed, hairy sea cow?, posted January 22nd, 2012
after a fashion, posted January 21st, 2012
. . ., posted January 20th, 2012
anyway . . ., posted January 19th, 2012
getting there, posted January 19th, 2012
:D, posted January 19th, 2012, 1 comment
it's like the f---ing never-ending story, posted January 18th, 2012
need to pick up the pace a bit, posted January 18th, 2012
sleep if for the sorts of losers who can have fun without alcohol, posted January 17th, 2012
christ, i'm a degenerate, posted January 17th, 2012
syphilitic jackals, the s*xual orientation of the Christ, and work stuff, posted January 17th, 2012
progress, posted January 16th, 2012
three hours, posted January 16th, 2012
two hours down the drain, posted January 16th, 2012
saigon. sh*t. i'm still only in saigon, posted January 16th, 2012
. . . and out come the wolves, posted January 15th, 2012
i should have tried to go back to sleep, posted January 15th, 2012
done, posted January 15th, 2012
up and at them, posted January 14th, 2012, 3 comments
so, basically . . ., posted January 14th, 2012
in case you missed me, posted January 13th, 2012
a little bit of this, a little bit of that, posted January 13th, 2012
fast progress, posted January 13th, 2012
can't be king of the world if you're slave to the grind, posted January 13th, 2012
work stuff (oh, the humanity), posted January 12th, 2012, 2 comments
f---ing christ . ., posted January 12th, 2012
kinda cool, posted January 11th, 2012
awake, posted January 9th, 2012
three days early, posted January 8th, 2012
christ, it reads like stereo instructions, posted January 7th, 2012
4:19am on a Saturday, posted January 7th, 2012
things you probably don't know, posted January 6th, 2012
starts off with work stuff, but turns into something pretty interesting, posted January 2nd, 2012
just a little push and you'll be smiling, posted January 1st, 2012
tired, posted January 1st, 2012
could be worse, posted January 1st, 2012, 1 comment
alas, too late, i have remembered my daughters . . ., posted December 31st, 2011
seriously . . . ., posted December 29th, 2011
beauty and truth, posted December 26th, 2011
   1-50 of thousands of Blog Posts   

Blogroll
Here are some friends' blogs...

Help
How to Embed Photos in your Blog Embed Photos How to Embed Videos in your Blog Embed Videos
Anonymous & Free
to join millions in the world's largest community of life experiences
Explore first-person stories about any experience, including your own! Connect anonymously with people who understand.
Be YOURSELF

Be a part of the biggest social experience on the web. Where who you are is more important than who you know. Share what matters the most and find others who just "get it."

Join now and get started in seconds, or learn more about Experience Project

Love Stories

Check out hundreds of real stories about love.

And so much more!

Of course, we love to hear Your Story, whatever it happens to be. You can be yourself here!

Questions For You
 
Asked by tallkell68 - 11 answers - Posted 6 minutes ago
Asked by Sean8342 - 3 answers - Posted 8 minutes ago
Asked by tallkell68 - 9 answers - Posted 9 minutes ago
Asked by calvinunmaker - 4 answers - Posted 23 minutes ago
Asked by Robopect - 4 answers - Posted 35 minutes ago
Asked by MortyVicar - 14 answers - Posted 43 minutes ago
Asked by tallkell68 - 4 answers - Posted 45 minutes ago
Asked by hebdon - 5 answers - Posted 52 minutes ago
Asked by thiswaypls - 5 answers - Posted 1 hour ago
Asked by Robopect - 7 answers - Posted 1 hour ago
Asked by heartsong1 - 5 answers - Posted 1 hour ago
Asked by SweetlyLingering - 9 answers - Posted 1 hour ago
Asked by vlowery1105 - 8 answers - Posted 1 hour ago