MarcusPope.com


What's New

6/30/2013

I think I'm finally allowed to announce that Elli and I are having our second child, a baby boy circa 12 weeks old. Although we were not planning on having a second baby so soon, we can now plan for our retirement from child rearing sometime around 2033 (give or take a few years depending on angst and or homesickness.) Sorry little dude, we really didn't mean for you to have a birthday so close to Christmas, that really does suck.

It's an interesting juxtaposition with the discovery, in light of horrible legislation attempting passage in Texas, that many of our friend's opinions on abortion are profoundly bewildering to us. It bothers me enough to question my apathy towards religion. And it really bothers me that people whom I consider brilliant, rational and compassionate in almost every regard, can be so demeaning and heartless towards women who are forced (either mentally, physically, or pragmatically) to abort a pregnancy. There are an infinite number of reasons that a woman should need to abort a fetus. And allowing her to do so, at any point before the fetus has developed the biological characteristics that define life, including the ability to sustain said life, is and should be her right. Anyone can have an opinion on what they would do in this situation, but no one should have the authority to tell someone else what they must do in that situation. Between that and voter ID's Texas, you disappoint me.

6/25/2013

Well, you may not have noticed, but this site is now running on a new version of ScrewPress and VerbotenJS. I spent about 15 minutes giving some various elements a little CSS3 lovin, but nothing special or representative of my typical work. I won't be investing much into the front end of this site until I pin down more features on the backend.

Life is speeding by as our Fall deadline for MyCollegeScout looms ever closer. We're about to launch a new version of the site and I'll be posting a new blog post about Symfony2 Forms: How not to bleed out your eyeballs. I have a dozen support requests on various projects that I would love to wrap up as well but that's the reality of open source - it doesn't always get the love you'd expect.

I'm also attempting to construct a list of best practices for one hour sprints. Although the overhead of a standup, sprint planning, dev, regression, and post-mortem for every 45 minutes of coding seems like wasteful overhead, sometimes it's all you have - like when you're a new Dad and work full time, yet still want to actively code for personal use so you do it during your lunch break. So far it's working out ok, but it really sucks having to split up a reasonable single task into 5 parts because you know the check will arrive before you can finish.

Driving tip #128 - You don't need 18 car lengths between you and the vehicle in front of you at any speed, especially during stop and go traffic - that's 15 cars you are leaving backed up in the previous intersection. The more units you can push through the system from start to finish the less traffic you will have during peak hours. So pay attention, follow at a reasonably close distance and try to keep everything moving at the speed limit if possible.

3/13/2013

Tom Briles is joining MCS, and I'm ecstatic. I have also made a decent sized dent into the MCS Showcase, and I'm about to clean up the Grad Plan. The features on the roadmap for this project are pretty lofty, but the core value is there. Keeping everyone headed in the same direction has proven to be a little daunting, but everyone in the group is intelligent and rational. So even though they may not be technical and familiar, when presented with a problem and various options, the right decisions are being made.

Evelyn held her own bottle for about 30 seconds tonight, and she sat up on her own for about 5 minutes. Between eating 9 oz before bed and going to sleep without being asleep before I put her down we're totally on track to sanity. This will probably jinx it, but it's great news considering the month long sickness melodrama.

3/02/2013

An almost perfect day. Evelyn, though sick, is doing quite well. We almost had a pneumonia scare today but that did not pan out. I got to sleep in an extra hour than normal, and Elli and I took a 1.5 hour nap in the afternoon. The house is almost spotless because we thought Elli's parents were dropping by, but we at least had a nice dinner with them. Evelyn did an amazing job at Steiner Ranch Steakhouse. Granted, she lost her shit just before dinner and was whisked away by Mary to the lobby. But she was pushing an hour and a half dinner time, so completely understandable. We're passing on my best friend's birthday party tomorrow because he has two kids one of whom had a really bad spout with RSV already, so no need to push that button. He's turning 34 this year, and is probably the oldest (duration) friend I've ever had. I doubt he reads this, but Thomas happy birthday, you've been there and put up with some of the craziest times in my life, and only judge me for about half of it!

On the MyCollegeScout front I have brout on another developer this week, Alex Yermakov. He's already hit the ground running setting up his development environment on a new laptop. And although he's not starting full time until the 18th, he's been eager to give the limited time he has until then to get a head start. Now I just need to untangle some FOSUserBundle nonsense with how validation inheritence works doesn't work. But translations are now working properly and limits will be working once I change the group assignments to non default options throughout the various files that specify them. After that we launch... yeah postponed again, but we keep finding critical bugs and my time is not fully dedicated to coding.

2/28/2013

Sometimes life is simply bipolar. I'm not mind you, I have my emotional needs as any other human, but bipolar issues are not my bag. But life, sometimes she has a big case of the bipolar. One day you are hiring a great developer, and the next day you are letting him go. One day you feel like you're finally over a cold, and the next day you discover it's RSV and your 4mo is going to have sleeping issues, perhaps worse, for weeks instead of a a day or two more at most. One day you hire another developer who is very promising and ready to jump in, and you simply flinch at what in the world tomorrow might bring. Who knows, but thankfully I have some traction on building a development team. And I'm making headway on work and the household situations so it's just a matter of time and persaverence.

