Thoughts on Privacy Rights, Philosophy, and Robot Love

If total transparency of communication and meta data was handled by magically benevolent angels of justice, then it would be the best thing for society.

But when that formula is poisoned in any way, it becomes danger, fear, possibly repression, and anti benevolent to the innocently observed.

This will be an incredibly fine line to balance by government. In fact, with the lobbied interests represented today, I don’t see how this can function in a truthful manner. I don’t see how any member of national leadership could honestly disagree with this statement.

Surrendering privacy is not viable at this point in history for that very reason.

Here lies the problem of the progress to detect malicious communication. It’s engineering will take place regardless of benevolence. Ingenuity and superiority in the field of global communication is as unstoppable as the search for immortality, and it is directly intertwined. It will be pursued by evil as quickly as good.

The benevolent must interject themselves into the process, and that takes the exact, counterintuitive, measure that we are seeing our governments employ today, that is unfortunately conflicted by interests. Good intentions are corrupted by other interests of varying quality in terms of peaceful unity.

How do you deploy dogs on your oppressors without creating dogs that kill with a wide range of indiscriminance*? It’s a difficult topic.

I don’t know how to solve this problem, unless we can come up with a way to unify all the benevolent people without interests in conquest or vengeance.

How could a government become this?
How could a business become this?
How could the average human become truly benevolent?

We must, by law, and with temperance, empower the good people without subjecting them to fear of their privacy. This is what we stand for in the U.S.

Good people need to pay attention to how this evolves and provide a guiding voice on this matter. Some of the greatest minds of our time have wrestled with this topic. Isaac Asimov dealt with it in terms of programming the laws of benevolent robots in the foundation series. (spoiler: In the series you find out that robots in space have been gently watching over humans for a very long time.)

The laws of robotics, as originally stated, read.

  1. A robot may not injure a human being or, through inaction, allow a human being to come to harm.
  2. A robot must obey orders given it by human beings except where such orders would conflict with the First Law.
  3. A robot must protect its own existence as long as such protection does not conflict with the First or Second Law.
If you juxtapose the concept of a sentient robot (forgive me while I get weird and nerdy here) for government, these laws might metaphorically represent the intent of our Constitution.
Asimov later introduced the concept of the Zeroth Law which changed things a bit. Sort of like how the Homeland Security Act changed our constitutional rights.
A robot may not harm a human being, unless he finds a way to prove that ultimately the harm done would benefit humanity in general!
– Caves of Steel, Asimov 1952
The problem lies in accurately determining what benefits humanity in general in the long term.

Trevize frowned. “How do you decide what is injurious, or not injurious, to humanity as a whole?” “Precisely, sir,” said Daneel. “In theory, the Zeroth Law was the answer to our problems. In practice, we could never decide. A human being is a concrete object. Injury to a person can be estimated and judged. Humanity is an abstraction.”

— Foundation and Earth, Asimov  via Wikipedia

*yeah I know it’s not a word. Tough noogies. It is now.

Thinking in Movie Quotes – My Generation’s memes

(this blog is a work in progress)

Growing up in the grand age of the dawn of cable television, I think caused me us suffer from some kind of Gestalt effect of associating certain thoughts very rapidly with quotes from movies.

During summer vacations in the early 80’s I watched rolling schedules of available movies on HBO time and time again. Some of them maybe too many times…

There is hardly a situation is daily life that I can’t relate to The Cannonball Run or Caddyshack.

It just occurred to me, walking through our development shop, overlooking a page of annotated images on one of my younger guy’s screen,  that the current generation may be forever doomed to do the same with memes, and ONE day they too may rattle off a meme in a knee jerk brain association to someone younger than them who has no clue what they are talking about.

814V6T4

 

Now, in my “adult” days I spend much more of my entertainment time feeding my brain with interesting information. I am currently reading (or listening to rather) a book by Nick Bostrom called “Superintelligence. Paths, Dangers, Strategies.” that I was referred to by way of Elon Musk (indirectly). One of the topics discussed in the book is how group intelligence is difficult because of the challenge of networking learning between minds. In other words it would be hard to upload thoughts from one mind into another, because it’s not just a bunch of data, it’s also an understanding that the mind achieves by way of absorbing it in the first place.

The written language we use to communicate with each other might not be the same as the thoughts by which we interpret them.

I think the observation I’m alluding to above supports this, but it also infers that we all use mental queues in imagery, sound and our environment to create connections in our minds to quickly retrieve the associations that support us in our thought; conscious or unconscious.

It brings further meaning to “a picture is worth a thousand words“.

A meme is worth approximately one thousand and seven.

An entire movie is conceivably worth an order of magnitude more.

Wisdom from The Great Chain of Command

