Marcus Pope

Husband, Father, Inventor, Programmer Highlands Ranch, CO - °



So this is why I'm having such a hell of a time unwinding the cross browser support code from the craptastic code in jQuery

I thought I could just cherry pick the functionality of jQuery that solves the cross browser consistency problems. I thought I could do it in about 3 - 4 days. I managed to get everything but CSS and Events, but that effectively means I have only extracted about 1/3 of the 8k line codebase :( I could probably write a novel on the inanity of of overloading and morphing functional interfaces using only jQuery for real world scenario examples.

At this point I have to cut my losses and realize that Verboten's Dom component is either going to ship incomplete or ship late. I'll decide on which when the time is near. However, the net win is that I will ultimately extract the cross browser specific code to a library called xb.js. Please don't mistake this resource for my project :/

When I get a chance I'll run the complexity analysis tool on both the xb.js file and verboten.js to see how I compare. I'm really not sure how it will stack up considering the size differential. I'm curious how it normalizes the metrics for variously sized projects.

Christmas is almost here and I'm really looking forward to some family time at home. So it looks like I'll be adding verboten to my New Year's resolutions.

edit So I couldn't wait and I tested verboten.js and received a score of 1394, which puts it right between Angular.js at 1110 and jQuery at 1540. Though the metric is accumulative and so it doesn't account for size. Given that my codebase is almost 2.5k more lines of code that makes my code-complexity-per-square-inch-metric(tm) better than both :D


Ah, how life goes supersonic during the holidays. Evelyn is doing wonderfully, and has slept 7-8 hours each night this week. Development work has definitely slowed to a crawl, but I still think I can finish before 2013 (which has a nice unlucky/verboten connotation. Springbox work has been light, but still engaging. And my social life has pretty much been killed. But overall life is pretty good.

2013 will also bring the return of WordPress plugin support. I'll finish Evelyn's site, which was put on hold because I needed the enhancements to verbotenjs to implement the planned features. And why add more work to my limited plate by doing them in reverse order only to result in refactoring debt. And with VerbotenJS and ScrewPress getting flushed out in the process, it will also be the start of my application frenzy. I've made a lot of plans for various applications that I intend to build with verboten as a foundation. ScrewPress will ultimately transition into an application framework, instead of just a cms. And because it's so minimalistic at its core, applications won't feel like a blog with plugins tacked on the side.

We're hosting Christmas for the first time this year in our own home. It's a shame to miss Christmas with Elli's extended family in Arizona, but we could definitely use the convenience of home furnishings.


So I'm almost finished with a major refactoring of VerbotenJS, where I'll have removed the main entry point variable 'q'. VerbotenJS started out as a project named Queue, which was designed to be an ERP system designed around the concept that everything in a business could and should be processed via a centralized queue. I chose the variable 'q' because of the name, and the fact that it was an uncommon variable name, and because $ and _ were already taken. Since the rename, I've been struggling to find a better entry point. 'v' wasn't a good option because I use 'v' for 'value' in key-value pair iterations all the time. $ and _ are still not a good option for me and I don't really like the idea of having to press two keys to access an extremely common variable - which is why I didn't opt for "V" which is a pretty rare variable name.

About a month ago I realized since this library is touting the feasibility and convenience of hundreds of object prototype extensions, it seems only natural to bind everything to the Object.prototype or any of its subclasses. The benefit was that not only do I no longer need a main entry point, but that VerbotenJS would be accessible via the $ and the _ symbols as well as anything under the sun. Then I realized it would mean that every function was globally accessible, yet with 'this' referencing either global or window, the prototype functions would likely not opertate as expected. For some functions like 'ea' that would be weird:

ea(function(v) {
    //basically iterating over keys and values in window object

However, with other functions it worked perfectly:

closure(); //returns the current closure function reference - formerly me()

And then I realized that not only were object prorotype functions good, but that global variables, when truly global, are also good. Why should I prefix the namespace of a variable when I plan to use it globally? There are some dated concerns wrt other languages. There are some practical concerns wrt poorly written code that requires global state. But from the context of contained functions that will be called from everywhere in the framework, making them global and reducing their name length is good. alert is good. setTimeout is good. Date, document and eval are all easily understood and maintained global variables.

And then I started to ponder, "Why should the global namespace be a responsiblity of individual programmers and not of frameworks and languages?" Most JavaScript programmers will tell you not to pollute the global namespace especially if you are writting a library for others to use. The main reason is that you will likely create a conflict and require the consumer of your library to alter their own code. That if you keep your entrypoints limited to one variable, you run far less of a risk of collision (Although that's a joke because there are quite a few libraries that bind themselves to the $.)

In reality we should be managing the global namespace amongst the libraries, not of the individual. Although this goes against my libertarian nature, it's far more predictable for a very small subset of libraries to create public variables versus the very large pool of individual developers. And those people aren't writing global variables these days anyway, so if libraries started picking up the practice, the likelihood of conflict is pretty small. So in keeping true to the name, VerbotenJS now pollutes the global namespace with about 100 different functions. Useful ones too, like def, nil, classof etc. Stuff you'll use over and over, and stuff that would likely not represent a different function in other libraries. And even if they did, you could pick the better function and share it between the two libraries for compatibility. But leaving the global namespace up to the developer has failed in the past. Perhaps with an ICANN-esque approach to the namespace amongst library developers, we can avoid potential conflicts all while giving the usefullnes of global functions to developers.

On a side note this is just crazy - I compared jQuery with VerbotenJS with a code analysis tool (cloc.exe) and discovered some really eerie similarities:

Q:\usr\dev>cloc jquery
       1 text file.
       1 unique file.
       0 files ignored. v 1.55  T=0.5 s (2.0 files/s, 18880.0 lines/s)
Language                     files          blank        comment           code
Javascript                       1           1492           1430           6518

Q:\usr\dev>cloc verbotenjs
      38 text files.
      38 unique files.
      64 files ignored. v 1.55  T=0.5 s (70.0 files/s, 20404.0 lines/s)
Language                     files          blank        comment           code
Javascript                      35           1496           2073           6633
SUM:                            35           1496           2073           6633

My library doesn't yet have the dom libraries ported over from Queue just yet, so it's still about a thousand lines shy of where it will end up, but with such a close blank line to code ratio I wonder if there's a consistent ratio between the two in other open source projects. And it's nice to know I'm commenting my code as effectively as I'd hoped. It's also crazy to think that I've written a JavaScript library that is larger than jQuery on my own (granted some modules and functions were borrowed from open source libraries, but when all is said and done VerbotenJS will be a pretty large scale project. Just some random observations... carry on.


Got my new iPhone the other day, and I thought I'd do a post mortem on the features to balance out the complaints of the internet masses with a more reasonable perspective than MapGate evangelists.

1. LTE is awesome compared to 3G

I really don't notice a difference between it and my wifi, I'm not saying they're the same speed, but it's just not that significant of a difference to think "WTF is going on with this connection? oh yeah, no wifi."

UPDATE: Holy Shit! Ok, I had no idea Doc Brown took me into the future, because today I just discovered that my LTE connection can burst up to 40Mbps down and 20Mbps up, so whereas I thought my wifi connection was slightly faster, turns out my cellphone connects at 3x the download the 10x the upload speed, plus I can take it with me anywhere I go (unlike wifi.) Thankfully I kept my grandfathered unlimited data plan with AT&T and now I have a metric ton of bandwidth at my disposal. I hope I don't run into my future self.

2. I really don't get the craze over a larger screen

I think the same form factor as the previous phone would have been perfect. It would have been even lighter and last even longer. Maybe the form factor worked better with the longer screen from an internal hardware perspective, but as a result I have to alter two habits, firstly I have hold my phone more loosely in order to use it with only one hand... and I have pretty big hands. With my 4 I can give it a decent grip and still reach the top and bottom with my thumb. With my 5, I have to relax my grip, and sort of teter the phone on my pinky or awkwardly slide the phone up and down with my fingers, in order to have the same range of motion. This makes me reconsider my no-case policy and is simply a less reassuring hold regardless. To be fair, I have perfect vision and prefer using font size 11 on my applications to view more content on the regular size screen. I'm sure for those that use 14+ pixel fonts love the greater reading length. But even getting the device out of my jean pockets has become a slightly bigger chore, and no I don't wear skinny jeans. On the plus side, I do get even more realestate, and the brightness and clarity of this new screen almost hurts my eyes (awesome!)

3. Poor usability decisions

Some of the software UI changes as a result of this extended screen are really annoying. For instance it's muscle memory at this point for me to open a new browser window by moving my right hand thumb to the bottom right corner of Safari. I think this is probably the case for most people when using landscape mode. Now a new button exists which hides the navigation bar and header from view to give a larger fullscreen experience. That's a nice feature and all, but it should have been placed before the tabbed window icon so that a user would not have to re-learn the more commonly used icon previously in that position. By comparison to bookmarks, which should have a far less habitual reach to them, the alternative would have resulted in me not having to click the screen three times just to get a new browser tab or switch to another existing one. But Apple doesn't really care about radically screwing with people's habits, ala OSX Lion.

The share popup screen, when in landscape mode (aka, has the most realestate available to the share screen as Apple chose to lay it out) has two pages, forcing you to scroll to see all of the options. This is insane because in portrait mode you get to see them all, and the menu doesn't even use the full vertical height of the screen. Basically they put way too much padding around the horizontal view, and that extra padding was apparently not necessary in vertical view so don't give me the it's by design-guidelines bs. But Apple seriously needs to just allow for landcape use in every application and setting screen, especially the desktop! It's so frustrating to leave a super majority of my applications which support landscape view, only to have to turn my phone just to access another application. I really expected the desktop to be fixed this release, and would really like to see settings and other various apps like music and phone add landscape support going forward.

4. Maps fucking rules!

Anyone complaining about them is ignoring the clean new interface, rendering speed, awe-inspiring interaction with 3D flyovers, integrated compass support, real-time driving ques for directions, better suggestion points for landmarks and services, and an accuracy that is completely usable at this point and guaranteed to improve.

5. New software features out the ass

Do not disturb for incoming calls at night, proximal notifications, easier privacy management, keyboard shortcuts (customized dictionary entries, which means my wife's name is no longer corrected to "Eli" and acronyms can auto-expand, meaning I can blog about computing terminology more efficiently when js expands to JavaScript.), camera stitching, and probably the best feature is the new auto-responder.

With auto-responses, when a person calls you and you can't talk or need to reply with a generic canned response, you simply swipe up on the phone icon from the lock screen - the same way you would access the camera from a lock screen. You're presented with an option to either reply with a text message where it will show you some generic options that you can customize in settings, and the option to remind you later to call this person back. The Reply with Message option is great for those who hate talking on the phone and would like to segway the conversation to text message. Simply click the "What's up?" option and the user will likely reply with their original intent via text. A far less interrupting process that doesn't leave the person out to dry.

Overall the basic application chrome is cleaner and more consistent and the share/forward screen has been updated with some new options like social network integration and printing so despite the pagination fail, it's still better than before.

6. Lastly, there's the new connector - lightning

Reversible - awesome. Tiny - kinda sucks to find the hole in the dark (twss) and I feel like I'm scratching the surface in my attempts. I'm sure habbit will solve that problem but until then I'm paranoide. Life with only one charger/data cable instead of the 8 my wife and I have collected over the years is a big pain, enough for me to order two more cables already and feel put out until they get here (first world problems I know.) But what I hate most about the connector is it's razor sharp edges of the housing around the usb end of the cable. Combined with a really tight usb connector just inserting the cable into the power supply or laptop hurts my fingers. Not "Oh my glob! I can't take it!" hurts, but "Wow inserting a cable should not hurt like that" hurts. A really poor design decision, yet again, from Apple.

In the end, I wish I had waited until getting my new iPhone instead of upgrading to ios6 on my 4G. I think the experience of the phone was a little washed out because I had already discovered so much with the software two weeks prior. And since the larger screen is pretty much a wash for me, the only really cool experience I had with my new phone was to finally see what 3D maps was like and to play with Siri long enough to be impressed by her speech recognition capabilities, but to know full well that I'll rarely if ever use her. Overall, I'm very pleased to remain on the iPhone platform, and look forward to using the new Chrome remote debugger and discover other nuanced features over the next few weeks. And although I cannot send someone a playlist or photo album by touching phones it looks like that app I mentioned already exists - though I have absolutely no need for that app so I won't be buying it.


So the last week of my work hiatus wasn't as productive as I had expected due to a pretty severe chest cold. However the fact that neither my wife or my daughter caught the virus is so incredibly fortunate I can deal with the fact that my todo list wasn't finished before I resumed work at Springbox. And my last day of "vacation" was spent fixing a broken kitchen faucet and watching the Cowboys lose spectacularly to the Giants. Now all I have to do is figure out how to get up at 8am instead of 2pm as I've pretty much been working a night shift for the last four weeks. And it's definitely going to suck to not spend the entire day with my daughter - being there to catch all of the new milestones has been wonderful.

WordPress plugin support will still be on hold until I get caught up with work. I haven't even checked my inbox so I don't even know how many emails I'll need to get through. And I'm pretty sure there's a new project waiting for me, with perhaps an already-in-progress schedule, but that's agency life.

On the good news front, I'm feeling much better, Elli and I have taken Evelyn out to dinner for two problem-free days in a row, and despite the three trips to Home Depot, we now have a working kitchen faucet and some clean baby bottles to boot. We also found a great new restaurant - Niks to add to our fairly limited dining options that are close to home - I highly recommend it.

ScrewPress CMS, my daughter's website, and my cluster f*ck'd garage are still on my todo list but those will be relegated to weekends from now on.


The soon to launch version of ScrewPress is radically cleaned up and extended. I'm hopefully at a point now where it can stablize and I can continue to create content. In the process of creating I discovered the system just wasn't capable of doing the things I wanted to do. With the addition of two more core plugins and after some heavy modification to the data backend I'm in a much better position to finish the site. The dam component has also been improved upon and I've devised a pretty nice algorithm to improve the overall accuracy of the search plugin... now I just need to implement it. I've spent most of my free time, as little as there is these days, making these changes and after one more round of QA I'll push it live. I'll also publish a package for download on

In baby news Evelyn is doing really well. Her weight is up and her umbilical cord fell off today. Last night she slept for several 3 hour blocks and we're hoping for a repeat tonight. I've let the house slip a little as I've been rushing to finish up Evelyn's website. But overall Elli and I are getting some better sleep. And we've confirmed Evelyn will take to a bottle, so pretty soon Elli can get a full night of sleep. I'm still thinking about writing some software to track her schedules but I really don't expect to have the time to take on such a venture before it's really not much of an issue anymore.


Just upgraded this site to the latest version of ScrewPress. The main features added are:

  1. Added the ability to browse all matching images from the search page.
  2. Search results are now grouped by page when multiple matches are found inside a single page.
  3. I've added some automation upgrades so publishing updates in the future won't require restarting the server.
  4. Over 600 images were added to the digital asset management server - including many of Evelyn
  5. Performance has been significantly improved .

We're still doing well - and we're actually getting a good routine going. This weekend some family will be visiting to see Evelyn for the first time. And I might end up writing some software to keep track of Evelyn's poop and feeding schedule because apparently the concept of web-based software has eluded those who have written the existing apps for tracking this stuff. I found one company that offered a web-based solution but they closed up shop. I'll keep doing research before taking on another development project, but really people I shouldn't have to manually sync two iphones to share the same information between two people, that's why the web is such a powerful platform, and we really need to start embracing that concept... a little earlier than 12 years after the rise in popularity of the internet.


So much has happened in the last 3 days it's hard to know where to begin. We named her Evelyn Aurora Pope, bought the domain and headed home from the hospital with a clean bill of health for her as well as Elli on Wednesday. Our hospital stay was brief yet full of experiences. Evelyn pooped non-stop, she peed only when we had her diaper off mid-change, she burps and farts like a champion, and she fed like a competitive eater which resulted in her actually gaining weight on her first day of life - an accomplishment considering how much weight babies lose when they poop out the meconium. She's wailed and cooed, she's slept and played, she even had hiccups for the first time today. (Apparently sleep delerium makes you speak in rhyme.)

The only issue we've had is getting proper latches. At this point Elli is having a difficult time with painful nursing due, most likely, to a partially complete latch. Evelyn is filling up but her feedings are a little on the longer side, and the pain is getting pretty bad. It could very well just be the pain of first time nursing, but the last minute tutorial we got at the hospital resulted in the nurse getting a really comfortable latch. Elli was able to mostly reproduce it during that lesson, but since it has been painful. We'll find out at tomorrow's pediatric appointment.

She's still cluster feeding at night, so Elli takes it easy during the day while I take care of just about everything. Then she takes over at night and manages the feedings while I sleep. I slept in the room with her and aided her as best as I could. A poop slipped out of Evelyn's diaper and ended up leaking everywhere so I was there to get new clothes and change her. I was also, until today, the better burper so I had a bit part in the feedings. But without boobs I'm not really much use during the night. But tonight was a blessing - Elli went to bed around 10pm after feeding Evelyn. Evelyn then slept for 4 hours! I held her in my arms and watched cartoons and the muppet movie. Besides a couple squirms here and there she was Sleeping Beauty (hence the middle name.) I even managed to change a dirty diaper without waking her, an accomplishment I thought would take weeks.

So it's 2:30 and I've passed the torch off to a wide and awake Elli - who was also in disbelief about the evening. I also managed to load up a good number of the photos to this site - so if you search for Evelyn in the search bar above you can see some of them. There's still plenty more photos to come. I have pagination for photos on my development todo list, but for now you're only able to load the top 35 pictures. And search is pretty slow because I haven't upgraded to the latest version of ScrewPress.

It's late and I need to go to bed so I can be ready for tomorrow. And this weekend Evelyn gets to meet her Aunts Lori and Audrey, and her Grandmother Mary for the first time. If I haven't contacted you yet, it's because I'm still getting the swing of things. And thank you all for your kind words and gratuitous offers, it's inspiring how much our society comes together during times like this.


She's here! We haven't picked a name yet, but I already eliminated 17 of the 32 names when checking for .com availability so we're almost there ;) She was 6lbs 8oz, and was born at 3:53pm. Labor technically started at around 5:30am but we didn't get to the hospital until 9:45 after showering, Elli did her hair and makeup, we spent some time with the cats, stopped for breakfast at McDonalds (yea, we have a weakness for McGriddles - ok I have a weakness) and finally made our way into the hospital. We checked in with the nurses and shortly after our name was called. At which point Elli was already 5cm dialated, and we moved on up to the labor room. A mere 4 hours later and we were delivering, and that only took about an hour. One moment there were four people in the room, Elli and myself included, and in the next moment there were 15 people and we had a baby. Even Elli thought her first and only round of pushing was just put on hold to take a breather when to her surprise it was done. Incredible. Now there was about a 1.5 - 2 hour period where she was waiting on the epidural in excruciating pain, but that was the only bad part of the day.

Our apologies go out to the UT nursing interns who learned absolutely nothing from the experience other then essentially a very skewed perspective on the realities of birthing a child. I don't think text books are as straight forward as our experience.

I had to run back home to get some outfits and feed the cats. And I unfortunately left my camera at the hospital otherwise there would be some pictures to post here. But I can say we have a couple hundred at this point - and in one she's giving a hook'em horns while breast feeding - that's my girl! I'll be sure to post many tomorrow. And thanks to everyone for your kind regards and best wishes. I'm headed back to the hospital to spend some time with my daughter - whatever her name is :D


According to the last doctor visit, our daughter is right on schedule to be born on October 2nd. So much for the 75% chance of an early delivery. But the extra time has given us the opportunity to finish up some last minute tasks like installing a car seat! I also managed to file away a metric ton of paperwork that I had stashed away in a filing cabinet - sound redundant??? By stashed I mean, a gaint pile of paperwork dropped into a drawer over the last three years. By filed away, I mean sorted, put into an accordion binder/scanned/shredded. I'm not normally that messy, but I definitely have a tipping point of when I allow something to spiral out of control.

I published a responsive web design utility to aid development and testing of RWD sites but it's pretty immature at the moment so nothing to write home about. Check it out if you like, but don't expect much support from me over the next couple of months:

Otherwise, not much else is new. I have a few tweaks to make to this site that I hope to have completed this weekend, and I'll be publishing notes on my digital asset managment system which is officially complete. I'll probably push the scripts to github or bitbucket, assuming they don't devulge any sensitive information (which I don't think they do.)

Sunday night is going to be a good night - Animation Domination is back, including Bob's Burgers (I plan to mold my daughter into Louise if I can and Dexter is finally back! Here's hoping that baby comes either before or after 6-10pm on Sunday ;)


And we're off to the hospital... and we're back from the hospital... false labor :(


Hooray, I've launched the latest version of nodepress. Site search and DAM search are the key features for this release. It basically means I can host pictures of my daughter when she's born. I also added some tracking metrics to see if anyone actually reads what I type or if this is still just some dark crufty corner of the internet. The last minor announcement is that my wordpress plugins have reached 15k downloads in total. A pale comparison to the more popular plugins but given their target audience, the total amount of time investement on my part, and the very little publicizing I've done to promote them, I'm pretty impressed that it hit that number already.

I discovered some incompatibility issues between my production server and my development server. For some reason production doesn't want to use windows newlines or path separators, which caused a bug when parsing the results of ack. I need to migrate away from the command line version anyway, but a temporary fix is in place until then. I also discovered that searching the filesystem on my somewhat old (~2 years) desktop server is sloooow when compared with my new hp envy dev laptop. So on the todo list for version 1.1 is updating to node fs searches, and result caching. Until then expect slow results from search.

Elli and I are also working from home full-time now while we wait for labor. I'm officially done with any side development projects until we can get into a routine around here. I might update nodepress if I need to fix a bug related to posting pictures of our daughter online. In lieu of coding, I'm hoping to get a couple of programming articles written now that I have a functioning cms. I have a followup to the presentation I gave at a nodejs meetup that I hope will clarify some of the muddled points I made in my speech. But as with everything these days only time will tell what I have time for.


It's hard to believe in 15 or so days our yet to be named daughter will be born. Even harder to believe is that we're pretty ready for her arrival. I just finished painting and rearranging my office into the guest bedroom. Elli's Dad and step Mother visited us this weekend for a belated Father's Birthday / Help out with some painting trip. Baby's closet is now sparkling white and the nightstand is restored to match. I doubt the media room will be ready but honestly being virtually done with the nursery was an unpredicted surprise.

In addition to knocking shit out at home, I also finished the remaining development tasks I had in mind for v1.0 of NodeWiki. I've integrated our DAM into the platform so I can post groups of images, and let visitors search through the archives. But I didn't finish it until just now so actually updating production will have to wait until tomorrow.

Really the only tasks that need to be completed before she arrives is installing the car seat and picking a name. I planned on doing the car seat today but the weather was terrible. There are of course tasks we'd prefer to have finished before the arrival, but those are mostly nesting details. Perhaps mental preparation should be on there as well.


Uhg, I'm so close to finishing the DAM component of my nodewiki software that it's killing me. Each feature I implement exposes one or two more than I need before I'd consider it beta ready. Even though I should be finished by the end of the week, I feel like it's a race against the birth of our daughter which is closing in fast - with no help from our doctor who thinks she's coming early. At this point I can embed a specific list of images into content via a shortcode, and users can search the DAM via the standard site search. I've got a bare-bones lightbox plugin working too. I'm hoping to have the above and a metrics plugin finished so I can launch the entire platform on From there it will just be a simple matter of feature iteration and platform polishing before it becomes the framework I originally envisioned, 5 or 6 years maybe?? :D But really it's the platform I'll use to document my life on which is kind of in shambles really - the site that is, I'm doin' alright these days.


If you're experience technical problems with images on this site, that's because Godaddy didn't quite explain what the ramifications were for adding domain forwarding. As a result of trying to fix a somewhat embarrassing issue of not getting forwarded to GoDaddy actually changed my A record to point to their host so they could implement a .htaccess rewrite from their server. So now my points to their server, and that address doesn't know that my files are hosted on another ip. Yeah, I know I could have solved this with a linux box and my own .htaccess file, unfortunately the server is from 2005 and has about 30gb of archives on it. So I haven't had a huge incentive to migrate. I should still be able to fix this with a web.config file that implements an IIS 301 response header... assuming GoDaddy provides such control. I've started the undo process, but it will be a while before I can confirm the proper settings since making changes via the UI will lock you out of certain sections until the changes are fully implmented - I'm assuming by a live technician who has to make the change and update a status ticket.


I added a few more sites to my portfolio.


What a week. Between work, this site, my nodewiki project, finishing the laundry room renovations, almost finishing the nursery, making great headway on the new guest room, my old office and the new media room, I'm so glad it's Friday.

I think I've finally pinned down the problem with 301 redirects on my root relative url plugin. This was a beast because 1. it only occurs on non-IIS hosts, 2. even then it takes a special circumstance to reproduce it, and 3. because it's caused by a bug deep in the WordPres core that has existing for 4 years: Ticket 21824 (see the related ticket posted to see it's been around for 4 years.) I unfortunately didn't have the time to write a patch, but I'm happy to have been able to work around the issue. The http/https infinite loop might still be an issue, and if canonical.php is used to redirect those (I don't think it is) then I have a minor tweak to make to my workaround.

Our doctor says the baby is doing great and might even come about a week early, based on some career long intuition I guess. Elli is doing amazingly well, sometimes I almost forget she's 8 months pregnant. Still no name for baby yet, but I'm going to check domain name availability in the near future :D Which I'll use to prevent turning this development centric site into baby news central.

NodeWiki is coming along too - I just finished integrating my DAM platform, I have Image Magick doing its magic to create thumbnails and the plugin architecture now allows for embedding routes into the middleware for expressjs. I still need to update ExpressJS but since it's not compatible with VerbotenJS I'll have to fix their bugs before I can use what is probably a lot of new features at this point. But with media integration almost complete, I'll be ready to work on social integration and community feedback via comments, voting, etc. Then I'll start resurrecting some old religious topics such as tabs v spaces, absolute v relative urls, and windows v mac with some in-depth blog posts.


I finally launched version 1.5 of my Preserved Markup Plugin. Along with it was an update to the support page: Wordpress Support Page on this site. Assuming this version is completely stable, which it should be because the fix for script blocks was pretty trivial, it will be placed on hold while I focus on the remaining tasks of preparing for the birth of my daughter. Support will also pretty much disappear for a few weeks while I'm on paternity leave. But that's still a few more weeks away so any issues that do come up with 1.5 will be easily resolved, at the very least by reverting to 1.4 which I'll host here.

And in other news U-Verse picked up The Longhorn Network, so I get to watch the UT game tonight at 7pm! Thanks AT&T, you probably don't hear that a lot.

Oh, and I've almost finished a plugin that will integrate a personal DAM (Digital Asset Managment) system that I wrote a while back. Basically it means I can host about 20 Gigabytes of photos and over 300GB of movies via my node.js CMS. I'm really excited with how this platform is turning out. The codebase is somewhere around 500 - 1000 lines of code and yet it's so flexible and powerful. Even better will be the fact that cron jobs in asynchronous JS land are a function call away - real cron jobs, not fake WP-style cron jobs :D Anyway, expect pictures to start showing up on this site soon.


Hooray, I have a new site running for I was fortunate to have a night-off from household chores because my wife hosted her monthly book club meeting. The result was that I had the time to develop the remaining features I needed to launch the site. I'm actually hosting a couple sites on one installation:

So ignoring the ISE's I'm finally able to start developing content for each of these sites.


I'm so close to finishing the base functionality for NodeWiki that it's killing me to not just spend a day to wrap it up. There are a lot of features on the roadmap that will need to take their time to flush out, but from a general use CMS/Wiki it's working out better than I imagined. Once I'm done with 1.0 I'll publish verboten.js to npm and release an official version on another domain - I'm still deciding on a final name, so I lack the domain just yet.

Elli is doing well and our daughter is still nameless. Work is on the up and up, and a work project that I've been hammering on for the last two months is finally coming together thanks to the much needed support from my coworker John French. I've still got a huge list of personal todo's to wrap up before our daughter arrives, but I think we might just make it.

Oh and I have one more tray of invisalign trays to get through hooray!! (before I most likely have to do a second run to re-correct some crowding in my bottom teeth. Boo!!)


So I just finished a presentation at the Node.js and Austin JavaScript meetups and despite not knowing what to expect it was still beyond my expectations. I covered both a controversial and somewhat technical topic of Object.prototype extensions. For a former speech and debate nerd, I had a laundry list of critiques about my presentation, but the general message was conveyed and the Q&A was really engaging.

If you arrived here from, sorry about the temporary redirect. That's a really low budget static godaddy server and it was just easier to distribute the information about verboten.js here. It's a temporary fix while I complete work on this nodewiki cms. And I already gave out the marcuspope url so voila here you are.

There are some other ramblings on this site, mostly there from testing out the platform but they're more stream of conciousness than recommended reads. My resume is here too, but I'm not really on the market at the moment.

As promised you can checkout the Verboten.js project over at bitbucket I haven't pushed any changesets in a while but I'll get on that this week. It's by no means production ready so expect radically breaking changes.

Lastly, our daughter is expected to arrive sometime around October 2nd. As a result my life is really busy in preparation for that and will be extremely busy after she arrives. I don't have any expectations for collaboration on verboten.js but if you are interested or have any questions please send an email to - any address will reach me. My other open source projects can be viewed on the Software page.

Thanks again for the fun opportunity and to Lalit, Jonathan and Evernote for hosting the event.