Monday, May 25, 2015

Hello to the Spammer who keeps posting comments on my blog

For quite a while now, I've been getting spam comments written in Vietnamese on various old blog posts.  I keep deleting them, but I'm sick of it and I want it to stop.

So, I just want to say Hello to the spammer who's been posting things and to let you know that it won't be working anymore.

1.  I added moderation tools, so your spammy advertising comment posts won't show up anymore.

2. Hardly anyone reads this blog, so whatever message you were trying to get out wasn't going far.

3. The subset of people who read my blog and also read Vietnamese are probably....a couple, at best.

That being said, maybe I can change number 3 by saying that Vietnam is an awesome country!  I visited there recently with my brother (adopted) who is Vietnamese.
 Here are some pictures from the trip.  Enjoy!

---Google translation--

Cho khá trong một giờ, tôi đã nhận được ý kiến thư rác viết bằng tiếng Việt trên nhiều bài viết trên blog cũ. Tôi giữ xóa chúng, nhưng tôi bị bệnh của nó và tôi muốn nó dừng lại.

Vì vậy, tôi chỉ muốn nói Xin chào các spammer của những người được đăng tải mọi thứ và để cho bạn biết rằng nó sẽ không được làm việc nữa.

1. Tôi đã thêm công cụ điều tiết, vì vậy bạn viết bình luận quảng cáo spam sẽ không hiển thị nữa.

2. Hầu như bất cứ ai đọc điều này, vì vậy bất cứ tin nhắn bạn đã cố gắng để có được ra đã không đi xa.

3. Các tập hợp con của những người đọc blog của tôi và cũng đọc được tiếng Việt có lẽ là .... một cặp vợ chồng, lúc tốt nhất.

Điều đó đang được nói, có lẽ tôi có thể thay đổi số 3 bằng cách nói rằng Việt Nam là một đất nước tuyệt vời! Tôi đã đến thăm có vừa với người anh nuôi của tôi là người Việt Nam Dưới đây là một số hình ảnh từ chuyến đi này. Thưởng thức!












The Beauty of Silence

Wednesday, December 17, 2014

The Great iOS Customer Experience that is Killing App Developers and Will Eventually Kill the Customer Experience

Prologue:

A few days ago while on a flight from Seattle to Singapore, my wife's iPad2 broke.
That meant I got to hand down my iPad3 to her and buy myself a new iPad Air 2.

Story:

I went to the Apple Store and bought an iPad Air 2.
Back at home, I did the iCloud restore and everything was just as it had been on my older iPad except it was faster, better, and there was more storage space for it.  Life was good.

And I didn't spend a cent on apps.

I already own the apps that I use, and it was easy to get it all onto the new thing.

There were no App upgrade charges because Apple doesn't allow those.
There were no charges for installing my apps on too many devices because Apple doesn't allow those.
There were no new-device App charges because Apple doesn't allow those.

So, Apple made a bunch of money from me today and app developers made nothing.

As a customer, this is great.
As a (former?) App developer, this is terrible.

Epilogue-1:

This will only be great for the customer as long as apps are being developed and updated.  Once that stops or slows to a crawl--and the mountains of garbage apps that are obsolete remain floating around the Appstore, this is going to suck for customers.

Epilogue-2:

One of our apps* (I'm not going to tell you which one*) that has been in the AppStore for over 6 years has a showstopper bug when run in iOS-8.  It is utterly unusable on new devices.  But it is not worth the time or effort to fix the problem.  We're just going to let it sit.  It'll still sell a few copies per month, and we'll take that money.
There are probably tens-of-thousands of other apps that are in a similar situation.
Sorry.

* At least one.  Probably many of them.

Wednesday, August 6, 2014

Java (not Script)

It's been way too long since I posted some pictures and did a travelogue.  Let's talk JAVA!

     if (!thisJava) {
         var itMustBe = true;
         var theOtherJava = itMustBe;
     }
     //*


The island in Indonesia!  Where they grow coffee!

Here's the lush tropical paradise of Java.  The scenery reminded me a lot of the Hana side of Maui, and for good reason.  It's beautiful and tropical.

The Flight:
 We flew over on the Friday before Hari Raya (celebration ending Ramadan--Muslim new year).  This is a popular time for the Indonesian workers who live in Singapore to go home to visit family and friends.  So the flight was packed, and 90% of the passengers were women.  All were very excited.  Most must have only flown a handful of times in their lives (lots of picture taking at the airport and on the plane).  Many were bringing their full carry-on allotment of suitcase + personal item + purse loaded with gifts or candy for their family.  It was fun to be along for the ride.   And the airport in Semarang was PACKED!  All their families had shown up to greet them at the airport, and they brought the kids and parents and brothers and sisters with them.  It was an ocean of people.  All beaming with excitement.  We managed to get through the crowd to our taxi that we had (wisely) arranged in advance.
We drove about 2 hours through the 'holiday weekend traffic' and finally arrived at MesaStila. Island paradise would be another good way to describe it.

This is our 'cabin' at MesaStila.  It looked out over the coffee plantation.  Highly recommended!

Here is Alice and me inside the cabin.


Borobudur!  The largest Buddhist temple in the world.  Amazing!


We did the "Sunrise" tour--although it was cloudy and misty, so we didn't get the bright orange sunrise, just a gradual reveal.  But this leads me to my story about just how great the people at MesaStila are:
We had the hotel (resort) arrange arrange our sunrise tour for us and something went wrong.  We don't know what happened or who's fault it was, but something went wrong.  Alice and I ended up at the reception desk at 4am and no one to drive us.  After making some phone calls (but not frantic phone calls, he stayed calm) the night manager (Farad) stepped out of the building and a few minutes later drove up in the hotel SUV.  He was going to take us around.  This was an all day tour that lasted 9 hours and he jumped in and did it on 10 minutes notice.  WOW!
We don't know how long he had worked at the desk before handling our tour, but WOW.  He rocks!

This is Prambanan.  The largest Hindu temple in the world.  Located just a couple hour drive away from Borobudur.  Each tower houses a different statue.


Back at the plantation, here are the coffee beans. 
They grow robusta coffee because the altitude is too low to grow arabica.  (Arabica is considered higher quality but produces less coffee per berry.  And the coffee they grew was really good!)  Alice and I tasted the berries right off the tree to the amusement of the other people.
Mmmmmmmm. Coffee!

Hope you enjoyed the pictures.

Next weekend we take the bus to Malacca, Malaysia.  Because living in Singapore has its privileges.  


* for non-programmers, that reads "if Not this Java then it must be the other Java."




Sunday, May 25, 2014

Dear America,

Preface:  I am so sorry for the families of the victims in this latest shooting in California and the families of the victims in all the attacks that proceeded it.  My heart aches for you.  I cannot imagine your pain. You have my deepest sympathy.

Dear America,

Hi.  I'm going to be visiting the United States soon, so could you maybe lay-off the mass shootings until I'm gone?

Yea, I know: I'm one of you.  Born and raised in America and lived there most of my life.  The thing is that for the past few years I've been living abroad in countries that are much safer than the United States and I have grown accustomed to that.

I've gotten used to living in the UK and Singapore which both have very strict gun laws.  These countries also have far less violence per-capita than the United States. There is probably a direct correlation there. That doesn't matter because facts, figures, and analysis aren't things that Americans like to do when talking about guns.  So that's fine, I'll let that go.

See:  Annual murder rate per 100,000 people (from Wikipedia)
Singapore: 0.3
United Kingdon: 1.2
United States: 4.8

Oops, sorry, facts and figures there.  I'll move on.

But recognize that I actually am safer at my homes-away-from-home than I am at my home-at-home.

So, America, if you would be so kind, please just lay-off the mass killings for the month of June.  I know I can't change your opinions or take away your guns, so I won't try. I'm just asking you to chill for a few weeks while I'm around.

Once I'm safely back on the other side of the Pacific then knock yourself out (and each other).  I know you will.  Hell, if you haven't changed anything after Columbine and Aurora and Sandy Hook then there's no reason to think you will change anything now.  Whatever.  I guess freedom means that crazy Americans get to kill a few other Americans from time to time.  If that's what America wants (and clearly it is) then that's what America gets.  Personally, if it were up to me, I would maybe try and change something.  But it isn't really up to me.  All I can do is vote, yell, and write offensive blogs.  I also don't want to get the crazy Americans pissed off at me personally because I'm unarmed--I've been living for three years in countries with strict gun laws.

Who knows, maybe after a month you'll realize that not-randomly-killing-people isn't all that bad.  Maybe you'll want to continue even after I've returned home.  Maybe you could go for two months without any mass murders.  But that's up to you.  I can't make that decision for you.

So keep your guns.  Just please lock them up while I'm visiting.

Let me come and go in peace.

Kind regards,
Peter

PS:  To the responsible gun owners who may have said something like "I wish I'd been there with my gun because there would have been a lot fewer victims."  I ask if you are trained to handle that type of situation, and I sincerely hope you are.  I'm not sure "Hero-with-gun stops Villain-with-gun" plays out as cleanly and succinctly in real life as it does in your head or in the movies.  Even if you are completely successful in stopping the Villain's rampage; at that point you then become a person with a gun in public who has just taken a human life.  I hope "Hero#2-with-a-gun" who was standing 30ft away can correctly assess the situation and recognizes you as Hero#1 and not Villain#2.  I also hope you don't miss the villain and hit something or someone you didn't intend to hit.  And I hope that nothing else goes wrong, because things can always go wrong.  Even if you happen to be the most feared American sniper in Iraq things can still go wrong.
Let me come and go in peace.

Monday, May 19, 2014

A new Resolution (?)

If the iPhone 6 brings out another screen resolution (as much of the current speculation thinks it will) that may further highlight just how many Apps have been abandoned.

For my company, there will be a select couple of apps that we would update for release--or try to get updated in time for release as long as it can fit with our other work schedules because none of us are full-time anymore.

Certainly FTP on the Go (Standard, Pro, Pro-Upgrade) would get updated quickly.  But that is not a graphics based app.  It's all windows and pages that will resize automatically.  It will probably just need the new icons for the app and toolbars.  Easy.

ContactClean (Free and Pro) will get an update, but these are also not graphic-based, so would be quick and easy to do.  These also typically get a sales boost when new phones are released.

The games are not so easy and will get through eventually.  At least the ones that sell reasonably well.

World1-1 will just scale-up since it's 8-bit pixel art to begin with.  That's helpful.

Poker Apps (Holdem, Holdem-Free, Omaha, All-In) would probably get done next, but would mean exporting a lot of card and chip graphics for all the new sizes, which is time consuming and boring but not very hard.  The source graphics are all either vector or plenty big thanks to retina iPad so there won't be problems with the sources not living up to the challenge. The exception would be some of the card protectors, which may just have to scale up and people live with it.

Not sure what gets done after that, if anything.  Pawn'd? Bloc'd & Bloc3d? Knife Dancing?

Any game that uses non-vector stock art may take longer if it gets done at all since those can be harder to scale-up depending on the source.

If I had to guess:  if only the top 1000-2000 apps overall (0.05% - 0.15%) got the update to fully support the new resolution then most people wouldn't notice or care that the rest haven't as long as they scale up and don't look to pixelated.

And Apple better make things work pretty good in the new resolution because there are going to be a lot of apps that will not get updated.
Apple's press will talk about the mad-dash to update apps just like ios7.  And how many thousand get there before release day.  They won't mention the million+ apps that won't get there by release day and probably won't get there ever.

Finally, as I said when retina first started going into devices, if we have to include different graphics sets for @1x, @2x, @3x(?), HD, HD@2x, and HD@3x(?) then that's a lot of excess baggage since any one device will only use a single graphic set.

Monday, May 12, 2014

Surviving (or not) in the Apple AppStore Now That the Party is Over

 The bulk of this article was written back in December but I never posted it.  Things have gotten worse.  Where the article says "We may have to shift to part time..." we already have. "We have a couple ideas that could still hit..." they haven't.

Also the 58 apps number may be slightly inaccurate.  we've released new ones since then, but also removed some of our crap because we didn't want potential employers finding our old garbage apps instead of the good ones when checking into our work.  (FYI: we only removed them from sale in the USA; not worldwide.  The "no reason to clean up after yourself" section below still holds true.)

December 2013:
-------
Yes, you heard that right:  The AppStore party is over.

Or, more specifically, there are a happy handful of apps are making millions of dollars and hiding the millions of apps making a handful of dollars.

The company I work for--that my brother founded--has been in business since 1997.  We have 58 apps in the AppStore.  We've won awards and been featured in magazines and books.  And now we may have to shift to part-time or side-project and get other jobs soon.  That sucks.  (We have a couple ideas that could still hit.  Hopefully! But if they don't...that sucks.)  And a lot of the problems are things that we are powerless to fix. And that sucks.

