Archive for October, 2005

A house becomes a home

Monday, October 24th, 2005

During my childhood, the house that I lived in for so long was a part of me. My family had moved when I entered high school and ever since, I never felt that comfort from the past house. Moving through apartments in college and the time there after, I had no connections with any of my living quarters. It was simply a place to serve the purpose of putting a roof over my head and having a place to sleep.

I bring this up because things seem to have changed for the better. It is a very miserable, cold and rainy day. I haven’t had the best of luck lately, but it just felt so good to walk in the door tonight. Even the noises that the house made while walking on the floor added to the comfort. This place is home.

I’ve lived here for a few years now, but this feeling is a little new. Part of it may be attributed to my sister in-law moving out not too long ago, or the increase in the dosage of my medication two weeks ago. Perhaps it is just a mood that I am in that will be gone in the not too distant future. Either way, I like where I live rite now. It’s not just a place that serves its purpose.

Information about farts

Saturday, October 22nd, 2005

I just spent the last hour reading facts on farts. What a great way to waste time. Here is a quick summary of what I had learned.

I learned that the smelly part of a fart is formed mostly by bacteria reactions. The composition may consist mostly of air that you swallow. I also found out that everyone farts - even dead people. People who try to hold in farts can only do it so long as they are awake. A fart just goes back up into the intestinal tract only to return at a later time. There is no harm in holding in a fart, but it used to be believed that it was bad for your health to do so. Roman emperor Claudius even decreed that all Roman citizens shall be allowed to pass gas whenever necessary, but later reversed his decision in 315 BC.

Men fart just as much as women. Men appear to take more pride with the resonance of there farts and usually do it in the morning (known as “morning thunder”). It is possible and dangerous to ignite a fart. The flame will either be yellow or blue depending on the presence of methane. If you are one of the elite few, you might be able to join the Royal Order of the Blue Flame.

People have made money with there farts. Some have leaned how to breathe with there anus and then produce melodies. Money made through flatulence is also made with products to prevent it, reduce the smell, educational material, or to sell gag gifts such as the infamous whoopie cushion.

I learned that fish and turtles fart. Reptiles are really smelly. Cat’s and dogs have stinky farts because they eat lots of protein that contains sulfur. Cows fart a lot because they swallow large amounts of air. The termite has the highest output and produces just as much methane as all of us humans.

Smelling someone else’s fart will not make your farts stink more. Farts will not get you intoxicated. You may get a little dizzy from breathing in a high concentration of fart essence from lack of oxygen. A fart can not kill you. In World War II, the Air Force reported that men have died from flying the B-17 bombers at altitude of 20,000 feet because gas would rupture and rupture intestines in unpressurized cabins.

You can capture a fart by using a jar of water upside down in a bathtub. A fart is colorless. Farts are the same temperature as your body. If you fart on a cold day, you may end up having a white bushy tail.

Working with open-source

Friday, October 21st, 2005

I had made a pretty nice template for a website that I’m working on in the office. Since I didn’t have any graphic editing software where I work (besides MS Paint), I created the graphics at home and brought in the final images. Today I ran into a problem. The graphics that I made a few months ago needed some modifications and I couldn’t just run home to work on them.

Enter The Gimp. The Gimp, (an acronym for the GNU Image Manipulation Program), is a very powerful graphic editing tool that has been around for a long time. You could compare it to Adobe Photoshop. Rather then paying six hundred, fifty dollars for commercial software and an extra one hundred, fifty dollars for each upgrade that comes out, you may download The Gimp free! It also works on many operating systems including windows.

Being familiar with the features of Photoshop, I knew what it was that I needed to accomplish. My primary problem is that I am not familiar with The Gimp. I was stumbling while trying to understand how to use its layers when pasting images from my clip board and moving them around. The GUI (Graphical User Interface) works much like applications do on Linux, such as the dialog for saving a file. There are many unfamiliarity’s that I’m just not used to. Some of the recent news on The Gimps’ support site is starting to focus on usability, so it may not be long before it gets easier for people like me to figure it out.

I think it is great that feature rich software is available like this. Another piece of software that I’m starting to work with at home is OpenOffice. Sun Microsystems donated the source code of StarOffice to the open-source community five years ago and the rest is history. You can still purchase StarOffice from Sun, or you can download the free OpenOffice sponsored and contributed to by Sun along with many other companies and developers.

