Category Archives: James – Himself

Personal stuff, specific to me. Rants, observations, etc.

We Just Have a Difference of Opinion…

“We just have a difference of opinion” – remember that?  We heard that a lot during the pandemic, usually from someone that is talking out of their ass and comparing their opinion to something stated by a doctor, scientist, researcher, or in a published article.  This person is often comparatively uneducated, and inexperienced with the topic at hand.  Sure, everyone is entitled to an opinion, but no one is entitled to have their opinions valued the same as anyone else’s, or even heard for that matter. Continue reading We Just Have a Difference of Opinion…

Bringing Games or Pins to a Free Play Event (e.g. Free Play Florida)?

We all love our vids and pins.  And for those of us that repair and/or restore older games, most of us are proud in what we have done to return them working again and bring them back to their former glory.  And we might like the idea of sharing them with others at an event like Free Play Florida (FPF) where we can proudly display our games to others and let them enjoy them as much we we do.  But if you are gonna contribute games to a Free Play event, there are some things to keep in mind.

(Note: I am strictly speaking for myself here, and not as anyone that is affiliated with FPF.  These are my own opinions and experiences.)

Continue reading Bringing Games or Pins to a Free Play Event (e.g. Free Play Florida)?

Got Screwed by Suzo-Happ

So a site I work with has had two GamePro monitors go down. One of them was from an odd power issue that ended up smoking one of the Zeners on its control board, and the other was just a loose power connector.  These boards use a lot of smaller SMT components that I am not equipped to repair

I went searching for a replacement board for the monitor and found some on SH’s web site here (be sure to have a good look at the example image they show).  The boards had the same markings, so I bought 3 of them so I could have some spares JIC. Continue reading Got Screwed by Suzo-Happ

I Know This Audience – TikTok Users Accidently Baited

So I able to successfully elicit a predictable response pattern, albeit inadvertently, while responding to a video on TikTok that shows a woman in a pool wearing what appears to be a surgical mask.  I had no idea why she was wearing the mask, nor did anyone else in the thread and it was obvious they did not care to (that was the first sign).   And while there was no proof of her putting the mask into the water or the mask being wet (the astute observer will notice the mask retains its shape without sagging), comments included such gems like “waterbording herself.”  Gotta love it.

So I made a comment: “If she can wear it in that environment, other people can handle it in stores.”  It ended up being the bait that attracted all kinds of people, some with some truly witty comments. Continue reading I Know This Audience – TikTok Users Accidently Baited

Covidiot BINGO!

I have long since observed a predictable and rather consistent set of behaviors with the anti-mask, anti-vax, anti-whateverbullshittheycomeupwith crowd that keeps popping up during the SARS-CoV-2 pandemic.  Lemme know if you spot anything familiar:

  • They misspell vaccine as jab or poke
  • They claim the vaccine is poison
  • They claim there will be long-term effects of it (completely misunderstanding how vaccines are different from drugs, and being ignorant of the history of vaccines)
  • Call everyone that disagrees with them sheep
  • Confusion between masks and muzzles or “face diapers” (which do not actually exist – so they must also believe in fairy tales)
  • Like to talk about my freedoms, my rights, but could not name any of them other than what is provided by the the 1st and 2nd amendments  without doing a Google search
  •  And my personal favorite: I refuse to live in fear! (When the only fear present is their fear of science.)

Continue reading Covidiot BINGO!

Family and Arcade Versions of Pandora’s Boxes

So recently there have been these different versions of PBs becoming available that are very popular with those little self-contained panels that house a two-player setup with a game board and a speaker inside the panel. These used to come with the “real” PBs that used a JAMMA connector:

But now they use these newer “Family” versions:


These Family versions should really be called “Home” versions because they have very little to do with an arcade cabinet:

  • They do not use a game’s existing JAMMA harness – causing you to either buy another adaptor or rewire your cabinet
  • They do not use a game’s existing power supply – so you have to wire another AC power supply into your cabinet
  • They do not output the same audio levels (and usually only mono, not stereo), so you might not get the same audio experience or might have to add an external amplifier
  • They do not output CGA-compatible video, just VGA and/or HDMI, so you may have to replace the monitor in your cabinet or get a downscaler to convert HDMI or VGA to CGA
  • If you run “home edition” and “family edition” into a translator, you get the same output ? (actually, “home” and “family”  sometimes produce the same translation depending on the context)

It seems like these Family versions were practically invented for those little self-contained panels.  Some of them can run without a harness connected, just a TV, power brick, and some USB controllers!  Not exactly “arcade” style, huh? No, these were made for the home market, and should be left as such. Continue reading Family and Arcade Versions of Pandora’s Boxes

So-called Web “Developers”

So, I have been seeing this more and more.  I see the term “Web Developer” being applied to anybody that can do basic HTML5 and CSS scripting.  Even worse, I see the term being applied to people that do not know enough to understand how the back end works, or cannot even spell LAMP.

If you can do your job just using Notepad and Chrome (i.e. no compiler), with no back end services, you are just a “scripter.” Just make peace with that, and stop trivializing what real developers do.  And no, you are not writing a “web app,” you are scripting web pages (although maybe for someone else’s actual app).  Does PHP executing DB queries count?  Maybe – if you also (properly) designed the database it is working with.

