- END #header -->

Posts Tagged ‘my thoughts’

8 Steps for being an Asshole Effectively

Exhibit A

I needed information on PHP debugging in IntelliJ. After nearly tearing my hair out trying to get it to work using online references, I pleaded to the twitter community for help. It went something like this

: Anybody know how to get #PHP debugging working in #IntelliJ?
* crickets *
: I have everything else working, I just can’t get #PHP debugging in #IntelliJ. Any help?
*crickets *

Absolutely nothing. It was just another drop of water in a sea of questions that never get answered on Twitter. But I’ve found a way to get around this. Be an asshole. That’s right, vent your frustration, call out the project or software you are working on, swear it off for life. This method becomes even more effective as your number of followers grows. Again, I paraphrase:

: Screw #IntelliJ, #PHP debugging won’t work right so I’m off to try Aptana and Eclipse.

Within minutes I had half a dozen responses back, including one who spent 20 minutes helping me troubleshoot the process (thanks ). This is not the first time this has happened. I asked basic questions about the PhoneGap mobile development framework on Twitter to get only one generic response. I “rephrased” in a less complimentary manner and within minutes had 2 of their project members messaging me.

Why does it work like this? The power of negative press in social media is too powerful to ignore. These projects know that positive word of mouth and community support is their life blood. Jeopardize that and watch people flock to your aid.

How To

Here’s the checklist for being an effective asshole in social media to get information you need.

  1. The bigger your audience (AKA, followers and friends), the more likely your negative comments will be worth extinguishing.
  2. # and @ on Twitter go a long way. Target the people you have a beef with and give them a chance to retort.
  3. Be specific with your negativity. “IntelliJ sucks” would have gotten me nowhere. Direct complaints about functionality are the way to go.
  4. Don’t be stupid. A sure fire way to get ignored is screaming “BUG” when you should RTFM.
  5. Be nice once someone does help. If they have the patience to deal with your sarcasm, they deserve your respect.
  6. Be grateful. If you do have some social media clout, be sure to praise the project after and thank the person that helped.
  7. Don’t be afraid to have more than one conversation about your frustration with a product, but don’t flood your stream with whining.
  8. Use sparingly. Don’t be the boy who cried wolf.

And that’s pretty much all it takes. Now remember, the idea is to bring intelligent people into a problematic situation you are having, not to be a cantankerous prick. Play the game, but be sure to shake hands afterwards, regardless of who “wins”.

Shit My Twitter Says: Xmas Edition

This is my list of favorites from Twitter for the past week. Be sure to take a look at not just the links, but the people posting up the great content. Some heavy hitters on the list this week.

Quake 3D Environment running in Flash

tweeted by:
Aerys shows off Minko, their tool for developing 3D applications for the Flash platform. This demo in particular is cool because they were members of the Adobe “Molehill” 3D API prerelease program.

Take a look to see the future of 3D in Flash, in a very familiar format. That’s right, Quake 3D right there in your browser.


AutoHotkey

tweeted by:
AutoHotkey is a free, open source utility to let you hotkey just about anything in Windows. Let’s you streamline and customize your Windows experience as much as you want. Here’s a brief list of hightlights:

  • Automate almost anything by sending keystrokes and mouse clicks.
  • You can write a mouse or keyboard macro by hand or use the macro recorder.
  • Expand abbreviations as you type them. For example, typing “btw” can automatically produce “by the way”.
  • Remap keys and buttons on your keyboard, joystick, and mouse.
  • Create custom data-entry forms, user interfaces, and menu bars.

Control Your Computer With Your Brain in AS3

tweeted by:

Sean Moore blogs about his exploits with NeuroSky’s Mindset headset, a USB device that actually reads brainwaves (EEG) as user input. It comes complete with a free, open source API for developing your own applications that use the headset. Also there’s a sort of brain emulator that allows you to develop against the API without even buying the headset.

Check out this blog post, and his previous one on the topic, to get a look at this incredibly cool technology.


Write high quality unit tested AS3 for fun and profit…

tweeted by:

A great assessment of unit testing resources, particularly as they relate the Actionscript 3 programming. The insights on the high points and pitfalls of test driven development are well worth the read.

“As with all code, complexity is easy. It is the default. Elegant simplicity is much more difficult.”


jQuery Mobile

tweeted by:

From the framework that made Javascript tolerable comes a version specially built for the unique needs of mobile developers. Enter jQuery Mobile.