32 is coming around the corner. I think I'm fairly well prepared to make it the year I had hoped for. Even though the direction took a prominent detour. I published the start of a new blog post about traffic mostly because I'm dealing with more of it than ever and the propensity for people on hwy 360 to drive with bad habits is almost twice that of other roads in Austin, and it results in some serious backups. If you hate Austin traffic as much as I do, I welcome your observations of bad driving problems you see in your routine.

I have also had the misfortune of experiencing Windows8 in any real capacity. But thankfully there is the new Outlook.com to balance my perceptions of Microsoft. Despite the shortcomings of Windows8, their webmail app is top notch. They really implemented a robust feature set (that took a while to discover mind you) and wrapped in an aesthetic user interface. I'll be moving all of my accounts to this application soon. The only nagging problem I have with the product is that it's not hosted on outlook.com, why call it outlook.com if you simply redirect to live.com???!!!

And I remembered that I have a pop3 processing library sitting around somewhere that would be a perfect candidate for open sourcing. It was a mad dash implementation so I can vouch for the quality, but then again, it's pop3, not the best standard in the world, shouldn't deserve more than mediocre if you ask me. I'll try to find that tomorrow and publish it on github.

Sadly, I'm off to bed. It's been too long of a day with an annoying sinus cold and a long week of stressful events. Hopefully the weekend will be primed for recuperation with a productive and smooth Friday. I might even nab me some pancakes in the morning, because I'm wild and crazy like that. And with that, goodnight!

2/27/2013

Happy Birthday Mom! I love you.

2/25/2013

There's been so much going on in my life lately including a cist that developed in my right wrist so I'm going to keep this shorter than desired. There are topics that I've been dying to blog about related to racism in html5shiv, sexism in tech conferences, the purpose of temporary variables, and how not to drive like an asshole in Texas. I was also going to cover Angus Croll's post on oxford commas, but alas I'll forego the internet troll bait tonight.

I'm still looking for some senior developers to bring on at Argand Technologies. If you know anyone please send them my way.

Family is doing better - I'm over my cold, Elli is too. Evelyn might still have the remnants of one. Otherwise life is starting to resume back to normal, hopefully for a little longer this time. Evelyn started sucking her thumb yesterday - and she mirrored me when I showed her various holds while thumb sucking, like wrapping a finger over the nose. She mimicked me 4 times in a row so I'm calling it more than coincidence. She's close to saying momma on prompt, she wails it when she's crying in my arms and calling out for Elli, but it's still partly just a cry so I'm not counting it yet. Her dexterity is amazing, extremely controlled, and it came out of nowhere. Just magically one day she could trace the outline of my hand with her fingers ever so lightly grazing the skin.. it's incredible watching brain development in what feels like hyper speed. Her Cry Smile is heart crushingly hilarious! It comes and goes so quickly that we've never been able to capture it with a camera - one day!

That's all from me - mostly I just had to reboot my server. Nothing like a power outage to prompt updating service packs and adding new content!

Oh and recruiters... listen up! My resume is there as a favor to you, not an invitation to call me when you see a single matching keyword in the technical skills lists. Telling me that you think I'd be an amazing fit for your "position in New York using tomcat" means you need to do more research into the software market or perhaps consider a career switch. If you're going to reach out to me, please do so by email, and include a full description of the position, not just a one liner hook. And just know that right now I'm not looking for anything, I'm very happy in my new challenging position. :D

2/13/2013

I swear it feels like I'm in Atlas Shrugged right now. I posted a job posting on Feb 4th for a few senior PHP developers, on Criagslist in Austin, TX Software jobs. I expected to get hundreds of emails. Of the 12 or so responders, only two or three were actually developers that met the "living in Austin" and "not a company offering services" requirements. And they all made the same general statement in their email,

I'm sure you're under a mountain of applications so hopefully mine stands out— 3 Candidates

So WTF Austin??? Where are all the senior devs at? I would have jumped on this job app if I'd seen it in the wild. Perhaps I'm the only one? But I included a salary range that is top of market, accurate and detailed technology stack info, great google-esque benefits and I'm baffled by the response. I can't believe that PHP is that toxic these days, but you tell me:

http://austin.craigslist.org/sof/3594292393.html

If you or anyone you know would like to apply, send me your resume or online portfolio to any email address at marcuspope.com - or you can ping me on twitter @marcuspope. You should also email me if you have an explanation for wtf is up with the Austin developer pool. Is everyone a fish out of water? Is there a snicker's bar floating around? Who is John Galt?

2/10/2013

Sometimes an opportunity just lands in your lap and you have to take it. I'm leaving Springbox to be the development director for Argand Technologies. I rode the agency roller coaster for a couple years and although my development experience proved invaluable to tackling a variety of projects from simple Facebook tabs to complex, high-volume, cloud-load-balanced, CSS3 lovin, HTML5 web applications that were globally deployed across 8 different languages. But that variety of project scopes had a double edge that I recently discovered... when you get to work on extremely challenging bleeding edge software, chugging out a WordPress theme or refactoring a terribly constructed ERP system that was written by a junior-staffed Indian outsourcing firm* will drive you insane!

