Thursday, July 28, 2016

Thrown Games

Yes, the title is spelled correctly.

Recently, I have been quasi-binge watching Game of Thrones (GoT). I say quasi because I sit down to watch one episode and usually watch a second, or four. Yes, I am late to the game. The series started before I finished reading the first book. I wanted to read first and watch second. You may think I am about to launch into how great GoT is. Well, I am not. Do not bother sending hate mail, I already know I am in the minority.

I am enjoying watching GoT: It is entertaining. However, it is not great. It is at best a C+. Yep, I can hear you movie first people saying "here it comes, another one to blast a movie/series because it does not follow the books." If there are people who watch GoT without having read the books first, I think they might be confused. I am well into season 3, so almost halfway through what is available. There is so much in the books that is not sufficiently covered in the series thus far. Entertaining. I look forward to certain points, dread others, and scratch my head over what is excluded. And that would not be the end of it, but it feels "off" or not quite right. It could be the directing, writing, or acting. It is hard for me to tell. There are certainly points of brilliance in each of those areas. But overall, I am not sure where all the hype comes from. It will also not be a series for everyone. Meh. I will still watch till the end or until I catch up to where I have read up to.

Facebook as broken something again for Sudoku Pseudo and has sent a breaking change notice.  Time to spend a few hours figuring out if it is a simple fix and what impact the breaking change has. Since I think I am the only person that plays it, it may just be time to write it off as a failed experiment. It was better when it was first written, before Facebook changed what apps are allowed to do.

On the proper game development front, I continue to run into problems with MonoGame. Well, more of the same problem really. I have bugs with the current "stable" version. Some of those bugs are  fixed in the development version or were supposed to be fixed in the stable version. I cannot seem to get building from source to work at all on my Mac nor can I get the developer built binaries to work. I cannot update to the latest version of the upstream tool either. Being a volunteer supported open source project, I am not getting much help solving my issues. I would gladly give time back to support it. It makes it hard to give back if I cannot get my primary development environment to work. This means I cannot support Apple TV. My fear is that when the next version of MonoGame gets released which is already two months late, it will no longer work at all on my Mac and may still not support Apple TV.

So where does this leave me? I am coming to a decision point: Should I abandon MonoGame as a platform. The problem then is what does it get replaced with. I have not found any other totally workable solutions. Each of the other platforms I have looked at have issues: Unreal does not work with my mac and is unbelievably bloated and slow on all the platforms I have tested it on. Unity has a monthly subscription and does not provide all the functionality I was looking to use. Lumberyard does not work on the Mac. Those are most of the big guys that have platforms available. I have a spreadsheet of 46 platforms that I have did initial evaluations for. Thrown for a loop.

Tuesday, July 5, 2016

Attack of the business

I finally got my development environment working for the most part. Randomly happened upon some instructions in release notes of all places. You know, those documents called read me or booklets that come with devices. Sometimes I read them. Sometimes they tell you just what you need to know. I have also gotten a git server installed on the NAS backup device. This will give me two backup copies of future development efforts. Backups, they are a good thing.

In the last blog post, I mentioned I stopped reading Facebook but continuing to play a few games there. Now I am mostly oblivious to world news. And I find that I do not mind that. I do miss knowing things about friends who are still active on Facebook. I also miss some of the funny posts. Unfortunately Facebook forces you to wade through too much shit just to maybe find a few nuggets. If they aren't hidden from you. It was better when they gave you more control over what you saw or didn't see.

Sometimes when going to the Facebook games, I read the first page of my news feed, the one where they put what should be most important to me first. For the past two days, it has been the same post with the second day having more comments. I would have read the post before, but it wouldn't have been one that I was "interested" in. I certainly would not have read it twice or read the comments at all.

This led me to thinking about how companies go about retaining you as a client. Facebook does not seem to want to retain me as a client. Nobody at Facebook will call me or email me or even message me to ask why I do not seem to be interacting anymore. I am one person among millions. Facebook gets revenue by showing ads and using your shared information to profile you. Since I have an ad blocker, I never saw ads. So perhaps I was more of a cost to them than a benefit.

