Virtue Center for Art & Technology is a cutting edge design and development studio based in Long Island City, NY.

There are two positions we are looking to fill - but only with the right candidate! Virtue Center is a close-knit team that, aside from our professional acumen, is passionate about non-profits, education and technology.

Front-End Web Developer

As a front-end web developer, you will work on a variety of website projects across all of our clients. This includes many well known non-profits and leading consumer brands. You must know the following technologies / concepts:

  • HTML
  • CSS
  • Javascript
  • PHP
  • Object Oriented Programming

The following skills would also be great, but we can acclimate you if you have strong fundamental programming skills:

  • Model-View-Controller Design Pattern
  • MongoDB Document Based Database
  • nGinx Web Server Configuration
  • Linux Command Line
  • Solr Search Engine

Please send your resume to jobs@virtuecenter.com

Content Developer / Writer

The writing position is a new position at Virtue Center. You will be:

  • writing blog posts for us, our clients and about the intersection between technology, medicine and education.
  • create education and training material for some of our products
  • write marketing copy
  • create tweets and posts on Facebook and Twitter

You should have excellent communication skills, be a "people" person and have a passion for technology and design.

Please send your resume to jobs@virtuecenter.com

Internships

If you are interested in an unpaid internship in programming, design or marketing internship, please email us at internship@virtuecenter.com

This blog is also available as a podcast.

Audio File: Windows 7 Series Phone. More Social. Podcast. can not be played.

Microsoft & Me

This is a sad day. I never thought I would have found myself writing about a Microsoft product. The end of times may be nearing.

Let me just give you a little background: I got my first computer, which was a mac with a 9 inch black and white screen about 24 years ago. I was an un-paid Apple evangelist, converting all my friends and relatives to be mac users, until the dark days when it seemed like Apple would go out of business. I switched to the PC out of necessity, but I have been running Linux as my desktop operating system of choice for about 8 years. I run Linux for a variety or reasons - one of which is that I simply hate Microsoft. There, I said it. I hate Microsoft.

That being said, I have been impressed by the user interface on their series 7 mobile operating system - even though I didn't expect or want to be. You do have to give credit to Apple for revolutionizing the mobile phone operating system and kicking all of the mobile phone companies in the butt. It's isn't like Microsoft and Google haven't gotten the memo though, and in many ways each have created operating systems with features that are simply superior to what's coming out of Cupertino - no matter how superior Apple's marketing is.

Integrated/Aggregated Social Stream

On Sunday morning at 6:45am at an undisclosed McDonald's in Westchester, I met with a business associate. We're working on an interesting project, let's just call it code-name TIM for now. We got to talking about about social media, and how we would be marketing our new product and I brought up a recent blog post I had written. He said, "oh yeah, I saw that." "Oh, great", I said - someone reads my blog - "how did you find it?" Then, he pulls out his Microsoft 7 phone, clicks my contact in his phone, and right there, you see an aggregate of all of my social media participation. He didn't have to launch an app that he had installed, this is the default contact app. My record had enough info in it that the phone had managed to pull-in my social stream automatically, and it was casually (and cleanly) presenting it, in-case the user wanted to peruse it before placing a call. Ingenious!

Imagine you need to make a business call. Whatever, client follow up, sales call, partner call - and before you press the call button, you can quickly peruse their stream and see what they have been tweeting about and what's they've recently posted to Facebook and LinkedIn. "Hi Tom, how was your recent trip to Alaska - that was some fish you caught! Now, about those invoices I sent…"

Social Stream Aggregation Everywhere

From a technology perspective, there is no great hurdle to present a registered user's social stream within an website or an application - just like the Windows phone does. Of course, if the person is not participating, there will be nothing to show. Similarly, if they have their privacy settings on high-alert there will be nothing to see - but if the user is publicly sharing their ideas, check-ins, thoughts, etc - then a rich stream can be brought in.

I predict that this year, in many websites that require registration, there will be a way to view or search other registered users and view their social stream. Imagine, you are registered to an online class with 30 other people, and you can see not only who else is registered, but an aggregate of all of your classmates social media streams. It's going to be a very social year at Virtue Center!

Request For Comment

When a developer on an open source project wants to recommend that a particular feature be added, often times that developer will create and RFC. RFC stands for Request for Comment, by creating an RFC, the author creates a comprehensive proposal that other developers can then consider and critique. Although this process requires some level of bureaucracy, it's probably the most democratic approach that can be taken to getting a new feature added.

I don't often read RFCs, but for software projects that I really care about - software projects that I am directly affected by - I will try to stay abreast of the thinking amongst the core developers and try to see the direction that the language is moving in. One such project is the PHP language itself which is not only used to develop a tremendous amount of open source projects, but it itself is developed as an open source project.

