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.

Tricks and Tools of the Tech Trade

A few days ago I was in a Costco and I came across a display of solar portable panels with a company representative giving demonstrations to whomever would stop long enough to speak to him. Me, being always curious about the current state of various technologies, stopped to speak with him. After discussing the power output per panel, how many it would take to power my laptop (4) and how the system worked, he asked what sort of engineer I am. I admitted to him I wasn’t an engineer (at least in the sense that he was thinking), but I knew a bit about pretty much anything with electrons running through it.

Last week, Dice’s Mark Feffer sent an email to me asking what my specialty is. Meanwhile, I have met at least 3 other people in the IT field this past week and a half. All of them eventually asked what my specialty is. The thing is, my specialty is actually the opposite of a specialist: I know most if not all of technology available, what is coming and what is possible now to integrate them. This allows me to do my job of recommending electronics and computer technology pretty well.

How do I do it? Read on to learn what resources I tap every time it is time to buy any electronics…

Continue reading

20120131 Status Update. AKA: “All Work and No Play Makes M a Tired Boy.”

I have been silent since about the beginning of the year thanks to an old project that is restarting and being revamped (and hopefully finished). So, the focus the next month will be doing that. I’ve intensified my efforts at learning more AJAX and refining both my PHP and MySQL abilities. As I continue to work on one project I find myself using more and more advanced techniques that I simply didn’t use very much before.
It is funny that while working on what I consider prototypes I code a bit “sloppily.” I am often guilty of not commenting my code and only writing about what I did in my dev-log I keep.

Also, even though I plan out the overall architecture of a site, I tend to build things organically from there—only referring to the plan after each component is fleshed out. I know this is not the way pro devs work, and that this practice would be unacceptable in a team development environment. But this approach works for me because I tend to learn faster that way. When I look back at the original files, I can see my evolution as a scripter.

During second pass, I tend to add comments and refine the scripts further. Sometimes I rewrite old blocks of code or methods to use fewer lines and run a bit faster. But most of the time I just pretty up the code and double-check my indenting, method names—making the classes and declarations follow a consistent pattern, etc.

Aside from that I have been delving into other designer’s and developer’s blogs, and have found some of them worth more than just the coding knowledge they have in them. I have found a few programs to track how I spend my time. One of them, RescueTime is a neat one that I wish I could afford/justify the paid version. Just using the free version, my past 3 weeks efficiency ratings have been kind of insane. Last week’s rating was 1.26 (where 1 = 100% efficiency). I owe this to my quickly switching apps and RescueTime double-logging (I think). Either way, I am working between 30 and 60 hours a week.

Also, I have downloaded a ton of free apps using AppAdvice.com’s AppsGoneFree iOS app. Almost everyday there’s a neat app to try in addition to the free games. One app: aTimeLogger, I started using to see how much time I was wasting each week. After a few weeks I can safely say that I do not waste as much time as I thought. This month, I have spent around 30% of my time working (including learning and staying current), 20% of my time sleeping, 20% socializing, 10% absorbing TV, Movies, Music or Books, 8% on maintenance (eating, bathing, chores, record keeping), 5% on traveling, and the last 7% doing miscellaneous things. 30% of a person’s day is about an 8 hour workday. So, I guess working outside an office actually does work for me. What I didn’t realize is that I spend an average of 1 hour traveling each day. If I lived in a place where I could take public transit, I could reclaim at least some of that and use it for reading and learning more.

About learning: The more I learn the more there is to learn. Hopefully I can finish up the revisions to the site and get it to a state were I am happy showing it off. CSS3 is a lot of fun, and I want to play with some of the newer features. My older layouts depended on CSS 2.1 sleight of hand. CSS3 is another step in the right direction, but still not “there.” Good thing there are plenty of trailblazers with helpful blogs about CSS3, PHP and AJAX. Stack Overflow is becoming more and more useful as I try to find the “magic words” to learn how to do things better, smarter, faster.

Last, I have been slowly working on the Communication Series. As I said, I want to finish it and look it over for overall consistency and make it something that flows seamlessly (while also hyperlinking the hell out of it). It is still about 30% written, but that might change, because I also write organically. DiceNews is still on the back burner, but they seem to be backed up a lot. Hopefully my latest revision will make it through the editing process unscathed.

BTW: I just realized today is the 12th anniversary of my first personal web site! Add another 4 years to that and your go back to my first hand coded sites—oh how I hated kludgy table layouts. Add another 4–5 years to that and that’s how long ago I was using dial up to connect to BBSes to connect to the Usenet and argue with people about the Sci-Fi books I was reading. Heh. How times change.

Until next time.

“Fraud in them thar ratin’s” or Combating Fake Reviews

With a world of buying choices at our fingertips for anything from eye liner to refrigerators it’s no wonder more and more web sites are adding user reviews and ratings systems to help guide people to the better products. But like all noble pursuits, there are those that “game the system” and use the very resource meant to help people in order to deceive them into parting with their hard earned money. This article is targeted at software developers that create fake favorable reviews and consumers who aren’t familiar with the ways to spot false reviews. Also, I include a message to online retailers/app stores, etc. that do not police their own reviews to strike down false reviews meant to help or hurt a product, and include techniques to ease the burden of self-policing. Note, this article is applicable to practically any site/store that allows reviews of any type of product.

Continue reading

Excel is not a Database

With the bulk of the comm series delayed, I thought I’d write the light hearted fun entry that’s been on my list for a long time.

In one of my incarnations, I work as a consultant for small businesses and home users. Usually I’ll be referred to someone by a friend or a friend of a friend. My many years of doing this have given me valuable insights of how a lot of people work. And time after time I’ve encountered this, and I can stay silent no longer. So with that….

DHP Presents: Excel is Not a Database!

Continue reading