Then there are the horror stories of people calling Comcast to cancel service. Comcast will bend over backwards to keep you. If you are a customer of Comcast, it probably behooves you to call them up to see if you can get a cheaper rate. You just have to threaten to leave. You don't actually have to leave.

Next there is a company like Omaha Steaks that thinks calling every couple weeks will get me to order more from them. No, actually, this just makes me order less. Seems to me you have to pay someone to make those calls. That must make your expenses go up, which in turn makes your prices higher.

Then there was some company that was robo-calling. I answered the phone the first time, said I wasn't interested and hung up. 10 minutes later, I get another call from the same company but a different person. The person started with the same script. I told him someone from your company just called me 10 minutes ago. That apparently wasn't in the script, so he kept on. I asked him for a credit card number, figuring he could pay me for training him. He refused. I then asked to speak to a manager. He wasn't so sure about this. I was a little irate at this point. The company wasted my time TWICE. Finally he put me on hold to go get the manager. I decided it was time to hang up before the manager got there. Maybe I will be on their do not call list in the future.

Another one is the company in Arizona that handles calling customers for the local Toyota dealership. They have my cell number because that is the number I want the service people to call when they are working on my car. They can't seem to understand that I do not drive enough to service my car every three months. As if this wasn't enough, because the car is in my wife's name, they call asking for her on my cell phone. This one gets resolved because I have added their phone numbers to my iPhone's blocked list. About once a year, they get a new phone number, still in Arizona mind you.

American Express sends my business a multi-page customized color invitation to get a card every couple weeks. Not months, weeks. This after they already said no to a prior application. I don't need the card. It was to serve a specific purpose, which I met by other means. So sending me something that costs a couple dollars is just wasting money.

Think about how you would want your doctor, auto mechanic, bank, or grocery store to treat you. What can they do better FOR YOU?  Have you told them this? Have they asked you? I usually fill out surveys; that is until they start asking silly questions. Would I recommend them to a friend? If they did a good job, probably not. If they did a bad job, yes people I know will hear about it. I mean really, when was the last time you recommended Home Depot to anyone? Yes, go to Home Depot, you will need to go back again in the same day.

Here is a wild thought: If a business that you current deal with, changed for the better, would you pay them more? More to get what YOU want. If Facebook were to show you what you wanted, how you wanted, without ads, and without promoted posts, what would it be worth to you? One dollar per month? Five? Ten?

This came from someone else, but I use it myself for game purchases. Generally, I expect a game to provide $1 per hour's worth of entertainment. A $5 game should give me 5 hours of entertainment. A $50 game should give me 50 hours. Sometimes I get more entertainment and sometimes much less. But that is the target I use when looking to buy a game.

In today's business world is pays to know who your customer or potential customer is, how you should interact with them, and what they want from you. Do your best to not waste time either yours or theirs. Time is a valuable commodity. Listen to what they want. They may not be right, but that does not make them wrong either. This is how local small businesses thrive.

Monday, June 20, 2016

E3 and Facebook, the way of the dinosaur?

Yes, I missed blogging for two weeks. First was due to being focused and second was because of E3. Status has not changed a whole lot. I have mostly settled on a technology, but unfortunately one of the dependent tools upgraded versions. The framework I want to use (MonoGame), has not yet been updated to that newer version of Xamarin. Being that it is open source, it may be on the verge of being abandoned. MonoGame is a clone of XNA for other platforms. Microsoft abandoned XNA four years ago. Microsoft did buy Zamarin which does promote the use of MonoGame. I am still evaluating if MonoGame can do what I need it to. Having it be completely broken right now does not make it look good.

E3 was very underwhelming. It was borderline bad. It makes me question whether I am going next year. As a comparison, last year I had about 40 games that I took pictures or videos of. This year, I took 3. Three.

