Talk About Growing Pains

It was a little while ago I installed Windows 8 with great visions of developing Windows 8 and Windows Phone 8 applications.  Because of an issue that I suspect was caused by Hybrid Sleep mode, I ended up rolling back to Windows 7.

That’s worked out well for me.  I continued to update my CarTracker Windows Phone 7 app for my use.  Meanwhile, I waited for the Windows Phone 7.8 update.  Since that doesn’t seem to be coming anymore, I went to T-Mobile and got myself a new Windows Phone 8.  It’s great.

So then I need to install my CarTracker app on my new phone.  I try to install the Windows Phone 8 SDK on my Windows 7 install.  Nope, you have to install it on Windows 8.  So I fire up my Windows 8 virtual machine and install Visual Studio 2012.  Then I try to install the Windows Phone 8 SDK.  Nope, you have to have a 64-bit install of Windows.  So then I scrap that VM and create a new VM, install Window 8 64-bit, install Visual Studio 2012, then the phone SDK.  That’s working now.

After getting VirtualBox talking to the phone (tip: enable USB 2.0), and getting the virtual machine to talk to TFS on my host PC (tip: bridged networking), I got the CarTracker source loaded.  Then I had to install 3rd party controls.  Finally, I could build and deploy the app.  But I couldn’t deploy to the phone, only to the emulator.  This was a simple mistake on my part. (tip: set the phone app as the startup project)

Before I converted the project to a Windows Phone 8 project, I wanted to branch the source code and get a working deployment on my old Windows Phone 7.  Windows Phone 7 requires the Zune software.  Zune software require .NET 3.5 (tip: install .NET 3.5 from Control Panel>Turn Windows Features On/Off).

It’s been many years since I’ve had to do so many steps to get something working.  This is like Linux-grade configuration and setup.  I’ve been so spoiled by well-working Windows software and such a degree of compatibility that this seems incredible.  And I think this behavior is encouraged.  Everything is all “disconnected” “loosely-connected” “loosely-coupled” whatever.  I don’t think, actually, I’ve very sure that if I wasn’t a programmer and that I hadn’t been here many years ago, when you had to take care of yourself, I would be lost.

Windows 8 is a huge gamble for Microsoft, much like XP was when there weren’t any drivers and DOS applications weren’t compatible anymore.  I guess in a couple years things will be good, but we’re in that painful time right now.  Windows Phone 7=Windows 7, Windows Phone 8=Windows 8.  Don’t try to mix them.

YOLO

Just a little behind the times on this one.  I’ve heard a lot of this “YOLO” thing going on, and after some consideration, I’ve chosen to redefine it.

If you are unfamiliar with the concept of Theosophy, the main point of it is that, as souls, we are constantly evolving through the process of reincarnation.  With each life, we are put here to learn lessons and pay back Karmic debt built up over previous lives.  As you go through these lives, you build inherent skills, which are displayed as natural talent; wisdom, which is shown as common sense; and other intangible skills like spirituality and tolerance.  “You can’t take it with you” is only for material goods.  Your soul’s qualities persist.

So, accepting the teachings of Theosophy,  you can imagine there have been souls who have been through many different lifetimes.  Some have learned their lessons well and gained all the skill, wisdom, and wholesomeness from each lifetime.  Others haven’t learned and still continue to be cruel, greedy, and intolerant.  The world is full of both types of people, you can’t doubt this.

But the world is also full of many more people.  More people on this Earth than ever before.  More bodies, more souls.  These bodies must be filled with young souls, those who have not had the experience of many lifetimes to learn how to be good.  Many that have to pay back Karmic debt through lack and suffering.  Some that are learning from their current situation, and a lot that are not.  It takes a long time to learn some lessons.

You can see this in the attitude of the younger generations.  You can see it every day in so many people.  It’s a sense of desperation.  Even driving in the city, you can sense the desperation in how people drive.  They must pull out in front of you, because they feel if they don’t, they will never get in.  Never.  That’s how the world is behaving.  Now or never.

These people don’t understand that this life is nothing.  There will be so many more lives to enjoy if you live this life right.  If you don’t, you’ll make up for it next time.  And hopefully, you’ll learn it that time.

