Recent Posts

RSS Feeds

The Mistakes of War

I caught part of a story on NPR on the way home last night with a Captain Tucker of the national guard. He blogged while in Afghanistan and recently published a book from that material. During his interview he related a story in which his unit had received intelligence about some Taliban supposedly hiding out in a particular mountain area. He called in an airstrike but 10 minutes before the strike a government official (member of parliament) arrived to inform him that they were not Taliban but, in fact, the people he had received his information from were. He went on to express how he would have felt had that official arrived after the strike and not before, how he would have killed innocent civilians.

My open question for Captain Tucker is this: How many air strikes did you call in and did not find out later "officially" that many innocent civilians were killed? Do you honestly think this was the only mistake like this?

Permalink     No Comments

Market charging me $3??

I suppose it was bound to happen eventually. Let me first say that I already knew about the Market hack where users can "buy" your app, then request to cancel within 24 hours for free - but they've already gotten the download! I protect my apps by requiring a registration key even on my paid apps in the Market.

But what I didn't know was, as the late Paul Harvey would have said, the rest of the story. If your paid app is less than $10 the user can request a chargeback which will be automatically approved by the Market - at a $3 expense to the developer!

This is a crazy policy for Google to have. I suppose the upshot of this is that my next app, WordBox, will have to be on sale for $10.01 in order to avoid the automatic approval of the chargeback. If I get a couple more chargebacks on my $0.99 apps I will simply pull them from the market - I have to sell 5 for every chargeback just to break even!

Permalink     No Comments

Blogging from my G-Phone

Sitting here with Melanie and waiting for the kids to get done at the state fair, so I thought I'd try blogging from my G-Phone. Last night I started on my port of WordBox to Android. I should have it mostly working in another day or two except for the solve function. My PalmOS version can solve in a couple of seconds but the android version takes minutes. Haven't figured that one out yet.

My brother Kevin is trying to get into WebOS coding for the Palm Pre but so far it has been slow going. He wants to port some of my android apps to that platform but the developer tools for WebOS just don't seem as mature as those for the android.

Permalink     No Comments

My Android App Stats

After the first full day of my first three Android apps being on the Market, here are the stats (Trial versions):

  • Firefly - 151 downloads, 86 installs still active
  • Foggle - 169 downloads, 66 installs still active
  • Taxi Run - 698 downloads, 413 installs still active
The only comments left so far have been universally negative, although inarticulate. :)

Permalink     No Comments

Android ScrollView and GestureListeners

While working on Foggle, I came across an interesting but frustrating problem. Google searches turned up some other coders with the same problem, but no real concrete solution. The problem was having a view that wanted to respond to gestures, but was itself contained inside a ScrollView. The ScrollView like to "eat" the gestures, as it turns out. After much trial-and-error, the solution I came up with that worked for me was to extend ScrollView so I could catch it eating the gestures, and then pass them through to my child view under some circumstance. My simple ScrollView class is below (FoggleBrowser is the child vie, and in my case is always the child of this FoggleScroller class):

package twinfeats.foggle;




import android.content.Context;


import android.util.AttributeSet;


import android.view.MotionEvent;


import android.widget.ScrollView;




public class FoggleScroller extends ScrollView {




public FoggleScroller(Context context) {


super(context);


}




public FoggleScroller(Context context, AttributeSet attrs) {


super(context, attrs);


}




public FoggleScroller(Context context, AttributeSet attrs, int defStyle) {


super(context, attrs, defStyle);


}






@Override


public boolean onInterceptTouchEvent(MotionEvent ev) {


boolean rc = super.onInterceptTouchEvent(ev);


if (rc) {


FoggleBrowser b = (FoggleBrowser)getChildAt(0);


b.onTouchEvent(ev);


}


return rc;


}




@Override


public boolean onTouchEvent(MotionEvent ev) {


boolean rc = super.onTouchEvent(ev);


if (!rc) {


FoggleBrowser b = (FoggleBrowser)getChildAt(0);


b.onTouchEvent(ev);


}


return rc;


}




}

 

Permalink     No Comments

Android Developer Challenge closes TONIGHT!

About 6 weeks ago I found out about the Google Android Developer Challenge 2. I had read about the first version of the contest about a month after it had ended, and could have kicked myself for not finding out about it in time to enter. So with just 6 weeks notice I told myself I could not let this one pass me by.

Melanie had been wanting me to do a SET-like game for a while, so we settled on trying that first. After finding out about the first content I had already downloaded the SDK and played around a little, but I had a lot to learn. The game we came up with is called Firefly and uses the attributes of color, orientation, and blink rate as the aspects you have to find the same or different, much like in SET.