My favorite part about this framework, other than the familiar syntax, is the upfront honesty about its compatibility. Check out the compatibility chart on the “Platforms” page for more details.


Rockbox

tweeted by:
Rockbox is an open source firmware for mp3 players, written from scratch. What this means is that you can load open source, totally customizable firmware onto the supported MP3 player of your choice. This includes the following (with many more unstable ports):

  • Apple iPods (lots of versions)
  • Archos
  • Cowon
  • iriver
  • Olympus
  • Packard Bell
  • SanDisk
  • Toshiba

So what can you do with it? You can customize the interface, use themes, watch movies, or even play Doom. Yes, Doom on your MP3 player. Badass.


Programmers: Why do we do it?

Every now and again when suffering through a movie my wife has chosen, I manage to find one thing I really like about it. This time the form of torture was ““. Fantastic acting, spectacularly unentertaining story. Anyway, while I was daydreaming about code, I heard this exchange that probably went right over the heads of most viewers. Not the viewers fault, they were probably still reeling from the rough Mark Ruffalo on Julianne Moore action in the prior scene.

Gardener: “I have allergies.”
Jules: “Then why are you a gardener?!”
Gardener: “Because I love the flowers.”

And then they fly right past that line, but that’s the one good thing I took from this movie. Sometimes the things we love don’t make sense and can downright make us miserable, but it doesn’t make us love them any less.


In my head this philosophy plays so easily into the mind of programmer. There’s so much to dislike about programming:

  • Entire days spent chasing bugs
  • Short deadlines
  • Constantly having skillsets superseded by new technology
  • No appreciation for the work it takes outside other developers
  • The elitist nature of many in the developer community
  • Moronic clients
  • Late nights, long hours in front of a glowing screen
  • The constant inkling that some 14 year Japanese kid already did this better than you
  • The lottery-esque likelihood of independent success

And that’s just a few. I’m sure I’ll hear a few more in the comments.

Then why do we do it? What is there to love about programming? What is it about crafting together mountains of syntax that makes us come back to it every day? I know for most of us there’s a paycheck attached to it, but for plenty of us that’s not the root.

I may be getting too romantic even for my own tastes, but I think its the fact that those who truly love programming see it as an art form. Its not just a technical pursuit, but one that allows the leveraging of one’s unique talent and views. You bring a form of personal expression into your work. You invest yourself physically and mentally in what you do. You suffer and toil, using code as your medium, just as other artists craft with paint or stone. You have a personal association and pride with its creation. The code and its results represent you.

What do you think? Is there really a right-brain satisfaction achieved through a love of programming. Is it more than ones and zeros doing an assigned task? I think so. Otherwise, why bother?

Haters Gonna Hate: The Psyche of the Tech Zealot

Linux Junkie

Actual comments to a reddit post I made regarding the Adobe Molehill 3D API:

“Since Adobe’s making it, will it use 3x the memory and be 10x slower than webgl?”
“Molehill? If it looks like a shitpile….”
“HTML5 and CSS3 already do that way better.”
“wtf… games are written in C++ or C”

Tech zealots, they are everywhere, particularly on discussion forums where they can make their views tactlessly clear. They have holed up in one camp and anyone using anything but their weapon of choice is clearly a moron. I’m not talking about open minded professionals with conflicting views, just those people highlighted by the pearls of wisdom above.

But why? Why would someone be so vehemently opposed to technologies they obviously have only a stereotyped or passing knowledge of? Insecurity of course, but more specifically:

Lack of Skill and/or Intelligence

I am dumb. You are dumber.This is the most common root cause of mindless scathing comments on technology. The purveyor of bullshit is not smart or motivated enough to speak intelligently on more than one technology topic, so all others aren’t worth discussing. His mind cannot be changed, as this would require a level of decision making and logic that is beyond him.

This person is the manifestation of why the “ignore” function exists on forums and networks.

The one hit wonder

I Love C++When is your hammer, everything looks like a nail. Aside from the true idiots mentioned above, these are the second most prevalent zealots. They have hitched their wagon to one technology and are going to ride it til the wheels fall off… and maybe even after that. And guess what? You need to agree that it was the right choice.

The best way for a one hit wonder to keep himself relevant and in demand is by increasing the numbers of his clan. Convince others that his tech is the holy grail of software development. He will find any opportunity to insert the technology he knows well into a situation, regardless of how inappropriate it may be, and cite it as the “right” solution.