This year Sony decided to make a mobile app to register for their most popular properties instead of having lines. They released slots when the show opened and by Thrusday, they were gone in minutes.  I think this is a major fail for Sony. First the miss out because people did not know they needed an app to see or play demos. Second because those people were not standing in line inside Sony's booth, they were in other companies' booths instead. Given a choice between not playing a demo and waiting in line to play a demo, waiting in line wins as long as it is not hours in one line. Those that did have lines in Sony were so long they were mostly outside the booth and hours long. I would have liked to have demoed Farpoint, Sea of Thieves, and Recore. Sony did not even show up with any new hardware other than VR that they showed last year I did see a play through of Days Gone By, as they apparently couldn't fill up the theater from the app and were begging people in the area to come see it. I did not see anything that makes it stand out from the 101 other zombie shooters out there now.

Nintendo: why did you bother showing up? You thought it was appropriate to show up with only ONE title and no new hardware. Not even VR? No open booth. One long line that was closed the eight times I tried to get in it. I even sat near the end of the line to see how fast it moved. 10 people every 15 minutes is pretty slow. And looking inside your booth from the portals had it being mostly empty. Your convention people looked tired and harassed. Good luck getting people to work your booth next year. Tell you what, there was a tiny company in a booth next to yours that was doing ultra cheap VR. Perhaps you could gobble them up. At least they didn't have a line and had more people per square foot in their booth than you did. I would have like to have played the Zelda demo.

As much as this scares me, Microsoft was the closest to being a winner this year. Yes, they did cancel Fable Legends mere weeks before the show. They did show the new slim Xbox. It is not any more functional that the existing Xbox One, but it is smaller and does not have a brick. I did play a couple games on them. Comparing the heat output from the regular Xbox Ones to the Xbox One S had the S being much cooler, as in cool to the touch. Microsoft also came loaded with games to show off. They had to make up for Fable some how.

Lastly, I have stopped reading Facebook. Even after significantly trimming three times, the amount of time I was spending kept growing to more than two hours a day. Most of that time was scrolling past posts I had no interest in seeing. I do not need to see every post someone else likes or comments on. I still play a couple games there. I wish there was an easier way to see what I want to see. I need life, not Facebook Lice.

Wednesday, May 25, 2016

Frustration and Taxes, the new promise

Hopefully this does not end up being too long. Frustration and Taxes. The component that I found last week turned out to be a dud. Frustrating in that I had gotten focused on going down that path only to find it blocked. Even though it is open source, it is written in such a way that I cannot even debug and fix the issue. The example they provided did not work. Sometimes free stuff is worth nothing or in this case a negative amount.

Taxes are frustrating.  But probably not in the way you think. I pay taxes every month. I file forms every month, every quarter, and several times every year. But even that is not the point I am speaking of. People want to get the most value for their money. During a recent trip to Target, the cashier said to me that there was a $5 coupon for the item I was buying and did I want to use it? Realizing what they had just said and that I did not have any coupons, we had a good laugh about it. Of course I wanted to use the coupon they were offering me on the spot. Here we have the same item either for $30 or $25. The same exact item.

Taxes are just like that coupon, except in reverse. 30 years ago, I had it explained to me by a well off person that the goal to having more money was to pay less tax. People with money tend to know how to do this. But think about this a bit. What this really means is that anything that is taxed is something you will less want to use when compared to something not taxed. Let this sink in: Tax something you do not want done.

In a broad sense, any money a government collects is a tax. They do not call them taxes, but they have all the attributes of taxes. MARTA fares as taxes? Think about it. If MARTA was free, you would be more likely to use it. Of course, the government does not actually give free stuff. Anything given for free is paid for by taxes of another sort. Including MARTA or State Parks or Welfare. The government does not create money. It taxes something to pay for that free service. Police officers are paid by tax dollars. Public schools. Roads. But there are a couple taxes I want to point out specifically: Sales Tax, Income Tax, Employer Tax, and Commercial Tax.

Sales Tax says don't buy it. Or if you do, buy it in a way that you pay less tax. My parents reminded me this past week that this is a real objective. They were visiting, but only bought the bare minimum amount of gas while here. They preferred paying a cheaper price in a different state. So Georgia lost out on some tax revenue because our gas prices are higher because of taxes. Those of us that live here do not tend to notice. This is especially true for those in the Atlanta metro area, where gas prices tend to be more competitive and cheaper than the rest of the state. So don't buy gas in Georgia, because we tax it. National sales tax means those with the means will buy stuff from outside of the country to avoid taxes. If there is a way, someone will abuse that way.