"Millions of Apps!"
As more and more apps flood into the AppStore it becomes harder and harder for smaller, independently developed, or niche apps to get noticed at all.  If you don't get noticed, you don't get sales.  Now it is just a question of whether Apple decides to feature you or if you get written up in one of the big tech blogs.  If you don't...you're screwed.
That brilliant App idea you had?  Someone's done it already.  And even if yours is better it's likely that no one will notice.  And why should anyone pay for yours when there's a crappy one for free.  Yes, in 2009 you may have gotten rich off that idea.  Today, it may buy you a cup of coffee.
This issue is exacerbated by some systemic problems with the AppStore itself.  Problems that at present, Apple probably won't fix.  In fact, Apple has almost no interest in fixing them.  Because Apple likes to strut out the big numbers--the big number at the top is all that matters to Apple.  They like the fact that (as of this writing) there are over 1 million apps in the US AppStore and almost 1.5 million worldwide.  The other fact that at least 80% of those apps (800,000 - 1.2mil of them) have almost no sales and have probably been abandoned by their developers is of no concern to Apple.  Those apps still count toward the impressive sounding total.

They want their big number to stay bigger than Google's big number and Microsoft's big number.  The percentage of dead apps doesn't matter as long as they stay in the pile.

Apps vs. Music
One of the main systemic problems with the AppStore is that it grew out of a music store.  Music works very differently than software.  As music gets old it may become less popular, but it never becomes obsolete.  There are people in the world that are listening to Mozart, or Sgt. Pepper's, or London Calling, or OK Computer (or...hell, why not: New Kids on the Block) for the first time today and enjoying that music just as much as the people who listened to those songs when they were new.  But no one is loading up Asteroids, or VisiCalc, or Doom, or Word 2.0 and feeling the same way people did when those pieces of software were new.  Software doesn't work that way.  You may feel nostalgia, but you won't feel mind-melting awe.
Vinyl records: YES.  5.25" floppy disks: NO.
Software doesn't age well.  Particularly utility or productivity software does not age well.  People may occasionally feel nostalgic for an old video game, but no one loads up Word 2.0 or WordPerfect on MS-DOS when they have a document they need to get done for their business.

