Almost Everything I learned about Teamwork and Leadership, I Learned in Clan Lord

I’ve been threatening to write this post for about a year. I had this sitting on the back-burner for a month and asked for comments from another player also in the IT Admin field. So, without further ado…

Despite the Graphics, CL has real team-building potential

Despite the Graphics, CL has real team-building potential

For the unwashed, Clan Lord is an archaic, sorely out-of-date Multi-player Online Role-playing Game  (MORPG) that has been running since the late 90s. The single world (server) and small population make it feel like a small town, thus all of the current players have the same goal (job). Thus, like any small group with common goals, it is a bit like a company: You have your people in it who are on the ball because they work well in teams and independently, those that only work in teams because they need direction, those that lead group of people in a direction, those that specialize in a subset of knowledge about the terrain (market or technology) all of whom trade their time and risk profit (experience) to advance, and finally those that just show up to have fun. These flyby ‘fun’ people are equivalent to the people who just show up for a paycheck. In the game, one seemingly minor mistake can lead to the death of the entire group.  This necessitates departing (experience and time loss) which is a bit like working on a project  and having it fail miserable because Joe Paycheck didn’t know or care that you shouldn’t have done X.

Considering the parallels I noticed about the in game group and the group of people you work with  day-to-day, I have found several commonalities that I have taken from work to game and from game to work that have helped me navigate real life teamwork, leadership and relationships.

Continue reading

Remote Control OS X (Link)

Rather than write this article, I noticed that this article has been updated and is still relevant.

Remote OS X Daily: Control a Mac with Screen Sharing in OS X

I would add that, if you want to be able to do this away from outside the network the Mac is located, you need to have administrative access to your internet router, and understand how to configure ports on your router to forward the right port number to the Mac you want to connect to — you should also make a DHCP reservation for the machine so it is a reliable connection.

If you are behind a company firewall, I doubt many Network Admins would open up and forward the ports to you without very good reason. (If they do, send them the port numbers and do not make them look them up.) The reason Network Admins are very hesitant to allow users this level of access, is because most users do not understand the huge security implications that need to be considered before opening any externally accessible ports. In short: lock down every port you do not need, limit the rights of the remote account if you can, and make the access password as brutal to crack as possible — especially if you put your machine on the DMZ.

So, it is best to just do this on a home network that you have set up Access Point Isolation on (so the computer accessed externally can only see the router). Basically, once you are allowed to remote control a intra-network device, this can be used to attack an entire internal network. When I worked as a Network Admin, there was only one exception we made to this policy of not allowing any sort of direct access from outside our network, and that was only for the CEO of our company, and only for a few days. Yup, we said no to our boss until given good enough reason, and even then we placed a severe limit on it.

That said, this article can be vey handy, and can also be used to allow Mac Techs remote access to your machine should you need remote technical support that would cost a lot more with an in-person service call. However, setting this up, might require a service call considering the wide array of variables between routers, internal networks and machines that true network techs can quickly understand.

I have tried a few iOS to Mac apps, but I am still trying to decide which, if any, would warrant a recommendation. The yearly fees of those that I have tried often put me off of even writing about them.

Graphic Design Language Consistency

While I have often said that a lot of UI changes are simply eye candy, and add nothing important other than “bling” to a design, not all UI changes fall into that category. However, looking back, I noticed my posts have beat around this huge unaddressed important distinction of UI design that pretty much no company and very few active designers today seems to completely understand, judging from the latest and “greatest” products that are just as confusing for experienced users as they are for newbies.

While, we all seem to inherently understand some form of graphic design language, few aside from UI designers are conscious of it. And even fewer of the professionals understand this graphic design language has rules and conventions based on solid interaction principles. They seem to take for granted, that this control is a certain way without question, and either they use it improperly or worse, they break the convention. Both of these problems are caused because the UI designer does not know the reason behind the convention. I am sure many UI designers will rebuff me — and know the reasons behind certain choices, but not all. The problem is, if the designer has read literature or learned UI from someone else that omitted the explanations and reasoning behind the conventions, they only have half an education.

Continue reading

Selling SoHo Printers: “It’s Airprint, Stupid”

Finding a current table of color laser Airprint capable multi-function printers (MFP) with prices and features is impossible. [If you are an Android user, just replace every reference of “Airprint” to “Cloud Print” since it is essentially a copy of Airprint, and would help Android users to find printers too] So, gathering info quickly to recommend a printer is laboriously slow at best. Adding Airprint capabilities to product page table lists and being able to filter by it (as “wireless” and “color” are valid filters on most company and shopping sites) would speed up information gathering. I only found out about Airprint coming to Xerox when I visited MacWorld Expo and asking a Xerox engineer. Worse, is this info has dropped Airprint off of HP’s list pages — but is at least still buried in each printer’s page in fine print.