Continue reading So-called Web “Developers”

Words to Watch Out For When Buying Arcade Games or Pinball Machines

I have learned through many years of posts, sales, people, auctions, and similar experiences that there are certain words and phrases that you need to watch out for when buying games, boards, etc.

Untested

The first one, and it is a biggie – UNTESTED.  Here is the truth: if dealing with a whole game, and it has an intact power cord, it is never “untested” – somebody tried to plug it in and power it on, guaranteed.  When dealing with intact games, presume “untested” means “I plugged it in, it did not work” – in other words, “broken.”

Now, sometimes “untested” really does mean untested.  For example, if someone just got a great bulk deal on a bunch of boards, and want to move them quickly, they may not want to go through the time and effort of testing each one.  For example, it is not worth building an adapter for a board that sells for $50 working when I can sell it for $30 untested – I would spend more than $20 of my time and materials building that adapter.

Things like power supplies may legitimately be untested because they might not want to risk damaging a board because of a bad power supply (not everyone has a rig to properly test supplies under load).  Same goes for controls, coin mechs, etc.  Might not be worth the time to connect and try out each one.

In general, just presume that Untested means the same as Broken.  That way, you are never disappointed.

Worked [time] ago when I put it into storage, on the shelf, etc.

This is another one.  “It worked 6 months ago when I put it into storage,” or “it last worked two years ago before I put it on the shelf.” Same as above – play it safe and consider that to mean untested or just broken.

It Just Needs This One Inexpensive Part…

This is another favorite of mine.  “It is broken and I am selling it for $100.  It just needs this one little inexpensive $30 part and then it will be worth $400, so this is a great deal!” Continue reading Words to Watch Out For When Buying Arcade Games or Pinball Machines

Manager Red Flags

(Attention lawyers and previous employers: the following information does not specifically identify a particular entity. 
You have nothing to worry about unless you think this represents you or your company and you know there is some truth to it.)

As I have worked with a few different kinds of managers/supervisors throughout the years, I have encountered one or two that had various red flags that I ignored but should have paid attention to.  Here, I share some of these red flags with you in the hopes that you do not end up getting screwed.  Not saying I got screwed (well, much), but you may! :mrgreen:

Red Flag # 1 – People tell you to watch out for her/him.
That should be obvious, but sometimes your first impression (which was good, in my case) clouds your better judgement.  Pay attention to what other people are saying about this person.  Even if you treat it as rumor, keep it in the back of your mind.

Red Flag # 2 – She/he has a long history of dismissing or demoting employees with excuses of “no confidence.”
When this manager joined us, it was because of a merger with another company.  My current manager was demoted in short order because of “no confidence.”  Note that he had been with the original company from the start and had been supervising/managing developers (quite successfully, I might add), up to that point.  Other people in the company (the new one in the merger) often mentioned her/his tendency to do this.

(As an aside, I strongly believe that one of the things that would greatly benefit the business world in general is a process for employees to call for no confidence in their manager/supervisor.  Once managers/supervisors realize that they can be called to task for the otherwise unknown shit they pull on their subordinates, things may change for the better.  Companies need to realize that most of the real work is done by those that have not yet reached their level of incompetence.  It is time to move out the ones that are not just incompetent, but possibly abusive and reduce the productivity of their subordinates.)

Red Flag # 3 – She/he exhibits bipolar behavior.
Not in the clinical sense, but you notice that she/he can run hot and cold at the drop of a hat.  Be more caution if this flipping between states is a result of perceiving you as a threat.  For example, she/he once asked if I wanted to be a manager “because I was good at it,” referring to how I worked with developers.  But when I put on my yearly review form that I wanted to become a lead/manager of the team, I was informed that she/he did not think that I would be good at it.  WTF?

Red Flag # 4 – She/he takes credit for things that she/he has nothing (or very little) to do with.  These types may exaggerate their involvement in the conception and implementation of (novel) solutions, or have their name placed on things that were conceived and implemented long before they were even around.

Red Flag # 5 – She/he is personal friends with one or more people in upper management.  By “personal friends,” I do not mean taking the occasional plane ride together, I mean things like frequently getting together on weekends, crashing at each other’s place, etc.  In some (less professional) companies, this can end up being Carte Blanche to do just about anything.  People in this position can become assholes to their subordinates, just because they can, and they have in the past without being called on it.  As as you may find out, the human resources department is sometimes just upper management’s bitches, so people like this are never correctly identified by their pattern of behavior and removed from the company.

Red Flag # 6 – She/he will undermine your authority over, or the respect you receive from, other developers. 
One specific case I can recall is with a problem one of our plug-ins had with another plug-in from another group.  Both worked fine separately, but when loaded into the same application, the other plug-in would sometimes not cleanup its interface correctly and would leave a window on screen that was broken, and would raise exceptions whenever it was touched.
Now, we had access to that other plug-in’s source code, so I wanted to load it up in the debugger to see what was causing the crash.  My manager at the time effectively berated me for this idea, that it was not the way to do things, and saying that “in her/his time,” we never blamed stuff on other developers.  (I never said it was the other group’s fault, I just wanted to get more details on what was happening.)  And then she/he had me make (random) changes to our code to see if we could get the exception to go away.
After a couple of days(!) if no results, she/he then stated in an open conference call “I guess we will have to find someone that thinks outside the box, then,” with other members of my development team present.