Firefly took about 3 weeks with all the learning I had to undertake, but once I got it 95% where it needed to be I decided I had time to try another one for the contest. I had always wanted to do a game loosely based on the arcade classic Locomotion (and as evidenced on my Palm software page started but never finished for PalmOS) so that's what I decided to tackle next. My Firefly experience really helped save some time and I got Taxi Run knocked out in 2 weeks. That left me 1 more week before the contest deadline.

Being foolishly optimistic I decided I could crank out a third contest app in a week. I was originally going to do a game similar to Rebound and got started on the physics engine for it. Melanie, however, had other ideas. :) She came up with a greatly simplified version of a concept for the iPhone we had been kicking around for months. This simpler concept was for simulating drawing on fogged glass - you could blow into the phone's microphone to "fog" up your screen, then draw with your finger. I came up with the name Foggle and started working furiously - and got done over this past weekend.

So all-in-all that leaves me today until about 2:00 am to put on the final touches and get these 3 apps packaged up and uploaded to the contest. It would be way cool to win any of the prizes, but in the end we all love playing the apps I've come up with so that's enough. And of course there is always the Android Market to sell them. :)

Permalink     1 Comment

The cost of oil

Oil was over $80 a barrel not that long ago, and OPEC would love to see it there again. As the OPEC leadership is fond of saying, when it comes to oil the demand sets the price. And as much as we hate to admit it, they are right. This is the real truth behind capitalism - forget all the rhetoric about how the competition in capitalism keeps prices down, that has little to do with the way it actual works in the free market. What is far closer to the truth is that the market - including the oil market driven primarily by OPEC - will find out how much people are willing to pay and that sets the price. Even at the current price of about $60 a barrel, do you know what the profit percentage is for OPEC? It's about 2,900%. It costs OPEC about $2 to produce a barrel of oil, according to 60 minutes.

So the next time you think about complaining about high gas prices at the pump, just remember that it is free-market capitalism at it's absolute finest. The cost of production means nothing, it's all about how much people will put up with paying.

Permalink     No Comments

Pirates

The late Paul Harvey could well have termed this The rest of the story....

You are being lied to about pirates

Permalink     No Comments

Drupal and PHP

I've recently launched the Family Advocacy Movement (F.A.M) website developed using Drupal. Drupal totally rocks, and I've learned enough PHP along the way to implement some Drupal modules for the site. The first module I wrote was actually for my Nebraska Chess League site. That module defines a new content type for holding an attached PGN file and uses the jsPgnViewer.js I helped develop to view the game.

Next, I wrote yet another photo/video gallery module for Drupal because I wasn't happy with any of the ones I found. I wanted to be able to create a gallery page and attach a zip file with all the media and that would be all you had to do, and that's what my gallery does. This module will be used on the F.A.M. soon.

The core of the F.A.M. site, though, is a module I wrote called Shared Sites. It's vaguely similar to the Domain Access module, but without any of that module's bugs. :) Shared Sites allows the admin to configure dependent sites, the default set of which is based on the 50 U.S. states. Every site has the same layout and forums, but the content is keyed to that dependent site. Blogs are universal, however, but all the other content is filtered by the site (state) you are currently switched to.

So that's what I've been up to over the past two months or so, but hopefully I can get back to more blogging and chess playing soon! 

Permalink     No Comments

Scrabble Wars


We finally broke in our new Pirates of the Caribbean Scrabble game! And no, we don't play with the screwy optional rules that came with this game. 4 bonus points for spelling Elizabeth? You've got to be kidding me!

Img 8883

Melanie 363, Kent 346. The crazy thing about this game is that on the second turn Melanie spelled cringes to use all her tiles, and then I had my turn and spelled juvenile to use all mine! I've never used all mine before, let alone right after someone used all theirs. The crazier thing was that several turns later Melanie used all her tiles again with the word staring!

Permalink     No Comments

Drupal

I've been taking a good look at Drupal lately. I have some new website projects I was getting ready to start coding, and thought maybe I should look at something like a CMS (content management system) instead. Of course I looked at java ones first, but quite frankly they sucked. That led me into the uncharted (for me) realm of PHP ones, so I grabbed Drupal and started playing around.

It took me a couple of days to get the hang of it, and figuring out what Views did for me was the longest bit. But once I got my head wrapped around most of Drupal's concepts and way of doing things, I was hooked. But then I talked to my brother.