From what I have read, Open Office 2.0 kicks Microsoft Office around the block. The review pretty much said that Open Office competed very well and perhaps much better as a word processor then Microsoft Office. Slide presentations are better in MS Office due to the availability of clip art. Spreadsheets are fine as long as you are not going back and forth between MS Office and Open Office.

Ever so slowly, I’m starting to move over to open-source applications. As each new version of current software comes out, I get really frugal and start asking myself if I really need to buy into it. What is offered that is not already available to me? Is the upgrade worth it? Do I need those new features? Is there another product that can already do this?

When it comes to graphic design and word processing, the need for new features really isn’t in too much demand. With each subsequent upgrade, I always find myself just using the same features that I originally had. A few tweaks do come in handy and are noticeable, but I would have been able to get the task completed without them. It seems that most software gets bogged down with features just so that you have more reason to buy into the next version when what you have is good enough.

Japanese Vending Machines

Thursday, October 20th, 2005

Vending Machine for Used School Girl Panties I stumbled upon an odd site of Japanese Vending Machines. A few were just like the machines we have here in the United States of America. I started to find odd ones though. One that really got me was selling used school girl panties ranging from eight to thirty-two dollars each.

How do you know that they actually are used? I wonder what kind of people get kicks out of something like this. Does someone just walk up, put in a few Yen and rip into the bag for immediate euphoria?

Another vending machine sold Rhinoceros Beetles that children like to keep as pets. One machine was selling batteries and displayed corroded batteries. A few machines were lined up together selling 10 varieties of rice.

The Sleeping Sleeper

Wednesday, October 19th, 2005

I’ve been in and out of sleep for the past 24 hours. I missed work today. Mom came over and cleaned up two of the rooms downstairs. I helped out some, but couldn’t stay awake. Mom thinks it is depression or related to work, but it doesn’t feel like it. I’m just really tired.

I started hunting for my prescription that I got last week but haven’t turned up anything yet. I’ve just been taking double doses of what is left of my other scripts since she doubled my dossage. I’m starting to run out of time to fill the new script with each passing day.

That pretty much sums up everything that happened in my day. I’m still tired.

All for one, and one for nothing

Wednesday, October 19th, 2005

I had been putting my nose to the grind stone for the past few business days. I completed a big part of it on Monday and had been pretty proud of what I had achieved. My coworker saw the final results today and was impressed, but pretty much said it was not what she had asked me to do. She was not aware that the technology existed to do what I did.

I don’t know if it is a miscommunication issue because I had shown her what I had been working on last week. She had even made the extra requirement of adding the capability of using web services within Excel - and this really made it extra hard on my part. For the rest of the day, it seemed hard to get anything done at work. My accomplishments seemed to be all for nothing and I started dragging. I even had a dream about unproductive work tonight.

When I do things that my mind is really heavily involved with, I always have this feeling like I shouldn’t be doing it in the way that I am. The problem is, I have a set of requirements that I don’t know how to accomplish otherwise. I know that I had been given this requirement. I guess it would help to sort of make a paper trail of some kind so that I can refer to when the requirement was given.

In other news, I purchased a bucket of Spice Drops.
Spice Drops

Blog Useability Guidelines

Tuesday, October 18th, 2005

I’m assuming there are many bloggers out there who really know there stuff when it comes to designing a blog. If you are one of these people, then you may be interested in a new article that came out on Jakob Nielsen’s Alertbox yesterday. His article, Weblog Usability: The Top Ten Design Mistakes focuses on many aspects such as trust, navigation, headlines, schedules, and more. I subscribe to his articles and am always interested in what he has to say.

A Diary of Doodles

Tuesday, October 18th, 2005

Last week I came to the conclusion that I wanted to start a diary of sorts so that I could write down some thoughts that I didn’t want to make public. I went ahead and purchased a graph paper moleskine journal. I’ve written a few entries already and am getting used to manually writing.

My hands are cramping just from doing one page each night. Of course, I have tiny print, and I never learned how to hold a pencil correctly. Ok, I know now how to hold it, but it is just not easy to do. And this, increases how quickly my hands cramp up.

I find myself starting to make use of the opposite side of the paper. After I’m done writing, I start drawing some things related to what I just wrote about. I’m also finding that writing after I have blogged helps more as well. There is a little more behind each story that I blog about (thoughts, opinions, feelings, etc.) and I am still able to capture it in the journal.