To the outsider or developer just getting started with PHP, it may seem as if PHP "just is" the way it is, or that there is something that will forever be constant about it. This is not really true. Although there is a huge install base for PHP and changing the language can create backwards compatibility issues, in order for the language to evolve, it must change. I've blogged about changes is PHP that I thought were important, closures, traits, and namespaces are three such additions that I am a fan of.

I Wish I Could Hear the Debate!

A few years ago, Imam Siraj Wahaj gave a talk at the New York University to a group of college students. In that talk, he briefly contrasted Usury in Islam, Christianity and Judaism. Usury, or the practice of charging excessive interest rates on loans, is a practice that has always been strictly prohibited in Islam, and was once prohibited in Christianity. Over time, leaders got together, and gradually, the Christian perspective on usury came to diverge from the total Islamic prohibition to allowing for certain instances to allowing for almost all but the most criminal forms of usury to be permissible. His point was not to take a stance per se on Usury or to suggest that Christianity is necessarily better or worse for this reformation, but his point at the time was:

Wouldn't you have loved to be there and hear this great debate? To listen to the arguments for and against and see how these religious scholars viewed the world, religion and the almighty? How might have being present at the that time and witnessing the discourse sparked your own thinking and opinion formation?

Well, when it comes to PHP, you can see a fairly comprehensive list of RFCs on the RFC Wiki and also, follow the discussion of the core developers on the mailing list (both listed below). To me, I think this is an amazing opportunity to see how a language that many of us love (or hate) came to be the language that it is today. The developers on these mailing lists may be a higher caliber developers than those that we may typically come into contact with in our work, projects and classes. Seeing how they think an interact can be like an long-distance mentorship for a learner who's willing enough to follow these discussion and work to make sense of them all. Personally, I followed the PostgreSQL mailing list for years as a silent reader, and although many times I could not quite follow the discussions, I found that it was a rich source of ideas to look into a learn about.

Resources

Some RFCs I Am Currently Following…

I had the pleasure of meeting with Hyder Naqvi over at ANR, LLP in downtown Manhattan yesterday afternoon. We discussed their social media strategy and after I presented my case for specifically what they should do and how they should do it, Hyder asked me:

It seems that the strategy you recommend is highly reliant on Twitter, is it Twitter really that important?

Twitter, like blogging, sometimes gets a bad reputation, because anyone can use it for anything, and many individuals are using it for trivially and distastefully. So, sure, it's true, people are sharing the latest viral videos and gossip on Twitter, but that does not negate what businesses and non-profits are doing on Twitter that is truly beneficial to them from a marketing and outreach perspective. That's the first part of understanding how to use Twitter, recognizing that it is important and that your participation and the conversations that you engage in are the ones of your choosing.

For an organization to be effective on Twitter, it first requires establishing an overview of who and which groups they want to outreach to, and what they expect from this interaction. After it is determined who and why, the next question is what would this audience consider interesting and beneficial in terms of content. Finally, a schedule for a minimum level of participation needs to be determined. For example, our social strategy is something like this:

  • Audience
    • non-profits
    • bio-tech companies
    • other designers
    • other developers
  • Outcome
    • lead generation
    • building relationships
    • become a thought leader
    • sales
    • recruiting designers and developers
  • Content
    • helpful articles on using technology
    • helpful articles on new technologies web and mobile
    • links to interesting tech developments and products
    • insights on technologies we are knowledgeable about
  • Schedule
    • post two blogs per week, share on social media
    • post content in appropriate hash tags, and tag certain users who are likely to be interested
    • spend one hour per day responding / sharing / participating in relevant social media conversation

The Unique Benefit of Twitter

Although on the surface, Twitter is very simplistic, it has two features that are very useful for outreach: the hash-tag and user-tagging.

A hash-tag allows for content on Twitter to be organized by topic, and for it to be brought to the attention of people tracking that topic. So, for example, if I posted an article about Malcolm X, I would write:

Let's not forget Malcolm X when we consider the civil rights struggle http://www.myblog.com/post/mx.html #malcolmx #civilrights

In the above example, I have used the hash-tags for both malcolmx and civilrights - people who are tracking these two topics will now see my post as part of that broader conversation.

The next feature, user tagging let's me bring this post to the direct attention of a specific user or users. Now, this has to be used carefully, because you never want to annoy people. However, if you post something that you are confident will be of interest to another twitter user, you can tag them in it:

Let's not forget Malcolm X when we consider the civil rights struggle http://www.myblog.com/post/mx.html #malcolmx #civilrights @vcryan

