IE11 Reader View

A couple weeks ago I wrote about a number of things in Internet Explorer 11 that I had to learn. Well, since then I've learned a couple more things. 

First off, in reader view, if you have the skip ahead featured enabled, Reader view will actually skip ahead for you and preload the pages in reader view as well. This can be a bit problematic as you may have multipage articles, but you may also have skip ahead to unrelated articles as well, which could be disorienting. But you may want both features implemented at the same time. 

Well, I tried a couple of different approaches to make this happen. 

First, I tried to hook into the event that fired when you pulled up reader view. While, IE11 has a bunch of events tied to pinning sites, I couldn't find any events that fired when launching reader view. They might be out there, so if that's the case, I'd love to hear it. 

So I tried onfocus or onblur events, which weren't firing at the right time. I was hoping that I could follow these events and then remove the rel="next" attributes so the next page fo reader view wouldn't load. I noticed even on sites like MSN that reader view actually removed the ability to swipe ahead anyhow.

Second, I looked around and found a Stack Overflow article that mentioned that <pre> tags prevented reader view, saying this was a bug. I disagree, I think this is intentional as it completely ruins the point of <pre>. Regardless, this led me to realize that if I had a <pre> tag,  I could prevent reader view from working when the reader looked ahead at the next page. Thus, I added a <pre> tag to every page. 

This doesn't break reader view if I remove the <pre> tag as the page loads using JS.

So now I have reader view for the page I'm on, but because the <pre> tag on every page I'm not on prevents reader view, I still get swipe ahead without getting look ahead reader view. 


When web dev goes political

The release of and its subsequent failure is not something that most web programmers would be very surprised about. 

This has nothing to do with 500 million lines of code, which is bull anyhow, but instead has to do with the organization of any project of the scale, and what most people would anticipate how the government runs code projects.

There are probably some groups within the government, particularly within the military, that run awesome and would put most private enterprise groups (including my own) to absolute shame. However, with, we knew that we were dealing with a new team, new objectives, in an untested user market. So that team was going to be green in their field regardless. 

Furthermore, we knew that this green team was going to have to scale up immediately. Consider a large application like Facebook. Its user base did not show up on day one. It's feature set, for all it's photo and tagging capabilities was not even close to what it was in the beginning. Facebook was something that a motivated developer could design and test with a small group, making incremental improvements as the software was used.

Not so, for - everything had to work day one. What happens if you need to udpate the system? You can't - it's just gotta work. 

This is not how most web applications are developed. This is how a lot of desktop applications are developed - basically, choosing what bugs to ship with. And this makes fixing the problem, "A website should just work" a real problem, because there is no version 2.0. This is now and now it should fucking work.

What those of us in this industry could not have known is another most common problem of green teams - a lack of testing. 

As so many books on testing will tell you, you are not down with something unless it passes a test. I would say "the home page loads" or "A new user can sign up for insurance" would be a pretty big deal of a test to pass. A beginner tester might note that sign-up is not something that would ever be one test, and that's more to the point - the failure of that intergration is obviously something that would have most likely thousands of smaller tests behind it. You wouldn't even get the chance to test that larger one if those other tests didn't pass. So yeah, obviously someone skimped somewhere.

And take note, none of this has to do with benchmarking tests or the like. But if processing applications was just hung up by performance, we could run that by hand at 3am and gain success. And fixing it would be like AOL - the government would spin up more distributions and db backups, something pretty trivial at this point in time. To my knowledge, that isn't the issue.

Most often when you're trying to trim costs, TDD and adequate QA is not done. Therefore, it would be no surprise that this is where fat was cut, but they weren't cutting fat, they were cutting meat. 

I'm not a behind-the-scenes coder who could actually verify these issues, but it doesn't take a big leap to guess and take heed of the troubles a disaster of this magnitude demonstrates. The President looks incompetent and his opponents look spot on correct in that the government is incapable of providing healthcare. 

The truth is that the last point has not even been demonstrated - the government and the Obama administration just didn't produce the software to provide healthcare, and really it's gotten to the point it really makes no difference. 