When I spoke to the Xerox engineer he said some Color MFP under $1000 (for SoHo) and all Enterprise models had (or would have) Airprint, but looking at the official list today there was nothing to compete with HP’s $400 retail (~$300 street price) Color LaserJet M175nw MFP [now replaced by the M177fw] which offers Wireless print through Airprint — thus iOS devices can print without loading any software (and scan with software). Also, Canon had imageCLASS MF8580Cdw, at $600 coming out. At the show the Xerox rep, pointed out several sub-$600 Xeroxes that either had the feature or would get it with a firmware update. But since then, I have forgotten which ones those were. So, when someone shot me a quick email “Hey, saw that printer ____ and they told me to ask you about it. Which models would you recommend?” I looked it up, which led me to the first line of this post.

Airprint means that visitors do not have to go through an arduous process to print documents. No one has to call tech support, anyone with an iOS device can print simply by…

Continue reading

This Week, Last Week, Next Week…

Excuse any typos, but this is a seat of my pants post… I finished up one job last week, which led to time to refactor this proof of concept class while revising other work. Exterior demoes of these proofs get reactions akin to saying, “Wow!” But I feel like Oz, saying “pay no attention to the duct tape and zip ties holding up the curtain!”

When I say “proof of concept” I usually mean, if you look at the underlying code you realize the magic is in the amount of code smell (aka Bad Practices used) — which happens when I just sit down with an idea and just write something that works and best practices aren’t at the forefront. An analogy of this would be an artist sketching a picture quickly to just practice the art and exercise their perception-hand-eye-coordination. Another dev would see this stream-of-consciousness sketch-style coding, and think “that’s crap!” because trying to modify it would be a huge pain. And I couldn’t disagree, because modifying would be a huge job in comparison to writing new code.

However, It is times like these I like to reread this: http://stilldrinking.org/programming-sucks to remind myself that when I mentioned how I hate working with “crappy” code or incomplete documentation. 

Any time I do toss a stone at some crappy code, I get some snarky “this is where the magic happens” comeback, and sometimes even that venn diagram showing my comfort zone outside it. Yeah, guys… I get it. I realize that we are all guilty of it because of workload or time constraints — no one is perfect. There is only so much one can do in one session, even if that session is a solid 13 hours (which I have done before). So, I can either throw stones or TRY to develop better sketch practices with each sketch. This is what I have been doing the past week. I will write a class with comments, DI, patterns, etc. Then look back and see where the comments/structure broke down or when things got vague or messier. Things are improving, but they aren’t where I would like them to be.

But, does it really matter if my on-the-fly code is written poorly as long as it doesn’t crash? Probably not to anyone that might use it, but oddly I can’t get a voice out of my head that says this is wrong. If I want to see better examples from others, I should practice what I preach, and only release the refactored stuff, and things that don’t set off any code reflection warnings. Last week I only had the energy to write 3 base classes, each one had at least 2 or 3 code smell warnings. This week I refactored and got fewer warnings, but then the limits of the docs smacked me in the face, and things broke. I suppose this is part of the growing pains of learning how to use new tools. And then I bang on the problem until I either revert to a smell-but-working version or figure out what the documentation meant. This is when I re-read this: http://stilldrinking.org/programming-sucks so I don’t feel so bad about why I am not getting it.

Developing Web Sites on OS X Faster & Easier

I often get asked what I use to develop web pages and other types of documents on OS X. Sometimes it is from new users, who have switched from a Windows environment who genuinely want advice. Sometimes it is a loaded question from a developer with a Windows bias and outdated information who thinks that developing on OS X is more difficult and clunky compared to Windows (or Linux). In some cases it is (such as if you are trying to develop for a Windows .NET system) because OS X is a Unix derivative, Windows’ naming schemes (such as the path separator and old text encoding) makes it a pain. However, for apache development, most web libraries and applications simply need to be configured and installed for OS X’s flavor of unix to work. Many offer native precompiled apps. At one point setting up a basic Web Server in OS X was a simple matter of dropping files in /{username}/Sites/ and going to System Preferences>Sharing>{selecting} Web Server. However, because Apple now confuses simplicity with ease [1. a subject I comment on from time to time.]— it has followed a trend of removing a lot of the convenience features for starting standard unix services such, from the default install of OS X. Now, things are less straight forward for developers who just want to toss up a quick php server to develop locally, and some people now need help setting this stuff up, and would rather not have to learn the terminal commands. Others, like me, know the terminal all too well, but are tired of having to edit file after file (taking care not to make a single mistake) and restart services when throwing a few switches and typing a few lines in the terminal is so much faster and practically immune to error.
No matter what your angle is, I get asked often enough how to get started or what I use, that I have decided to write it down so I can point people to this article. While not exhaustive (I do not have unlimited funds to try every IDE, or app that increase productivity), this is what I currently use. For the most part I like it, but try to avoid being too biased because I realize everyone has different needs and different preferences on how things should work. So, as usual: YMMV.

Continue reading