Well, I hope that helps… someone…

Agile Development – Scrum Pitfalls

I have been subjected to a few so-called agile development methodologies over the years.  Most recently, Scrum was the one in question.  Well, it was kinda-sorta-almost Scrummish, which means it was not really Scrum at all, but we will ignore that for now.

All in all, the use of stories and a Wiki to keep track of development, testing, etc. was a really good thing.  It kept developers (er, me) focused on what needed to be done, keep straight how it was gonna get done, and identify any problems that would prevent it from getting done.

Add to that the daily 10 minute standup meetings, which was the place to specify to everyone else on the team what you were going to be working on today, and what, if anything, was standing in your way.

However…

There were also some things that got in the way of using all of these tools, and those things tended to be the immediate (and sometimes upper) management, and the business side people.  Here are the three biggest problems we (I) had with things.

Problem 1 – everyone needs to use the Wiki!

More often than not, stories were written by our immediate supervisor/manager after getting verbal(!) information from our business side person.  The resulting stories were usually spot-on for what the business side had in mind, but not always.  When they did not jive with the expectations of the business side person, the developers were to blame, even though we were just following the story!  The supervisor rarely took direct responsibility for any miscommunication.  This would not have been a problem if the business side (and any other interested parties) used the Wiki for its intended purpose.  At a minimum, they should have looked at the stories written by the supervisor to make sure that everything was kosher.

Problem 2everyone needs to use the Wiki!

The Wiki was used for just about everything development-related.  What needed to be done, how it was going to get done, how it was going to be tested (the QA team members would also use the same Wiki), and, most importantly, show the progress of a story and its tasks.  This was good.

What was bad, is that developers often would get contacted directly by either our supervisor or our business side person to check on the status of things, or get details on what was being done or how it was being done.  We just spent 10 minutes updating our stories so that anyone could find out what is going on just by clicking a few links.  Now we get to spend more time updating this person or that person.  It is not that the time taken is a big deal.  It is the act of being distracted away from whatever we were working on.  Having to switch gears throughout the day to answer questions that have already been answered on the Wiki is not just a waste of our time, it shows a lack of respect for our time and what we do.

Problem 3Everyone…  Needs…  To…  Use…  The…  Wiki!!!

Meetings further exacerbated this problem.  Sometimes, questions would be asked during the standup meeting that were already answered on the Wiki.  Sometimes, hours prior to the standup.  Not only does this show a lack of respect for the developers, it shows a lack of respect for other people in the meeting as well — their time is being wasted here, too.  It also shows a lack of respect for the development process — we have the Wiki there for a reason.  Use It!  If our examples (anyone above us in the food chain) do not respect the system, then why should we?

Standups were not the only problem.  If any meetings were called that involved other people (like the business side), we would often get stuck answering information that was not just recently on the Wiki, but stuff that may have been answered at the start of the iteration, which may have been more than a week ago!  This is not just disrespectful, but it is a waste of money as well.

Assume that we have a 7-member team that has 5 developers, one supervisor and one business side person.  Assume an average salary of $100K for each developer, $175 for the supervisor and $200 for the business side person.  If the business side person takes up 15 minutes of a meeting asking a question (and getting answers) for something that was already on the Wiki, that costs the company $$$ (remember: time is money).  How much money?  Well, going by contractor’s math, a salaried person’s corresponding hourly rate is ~salary * .0005.  Examples:

$100,000/year ~=  $50/hour.   Rational: assume ~250 working days in a year (including 2 weeks vacation), at 8 hours a day, that comes out to 2000 hours.  So, 2000 hours * $50/hr = $100,000/yr.

If the business person spent 15 minutes reading the Wiki, that would only be 15 minutes of their time, so that would cost the company $25.  By wasting 15 minutes of time in a meeting with the developers and the supervisor, this costs the company $109.37.  ($84.37 of everyone else’s time plus the $25 for the business person’s time.)  Check the math yourself if you do not believe me – more than 4 times as much time and money is wasted!  Big difference, eh?  Even by calling a single developer, and chatting for 15 minutes, this costs the company more than necessary – it costs the business person’s time, the developer’s time, and the time for them to switch gears back to whatever they were doing before the unnecessary interruption.  At a minimum, this is $37.50, and 15 minutes of developer time where they were doing something other than development.

A simple way to avoid this problem – everyone in a meeting should assume that everyone else’s time is at least as valuable/important as their own.  Once you start thinking like this, you may stop wasting other people’s time as easily as you once did.

Conclusion: using any agile development methodology and its tools is probably a good thing.  But you must get everyone involved to buy-in and use the system.  Having anyone (including those higher up on the food chain) refuse to use the system can make others wonder why.  If anyone is too good for the system, then why are we saddled with the burden of using it?  If there is a senior-level manager that thinks that they are too important to click a few links on a web page, then fine.  But this should be handled by a lower manager, not by the developers themselves.

