My Characters Live!

d1/15,000 words

To help me visualize my characters, I used a girl on fiverr.com to draw them out based on my general descriptions of clothing, build, skin/eye color, etc. I LOVE the results! It is so cool to see them rendered. As a novice writer, it makes it so much easier for me to write with these visuals. I’ve posted the artwork on the homepage.

Scrivener: Go!

d1/0 words

Ok, it is time. I am doing this. So I had this screenplay — a shitty screenplay — that sat on my desk for a couple years. Then I tried to make it into a game with my buddy, but that fell by the wayside. All told, it is about 5 years since I did the worldbuilding on this thing, but I still want to make something out of it.

So here I go. I bought Scrivener today, and loaded it up with my notes and maps and character bios and location deascriptions. I am starting to outline my story arc and character arcs, drawing from the screenplay, but with massive restructuring. I’ll post updates here as I go!

Watchplate.com Review

I am one of those nerds who jumped on the Apple Watch fanclub, stayed up until midnight, and made it into the second delivery group for my Stainless Steel 42mm Milanese watch.  After a lot of trolling macrumors.com, the watch finally arrived, and so the first thing I did was…. send it off to a stranger to dip it in chemicals to slightly alter the hue of the material.

In fairness, it was also done in solidarity with a fellow forum member, who decided to start this company with the support and prompting of the macrumors community (myself included), so I was more than happy to contribute.  I was order #11, and us early birds, he gave us a $100 kickback if we would help spread the word on social media.  Being a student of VFX, I decided to play with youtube, and see if I could come up with something.

It turned into a bit of a project, including watching a lot of this guy, to learn how to photograph jewelry.  And of course, a lot of hours on videocopilot.net.

The folks at WatchPlate.com add a plating of 35 micron of 24K gold, which is much more than normal jewelers use, and hopefully means it will last longer.  [ UPDATE: In order to match the hue of the Edition more closely, WatchPlate.com is now using an 18K plating process, rather than the 24K depicted here. ]

Here is the video I posted to youtube.  I am particularly proud of the intro frame, made in AfterEffects.

This is what my photograph rig looked like when it was done… it is totally hacked together with paper taped to an old 5-arm light I had in college, and a sheet of yellow colored-paper to act as a reflective bar:

IMG_0406

IMG_0403

IMG_0401

The results were quite good, if I do say so myself.  As close to professional as you can get from a couple lights, an empty bucket, and a Sony camera.

SONY DSC

SONY DSC

Mercurial on Yosemite

Mercurial is a great source control system… it is light and easy to use, and versatile enough for a professional environment. When I started my current company I worked extensively on Ubuntu with a local Mercurial server, and so when I switched to OS X (Lion at the time) I brought my same setup with me. Unfortunately, after upgrading to Yosemite, I found some tweaks were necessary. Here is how I got Mercurial setup with SSL on Yosemite for command line use.

1) Install Mercurial from MacPorts

$ sudo port install mercurial

2) Create a repository… I use /var/depot for the config and /var/depot/repos for the actual source.

$ cd /var
$ sudo mkdir depot
$ sudo mkdir depot/repos
$ sudo chown -R _www:_www depot/repos

3) To setup the Mercurial web server we first create some needed files to run the web interface, then we will need to modify apache. To start create hgweb.cgi. Note that I’ve modified the Python path on the first line… the default is /usr/bin/env, which is the wrong version of Python for HG.

#!/opt/local/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
#
# An example hgweb CGI script, edit as necessary
# See also http://mercurial.selenic.com/wiki/PublishingRepositories
# Path to repo or hgweb config to serve (see 'hg help hgweb')
config = "/var/depot/hgweb.config"
from mercurial import demandimport; demandimport.enable()
from mercurial.hgweb import hgweb, wsgicgi
application = hgweb(config)
wsgicgi.launch(application)

4) Create hgweb.config

[collections]
/var/depot/repos = /var/depot/repos

5) Create the hgwebdir.cgi file, and again update the python path:

#!/opt/local/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
#
# An example CGI script to export multiple hgweb repos, edit as necessary
# enable importing on demand to reduce startup time
from mercurial import demandimport; demandimport.enable()
from mercurial.hgweb.hgwebdir_mod import hgwebdir
import mercurial.hgweb.wsgicgi as wsgicgi
application = hgwebdir('hgweb.config')
wsgicgi.launch(application)

6) Create the users file to allow people to submit to your repo. I created the username mike. Repeat for all users you need:

$ htpasswd -m hgusers mike