I think we all have certain little snippets that we remember our authority figures or bosses saying at various points in our career (or life if you’ve never had a job). Usually rooted in constructive criticism or good advice, and sometimes questionable advice. Many of these statements probably came from people further up the chain in their own careers. Any way you look at it, these bits of wisdom make their way down a long and complex rabbit hole to you, their recipient.

I’m about to talk to one of my staff who didn’t show up for an early code launch this morning. His excuse was, “sorry, I slept through my alarm.”, which in my mind evokes the image of a guy named Josh Jones who looked at me across the desk once and said, with a stone face and a shrug, “Get a louder alarm clock.” Will it stick on the next person like it did on me, the guy who regularly turns the lights on at my office? I don’t know, but if it does, I’ve done my job right; passing along the tradition of the obvious.

Sometimes they do stick though. I know it because I’ve lived it. Like the time I was interning at the SUNY Fredonia print department under a bear sized guy named Tom Malinoski who called me out on my reluctance to pay attention to detail (or some other related fault) by saying “Your that kinda asshole that’s too lazy to get out of the shower to piss.” That one haunted me for years, especially whenever I actually was too lazy to get out of the shower to piss!

Tom was one of my favorite teachers of all time and someone I maintained contact with from college until his death due to cancer a few years ago. Before he died, in fact; the last time we saw each other I told him about how much those words affected me.

He laughed a little and replied, “Well heck I didn’t mean your own personal shower, do whatever you want there. I meant like a gym shower. Like after football er somethin’.”

I then said, “Tom, I never played any team sports in school, partially because of the shower…”. He looked at me thoughtfully and replied, “Well, gee. Sorry if I fucked you up little buddy.” We both had a good laugh, but I could see that for a moment he realized how a simple short statement could carry on with somebody. He was the kind of dude who appreciated that stuff.

I’m not sure how much thought most people put into the effect a statement can have on a person, but I fully expect my children to reiterate a few of them to me one day at the dinner table, and if I’m lucky, one or two of those great pieces of wisdom might outlive a generation or two.

And maybe the guy who missed the launch this morning will read this and get a louder alarm clock.

Simple node.js server for NITROUS.IO – I AM server

static file server

This is not anything glorious, but it will save somebody out there a couple of valuable hours of fiddling I hope. (note to future self)

https://github.com/TyrusChristiana/IAM/

2014-01-30_2230

If you haven’t tried NITROUS.io it’s pretty nice https://www.nitrous.io/join/OrOOoElkTNg

 

LCP List Category Posts WP Plugin customfield_orderby hack for integer order

Note I sent to Fernando: Posted here for helpful reference until it becomes an option in the plugin.

Circumstances that apply – You are using custom fields to represent ordering numbers of items on a page that lists category posts.
The shortcode looks like this: [catlist id=67 thumbnail=yes thumbnail_size=thumb numberposts=8 template=product customfield_orderby=my_page_order order=asc]

The problem: Meta Values stored in the WP database are not integers. So if you were writing a custom query you could do something like ‘meta_value’ + 0 or try and assign it as an int, but in using LCP that does not work.

I hacked this today to solve for ordering by integers.

I was thinking you could add a param to shortcode_atts under
'customfield_orderby' =>'',
'customfield_orderby_isnumber' =>'',

Then instead of this hack in Catlist.php
/*
* Custom fields 'customfield_name' & 'customfield_value'
* should both be defined
*/
if( $this->lcp_not_empty('customfield_value') ):
$args['meta_key'] = $this->params['customfield_name'];
$args['meta_value_num'] = $this->params['customfield_value'];
endif;

and

if ( $this->lcp_not_empty('customfield_orderby') ):
$args['orderby'] = 'meta_value_num';
$args['meta_key'] = $this->params['customfield_orderby'];
endif;

It could become an option to support both string order and numeric.

I hope you find this useful. I enjoy your plugin. Thank you.

Useful Transitions vs. Why Transition?

I made a comment on Twitter a while back criticizing an example of media-query transitions that has continued to bug me a little bit. Today I ran across an example of why.

There are some really good reasons to transition state changes in web design.

  • They offer richness in the UI that until a couple of years ago was mostly found only in the domain of a native desktop or mobile application.
  • Transitions provide brain queues to changes that make us feel good about UI.

My beef with a media-query transition is that you only see them if you are playing accordion with your browser window or maybe when you are sticking a window to the right or left edge of the screen in Windows. The latter might be a valid case for their use, but certainly an edge one. Aside from creating a catchy web page that is supposed to be an actual accordion or maybe a bagpipe simulation, you’ve just got no business expecting that something supple should happen when you re-size your browser window. I’m open to being convinced otherwise, but you are going to have to bring a really good argument. The size of your media viewing is pretty much static on anything other than the desktop and if you like reading things in 420w then you should leave your browser that width IMO.