The developers have a job to do – let them do it.

Another Downside of Browser-Based Apps

I once again find myself having to use a web-based application. This is a often just a fancy name for a bloated set of code that provides a little more functionality than what a set of CGI scripts could provide.

The beauty of CGI apps was that they were often very succinct – they were used to process relatively small amounts of data that were entered in a small form.

Today’s applications give you multiple form fields and expect you to enter larger amounts of data. Some even play fancy DHTML tricks to allow you to dynamically add more fields so you can enter even larger sets of data. Nice, huh?

But what happens if that server goes down while you are entering all that data? Or if the people operating the site do not take into consideration just how long you can be entering data into one of their pages? You usually do not know about this as you are entering the data, and usually are not aware that you are about to lose all of that data you just entered until you press [Submit] and get back an error — too late!

Now, I do not script web pages, so I could be wrong about this… But we are in a world where we can play all kinds of fancy AJAX tricks, so why the HELL do web scripters (not developers, that term is reserved for people that do more than just write fancy client-side script) not just put a little AJAX code that keeps hitting the server to do things like (1) make sure it is still alive, (2) check for impending session timeouts, (3) and other stuff that make web apps appear more robust and professional?

Having a warning that the server has gone down before I submit some data would be great – I could copy my data to Notepad and then get it back when the server comes back. Now, this would be harder for pages that contain too many fields, but that is another indication that your app needs a better platform.

IIRC, even 3270-based form-style applications could handle server disconnections better than today’s equivalent browser-form based applications — at least they had an icon on the status line to indicate session state! That is the ironic part about this… not only did we take a giant backward in UI evolution, but we completely missed the robustness that those older applications had.

Hurray for progress!

Remember kids – while lots of applications can work in a (D)HTML/AJAX browser-based interface, not all of them can work WELL in that interface. Read up on what happened when someone tried to port Lotus 1-2-3 to a 3270-style interface… Wanna guess how well that went?

Assumption is the mother of all Fuckups…

So I find myself in the middle of a posting frenzy regarding a story on The Daily WTF: http://thedailywtf.com/Comments/A-Problem-at-the-Personal-Level–More.aspx.

The point of my posts was that by withholding the assumptions made by the interviewer with his “one right answer”-kind of question, you put the interviewee in a bad position. (The link above explains the scenario.) IME, in the absence of specific details, one is likely to draw upon their experience to formulate a solution.

So when I read that according to the interviewer, the one right answer was to use a move operation to relocate the complete data file to where the watcher was looking for it. Of course, my first question was if the move was atomic or not. Far too many posters claimed that it always(!) was, other more intelligent ones indicated that it should be.

So my first post there was asking about different filesystems. For example, the average Linux filesystem can support many different filesystem types: ext2, ext3, ffs, UFS, RiserFS, FAT32, NTFS, etc., and can have filesystem locations on different partitions, drives, and even network locations… So what if the source and destination locations are not on the same device/partition? Are the moves still atomic? My experience with both Linux and Win32 filesystem driver code tells me no, so that is what I posted, indicating that the assumption that everything is on one filesystem/partition must be known.

This post started to draw out lots of interesting people… One started talking about how the POSIX specification states that renames (and moves?) must be atomic, but did not know enough to realize that some systems may play fast-and-loose with the specification (Hello, Windows!). Another started talking about how the rename(…) syscall (the syscall!) is atomic. Well duh – most C-style functions are… it may return to the caller only after the rename (or move) is complete, but that does not mean that the behind-the-scenes action is atomic to an outside (filesystem) observer.

It amazes me how so many people just do not “get it.” Maybe I am not just a good communicator…

Or maybe these people really should stay away from a keyboard as much as possible… 🙂

Software – Robust vs. Works

I got myself involved in a thread on The Code Project Forums that lead to the idea of Robust software, and one of the posters said:

I call an application robust if it’s in use in the real world for a lengthy period of time and no data has been lost and no one has experienced downtime as a result of a bug in that app.
That’s the bottom line in the real world.

(Obviously, this developer never accidently opened a binary file in Notepad — which it will let you do, and is a very quick way to end up in the “data has been lost” scenario.) To which I responded why I was glad that he did not live in my real world, because the criteria he provided was a very low target in my opinion.

However, upon further reflection, while I still may not want developers like that in my world, I would just love to live in his! Imagine – not having to worry about things like data consistency across distributed systems, ordering, synchronization, and distribution of asynchronous events! Not having to think about the amounts of money that could be affected just by one little bug in the code somewhere because hey! – it did not lose any data, and the trader kept on using the system, right?! That would be heaven!

It would fan-effing-tastic to be able to use Notepad as the model of what “robust” means! When was the last time you used Notepad? How long has it been around? Ever lost data or experienced downtime due to a real bug in it?

Imagine how much more simple developer’s lives would be if that were the case…! Hell, at least I know that I would sleep better at night!

A death close to home…

This past Sunday evening (04/22/07) a teacher at my child’s daycare died from a stroke.  Her name was Klara S. and she was a very nice woman and a kind soul. 

