Sometimes it lasts in love, but sometimes it hurts instead.
Three-thirty in the morning is not kind to the psyche. It is not an hour at which one should be awake, whether by purpose or accident.
It is lonely. It is cold. It is dark.
At such an hour, if one is to be strong and make it through, one should not not not not not listen to heart-wrenching music.
Not especially when one is overly empathic. Not especially if one has been pushed past the breaking point for weeks. Not especially when the whole of the world is crushing down, again and again and again.
And god damn but Adele has a voice.
Such a voice.
It does not surprise me that this song holds so much potential for damage for me. After all, I cried, silently but truly, when the song was performed by one of the queens at the Drag Show.
Benjamin, on my one side, probably did not notice. Raven, on the other, did.
I did not cry during the ever-so moving perfection of the final performance by one of the queens, who flawlessly lip-synced to a stirring song about a drag queen who does it as a job, whilst changing, on-stage, to his everyday clothing and style. It was truly a work of art, in the most basic, pure sense.
I cried during Adele's "Someone Like You", as I am and have been on the verge of tears now.
Too much stress, too much flux, too much change, too much too much too much.
And it shows. I failed another three courses this semester. One is never being offered again, another is not offered in the fall, and the third I am retaking, this time with a professor who cares about his subject and his students.
I nearly failed the team. No one noticed, because I was able to hold it together until the end because that is what needed to be done. But it was a close thing. I did not even give my outgoing seniors anything but a half-smile and empty, hastily-spoken, poorly-planned words. I have been a shambled mess this past semester.
It all boils down to money, it does.
Always money, always harsh words.
In the apartment, short on money, especially as we drift closer to the end of the semester.
On the team, short on money and massive miscommunications to boot. And, on top of that, acting as the go-between for the Enterprise, my team, my teacher liaison, and several other teams in the area.
In the IEEE, not a lack of funds but a lack of access, and the apathy to do anything. God damn sense of duty preventing me from allowing things to slide, I took more on.
LUG having games played on them by advisors.
PFRC full of idiots and trolls, and a few hard-working folk being slowly ground down against each other, like pairs of gears that once were a matched set, but then taken out of the machine, put to abuse in others for revolution after revolution, then forced back together. No longer meshed, the faces rub and grind, split and wear, with the inevitable conclusion to destruction of them all.
And Matt is graduating. And who can blame him for the small, wistful-yet-elated smile that creeps upon his face in such discussions when he thinks no one notices? Hell, I have far more obvious a grin when I think of how I will be leaving this place soon.
I love it, and yet cannot for much longer stand it.
Life would sometimes be better without all the people in it...
I need a break from the people up here, almost all of them. I am snappish and bitter, and have a hard time smiling or even being civil much of the time. I well recognize that I am depressed, and hope that I can either kick out of it myself simply by a change of scenery, or, failing that, professional help. I know well there is no shame in counseling, and I had planned to engage the services offered free to the student body up here.
But life intrudes. I know that is the wrong attitude, that that is the depression talking. I know all that, but I also know there are kernels of truth in it. I know that the Counseling Services department is wildly overbooked and understaffed, even having added a new employee or two in the last year. Really they ought to have the entire floor. I know also that much of the time I would be able to schedule meetings with them, I had classes, or meetings that would get nothing done without me.
But of course that is the point, the reason I am here. I give far too fucking much of myself to anyone and anything that wants a piece. Hell, I give myself to people and things that do not ask for it. I make work for myself. I find work for myself. And yet, I seem to be unable to find myself for myself. I have reserved nothing. And thus, when I need a little, when I need some time, when I wobble a little...I hit the ground hard. Too hard. No cushions.
I have tried expanding my circles, since I have pretty much been unable to find anyone mutually interesting within my current ones. Everyone I know is in one of three lists: a) happily unavailable, b) not interested otherwise, or c) not interesting. I have gone out numerous nights, to the DT, to the Dog, even to the new club. In every case, the folk interested in me were boozed-up and skimpily-dressed, interested in a one-night fling. Call me old-fashioned, but I am not really in the mood for something like that right now. But I see more and more of my friends around me getting together with people, in apparently-stable relationships, and I feel myself becoming the ever-more overshared third wheel. And I try not to be bitter and cynical, because I know that makes me even less attractive, but damn it is hard sometimes.
I also have withdrawn into myself. This is the depression again, and also a function of the outside environment. To whom should I talk?
Benjamin? The man is terminally depressed himself, and always wants to fucking fix things, even in the middle of explanations as to why things cannot be fixed, not easily, possibly not ever. Besides, he also has a seemingly never-ending string of women who he picks up, adores to tears, and then they disappear away. He has far, far too many issues of his own to be useful in helping solve mine.
Anna? I hate to add yet more pain to her. Too much load. She handles shit in even worse ways than I do, and seems on the upswing right now.
Peter? Fuck no. Not productive.
Kiri? Eh, maybe, but probably it would just end up being a mutual bitch-fest about Benjamin, of which I have had far too many of late.
A'Lisa? Again, I hate to load her with more shit, and it would also turn into yet another bitch-fest about Benjamin. Mostly on my part here, because he is a trouble source in my life, and I tend to turn to him when dealing with my shit. A major chapter will need to be made on "My Dealings with Benjamin". This is not to say there will not be an equal chapter of "Fun Things With Benjamin", but it will be there.
Squeaker? Possible, but it would likely turn into a bitch-fest about Benjamin.
Evan? I am not yet comfortable enough there to do so, though he probably is the best option at this time. On the other hand, he will also try to fix things, though not as aggressively as Benjamin would.
Rusty? No, I have barely said ten words to him in the last semester. Mutual fault there -- I went over to ECE/IEEE, he has been...whatever he has been doing. Probably working on graduating.
Krista? Similar to Rusty. I have seen her like twice this semester. I miss Krista. A lot. I should make time to go up and talk with her and Rusty for a while before it is time to leave for the summer, because I am not even sure they are going to be here next fall...
Enterprise folk? Probably the only one I could reasonably talk with is Megan, and it would turn into a bitch-fest about FIRST and the Enterprise in general, and would also probably turn into mutual affirmation. Useful in its extents, but not enough. Besides, we did that at GVSU.
Professors? No. Absolutely no. Not one I know well enough to deal with this. Not that kind of relationship at all.
So, yeah, I need to talk. I need a sink, no judgment, or affirmation, or decisions, or anything, that I can pour shit out into until I am done. Which is probably why I am making my first post in years here, because this is a sink. No one uses this much anymore, not many ever commented even back when this was used.
Am I done? Yeah, I am done. It is nearing a quarter of five, well past time enough to sleep if I want to be anything like productive tomorrow.
Machine Vision Musings
It occurs to me that machines do not see things that way we do.
For instance, I look at a 3D calibration tool, and instantly can tell where it is in the frame of view, and know where the edges and vertices of it are.
My vision profile to do that same thing takes over ninety tools, mostly line finders and geometric calculators, and ends up finding all sorts of interesting things about theobject that I cannot or do not see. I suspect that it is mostly the latter, as the cameras are only 640 X 480.
These things, while interesting, are of little use for the task at hand and get in the way, so novel ways of looking at the object and the process are necessary to discard them.
I suppose our brains are doing much the same thing, so perhaps the two systems are less different than I originally thought.
However, it is fascinating to build up a series of tools in Scorpion to accomplish a task, and realize that the same task is accomplished in microseconds by the human brain.
I sit cross-legged on my unmade bed, comforter and blanket nestled around me loosely, my pillow wedged against my lower back. My wrists are laid lightly on my knees, and my back is held in a relaxed, straight position. My eyes are just closed. A warm breeze blows through the open window.
A deep breath in through my mouth, held patiently for just as long as is comfortable. An exhalation--but slowly!--through my nose, with the sweeping focus point washing through my mind like a warm, deep blue wave: CALM
A thought pops up; it is studied carefully as a prized possession, followed through in full, and then washed away naturally with the next exhalation. CALM
Soon, I am no longer on my bed but leisurely strolling through a well-kept, sunlit old-fashioned library with oaken shelving and leather-bound books in neat order. A librarian discreetly joins me, dressed as I am in light-colored kurta and salwar kameez. The twain of us with hands gently clasped behind our backs walk silently through the aged bibliotheca. She asks at the right moment if she can help direct me--it has been a while since I last visited and there have been many shelves added and partially cross-linked in my absence--and I nod politely, falling an easy, measured two steps behind as she takes the lead.
She guides me past well-remembered and less familiar shelves containing volume upon volume of writing, some neat, some not so neat, much in pen or slightly smudged pencil, some in crayon or brazenly-coloured pen. The copper lettering on the deep brown bindings slowly creep upwards in date, from the first few truly self-aware, conscious thoughts that entered my five-year-old mind through my self-developing years in middle and early high school, to years of rapid expansion of worldview and awareness of others in late high school and my first year of college, to much more recent, dingier times of self-discovery and the first few missteps, faltering stumbles, on the road established since eighth grade.
She notices me slowing as we reach these troubled times when the winter was around me and indeed seeping into me, and gently inquired whether I needed to review any of these volumes. I glance again at their bindings, at once both exactly as well bound and kept as all the others and yet somehow somewhat darker than the rest, and reply that these volumes had been reviewed more than warranted another inspection at this time. She softly assents and, turning on the ball of her foot, leads the way to a series of wholly unfamiliar shelves smelling sweetly of newly-bound books and fresh-cut wood. These were the volumes tidied away by my subconscious mind in dreams and in idle moments, undisturbed by my conscious mind in meditation for many months, and dearly requiring a careful understanding and integration into my whole. I thank her, and she slips away, parting the air as seamlessly as only a good librarian can, leaving me to ponder over the detailed history of my life, viewpoint my own, of the last three months.
The next indefinite number of hours pass, watching me work through page after page, volume after volume of smooth new paper, carefully and neatly filled with writing in crisp black pen. The viewing continues undisturbed until I am finished. I stand, and the librarian glides around the corner of shelving, unbidden at exactly the right instant. She wonders if I have seen what I needed, and, replying in the affirmative, I ask to confirm the terminal still stands where it has for the last several years. She answers in the positive as well, and swiftly guides me to it. I sit in the deep, well cushioned armchair, resting my hands lightly on the rests and looking ahead at a smooth section of unshelved wall that rapidly becomes a wide, clear screen. A simple, smooth graphical interface greets me, and I quickly open several terminal windows, focusing in on the relational links between various volumes within the vast expanse of shelving behind me. I enhance a few here and there, especially with regards the freshly-laid pathways just made not five minutes before.
The time rapidly approaches, though, that I must be done with my work here, and so, closing the windows cleanly, I rise from the chair to be greeted by the librarian. She guides me back to the entrance of the venerable institute, where I bow deeply to thank her for her help, and am thanked in kind for my visit. A few steps through the door take me to a spare plain, with a bright blue sky and rich, full grasses around. Ten minutes' walking brings into view a dearly-loved wood with a large lake in the center, with a small sailing boat tied up quietly to a short dock. I look at it wistfully, but it is time to leave.
I take a deep breath in through my mouth, hold it just as long as I can, then slowly release through my nose CALM. A second iteration clears the wood from view, and I am once again back in my own body, with a slightly blue sense of peace filling my being alongside the warm pink satisfaction at successfully integrating the last few months' experience into my worldview and being. I rise and head out of my room to greet the day in full.
So, I work with images and Python a lot at work, and came across an interesting issue. I have a C++ DLL I need to pass an image to, but the image is stored internally as a list of integer pixel values, and the DLL expects a C char array. Obviously, a conversion needs to take place. However, this project is destined to run on a 400MHz Geode processor with 256 MB RAM in a smart camera running Windows XP Embedded...so I needed to make sure the process was a fast one to get an acceptable cycle time.
The naïve way to do this was of course to use a
for loop and append the
chr value to a generated string:
string = '' for byte in img: string += chr(byte)
This ended up running in 180.46ms on the test image, 640 X 480, on my dev laptop with a 2.5GHx Core 2 Duo and gobs of RAM...tested on the camera, this took 5.5s to run...bad.
Clearly, a better solution was in order. I heard great things about the Pythonic way of doing things, generating a list of small strings and
string =  for byte in img: string.append(chr(byte)) string = ''.join(string)
Well, 168.88ms is better than 180.46ms, but still way too high. Another method suggested was to use a file-like string to write the data to, essentially creating a mutable string that tolerates rapid appending:
from cStringIO import StringIO file_str = StringIO() for byte in img: file_str.write(chr(byte))string = file_str.getvalue()
Definitely not--not entirely sure why this consistently runs in 206.72ms, but that is going the wrong way and I do not have time to debug it. Next solution comes from the Python manual, list comprehensions:
string = ''.join([chr(byte) for byte in img])
Much faster at 140.53ms, even from the first few, but still not fast enough. Well, list comprehensions generate the entire list in memory at once, so let us try a generator expression, which generates values as needed:
string = ''.join((chr(byte) for byte in img))
Faster still, but still too slow at 118.97ms. The next step is to start exporting this conversion to C using
string = ''.join(map(chr, img))
Holy wa! 75.61ms! Less than half the time of the first method. This code runs in 2.2s on the camera, though, so while it is impressive to be sure, it is still too slow. Next, a suggestion from the Python mailing list, to use the C string methods to concatenate the strings:
import string as bob string = bob.joinfields(map(chr, img),'')
No real difference, with a runtime of 75.73ms. Hmm...Now to take the advice of Guido van Rossum, who apparently dealt with a very similar problem using a character array:
# Char array -- 54.08 from array import array string = array('B', img).tostring()
Well, 54.08ms is another impressive reduction, but it appears we are rapidly getting to the point of diminishing returns. The only next step is to export the code out to a C extension. However, in this situation, it makes more sense to ask the developer of the DLL to accept the data in an integer form rather than a character one, and convert in C++. He has agreed to consider it, and so there ends the quest for optimization. However, it is a useful thing to have learned, the varying degrees of speed and simplicity of solutions to this problem.
- The development laptop that the code snippets were tested on is a Lenovo ThinkPad T61, with a 2.5GHz Intel Core 2 Duo and 2GB RAM, running XP Pro SP3. All code was executed in the built-in interpreter to Scorpion Vision Software, run concurrently to Thunderbird, Firefox, several PuTTY windows, Skype, and of course, Scorpion itself.
- Timing was done using the
clock()method, triggered before all of the conversion code (but not the
importstatements) and printed out after.
- Timing was averaged between ten runs of each method.
- The three time values from the camera were taken in a similar fashion from and instance of Scorpion running as the only foreground application on the Sony XCI-V3 100 camera, running XP Embedded SP2 on a 400MHz Geode with 256MB RAM.
- The test image was captured on the Sony camera and simulated (loaded from file) in Scorpion on both machines.
I just spent 2 hours debugging a C wrapper for libpcap, now is your chance to pester me on the finer points of the Python C api :)
I have been using
ctypes to talk to the DLL--seemed to be the most straightforward way of doing it.
FRC Nationals 3
- 06:15: Fuck, I need to get up again.
- 06:35: Dammit, breakfast!
- 07:15: Walk to the pits.
- 07:25: Arrive at pits, write down match schedule, send team off for first match.
- 09:00: NI Presentation: Debugging Techniques
- 09:30: NI Presentation: Common Tasks Made Easy
- 10:30: NI Presentation: Rapid Tuning and Development
- 10:37: 78-66: Our first win.
- 11:42: 80-77: Our first loss--1334's robot was disabled the duration of the match for unknown issues.
- 13:43: 74-60: Second win.
- 15:42: 101-40: Loss--both alliance members' robots were pinned down, and we got hammered by the third robot. C'est la vie
- 15:43: "Hey Chris, I got some ideas for some new code...wanna write the next version of AutoFlex [PDF]?"
- 16:58: 126-68: Win.
- 17:30: We may have a working version (by my reckoning, v3.1-LabVIEW) of AutoFlex.
- 18:45: Good dinner at a Chinese buffet.
- 20:20: Crash in my room, send emails asking if a SourceForge project for AutoFlex would be out of the question in terms of IP.
FRC Nationals 2
- 06:15: Wake up
- 06:30: No, seriously, wake up.
- 06:35: Oh, man, breakfast.
- 07:00: Walk to Georgia World Congress Center Building C (pits)
- 07:25: Set up pit.
- 09:00: Fix autonomous code.
- 09:10: Fix autonomous code.
- 09:30: Fix autonomous code.
- 09:45: Fix autonomous code.
- 11:30: Fix autonomous code (with NI help)
- 13:00: Lunch
- 13:30: NI Presentation: PID Control in LabVIEW
- 15:00: NI Presentation: Vision Basics in LabVIEW
- 15:30: Talk to 1675, see new shiny things (Java-powered robots!) at 2010 FIRST booth
- 16:30: NI Presentation: cRIO Hardware Tricks
- 17:00: Put LabVIEW sticker on robot
- 17:15: All four of our cart's pneumatic wheels have broken inner tubes. Tried to track down new wheels. No success.
- 19:15: Dinner at CNN Center
- 19:45: Eight kids want to go back to hotel, I volunteer to take them. Am asked if I want another mentor to come back with; there are only eight kids. Am mystified.
- 19:46: Right, eight to these people is a lot.
- 19:57: Arrive at hotel, crash in bed with laptop, call customer support regarding processor order ("Yes, I do actually want to ship it to a different address than my billing one...yes, I live on-campus at college...yes, I ordered that product...yes, I want to reach through the phone and strangle you..."), call mom to say hello.
- 21:42: Seriously thinking about sleep, but will likely crash in an hour or so after team meeting.
FRC Nationals 1
- 05:30: Meet my ride, drive to Houghton Airport.
- 07:00: Board flying bus, short hop to St. Paul.
- 10:10: Board Airbus A330, fly in blissful sleeping comfort until landing in Atlanta.
- 13:30: Get MARTA passes, find hotel, get set up, switch rooms, get unpacked.
- 16:30: Go to Coke factory.
- 17:12: Remember why Beverly, a Coke product only sold to Italian teenagers, is so disgusting
- 18:00: Eat until bursting at an excellent sit-down Mexican hole-in-the-wall in the CNN Center.
- 21:00: Fun and enjoyable pep-talk/team organization meeting.
- 22:00: Time to crash.
Hehehehe, yeah thats one disgusting drink.
/in my day FRC nationals was at epcot
//we used pbasic
///get off my lawn
So, an interesting thing happened this weekend. Well, several interesting things happened, but I am only going to talk about one. That one interesting thing was that I was stuck with breasts for the better part of the weekend (see last post). This was interesting in several ways, including the usual nervous derision from others uncomfortable with genderfuck presentation and the jolly "laughing with you not at you" from friends who are cool with it. It was amusing, to be sure, but more intriguing to me was the visceral feeling of loss when I was able finally early Sunday morning to remove them. (As a side note, it was also interesting to note how many of my friends seemed to miss them as much as I...including several comments to the line of "Andrew no longer has his chin rests...")
Now I have to wonder, if a simple matter of wearing something in close fixation to one's body for a little under forty hours is enough to integrate said device into one's body image to such an extent that one feels ghosts of the removed device, what else could be used in similar fashion? I have read about the various experiments to augment or research the human sensory experience, and, indeed, the human brain is delightfully adept at using unconventional sources of information as completing parts of its generated worldview. I am intrigued to find out whether this rapid integration in my case was a result of the nature of the devices and my natural proclivities thereto or whether it was a genuine representation of the breadth of adaptability of the human brain.
Unfortunately, we rapidly near the end of the school year and thus my ability to reasonably have an excuse for appearing thus is therefore quickly diminishing. To wit, as a college student at school in the second semester, and especially as one who has quite firmly come out positively as "not straight", it is quite easy to come up with excuses for which to have genderfuck presentation about one's body, taken at face value even by one's instructors. However, in the world outside the school's campus, where one is an employee at a small business and thus has certain standards of dress and appearance, not to mention having quite restricted and quiet views on queer subjects out of a sense of discretion, there is very little one can think of to use as even a lame excuse, and thus any experimentation along these lines will have to take place in three and a half months, when one again dons the mantle of college-student-on-campus and neatly packs away that of working-young-adult.
Often a plot point in transgender erotica, the transformed hero frequently finds that his new gender "feels more natural" to him than that of his birth, to the point that, in the rare event he is given a chance to transform back, or is transformed back, he will reject the offer or plead for his newfound nature to be restored upon him. This plot point has been used to the point of cliché and beyond, such that one such story can be used as a drop-in replacement for another, but recent activities seem to have indeed awaken a passion for this that I did not know before. I have made interesting and intricate plans as I fall asleep to give myself an affliction of sorts, to allow myself to present solely as female for an indefinite period, ranging from the fantastic ("I fall into the chemical disposal unit in the ChemSci basement and arise a Venus") to the mundane ("I go to Wal-Mart and buy several casual outfits"). Especially interesting is the current belief that my subconscious seems to have that this newfound hobby can be turned to profitable use, though of course it is quite firmly silent when pressed for details of such a scheme.
However, in all practicality, there would have to be several major components to complete before any such plot were unleashed. First, a more comfortable, more effective form of tucking would have to be purchased or designed. Second, a better adhesive would need to be procured, that allows breathing to the covered skin and prevents undue irritation thereof. Third, and quite possibly the most difficult, I would have to work seriously on feminizing my voice. I did not need to worry too much about that last week, as I was going explicitly as a guy in drag, even on Friday night, and was surrounded by a multitude of people to which it did not matter. No matter how convincing my outward appearance may be, though, my voice will always and invariably give me away if I cannot at least bring it up an octave or two.
The loss of one's voice gives one a chance to reflect on both what one would be saying and what others say, as well as on one's own thoughts. Even through a medium as fast and descriptive as a hand-held whiteboard, one does far less "verbal" communication. Thus, I think, is explained this sudden outpouring of ruminations. However, though I have said on several occasions that I am transcurious but not needful of a conversion, I am not entirely sure that the sentiment backing that still holds. We shall see in the next few days as emotions and thoughts settle after having been kicked up like so much sediment by the keel and wake of the swiftly-moving weekend's sloop.
A quick post, before I go to bed.
Drag Show was a blast, thanks to Sam, Krista, Ben, Tim, Christian, Alan, and others, in no particular order. I had a lot of fun, and made $10.
Some lessons learned for next time:
Let the adhesive cure for five or more minutes before applying to skin, as the warning label says. Do not mistime it, or one runs the risk of being quasi-permanently bonded to the device in question. (yes, I have adhesive remover; no, it is not working because I cannot get under the form enough at this stage to apply it...I need to let the adhesive warm in a shower and work it--SLOWLY!--off)
Waterproof makeup is. However, Crisco saves the day.
Isopropyl does not substitute itself for acetone. Nor does Zippo fluid, though it makes pretty colors when one lights it.
Borrow shoes from someone a little larger than you--it will be more comfortable.
So, this post marks the beginning (well, two hours late) of the 2009 Keweenaw Pride GLBTA Pride Week. The biggest event I am excited for is the drag show at the end of the week, as I will be participating in the amateur competition there. Krista, Kenny, Rusty, and I went shopping yesterday for an outfit and other things, and found great success. We found a slinky black almost-velvet dress which feels like it was made for me it fits so well, and a cool little salsa-ish dress with ruffles and such. The salsa dress will not be used at the drag show, but it fit me so well and it was cheap from Goodwill, so I bought it against a future occasion. We picked up some foundation for my skin color, as well as an appropriate (maybe) shade of lipstick and a new bra and hose. We figure that I should be able to borrow the rest I need from other people, either Tim or one of the Daddy's Girls.
I have been telling people all year that I pass well, but it was a bit of a shock, I think, when I showed up with forms in and wearing the velvet dress. It was a kick going about the hall, introducing myself as Amelia (my stage name) and seeing who was cool with it and who was uncomfortable. The dress was really comfortable--I ended up wearing it for several hours and even debated going to the Filmboard movie. However, I decided against that course of action due to the fact that not only would I want to shave a few more areas (arms, the rest of my legs) and get a bit of makeup on (I have a wicked shadow), but I have no shoes to wear. For the drag show, Tim has found me a pair of silver go-go boots with a moderate heel to borrow, which should actually go well with the rest of the outfit.
It has been suggested that Ben and I do a duo next year, possibly using the number "Take Me Or Leave Me" from RENT. Tim commented that we may even class as professionals, and get the accorded payment thereof. This would be very cool, to say the least.
I will be performing a dance and lip-synch to Groove Coverage's "Forever Young".
Which method of integrating python with a C++ DLL are you using? Raw Python C API, pyrex, or what?
It may actually be smartest to do this type coercion right in between since its probably already doing a type coercion right there no matter what you do on each end.