In the above example, I have now included @vcryan as a tagged user. When that user checks their feed, this post will be segmented and brought to their attention.

Although Facebook, Google+ and LinkedIn have some features that are similar to this, these features are arguably the reason why Twitter exists and why it is so successful. Facebook and LinkedIn have a lot of other distracting things for a user to do, but Twitter is strictly about conversing in concise, targeted and topical ways - a way that makes Twitter a powerful tool for outreach and marketing.

In future posts, I will get into tools and business processes that can be established to make participating require less effort and to more effectively track the outcomes or social media engagement.

Disclaimer

No illegal drugs were consumed in the research of this article.

Pavlov's Leaky Dog

I should have used the term Dopamine in the title of this article, but it would have been less intriguing, no? Anyhow, generally speaking, Dopamine is a substance occurring naturally in the brain that assists in the experience of human pleasure. Cocaine has such a dramatic effect on the brain because it causes a build-up of Dopamine which then leads to elevated levels of pleasure. But, you're smart, you probably already knew all that.

Like cocaine use, we can develop a Dopamine release from various kinds of behaviors. Computer programming is one such behavior. Consider this: you might imagine that a person would not want to spend hours on end staring at a computer screen, skipping meals, losing track of time, only using a text editor, making small changes to a text file, observing small results, over and over again - in other words, the experience of computer programming. Those who enjoy, or, dare I say, are addicted to computer programming - they spend their time in a trance, going through the motions, waiting for the moment when they have solved a problem and their code does what it was intended to do, akin to the pleasure a person might get from solving puzzles for leisure. To make things worse (from an addiction stand point) it's hard to know when the puzzle will be properly solved, so a degree of nervous anticipation builds up before each verification and when the puzzle is finally solved, there is a mild or often intense feeling of pleasure. Which then shortly subsides as the programmer then repeats the cycle, onto the next puzzle, onto the next fix.

Programmers may even display a degree of heightened irritability if a puzzle takes too long to solve, and a degree of reluctance to take on trivial tasks that are not suitably challenging; i.e., when the strain of the work involved outweighs the pleasure payout. This might just be a measure to separate the addicts from the team players: their willingness to do the "boring stuff" that gets the project done vs. their zeal for the "hard stuff" that makes it interesting. Obviously, few people like to do the "boring stuff" involved in any endeavor, but to the programming addict, it's almost unbearable.

Great Programmers: Sometimes Addicts

To get good at programming, or arguably any non-trivial challenging skill, you have to spend a lot of time doing it. Hundreds of hours, perhaps even thousands. There is an innate pleasure associated with learning. Some people experience it more than others. Programming is unique in a sense, in terms of how many opportunities it can present to solve a puzzle and how unpredictable puzzle resolution can be. I am not a neurologist, nor have I conducted any formal studies, but anecdotally and empirically, I've noticed that many great programmers may have become great because they experienced a pleasure incentive that got them so addicted to the activity, that they spent so much time doing it, that they just inevitably became quite good at it. Part of how they got so great is that they continually needed ever more complex and challenging puzzles to solve so they could go through the incentive cycle again and again as a person does not get the same (or any) pleasure experience from learning something they already know or solving a puzzle they have already solved.

The Dark Side: Going Off Script

As anyone who is an addict or has lived with one knows, an addict's main priority is getting their fix - not: taking the kids out to play and certainly not getting a programming project completed. I once worked with a brilliant programmer who I believe was so addicted, that he would create challenges where there were none to make his work more interesting - I think this made the work bearable for him. Usually, he could not complete a project, because once all the interesting stuff was done, he simply could not motivate himself to keep on working on it. Clearly this was extreme and unhealthy.

From a business perspective, addicted programmers are in themselves a kind of temptation to employers. They can do amazing things that others can not do and often in a much in shorter time span. They have no problem working for long hours and are intrinsically motivated to work. However, they can also be very dangerous, specifically because they frequently go off-script. They have their own agenda where they create challenges where there otherwise may not have needed to exist or they work on some minor tangential aspect of a project for hours on end, leaving the project plan behind to program what they feel that they need to, not what the project itself needs.

Remedies

If you are or a programmer you know is someone who may be suffering from what I can only really describe as coding addiction, the solution may be to find healthier rewards. Personally, I am sure that I fall into a trap of addictive computer programming binges at times. What I find most helpful is to focus on the end result: client satisfaction and high quality user experience. Also, having a good mechanism to track progress on projects can help a team realize when they have veered off track and what they can do to get back on track. Generally speaking, any activity that helps a person build personal will and discipline will help them overcome their habits and urges and get back on a more healthy and integrated track: team work, keeping their word and getting things done.