Which means that developers need to constantly update their software in order to keep it relevant.  A band never needs to go back and re-record an album because studio technology has improved and the recording would sound better.  And if a band did decide to do that, they would not give away the 'new' album free to everyone who bought the first edition.  The recording quality of a Louis Armstrong album is not going to be as good as a teen-pop album recorded today. But that doesn't matter because the quality of the music can be appreciated separately from the quality of the recording.  Software does not have that luxury.
Old albums become back-catalogue. Old software just becomes obsolete.
No Incentive to Clean Up After Yourself.
Once a developer pays their annual fee to list something in the AppStore, they can list as many things as they want.  And there is no incentive to ever take something down.  Even if it's old, obsolete, and the developer has no desire to ever update it.
Let's say a developer has an old app that sold reasonably well in the past, but has had its run and isn't selling much anymore. And the developer has moved on to other Apps.  However, let's say this old app still makes about $6 per month.  Well, when your choice is $6 per month or $0 per month and you don't have to do anything either way... You take the $6.
Yes, it's crap.  No, it doesn't support iPhone5.  Yea, it probably crashes on iOS7 (I don't know, I haven't installed the thing in years.) It may not even support retina displays, I can't remember.  If someone emails about it, I just delete the email.  I have more important things to worry about. Whatever, $6 per month is still better than nothing. 
This problem could be solved by requiring some nominal yearly fee per app.  Except Apple would never do that because developers would immediately take down all of their apps that aren't making any money.  This actually would be fantastic for the apps that remain, but Apple's marketing would have to change from "MILLIONS OF APPS!" to "200,000 Apps....but they're the good ones that you'll like."