While on a prior contract, I had arranged to spend some time once a week with my kid while at daycare.  Klara was one of the teachers that was taking care of my daughter during that time.  I found her to be an excellent teacher for the room as she was very attentive and had great kid-sense, meaning that she was able to keep her eyes on everything while still getting things done.

To my knowledge, she is survived by a husband, a daughter, a son and one grandchild.

All of our best wishes for her family and friends.

I want to meet the developer(s) of Sybase SQL Advantage…

Version: 12.5.0.3/EBF 10752 IR/P/NT (IX86)/OS 4.0/Wed Jan 15 12:59:30 2003

Why? Because I want to ask them why it takes SQL Advantage ~16 seconds to process a query that returns 674 rows of ~70 columns each and display them in Grid or Text output, when I have written an application that goes through two additional API layers above the CT libraries, and can do the same thing (even in a Grid) in less than 2 seconds?

You actually have to go out of your way and TRY to write code that slow – that kind of lousy performance does not happen automatically. That is the kind of stupidity that has to be cultivated through bad practices.

I just want to know how someone could write such an app, and consider it suitable for release to the public. I need to know the mindset behind that, so I know what questions to ask potential employees during an interview so that they can be weeded out. I do not even want to sit next to someone like this, for fear of them making be dumber via osmosis.

I can only hope that the GUI developers are not the same ones that implement the underlying libraries or the RDBMS itself…

Just not getting it…

I came across a poster some time ago (I think on /.) that had an interesting signature. It read something along the lines of:

When someone says: Lead, follow or get out of the way, get in the way!

I remember thinking at the time that the poster could likely use some more experience in the real world and that (s)he suffered from a fundamental misunderstanding of how the world works. I was thinking that if you are ever in the above situation where something important is going on, or there is an emergency, getting in the way is the absolute last thing that you should do. I felt that situations like that are perfect times to apply the Universal Assumptionassume that they know something that you do not.

Now, it is a year or so later, and I have concluded… That I was exactly right. There is no reason why anyone in their right mind, when faced with a Lead, follow or get out of the way scenario, would assume that becoming an impediment would be the right thing to do.

Now, there are times when you should get in the way. But the prerequisite for that is actually knowing what is going on, knowing a better solution, and having a means to implement the solution. Otherwise, getting in the way is a sure way to get knocked on your ass.

Worst… Spam… Ever…

So while browsing through my spam-basket I came across an interesting message that was caught by SpamAssassin.  The headers from that message follow (edited slightly to remove addresses and to emphasise details):

Subject: §Ú¬O¤@­Ó·Å¬Xªº¨Ä¨Ä¤k«Ä.·Q´M§ä¨ë¿Eªº­ô­ô±z³ßÅw¶Ü?¡ð20·³
X-Spam-Status: Yes, score=63.4 required=5.0 tests=BAYES_99, DATE_IN_FUTURE_96_XX, FORGED_MUA_EUDORA, FORGED_QUALCOMM_TAGS, FROM_ILLEGAL_CHARS, HEAD_ILLEGAL_CHARS, HTML_30_40, HTML_IMAGE_ONLY_08, HTML_MESSAGE, HTML_MIME_NO_HTML_TAG, HTML_SHORT_LINK_IMG_1, MIME_BOUND_DD_DIGITS, MIME_HTML_ONLY, MIME_HTML_ONLY_MULTI, MISSING_MIMEOLE, MSGID_SPAM_CAPS, NORMAL_HTTP_TO_IP, RCVD_DOUBLE_IP_SPAM, RCVD_IN_BL_SPAMCOP_NET, RCVD_NUMERIC_HELO, REPTO_QUOTE_QUALCOMM, REPTO_QUOTE_YAHOO, SUBJ_ILLEGAL_CHARS, UNPARSEABLE_RELAY, URIBL_JP_SURBL, URIBL_OB_SURBL, URIBL_SBL, URIBL_SC_SURBL, URIBL_WS_SURBL, X_IP, X_PRIORITY_HIGH autolearn=spam version=3.1.7
Date: Tue, 19 Jan 2038 11:14:07 +0800
X-Spam-Flag: YES
X-Spam-Level: **************************************************
From xxxx.xxxxxxxx@xxxxxx.com.br Tue Oct 24 16: 43:51 2006
X-Spam-Checker-Version: SpamAssassin 3.1.7 (2006-10-05) on xxxxxx.xxxxxx.com
Message-Id: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: multipart/mixed; boundary="----------=_453E7B09.452041D8"
To: support@xxxxxxx.com.tw
From: mailto:¼ÐÃD¡G¡m¥¨¨Å°Ï¡n·s¼W¡m»a¤«ªÅ¡n±j¥´·s¤ù¡A¤ù¤¤¦³¦o¸g¨åªº¼é§jÃèÀY¡I³ôºÙ¥L§@«~¤ºªº¤W¤W¤§¿ï%20(¡m¥¨¨Å°Ï¡n·s¼W¥i·Rµ£ÃCÄ_¨©¡m»a¤«)

I can honestly say – that has got to be the worst message I ever received.  Most of my spam emails never get above a spam-score of 20!  What gets me is that the sender of the message somehow managed to completely mess it up.  So this is an example of the fourth (I think) rule of software development – always test what you are doing (or trying to do)!