When I was a kid, I watched the video above. I love the hell out of the Magic Secrets revealed series. I love that it had that guy from the X-Files in it, I probably loved the assistants, and I definitely wanted to know who the Masked Magician was. When I saw who he was I was disappointed. Truthfully, the only magician I knew was David Copperfield, and obviously, it wasn't going to be him. 

After a side comment about David Copperfield tonight, I ended up watching a bunch of magician videos, which led me here.

I remember the masked magician's message from when I was a kid. Namely, that by revealing tricks, he was pushing magicians to even greater heights. What I missed was the message that by discussing the elements of magic, that Val (that's the guy) had actually encouraged kids to get into magic. 

It's a practical message. Obviously, not everyone is going to watch this show. And there's more to magic than just knowing how its done. Shit, for the most part I know how a plane flies. As Val mentions, you need to have showmanship like Copperfield to do this well. 

I've watched Val's reveal of the above illusion, and I can still only guess that one of the men on the other side, has a fake arm to produce David's face, or just assume it's all a stupid video trick. If it's not, I don't believe David's magic, but I'm still interested. 

There's two careers I gave my heart to: cooking and programming. 

I was very fortunate to work for an exceptionally talented chef, who taught everyone on his line that food was about skill. It was not magic. It was not about "authenticity" or "real X cuisine". I worked for a guy who made fucking fantastic northern Italian food from Colorado. 

In particular, I remember working front of the line, while he worked wheel and some folks came back to ask for the secret recipe to our boar sauce. He flatly told them, there was dick special about it. Cream, demiglace, rosemary, time. 

And that's exactly the point - you can't cook that, because you aren't good enough to handle BASIC ingredients. The secret isn't ingredients, it's time. Which you haven't got or put in. 

Now that I work as a programmer and lead teams, I dispense with any notion of genius or rock star programmer. The deeper you in get in code - from high level to assembly to virtual machine to specific circuits - you realize that everything is pretty direct. It's just a lot building up simple elements. 

Yes, there's geniuses, brilliant chefs, but if you're reading this, you're unlikely to be one of those people who can skip steps intuitively. Funny thing is - even those folks know those steps are there, but that's another discussion I won't diverge into. 

So I've revealed the secret, I've shown you the secret ingredient, but you're not any closer to wowing people with that card trick, because you gotta practice it to make it look good, let alone make a profession.

I think Val did a good thing. No one today hardly remembers him, but I'd guess that he made a few kids interested in magic who are damn good at it, because he revealed the trick, made them focus on perfecting that one tiny thing, forced them to develop the hundreds of other microskills that support it, instilled the confidence to make it look real, and created magic in their lives. 


Drupal Summit in Vancouver

There's a scene in Eurotrip, where a group of dudes heads to a nude beach expecting to see girls, only to find that the entire beach is filled with dudes, also expecting to see women.

Every summit/convention/expo I've been to for tech has this feel to it. It's as if everyone going there is looking to connect and make this break in their career with a new contact, see a new product or company. Maybe finally get that real coding job they've wanted for so long. But with everyone there with the same objective, it's hard to make any progress.

I'm not sure what I was looking for when I went to the Drupal Summit in Vancouver this last month. I wanted to present, which I I did - Stealing from the Core and Elsewhere. I hoped this presentation would be a challenge to me and involve me with perhaps with some more serious Drupal developers. 

Unfortunately, I may have put too much into my session, which lesson learned I suppose. Because I presented on application development in JavaScript, folks (some) thought I was just a Node.js geek and this system was just imitating it. Given the fact that my application was not an asyncronous server tool, even explicitly saying my server side code was handled by PHP, I found this frustrating, but perhaps I should have been a better presenter. 

But how can I actually be annoyed? Drupal is a divided community. With those who are serious backend folks and those who are serious GUI-end folks looking for the next module / theme that they feel will give them the edge or at least the final amount of control without needing to code. On the edges are folks like me who use it tangentially so don't really geek out about it. 