7) To setup Apache and SSL you need to do a few things. I am assuming you already have Apache started. To make the needed changes, open /etc/apache2/httpd.conf. Make sure the following modules are included (some additional config is necessary if you want your webroot to run out of the user dirs… I put mine in /var/www/ so I skip those steps):

LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule cgi_module libexec/apache2/mod_cgi.so
LoadModule userdir_module libexec/apache2/mod_userdir.so

8) In the <directory> directive for your web root, make sure after “Options” you have “ExecCGI”. Mine looks like this:

Options FollowSymLinks Multiviews ExecCGI

9) Also in that same directive, add a handler for CGI:

AddHandler cgi-script .cgi

10) Finally, make sure near the bottom the following line is uncommented:

Include /private/etc/apache2/extra/httpd-ssl.conf

11) Save that file. One more step to setup Mercurial, then we can configure the SSL certificate and a few other things. Create and open this file: /etc/apache2/other/httpd-hg.conf

ScriptAlias /hg "/var/depot/hgweb.cgi"
<Location /hg>
Options ExecCGI
Order allow,deny
Allow from all
AuthType Basic
AuthName "Your Authentication Prompt Message Goes Here"
AuthUserFile /var/depot/hgusers
Require valid-user
</Location>

12) Now to configure the SSL certificate return to the /etc/apache2/ directory and do the following. This will create a private key, a signing request, and finally a usable (non password locked) public key:

$ openssl genrsa -des3 -out server.key 1024
$ openssl req -new -key server.key -out server.csr
$ cp server.key server.key.orig
$ openssl rsa -in server.key.orig -out server.key
$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

13) Now setup Apache to use the certificate you just setup. Edit /etc/apache2/extra/httpd-ssl.conf, and make sure the following are uncommented and pointing to the files we just setup:

SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCertificateFile '/private/etc/apache2/server.crt'
SSLCertificateKeyFile '/private/etc/apache2/server.key'

14) Ok that is the bulk of the server setup. Now we can configure a repository and try setup our user (mike). Let’s first create a quick repository to use.

$ cd /var/depot/repos
$ sudo mkdir example; cd example
$ sudo hg init

15) This is a quirk that seems to be necessary for Yosemite only. Go into the freshly created .hg directory inside this repo, and create an hgrc file.

$ cd /var/depot/repos/example/.hg
$ sudo nano hgrc

Enter the following:

[web]
allow_push = *

Now make sure this whole directory is owned by _www;
$ cd ../../
$ sudo chown -R _www:_www example

16) Nearly there. Restart apache, and make sure a few things are working.

$ apachectl restart

17) If you have a problem, try apachectl configtest. Now visit https://localhost/hg. It will alert you of a certificate error, again because the cert is self signed, but you can select to trust it. Then it should ask you to login using the name and password we created in step 6. You should be able to get in and see the example repository.

18) The last piece of configuration we need is for the user that will be cloning/pulling/pushing from the command line. Go to your home directory and create an .hgrc file with the following content:

[auth]
default.prefix = https://localhost/hg/
default.username = mike
default.password = <>
default.schemes = https
[ui]
username = mike <[email protected]>
[web]
cacerts = /etc/apache2/server.crt
allow_push = *
push_ssl = true
description = localhost/hg
[hostfingerprints]

19) This won’t work quite yet because our SSL cert is self signed, which will fail most security checks. We can fix this — go to your webroot (/var/www in my case) and follow these steps.

$ hg clone https://localhost/hg/example
$ cd example
$ touch test
$ hg addrem; hg ci -m testing; hg push

This is going to fail with a message something like this:

(configure hostfingerprint XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX or use --insecure to connect insecurely)

20) Copy all the numbers for the fingerprint above, and paste that into your ~/.hgrc file in the [hostfingerprints] section we left blank above:

[hostfingerprints]
localhost = XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX

21) You are done! Mercurial works, the web utility works, and SSL works.

Throw back to 2003

One of my many neuroses is an OCD-like organizing of my computer files, separated by year. I happened to be browsing some of the old folders, in this case from 2003, and I stumbled across this short I had written for a high school english assignment. I found it interesting enough to post. #throwbackthursday.

* * *