I mean, come on now… If you are stupid enough to construct a message that sets off that many spam-traps, you really are an idiot!  It is things like this that give me hope that we will eventually win the war on spam.  Hell, look at the kinds of people we are fighting! 🙂

Some people just do not get it…

While looking for additional backup hardware, I came across an item that displayed an image that had some red text across it stating “YOU STOLE THIS IMAGE FROM XXXXXX XXXXXXXX XXXXXXXXX” (company name changed to protect the stupid). Now, anyone that has been on eBay for at least a few years has seen images that have been switched or show a hotlink warning because the seller was pointing to someone else’s image instead of their own copy.

Being the nice guy that I am, I sent a little note to the seller telling them that it appeared as if they were using a “stolen” image. Here is the email exchange (with edited headers and content):


>>>> Question from xxxxxx
>>>>>
>>>>> Item: COMPAQ / HP STORAGE SHELF xxx XXXX / XXX / XXX / XXX XX
>>>>> (xxxxxxxxxx)
>>>>> This message was sent while the listing was active.
>>>>> xxxxxx is a potential buyer.
>>>>> -------------------------------------------------------
>>>>> Might want to check the image you are using (tip: view it
>>>>> from ebay as a buyer would).
>>>> From: Jay X. Xxxxxxx [mailto:xxxxxxxx@xxxnet.com]
>>>>
>>>> Yeah, and what is the problem?

>>> From: xxxxxx
>>>
>>> Well, if you actually take a look at it, it has the following text on it: “YOU STOLE
>>> THIS IMAGE FROM MODERN COMPUTER SOLUTIONS”
>>>
>>> -Which does not exactly inspire confidence in a seller…

>> From: Jay X. Xxxxxxx [mailto:xxxxxxxx@xxxnet.com]
>>
>> Well *GENIOUS* My Seller name is *Xxxxxx Xxxxxxxx Xxxxxxxxx* This is for the idiots
>> who STEAL my images because they are too lazy to take their own pictures! Are you new
>> to eBay? I remember my first time!

> From: xxxxxx
>
> Mind yourself!
>
> Have your hosting provider implement “hotlink prevention” to help deter theft of images.
> A quick view of this eBay account will show how long it has been active (slightly longer
> than yours with this particular ID).
>
> Again, my observation was that it appears that the image used in your listing was stolen,
> not that you are trying to prevent theft. It was the only thing (up to this point, at least) that
> stopped me from taking a serious interest in the item. A semi-transparent watermark
> with “Xxxxxx Xxxxxxxx Xxxxxxxxx” would be a better way to go, IMHO.
> Take it or leave it – but save the attitude.
>
> Lastly, the word you were looking for is genius, not GENIOUS. First time speller, perhaps? 🙂

From: Jay X. Xxxxxxx [mailto:xxxxxxxx@xxxnet.com]

Well I really do not invest much time in worthless FUCKS, did I spell that right? Like you wasting my time none the less you can not afford the 10 dollar item any way. Not to mention you are blocked from buying any thing from me just on principal. And Genious was a joke; GENE-E-US enunciated you know like moron!

Well folks, that is the kind of talent you can get from Bellbrook, Ohio these days… Tip for the locals – be careful who you work with. Getting involved with amateurs like this guy will only cause problems in the long run.

Take the Advice you are Paying for

After you have been doing something well for a number of years, you begin to gain experience and wisdom regarding it. Generally, this translates to a higher salary and/or rate, as it should of course.

Companies pay this higher salary/rate because of that experience and wisdom. But it makes no sense to have that wisdom ignored by the people you work for. When that happens, it is nothing but a waste of your time, their money, and is demonstrative of complete ignorance of your experience.

And as usually the case, when other people come from a position of ignorance, they tend to inflict the problems it causes on others, instead if correcting their own problem (i.e. their ignorance) first.

The moral – if you are paying someone $167K (or more) a year, you are paying for their knowledge, experience, wisdom, and advice. Time to start getting your money’s worth – take the advice you are paying for; do not unnecessarily question it, and realize that despite your age and position, this person might know something that you do not.


Oh, and to clear it up, this is my point of view on the differences between knowledge, experience and wisdom:

  • Knowledge is what you get from schools and books, magazines, articles, training, self-study, etc. (e.g. learning C++, VB, COM and Java)
  • Experience is gain you get by applying that knowledge in real-life situations (e.g. using C++, VB and Java to solve particular problems)
  • Wisdom is what is learned from the results of the experience (e.g. learning when to use C++ over Java, Java over VB, and what things should and should not be a COM object, etc.)

Dumbass Masshole Driver

   OK – here is a little tip to drivers out there that have not yet figured this out: WHEN BRAKE LIGHTS COME ON, IT GENERALLY MEANS THAT THE VEHICLE IS SLOWING DOWN!

If you are behind said vehicle, it means that YOU will likely have to slow down as well. RIGHT NOW.


Today while driving in in I93 Northbound, a male Masshole in an SUV (which was much too big for him, BTW) rear-ended a pickup truck in front of him. It was light impact; looked something like a 20MPH difference to me.