Given that divided ground, it makes me worry about the future of Drupal. Because its curators aren't all in the same place mentally, it's difficult to drive towards synced goals on the code and feature levels, unlike what I've seen in the Rails community. However, maybe this makes Drupal have a bright future, because it's end users (the GUI-folks) are so demanding of the coders to come out with things that work better together. 

Does the real guts of Drupal really lie in the salt of the earth conferences, or is it at the big conventions each year? I typically trust salt of the earth, actual use day to day, but perhaps that is much like the quickly stated, poorly thought out, immediately downvoted answers on Stackoverflow.

In order to see the real state of Drupal, it's not in everyone who uses it, but those who do so the best. Maybe Austin and Amersterdam might be worth it to change my mind. 



IE11 Things I Had to Learn

I've dealt with several quirks of the new version of IE in the last couple days. Here's what I've uncovered:

First, in IE11, you can setup a standard anchor tag to open up an app. This will try to load it side-by-side with IE, but typically it will navigate you to a blank window in IE11, which is not ideal experience. To launch an app directly into a side-by-side window without this problem, use a hidden iframe (0x0) and set it as your app link's target. such as "<a href='skype:5555555' target='helper'>Call us</a>"

The reason is that the app loading apparently needs an window to run its launch command in. Since the window will have no content (it's all in the app), you'll get the blank window. But if you use a hidden target in the web page, only this will get the blank window, which is hidden, leaving your webpage uneffected.

The second thing I dealt with was automatic Skpe links. The new feature in IE11 is that phone numbers (plain text) will turn into automatic Skpe links. Not a bad idea, but the browser decides to style these links for you. Without your permission or control.

I had to maintain the links' functionality, but also keep the original styling. Well, you can't just write CSS. It automatically underlines, changes the color, and removes the custom font. 

Working with this, I discovered that IE11 will attempt to match the color of the link based upon its background with a couple standard defaults. EXCEPT if you have an image background, then it will let you control the color. So you'll have to force one - either with transparent background applied or some solid color background. Unless of course, you have a background image already.

The underlining (even using !important inline) won't go away. The hack here is pretty simple - set a height on the element and overflow-y to hidden. Adjust the height until the underline goes away. It's typically 1px away from actually trimming your text. You'll have to adjust a few positioning components to realign things. 

I couldn't figure out a workaround for the font, but it will respect serif/sans-serif. 

That's it so far. The first issue is not necessarily a problem. The ability to quickly open apps especially things like Bing Maps is pretty cool and fast, but I just wish that I could've found documentation or an example someplace to get this behavior. 

The second issue however is crap. There is no point that a browser should be given the right to restyle a page. The standard for phone numbers thus far has been to create "tel" hrefs. Those are in fact ignored by the Skype linker, meaning, if you want to give users the option for your site, you have to have 2 layouts. And one of those will not let you style it. 

I know it's intended for convenience, but some numbers I may not want highlighted. In fact, that was the only information I could find on this subject - to simply eliminate it. Well, if you're in the middle ground, you have this struggle, which isn't empowering. It's now a quirk, alongside all our other fun tidbits with the legacy browsers. 


10 Print

10 Print
 is boring, code fetishist, smary, unbalanced and probably worth a read. 

Officially titled some long string of code I won't bother to repeat, the collection, part of MIT's Software Studies series, is made up of small essays surrounding a one-line program that when run on a Commodore 64 produces an infinite random maze.

Hitting on the general topics of mazes, the hardware of the 64, porting the program to other platforms, the nature/history of BASIC, randomness and traversing the maze produced, the book does a fine job of trying to hit this topic from every possible angle. Doesn't hurt that the cover is pretty freaking cool and the nods to the platform itself (64-style font for page numbers, listing chapters like BASIC line numbers, and the emblatic Blue of the 64 system) are also fun, especially, I imagine, if you were learning about those elements for the first time. 

The technical discussions, the historical tangents and the play with the program are the goods of the book. Showing the program in various 3D formats using the Processing language, porting it to the Atari and explaining path traversing in BASIC would really on point and carefully walk the line of exploring a technical subject with the aesthetic value of its output. 

The writers do a fine job of drilling down technical topics, emerging why subtle details of chip design, BASIC and business decisions have large reprecussions on computer function and expressiveness.

I insulted the book at the beginning of this post, and I should explain it. The book is aware that it's both smart and cool. While I enjoy feeling smart and cool, the subject is actually very interesting on its own and doesn't need attachments of hipness. Unfortunately, a lot of the chapters read like grad student responding to a writing prompt, pulling in complexity and reach as much as possible. While the authors never overreach, there's a lack of what makes good computer enjoyable which is genuine interest and exploration of a machine or language. 

There's already so much to say and go into, that reaching far out isn't necessary and is detrimental to the actual work ahead. A discussion on the history of mazes, regularity and randomness in art, while interesting, are essays about those matters that touch on the 10 Print program or use it as a jumping off point simply because that's what the book is about. While this makes the book far richer and posed for general audience acceptance, they clash with the books later more technical chapters and come off as "Look at all the tangents I can go off this small subject." 

I don't feel the authors failed in answering the prompt, but unfortunately this isn't about grading. The chapter on grids in art definitely turned me onto to new artists and have enriched my appreciation of organization in art, but they told me nothing new about the core subjects of the book. Essentially, they were out of scope.

But what is on about this book is spot on. 


2 Games I made in jest

Walken: The Fish with No Chance. 

During secret santa at my company last year, our UX Director was given a fish. A live fish. Do not give fish as a gift, even to small children. Shockingly it died over News Years. I made this game over the course of a couple weeks at night to commemorate this lost fish and to pay homage to the same company's Window's Store game Newton.

The Moutains of Meaninglessness

I had been reading a lot of apologetics and Russell last year. My company was building a demo for Microsoft to promote HTML5 game dev for the Windows 8 store called YetiBowl. Having a little fun with the pereception of Russell, I made this while going through some episodes of 30 Rock.

By the way, there's a bunch of bugs. But JEST!

Why I bought R.O.B.

I own lots of old vintage computer and gaming stuff. It's something I'm into. I like simple systems that are easier to wrap my head around. There's a charming simplicity to it all.

ROB - the Robotic Operating Buddy - is a piece of shit I have no interest in every getting my head around. 

ROB is an additional controller that hooked up with the original NES. He even came with system if you paid a little more. He basically only plays two games - Gyromite and Stack-Up. Which suck as well. The professional below bitches much better about the awfulness and absolute unplayable nature of these games. Specifically, because of ROB's failture to work correctly or time his motions right with the the game.

So why buy it? Because I've always wanted it. Seriously, back in the day, I really imagined that ROB actually had some of sort of personality to him and would be this super smart robot who would advance my pretty pathetic gameplay. If you watched the video above, obviously that wouldn't have been the case. Nostalgia sets in deep, I even have the The Office Nintendo Player's Guide, which lists a category of games know as the "Robot Series." Guess what - it's Gyromite and Stack-Up.

 However, I did want ROB for another reason. I like to see the faith people had in technology and the exploration it took in the past. ROB may have been quickly rushed to market to add novelty to a system that would be forever praised for its basic elements: games and square controllers. Call it desperation or Nintendo thinking kids will buy anything (guess they were right in my case), but holding ROB now, I know that, someone years ago thought that this was where games and human interaction with computers may be headed. 

Perhaps that's a little idealistic on my part, but I've been one of those people my whole life. Less so now, but I looked at games like Burncycle and I imagined the possibilities of such a medium.  

I didn't by any means think that it was the only and end of development, but it allowed me to really think about where I thought technology was going. It was a good practice. I still think of ads for games and movies that I knew nothing about and where I imagined their plots, most of the time, the actual plot (sans my idea for Jurassic Park) I enjoyed more.

When I looked at my lifeless ROB (I couldn't really afford a working one), I see the start of that process for me. I know it's nothing special, that quality, or even collecting for nostalgia's sake, but those reflective eyes remind me, not of a carefree time, but a place where I was forced to imagine the possibilities rather than be disappointed by their implementation.