So back to my point. Today I found a great example of a transition that makes perfect sense on a page state change. You can find it on www.99u.com, where a nicely designed header with tasteful whitespace repositions its site branding and menu when vertically scrolling makes the header dissapear.
withHeader_99u

The logo an menu transition in a short, sweet, meaningful way to give the experience of saved space and brand reinforcement.

I’m sure there is somebody out there who can convince me why my opinion here in flawed. Please hit me up on Twitter as I would love to hear another side to the story.

withoutHeader_99u

—— Annnnnd as expected…

2013-11-13_1317

OK. Maybe that is the original reason for them to begin with. My psychologist told me that these asynchronous social interactions might be helpful. I’m starting to believe. It still seems a little fluffy. Anybody else?

Don’t walk into an interactive developer job interview unarmed.

As a director, I interview lots of programmers for positions in Front-End Development, Back-End Development, SQL Development, QA Development and even Technical Business Analysis. From my experience in this role I’d like to give job seekers a few tips on points that can make or break your next interview. Before I get into those details, I will say that I’m not big on written testing. That doesn’t mean that I don’t consider test scores provided by recruiters as part of the initial vetting of a candidate. If you score well, bring the results. They can never hurt. I just find that the candidate who really knows their stuff can speak to it in the interview in a way that convinces me of their skill level. I really look for people who “get it”. The candidate that demonstrates to me that programming, regardless of the specific language or stack, is a universal toolbox will win points regardless of a specific degree or test scores.

 Pro Tip #1 : Know your OOP.

Seriously. Come ready to speak about the principles of object oriented programming. Any programmer who can’t speak intelligently about the application of OOP principles, whether it be in front-end JavaScript code, back-end C# or PHP (or some other language), or SQL is an immediate risk. It says to me that you have gotten by this far by cutting and pasting other people’s code and no one was the wiser.

Come into the interview ready to rattle off the 4 basic principles of OOP

  • Abstraction
  • Encapsulation
  • Inheritance
  • Polymorphism

Google it.

Familiarize yourself with these principles until you can describe them in your own words with illustrative verbal examples. Then, to get bonus points, describe how you achieve the same results two different languages. For my shop I’d like to hear a C# or PHP back-end example and then how you would accomplish it in the front-end JavaScript. Here is a good references for Polymorphism in C# and then one in JavaScript. You might even do something unexpected and describe Polymorphism in CSS!

C# : http://msdn.microsoft.com/en-us/library/ms173152.aspx

js: http://www.codeproject.com/Articles/315169/Polymorphism-in-JavaScript

Again, it’s not so much that you need to show me that you can memorize the description of the four pillars of OOP, as it is that you can talk about the concept, why you use it and how you would go about accomplishing it in a language that you are not fully comfortable with. Work on your ability to tie these tenants to complimentary concepts, for instance, describe the connection between encapsulation and scope or inheritance and scope… actually, if you can convince me that you truly understand scope in OOP, I’ll be fairly impressed with that alone!

Pro Tip #2 : Don’t drop buzzwords that you aren’t ready to talk about.

If you sit down in my office and say something during the interview like “I’ve been mostly working in Agile lately…” and then I write a note, you can pretty much bet it says “bullshit”. Don’t queue yourself up for humiliation. If you claim that nowadays you do everything in HTML5, then you better be able to elaborate on what that really means. It’s much safer to say the you normally use the HTML5 DOCTYPE and try to build your front-end fanciness in JavaScript whenever possible if you don’t want to field a few gotchas.

The popularity of a topic doesn’t make it a good thing to bring up in an interview. To say that you mostly program front end code in jQuery is a glaring mistake. You may use jQuery frequently in context with your JavaScript programming, but you don’t program in it. Similarly, if you are going to drop the “responsive” buzzword, then you should be ready to show an understanding of media queries, the rationale behind common breakpoints, how css grid systems work, and why you measure things in percentages.

Quiz yourself on being able to demonstrate the knowledge of:

  • What’s the difference between SOAP and REST?
  • Can you describe how CSS and jQuery relate with the DOM?
  • Can you explain the concept of MVC? (Microsoft, General)
  • Why has JSON become more popular than XML? (hint)
  • Can you describe consuming an API? Do you even know what it stands for?

Don’t just sprattle buzzwords and acronyms without being able to back up your BS. A conversational knowledge of popular topics goes a long way to instilling confidence in your interviewer.

Pro Tip #3 : Know your mark. If you have a lame corporate job, demonstrate some personal interest.

I don’t know how many resumes I scanned from people who work at banks or a government agency who obviously want to get out into the exciting world of interactive marketing or gaming. They are like reading library cards in a medical school. Oh my God, you had me at prior Senior Financial Systems Analyst! Please wow me with the fact that you worked on an intranet portal! (not really… I’m being sarcastic)