Graph Paper Doodles

On another note, I’m on the verge of exploding with happyness of how much I love my wife. I don’t know why. It happends from time to time. I’ve had this feeling a few times throughout the day actually. Of course it would be crazy for me to just shout at the top of my lungs to tell the world because I might scare the kitten in the other room, or my coworkers in the office. I should have made some good use of the time while commuting to and from work in my car today to express my feelings. Anyhow, I need to get some sleep.

A little relaxed

Monday, October 17th, 2005

This morning I had thought that I forgot something as I got into the car. I had my iPod, my badge, the laptop computer, my mobile phone, and of course, my keys. I went ahead into work anyway. I have this habbit that I always feel for my wallet as soon as I get out of the car, get out of my seat, or pass through crowds. (Paranoid?) Anyhow, I immediately felt naked. Ok, not really, but I definately felt like a part of me was missing.

DELL box and Foreign MailI drove home for lunch since I had no money and was starting to fail at holding out until dinner. I arrived, got my wallet, and kissed Angel. I nuked some of the Lean Pockets that she didn’t care for and sat down for part of The Twilight Show on the Sci-Fi channel. As I began to kiss Angel goodbye, a loud knock came at the door. The UPS guy had me sign for a big box from DELL. My nephews birthday package had arrived.

I think I had a good day today. I made a big breakthrough with some coding at work on a task that I wasn’t sure of completing. It was one of those days where your head is in deep thought for the bulk of the day trying to work out some code.

After work I went shopping and was pleased that my shopping cart wasn’t filled to the brim. I stocked up on some extra good food for Angel and I hope that she is pleased. I even got a few of the old things that I used to get for her before we got married. It’s the little things in life that make you feel good. I wasn’t even stressed out shopping. I usually just focus on getting in there and getting back out.

I arrived home and found that I didn’t have much room in my freezer. Angel and I went though a few things. I found a box of fishsticks that were almost gone so I heated them up for dinner. Angel dug into the chicken tenders and we put them on the same pan. I started getting a little jealouse when I started smelling her chicken tenders. I should have gone for a few myself.

I sat down and had dinner while watching the television. I began to wonder if FireFly is available on DVD yet, because I’ve missed just about every show there is. Now that I saw the movie Serenity, I am more interested in seeing the story around it. I still need to look into getting a digital recorder from my cable company because the show comes on before I get home from work.

queen stampsI went through the mail and found that Rowland from DarkCompass had made good on his word and sent me a CD from the UK. There were 5 stamps of a queen in different colors and a post mark from what appeared to be Wales. I don’t know what is more exciting - the CD or the postmarked stamps from a different country. The CD has a few of his earlier podcasts and he also mentioned something about putting a few others on for me to listen to.

Rowland usually records his DarkCompass podcasts during his ride into work on the metro. Just for fun, I found a little program called Scrolling LED Bitmap Generator to create the following animated GIF:

I got a bottle of premixed mudslide and had a small glass. I’m not a big drinker and its been a few months since my last drink. I like the drink, but the problem I have is that the bottle is too big for me. One of the many things I lack is a few local friends to help me with this problem. I wonder how long that bottle will be setting at the bottom of the fridge this time. Anyhow, if you are in the Northern Virginia area, at least 21 years of age, and wouldn’t mind helping me out one evening, send me an email.

From there I found one of our cat toys as I was hiding the big box from DELL into one of the rooms downstairs. We lack cat toys with feathers on sticks. This one even had a bell on it. I played with Skyler, Prince and October for a while and then brought it up to Bandit. October watched from the corner of Angels bed and growled as I played with the little kitten. Bandit had a blast. Octobers finally got so mad that he walked out of the room. Skyler sat under the dresser and Prince walked back and forth keeping his eyes on the prize. I gave in and let those two play with it when I was done with Bandit.

Using SOAP in Excel

Monday, October 17th, 2005

Ok, I feel like a million bucks rite now. A few weeks ago (or was it months?), I figured out how to use SOAP on web pages using JavaScript within both Microsoft Internet Explorer and Firefox. The use of communicating back and forth with a webserver and a web browser using XML and JavaScript is known as AJAX - Asychrounouse JavaScript and Xml. SOAP is another layer known as Simple Object Access Protocall written in XML and transferred through objects such as XmlHttp.

