Despite religiously taking my medications, I’m still not quite all that functional. I mean, I suppose the good things are that I’m not having any problems at work, and I’m not sleeping sixteen hours a day anymore.
But my home life (or lack thereof) is a debacle.
My apartment is currently extraordinarily disgusting. It’s amazing how much maintenance is actually required to keep everything running smoothly, and I never have the will nor the wherewithal to deal with it, except for that extremely rare occasion that someone decides to visit. Plus it’s too goddamned hot in here, since I don’t have A/C. It feels like a freaking sauna.
So what my strategy has been lately is to find some neat, hipstery cafe that has free wi-fi, and hang out there for hours on end, until it gets dark again, and I can actually stand being in my apartment, or at least be willing to sleep in it.
I even thought about driving up to L.A. to my parents’ house today just so I could hangout in an air-conditioned environment. But since it’s now 1pm and I have to work tomorrow, I would probably be just an atrocious waste of gas.
The indecision comes in because I can’t decide where I want to go. So I’m here sitting in front of my computer browsing the guides to wireless cafés in San Diego.
I’ve been hanging out at Influx a lot. I checked out Cream the other day. Yesterday I went to Krakatoa. Hmmm.
As for my avoidant behavior, I sometimes call it being anti-social. (Although, clinically, being anti-social involves being more of an asshole rather than not wanting to interact with other people. Plus I don’t have any tatoos.) You may think it strange that I want to go out in public, but that’s the great thing about being conditioned by living in big cities for most of my natural life: Despite being out and about, I feel completely anonymous, and I have mastered feeling alone and sometimes even lonely in the midst of a crowd.
There is a possibility that these are simply my baseline characteristics (which a psychiatrist would term as personality disorders, or Axis II diagnoses.) Ironically, I would be better off if this were just a subclinical manifestation of my depression, because depression is curable, but personality disorders are basically permanent.
But, whatever.
This shift work life is simply not agreeing with me. And I still have three more weeks to go.
Mark Ronson covers the Smiths.
This song has been in my head for the past couple of days.
Interestingly, Alfie Ebojo, an artist whom I’ve been blog-stalking for a while now, blogs about it on Myspace.
One of these days I’ve got to meet her. Apparently she lives with someone whom I went to college with. Here’s to six two degrees of separation and to being in my Myspace network.
I haven’t heard this song in 12 years.
Hearts cannot be broken
They’re small squishy things
They don’t break like glass but they bruise easily
This one you bruise
Words will not be spoken
never knowing what they mean
Sticks and stones hurt my bones,
your promises have broken me
each one you break
And I want to be good but good is being simpleSimple is forgetting
I simply can’t forget
I want to be good but good is being simple
SImple is forgetting
And I simply can’t forget
Eyes are always openeven when they sleep
Mine are mostly closed while yours are wandering
You look where you please
And I want to be good but good is being simpleSimple is forgetting
I simply can’t forget
I want to be great but greatness is giving
Giving leaves me empty
Oh great emptiness
Souls cannot be takenThey’re large and they’re loud
Yours merely whispers, lately seems it’s shrinkin’
I wish it would speak
And I want to be good but good is being simpleSimple is forgetting
I simply can’t forget
I want to be great but greatness is giving
Giving leaves me empty
Oh great emptiness
And I simply can’t forget
Dum spiro, spero
I’ve been obsessed with song lately. I’m not sure why. It’s pretty catchy, though. Very “Dust in the Wind”-like, or maybe “Sound of Silence”-ish.
Honestly what will become of me
don’t like reality
It’s way too clear to me
But really life is dandy
We are what we don’t see
Missed everything daydreaming
Flames to dust
Lovers to friends
Why do all good things come to an end
Flames to dust
Lovers to friends
Why do all good things come to an end
come to an end come to an
Why do all good things come to end?
come to an end come to an
Why do all good things come to an end?
Traveling I only stop at exits
Wondering if I’ll stay
Young and restless
Living this way I stress less
I want to pull away when the dream dies
The pain sets it and I don’t cry
I only feel gravity and I wonder why
Flames to dust
Lovers to friends
Why do all good things come to an end
Flames to dust
Lovers to friends
Why do all good things come to an end
come to an end come to an
Why do all good things come to end?
come to an end come to an
Why do all good things come to an end?
Well the dogs were whistling a new tune
Barking at the new moon
Hoping it would come soon so that they could
Dogs were whistling a new tune
Barking at the new moon
Hoping it would come soon so that they could
Die die die die die
Flames to dust
Lovers to friends
Why do all good things come to an end
Flames to dust
Lovers to friends
Why do all good things come to an end
come to an end come to an
Why do all good things come to end?
come to an end come to an
Why do all good things come to an end?
Well the dogs were barking at a new moon
Whistling a new tune
Hoping it would come soon
And the sun was wondering if it should stay away for a day
‘til the feeling went away
And the sky was falling on the clouds were dropping and
the rain forgot how to bring salvation
the dogs were barking at the new moon
Whistling a new tune
Hoping it would come soon so that they could die.
I learned a valuable lesson from a fallen priest back in high school. At the time, I didn't know his crimes, and the lesson loses no value because of them. (He was eventually accused and proven to have molested several children.)
But the lesson was this: it is almost human nature to thing about things using false dichotomies. But just when you think there are only two choices, a moment of discerning clarity will reveal to you that there is always another choice.
He was giving a homily at mass I think, or maybe just lecturing in A.P. English class. He deconstructed the movie "Dead Poet's Society" and the protagonist's false dichotomy in the middle of the movie: stand up to his father and follow his heart, or commit suicide. Unable to do the former, he does the latter.
While it would suck the drama out of the movie (and ruin the plot completely), anyone who is not depressed can see that there are alternatives. There's no reason why every flash point in life needs to be some bloody Battle of Maldon, or some suicide death pact like the Battle of Masada.
(In fact, the sitcom "Friends" even lampoons the premise:
I thought that movie was so incredibly… boring. I mean, that thing at the end where the kid kills himself because he can't be in the play? What was that?! It's like, kid, wait a year, leave home, do some community theatre. I walked out of there and I thought, "Now, that's two hours of my life that I'm never getting back." And that thought scared me more than all the other crap I was afraid to do.
True, there are plenty of battles where it would be immoral not to fight, but even then, there is always more than one way to face the enemy with honor.
In keeping with my "I want to live" epiphany, I recognize that there is a third way I can live a fulfilling life. If happiness with my soul mate is not my fate, I'm not necessarily condemned to a pointless life of loneliness and pain. And this doesn't mean I'm going to Meet Someone®, someplace, someday.
This means fulfillment now. Carpe diem and all that jazz. Go on vacation somewhere, get some sunlight, write that novel I've been alway meaning to get to. Just chill out and go with flow, and let life take me whereever I need to go. Gæð a wyrd swa hio scel.
I don't know why. I've been once again obsessed with the sad and sorry life of Severus Snape, and how he lost the only woman he loved, and how his life was effectively ended after she was murdered.
Thinking about it makes me physical ill, and yet I can't help but obsess.
Needless to say, this is mostly due to the disturbing parallels between my life thus far and his sad, pathetic story.
No, no, this is not to say that I was not loved as a child. In some ways, it's like I grew up with three sets of parents. This, of course, has its own pitfalls. But surely there is still an important difference between dysfunction and non-function. Oh yes, I had a dysfunctional childhood, that at least is clear, especially since my mother, of all people, has at last admitted as such.
I wasn't beaten. Much. Definitely not hard. No black eyes or bruises. Maybe red marks and welts from belts and slippers, but definitely nothing to call Child Protective Services over. And while my dad was/is very good at psychological warfare, and was pretty good at leveraging the threat of violence, he never hit my mom.
And while my parents haven't exactly been the epitome of, ah, marital bliss, they somehow managed to stay together, despite the affairs and the arguments and the accusations.
I wasn't poor, either. I wasn't rich, but who really was rich in the 1980's besides a bunch of crooks who are now working for the Bush Administration, selling oil, or selling cocaine and heroin? See, it's not really the absolute amount of wealth that defines one's means. It's the gradient.
So, while I had reasonably new clothes that weren't full of holes, and I even had a car in high school (albeit a car that was 10 years old, had 120,000 miles, didn't go over 80 mph, and had been in a massive accident), it didn't help that I was around people who had new clothes every week, who went on trips to Europe, and who got Lexuses and BMWs when they turned 16. Hilariously, the tactic of sending me, my brother, and my sister to private school ended up teaching us to hate the bourgeoisie, never mind the fact that we are part and parcel of the whole system anyway. We all ended up opting to go to public universities afterwards.
Sure, I grew up hating myself. What self-respecting teenager doesn't have a well-developed sense of self-loathing? Maybe the only fault—though it wasn't an uncommon mistake—was the fact that I had full-blown clinical depression for at least a couple of years, and no one really gave a shit about it.
Let's just say that my mind has been conditioned to see the dark side of everything, and it is probably unavoidable that I see myself as not having a very happy childhood. There were definitely some really good moments, but none of them ever lasted, and a lot of them went very badly indeed.
I did have a girlfriend when I was 16. Nevermind that our courtship was in many ways excruciatingly painful, as she dated a couple of guys and told me all about it before she finally decided to be with me. Maybe that's the happiest I've ever been. I think I was in love. Not that I can confidently say that I know what love is. But it was something.
I sometimes pat myself on my back whenever I think about how she tried to win me back after we broke up. Not that it matters much. She's married now and has a kid, and has at last stopped talking to me, which has always been how I figured it would turn out.
Oh. Why did we break up? She slept with another guy.
Oh, I recognize that most adolescent romances never go anywhere, but surely there are less traumatic ways to end a relationship.
Actually, the older I get, the more bitter I become about it. Not everyone gets their heart completely mutilated at the age of 18, you know.
Which leads me to the thing that I find the most painful, because there is absolutely no one to blame. Even twelve years out, I still wonder, even though it has no relevance at all on real life.
If I hadn't had my heart destroyed first, would I have had a fighting chance with the Woman of My Dreams?
This is where the whole Severus/Lily thing totally turns me inside-out. There is a woman whom I have been friends with for almost 13 years, but I fell in love with her, and I think that screwed everything up. And maybe it wouldn't have gone down that way if I didn't fall into a great big gaping pit of despair that one September evening 12 years ago, when my girlfriend told me she fucked some guy. Maybe I wouldn't have been so needy and desperate and helpless and hopeless and unable to function as a human being. Maybe I could've been a better friend, and there wouldn't've been this awful distance between us that I never dared to cross until it was too fucking late, and even then, maybe it wouldn't've mattered.
I've lost a lot of friends along the way. Well, not lost, not in this hyperconnected world we live in, where I can always IM them or message them through Facebook or Myspace. But they've definitely dropped out of my life. There used to be a time when I would call my oldest friend in the world at least once a month, if not once a week. At least drop him an e-mail, see how he's doing. My aforementioned ex-girlfriend, after we started talking to each other again, about five years after we broke up, used to call me up pretty often too. I last spoke to her maybe two years ago? Though I still hear about her from time to time thanks to the bizarrely provincial nature of the neighborhood I grew up in L.A.
The only people I see now with any regularity are my parents, my brother, and my dog. Oh, I hear from folks from time to time, but its never the same.
The upshot of all of this is that I've never been so alone in my entire life. If I worked in a cubicle, I bet you I could go for weeks on end without really talking to another human being, excepting the transactions over the counter or through a drive-through window. As it is, my job requires me to engage and gain the trust of human beings every single day. It's a wonder I can do it all, considering how completely burnt-out my soul feels sometimes.
Thank God for happy pills, I guess.
But She… She has always been a good friend to me, despite my raging madness, despite my more-than-occasional boorishness, despite my lack of social grace, despite my bitter melancholy, despite the fact that I don't answer the phone or return messages and never check in and say hi and ask how her husband and her kids are doing. Even when she had started dating her now-husband, and I ran away, crushed, defeated, directionless and unmoored, she sent me a card telling me that she missed my friendship. She even went on a road trip with two of our friends to visit me for my birthday that year.
When I had to make rushed plans for a clinical rotation in my fourth year and she was pregnant with her first child, she agreed to let me stay with her, her husband, her brother and his family because I didn't have anywhere else to stay.
Whenever I make my way back to their neighborhood, she and her husband always make sure to meet up with me, however briefly.
The whole falling in love thing screws up a lot of good things, I guess. I think about Severus and his friendship with Lily. Here was a woman who always looked out for him, who treated him with respect, and who had insight into the good things about him.
Someone else brought up this passage and it sticks to me, how Lily could see in Severus what no one else seemed to:
"Really?" whispered Lily.
"Definitely," said Snape, and even with his poorly cut hair and his odd clothes, he struck an oddly impressive figure sprawled in front of her, brimful of confidence in his destiny.
You never get the exact time course of how everything fell apart. Did Severus get drawn to the Dark Arts precisely because he felt that this kind of power would be the only way he could keep James from taking Lily out his life? (Shades of Anakin Skywalker seep in.) That this was the only way he could keep himself safe from James and Sirius? Or was it because besides Lily, only the Death Eaters treated him with respect, recognized him for the powerful, talented wizard that he was? Only the Death Eaters gave him a sense of actually belonging, of being wanted.
Would he have had a chance with Lily if he had decided to eschew the Dark Arts and reject Voldemort?
Like all "what if" questions, there are always at least two equally correct answers, neither of which help with resolving anything.
On one hand, anything that is not expressly forbidden by the Laws of Physics (or, I suppose the Laws of Magick, in this case) is always possible, and in a possibly infinite universe (whether in terms of time or space or both, since the two are interwoven), everything that is possible is actually inevitable given enough time.
On the other hand, clearly we are asking questions about an alternate universe from which we cannot obtain any information from, meaning that, since it didn't happen, then there was no chance of it happening. The arrow of time turns even random chance into Fate. In other words, the answer is maybe, but it doesn't matter now, does it?
I've long stopped asking "what if" questions. Though in moments of weakness, I will slip.
Severus' "what if" haunts me because it is my "what if."
But the more important question is this: if Severus did not fall in love with Lily, if Severus had understood what a good friend she was, and loved her back as a friend and nothing more, would it have gone down completely differently? Would he have striven harder to always have her back, to always support her, even when making decisions like deciding to marry James? Would the draw to the Dark Arts not matter, because he wouldn't be so desparate to keep her in his life, because he would understand that she really cared for him in her fashion, and that this wouldn't necessarily change just because she didn't have romantic feelings for him, and that her friendship was enough of a sense of belonging for him? Would it have mattered if he realized what she saw in him, and even though it didn't mean that she loved him in That Way™, it was still important, such that he would strive to always be someone who lived up to that ideal?
I suppose, in terms of the plot, it wouldn't've, because Lily would've probably still been killed, and Severus would've still stood against Voldemort because of it, and because of his talents for occlumency, he still would've been the best man for the job of infiltrating the Death Eaters.
But maybe he would've been less bitter, knowing that, although he didn't have True Love™, he had a True Friendship.
I don't know. It would just be less sad and pathetic. The worst part was the scene where he found a letter Lily had written to Sirius, and ended up keeping the picture of her and her signature. As someone else brought up somewhere else on the Internet, I mean, c'mon, if they were friends, wouldn't you think he would've had a few letters and pictures of her actually addressed to him? I mean, this is just sad and stalkerish.
(Not that I don't keep everything she has ever written me, but still.)
There has been much written about the fact that Severus follows the long tradition of Byronic heroes. Wikipedia gives this particular definition, which describes Manfred, the prototypical Byronic hero, and which also well describes Heathcliff from Wuthering Heights and Sydney Carton from A Tale of Two Cities:
- conflicting emotions, bipolar tendencies, or moodiness
- self-critical and introspective
- struggles with integrity
- a distaste for social institutions and social norms
- being an exile, an outcast, or an outlaw
- a lack of respect for rank and privilege
- a troubled past
- being cynical, demanding, and/or arrogant
- often self-destructive
- loner, often rejected from society
I suppose contemporary pop culture has Anakin Skywalker to add to the list. And probably Batman, too.
I would also add Fëanor from The Silmarillion and Léon from "The Professional" Maybe even Cloud Strife from Final Fantasy VII, what with his unassuageable guilt regarding the death of Aeris, his eschewment of human companionship, and his somewhat self-destructive tendencies.
The devastating sense of alienation from the rest of the human race is what haunts me. The rest of the world is mostly uncaring, and uninterested in the hero, but is frequently also hostile, to the point of seeking complete annihilation of the hero, total extirpation from the universe of human concourse, sometimes, even for good reason. (Huh, suddenly Elphaba from "Wicked" also comes to mind. I could probably keep going on and on, in wider and wider tangents.)
And for some damned reason, they always all seem to die violent, unhappy deaths, often alone and unmourned.
I suppose that is one of my greatest fears: to die in a meaningless, anonymous manner, with my entire existence on earth unheralded, forgotten. While, like most people, I fear losing the people who matter to me, I have unfortunately come to the sad, inescapable conclusion that death is unavoidable. As the Flaming Lips sing, "Do you realize/that everyone/you know/someday/will die." It gives me no pleasure to realize this, but I also recognize that there's no point in fearing it.
It seems that in some ways, Time and Fate have been honing me into some sort weapon. Not like some superhero ninja, James Bond-like, Takashi Kovacs-like, Jason Bourne-like weapon, but a moral weapon, meaning that whatever cause I find myself attached to, I will feel that it is my moral obligation to see it to the bitter end. I won't be able to stop it.
In other words, it sometimes feels like the rest of my life has nothing left for it but the preparation for death.
I freely admit that this is not a normal thought for someone who is only 30 years old. In many ways, my life is still beginning. An astute clinician would simply chalk this up to being yet another symptom of my intractable depression. But like the Byronic heroes I've mentioned, there is this sense that a watershed moment has passed. The one possibility in my life—however infinitesimal the probability—that might have given me lasting happiness has passed, and there is no turning back. There is only onward to the black abyss of oblivion.
I do wonder what might've gone on in the mind of a character like Severus Snape. Once Lily's friendship was lost to him, did he just throw himself coldly, calculatingly, into a bid for power as a Death Eater? Did all he have left was his work? Always realizing that he would never get over her, having this empty feeling continuously gnawing at his soul? And no matter what triumphs and victories he might achieve on the Dark Side, nothing he did could give him lasting happiness. And maybe he thought to himself that this was the worst it could possibly get, to live a life devoid of any passion, only this playing of a game, and while the magic might give him ephemeral joy, the emptiness afterwards was always worse.
Maybe he could seek small solace in the fact that at least there was someone like Lily in the world, someone who could see something noble inside him, someone who tried to bring out the best in him, someone who had actually once cared about him. Maybe that little scrap of sentiment was enough, however pathetic it was.
But just when he thought it couldn't possibly get any worse, it did. Not only was Lily destroyed by Voldemort, but he even became an indirect reason for it, when he relayed Trewlaney's prophecy. He might as well have torn out his own soul and cut it up into little pieces to be blown into the wind. How many days, weeks, months, did he feel that cold, emptiness weighing down at the pit of his stomach. How many times did he replay all his memories over and over again, knowing it was all in vain, knowing that nothing he could do could ever make things right again? Awash in this numbing realization, perhaps he floated right through those meetings with the other Death Eaters, not really all there, his heart trapped entirely in his self-misery. He played his part as a spy like a puppet, an empty, hollow shell of a man.
One day maybe, he no longer felt a damned thing. Just utter numbness. He thought nothing of it. He had stopped thinking of either past or future, merely reacting to the present as it unfurled itself.
Until the day he saw her eyes again, borne by her son, and unravelling all the careful defenses he had laid around his heart like the hundreds upon hundreds of foldings of Masamune's swords.
The fits of rage and passion that he is caught up in are not characteristic of a skilled occlumancer. And even worse, faces from his unhappy past are dredged up back to haunt him. Remus Lupin. Sirius Black. And while Harry Potter has his mother's eyes, he also has his father's looks and manner about him.
Alan Rickman does an excellent job with portraying the anguish roiling inside this character, all while trying to hold it in. When I first read the books, I didn't think he really fit the role. But I guess he is a talented actor, and the character came to fit him anyway.
And while he still is cold, calculating, and unflappable, there are significant moments that betray him.
I wonder, was he like Sydney Carton, believing that no further good could possibly come out of his life, and that his eventual destruction would actually be a good outcome? Did he believe that there was no further possible hope for happiness in this life, and that all he could do was see this thing through, and—whether he failed or succeeded—reach the end of it all?
Or was he like Iñigo Montoya, fixated only in achieving vengeance or at least die trying, not even thinking at all of what might happen afterward? Live or die. Same difference. No point in thinking about it until this thing is completed.
Particularly with the way Rickman plays him, Snape does not seem like the kind of guy who has big plans after this whole Lord Voldemort thing blows over, who thinks of maybe buying a small place up in the mountains to get away from it all once in a while, and maybe invest a little in a few bluechips to squirrel something away for retirement. In many ways, he's like a dead guy who just hasn't stopped moving yet. He lives and breathes, but the soul is just evaporated, burnt out, nuked.
Why is it that I know this character all too well?
When you're in excruciating pain and unending torment, the cessation of these sensations can mean one of two things. (1) Whatever it was that was hurting you has stopped, and you can now get up and get on with your life or (2) you are so badly damaged that you can't even feel pain anymore, and it's only a matter of time until the final darkness comes to take you away. When you get right down to it, I suppose I would rather suffer and have some hope for joy, than be numb and unfeeling. The days where I don't feel a goddamn thing are the worst days. When I feel enough to want to weep and feel sorry for myself, at least I know I'm still alive. Otherwise, it's like being trapped in a waking nightmare, unsure of whether you're really there or not, and not giving a damn either way.
Today, for some reason, I had an acute attack of "I want to live" but I'm afraid I've spent way too much time setting myself up for a Byronic fall from grace to call it quits now. For the longest time (for the last nine years at least) I've been convinced that it's all over, and nothing good is ever going to happen to me again, and the best I can hope for is to bask in the reflected glow of other people's triumphs and milestones, and maybe someday I might die a meaningful and heroic death. While this fate may still be true, and I'm not holding my breath to wait for the universe to prove me wrong, I suddenly got the urge to want to jump off of this fasttrack to oblivion.
I want to get over it. Suddenly, I want to cash out and buy into the American Dream. Buy myself a house with at least 15% down in some upscale, rapidly gentrifying neighborhood. Make myself a little money, maybe buy myself a nice car. Maybe even find myself a trophy wife. It's not love. It's not kismet. But it would be human. I could actually join the human race. You know, talk to women like I wasn't some kind of freakish outcast, some diseased pariah who had no place in human discourse.
I mean, if E.T. can win the hearts and minds of Americans, why can't I?
And then reality slowly rebounds, springing back at me like a deformed mattress, and I wonder to myself, can I really reverse a decade old death wish now? You know, throw the whole thing in reverse? Somehow make up for lost time and repair the stunting of my wounded soul?
I have never been an optimist, and I'm going to be hard pressed to start being one right now.
But: Why not? Whatever isn't expressly forbidden by the Laws of Physics is always theoretically possible.
To quote Charles Bukowski: "If you don’t have much soul left and you know it, you still got soul."
I'm not dead yet, and with any luck, I won't be any time soon. Here's to hoping.
So I managed to teach myself how to use Rails a little, mainly, how to utilize the magic that is ActiveRecord (which unfortunately probably took me at least 48 hours of sustained effort spread out over the last six days.) ActiveRecord makes me almost forget that I'm dealing with a SQL database. I don't have know any arcane syntax. I just have to know Ruby, which is an extremely Zen-like thing to know. (I know it's a stereotype, but, damn, you've got to hand it to the Japanese.) OK, I'm oversimplifying. I haven't really gotten the hang of join tables, but its nothing that convoluted kludgery can't get around.
As an aside, despite the fact that Rails rewards "convention over configuration", I find it amusing that Typo, Mephisto, and Simplelog all store their data in slightly incompatible ways. You would think that there are really only so many ways to deal with blog entries. Oh well. Such is the open source world, is it not? A wondrous buffet of parts that don't quite match and which frequently need, uh, retooling. (And yes, I purposefully chose that mismatched metaphor to prove my point.)
Mephisto→Simplelog Conversion Scripts
Well, without further ado, here is my take on a converter from Mephisto to Simplelog. It has been tested exactly once, with the apparently successful migration of my entries and comments from Mephisto to Simplelog without too much bloodshed. Still, you have been warned.
Download: mephisto_to_simplelog.tar.gz
This code is released under the GPL version 2.
Untar this file in $RAILS_ROOT, i.e., the top level directory of the Simplelog application.
cd /path/to/simplelog
tar xvfz /download/directory/mephisto_to_simplelog.tar.gz
Due to historic accident and sheer laziness, the converter is split into two files: mephisto.rb and mephisto_comments.rb. The former only imports articles and tags. The latter only imports comments, and will only work after you've run the former.
Instructions
Make sure you've at least installed the database schema for Simplelog. If you don't know what this means, just install Simplelog as described on the Simplelog wiki. Once the schema is in place, I recommend backing it up so you don't have to go through the whole process again in case the converter nukes it.
Import your articles and tags:
./script/runner db/importers/mephisto.rbImport your comments:
./script/runner db/importers/mephisto_comments.rb
I would highly recommend running this only on an empty Simplelog install, although I will admit that I ran it on an install that already had a few entries in it. Hopefully you remembered to backup your database, right?
NOTE: You have to have unique permalinks, otherwise the comment importer may not work reliably. The way I wrote it, it isn't possible to import entries that have the same permalink, but the script can be easily hacked to get around this by deleting a few choice lines.
Other Known Issues
I forgot that Mephisto stores times in UTC, and Simplelog seems to use localtime. I haven't investigated this thoroughly, but suffice it to say that there is a time discrepancy between the entries from Mephisto and the entries that I've created using Simplelog.
All your tags that used to have punctuation in them will no longer have said punctuation. This is apparently the way Simplelog wants it, and you'd have to muck around with the code to make it otherwise.
There is no migration of assets because, well, Simplelog doesn't manage assets.
While the basename of your permalinks (the so-called slug) should be preserved exactly, your path names will change. Whereas Mephisto favors
http://domain.name/archives/yyyy/mm/dd/slug, Simplelog favorshttp;//domain.name/past/yyyy/mm/dd/slug. Nothing that a little tweaking of.htaccessorconfig/routes.rbcan't fix.
Miscellaneous
The class definitions for Mephisto live in the mephisto/ subdirectory, which contain the bare minimum code to be able to access a Mephisto database via ActiveRecord. If you want to play with them while running ./script/console, you can just require 'db/importers/mephisto_requires.rb'.
I just wanted to say that there is a beautiful girl sitting across the room from me and it just reminds me how fucking hopeless I am. Hahaha.
Ah well. It's just too damn late, man. It's just too damn late.
When you get down to it, Mephisto has all the things I want in a blog engine. Non-crufty permalinks. (Only Wordpress formats its permalinks similarly, although you can easily get this from Blosxom.) A clean interface (Simplelog is probably the only one that is as clean.) A templating system that doesn't utilize nested angle-brackets (something that every single templating system out there has a problem with, except for Liquid, XSLT, and Erubis.) A templating system that strives to separate business logic from presentation (this is something I hate about PHP, and it's the thing that drove me away from Wordpress and which keeps me away, despite the fact that it has been the easiest blog engine to deal with so far. This is the thing that I love about XSLT despite its obtuse, arcane syntax. This is what I fear about Erb, because it makes it so easy to insert Ruby into your templates, leading to the potential of a PHP-like mess. Granted, Ruby is a much cleaner language than PHP, but still.)
Unfortunately, to get the most out of Mephisto, you've got to be running trunk, and trunk requires Edge Rails. Not that this is immediately a fatal flaw, but for some reason, ever since trunk stopped working with Rails 1.2.3, I haven't been able to get Mephisto running stably. I keep getting that dreaded 500 error. It doesn't help that I'm running on shared hosting using Apache and Fast CGI. It doesn't help that it looks like Googlebot and Yahoo Slurp has been beating the crap out of my host.
Sometimes you've got to say enough is enough.
So Simplelog. It's fast. It's quick. Faster than Mephisto. Way faster than Typo, which is unfortunately extremely bloated. Simplelog looks pretty nice, too, what with the shading in the title bar that for some reason makes me think of an Apple Macintosh.
The down side. Little nitpicks, really. No dashes allowed in the tags. Underscores instead of dashes in the permalinks. (I'm pretty confident I can fix this with either .htaccess or config/routes.rb.) Crufty permalinks with past in it. (Again, .htaccess or config/routes.rb will likely save the day.) The template engine is Erb, which likes to utilize nested angle-brackets sometimes, and in which it can be tempting to throw in business logic. (Is it possible to use Erubis instead? Hmmm.)
Let's see how long I'll keep running this before jumping back to Mephisto.
(Actual tips and tricks on how to migrate to follow!)
For some strange reason, I wake up at 1:45 am. My eyes are gooey and difficult to open because I fell asleep with my contacts in. I gaze outside my windowsill, and there's the full moon gleaming down upon me, and I remember that today, there's supposed to be a lunar eclipse.
So naturally the first place I go is to my computer, and I immediately Google "lunar eclipse" and find out it's like starting in 10 minutes. Restless, and realizing that it would probably be futile to try and get back to sleep at this juncture, I head outside, intending only to get the box of bottled water I left in the trunk of my car, and maybe to get a glance at the beginning of the eclipse.
I walk past my cute neighbor's window on my way to my car, and I see that she's still awake watching TV, but I walk on by and tiptoe slowly down the stairs. Over the fence, there's a couple already outside, waiting for the celestial event to commence.
I experiment idly with my camera which I knew would be incapable of capturing any sort of image from the sky. I finally figure out how to change the shutter speed on it, but this is of little consequence.
MSNBC, incidentally, popped up as the first news site on Google, with an article talking about the lunar eclipse. NASA has a detailed site that describes what to expect from the event. (As I type this, the moon as now leaving the Earth's umbra.) I had read about the [turquoise fringing caused by ozone in the Earth's atmosphere scattering light onto the moon] and was gratified to see them.
With lack of anything better to do, I hop in my car, hoping to find somewhere dark enough to get a better look at the sky.
The great thing about San Diego is that it doesn't take very much to leave the city limits. In less than 20 minutes, I find myself on a rural highway heading to the sleepy little town of Jamul. I end up turning down some godforsaken side road, now facing the prominent San Miguel Mountain, where it is very dark indeed, but unfortunately, there aren't any turnoffs. Eventually, I am faced with a sign reading "Pavement Ends." But that's never stopped me before, and sure enough, the asphalt turns into dirt. But as the road curves, I am greeted by the highbeams of an SUV. Damn. Law enforcement. (Sorry, it's my reflex as a person of color.) Or maybe INS?However, I grow at ease as they don't turn on any sirens and in fact turn off their lights entirely, which actually freaks me out more, and I'm wondering if they're dealing drugs or trying to rid of some bodies. So I turn around.
I go back to the main road, but instead of heading home, I continue east on the way to Dulzura, but before I get there, I decide to head back west on Otay Lakes Rd. On my left (to the south) is bright light emanating from behind a mountain, and I'm wondering, is it dawn already? But then I remember that that's where the state prison is, right before you get to the U.S.-Mexico border.
At this point, the moon looks like my dog had gotten a piece of it. It's still too bright to really appreciate how red the shadowed part is (and it probably doesn't help that I'm red-green color blind.) I start passing a few parked cars of people who are watching the eclipse. Despite the glaring lights of the state prison, it's actually nice and dark enough to see quite a few stars, even. But unfortunately, they've taken up all the nice turnouts where I'd be willing to stop, and eventually I find myself unceremoniously dumped into the middle of that existential limbo known as suburbia. Defeated, I decide that it's probably for the best that I head back home.
I find it ironic when I think of who exactly got me to start reading the Harry Potter series in the first place. But that’s all I’ve got to say about that.
I am once again obsessed by Harry Potter and the Deathly Hallows. I keep ruminating about the relationship between Severus Snape and Lily Potter. It is also ironic that I didn’t see it coming. I’m so totally into the whole unrequited, tragic love thing, and I love characters who never get the girl, who never even had a chance, and who die hopeless and alone. I can’t believe that I had no clue whatsoever what exactly it was that bound Snape to keep Harry safe, and what made him so trustworthy to Dumbledore. You would’ve thought that I’d’ve been all over it.
It just dawned on me that the whole Severus & Lily subplot is so very Wuthering Heights. As Alyssa deconstructs it, Severus is Heathcliff and Lily is Catherine. The Brontë Blog has more literary analysis (and also compares Harry Potter himself to Jane Eyre.)
(As an excursus, my sister recently told me about a book that is a re-imagining of Jane Eyre, told from Bertha’s point-of-view. Bertha is recharacterized as a woman who comes from a non-Western culture, and what is described as madness in the original book is really just Bertha experiencing (1) a communication barrier and (2) culture shock. Or was my sister just describing The Wide Sargasso Sea?)
It makes me curious as to what was going through Snape’s mind the entire time. Did he think his life was pretty much over, and that to give his life in protection of Harry was, to paraphrase yet another tragic hero, Sydney Carton, a far, far better thing that he does, than he had ever done? Or was he in it for vengeance against the people who destroyed the one person whom he ever trusted, and whom once actually genuinely cared about him? I can only imagine the black hatred that he must have for Voldemort and the Death Eaters for killing Lily. And like Iñigo Montoya, perhaps he had never really thought of what life could be like once he had achieved his aim. (What’s even better is that he dies probably believing that he may have failed in his only remaining two reasons for living (1) to keep Harry safe and (2) to defeat Voldemort and the Death Eaters. For one thing, Snape died believing that Harry had to really die to be able to beat Voldemort, and in the final analysis, there was good chance that all of his and Dumbledore’s careful planning could end up going horribly wrong, with Voldemort winning after all.)
I really can’t wait until “The Deathly Hallows” hits the silver screen. If it’s done right (and, knowing Hollywood, that’s always a very big “if”), it should totally break my heart.
Transplants from the Midwest and the East Coast laugh at Southern Californians whenever we mention the idea of seasons. But I grew up in L.A., and I've lived the past three years in San Diego, and I swear to you there are seasons down here.
Granted, the differences are very subtle. I mean, if you randomly guessed that the weather in S.D. is sunny with a high around 72°, you'd probably be right about 90% of the time, no matter what time of year. But 72° in October feels different from 72° in July.
To me, it's the taste of the air. Autumn always makes me think of the smell of smoke. Unfortunately, this is usually because a national forest is burning, but it definitely colors my memories. When ever I catch that smoky taste in the air, I know that summer is pretty much over.
The other thing is that it still gets dark earlier and earlier as the calendar wends its way from solstice to solstice. In June, the sun set sometime around 8:30pm, and it felt like you had hours and hours of daylight. Now, the sun sets around 7:30pm, and that hour makes a difference. I can already feel that seasonal affective disorder setting in.
So because I'm working a night shift tonight (oh joy), I made my way to the local Coffee Bean & Tea Leaf for a latte with extra espresso. And I caught a whiff of that autumn scent. It lasted for about five minutes at the most, and then it was summer again, but it was enough. Time marches on.
Hopefully the caffeine does its job. I thought I had done well with sleeping today, considering that I managed to sleep for four hours after my swing shift yesterday, and another four hours sometime this afternoon. Unfortunately, I just realized that I'm still another eight hours down, since I'm not going to be sleeping tonight.
Must not think of sleep. Must not think of sleep.
So, yes, now it's Simplelog, yet another blog engine running on Ruby on Rails. I guess I'll be sticking to the stable distribution right now, although it doesn't look like the codebase has really been touched in the past 6 months.
That's one of the things with Mephisto. All the neat stuff is in trunk, and the last stable version is pretty old. Supposedly, trunk works pretty well, but the problem is that it needs Edge Rails, which adds another confounding factor when the app crashes and burns.
It seems like GoogleBot and Yahoo Slurp have stopped killing my site. I guess Mephisto on a Dreamhost shared hosting plan is destined to crash and burn, anyway. Ah well.
Now the problem is that the importer is not working as advertised. You have to create an MT Import Format file, which is actually a piece of cake with Ruby and Rails. However, the importer doesn't want to read the one I generated, and peeking through the source, it looks like it doesn't import comments anyway. Bleh.
So it looks like a little more Ruby and Rails hackery for me. One thing that was nice about Mephisto is that it has a rather robust import system, at least once you know the source schema. Let's see if I can reverse the puppy and have it write to SimpleLog's DB instead.
Not sure this made any difference, but I reverted down to r7357 for Edge Rails because r7358 kept running into MySQL out of memory errors.
The Liquid plugin also seems to be acting up. To be honest, I don’t know when I broke it. I diff’ed the original code in the mephisto repository against the code in the liquid repository, and I couldn’t find anything that would explain the change.
Basically, it seems that the comment forms are broken. I was previously getting this error:
Liquid error: you have a nil object when you didn't expect it! The error occurred while evaluating nil.accept_comments?
This seems to imply that the article drop is malfunctioning for some reason, but this doesn’t make any sense because the actual article is rendered OK, and the if statement seems to evaluate fine as well.
Which leads me to believe that something is broken with the {% commentform %}, which seems really mysterious.
To top it all off, it looks like both Yahoo Slurp and the Googlebot are hammering my site, and whenever Rails accesses the database, it runs out of memory. Wonderful.
Just how many blog engines am I going to have to go through before I find one that I’m happy with? The thought of going back to Wordpress makes my blood curdle.
This idea was stolen shamelessly from this page that satirically insinuates that Harry Potter and the Deathly Hallows is a thinly-veiled rewrite of The Lord the Rings. Being the Middle-Earth loser otaku that I am, I had to adjust a few plot points:
originally written 2007 July 28The Lord of the RingsHarry Potter and the Deathly HallowsYears after the Dark Lord
SauronVoldemort was supposedly destroyed, he reappearsin the Land of Mordorin the graveyard in Little Hangleton. AlthoughSauron’sVoldemort’s physical body was destroyed by the sacrifice ofElendil, the King of Arnor and Gondor and Gil-Galad the Last High King of the ElvesHarry’s motherover 2,500 years ago17 years ago, becauseSauronVoldemort had infused a part of his soul inthe One Ringseven Horcruxes, his spirit persisted, although very much weakened.In order to defeat
SauronVoldemort once and for all,FrodoHarry sets off on a quest to destroythe One Ringthe Horcruxes, under the guidance of the wizardGandalfDumbledore. The task is formidable, asthe One RingHorcruxes can only be destroyed bythe fires of Mount Doombasilisk venom, cursed fire, or the sword of Gryffindor. ButGandalfDumbledore tellsFrodoHarry that he need not go alone, andthe Fellowship of the Ringthe Order of the Phoenix is assembled to aid in the quest.However, barely at the beginning of the quest,
GandalfDumbledore is killed bya BalrogSeverus Snape. TheFellowshipOrder is soon afterward broken apart by a sneak attack byOrcsDeath Eaters en route fromLothlorienthe house at Privet Place, andFrodoHarry sets off withSamRon and Hermione. They find themselves surrounded byOrcsDeath Eaters and pursued by black-cloaked wraiths known asNazgulDementors, who cause fear and despair whereever they tread. They manage to remain undetected by dint ofthe Elven Cloaks that were given to them by Galadrielthe Cloak of Invisibility. As they continue their journey, they find that theOne Ringthe Horcrux they carry seems to become heavier and heavier, and begins to affect their thoughts.Lost and not knowing where to go next, they follow the advice of
GollumGriphook. Although they do not trust him, he is the only one that can get them insideMordorGringotts.GollumGriphook agrees to do this, but then ends up double-crossingFrodo and SamHarry, Ron, and Hermione in order to try to stealthe One Ringthe Sword of Gryffindor from them.Meanwhile,
Sauron’sVoldemort’s power has waxed greatly, and he now controls the entirety ofthe eastern parts of Gondor, including the capital Osgiliaththe Ministry of Magic, and has managed to infiltrate the thoughts ofLord Denethor, the Steward of Gondor and Saruman the White, leader of the White CouncilPius Thicknesse, the new Minister of Magic.Sauron’sVoldemort’s forces besiegeMinas TirithHogwarts. The defenders ofMinas TirithHogwarts fight a pitched-battle against overwhelming odds, but manage to stave off defeat with the unexpected appearance ofthe Riders of Rohan and the Armies of the Dead lead by AragornDumbledore’s Army and the surviving members of theFellowshipOrder of the Phoenix, although they suffer grievous losses, includingKing Theoden of Rohan and Lord Denethor of Minas TirithFred Weasley, Remus Lupin, and Nymphadora Tonks.In the battle,
the Witch King of AngmarBellatrix Lestrange,Sauron’sVoldemort’s chief lieutenant, wreaks havoc on the defenders, but is fortuitously defeated byÉowyn and MerryMolly Weasely.As the battle for
Minas TirithHogwarts rages on,FrodoHarry walks deep into the heart of enemy territory, realizing that he would most likely not survive the destruction ofthe One Ringthe Horcrux that he bore. ButFrodosucceeds, andSauronVoldemort is utterly defeated.
So after much toil and trouble, I managed to migrate back from MT4 to Mephisto. I really wasn’t into the way MT4 handles archives. Of the blog engines I’ve tried so far, there are only really three that allow me to have permalinks the way I like them (domain.name/yyyy/mm/dd/slug). These are (1) Blosxom, (2) Wordpress, and (3) Mephisto. Granted, Blosxom doesn’t do this out of the box. (Actually, Blosxom doesn’t do much of anything at all out of the box) I probably would’ve stuck to Typo if I could’ve figured out how to get rid of articles from the permalink. Oh well.
I still have to restore my theme, but that’ll probably happen some other time.
Currently, I am actually running a copy of Mephisto on my sister’s MacBook. Navigating the interface seems marginally faster than interacting with a remote copy on Dreamhost, but that could all be placebo effect. The main reason I wanted to do this is because I didn’t want to have to SSH into my shell account on Dreamhost for troubleshooting purposes. To be fair, it seems like they’ve taken care of their networking issues and the massive amounts of latency is now gone, but still.
It has been something of an excruciating pain in the ass adventure to get Ruby on Rails running locally. I just want to make sure I document the steps I took, just in case I have to do something like this again.
The first step was to get virtual hosting to run on Mac OS X. Now, the easier, sane thing to do is to just install Locomotive, which would’ve surely saved me at least a couple of hours.
Being lazy, I decided to just try and use Patrick Gibson’s shell script to create/remove virtual hosts from the default Apache install in Mac OS X. Note that this article is four years old, and as such, I don’t know if they changed something in Mac OS X 10.4 “Tiger”. Suffice it to say, I couldn’t get it to work.
My fallback was to follow the instructions I blogged about once upon a time on [how to create virtual hosts on Mac OS X from the command line][3]. Unfortunately, this blog post has a few errors in it. In Step 7, the vhost file in /etc/httpd/virtualhosts should actually have:
<VirtualHost 127.0.0.1>
DocumentRoot "/Users/$USERNAME/Sites/$VHOSTNAME"
ServerName $VHOSTNAME # This is the corrected line
<Directory "/Users/$USERNAME/Sites/$VHOSTNAME">
Options Indexes FollowSymLinks ExecCGI
AllowOverride All
</Directory>
</VirtualHost>
I checked out a copy of Mephisto via svn and put it in my ~/Sites folder. But it seems that mephisto behaves best when its public directory is installed as the document root, so this becomes as follows:
<VirtualHost 127.0.0.1>
DocumentRoot "/Users/$USERNAME/Sites/$VHOSTNAME/mephisto/public"
ServerName $VHOSTNAME
ErrorLog /Users/$USERNAME/Sites/$VHOSTNAME/mephisto/log/error.log
# ErrorLog directive keeps the log files under the mephisto directory
<Directory "/Users/$USERNAME/Sites/$VHOSTNAME/mephisto/public">
Options Indexes FollowSymLinks ExecCGI
AllowOverride All
</Directory>
</VirtualHost>
NOTE: These directories must exist, otherwise Apache will choke when you restart. Also note the addition to keep the log file for this virtual host under the mephisto directory.
Note also that the default config of Apache on Mac OS X needs tweaking if you want this to work.
In particular, you will need to enable CGI/FCGI scripts to run from anywhere by making sure the following lines are somewhere in /etc/httpd/httpd.conf:
AddHandler fastcgi-script .fcgi
AddHandler cgi-script .cgi
But before you restart Apache, you’ll also have to install fast-cgi. {Also see Bringing Ruby on Rails with FastCGI into Mac OS X Server}
I used the following method, which will automatically insert the proper directives to load the module in your /etc/httpd/httpd.conf file:
apxs -o mod_fastcgi.so -c *.c
sudo apxs -i -a -n fastcgi mod_fastcgi.so
This was still not enough to get it to run. Apache’s error log revealed this rather cryptic message:
[Mon Aug 20 17:12:49 2007] [alert] [client 127.0.0.1] (2)No such file or
directory: FastCGI: failed to connect to (dynamic) server
"/Users/anyonecanuse/Sites/disorder.localhost/mephisto/public/dispatch.fcgi"
: something is seriously wrong, any chance the socket/named_pipe directory
was removed?, see the FastCgiIpcDir directive
After some truly desparate Googling, I realized that I needed to add this to /etc/httpd/httpd.conf:
FastCgiIpcDir /tmp/fcgi_ipc/
After stopping and restarting Apache a few times, I finally got it to work, successfully getting Mephisto to run, which promptly greeted me with the infamous 500 error. Now we’re getting somewhere.
The fastcgi crash log revealed that it would crash out on a call to Liquid::For:
As of the last revision of Mephisto (2953), the Liquid plugin is broken for some reason. All you have to do is update it like so:
rm -rf ./vendor/liquid
./script/plugin install http://liquid-markup.googlecode.com/svn/trunk
mv ./vendor/trunk ./vendor/liquid
I managed to get past this error, only to run into the following problem:
undefined method `extract_options!'
This is due to a fix for a problem caused by a change from Rails 1.2.3 to Edge Rails. This fix therefore makes it Mephisto trunk incompatible with Rails 1.2.3, and simply reverting the method call didn’t work for me for some reason. The true fix is simply to install Edge Rails.
rake rails:freeze:edge
Voilà! Revision 7359 seems to work like a charm. Remember to kill all your fastcgi threads. And empty your webcache for good measure.
Next up: transitioning back from Movable Type 4.0. Ah. Fun times.
[3]: http://blog.fatoprofugus.net/computers/macosx/unix/2004/04/09/virtual-hosts-and-cgi.html virtual hosts and cgi - responding to internal stimuli”
The problem I’m having with Movable Type is I don’t like how the permalinks work. Since using Blosxom, I’ve grown accustomed to permalinks of the type such as http://domain.name/yyyy/mm/dd/slug, which happens to be the default format of Wordpress and Mephisto. (This was actually one of the reasons I wasn’t fond of Typo, because of the it inserts the word article between the domain name and the year. I found this unnecessarily crufty.)
The other problem is that when I imported my Wordpress entries into Movable Type (via the rather ugly WXR [Wordpress Extended RSS] format), the imported chewed up all my URLs, and removed all the dashes. Hence, my old permalinks no longer work. I guess I could write a regex .htaccess to likewise strip out dashes in requests, but that is, as they say, mere kludgery.
So here we are. Back on Mephisto.
Ideally, this should probably be a plugin that uses the MT API, but this little bit of kludgery seems to do the trick. Be forewarned, I used a lot of perl modules that may be non-standard.
#!/usr/bin/perl
use strict;
use warnings;
use File::Basename;
use XML::XPath;
use XML::XPath::XMLParser;
use DateTime;
use DateTime::Format::ISO8601;
my $atomfeed_location = "atom.xml"; # CHANGE THIS TO THE PATH OF THE SOURCE FILE
my $author = "YOUR_NAME";
my $atom_xml = XML::XPath->new(filename=>$atomfeed_location);
my $atomnodeset = $atom_xml->find('/feed/entry');
foreach my $context ($atomnodeset->get_nodelist) {
print "AUTHOR: $author\n"
print "TITLE: ", $context->find('./title')->string_value, "\n";
my $url = $context->find('./link/@href')->string_value;
print "BASENAME: ", basename($url), "\n";
print "STATUS: Publish\n";
print "ALLOW COMMENTS: 1\n";
print "CONVERT BREAKS: 0\n";
print "ALLOW PINGS: 1\n";
my $pub_atom = $context->find('./published')->string_value;
my $pub_iso8601 = DateTime::Format::ISO8601->parse_datetime($pub_atom);
my $pub_mtif = $pub_iso8601->mdy('/') . ' ' . $pub_iso8601->hms;
print "DATE: ", $pub_mtif, "\n";
my $cat_list = $context->find('./category');
my $taglist = '';
foreach my $cat ($cat_list->get_nodelist) {
my $tag = $cat->find('./@term')->string_value();
$taglist = ($taglist eq '' ? $tag : $taglist . ',' . $tag);
}
print "TAGS: ", $taglist, "\n";
print "-----\n";
print "BODY:\n", $context->find('./content')->string_value, "\n", "-----\n";
print "--------\n";
}
Redirect the output of this script to a file, and import the file into MT, and you should be all set. As you can see, there is no recourse for handling comments or trackbacks. Note also that categories are imported as tags!
The weather has cooled down wonderfully, but it’s still like an oven inside my apartment. I give up. I’m going to go to my parents’ house in L.A. and bask in air-conditioned glory. Sure, I have to go to work on Sunday, making this a short trip, but whatever.
Time to put more miles on my car. Whee.
I contemplated the idea of simpling writing an XSL stylesheet to convert Atom to WXR (Wordpress Extended RSS) because this is one of the formats that MT can import. But unfortunately there is no codified spec for WXR, so I have no idea which elements I can safely ignore. And I don’t want to comb through the WXR-to-MT plugin to figure out what MT is actually reading (although I may end up doing this anyway.)
WXR looks kind of messy, too. I’m not sure how I can get LibXSLT to write out the CDATA sections. I wonder what will happen if I just write out escaped HTML? Will the importer choke? (I know, I know, read the source.) And I really don’t like how categories are handled. I’m not sure something like a category ID number should be something codified into an XML document that’s supposed to be portable. I suppose it’s good enough for transferring between Wordpress setups, and even for MT, but it strikes me as being too implementation dependent. What if you want to do some neat transforms, like converting categories to tags? There’s no easy way to do it without knowing something about the target, it seems. You have to know how the recipient of the XML document maps their categories or tags to ID numbers.
I wonder if the WXR-to-MT plugin actually reads the WXR as XML, or if it just uses regexes? I guess I’m just going to have to look at the source code.
Another solution would be just to convert Atom to MT’s native blog export format. The advantage of this is that MT’s format is actually spec’ed. Like MT itself, it’s a venerable format that several blog engines support. Apparently it came about before XML took over the world. It’s just a plaintext file, with element names in all caps, followed by a colon, followed by the content, with individual entries rather fragiley demarcated by a row of dashes. Even still, it actually looks a lot less messy than WXR (and I’m not just talking about the angle-brackets) and I’m surprised there isn’t an XMLized version of this spec. Although I suppose that’s what Atom is ultimately for. (So when is everyone gonna get with the program?)
This speaks to the messiness of dealing with RDBMS-based blog engines. (Not that file-system based blog engines don’t have their own problems.) The most reliable way to migrate your data from one blog engine to another is to reverse engineer the database schema. For someone who doesn’t know a lot of SQL and doesn’t really want to learn it, this seems extraordinarily painful.
What I wish existed was an XML DB-based blog engine that can be queried by XPath. (Syncato is exactly what I’m looking for, but it looks like it hasn’t been updated in four years, and while it runs, it’s not exactly feature complete.) Unfortunately, there aren’t really any free* XML databases out there, much less any webhosts that offer them. One can argue about the relative merits of RDBMS vs XML DB all day long, but since I understand XPath and XSLT, and don’t know a lick of SQL, you can see why I feel the way I feel. Everyone has their favorite weapons tool.
Still, considering that the Web pretty much depends on XML these days (specifically XHTML, RSS, Atom, XML-RPC, SOAP, etc., etc.) you would think that it would be a natural fit.
But I guess everyone needs their Holy Grail to quest for.
The last solution for migrating the 30-odd posts I wrote while using Typo and Mephisto is to parse the Atom feed and send it MT’s XML-RPC server entry-by-entry. Sounds easy enough, really. Normally, this would probably not be the most attractive way to do it. After glancing at the API, it still looks like you would need to know how the target maps its categories and/or tags (actually, I don’t think categories and tags are even part of the core MetaWebLog API.) And I’m not even sure how migrating comments would work (which is luckily not an issue in my particular case.)
Now that I think about it, it looks like the best thing to do is just convert from Atom to MT’s import format. It should be trivial to parse the Atom feed and even more trivial to write out the plaintext file.
Looks like fellow Angeleno and California Golden Bear Marié Digby is making it big time.
I hadn’t heard of her until I ran into this post from Stereogum discussing multiple cover versions of “Umbrella” by Rihanna.
The chorus of this song is the most ridiculous lyric I’ve heard outside of a nursery rhyme. But it’s so damn catchy.
And because I like Nelly Furtado and Timbaland:
Marié also writes her own songs and performs at gigs in Silver Lake.
Without the Internet, I would know nothing about the outside world.
Well. It’s hot. What can I say. I’ve spent the entire day floating from cafe to cafe because I couldn’t stand benig inside my air-conditionless apartment. (I really dug Influx Cafe, and they even have free wi-fi!) After that I even headed over to Fry’s (after almost getting into an accident after a guy popped a tire on the freeway and nearly rammed me as he headed to the shoulder) and contemplated buying a portable air-conditioner. But seeing as how I don’t have $399, I ended up leaving empty-handed.
Instead, I am sitting in front of my electric fan and chugging ice-cold bottles of water.
Yes.
So it looks like I successfully imported my Wordpress entries into MT by importing the WXR file. Which led me to another blogxistential dilemma: categories or tags?
Because of my experience with Blosxom, which, due to limitations of the file system, only allows you to file a post in a single category (unless you apply some perl hackery to get it to honor symlinks without double-posting), I started off blogging on Wordpress in much the same manner. But after growing accustomed to using del.icio.us for bookmarking, and after revelling in the near-absolute anarchy of folksonomies, I started getting a little crazy with how I categorized my blog posts, sometimes stuffing them in four, five, or more categories which I probably would never use again. Tags were clearly more appropriate for this, but Wordpress still doesn’t have them as of version 2.2.
Both Typo and Mephisto (and Movable Type) let you use both categories and tags.
While in Ruby-on-Rails-land, I found the notion of using both overkill, and just used tags. I mean, it seemed like too much work to categorize and tag. But now that I’ve re-imported my Wordpress posts, I have to figure out what to do with all the categories again.
What I need is a painless way to change categories to tags. Actually, all I probably have to do is munge the WXR import code and change mt_category to mt_tag or something like that. But I don’t want to have to delete all the imported posts then re-import them. And besides, apparently Dreamhost is now having DNS woes. I actually only have one domain registered via Dreamhost, but unfortunately it’s (1) the domain that gets the most traffic (thanks to my Alibata/Bayinbayin site and the transliterator—you’ll probably have to pull it up on Google’s cache for now) and (2) the domain that I’ve been storing images on for blog posts. So that means that if I want images in my old posts, I’m going to have to find them and re-import them into MT. Fabulous. (Which leads me to wonder, are there any blog-engine-independent asset manager web apps out there?)
The upshot of all of this is that I’m probably going to just have to manually run through the 400+ blog entries I’ve written since February 2006 (What is wrong with me? I need to make more friends whom I can talk to, instead of always blogging about my woes.) Guaranteed fun times.
Since my old Blosxom blog is actually still hosted on the domain that is currently inaccessible, I wonder if I should try to import those entries into MT as well? (While the domain is inaccessible, I can still get to the server, so I could theoretically copy them over to another domain that’s registered elsewhere.) Madness.
Pardon my French, but it’s hotter than a motherfucker out there. This wouldn’t be a big deal at all if I actually had air-conditioning. I’m actually contemplating the idea of renting a hotel room just so I can turn the thermostat to 55 degrees and chill. Literally.
So it looks like I have all the posts I wrote with Typo and Mephisto in one form or the other scattered across three computers. Now all I need is an XSLT stylesheet to convert Atom to WXR (Wordpress Extended RSS, which is an XMLish dump of a Wordpress database.) Unfortunately, Movable Type only knows how to read it’s native non-XML flatfile format and WXR. This is definitely a shortcoming. That said, I may just not have looked hard enough for a plug-in that will let me import Atom.
But so far, I’m digging Movable Type. I haven’t taken a gander at the code yet, and I know that Movable Type has been around for a long time, making it susceptible to cruftiness. (For an example of cruftiness, just look at Wordpress.) But there’s something to be said about tried-and-true.
D’oh! Another thing I realized is that I just nuked my Mephisto database. The only thing still sitting on the server are some random archives and the index, and luckily, the Atom feed. I have my Wordpress install backed up, and my database for Typo is still around, so the only thing I’m probably missing are a few posts between the last time I used Typo and the oldest entry I posted from Mephisto that is still in the Atom file. Hopefully I can import all this stuff without too much headache.
So apparently it was all Dreamhost’s fault. Both Mephisto and Movable Type are working at reasonable speeds. I still stand by the notion that Dreamhost really can’t handle Ruby on Rails very well. I’m looking into switching to (or at least adding on) a different shared host. Site5 looks promising.
I’m not blaming Dreamhost for the connectivity snafu today. It is, after all, shared hosting, and I’m not exactly running anything mission critical here. (And I luckily had the foresight to have Google handle my e-mail. Privacy, smivacy, the NSA is looking at all this crap anyway.) But I do want to play around with Ruby on Rails some more, and Dreamhost just doesn’t seem like the place to go in that regard.
I do, however, blame the spammers. I’m certain that they’re responsible for the network slowness. I’m pretty sure it wasn’t just Dreamhost that was affected. A lot of other sites seemed to respond sluggishly this morning as well. My apache log files are saturated with apparent attempts to post spam comments and spam trackbacks.
I wish they could relax the law so that spammers were fair prey for vigilante justice. I would so take an aluminum bat to the head of a spammer. Seriously. I’m not usually a violent man, but these scum ruin the Internet for everyone.
Mephisto broke for some reason. It may have been the plugin that I was experimenting with. But even when I took it out again, it stayed broken. I kept getting the dreaded 500 error. So I did a clean re-install. The blog itself is now still accessible (although I moved it to chaosanddisorder.net.) But I can’t get into the admin page.
Mephisto is a nice blogging system. Unfortunately, I think that Dreamhost is just not capable of supporting Ruby on Rails, at least not through Fast CGI and Apache. I’m going to take a break from it for now.
Meanwhile, Movable Type 4 has been released. It is the granddaddy of all blogging engines out there. I decided to take it for a spin. Six Apart, the team that created MT, is planning to release most of the source code under the GPL. I was going to wait for this version, but I naturally got impatient.
So far the experience has been pleasant, though a little slow. I don’t know if its just because the Dreamhost server that my account is on seems to be lagging. I dig the idiot-proof installation method, though. I’m sure I’ll be getting my hands dirty sifting through some perl code. I do worry about the likelihood of cruft, given how long MT has been around, but we’ll see.
In the meantime, I’ll need to work on importing all my old blog entries, too. MT can import Wordpress’s WXR file, so I may have to go that route. As for the 30 odd posts I made while using Typo and Mephisto, I may have to just manually convert them. Bleh.
I’ve been trying to cross-post some of my blog posts on MySpace. Why do I bother, you may ask? Frankly, it’s probably because, deep down inside, I’m a narcissist and an exhibitionist, and I want to expose myself to as large a population as possible, and fact of the matter is, everyone and their mom seems to be on MySpace.
But Rupert Murdoch and his minion Tom don’t make it easy. First off, there is absolutely no API for posting to a MySpace blog. There have been previous attempts at creating a MySpace blogging client, but News Corp purposefully breaks them by intermittently changing (and obfuscating) their design. Part of the rationale is that this helps stem the tide of spam. (Damn those fembots.) But it feels very Orwellian. After all, all they really would have to do to prevent spammers from taking over the blog space completely is simply to rate-limit posting. After all, no legitimate blogger needs to post something every 2 seconds.
Secondly, the generated code is extraordinarily atrocious. It looks like a bunch of monkeys coded the site. Or maybe a drunken AI. Your blog entries are embedded in a set of nested tables. Barf. I hope none of the folks who work on this crap consider themselves web designers. Because if this crap is in your portfolio, I guarantee no one in their right mind will hire you. (You should count your blessings that there are plenty of insane people out there with money to spend.)
Seriously, though. I spent about half an hour trying to make my MySpace blog slightly less vomiting-inducing. Looking at the HTML source code made me feel very dirty at the end. MySpace developers seem to have a religious fervor towards breaking every sane convention for coding in HTML . (Seriously. Look at how they tag the subject line of the blog entry so that it ends up including the categories and your mood indicator. Barf. Barf x 2. WTF?!?!) Use of <br> element abounds. Blank spacer .gifs are everywhere.
What I find remarkable is that you can actually use CSS to fix some of these atrocities. To a degree. (What you really need is an XSL transformer. Or a brainwashing machine like in “A Clockwork Orange” so that these <s>bastards</s> MySpace developers will learn how to avoid coding like an idiot.) I feel very accomplished after inserting all sorts of kludgery so that my mirrored blog posts look semi-sane.
It’s little things like this that make me believe that Facebook is going to make MySpace completely irrelevant. One of these days, there will be more fake people on MySpace than real.
Facebook makes it trivial to mirror your blog onto your profile. All you have to do is use the “Notes” FB app to import your RSS or Atom feed. Facebook also respects the adage that “It’s all about the content!” While you don’t have any freedom to change the look-and-feel of Facebook the way you can screw around with MySpace, this also prevents you from creating absolutely disgusting profile pages, with music that you can’t stop from playing. (Seriously, the average MySpace profile looks like a personal website from around 1997. I’m amazed that no one used the <blink> tag.) In the meantime, due to Facebook’s app framework, you can put almost any sort of content on your profile page. In contrast, on MySpace, the best you can really do is embed Flash. This tends to make scrolling though the average MySpace profile absolute torture, even on relatively up-to-date machines.
I really don’t understand it, though. I mean, Rupert Murdoch and News Corp have gigatons of cash. I don’t understand why they can’t manage to hire semi-competent programmers.
In an article in the Chicago Sun-Times, Steven Pinker brings up some ideas that are often met with knee-jerk reactions. (The terms “sexist,” “racist,” and “fascist” seem to pop up in the brain for some reason.)
But, in reality, the questions seem to be more of a political litmus test.
This is the stuff that we should be asking our presidential candidates, frankly.
Do women, on average, have a different profile of aptitudes and emotions than men?
As a man, it is tempting to say “yes.” But I’m wary of ascribing a difference to gender, when the variation between individuals irrespective to gender are probably just as variable. I don’t have any data, unfortunately.
Were the events in the Bible fictitious—not just the miracles, but those involving kings and empires?
Having been born and raised Catholic, I was inculcated with the idea that the Scriptures are ideally to be figuratively interpreted and are not the literal truth. So this one is easy for me. There are certain events that have been corroborated by independent pieces of archaelogical evidence. Others could certainly be fictitious.
Do most victims of sexual abuse suffer no lifelong damage?
I suppose it all depends on your definition of abuse, and your definition of damage. It’s been pretty well demonstrated that extreme events (for example, being raped at knifepoint or gunpoint) will cause neuropsychiatric changes that are completely equivalent to that suffered by soldiers who have experienced extremely traumatic events in the heat of battle. Post-traumatic stress disorder is a well described medical condition that we treat to the tune of several billion dollars a year. Not that that’s evidence that it’s real, but the molecular physiologic mechanisms described seem pretty consistent with what we know of neuroscience.
Did Native Americans engage in genocide and despoil the landscape?
Probably. Even modern-day Mayans will postulate the idea that the probable reason for the abandonment of their great cities some millenia ago was probably the result of an environmental catastrophe.
Do men have an innate tendency to rape?
Probably. Rape is rampant in the animal kingdom, and humans are simply animals with the ability to self-reflect. Still, we also have the innate tendency to kill people we don’t like. In other words, it looks like civilization is at least partly based on abandoning instinctual drives.
Did the crime rate go down in the 1990s because two decades earlier poor women aborted children who would have been prone to violence?
This one seems pretty simple, too. The crime rate went down because thanks to Bill Clinton, the nation underwent the largest economic expansion in all of American History. You could probably get stock indices and crime rates to correlate pretty well.
A more radical interpretation could be: the high availability of psychotropic illicit substances 20 years ago may have affected the brains of the resultant children such that their drive to violence was suppressed. How about that one?
Are suicide terrorists well-educated, mentally healthy and morally driven?
Uh. No. Granted, my opinion is pretty tainted. The standard of care in medicine is to assume suicidal ideation is a sign of mental illness. All the cases of suicidal ideation I’ve seen seem to comport with this, although I recognize that anecdotes are not rigorous case studies.
Would the incidence of rape go down if prostitution were legalized?
Doubtful. It’s not like convicted rapists never go see prostitutes.
Do African-American men have higher levels of testosterone, on average, than white men?
This would actually be pretty easy to do a study on. My bets are on the likely conclusion that, much like the conclusions from the studies of DNA similarity, there will be more variation between individuals in their respective cohorts than there will be a statistically significant average difference between cohorts. Anyone want to fund this study? I’ll start enrolling subjects as soon as you send a check.
Is morality just a product of the evolution of our brains, with no inherent reality?
I have no doubt that morality is a construct in our brains that gives us a reproductive advantage with regards to playing game theory. Richard Dawkins in The Selfish Gene makes a good case that altruism maximizes our chances in passing on our genetic material. Hence, morality. As to inherent reality, what is real? I think that morality is no more and no less real than the record of photons that hit your retina which get interpreted by your visual cortex into a coherent model of your surroundings.
Would society be better off if heroin and cocaine were legalized?
Yes. Think of all the taxable commerce! I bet you our tax burdens could be significantly reduced. Think of all the crime that could be obviated because people would no longer have to steal, since the price of these drugs could be driven down to the point where cough medicine would cost more. Think how we could completely ruin drug cartels and terrorist groups by out-competing their production capacities. Think of all the health care dollars we could save by providing drug users with safe, standardized product, not to mention the decrease in disease transmission by allowing them to get their needles.
Is homosexuality the symptom of an infectious disease?
I think that homosexuality has an evolutionary basis, as some kind of trait that allows the maximal transmission of certain genetic material. I think that when we go to the level of molecular genetics, it gets hard to separate what is disease and what is normal genetic transmission. Viruses and bacteria all have pieces of DNA just like the nuclei in our cells, and we are starting to discover that particular traits are actually modified and transmitted by things like transposons, which hitchhike in viral and bacterial DNA.
Would it be consistent with our moral principles to give parents the option of euthanizing newborns with birth defects that would consign them to a life of pain and disability?
I’ll let you on a little secret. We do this already. We just don’t call it euthanasia. There is, after all, a difference between actively ending someone’s life, and simply withdrawing care and letting nature take its course, and for the most part, nature is not merciful.
Do parents have any effect on the character or intelligence of their children?
Yes. This is simple information theory applied to neuroscience. You are what your brain senses. Without stimuli, neurons die. Use it or lose it. How do most children get their stimuli? The people around them. Who is usually aroudn them?
Have religions killed a greater proportion of people than Nazism?
Yes. All I have to do is quote Arnaud-Amaury: Caedite eos! Novit enim Dominus qui sunt eius, which can be paraphrased as “Kill them all and let God sort it out.”
Would damage from terrorism be reduced if the police could torture suspects in special circumstances?
If we have no qualms about torturing suspects (and if Abu Ghraib and Guantanamo Bay is any guide, we clearly do not), we could easily do a randomized controlled trial and see which group stops real terrorist plots: the experimental torture group, or the control lawful interrogation group. I’m talking about real terrorist plots, not the bullshit stuff that the FBI and the CIA make up to keep us scared. I bet $50 that you wouldn’t find a statistically significant difference.
Would Africa have a better chance of rising out of poverty if it hosted more polluting industries or accepted Europe’s nuclear waste?
No, because the poverty is really caused by economic inequality and not just lack of resources. All this would do is funnel even more money to the economic elites in existence. Since Reagan and W have well proven that trickle-down economics doesn’t do shit, particularly when you compare it to the results of FDR’s Keynesian experiment of the New Deal (and the increased federal spending due to World War II), I think it’s a good prediction that poor people will nonetheless remain poor people.
Is the average intelligence of Western nations declining because duller people are having more children than smarter people?
I would argue that this has been happening since sexual reproduction started. We know that increasing intelligence correlates with decreasing sexual activity, throughout all sexually reproducing organisms. It’s that, sometimes, you need to be smart to survive. So there will always be a range where you are too dumb to reproduce, and where you are too smart to reproduce. The range of success is probably pretty broad, though. I’m not convinced that we are generating stupider people, anyway. I just think that our intelligence is not being utilized efficiently.
Would unwanted children be better off if there were a market in adoption rights, with babies going to the highest bidder?
Doubtful. We do this already to a degree. Think of all those Chinese babies that the celebrities adopt. This could also be studied with a randomized controlled trial. I’ll be awaiting your check in the mail.
Would lives be saved if we instituted a free market in organs for transplantation?
No. It’s tough enough to procure organs as it is. Adding a free market component to it would just add another layer of complexity to the process. Imagine the chaos that would ensue if there were multiple organ donation services instead of a centralized system like UNOS. Imagine the geometric increase of the number of phone calls you’d have to make to procure an organ. Imagine how many more people a transplant center would have to hire to make the phone calls. Imagine the delays because of awaiting wire transfers, and making sure the parties involved got their money before starting the harvesting procedure. Think about all the health care dollars being pissed away as you keep a brain-dead person on life support while awaiting the completion of these transactions. Never mind the fact that even on life support, you still only have a limited window of time while the organs are viable.
Should people have the right to clone themselves, or enhance the genetic traits of their children?
Why would you clone? For backup organs? That would be pretty atrocious. Otherwise, big deal. Genetic copies of you with shortened life spans. Yay. I’ve always wanted a twin. As if twins weren’t individuals with human rights. As for genetic enhancement? It’s already happening. It’s going to continue to get more sophisticated whether we like it or not. Still, there is no on-and-off switch for super strength, or the ability to hit home runs, or run four minute miles. So go ahead and let your kids be guinea pigs. I’m sure they’ll really appreciate it.
In an open society, we should be allowed to voice our opinions. But it’s a quid-pro-quo. Your bullshit is no more important than mine, really. It seems like all ATM advocates think that they have some special right to inflict their brand of madness on as many people as possible. Fuck that. There are already well established modes of transmission and propagation for these ideas: politics, the scientific process, the free market. Why should we privilege your crackpot theory by allowing you to bypass these mechanisms that have served humanity pretty well for a few millenia?
Technorati Tags: atm, medicine, neuroscience, statistics-and-lies
Odd, the synchronicity of this post from someone who is going to be a father. (P.S., the asking of highly detailed, extremely specific questions is not a sign that someone is going to be a good father. In fact, it is extremely annoying to the average health care provider, whether midwife, nurse, or physician, and for some reason, the information they have never seems to comport with either the reasonable guidelines suggested by the American Academy of Pediatrics, or the reasonable guidelines afforded by what is traditionally called “common sense.” One could even go as far to say that such nit-picking and attention to often irrelevant detail is a sign that things may go very badly, and that this individual may very well stifle all things that are good about being a child. The specific details of feeding regimens—except in regards to what will allow your baby not to choke to death from aspirating milk—are pretty pointless, since the correct answer to the question of “When should I feed my baby?” is “When he/she is hungry” and believe me, they’ll tell you when they’re hungry, and the correct answer to “What should I feed my baby?” is “Milk” for the first six months of life. There is a raging debate as to whether you should use breast milk or formula, and the data has a lot of good things to say about breast milk, but if, for whatever reason, this is not going to be an option, I would not let your baby starve to death because someone tells you that formula is evil. Bottom line: you’re doing fine, in my opinion.*)
Since I’m not in a relationship, much less married and about to have a kid, you might think this is an odd thing for me to wonder about. But I did spend the past 26 hours in the special care nursery, and I rounded on all the newborns both yesterday morning and today.
You would think that seeing nine well newborns on the mother-baby unit would take far less time than seeing nine sick newborns in the special care nursery, but I forgot to take into account that parents don’t always know what they’re doing. (Which brings up an interesting question that a talkshow morning host brought up the other day: why do we need marriage licenses but don’t require baby licenses, considering how much more knowledge is required to succeed at raising a child than in maintaining a marriage? At least, that’s what I think.) For some reason, it takes far more time to discuss feeding than it does to discuss the possibility of pneumonia, or bacteremia, and the need for treatment with empiric antibiotics until blood cultures are back.
I never thought I would be 30 years old and somewhat knowledgeable about child-rearing techniques. Not from actual practice (although I do remember being a kid, so I often fall back on that to try and predict what the average 6 or 7 year old is thinking) but simply because of clinical training.
I am also hanging out with emergency medicine physicians lately, since I’m doing a Toxicology rotation. I wish there was some kind of route into this field without having to do EM [emergency medicine]. I guess I’ve always had a strange fascination with poisons, particular those that have CNS [central nervous system] effects. Toxicology has all the excitement of saving someone from certain death, without all the messiness involved with cracking someone’s chest open, or flaying their belly open, and it has all the intellectual stimulation of figuring out strange and complex syndromes to boot.
But I digress.
The point being, most EM physicians are horrified at the thought of doing nothing. That is one of the things that drive me insane about the typical emergency department: they admit all these patients to you who have all sorts of things done to them that don’t really help them, but now require a higher level of care. I’m not saying that they necessarily cause iatrogenic problems (although that happens too.) But emergency medicine training simply does not seem to teach people that sometimes the better part of valor is to step back and watch and wait. (The typical rebuttal is, “I would’ve gone into internal medicine if all I wanted to do was watch and wait. Touché.)
But, me, the idea of doing nothing seems awesome. This is really one of the things that I dig about pediatric primary care. Most kids come in and they’re not really sick, or at least not “sick” sick. (Yes, that’s a technical term.) When they’re not “sick” sick, you can just reassure the parents, tell them to give the kid lots of fluids and Tylenol or Motrin if they need to, and that you expect things to get better in less than a week. And if they get all uppity and crazy and demand to see a specialist, you can pretty easily stall for time by ordering some bullshit “routine” blood tests to placate them (although it sucks for the kid.) By the time you get around to reading the results and calling them back, the kid is usually better. (Never mind that you tortured some kid with venipuncture, that the test results don’t mean jack-shit, and you’ve just wasted some health care resources. At least the parents can’t accuse you of doing “nothing”.)
(I will never get sick of quoting this Fatman clinical pearl: the optimal delivery of health care is to do as much nothing as possible.)
But back to neonates. Especially with the first-time mothers, it’s kind of weird for me, a guy who has no kids, to be teaching a mother with a kid (albeit a kid who is only a few hours old) how to (1) try to feed them (2) how to burp them (3) what to do with fevers (4) how what they’re doing is not really vomiting (5) that the black, tarry stuff in their diaper is normal (6) that the fact that they’re totally tinged orange-yellow is normal. (Sure, at least for half of the stuff, the lactation specialist tends to do a better job, but I can manage in a pinch, usually.)
But I suppose, to take a GI Joe quote out of context, knowing is only half the battle.
The question is: am I ready for fatherhood? Highly doubtful.
Lately I’ve been having this recurring dream of having two daughters (which if you think about it, is kind of nightmarish, although, luckily, they’re not teenagers yet in my dreams.) The elder is named Mireya Angelica, the younger is named Amanda Desiree. (Where does my brain come up with these names? Yikes!) In my dream, I remember being called “Daddy” and that made me burst into tears.
Will it ever happen? Again, the magic 8-ball in my mind says “highly doubtful,” but even extremely low, infinitesimal probability is not the same as no probability, so it may in fact be interesting to find out what happens in the next 10 years or so after all.
See. Watch and wait. I knew I went into the right field.
* NOTE: any medical advice on this blog should not be a substitute for speaking to your own physician. Following anything I say on this blog is a possible sign that you are extremely mentally ill, in which case, you should either proceed to your nearest emergency room, or call 911.
Technorati Tags: dream, medicine, pediatrics
Your results:
You are Apocalypse
|
You believe in survival of the fittest and you believe that you are the fittest.![]() |
Interesting. You may have heard the song ”Glamorous” by Fergie. The chorus has been driving me crazy:
The glamorous, the glamorous, glamorous, the glamorous, ooh, the flossy, flossy
What the hell does “the flossy, flossy” mean? Well, according to the Online Etymology Dictionary, it may well be related to the word floozie: woman of disreputable character, perhaps a variation of flossy: fancy, frilly.
Now this is seriously old school, coming from sometime in the 1890s.
If not for my sister, I would not know any showbiz trivia whatsoever. I had no idea that Fergie, AKA Staciie Ferguson, was originally on ”Kids Incorporated” which was a show that featured such luminaries as Martika, Jennifer Love Hewitt, Rahsaan Patterson, Mario López, and Shanice.
Evidently, Fergie was also part of the group “Wild Orchid.”
Things you never wanted to know.
<meta>Man, I’m digging ecto’s ability to upload pictures to Mephisto automatically. (Right now I’m using the MovableType API instead of MetaWebLog, so there might be a difference.)</meta>
<meta>Still playing with ecto right now. I can’t figure out the timestamps and it’s kind of driving me nuts. Whatever. I’ll let Mephisto figure it out. But ecto is starting to grow on me. I may very well be shelling out $17.95.</meta>
It’s a Friday night, and I’m feeling extraordinarily anti-social. Part of it is the fact that I have to go to work at 7 am tomorrow and don’t get to go home until something like 11 am on Sunday. Kind of puts a damper on making plans. But, I don’t know. I’ve been really antisocial lately. I worry that this is grossly abnormal and a sign that I’m not well, mentally speaking.
Or maybe it’s how I’ve always been.
(Despite my distaste for “normalcy”, I find myself asking myself the question, “What is normal?”)
My thoughts are pretty damn scattered. While eating lunch today, I had an odd thought. I wonder, is my emotional stunting a permanent but self-limited disorder, or is it a chronic illness that will eventually lead to my death?
For some reason, I was thinking of one of my patients who we diagnosed with gallbladder cancer. This is, invariably, fatal. Surgery is rarely successful, and no chemotherapy ever succeeds in wiping out the tumor. It is actually quite a miserable way to die, but you can probably go on for weeks to months.
I stopped to think of what being the primary care physician for someone with a death sentence is like. Here you are, telling your patient whom you may very well have known for years, knowing that he will die from this particular condition.
On one hand, everyone dies. To paraphrase Chuck Palahniuk (and Tyler Durden), extend the timeline far enough, and the probability of survival eventually drops to zero. And for internal medicine doctors, most of their patients will be older than them. So you know at some point it’s going to happen.
On the other hand, most of your patients aren’t going to die in weeks to months, either, in horrible discomfort. (One of the most unbearable symptoms of gallbladder cancer is actually the incuraable itching.)
But, as St. Andrew is supposed to have said, ”Dum spiro, spero.” While I breathe, I hope. If you’re alive, that’s something.
(Immediately, the question that pops into my mind is: is it enough to just be alive? I think of all the folks we’ve hooked up to ventilators, and just left there to literally rot for years on end, because their families still hope for recovery.)
But back to my ruminations: permanent but self-limited, or progressive and intractable?
And example of the former would be someone who was in a horrible car wreck, crushing their legs, and requiring amputation. This person will be permanently disabled but he/she is otherwise healthy, and can continue to lead a fulfilling life, minus certain experiences that require having legs. I mean, with prosthetics, it’s possible that this person could actually walk at some point, but clearly it’s not a perfect substitute.
This is in contrast to the latter. I guess the most illustrative examples are chronic diseases that arise in childhood or young adulthood. Cystic fibrosis. Inflammatory bowel disease. Systemic lupus erythematosus. Any disease that requires organ transplant. None of these are necessarily fatal, but they can certainly progress to the point where complications can kill you. You won’t be able to live a “normal” life, but that doesn’t mean you have to be limited in any way. Statistically speaking, you will probably die earlier than if you didn’t have a disease, but it’s certainly not the sentence of impending death that a diagnosis of inoperable cancer is.
But, either way you look at it, you have to deal with the issue all your life, whether it’s the permanent-but-self-limited problem, or whether it’s the progressive/intractable problem. So maybe it doesn’t matter (except that if it’s the latter, I should probably seek some sort of treatment.)
It’s only in very recent times that depression has been regarded as an actual illness, similar to the diseases I mentioned above. Unless you’ve actually dealt with someone with depression, or are depressed yourself, I think it’s difficult to appreciate the difference between ordinary sadness and grief that we all experience, and the crippling mental illness that is depression.
I’m not sure how long I’ve lived with it—certainly at least since high school, though it’s possible that I’ve had problems with it even before then. But whatever the case, it never got so severe until four years ago, where I could no longer function as a human being. That’s the point I knew that I had seek help.
For the longest time in my life, I had this penchant for looking back. For wondering “what if?” and having to deal with the fact that whatever it was never came to be. This was the kind of thought that would typically send me into a downward spiral.
This far into the game we know as life, I find asking that question is a lot more pointless. I am who I am, and as I look back at the convoluted paths I’ve taken to get where I am, it’s hard to be willing to second-guess myself. I have, more or less, gotten to where I have intended to go. Whether or not this was a good idea in the first place, or whether my motivations for getting here were reasonable, are completely separate questions which may well need to be answered at some point, but, well, here I am.
The older I get, the less point there seems to be in asking “What if?”
The other realization with getting older is the fact that time is finite. Now, I could very well live for several more decades, or I might get hit by a bus tomorrow. No one ever knows. But for some reason, I’ve started thinking about the fact that no matter what, I will never have enough time to do everything that I want to do in my life.
I’m going to have to triage my goals. List my priorities. Recognize the aspirations that are probably never going to happen. Concentrate on the things that are possible.
Prioritizing things has never been my strong suit. That’s the awesome thing about being young. You never stop to think about the fact that this is all going to end someday.
Which comes down to the thing that I’ve been pondering lately: the increasing likelihood that I will be permanently alone and unloved.
If I were “normal”, this would not even be a consideration. I feel like most normal people have a much easier time with developing relationships (platonic or otherwise.) Falling in love is a quintessential part of being human.
Unfortunately, I feel like I’ve completely lost my ability to do this. To leave myself vulnerable. To be willing to give without counting the cost. Every interaction I have is guarded. Defense mechanisms and rationalizations abound.
Everything I do seems guaranteed to push people away from me.
It increasingly seems like some kind of chicken-and-egg problem. To be loved, you must give love. But it’s hard to love when you aren’t loved. More to the point, being depressed makes it hard to be loved, and to love. But not experiencing love probably contributes to depression.
I don’t know. Maybe the above is not true. Maybe if I can believe that this is all transient and I just need to get better, and that I’m not going to die from this (although severe depression really does seem to have a high mortality rate) Easier said than done.
But then again, I’ve never been the most patient person in the world, which is remarkable, considering what I’ve been through to get to where I am. But maybe that’s it. I’ve used up what little patience I have.
Dum spiro, spero. I really have to remember that more often.
So far, I’ve tried three desktop blogging clients for Mac OS X: Journler, MarsEdit, and Ecto.
As I noted before, Journler is free-as-in-beer, although not free-as-in-speech. It looks nice enough, but unfortunately, it can’t connect to Mephisto for some reason. Alas, that makes it pretty unusable, but it’s likely an idiosyncrasy of Mephisto. I guess I could try it against another blog engine, but since my main blog is running on Mephisto right now, it’ll have to be some other day.
MarsEdit looks rather nice as well, with a sparse, functional interface that doesn’t get in the way, reminiscent of older versions of OS X’s Mail.app. I succeeded with connecting to Mephisto via the MetaWebLog API (apparently for Mephisto, you have to use your user name as the blog ID.) My only quibble is with the fact that the timestamps are all screwed up, which is apparently more a problem with Rails, rather than with Mephisto or MarsEdit, but which apparently does not have an elegant solution at this time other than manually screwing with the timestamp. Because MarsEdit doesn’t let you munge the timestamp, I am rather left with editing the timestamp via Mephisto’s admin pages, which sort of defeats the point of using a desktop blog client. MarsEdit costs $24.95, but they offer a time-limited but otherwise full-featured trial for free.
ecto is another desktop blogging client which is actually available for both Mac OS X and Windows. In terms of aesthetics, I feel like the interface is a little cluttered and the icons don’t feel Aqua-like, but rather Swing-like, although I’m pretty sure that it’s not actually a Java app. (It looks like Carbon to me, but what do I know?) Again, connecting to Mephisto via the MetaWebLog API was pretty painless. It looks like timestamps actually work properly, but I’m not holding my breath. At least ecto lets you manually change the timestamp if need be.
Lastly, I also downloaded a blogging client for my cel phone. Up until last Saturday, I had a Nokia 6102i which I thought worked rather well. I had it for a year. It’s nice and compact, and it has pretty decent reception. It also had Bluetooth which let me easily sync to my Mac, and it also had J2ME MIDP 2.0, which let me run various useful apps, including the mobile version of Opera, and the Gmail mobile client. And it let me run Kablog, which is a blog client that runs on Symbian OS and on J2ME M IDP 2.0 compatible handsets. Unfortunately, photo blogging doesn’t work on the Nokia 6102i.
However, I stupidly lost my phone, which proved quite frustrating. Not only did I have a few pictures on the phone which I had failed to transfer, but I hadn’t sync’ed my contacts for a long while. Luckily, I had an old crappy Sony Ericsson Z500a, which was my phone previous to the Nokia. (It’s actually a pretty decent phone as well, with probably better reception than the Nokia but (1) it doesn’t have Bluetooth and (2) for some reason, mine kept randomly turning off regardless of whether or not the battery was charged.
I eventually went home to my parents’ house, and managed to scavenge a Motorola SLVR L7 that my sister had recently abandoned. While it’s relatively thin, its other dimensions are larger than the Nokia’s, and in the few days I’ve been carrying it around, I’ve managed to badly scratch the screen already (one of the reasons why I’ve preferred clamshells.) Kablog works fine on it (once I figured out how to manually set up Internet-access) although Mephisto initially gave me some problems. (When I moblogged on the Nokia, I was running Wordpress.) The SLVR does, however, have far more memory than the Nokia. (I kept running into out-of-memory issues with the Nokia, making the SLVR feel absolutely capacious.) I have yet to re-install any of the other apps I’ve used. My will to moblog has somewhat slackened. Mostly because I feel like there’s always a notebook or even desktop around. Clearly, I have no life.
I’m probably going to continue using ecto for now, and decide later whether or not I want to continue using it enough to pay $17.95 for it. It may be very well worth it, but we’ll see. There’s still the option of writing my own blog client. In theory it sounds like it should be easier than actually designing a blog-engine (which was my last abandoned project.) The only thing is that I don’t know anything about Objective C, and neither do I know anything about the MetaWeblog API, so this could prove quite challenging. (Is there a way to write a Cocoa app in perl or Ruby?)
In addition to stealing my sister’s MacBook, I’ve also taken her old phone, and so I’ve installed a blogging client on it, which I am testing right now against Mephisto.
While the pre-eminent desktop blog clients for Mac OS X are ecto and marsedit, I discovered journler, which is a free (as in beer) although the developer accepts donations for personal use and requires licensing for other uses
(I guess similar to how Movable Type licenses their software currently. I am still awaiting their GPL’ed release. The idea that it’s written in perl (and not PHP!) intrigues the hacker in me, but since MT is one of the oldest active blogging engines out there, I shrink back in horror at the idea of sifting through years of legacy code. Then again, maybe the next release will be totally refactored. Right.)
I’m not too happy with how journler handles links, and it doesn’t look like there’s a way to change things so that I can just edit raw HTML. Hmm.
I guess I’m just going to have to write my own blog client software, really. I may very well have to learn Objective C and Cocoa(!!!)
I really can’t articulate why I just don’t feel right. There is a part of me that is sure that I’ve always felt like this, and it’s kind of silly to question the matter now.
I have a feeling I’m going to regret leaving L.A. in the middle of the day like this. I suspect I’m going to have to take an alternate route to S.D.: something like I-605 to I-405 to CA-73 to I-5, or even wackier I-710 to I-105 to I-605 to I-405 to CA-73 to I-5. They really gotta widen the Santa Ana Freeway. Or get trucks off of it. It’s a straight-up clusterfuck.

I just went on a MySpace friend-adding frenzy. Mostly people I am acquainted with through {m}aganda magazine [entry on S.F. Bay Area Progressive Directory][DeCal course catalog], the Filipino-American literary magazine at UC Berkeley that I copy-edited for back in the day, and for which I was managing editor my senior year in college.
I guess I’m feeling acutely the lack of culture in my life. Not just ethnic culture, or hip-hop culture, but plain old creativity. I have no outlets, except for this godforsaken blog, and one might argue that writing for the vast, uncaring ether only saps what little creativity I have left. Maybe I should take Elton John’s advice and disconnect myself from the Matrix for a few years. See what it’s like to live exclusively in meatspace. Either I’ll find myself or end up going crazy. Or maybe insanity is just another word for enlightenment. Right.

Even six and a half years after the debut of Mac OS X, this programming API debate continues to draw <s>flames</s> passionate cries of outrage from both camps: the classic Mac OS developers versus the NeXTish developers. [Carbon viewpoint][Cocoa rebuttal] And while Apple does officially intend for Carbon and Cocoa to be both native, first-class APIs, I always got the feeling that the ultimate target was Cocoa. This is unsurprising, considering that Cocoa, derived from NEXTSTEP, is therefore sort of Steve Jobs’ baby.
Now, as I’ve stated before, I am not a developer. But as an end-user, there do seem to be differences. Cocoa apps seem better integrated, and you get a lot of system-level niceties across the board, like integrated spell-checking, deep undos, consistent keyboard shortcuts. But this is largely an illusion. If a Carbon developer were so inclined, these features could likewise be implemented in their app using the available API. It would just take more code.
Mostly, this is a flame-war based on errant perceptions. With OS X 10.0, the main purpose of Carbon was to provide a library that would allow an app to run on both Classic and OS X, and to which a legacy Classic app could be easily ported (effectively porting it to OS X), similar to Win32s, a Windows compatibility library that allowed programs to be written for both Windows 3.11 and Windows 95 and NT4.
But Carbon is no evolutionary dead-end. While Cocoa tends to get the spotlight, Carbon has grown as well. On the system-level, Carbon has always implemented a lot of the lower level functions that are more amenable to being coded in a procedural language (i.e., C) and which most/all Cocoa apps depend on. On an API level, the library has been extended to keep up with Cocoa, so much so that at this point, it would be possible to write a Carbon app that was essentially identical to a Cocoa app (except for the number of lines of code.)
The major difference between Carbon and Cocoa seem to be the language of choice. Carbon contains much of the legacy of the Mac Toolbox API, and even the Lisa API (originally written in Pascal!) and it is grounded in a procedural programming style. C is its native language, although like all APIs, there are plenty of language bindings (including Objective C!) Cocoa is descended from NEXTSTEP—a newer codebase than Carbon’s, but still pretty old (now pushing 20 years—and, really, much older than that, considering that, ultimately, NEXTSTEP is based in UNIX.) Much of the elegance of using Cocoa for development is the fact that it is based on Objective C—a superset of C that implements object-oriented programming quite differently from C++. Obj C incorporates a lot of features from Smalltalk, an object-oriented language developed by Xerox PARC in the 1970s. (A lot of these features have likewise been adopted by Ruby as well.) Key to Objective C (and Smalltalk, and missing entirely from C++) is the idea of message passing, which allows one to leverage existing base classes without having to create subclasses, reducing a lot of code complexity, and allowing maximal code re-use.
The separate existence of Carbon and Cocoa is largely an accident of history, reflecting the return of Steve Jobs to Apple, and also the fact that the Classic OS had reached the limits of viability (which explains why Copland and stand-alone Rhapsody failed) and that they needed to embrace modern OS techniques (like pre-emptive multitasking!) It could’ve been completely different, and Apple could’ve started from scratch a la Windows NT, with compatibility libraries to leverage the existing Mac OS Classic and NEXTSTEP code bases, but instead they deigned to use tried-and-true technologies. This decision to not reinvent the wheel seems to be reflected all the way down to the fact that the kernel is a Mach microkernel, and the low level subsystems are essentially run by a flavor of BSD.
But the separate identities of Cocoa and Carbon will likely blur with time. According to the wikipedia article on Carbon, there are ways to access Cocoa objects in C/C++, and many Carbon functions (many of which are essential to a functioning app) are wrapped in Cocoa objects.
The existence of Carbon apps that don’t feel as polished as Cocoa apps are largely due to the fact that (1) Classic apps can only be ported via Carbon, unless you really want to rewrite thousands of lines of code, translating it to Objective C, and things like Adobe’s line of DTP software and MS Office are venerable, very popular, complex pieces of code that harbor a lot of legacy baggage, and (2) in C, you have to manually integrate a lot of the features that you would automatically get for free by using Cocoa objects, and this work may simply not be worth it to the developer.
But be that as it may, there is no real reason why a Carbon app can’t be as nice as a Cocoa app since, ultimately, they are APIs to the same OS, and there is no rule saying you can’t mix C and Objective C or Carbon functions and Cocoa objects. Like Apple is always saying, it looks like it’s time to “Think different.”
My sister has hooked me to HBO original serieses (er, yeah, I know that’s not a real word.) She has been obsessed with ”Entourage” which has now grown on me.
And following “Entourage” is ”Flight of the Conchords”.
What I find funny is that Bret McKenzie (who, for some reason, makes me think of Orlando Bloom, never mind that one is from New Zealand, the other from England) actually had a bit part in “The Lord of the Rings” movies by Peter Jackson. He had a non-speaking part as an elf at the Council of Elrond. He was thereby christined as Figwit by obsessive fans. Because of popular demand, he actually ends up with a few lines in “The Return of the King”, and actually gets a name: Aegnor, which also happens to be the name of Finrod Felagund’s brother who was a Noldor prince. There is much debate as to whether or not Aegnor is canonical, especially since this name was assigned for a trading-card game.
I definitely vote that this is a different guy who has the same name as Aegnor. This is the same thing that happened with Legolas, originally given to one of the Lords of the ruined city of Gondolin. Legolas the Latter is definitely a different guy because Legolas the Former was Noldorin while Legolas the Latter is Sindarin, being the son of the Sindarin King Thranduil. Also consider Gildor Inglorion, who is supposedly of the House of Finarfin and Finrod Felagund. “Inglorion” actually designates him as the son of Finrod, but this is clearly impossible since Finrod never married after coming to Middle-Earth, and if this were the case, he should’ve been High King of the Noldor instead of Gil-Galad
Still, I suppose Aegnor could’ve been re-embodied just like Glorfindel, who, like Legolas the Former, was a Lord of the ruined city of Gondolin who was killed during the evacuation of the city. But then Aegnor would’ve been in the line of succession for the crown of the High King of the Noldor. (After Gil-Galad, who did not have any direct descendants, there were no more High Kings. Technically, the crown should’ve passed either to Galadriel, the daughter of Finarfin, or to Elrond, the great-grandson of King Turgon of Gondolin, who was High King before Gil-Galad.) Although maybe Aegnor was re-embodied after Gil-Galad died, and because of tradition, no one ever claimed the crown of High King of the Noldor.
But back to “Flight of the Conchords”: it’s pretty hilarious. Their manager even has a Commodore 64. Which apparently they use to simulate an ATM (judging from the font used in one of their videos.)
So my sister is out of the country for another month and a half, and she purposefully left her computer at my parents’ house, so I’ve started using it. It’s a MacBook with an Intel Core Duo running at 1.83 GHz with 1 GB of RAM, literally twice as fast as my iBook G4 with 1.28 GB of RAM, and it’s pretty sweet.
But naturally, I’ve had to re-build my environment, and had to hack the system to get an admin account running. (Believe you me, if someone has possession of your computer, it’s pretty damn easy to get access, no matter what sort of security controls you have, unless you actually were to rig a booby-trap or something. You know, like a small bomb that destroys the hard drive when you open the case, but I digress.)
So first things first: how to create an admin account on MacOS X even if you don’t have admin rights:
- Boot up in single-user mode by holding down [Command][S]
- Follow the instructions as described on the console:
fsck -yf mount -uw / sh /etc/rc - Create a new user on the command line (from Adding a User From the Command Line on developer.apple.com
dscl / -create /Users/XXXX dscl / -create /Users/XXXX UserShell /path/to/shell dscl / -create /Users/XXXX RealName "XXXX's real name" dscl / -create /Users/XXXX UniqueID nnn dscl / -create /Users/XXXX PrimaryGroupID 1000 dscl / -create /Users/XXXX NFSHomeDirectory /Users/XXXX passwd XXXX dscl / -append /Groups/admin GroupMembership XXXX
I only use the admin account for times when I need to sudo. Run as admin and you might as well run Windows
I first used tcsh because it was the first shell I ever used, way back in 1994, and it was the default shell on older versions of OS X, but I had grown used to bash from my Linux experience. But, mostly because I wanted to be able to tell my terminal windows apart, I’ve grown to favor zsh, which is already installed on Mac OS X 10.4 (Tiger).
Speaking of terminals, I prefer iTerm.app mostly because of the ability to use tabs.
If you decide to use zsh, I would add the following to your .zshrc file in your home directory:
precmd () { print -Pn "\e]0;[%n] %~\a" }
preexec () { print -Pn "\e]0;[%n] $1\a" }
There are far more customization options available as well. In addition to customizing the window title, you can customize the tab title as well.
The last thing I added was MacPorts, previously known as DarwinPorts. I had previously used Fink, so I thought I’d use something different.
Oh, I’ve wasted my life.
—Jeff Albertson AKA The Comic Book Guy from “The Simpsons”

The past two weeks have been something of a rollercoaster. Sadly, I didn’t really go anywhere other than back-and-forth between L.A. and S.D. Although I’m not really sure where I would go. (One of these days I’ll make it up to Alaska, but I figure I need a few weeks or so, but that is neither here nor there.)
I had meant to write something a couple of hours ago. I’m not exactly sure what set my wheels spinning, but maybe if I keep rambling on, it’ll come out eventually.
Mostly because I’ve had way too much free time, I’ve found myself ruminating too much about the fact that I’ve been alone for a really long time. This is something a few of my friends harangue me about, advising me that it’s unhealthy, and while probably true, my will has snapped or something. It was kind of funny recalling my various misadventures since graduating from college with B, and for some reason, talking to him made me more hopeful. Despite the fact that I’ve declared that I’ve given up all hope, and that I’m changing my focus to being content with the current state of affairs.
It was probably because B brought up my lost chances with J (What was that, five, six years ago?) How pathetic is that? I’m enumerating my most hopeful failures.
But I seem to have swung back down to reality. Sure, I have a whole future to plan out. Hell, I still have to tie up the loose strings of this year.
In a somewhat irritating bout of synchronicity, my mom has gone full bore about wanting grandchildren, which, despite A’s once-upon-a-time true assertion that you don’t really need to be in a relationship to have a kid, is somewhat difficult without someone to have them with.
I’ve got nothing.
But whatcha gonna do? It’s been a long time. Why should anything change?
The Sci-Fi Channel had like six back-to-back episodes of the show “Andromeda”, whose concept was originally conceived by Gene Roddenberry (the creator of the original “Star Trek.” What made me stop was that Nia Peeples[wikipedia][myspace] was a guest character on a particular episode. It turns out that Lexa Doig[wikipedia][IMDb] is a main character (in fact, the title character.) Why am I not aware of these things?
She plays the AI of the eponymous starship Andromeda and also plays an android (gynoid?) that has the AI as the basis of her personality. (Man, oh, man, if they ever turn ”Halo” into a movie, she totally should be Cortana. Although I don’t know about being typecast as an AI.)
“Andromeda” went off the air in 2005. Apparently the last season was ill-received by fans because a key writer quit the show and the concepts involved strayed from hard science moorings to more fantastic scenarios. There is a lot of time travelling and traversals of alternate universes, making it just a tad confusing, but it’s solid sci-fi in the tradition of “Star Trek”, “Battlestar Galactica”, and “Buck Rogers”.
So the experiment here is to see if I can just hack Blosxom and make it read XML files instead of the standard text files it reads.
I don’t want it to use folder-based categories, either, and would prefer to use tags, but I’m not entirely sure how that’s going to work. Hmmm. This could be the start of a beautiful disaster.
[meta commentary {2007.09.13}:]
[I have since once again abandoned this project. I don’t know why I’m so obsessed with the idea of launching my own blog engine when there are plenty of existing ones already. I just want to be able to control the syntax, I guess. This is one of the things that I like about Blosxom and Mephisto: you can essentially define your own XML tags and have the engine translate it into standard XHTML. So, for example, in Blosxom, I created my own pseudo-XML language that was supposed to mimic XSL. I also co-opted the <l> tag from the draft XHTML 2.0 spec, which I think is much better semantically than using <br/> tags when writing out song lyrics or displaying a poem. Plus it’s way less cumbersome than writing <span class=”line”>…</span> (which is what I had Blosxom translate it to anyway.) Mostly, these were shortcuts for otherwise lengthy pieces of HTML. For example, there is a plugin that implements the <blosxom:amazon-buybox> tag, which translates an ASIN into several lines of code. There are also shortcuts for including a link to a Google search page, and for including a link to the iTunes Music Store.]
[I didn’t play around with Mephisto’s text filters too much, but it wouldn’t be too hard to implement similar features. I admit, it’s all really syntactic sugar, and I don’t particularly miss them all that much, but still.]
[One of the features that I kind of liked from my hand-rolled static-page generating blog engine was the fact that you could abstract all the links from the entry and create a link log from them. I used a tag similar to <a>, except with a few extra attributes, like so:]
<bx:link href="http://somewhere.com" label="a website for the apathetic" desc="supposedly the epitome of an old-school E/N (everything and nothing) blog, only it doesn't really exist">Follow this link</bx:link>
[Actually, I was really using the blog namespace instead of bx, and dubbed my kludgery of XHTML as blogml. Unfortunately, blogml is actually already taken, but since I ended up abandoning my kludgery and utilizing Blosxom, I forgot about it for a while. Because of my strange fascination with XML tags, I used the blosxom namespace for all the shortcuts I created (hence, <blosxom:amazon-buybox>, <blosxom:itms-link>, etc., etc.) But typing out blosxom all the time is extremely cumbersome, so I ended up shortening it to bx.]
[After a while, I got the itch to write my own blog engine again, except this time it would generate dynamic pages. I thought that I would call it bx, since my first conception was literally a down and dirty (and incomplete) hack of the Blosxom code base. Bx is actually the abbreviation for biopsy, which I thought would make a good name for a blog engine. (In medicine, because most of the terms are Greek or Latin, and they tend to be painfully long, everything can be abbreviated by taking the first few letters and appending an “x” to it. So dx means diagnosis, tx means treatment, rx means prescription, cx means culture, etc. The Evil Resident actually has a list of the more common abbreviations that are found in medical documentation.)]
Some inchoate misgivings haunt me this early morning. My confidence is at once bolstered and yet shaken.
Regrets? How do you regret something that you didn’t have any choice in?
There are worse things than to die alone and unloved. I guess.
Wow. This puts a different spin on ”Happy Ending” by Mika.
Now, bear in mind, there are decent scripts lurking in vendor/plugins/mephisto_converters that will do a reasonable conversion from either Wordpress→Mephisto or Typo→Mephisto. The problem that comes up, however, is the dichotomy between categories and tags. While I was still using Wordpress (which only offers categories and does not offer tags), I was basically using categories as tags. I never really did get into the whole semantic partitioning between categories vs. tags and find that tags alone satisfy my organizational mindset (meaning, complete chaos, but I digress.
I will not go into how to use these converters, as you can follow these instructions regarding converting from Typo→Mephisto. I imagine the conversion from Wordpress→Mephisto is quite similar, although I haven’t tried it myself.
But, given the aforementioned dichotomy between categories and tags, my previous migration from Wordpress→Typo correctly imported the Wordpress categories as Typo categories. However, for some strange reason, I decided once I started using Typo to only use tags and not categories. This resulted in about a year and a half’s worth of posts with categories but no tags, and a week’s worth of posts with tags but no categories.
I then proceeded to migrate all the posts from Typo to Mephisto (using the instructions I mentioned above.) Unfortunately, the migration script seems to only pick up one set of delineators (categories OR tags, but NOT both). And not only that, it munged the tags that I did have as described, joining them all into single supertags with embedded commas. Not exactly what most people want.
Since there were only 10 or so posts from the previous week while I was using Typo, I ended up just manually fixing all the tags. However, this left all of the Wordpress categories that did not survive the transition through two blog systems. I transiently entertained the notion of manually tagging each and every post, using a backup of my Wordpress database as a reference, but I soon came to my senses and decided to do this programatically.
The following is based entirely on the code from the above referenced website that fixes Mephisto tags based on Typo tags from the Typo database, except that I was fixing Mephisto tags based on Wordpress categories from the Wordpress database. You can just enter all of this at the ./script/console prompt:
require "converters/base"
require "converters/word_press"
WordPress::Post.find(:all).each do |wp|
mp = Article.findby_permalink(wp.postname)
wp.categories.collect{|c|c.cat_name}.each do |cat|
Tagging.set_on(mp,cat)
end
end
The video is awesome.
It reminds me of this scene from Dirk Gently’s Holistic Detective Agency, which features the remains of a crashed space-ship on a primordial earth, and the space-ship ends up catalyzing something like the Cambrian explosion.
I found all of this rather confusing, since I’m pretty sure I downloaded the same version of Mephisto to my local machine as well as to my Dreamhost account. But I got things running on my local machine with no problem, but had to struggle for a couple of days to get it to work on Dreamhost (with Ruby 1.8.5 and Rails 1.2.3 as of this writing.)
Now Mephisto 0.7.3 works fine out of the box on Dreamhost, something which I myself have confirmed, but unfortunately it’s missing a few choice features found in trunk (specifically next_article and previous_article methods which are available to Liquid) but the average user may not need these things. (As of this writing, I still haven’t implemented chronologic navigation, something which I’ve been extremely fond of because it makes it unobtrusive to read my blog from beginning to end. Narcissistic much?) So follow these instructions and you should be good to go in no time.
Now if you’re a tad more adventurous, you can try the following instructions on installing trunk (which as of this writing is in revision 2936. As to whether newer revisions will work is anybody’s guess.)
Use svn to download the code:
svn checkout http://svn.techno-weenie.net/projects/mephisto/trunk [destination directory]
Out of the box, the code seems to choke on a call to a Liquid method. This was seemingly fixed by updating the Liquid plugin:
./script/plugin install http://liquid-markup.googlecode.com/svn/trunk
(Note: script/plugin is relative to the directory you installed Mephisto into.) Liquid (trunk) is currently at revision 6. I’m not really sure if this might break something else entirely, but so far, so good.
After this, you can follow the same instructions for installing mephisto-stable.
Various little things I learned which may be of dubious benefit to others: 6d407a277e81c13e46c7419ca24e0369
Coming up: how I converted Wordpress categories to Mephisto tags.
How much of your destiny is truly predetermined? How much of it is self-fulfilling prophecy? (There are technical terms for these things, I think, except I can’t remember them. Confirmation bias? Forer effect?)
Somewhat sadly and quite pathetically, I’ve come to identify myself with an unusual type of literary protagonist: the hero who doesn’t get the girl. Off the top of my head, there are only really three stories I can think of where this happens unambiguously.
Though I actually have never read it, the first one is Wuthering Heights, in the character of Heathcliff. My friend was reading Wuthering Heights at the time and told me that I reminded her of this character. (Great.) But I actually probably first ran into this character in Michael Penn’s song ”No Myth” which is, naturally, a song about a guy who isn’t able to hook up with the girl that he loves. But I think it definitely ranks up there on the list of obscure literary references made by a pop song. (Interesting bits of trivia: Michael Penn is the brother of the actor Sean Penn, and married the singer Aimee Mann) While this song came out in 1990, the most striking memory I have attached to this song is driving up 880 in Milpitas in 1998, although I don’t particularly remember where I was going.
Another character to which I’ve been likened is Sydney Carton, the doomed alcoholic barrister who falls hopelessly in love with Lucy Manette, and for whom he eventually sacrifices his life for. I didn’t read this book until my junior year in college, during a trans-Pacific plane trip to the Philippines. My sister had just read it for high school at the time. What struck her about the character was the aura of wasted potential that clung to this character.
Lastly, and perhaps less literary, is Severus Snape from the Harry Potter series. The love of his life, Lily Evans, ends up marrying a guy Severus totally hates, James Potter. Lily is eventually murdered by the Dark Lord Voldemort, providing the driving force for Snape’s hidden-yet-unwavering opposition to the bad guys, although he is eventually killed as well (for what I feel were rather arbitrary reasons, but I guess an author has got to do what an author has got to do when a deadline is looming.) He kind of combines the increasing bitterness and vengefulness of Heathcliff driven by losing the woman he loves first to marriage to a rival, and then to death, with Sydney Carton’s aura of wasted potential, total despair and wanton self-sacrifice, dying what seems to me, a meaningless death, since he does not get to find out that Voldemort was successfully vanquished and that Harry actually lives.
When I first read the dénouement to Snape’s subplot, I was astonished. Here was an actual character who could hold the torch for a lost love some 15+ years after the fact, and who ends up dedicating his entire life in memory of her, without hope or ambition of ever finding love again. As far as he was concerned, it seemed to me that he considered his life pretty much over. Finally. A character that I could relate to!
The astonishment soon turned into a mild depression, with the realization that the probability of me dying alone and unloved is pretty high, and ever increasing with time, and while it doesn’t seem like a good way to go, I’m in no mood to really do anything about it. It is, to put it bluntly, fucking hopeless.
But then again, there are far worse things in life than to be alone and unloved. For some unknown reason, the depression managed to snap a few days ago. While nothing has changed with regard to my non-existent love life, there seems to be something that has changed in my perspective.
My current attitude seems to range somewhere between “oh well” and “I don’t give a fuck.” I haven’t exstinguished hope entirely, but I’m pretty much gearing myself up for a continued solitary existence for however many more years I may have left. (I am utterly convinced that I am going to die young, for pointless reasons, and in quite possibly a violent manner.) Odds say, given my personal and strong family history of depression, anxiety, and just general insanity, I am most likely to end my life in suicide. Still, you can never rule out the random drunk driver going the wrong way on the freeway. Or early-onset coronary artery disease, the way my diet is. Suicide by hamburger. What a way to go.
Then I read about this metaphor about life, and I have to say, “Yeah. That’s it.”
Life. You do with it what you can. The faster your realize the things you can’t or won’t do, the less time you waste living with regret. I guess. Something like that.
Your Score: SLYTHERIN!
You scored 44% Slytherin, 16% Ravenclaw, 32% Gryffindor, and 24% Hufflepuff!

Or perhaps in Slytherin
You’ll make your real friends,
These cunning folk use any means
To achieve their ends.
Slytherins are known for their ambition, guile, and Machiavellian sensiblities.
| Link: The Sorting Hat Test written by leeannslytherin on OkCupid Free Online Dating, home of the The Dating Persona Test |
Just a quick status report: I’ve been struggling mightily with Ruby on Rails, the web application framework du jour, and I finally managed to get a working copy of Mephisto, yet another blog engine. While Typo was OK, I unfortunately discovered that AJAXy-goodness wasn’t all that it was cracked up to be when I couldn’t easily customize my blog. While the idea of drag-and-drop widgets is cool, it’s also slow as hell, and I just didn’t have the patience to wait for the refreshes, particularly when in some cases, I could just write the requisite HTML in the same time.
I’ll go into the various hacks I had to do apply in order to get it up and running. Most of the pain was caused by my burning desire to get the trunk version of Mephisto working. If you actually follow the instructions to install Mephisto 0.7.3 (stable), it’s actually quite painless (and it installs pretty much the same way Typo does.)
What I did learn is that Ruby and Rails are awesome. No more wading through Google search results to find the commands that I want and how to call them. No more riffling through source code with obscure file names to try and untangle logic. If I had become a programmer, I would’ve definitely gone with OO right from the start. For some reason, I can look at Ruby code and grasp it way faster than I could ever figure out Perl or PHP.
The other neat thing about Mephisto is that its relatively new. Sure, on the downside, that means that lots of standard blogging features are not yet well implemented. On the upside, this gives me more freedom to hack on it and learn Ruby and RoR by writing my own kludges. It’s kind of in the state that Blosxom was in when I jumped on that particular bandwagon: core features are essentially complete. But I bet you’ll be wanting the bells-and-whistles, which will require either patience for the developers to get to it, or mastery of Ruby and RoR to write your own code.
But enough of that. It’s time to get back on the road.