I remember the thunder and the rain hammering the roof like an invading army. The creaks and groans of the old wood like nearby battle cries. The windows blocked out the chill air, but were unable to stymie the darkness, which flowed in thick as smoke. The swaying, flickering, light cast by an overhead chandelier sent our huddled shadows dancing across the walls. I remember watching them move, as if they were strangers circling us, preparing to close in. Unbroken by the fearful barking of a dog forgotten outside, or the screech of tires as somebody rushed home, the hypnotizing rhythm of the rain and thunder threatened to consume the four of us entirely. We were usually talkative when we were together, but this evening we all sat silently, as if we somehow anticipated the moment that was about to arrive. What I don’t remember is what we did earlier in the day, or how we arrived in that room on that dark night. Nor can I resolve precisely what came after. That night exists for me only as the exaggerated minutes that preceded her confession.

Emi was looking particularly glazed; I suppose I should have recognized the slight frown on the edges of her mouth and her vacant eyes, and known something was very wrong. Regardless, we would all soon find out. Somewhere outside, lost in the darkness, a tree must have fallen. We all jumped when we heard the crash. I looked from Karen to Sarah, and from Sarah to Emi. It was in this moment as Emi’s expression was thrown into harsh relief, the darkness momentarily suspended by a burst of brightest blue, that I saw written on her face what I had failed to see before. I remember Sarah asked her if everything was all right, but Emi didn’t answer. The rain crashed down harder than ever, and the street lights outside flashed angrily and went out. Perhaps it was because she had planned to tell us, or perhaps something in the darkness of this desolate evening resonated with the weight upon her heart. I can’t say for sure, but I remember her eyes locked to mine, and there was a look of watery supplication I had never seen before. And a darkness, even darker than the cold air that surrounded us. Remembering the emptiness in those eyes still makes me shiver. She had stiffened and started speaking. At first her voice seemed stuck in her throat, but it finally found its courage, and she said she had to tell us something. She hesitated, and I found myself wishing she would not continue, but it was only a moments pause before she did. I have forgotten her exact words, but I remember the images her words summoned as if they were burned into my mind’s eye.

She told us how her boyfriend had called her to his house on that stormy night the previous weekend. Intent upon surprising him, she had arrived early, only to find a surprise of her own: he was there with another girl, sending her out into the cold after a loving embrace, then gesturing for her to depart before Emi arrived. There was a pause in her story, but none of us responded. Her words didn’t seem to settle, rather they hovered uncomfortably in the air between us, the darkness all around them. Emi explained that she had confronted him, and in her temper, she had taken his gun from his study and turned it on him. Apparently they struggled, and as he tried to fight her off, he cut her arm with a kitchen knife. Emi rolled up her sleeve and showed us. A flash of lightning timed itself dramatically and illuminated a jagged swollen cut across her forearm. Karen put her hands over her mouth and made a whimpering sound. Sarah looked like she was crying. I didn’t know what to think. But the rain hammered on, so I just sat and listened. The details are lost… I do not know if I’ve blocked them, or if she never told us, but as the struggle escalated, she shot him. At this point she was trembling all over, and her voice trailed off. So there it was: my best friend had killed someone. With a seeming crescendo, thunder erupted directly overhead and as the lightening retreated, the darkness was set free. But suddenly the darkness did not feel oppressive, it felt like a void. We were no longer surrounded, instead we were isolated afloat in nothingness, our senses paralyzed and blank. Sarah sat perfectly still, dim and distant lights glistening on her wide eyes. Karen turned to me but was unable to speak.

Something else was different between us now. The emptiness was leaking into my body from the surrounding void. I felt scared and lost; I didn’t know what to do. Karen asked Emi if she had called the police. Fighting to maintain her composure, Emi merely shook her head but did not speak. The thoughtful silence returned, and we all sat still, now four strangers in the dark. I saw the glimmer of silent tears running down Emi’s face when she sniffled. She had killed someone. Was she now a different person? Was I? I remember a part of me wanted to comfort her, but another part held me back. I saw Karen, too, looking at her differently. Sarah was looking the other way. The void was growing larger, a separation between us four as we sat there in the darkness, the blood from this dark secret seeping through us.

I don’t think any of us spoke for the rest of the evening; there was nothing to say. I don’t know if I was different or if Emi was different. It was a strange thing, that the actions of a few moments of emotion could change everything for her and for us. A few days later I believe Sarah tipped the police, and Emi was arrested. It’s funny how finite the world is. One moment things seem static: boundaries seem clear and reality is well defined. But then in the time it takes for rain to descend, a moments darkness changes everything. Sometimes I am able to feel bad for her, or at least for the person I knew and cared about before that night. I never found out if she was the same person. If the person I thought I knew was a lie, or if the darkness was never a part of her, but merely exploited her in a moment of weakness. Is evil real, or are we all arbitrary victims of inscrutable circumstance and inexorable darkness?