So, for all the desperate people and their rally cry: “You Only Live Once!” I respond knowingly, “No, You’ve Only Lived Once.”

You Like It, You Buy It.

Over the weekend, I had the opportunity to overspend on a pair of shoes.  I thought of the saying, “who would ever pay retail prices” and realized there are some circumstances where it may be warranted or at least justified.

First, I was in an upscale mall.  Obviously, this is going to command high rent for the tenants.  Things haven’t been so great for the retail sector, so it was good to see the shop even still in business.

Second, the store was not a chain store, just a mom-and-pop.  If not being a reason to shop there, at least it’s a reason to give them a pass on higher prices since they can’t compete with the volume of a chain.

Third, and what I felt was the most compelling reason, was that the store had a selection of product that I had never seen anywhere else.  It was very boutique-ish, but still had a good selection of sizes and colors for each model.  There were a lot of high-end shoes – actually they were sandals – from brands you don’t see in all the chain stores.  It was as if the owners deliberately chose to not stock anything you could get somewhere else, which might have been a wise decision.

Because of that uniqueness, I chose to patronize the store in order to preserve its importance in the retail space.  Without business owners taking a chance like this and making obscure, high-quality brands and specialty models of better-known brands available, everything would be the same everywhere.  Total homogeny.  Plenty of people complain about the generic landscape of retail, but is anyone willing to put their money where their mouth is?

Mainstream Pawn, Not Just Yet

http://finance.yahoo.com/news/pawn-shops-mainstream-141414562.html

I’ve been doing pawn shops long before it was cool.  I’ve always been on the buyer side except for one time in my reckless youth, which I swore I would never do again after seeing my article with a “sold” ticket on it for $300, when I had received $30 for it when I pawned it.  In the many years I’ve been visiting pawn shops, I’ve seen some changes and some things that never change.  I’ve been in small mom-and-pops, large mom-and-pops, and chain/franchise shops and they all need help in some way.

No matter where you go, a clean pawn shop is a rarity.  They may start out clean, but they fall into disrepair faster than any other retail location.  A Cash Converters in PA used to be a pleasant “shopping” experience, but returning to it a few years later, it had become scary and depressing.  It just doesn’t seem possible to hire a staff that can overcome the futility of the pawn industry.  There is no incentive to make things nice, because it doesn’t seem to matter.  My biggest pet peeve and the issue I least understand is why doesn’t the staff at least clean the items before putting them on display?  Seriously, it’s maybe 15 minutes of time.  Surely there’s 15 minutes in a day where there are no customers needing assistance.