The Stupid Masshole part is that this accident was completely avoidable. Traffic was coming to a stop, and the woman driving the truck was coming to a stop due to the other vehicles stopping in front of her. Pretty simple idea, huh?

However, the dumbass in the SUV, who could clearly see the brakelights in front of him (both on the truck and the other vehicles in front of that truck), seemed to be completely ignorant of the fact that brakelights generally mean STOP!

This Masshole, true to sterotypical form, continued to close on the truck until it was too late and then *BAM*!

So here is your little tip for the day. Generally, the further you are from an object, the harder it is to detect that you are closing in on it. As such, if you see brakelights on, SLOW THE PHUCK DOWN! Better to come to a stop a couple of car-lengths too soon than to end up in someone’s trunk.

Finger Injury

While cutting carrots with my favorite knife (serrated and sharp as hell), I cleanly sliced off a small part of my index finger on my left hand! It did not hurt too bad – anyone that has cut themselves with something really sharp (or been cut by something really sharp) can understand. It is a strange feeling, not really painful. The pain… well, that comes after.

The bleeding was not severe, but I could not stem it after applying pressure for several minutes, so I had to revert to a little silver nitrate (looks a little like a matchstick). Now, that effing hurt! Never felt anything like THAT before.

Anyway… I had to keep my finger wrapped up for a few days, and one of the things I got used to rather quickly was typing without it. Now that it is almost healed over, I am trying to start typing with it again, and it takes conscious effort to do so! I type with it for a little while, and then I start keeping it lifted and hitting its usual keys with my middle finger!

Amazing how quickly our bodies and/or minds adapt to things like this…

Political Correctness is wrong – yer feelings do NOT matter!

As I write a post on Code Project Here, I think about how being PC has turned many of us into a bunch of wimps.

These days, you cannot even finish telling a joke without someone interrupting saying that they are offended by what you are saying, and after acknowledging them and then trying to finish the joke, they continue to interrupt you: “I don’t think I am comfortable with the content of this joke.

Well then… If the problem is that you are not comfortable with the content, then the problem is that you are not comfortable with the content, and you (not everybody else) should maybe do something about it… Like… Oh, I dunno, maybe

LEAVE!

-And leave the grown-ups alone so that the joke can be finished and someone can get a laugh from it? It is completely OK if you cannot take the joke. And for the most part, other people will be comfortable with your limitation(s), as well. However, it is inappropriate to steal the enjoyment of the joke just because you cannot take it.

Here is a little fact: it is OK to be offended! Really! If you are walking down the street and see a billboard for a movie that shows a little too much skin for your taste and you get offended, all you have to do is BE OFFENDED, stop looking at the billboard, and just keep walking down the street minding your own business. No need to call a press conference to bitch about it. Something on the radio or TV that you do not like? Fine, STOP LISTENING, WATCHING, or just get off your butt and change the channel/station. You will be OK… The world will go on. Really. Trust me. It is OK if you cannot handle anything, but try not to involve others in your limitations.


IMHO, Political Correctness is based on a flawed assumption: everyone’s feelings matter. Why is this a flawed assumption? Because it fails to take into account one very simple and all-too-true concept: some people are just too sensitive. Sometimes, you just have to learn to deal with it, and not expect the rest of the world to change for you.

Parents of small children understand this. Just because your son took a toy from his big sister is not a reason for her to start screaming and crying. It is not that big of a deal, and it does not require all that drama. So while we correct the son so that he learns not to steal things, we also teach the daughter that some things are just not worth crying about. The old saying about not crying over spilled milk comes to mind. As the daughter grows up, we hope she learns which things are worth crying over and which are not.

If your child got upset and started crying each time someone spilled something on the table, would you go out to a restaurant and instruct all patrons sitting next to your family not to spill anything while your daughter is around? Of course not! You would teach her that spilling (or having something spilled) it is not a big deal, and not worth crying over. Political Correctness does the opposite – it not only requests, but REQUIRES that no one spill anything while your daughter is around! Does that not sound a little stupid to you?

Here is a little-known fact – I am generally offended by organized religion. Actually, I find most forms of religion greatly offensive. But I do not go around work demanding that people stop wearing crosses and/or remove pictures of Jesus from their workspaces. Trust me – if I can handle seeing crucifixes and the Jesus Fish everywhere, YOU can handle the crude joke!

The worst thing about the concept of PC is that far too many people are naive enough to believe that bring PC is the same as being professional. This is just plain stupid. Here is a small example – assume you have someone suffers from mental retardation. You can refer to them them in a few different ways:

  • As ‘Tard
  • As special
  • As Mentally Retarded

Calling someone that suffers from this condition “‘Tard” is not professional, nor PC, nor even close to correct. In fact, it is idiotic. That much we can agree on. Moving on.

“Special” is the PC or nice way to put it. But as far trying to provide proper assistance to this person, it does nothing! Why? Because it fails to correctly identify the condition that the person has. And if you do not know exactly what is wrong, you cannot render proper assistance.

“Mentally Retarded” is the professional way to put it. It does not sugar-coat the truth, nor does it obfuscate the underlying problem. As such, it puts the problem right out in the open, where it can then be addressed correctly.