Mediums are full of it

I got drawn into a discussion the other day about whether of not mediums really could talk to dead people. My conversational opponent had a few anecdotal accounts which, they claimed, resisted any other explanation. “How could she have known about her Grandmother?” As I reflected on the matter, I found it easiest to refute the existence of true mediums by simply imagining what the world would be like if mediums really could talk to the dead.

Let’s Pretend

Let’s just imagine how amazing it would be if someone actually could communicate with dead people. First of all, mediums would be star witnesses in courtrooms around the world. Victims of murders, accidents, and all sorts of sticky situations could come to give their own accounts of what happened. Specific details of how crimes unfolded would be readily available, if only we could ask the victims who were there. Think how famous trials such as OJ Simpson, Casey Anthony, or Jodi Arias could have changed with testimony from the victims.

In addition to trials, police investigations would be powered by medium resonances everywhere. Mysterious circumstances like the death of Heath Ledger, or disappearance of Jimmy Hoffa, would be easily solved. Reports given by these medium interactions could be easily validated and confirmed beyond any reasonable doubt.

Historians and mediums would go hand-in-hand. What better way to solve mysteries, find lost treasures, and understand the way of past cultures than to speak to them directly? Historians would have way to find artifacts and receive detailed explanations of how they worked. Ancient languages could be studied through these interactions, and even learned. Eye-witness accounts to all sorts of amazing historical events could be summoned easily and documented, compared to archaeological evidences, and verified.

No wedding or funeral would be complete without mediums present to allow loved ones to stand in attendance. Funerals would be lifted by highly-personalized goodbyes from the actual dead person to their bereaved family. Lost grandparents, parents, or brothers and sisters could attend weddings and other important family events, delivering their own speeches and touching reflections through the medium.

And of course, by now we would have amazingly detailed accounts of what “the other side” is really like. What does it mean to die, and what is the afterlife these spirits occupy? Any resonance from the other world would be able to give details and information, any of which would be absolute gold.

The Most Important Career

It seems that almost no avenue of human life would be complete without access to the dead. Politicians could consult famous predecessors, military ground troops could use intelligence from captured and killed comrades, scientists and mathematicians could consult long lost personalities for insight (Fermat’s last theorem, for instance). Religious groups could actually commune with their ancient prophets and influential thinkers.

If medium accounts could be confirmed, as would be easy to do in any of the above examples if their talent was genuine, then mediums would be the most important and the most valuable members of any human society.

It seems strange they are instead relegated to sideshows in vegas, and rely on silly anecdotes and small shapeless stories to establish their veracity.

Or maybe, they just aren’t real.

What Came First: Chicken or the Egg?

I do not mean this as a metaphor or allegory. I mean it literally, because I have never understood why this paradox remains unsolved. Is not the answer is obvious?

The EGG.

Chickens have been around for about 12,000 years, and eggs predate their species by hundreds of millions of years. Eggs existed way before there was anything like a chicken.

That is not what we meant…

Perhaps you mean, “what came first, the chicken or the chicken-egg?”

In that case, I suppose it is slightly more confusing, but still easy to answer with a little insight from evolutionary biology:

The CHICKEN.

We know a thing or two about how mutation occurs in species: during the early formation of the embryo, as chromosomes are copied from the mother’s egg and the father’s sperm, errors can occur resulting in genetic mutations, or evolutions. Although the transitional lineage of animals is perfectly smooth, for the sake of argument we can suppose there is a genetic definition of what constitutes “a chicken” as compared to a “pre-chicken.”

Clearly, then, it must be within the egg of a pre-chicken that the first chicken formed, the result of an accidental mutation in copying its pre-chicken parent genes. This first chicken emerges from its pre-chicken egg, and eventually comes to lay the very first chicken egg. Thus, the chicken came before the chicken egg.

Of course this whole rant is pointless, the paradox is not meant to be literally examined. It is a silly way of saying, “a circle as no beginning.” But still, for the pedantic nerds among us, the matter is settled. Boom: headshot.

Dumbledore was kind of a dick

I know the Harry Potter train is so long gone, most of us can’t even see the back of it.  An unexpected series of events, however, lead me to recall and old frustration I had with this impressive character, so I figured a short rant was in order.

Recall the Story