The next issue is that you frequently have a dozen of the same things, which is usually the same thing you can buy new anywhere else for only a little bit more money (which is point #3).  You can have six or seven Nintendo Wiis and XBoxes and PS3s.  All kinds of generic DVD players.  Bunches of power drills and other tools.  In the smaller mom-and-pops, it’s like sifting through a garage sale.  Larger mom-and-pops are like indoor landfills.  One shop I visit has bins of wrenches and sockets.  Bins.  As if someone who needs a 1/4” socket will root through the 60 or so 1/4” sockets in the bin until they find the exact one they want.

The last issue is value.  I know first-hand how little a pawn shop will pay for an item and I have seen some internal reports on the profit margins of pawn shops.  The reason pawn shops become incubators of worthless junk is because the owners or managers don’t understand turnover.  The chain that does understand this is Cash America.  They discount items based on how long they’ve been in inventory.  Other chains and mom-and-pops don’t do this.  So when I see a generic MP3 player that is priced higher than a current model would cost on Amazon, I know that item will never be sold and it will end up in the display case forever.  For as big a deal is made over pawners over-valuing the item they’re pawning, pawn shop managers are just as much at fault for hanging on to unrealistic pricing.

See, if I ran a pawn shop (and it is a possible fallback venture if I ever became unemployable), this is how I’d do it.  Obviously, the standard pawnbroker guidelines are followed, but…

  1. The store is clean.  And by clean, I mean floors, windows, counters, carpet, and seating.
  2. The pawning area is separate from the sales area.  This gives pawners some dignity and makes things less uncomfortable for buyers.  I first saw this idea at Cash Converters and it stuck with me.
  3. Items are cleaned before being put on the shelf (see #1).  Items are organized well, like CDs and DVDs.  You have no idea how many times I’ve wanted to just offer to alphabetize a pawn shop’s DVD shelves for free.
  4. Believe it or not, a sparse sales area is more disconcerting than a jammed-to-the-walls area.  There is a balance that has to be found.  At the same time, there is no reason to have seven of the same model of anything on display when three will suffice.  This is especially true with CDs and DVDs.  No one wants to see The Matrix 20 times when browsing.
  5. Items are discounted by age and social media would be used to communicate the discounts. 
  6. Online inventory searches would be a must.
  7. My secret marketing trick: if there are multiple of an item, price one or two at the price you want to get, then mark all the others up at a higher price.  When the cheap one sells, mark down one of the others.  The buyer feels they got a better deal relative to the other ones offered.
  8. Secret marketing trick #2: Bundling.  Like in the example of the tool bins, bundle them.  Find all the sockets to make a full set, match them up with some other tools and sell a whole tool set cheaply.  Sell ladders with electric pruners, sell air compressors with bikes, sell matching component stereo pieces.  Come on, all these pieces are your inventory, they don’t have to be treated as individual items.  This reminds me of an estate auction I was at where if the auctioneer didn’t get his minimum bid, he’d throw something else in with it.  If you wanted that new thing, you’d have to take the other stuff, too.  Turnover.  Do it or get buried.

Key Board

When I’m at work, there’s some desk items that cause some distraction.  It could be the stuffed creatures on the shelf, it could be the NERF guns or the NERF Super Soaker missile (“The F Bomb”).  But for some people, the thing that catches their attention is my keyboard.  It’s a new keyboard, but it doesn’t look new.  It’s old-school.  It’s actually impossible to find a decent picture of it online.  Even the manufacturer’s website doesn’t have a flattering photo of it.  It’s a KeyTronic.  It’s been my favorite keyboard brand for at least 15 years.  It hasn’t changed its look in 15 years, nor has it changed its feeling.

Yesterday, I purchased the newest model of KeyTronic’s keyboards and this weekend, I’ll have the chance to find out if they are remaining true to their roots.  There’s a couple things I can’t live without on this keyboard.  When I say I can’t live without them, I mean, I bought one for home and one for work.  The productivity loss when I change keyboard layouts is significant.  The KeyTronic keyboard is offered with a large L Enter key instead of the straight bar Enter key.  This makes the backspace half-sized and moves the backslash key up to the top row.  The other thing I can’t live without is the tactile snap of the keys.  Less important, but noticeable, is the huge chasm of empty space between keys.  This is a very forgiving keyboard to type on.  When you type code all day and in the evenings either code some more or blog, a good keyboard is required.  Yet another design feature you don’t see everywhere is what someone called the “stadium seating” of the keys.  When the top row of keys is nearly 50% higher than the lowest row, I find my thumb resting more naturally under my fingers to hit the space bar.

I was looking online to see if there were any other KeyTronic fans.  Outside of product reviews, there’s a couple of threads on a mechanical keyboard forum praising the feel of the KeyTronic, although also admitting it is not a mechanical.  So, besides that, I didn’t find much.  And what I read sort of inspired me to type a bit and remember why I liked this keyboard so much. 

In this day where flat keyboards are the standard, and chiclet keyboards are fashionable, it seems like typing is taking a back seat, which is consistent with the slow decline towards content consumption instead of content creation.  You need a keyboard to type a URL or a status update or maybe an email (so long…); you don’t need a task-oriented keyboard.  Gamers buy keyboards made for their needs.  I would like to believe that this keyboard grew up as a product optimized for the needs of the time, which required much more typing than the current age.  But now it’s become a keyboard made for my needs – extended typing sessions.

So now I’m waiting and hoping that I will have a new keyboard that has all the same great feeling of this one but has a look of “what kind of keyboard is that?” instead of “is that even a USB keyboard?”

To Bed To Rise

When Windows 8 came out, I had planned on making a Windows Store app that would be an alarm clock with sound soother for falling asleep.  Hardly a new idea.  In fact, I was driven more by personal need than personal gain.  I have the Dell Inspiron Duo.  The original one, with the JBL audio dock.  It’s possibly the best-designed multifunction consumer device. The custom dock triggers an app that can be used as a slideshow (like on an office or counter, replacing a digital photo frame), or as an alarm clock (best kept bedside).  The point is, when you’re not using it as a laptop or tablet, you’re using it as something else.

Well, you may know that this product got justifiably poor reviews because of its weight/battery life ratio and isn’t in production or even in warranty anymore.  Regardless, I own one and I have two docks, one at home and one at work.  One day I decided to upgrade to Windows 8 and the clock app wouldn’t launch anymore.  This was heartbreaking for me.  And until a recent explosion of programming motivation, I just used the dock as a charging station.

But tonight is the first live run of my replacement app for the Inspiron Duo “DockClock” or “DuoStage” or whatever they called it.  I’m pleased that I was able to come up with a technique for detecting when the laptop was docked as well as discovering the method for putting the screen to sleep on command.  The rest, involving background sounds, alarm timing, and background animation was easy work.

The original:

image

My prototype, with corner controls displayed:

image

My main regret is that I waited so long to write this app, since there’s a lot of Duo owners out there that have probably lost their capability to use the alarm clock in their docks.  But once I’ve given it sufficient personal testing, I’ll put it out there for download.

Oh, and as a passing mention, it appears I’m in my fifth year of posting on this blog.  I sure didn’t expect that.  There’s a lot of history in here, with some really low points in my life. Despite that, I’d have to say that the present is truly a high point of my life.  Will there be another five years?  Who knows?

Code

This is a good video.  In a way, it’s very surprising to me.  I had no idea there was a shortage of software developers, much less a shortage of that magnitude.  The people in the video made some pretty good points, but I think in some ways it overplayed some parts and missed some other parts.  Of course everyone’s story is going to be different, so this is mine.

My first computer was a Timex Sinclair 1000.

image

This computer was a tiny device that plugged in to your TV and had a keyboard with multifunction keys.  The keys had upper case and lower case, and also could print out a graphic character.  But one of the biggest tricks it would do is spit out a whole BASIC command with a single keypress, when it was in context.

So one day, my dad brings home this Timex Sinclair and gives it to me.  He says it’s a computer.  I’ve always loved computers.  Back in 1st grade, in a workbook, there was a page with three futuristic views and you chose which one you felt was going to be the real future.  Unsurprisingly, I chose the one with the big computer banks and I wrote beneath it, “I like conputers (sic) and how they work.”

Since I was so awestruck by computers, I had this device hooked up in no time and immediately started using it.  The very first thing I did was type in my name, which was very difficult because each keypress would generate a BASIC command.  Laboriously, I typed in each character of my name, then backspaced over the command that was inserted.  Finally, I got my name entered and pressed Enter.

“Syntax Error”

I look up at my dad and say “What?  It doesn’t know my name?”

And my dad thrust the owners manual at me and said, “No, you have to read this.”

And so I did, starting with two-line programs that would fill the screen with graphic characters (10 PRINT “JHGJSFGJD”; 20 GOTO 10).  Then I remember the first time I struggled trying to figure out how I could fit two pages of code onto the tiny screen, thinking that if the program code scrolled off the top of the screen it would be lost.  Then I just started “doing it.”  Coding just became something I did.  And back then, if you wanted a computer to do something, you made the program yourself.

My take on being a coder, which isn’t one expressed in the video, is that it’s pretty close to being a god.  As a coder, you are creating things.  And not creating in the artist sense, because most all art is simply a static representation.  A coder creates something that does things.  Mechanical and electrical engineers should have the same feeling.  When you’re done with your work, you can release your creation and it lives on its own.  That’s pretty powerful.

The other thing about coding, and the one that always makes me tell everyone “I love being a programmer”, is that it makes your life so much easier.  If there is anything you do that is difficult, repetitive, or monotonous, you can write a program to do it for you.  Like a boss.  You can’t fully grasp how great of a feeling this is unless you’ve actually done it.  When you spend a hour a day doing a task, and you invest a couple of hours into writing a program, then you gain an hour back every day because that task is now automated, that’s the miracle of software.  And that’s the reason businesses need programmers.

The video doesn’t mention this, but software development has been one of the most resilient professions in recent times.  If you’re good, you should not have any issue finding a job.  Although the video overplays the supposed awesomeness of working at Facebook, Twitter, or Google, there are many great companies that love their IT departments and usually give them a break when it comes it corporate rigidity.  Although some people are after the money (i.e. recent post), you can still get a great income from doing something you love.  And when you love it as much as I do, it’s hardly considered work.

So, get yourself involved with coding, or get someone else coding.  Don’t see it as a chore, or a task, or as work.  View it as creating, as art, as play.  Create something tiny and say, “what if?”, then “what now?”

Married Bliss… with Taxes

It’s time for the 2012 edition of Tax That Married Couple.  Let’s jump right in to the numbers.  For previous posts on this topic, check out the Taxes tag.  Here’s the tax charts for last year and this year:

2011 Taxes

Single Filer 2011

10% on the income between $0 and $8,500
15% on the income between $8,500 and $34,500
25% on the income between $34,500 and $83,600
28% on the income between $83,600 and $174,400
33% on the income between $174,400 and $379,150
35% on the income over $379,150; plus $110,016.50

Married Filer

10% on the income between $0 and $17,000
15% on the income between $17,000 and $69,000
25% on the income between $69,000 and $139,350
28% on the income between $139,350 and $212,300
33% on the income between $212,300 and $379,150
35% on the income over $379,150; plus $102,574

2012 Taxes (from page 105 of the 1040 instructions)

Single Filer 2012

10% on the income between $0 and $8,700
15% on the income between $8,700 and $35,350
25% on the income between $35,350 and $85,650
28% on the income between $85,650 and $178,650
33% on the income between $178,650 and $388,350
35% on the income over $388,350; plus $112,683.50

Married Filer

10% on the income between $0 and $17,400
15% on the income between $17,400 and $70,700
25% on the income between $70,700 and $142,700
28% on the income between $142,700 and $217,450
33% on the income between $217,450 and $388,350
35% on the income over $388,350; plus $105,062

Ok, as in all other years I’ve been doing this, the break happens between the 25% and 28% brackets.  When you’re married, you’d think you could stay in the 25% bracket until you collectively make $171,300 (which is double the upper bound of the 25% bracket), but no, you jump to 28% at $142,700.  That is $28,600 earlier.  Last year, the 28% bracket started $27,850 earlier.  It just keeps getting sooner and sooner.

The salary range for couples getting screwed this year is between $71,350 and $85,650, a range of $14,300.  That’s about the same as it was last year.  So if you and your new spouse are fairly successful and equal earners in that salary range, surprise and congratulations!  Why do gay people want this?

So all these years, I’ve been complaining about this marriage penalty, but there is a common belief that you pay less taxes when you are married.  The tax charts in the 1040 instructions stop at $100,000, so there is no easy way to visually compare a single person earning $50k or more against a married couple who each earn $50k or more.  So I wrote a quick program to calculate taxes using the single and married tax charts and ran a bunch of numbers through it.  Here’s the results:

image

Single Income is just what it sounds like.  Married Income is double that value, assuming both people making the same amount.  Single tax calculates the Single income against the single tax chart.  Married tax calculates the Married income against the married tax chart.  Married Tax as Single simply divides the total married tax in half, showing each person’s share of the married tax burden.  Premium per Person  shows how much more each person is paying for being married.

My plan was to find out at what point your taxes become lower when being married.  I wanted to make the point that it happens at an unreasonably high income level.  It turns out that the savings never happen.  After the tax rate split at about $71k, you pay more being married.  It’s not as much as I originally calculated, but still more.

In all my previous posts on taxes, I definitely exaggerated the impact of this marriage penalty, and because of the graduated tax chart, I was miscalculating its financial effect.  I regret that a little.  But with more in-depth research, I found that the actual situation isn’t all that much better.  The more income you make when married, the better off you are being single, starting at $71k.

I think I’ve now beaten this topic into the ground and I won’t bother doing these in future years unless something interesting happens with the tax code.

The Benjamins. Yeah… About Them

Jobs are like a second life.  In this second life, you have work to do, you can have relationships, you can have good and bad “existences”.  I’ve seen co-workers come and go in all different manners.  Some people are squeezed out and their departure is no surprise, some leave suddenly, voluntarily or not.  Some people you want to go and some you want to keep.  And in every case of departure, as with a departure in the first life, there is some soul-searching and some situational evaluation.  Very recently, some news was broken that one of our work family members was leaving.  My reaction to the details of the departure  was unlike others I had previously.

This person had come to us less than 6 months ago.  He came from a job he disliked and he fit in with us very well.  Moreover, he was a hard worker and had excellent skills.  In my opinion, he was going to go far in our company.  This all ended when he put in his two weeks notice.  In IT, there’s always new opportunities and new challenges to take on.  Developers are eager to apply their skills in a new environment, and many cases, fellow workers wish them well, because they understand the excitement of going off to tackle new problems and come up with great new solutions.

But not this time.  This developer was going back to his old job.  Why?  Because they offered him a boatload of money.  That’s the only reason, and it’s the only reason I need to write him off completely.  He knows he’s going to have to work harder, because the dev team at his old job has mostly quit.  He knows he’s going to have to sacrifice his personal time to be on call.  He knows he’s going to be working with the same management he didn’t get along with before.  For what?  Money.

I can forgive job hopping for money when you’re in your 20’s and 30’s, because there’s lots more time to find the company that’s right for you and you should get good and bad experiences so you know what to look for. But this guy should be old enough (my age) to know a good thing when he sees it. But he sees nothing but money.  He’s a whore.  That designation fits very well since he’s commented about putting in a year and getting $x more.  Giving up an incredible job at an incredible company to plan to leave another company in the lurch after a year after pocketing their generous offer.  Don’t come back knocking when you’re done with that one.

I’m taking his decision very personally.  In a sense, I feel like I’ve been used.  Like I’ve been the best boyfriend/girlfriend ever, and six months in, was told, “You’ve been great, but I’m going back to my old boyfriend/girlfriend because they make more money.”  “But they beat you!”  “Yeah, but it’s not that bad, and I can buy nicer things.” 

Money won’t buy you happiness, and I’m looking forward to the day he realizes that.  I’ll give him about three months for the reality to settle in.

Why, Baby, Why?

The other day, while working around the house, I heard children screaming in the neighborhood.  I idly thought to myself, “Why do people have children?”  Then I thought a little more and got more serious about it.  Why do people have children?  They say that the people who decide not to have and raise children in their lifetime are being selfish, but when I got thinking about it, it seems the opposite is true.  With a little brainstorming, these are some reasons I came up with:

  • To continue the human race
  • For the experience of raising a child
  • Because your parents want grandchildren
  • Because you need help working your farm/business
  • You need a male child to continue your family name
  • You grew up in a big household and want to have the same experience
  • Babies are beautiful
  • It’s the thing to do/all your friends have babies
  • You’re getting old and having babies when you’re older is risky
  • Your spouse wants a baby
  • You don’t have a spouse and don’t want to be alone
  • Your spouse is going to war and you want something to remember him by
  • It just kinda happened

Of this entire list, the only reason that is not selfish is the first one, and I haven’t heard anyone use that one before.  The last reason is irresponsible, but that’s a different post.

The typical rationalization of parents is “You’ll never understand the feeling of unconditional love,” which is false if you’ve ever owned a pet.  Another common statement is regarding the wonder of watching a child grow and learn.  Yeah, anyone can get that anywhere from any child.  “But it’s different when it’s your own.”  Hear that?  “…your own.”  When coming from a parent, it’s a statement of “Look what I made.”

Obviously, parenting is filled with pride – selfish, dangerous pride.  When you have a child, you give up your own identity and start projecting through your children.  To be fair, this isn’t always the case, but the parents who don’t do this are classified as poor parents or uninvolved parents.  Then, it is recommended you live through your child.

But, isn’t that the proof that child-raising isn’t selfish?  Despite the initial reason for having the child, you have to be selfless and sacrifice everything to raise the child?  Quite the opposite, because by doing just that, you are burdening the child with creating your happiness as well as their own happiness, your success with their success.  Their problems are amplified because they become yours, too.  This is why so many parents (mothers, usually) have extreme separation anxiety at college-time, because suddenly they’re alone with no life.

If people would ask “why?” before having kids, and really look at the reasons and be honest with themselves, maybe we could manage this population crisis.  After all, the first listed reason is well taken care of.