Even though I was not the longest employed person at Springbox, after a blazingly short two years, I was the sixth most tenured employee out of a company that was around 50 employees when I started. I saw 4 ceo/presidents run the company to varying degrees of success. I watched month after month as colleagues took on new opportunities until finally we were purchased by Tom West. Under his direction combined with his extensive industry contacts I'm sure Springbox is finally on a path of improvement. He is ever the optimist, and I'm ever the realist (read: pessimist) and we both agree great things are coming in Springbox's future.

But with my new position at Argand, I'll be leading a staff of developers to produce a socially engaging site designed to promote well-rounded academic profiles for students K-12 (mostly the 9-12 group.) It will basically be a chance for me to continue using all of my advanced responsive HTML5 mashup skills, but on a product platform that is solid (read: free of technical debt.) I was able to devise an ideal benefits and perks package, I get to pick the right developers for the job, and along with the President and her executive staff, we get to define a product instead of being told what's best by a client that may or may not know what's best. It was a slightly risky career move given Evelyn is only 4 months old and Elli is busily loving being a full-time Mom, but opportunities like this don't usually fall in your lap.

The biggest hurdle facing me right now is trying to hire 4 kick ass developers. Where as a couple years ago a Criagslist ad would have dropped 150 resumes in your inbox during the first day, I've only seen a handful come in over the last two weeks. Much of my social network is happy where they're at, and frankly I was pretty happy where I was at when I passed on offer after offer over the last two years. Springbox had a similarly difficult time hiring good talent. Several senior candidates simply accepted counter offers from their existing employers, and I've already experienced that twice now.

I'm not going to let this hold us back, and I will insist on hiring slowly, waiting for the right candidate versus taking any developer with a pulse. I have two great leads from my social network, and if that's what it takes to hire these days then I'm game. But when certain job boards with virtually no listings charge $300 a job post, and when recruiting firms do nothing more than hire attractive people to keyword-match their recruitments, I'm forced to go the old, who-you-know route. I'm also tinkering with some outbound approaches - you'd be amazed how many developer's personal websites you can find with Google these days. And github/bitbucket are a treasure trove of verifiable talent. I just have to get past the uninvited nature of the beast.

If you are a senior developer or a mid-level developer with some passion, send me an email to any address at marcuspope.com and I'll be sure to follow up with you. Publicly hosted code samples and a portfolio should be a defacto standard these days, but I'll insist on them here anyway ;)

*Let it be noted that I do not think all outsourcing firms are equal and have worked with some high-caliber shops in my career, but this one in particular was truly depressing.

1/28/2013

Well that was no fun at all, battling billions of influenza viri is pretty tiresome stuff. Multiply that times three people in a single house and well let's just say those WordPress plugin fixes I promised didn't exactly come through as planned :D We're all better now, and we thank all you people who help out in every way if even just a supporting text message.

Oh, and I somehow forgot to mention that I finished writing version 1.0 of verbotenjs this year - you should check it out if you have any opinion on extending the Object.prototype in JavaScript.

1/20/2013

Uhg, just when I thought I could finally catch up on my work, and personal todo lists from Jury duty, my wife, 3mo daughter and I all have the flu. Life is about it get real.

12/20/2012

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

12/14/2012

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.

11/9/2012

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.

http://cloc.sourceforge.net 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.

http://cloc.sourceforge.net 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.

11/3/2012

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.

10/28/2012

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.

10/11/2012

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 http://www.evelynpope.com/ 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 http://www.screwpresscms.com/.

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.

10/6/2012

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.

10/4/2012

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 http://www.evelynpope.com/ 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.

10/1/2012

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

9/27/2012

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: https://github.com/MarcusPope/RWD-Simulator.

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 http://www.youtube.com/watch?v=aXOQ9LMn3mo.) and Dexter is finally back! Here's hoping that baby comes either before or after 6-10pm on Sunday ;)

9/20/2012

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

9/17/2012

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.

9/16/2012

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.

9/12/2012

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 node.kicks-ass.net. 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 http://www.marcusandelli.com/ which is kind of in shambles really - the site that is, I'm doin' alright these days.

9/11/2012

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 marcuspope.com forwarded to www.marcuspope.com GoDaddy actually changed my A record to point to their host so they could implement a .htaccess rewrite from their server. So now my cdn.marcuspope.com 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.

9/8/2012

I added a few more sites to my portfolio.

9/7/2012

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: http://core.trac.wordpress.org/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.

9/1/2012

I finally launched version 1.5 of my Preserved Markup Plugin. Along with it was an update to the support page: wordpress 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.

8/30/2012

Hooray, I have a new site running for marcuspope.com. 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.

8/29/2012

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!!)

8/17/2012

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 www.marcuspope.com, 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 - https://bitbucket.org/marcuspope/verbotenjs 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 marcuspope.com - 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.