Income tax says pay people less, but give them some un-taxable benefit.  Consider two jobs, one where you get paid $5 an hour and another paying $6 an hour. The $5 an hour lets you work from home so you have no commute. The $6 dollar job requires you to commute for 2 hours a day. Take the $5 per hour job as you save on taxes, fuel, and most importantly time.

Did you know that companies pay taxes for each employee they have? This is beyond the taxes taken out of your check. Employers have to pay extra amounts for Social Security, Medicare, and unemployment insurance. So these employer taxes say two things: Pay workers less and hire fewer workers. The Federal and State governments by their taxes want less people employed and those that are paid less. Think about that. Raise the minimum wage and even fewer people will get hired to offset the additional tax cost to companies. Sure people deserve a wage that allows them to be comfortable. But as long as you have employer taxes, companies are encouraged to do as little as possible.

Do you remember the Boston Tea Party from history class? The lesson in that was this countries aversion to double taxation without representation. Some corporations are structured such that the taxes on the earnings are paid by the investors (owners) of the company. Other companies pay taxes on their earnings, then the owners pay taxes on the profits. This is why Walmart does not pay a significant amount of corporate taxes, because that tax is paid ONCE by the investors instead of twice. Yes, corporations hide money. If given the opportunity, would you like to hide your wages from taxes? Especially if you could use that hidden money without restrictions? This is why company’s setup offices in Ireland and other foreign tax havens. Corporate taxes compel the companies to do so. It is not a problem of the companies avoiding taxes, but a problem of the investors not paying taxes.

So our current tax agenda would have you not buy anything, not get paid to work, and hide any money you do have in your mattress.

Government services have to be paid for somehow. Taxes that are fair, unavoidable, and minimize the negative impact are what we need. I do not know what that is, but I know this: The current proposals do not work. Want companies to hire more people? Keep income tax, eliminate employer taxes, and give companies a corporate tax break for wages paid. Want a National sales tax? Tax goods brought into this country at a higher rate than buying them locally. Unfortunately, that violates several trade agreements. Want companies to stop hiding money? Start taxing the movement of U.S. Dollars to other country, regardless of means. Forget double taxes. We already pay taxes on the same thing more than once. Give tax breaks for keeping the money here.

Is that all fair? Probably not. But think about it next time you see someone spout off a tax plan or spending plan to fix this countries problems. How can someone avoid that tax or how is that free thing paid for? Meh. Back to my hole.

Tuesday, May 17, 2016

A Tool of a Different Color


Every now and again, I get asked the question which computer technology is better X or Y? Usually X is Java and when X is Java then Y is most often C++. Typically this is a baiting question. Most Java or C++ programmers firmly believe their language is the best. To me it is comparing two things that are not the same. Each has its place.  This is true of many computer technologies. Java used to be the language of choice for writing something portable. C++ was the language for fast code. C was the language for small code, i.e. device drivers.

It seems that each new project I have started for the past couple of years both professionally and personally has required learning a new language or framework. Very few have reused a significant portion of an earlier project. Most programmers do not seem to do that. I seem to get drawn to new languages and technologies constantly. I attribute this to my ability to learn rather than my enjoyment of learning something new. There is a distinction there, because it has more to do with wanting to use an appropriate tool for the job rather than fitting the job to the tools I have.

Ever tried using a flat head screwdriver on a Philips head screw? Depending on the size and configuration, it can be done. It is rarely effective to do so. I have used a hammer to get a screw out by turning not pounding. I have used a screwdriver to pound a nail into a board. Having the right tool or at least a more appropriate one is so much better.

Over the years I have learned many computer languages/technologies: Honeywell Basic, Applesoft Basic, Integer Basic, 6502, 8080, IBM Basic, Microsoft Basic, C, C++, Java, Visual Basic, Visual C, Objective C, Python, Jython, Bash, PHP, SQL, HTML, CSS, JavaScript, Ruby, Ruby on Rails (vomit), 8086, 80186, COBOL, FreeMarker, and probably a bunch of others that I have totally forgotten about. That just covers what most would consider formal languages. The frameworks for each only serve to make the list even longer.