I’ve had a small, basic website project in a PHP shop be diagnosed by a OHW as needing a C++ web framework. I’ve seen web servers created in Perl (OK, that was me). The point is, add more tools to your toolbox or run the risk that your hammer starts collecting dust.

Lack of experience, or just one bad one

Flash SucksYou know the type, the person who used Actionscript once 6 years ago and hinges his beliefs of Flash, Air, and any Adobe product on that experience. They cite shortcomings and problems that no longer exist. They perceive any former weakness as an inevitability that the technology in question will always be a total failure. Windows ME sucked so there’s no sense in trying Windows 7, right?

But this person is not beyond help. As easily as they dismissed the language, there is a chance they will applaud it in the future. The trick is getting them to revisit it. Unless this person gives the technology another try they will continue to perpetuate misinformation.

Fear of being made obsolete or jobless

Will code for foodIn this day and age the lifetime tech job doesn’t exist. Even worse, employers are viewing programmers as interchangeable parts of a business; assuming one developer can be swapped out for another. Then how does one remain important? By feigning a high level of expertise.

Unfortunately, the damage done by a developer pretending to know what he’s doing doesn’t end in the office. The guy who fooled your recruiters is a pain in the ass everywhere he goes… especially the internet. What better place is there to pretend you are smarter than someone else than in Internet forums and debates? Its vast, anonymous, and you can pretty much say anything you want.

So this one hit wonder is going to spend his time, as he does in the office, creating this myth of talent and expertise with anyone who will listen. He will unleash a deluge of buzz words. He will weave tales about wildly successful projects, of wildly varying validity. And like at work, he will get just enough people to believe him to make your interactions with him miserable.

Refuse to appear “wrong”

You’ll typically see this when a debate backs one guy into a corner, usually attributed to his own limited knowledge of the technologies in discussion. Lots of diversions and straying from the topic at hand. Dialogs like the following are sure fire indicators of this mentality:

Zealot: Python is just a language for blogs and little hobby websites. You need enterprise level Java for a scalable solution.
Normal person: That’s weird, it seems to work for Google and Youtube.
Zealot: Yeah, but only for small parts of their site. I’m sure they use a better language for their core.
Normal person: Nope, they have both cited that Python is the primary language used in their implementations. Check out this post from the creator of Python about Youtube.
Zealot: Python would never work for a REAL business site though.

The zealot here is blindly adhering to his perception that the technology he was bashing was “bad” for the described situation. When proven wrong he then throws out vague, unprovable statements in an effort to remain relevant in the conversation.

Mob mentality

Mob mentalityMisery loves company. And the more company the more misery. There’s power in those numbers. A stereotype’s effectiveness is directly proportional to the number of people you can get to believe it. Get enough people to chant “Java is slow,” “Microsoft is evil,” or “C++ is too complicated” and it can be enough to divert a person from a technology before they even try it. And yes, I even dodged Java for a long time because of the first one.

A person allowing themselves to fall victim to this mentality is usually a smattering of many of the above listed mentalities. Not enough personal experience coupled with a strong allegiance to other technologies that designed with similar tasks in mind can easily make you dismissive of another. Be vigilant and open minded. Make your own decisions.

The Open Source / Vendor Zealot

Microsoft HaterThis is a mentality I’m sure you are familiar with. Open source zealots that can’t admit that many commercial products far exceed the capabilities offered by open source alternatives. On the other side of the coin you have vendor zealots who feel that all open source software is invariably buggy, unstable, and inferior to commercial products.

I once brought the idea of converting IIS servers to Apache for our small web presence to one of my bosses. His reply? “Nobody really uses Apache anymore.” It blew me away. The product trusted to run ~60% of the world’s websites was dismissed without a second thought due to misconceptions about open source software.

This mentality is a really tough nut to crack. You take a healthy respect for a technology and compound it with preconceived notions about free/paid alternatives to create unfounded animosity. The worst part is that there’s tons of people who have this mindset and will not only avoid free/paid techs, but slander them as well. Much like fixing phobias, a steady diet of forced exposure to positive events regarding the technology they fear or hate is the road to recovery.

Final Thought

If you fit one or more of the mentalities above, take a deep breath before you start hammering me with inflammatory comments. The fact that you read the article means you are not a terminal case. You may have a valid allegiance to a great technology. But has it blinded you to other opportunities to learn and excel? Have you helped perpetuate myths?

*** Take a hard look at your own views and you may find yourself a little less angry at me and a little better of a developer in the end. ***