You do nothing for this person by calling them special. If anything, you only do something for yourself by making yourself feel better about how you address that person’s problem. That is a bit selfish, if you ask me. Additionally, you actually might end up hurting them by doing so, because they may not get the assistance they require. Imagine having a school called Foster’s Institute for the Special. If you had one child that suffered from Asperger Syndrome and another that suffered from mental retardation, can you tell if that school is able to help either or both of your children?

Now, some people with limited facilities actually consider it derogatory to identify someone that is mentally retarded as “Mentally Retarded”, or someone that has autism “Autistic”. Where does it end? Does short become “vertically challenged“? Do those that are bullies become “nice challenged“? If you cannot type, are you then “keyboard impaired“?

This is not the fault of the words themselves, it is the fault of those that would use them in a derogatory fashion, and those that are too sensitive to handle it. But as is the case with many things, the solution is education, so that these people better fit into the world. Not trying to change the world to accommodate those people. After all, it is a great big world out there.

Short People and Big Cars

Having driven a decent amount of miles for my age, in a variety of vehicles ranging from motorcycles to my mom’s double-cab dually with a six-horse gooseneck trailer, I can truthfully say that one of the most scary things out there are people driving vehicles that are way to big for them.

In general, I have always believed that you should never drive a vehicle that is taller than you are unless you have a real reason for doing so. For example, if you have to haul a fully loaded four-horse trailer, you are likely not going to be pulling it with a Neon! Likewise, if you have to (read: it is your job to) drive a bunch of kids to and from school, a school bus fits the bill. If hauling large amounts of cattle, a semi/tractor-trailer is appropriate. Got three kids? The Dodge Grand Caravan makes for a safer bet than a Navigator, and is easier to park, especially when all you are doing is bringing the kids to and from Chuck-E-Cheese’s.

However, if simply taking your little 5’2″ ass on an all-blacktop 20 minute drive to and from work, you do not need to be driving an Escalade, H2, or Land Rover. If you are driving an SUV that is taller than you, and the most off-roading you have ever done was pull it into the backyard to drop off bags of mulch, or the most camping you do is when you are taking a nap in the backyard, you are likely in the wrong vehicle.

Nothing is scarier than driving at 75+ MPH on the highway and seeing someone closing in on you who can barely see over the steering wheel let alone over the side of their car when doing a lane change. That is real fear. At nighttime, when it is already hard enough to correctly gauge distance, the last thing you need is some dumbass on your tail illuminating your interior due to the height of their headlights.

Have we gotten so stupid that everyone needs to be driving a surrogate penis now? Even when their travel is so limited that nobody of any significance will see it? Oh, and how is that fuel bill treating you these days?

Geeze…

You know you are fat when…

If you are one of those people that deep-down really knows that they are fat, but still kinda hope that you are not as fat as you think, or worse yet, you are one of those people that really is fat, but you do not think that you are, here is a real simple acid test to try:

Casually mention to someone that you know that you are starting a diet. They are likely to respond in one of two ways:

  1. “Hey, that’s great!”
  2. “Diet? What do you need a diet for?”

If you get the first response… Well, you already know what that means.

Nothing like the shattering of denial to brighten yer day!

Top of the Food Chain, Baby!

Something that has always bothered me… I have always considered Software Developers to be pretty much at the top of the food chain when present in a software company. And that is not just because I happen to be one! Please allow me to explain…

If you are a software company, then your whole business is about software. Hence, your most valuable asset is your group of software developers! Yet many software companies treat their developers as disposable items, when they should be treated as the least disposable asset.

Another thing: software developers are generally the only ones present within an organization that can be fully productive (and make money) on their own, taking on the roles of almost all other members of an organization. For example, a single software developer can start their own company, do market research and design, architect, develop, test, manage, package (for deployment), and market a software product. They can also do their own user support. Now, of course, they may not be at good at marketing, as a large organization’s marketing group, but they at least CAN do it to some degree. Can people in the marketing group do that? How about the H.R. or Sales groups?

On the other hand, almost all other people/groups present within a software organization need the presence of a software product (hence, duh, the software developers) to do their jobs. Without a product, the marketing department has nothing to sell. The QA department has nothing to test. Project/Product management have nothing to manage. And without all that, the CEO has no company to lead. It all starts with the developers!

Using the above example about how a developer can successfully take on all those other roles in the organization, when is the last time you met someone in marketing that can do all that? Or in support? Or QA? Or any levels of senior management or executives?

Also, when is the last time you saw a corporate announcement (from a software company) that seems to credit/mention all other groups in the company except for software development? Dunno about you, but I sure see that shit a whole lot more than I should. Developers do not ask for much; we expect to get recognized for doing our part, and expect to get rewarded accordingly. Sounds pretty simple, huh?

Writing code for 8+ hours a day takes a bit more work and brain power than cold-calling someone, taking a client out to lunch, or bitching at developers about missing a milestone after you “adjusted” their estimates without their permission or guidance!

Something for managers/executives to think about the next time they are tying to figure out how to spend their budget or distribute the allocated raise/bonus money:

Never Forget Where Your Bread Gets buttered!