I figured out how to use SOAP with JavaScript a while back. This knowledge aided me to do the basics of communicating with my web services with Excel. This time I got the client working a bit better with how the message is formed and how I am able to parse data as it comes back. You got to love XML for making things easy on us programmers.

Anyhow, I had to scratch my head for a long time. From what I understand, SOAP is built into current versions of Microsoft Excel Applications. I don’t have that luxury so I had to make it backwards compatible. Think of it - most people have to worry about making web pages backwards compatible over multiple web browsers. I have to make macros backwards compatible with multiple versions of the Excel spreadsheet applications. Sheesh!

This is the best that I could come up with so far. I’ve tried to set it up as asynchronouse, but my version of Excel doesn’t support the GetRef method. The best that I could do was calling DoEvents.

    1 ‘ Variables that may help to identify the end-user
    2 ‘Debug.Print Environ(”USERNAME”)
    3 ‘Debug.Print Environ(”USERDOMAIN”)
    4 ‘Debug.Print Environ(”USERDNSDOMAIN”)
    5 ‘Debug.Print Environ(”COMPUTERNAME”)
    6 ‘Debug.Print Application.ProductCode
    7 
    8 Private WebClient As Object
    9 Private m_ActiveXPrefix As String
   10 Private m_ParameterNames() As String
   11 Private m_ParameterValues() As String
   12 Private m_MethodName As String
   13 Private m_XmlNamespace As String
   14 Private m_OnReadystateChange As String
   15 Private m_ParameterCount As Integer
   16 Private m_EndPoint As String
   17 
   18 Private Property Get ActiveXPrefix() As String
   19 If Not m_ActiveXPrefix = “” Then
   20 ActiveXPrefix = m_ActiveXPrefix
   21 Exit Property
   22 End If
   23 Dim Prefixes(4) As String
   24 Prefixes(0) = “Microsoft”
   25 Prefixes(1) = “MSXML”
   26 Prefixes(2) = “MSXML2″
   27 Prefixes(3) = “MSXML3″
   28 Dim test As Object
   29 On Error Resume Next
   30 For Each Prefix In Prefixes
   31 Set test = CreateObject(Prefix & “.XmlHttp”)
   32 If Not Err Then
   33 Set test = CreateObject(Prefix & “.XmlDom”)
   34 If Not Err Then
   35 m_ActiveXPrefix = Prefix
   36 ActiveXPrefix = Prefix
   37 Exit Property
   38 End If
   39 End If
   40 Err.Clear
   41 Next
   42 End Property
   43 
   44 Private Property Get ParameterIndex(name As String) As Integer
   45 For i = 0 To m_ParameterCount
   46 If m_ParameterNames(i) = name Then
   47 ParameterIndex = i
   48 Exit Property
   49 End If
   50 Next
   51 ParameterIndex = -1
   52 End Property
   53 
   54 Public Property Let Parameter(name As String, Value As String)
   55 Dim i As Integer
   56 i = ParameterIndex(name)
   57 If i = -1 Then
   58 AddParameter name, Value
   59 Else
   60 m_ParameterValues(i) = Value
   61 End If
   62 End Property
   63 
   64 Public Property Get Parameter(name As String) As String
   65 Dim i As Integer
   66 i = ParameterIndex(name)
   67 If i = -1 Then
   68 Parameter = “”
   69 Else
   70 Parameter = m_ParameterValues(i)
   71 End If
   72 End Property
   73 
   74 Public Sub AddParameter(name As String, Value As String)
   75 Dim i As Integer
   76 i = m_ParameterCount
   77 m_ParameterCount = m_ParameterCount + 1
   78 ReDim Preserve m_ParameterNames(m_ParameterCount)
   79 ReDim Preserve m_ParameterValues(m_ParameterCount)
   80 m_ParameterNames(i) = name
   81 m_ParameterValues(i) = Value
   82 End Sub
   83 
   84 Public Sub ClearParameters()
   85 ReDim m_ParameterNames(0)
   86 ReDim m_ParameterValues(0)
   87 m_ParameterCount = 0
   88 End Sub
   89 
   90 Public Property Get MethodName() As String
   91 MethodName = m_MethodName
   92 End Property
   93 
   94 Public Property Let MethodName(name As String)
   95 m_MethodName = name
   96 End Property
   97 
   98 Public Property Let XmlNamespace(uri As String)
   99 m_XmlNamespace = uri
  100 End Property
  101 
  102 Public Property Get XmlNamespace() As String
  103 XmlNamespace = m_XmlNamespace
  104 End Property
  105 
  106 Public Property Let OnReadystateChange(Method As String)
  107 m_OnReadystateChange = Method
  108 End Property
  109 
  110 Public Property Get OnReadystateChange() As String
  111 OnReadystateChange = m_OnReadystateChange
  112 End Property
  113 
  114 Public Property Get EndPoint() As String
  115 EndPoint = m_EndPoint
  116 End Property
  117 
  118 Public Property Let EndPoint(uri As String)
  119 m_EndPoint = uri
  120 End Property
  121 
  122 Public Function Query(Optional Asynch As Boolean = False) As Object
  123 Dim Envelope As Object
  124 Set Envelope = CreateEnvelope()
  125 WebClient.Open “POST”, Me.EndPoint, Asynch
  126 WebClient.setRequestHeader “SOAPAction”, “”"” & Me.XmlNamespace & Me.MethodName & “”"”
  127 WebClient.setRequestHeader “Content-Type”, “text/xml; charset=utf-8″
  128 WebClient.setRequestHeader “Content-Length”, CStr(Len(Envelope.xml))
  129 ‘Debug.Print Envelope.xml
  130 On Error GoTo ErrorTrap
  131 WebClient.send Envelope.xml
  132 On Error GoTo 0
  133 If Asynch Then
  134 While Not WebClient.readyState = 4
  135 DoEvents
  136 Wend
  137 End If
  138 ‘Debug.Print WebClient.ResponseText
  139 If Envelope.loadXML(WebClient.ResponseText) Then
  140 If Envelope.LastChild.FirstChild.FirstChild.nodeName = “soap:Fault” Then
  141 MsgBox “An error occured while communicating with the server.”
  142 Debug.Print Envelope.LastChild.FirstChild.FirstChild.FirstChild.nextSibling.text
  143 GoTo Reset
  144 End If
  145 Envelope.loadXML Envelope.LastChild.FirstChild.FirstChild.FirstChild.xml
  146 Set Query = Envelope
  147 End If
  148 GoTo Reset
  149 ErrorTrap:
  150 MsgBox Err.Description
  151 Reset:
  152 Me.ClearParameters
  153 End Function
  154 
  155 Private Function CreateEnvelope() As Object
  156 Dim Soap As Object
  157 Dim Envelope As Object
  158 Dim Body As Object
  159 Dim Method As Object
  160 Dim ParameterNode As Object
  161 Set Soap = CreateObject(ActiveXPrefix & “.XmlDom”)
  162 Soap.async = False
  163 Soap.appendChild (Soap.createProcessingInstruction(“xml”, “version=”"1.0″” encoding=”"utf-8″”"))
  164 Set Envelope = Soap.createElement(“soap:Envelope”)
  165 Envelope.setAttribute “xmlns:xsi”, “http://www.w3.org/2001/XMLSchema-instance”
  166 Envelope.setAttribute “xmlns:xsd”, “http://www.w3.org/2001/XMLSchema”
  167 Envelope.setAttribute “xmlns:soap”, “http://schemas.xmlsoap.org/soap/envelope/”
  168 Soap.appendChild Envelope
  169 Set Body = Soap.createElement(“soap:Body”)
  170 Envelope.appendChild Body
  171 Set Method = Soap.createElement(Me.MethodName)
  172 Body.appendChild Method
  173 Method.setAttribute “xmlns”, Me.XmlNamespace
  174 For i = 0 To m_ParameterCount - 1
  175 Set ParameterNode = Soap.createElement(m_ParameterNames(i))
  176 ParameterNode.text = m_ParameterValues(i)
  177 Method.appendChild ParameterNode
  178 Next
  179 Set CreateEnvelope = Soap
  180 End Function
  181 
  182 Private Sub Class_Initialize()
  183 Set WebClient = CreateObject(ActiveXPrefix & “.XmlHttp”)
  184 Me.ClearParameters
  185 End Sub
  186 
  187 Private Sub Class_Terminate()
  188 Set WebClient = Nothing
  189 End Sub