For the past couple weeks, I have been trying to determine which of three projects is the one I am going to work on next. Part of the problem is the technologies that are available to complete each. I would really like to use something that could be reused for all three projects. Learn once, use thrice. It has turned out that finding a technology that satisfies any one of the projects by itself is proving to be a challenge. The time is not wasted, just filled with learning new technologies enough to judge if they have the required functionality for any of the three projects.

And now it happens. Writing this caused me to search for something that did not make sense and I find what something viable for one of the projects, that probably also works for one of the others. I doubt it works for the third, but that is okay. I am happy just to have a technology that works for one of them. Meh. Back to my happy place.

Tuesday, May 10, 2016

Going back to my hole now

The past week plus have been a little random and all over the place. I had issues getting the iOS version of Maze Pseudo through the review process. It is all good now. Apple TV and iOS versions of Maze Pseudo 1.2 should be available in their respective app stores. So the rest of this are random minor thoughts to go with a random period. Some of these may get future longer blatherings.

Last week saw the second abandonment of a project, Catalog Pseudo. I'm thinking Good Reads is what I am going to use as a replacement. Now if I just had time to do that. Meh. Back to my hole.

When I was a single dad, I made a grocery list that had all of the items I usually bought at the store. I would print a copy, mark off the things I already had. The list was organized by store isle. That was the basis of one of the projects on my list. It is out of the running for the moment. Even though it has the most potential, it would require the most work to complete. Meh. Back to my hole.

Two of the projects on my working list turned into one. Then they turned back into two. Meh. Back to my hole.

There were 6 times more Android devices sold last year than iOS devices. I still like my iPhone and iPad. Meh. Back to my hole.

Apple expects to sell 24 million latest generation Apple TV units in 2016. That is more units than either Nintendo sold of the Wii U or Microsoft sold of the Xbox One in 2015. I wish the Apple TV platform was a little less restrictive. Meh. Back to my hole.

My mother is one of the best people I know in the world. I would think that even if she weren't my mother. Good for me that she is. Meh. Back to my hole.

Purple is my favorite color. Hawkeye is my favorite comic book hero. Hawkeye from the printed Marvel comics has a purple suit. Hawkeye needs his own movie to explain why he does not get to wear his purple suit. I made my own purple Hawkeye costume back in the day. Meh. Back to my hole.

I know someone who struggles. There is nothing I can do for them. You do not know them, but you may know someone else who does struggle who you can help. What are you waiting for? Meh. Back to my hole.

Someone posted a graphic asking if you had ever been had a gun pointed at you to promote gun control. I did not respond. Yes, to the head, while on my knees, 30 plus years ago. I vehemently support the right to bare arms and would own a gun if I could afford the time. Just pissed off 90% of those that read this. Meh. Back to my hole.

My music tastes generally align with the current pop music scene except for some obscure stuff. As far as I know, none of my friends or family has musical tastes even remotely similar to mine. Meh. Back to my hole.

In my primary school years, we were told you could grow up to be anything, even President (POTUS). I do not particularly want to be POTUS, but I would though. I would be a darn good POTUS. Big boy problem: Finding a candidate that is better than me. Seriously, it is me or someone better than me this year. Too bad for the two people that would seriously vote for me that I can't be President. Meh. Back to my hole.

Emptied a cereal box yesterday. Read the outside. It said "See code inside". Looked inside for my winning code and no code. Read it again and it said "No code inside". That implied there were boxes that had codes. Closed the flat and you could still see that it said "No code inside". Figured I could go to the store and find the winning box by looking at the flaps. To bad it really said "No Code inside. Learn more at kfr.com". Thanks Dyslexia for getting my hopes up. Meh. Back to my hole.

The two non-game projects are off the list for the moment. POTUS is wishful thinking. I am still working on getting the courage to do the non-computer project. That means I am officially a game developer. Hopefully forever. I hope this isn't another childhood fable. Meh. Back to my hole.

Random enough? Meh. Back to my hole.

Thursday, May 5, 2016

To Zero and Beyond