"Give it Away Give it Away Give it Away Now."
Apple's "Free Upgrades Forever" policy doesn't help.  It basically turns the App Store into a collection of 1-off programs that may get an update or two to boost sales early on, but eventually will be abandoned because every time someone buys your app, they are taken out of the pool of potential customers who could buy your app again.  The idea that it's easier to keep an existing customer than to find a new one goes out the window because once they are a customer, they can't buy the same thing again.  That's a tricky concept, so I'll explain it better.
Suppose you design "Cool App version 1" and sell a million copies.
That's fantastic!
Then you work for a year on version 2. To be clear, version 2 is not a sequel, it is the same app just with added functionality, new features, some design improvements, and updated graphics...
If you release version 2 as a (free) upgrade to version 1, then you get 1 million happy users and $0.
If you release it as a separate app, then you get 1 million disappointed users.  But some of them will buy the new app.
The obvious choice is to release it as a separate app.  You gotta stay in business, right?  But you also can't take down Version 1 because then you would lose the ability to make any bug fixes to that version.  You then run into the problem that some new customers may find Version 1 without realizing Version 2 exists.  Once they install V1, they'll likely see the notice you put inside the V1 app saying "Be sure to download the new Version 2!"
This further sucks because none of the good reviews for Version 1 will transfer over to Version 2.
There is no way to offer version 2 as a paid-upgrade to version 1 but contained in the same app package and give people the choice not to upgrade if they don't want to pay again.  (Games can do this to some degree by adding level-packs or things like that, but that is hard to do with utility software.)
There is no way to offer different price points for iPhone or iPad without (again) breaking things out into separate apps.
There is no official way to offer discounted pricing for upgrades.  Although WE DID FIGURE OUT HOW TO DO THIS but doing so further fragmented our core app.

Cheap. Cheap. Cheap.
Most apps in the AppStore are free or $0.99.  It's rare that an app can charge more than $5 and extremely rare for an app to charge more than $10.  Desktop games can cost from $10 to $60.  Desktop productivity software can cost hundreds or thousands of dollars.  For the most part, mobile software costs 99 cents or free.  You have to sell a lot of copies to make any money from 99 cents per pop. So niche software is out. And people are so used to the cheap prices that no one is willing to pay more than that. So niche software is out again. In fact, it's even tough to pry 99 cents out of people's hands.  That is why so much has shifted to free with in-app purchase because people can see if they like something.  But Apple limits so much of what can be done in this way because they won't let an app 'expire' after a time limit, and they prohibit many of the traditional 'shareware' methods of convincing people to pay after they've gotten a taste of what your app has to offer.
---------

That's where the December 2013 writing ended.  I never finished it.  So it just sort of gets cut off in the middle of a thought.  But that's how I feel right now--cut off in the middle of something good.
Our business has no shortage of new ideas for products, new ideas for improvements to the existing catalog, or new things to do.  We just can't do any of them because no one is buying what we are selling anymore.  And they aren't buying the competitors' products either, so we don't know what we could be doing better.

Back in the 'good old days' which was 2008-2010 if an app 'failed' it would still probably make a few thousand bucks over a year or so and you could at least cover a chunk of your time.  Now if an app fails, you're lucky to make $100.  Some of our recent releases haven't hit $50 yet.

One more thing...
Tech support:
Developers have no way of knowing if an email is coming from a customer or a pirate.   Imagine stealing a car off a dealer's lot then turning around and driving it into their service center to collect on the warranty.  That happens here.