If your prior work is confidential, hidden behind a login, or otherwise unpresentable it will behoove you immensely to show me your best pet project. Show something that demonstrates your interest in modern web coding, even if it’s just playing around. Remember I’m not the guy interviewing the designers, I’ll forgive you for not be an artist, but if you are applying for a front-end programmer position and all you have to show is formatted rows of data and non-styled forms, then you are going to need to back up that enthusiasm for the position with something that incorporates animation, or mashes up APIs, or goes “pew pew” and blows stuff up.

Your interest in programming and exploring new things in this field is key to me being interested in that big salary the recruiter told you, you could get. Demonstrating how you chase down curiosity is a big bonus during an interview in interactive.

If you are interviewing for a back-end position then show me how you made it super-easy for the front-end team to consume some complex data or how you built a site using Entity Framework or Node.js just for the heck of it.

Pro Tip #4 : Don’t ask me when a typical day starts and ends.

Your interviewer will get to that point in the conversation when they say “…so, do you have any questions for me?”. If you respond with this question, one of two things will happen. One, I’ll totally lie to you and tell you that we always try to get here at 9 and leave at five with occasional exceptions; or Two, I’ll crush your hopes of having a social life with the truth. The honest truth is that it’s somewhere in between there. Nobody wants to work long hours, but we do it when we have a deadline and having a team member that isn’t willing to stick it out with the rest of the team is just, well…disappointing.

In cycling it’s referred to as Rule #5. I think it applies to a lot of things. If you want an awesome job with a great salary then you should make it a point to short circuit this topic in the interview completely by interjecting somewhere “I’m used to doing whatever needs to be done to get the job out the door as accurately as possible. Do I want to work into the night to do that? Of course not, but I will when it’s necessary.” Now you see me making a note again. It reads “sucker!” – I mean that in the most endearing way, seriously. You almost hired.

Pro Tip #5 : Be the bridge.

Programmers who can bridge the communication gap between project teams are gold plated in my opinion. If you can speak to non-technical people about technical things without causing them to glaze over, and then interpret those ideas into a detailed development approach then you are your way to being a leader. If that is your goal then take one more piece of advice into account: position yourself as a hands on leader. Convince me that you are not just coming here to go to meetings and tell people what to do. Show me that you want to get dirty with the code and show the other kids how to make killer mud pies.

I think one of the biggest mistakes we’ve ever made in recruiting is advertising a “lead programmer” position when we wanted a really experienced senior programmer with leadership potential. When I read resumes of people in management positions with outdated skillsets, I just pass them up. Candidates and recruiters seem to see $$$ dollar signs when a lead position is advertised. 10 times out of 10 I will hire the person with current skills, a great work ethic and possible leadership ability before the person with pure leadership skills. Interactive Agencies are the home of do-ers. Remember that, even if your goal is to eventually be a manager.

Position yourself as a problem solver, solution provider and dedicated team member. Convincing your interviewer of your titanium resolve goes a long way in this business.

Bonus Tip : Be Yourself.

On my team there are young guys barely out of high school, older guys with military backgrounds, women with tattoos and a love of zombies, dudes with weird chucks of metal in their face, varying dialects from various countries and various religious beliefs. Your uniqueness is a virtue, so long as it doesn’t prevent you from being part of the rest of the circus. Your willingness to be part of a diverse team and also be one-of-a-kind is a great thing.

Try not to tense up when you’re in the interview. If you know your stuff, be confident and smile. Visualize me having no way to turn you down, because you’re awesomeballs.

Good luck on the job hunt!

Tyrus Christiana is the Director of Software Development at BFG Communications in Bluffton, SC www.bfgcom.com

Daily Developer Affirmations

I sent this out to my team a little while ago. I like to color really serious messages with a little constructive humor. It worked OK. Reuse at will. If Al Franken’s lawers come after you, then I totally copied this from somewhere…

[Original Message] Subject: Daily Developer Affirmations

Adapted from Stuart Smalley, who has been a Senator for a while now in the real world BTW.
Repeat to yourself each morning for better health:

I deserve good things.
I write really helpful and descriptive check-in comments for all my code.
I am entitled to my share of happiness.
I write really helpful and descriptive resolution comments for all of my bugs.
I refuse to beat myself up.
I comment my code with pride, excellence and political correctness.
I am attractive person.
I always request code reviews, after double checking my work, and perform code reviews with the care of a parental figure searching their child’s school bag for drugs, porn and weapons.
I am fun to be with.

And by golly, people like me.

Until I find a better font.

The only thing I’m sure about as I start this blog… well, regarding the blog more accurately … is that the font must be like an old typewriter.

That and I really don’t want any comments.

OK, that, THAT, and I’ll only post stuff that I’m absolutely sure about…

And I’ll promise to myself that I won’t use too many ellipses…

Aw f*ck it. I’ll just blog.