Here is another math story to tell a different story. I do have non-math stories. They just are not as relevant to my current events. Late in my high school years, a friend and I got into a discussion about if 1 divided by 0 equals infinity. I do not fully remember how, but we ended up trying to prove this on the chalkboard. It was after a test or something. Or perhaps a large portion of the class was excused for something. Mr. Hampton did not say if it was right or wrong. He let us go at it till the end of class, at which point we had filled half his chalkboard filled with work. He was encouraging and only interfered when we made a mistake, but not when we went down wrong paths. He laughed at us for what we were doing. Not in a funny ha-ha way, but in the joy that we were having a good time trying to figure it out. Here were students trying to use the knowledge he had given us for the pure joy of it.

We begged him to not erase our work. He agreed and taught the rest of the day using only the free half of the chalkboard. We had inconvenienced him, but he saw value in letting us have the thrill of learning. I remember going back later in the day, either after school or during a free period. We continued to work at it until one of us had to leave for something. Perhaps it was another class or sports practice or bus or ride home or somewhere else. We did not finish definitively proving it true or false. But that is not the point. The point was that Mr. Hampton gave us the space to try. He knew we would not be able to do it. We would have needed differential equations to even come close. We were not going to get that far in high school.

After taking differential equations in college, I remember thinking about our endeavor. I never went back and tried completing it. This may be totally wrong, but I think you can neither prove nor disprove it. You do run upon an axiom that states that any number divided by zero is undefined or something like that. Mr. Hampton certainly taught me to not be scared of math. Math does not have all the answers.

So this week has been filled with experimenting, spinning some wheels, and figuring out that time was up and to move on to something else. I thought last week that getting Maze Pseudo for Apple TV was going to be as simple as uploading and pushing some buttons. Turns out something went bonkers with Apple's development environment. I got a strange error message that was not helpful. I emailed developer support, but they just referred me to several web pages that did not help. I got it working. My fix was not the right way. I have been working with Apple as a developer for close to 40 years. You would think I know by now that Apple does not make it easy for developers. It has been submitted. No idea how long it will take to get approval.

The next project has been derailed as well. It is the one I started almost 5 years ago. At the time, I needed a way of tracking what books I owned, wanted or had read. I wanted this information on my phone so that when coming across books for sale I could determine if I already had it. I used to use a database application on my Palm for that very thing. That is the simple description of what it was. When Apple initially released iCloud, the framework for utilizing it was not compatible with the way I wanted the data to be structured. Because of iCloud, the expectation would have been that the book data would be sharable between devices and machines. Another conflict was that I wanted the data to be available even if you did not have connectivity. That was something iCloud does not natively provide. I abandoned the project at that point.

After last year's WWDC, I realized that Apple was now providing functionality that would allow me to do what I originally wanted. When time allowed, I revived the project, modernized it, and started working integrating it with iCloud. Unfortunately, I have discovered that while what I want to do is possible it is not trivial. It will take a significant amount of work and rework to get it to the right place. Now 5 years later, there are other products available that do most of what I want. They do enough that I do not feel that spending the significant amount of time on my version is beneficial. It is still possible, just the cost outweighs the benefit.

I have learned a lot from it, so I do not look at it as wasted time. And this is how it connects to the story I started with: Sometimes you have to explore a path because it is a path you want to see. The path may not go anywhere. As long as you do not walk off a cliff, you hopefully garnered some benefit.

This is another facet to why I dislike talking about my personal projects until they are close to being something solid. The feedback I get is rarely useful and sometimes down right discouraging. Suppose you were painting a picture and someone asks you what you are painting. You reply, "I am painting a bowl of fruit". To which you might get a variety of responses: It doesn't look like a bowl of fruit. Wouldn't it be easier to take a picture of a bowl of fruit? Ever heard of Picasso, he has some wicked fruit bowl pictures. You do know that apples are supposed to be red, right? Meh. I do what I do because it is right for me. If it is right for me, then it will be right for someone else. It does not have to be right for everyone.

Now onto a much bigger problem: which of the four plus one projects am I going to work on next? Probably time to do a plus minus chart with a sprinkle of math. At least there are not an infinite number of projects on the list and no time to work on them.