Near the end of the fourth book, there was a crucial moment between Harry and Dumbledore, one that caused much speculation when the text was first published.  Harry returns from the graveyard, tortured and beaten, having witnessed the rebirth of the Dark Lord.  As he recounts the tale for Sirius and Dumbledore, he tells them that his own blood was used in the regeneration.  At that moment there is a “look of triumph” on Dumbledore’s face, but he makes no further comment.

Dumbledore

It is not until the finale sequence of the series that we discover what information Dumbledore gleaned at that moment, that evaded the rest of us: upon taking in Harry’s blood into himself, Voldemort “re-doubled the connection between them,” and ensured that his living body kept Harry’s mother’s sacrifice alive.  This double connection ensured that, when Voldemort fired the killing curse at Harry in that lonely forest in book 7, Harry did not die.  The unintentional 7th horcrux that had lived inside him was blasted away, but Voldemort’s living body ensured that Harry would survive again.  So he did.

The Greater Good

Nobody seems to call attention to what this admission really means.  Had Voldemort not used Harry’s blood, the killing curse would have finished the full job: Harry and the 7th horcrux would be gone.

But wait right there.  Are we to suppose that Dumbledore anticipated this sequence of events?  Had he known 13 years earlier as he laid out his “plan” for Harry’s protection, that this double-bond would eventually be formed?  It seems not, from the triumphant look he lets slip in the fourth book.  The meaning of this is simple: for the first 13 years of Harry’s life, Dumbledore’s full intention was to train him up, and send him to die, just like he told Snape.  He never meant for Harry to survive, because as long as he did, Voldemort’s immorality was ensured.  He planned to one day sacrifice Harry for the greater good, a motivation that had lead him astray even in his youth.

It seems to be serendipitous that his plan was able to manage a last-minute rewrite, and for the last three books only, was the possibility of Harry’s survival even an option.

Poor Severus

Another victim to run afoul of Dumbledore’s plans for the greater good is the tragic double-agent Snape.  We discover in the dreamy-rendition of King’s Cross, as Harry encounters Dumbledore, that it was part of his plan all along for the elder wand to fall to Snape’s hands.

The plan would have meant the elder wand lost its great (and terrible) power: having never been really defeated (Dumbledore’s murder having been pre-arranged and even pleaded for), Dumbledore’s old wand would have seized to be the elder wand, and become merely a wand like any other.

It seems unfathomable, however, that Dumbledore would not have understood the implications of this decision.  Indeed he shows every sign of guilt in the story for Snape dying in the manner he did.  Voldemort was inevitably going to seek out Snape to claim the wand as his own.  Once again, Dumbledore was more concerned with servicing the greater good: terminating the power of a deadly object.  This was a much greater priority for him than the inevitable horror it would summon upon his supposed friend.  The backfire in the plan was only that Malfoy ended up as the owner of the wand, and therefore its powers were not broken.  This was not enough to save Snape, although it does not seem like saving him was every Dumbledore’s purpose.

The Bottom Line

The books and character accounts make it clear that Dumbledore is supposed to be a character of immense good, and his darker undertones are portrayed only as fleeting traits from his youth, and sore but benign temptations for power, all of which he was able to keep in check nearly all of his adult life.

This polished account seems to glosses over the sticky fact that Dumbledore actually remained dedicated to the greater good, at the expense of many other characters, throughout the novel.  In my mind, this makes him much more like the other “imperfect heros” of the story, from the obvious Snape who is evil as well as loyal — or Ron, who abandons his friends — or even Harry himself, who was drawn to the dark arts twice, in books 5 and 7 (not counting an unintentional third time in book 6).  These other imperfect heros stumble through their role, combating their personality and passions.  Dumbledore is of a different mold, because his wickedness is as premeditated as they come, and his lies more tightly wrapped still.

Or, in a sentence, Dumbledore was kind of a dick.

How to regain access to your FiOS router

Forgot your FiOS router password?

I stumbled across this one recently, and figured I would share my results.  I forgot my password to my router, and had to change some settings — facing the prospect of a factory reset, I spent some time digging.

If you are locked out of your FiOS router, give this a try:

  • Navigate to your router: 192.168.1.1
  • Notice the query string varible: active_page=9091

Whoever designed the web interface on these things make a bunch of rookie mistakes, which we can leverage to gain access.

Change the URL slightly to tell the router to serve you a different page (ID 9090 in this case):

http://192.168.1.1/index.cgi?active_page=9090&req%5fmode=0

fios interface

The router now serves up it’s “login setup” page.  You are free to reset your password without ever providing your current one.  Major security hole? Yes.  Can this be done from outside? I haven’t tried it… But probably.

In any case, you now have your router back in your control!