Kevin had just started using another PHP CMS application called Joomla for his personal site. I figured I should take a peek, and off I went to download it and start playing around. At first I thought Joomla looked more advanced than Drupal - it certainly had more eye candy. Then I started adding some extensions like I had done with Drupal, and the bloom fell quickly from the rose. Half of the extensions flat didn't work right, and most I had to register with external sites to even download. I crawled back to Drupal begging forgiveness, and that is where I've spent all my time since.

Since one of my new sites is chess related I was hoping to find a PGN viewer module I could plug into Drupal, but no luck. I have one on NCL that I wrote in javascript and plugged into my java code there for uploading PGN files and viewing them. What I want now is a way to add that to Drupal. Not being a PHP or Drupal coder this might be painful, but I have added it to my infinitely long to-do list, somewhere around infinity/2.

In the meantime, I found it pretty easy in Drupal to create a PGN content type using the IFRAME module and linking that to games on the NCL site. It works pretty well and the playable game shows up on my Drupal site. Not as nice as uploading to Drupal directly, but I'll get there.

Permalink     No Comments

What they don't want you to know

I love it when I come across hard facts like this on how much wealthy people pay in taxes. It shows just one aspect of the true legacy of republicans like Bush - they talk about tax cuts but those cuts never reach very far down the ladder. The richest 400 Americans got a 33% tax cut, down to 17.2%. When was the last time you got a 33% cut? If you're an average American, the answer is never have, never will. If you're at the top of the food chain, however, it happens whenever the stalwarts of trickle down economics are in power long enough.

I can't even remember when my tax rate was 17.2%, but I can comfortably guess it was at least 15 years ago. What a government we have working for us common folk...

Permalink     1 Comment

Corus

I've been following the Corus chess tournament and one fellow observer at chessgames.com noticed the following statistic:

 


Jan-30-09
Premium Chessgames Member
  al wazir:
More than two thirds of the games in Group C so far have ended in wins;
half of those in Group B have; but in Group A fewer than one third.

Make of that what you will.

 

As I've said countless times before, I believe chess games are lost, not won. The higher the calibre of players, the more likely a draw will result. To illustrate this point, look at the results of games between players of equal rating. The lower the rating, the more likelihood of an error that the other player can seize on to win. But the higher the rating, the likelhood of major errors goes down sharply. I think this is what is shown by the above statistic from Corus. To improve your game, eliminiate your mistakes.

Permalink     No Comments

Blago Impeached

It was likely unavoidable - Illinois governor Blago was just impeached. However the funniest, saddest thing I've read about it was this:

"State government has come to a standstill because of lack of trust in
this administration," Sen. Bradley Burzynski, R-Clare, said before the
vote. "We now have the opportunity to move forward, to begin moving
past this era of corruption, pay-to-play politics and abuse of power."

 Uh-huh. Yup, he was the only bad apple in the whole barrel, I'm sure. Hey Sen. Burzynski - be careful on the phone, dude.

Permalink     No Comments

The Overlords have Spoken

Here is a little ditty in follow-up to some changes at work for 2009:

All [redacted] US
Employees:

The purpose of this
email is to clarify information regarding the (2) Unpaid Days Off that [redacted] spoke of in his presentation, on Jan 8th.   The two days selected are
May 22, 2009 and December 23, 2009.  This is a cost savings initiative for the
company that we felt all employees will have a stake in and one that we have
determined is needed for 2009.    

Many employees sent
emails asking how we would handle the (2) Unpaid Days.  The majority of the
emails we received from employees stated that they understood the reasons behind
the Unpaid Days.  Their concern on the matter centered around how it would be
handled administratively.  Many felt that they preferred to have their pay
reduced equally for the remaining pay periods in 2009.  This would reduce the
financial impact of having the reduction happening in only two pay periods.   We
have decided that this is the best way to go.

The net result is that
all employees will see a separate line item on their pay statements from
February 15th – December 31st.  The line item will be
listed as UPD (Unpaid Days Off).  This reduction amount will be equivalent to
the dollar amount for the two unpaid days, divided by the remaining (22) pay
periods.  This is not what is typically considered a true reduction in pay, as a
reduction in pay would present a lower base salary, AND you would still be
required to work those (2) days. 

Thank you for your
understanding and your dedication as we navigate through these challenging
economic times.   

Best Regards,
[redacted]
Human Resources Director

Now I like that they are doing this, don't get me wrong. What I object to is the typical corporate spin-control to continue to defend this as not a pay cut. Sorry but I'll take the red pill over the blue pill, thank you very much.

Permalink     No Comments