Thursday, February 16, 2017

Mobile Application Privacy Policy

Thank you for using this mobile application ("App")! Here we describe how we collect and use information from your mobile device (“Device”) when you use our App. By using our App, you are accepting the terms of this privacy policy (“Policy”), and you are consenting to our collection and use of your personal information as described in this Policy.

What do we use your information for?
Any of the information we collect from you may be used in one of the following ways:
  • To access the light function of the Device’s camera.
  • To deliver reports of bugs and crashes of the App to our developers so that they may fix and/or improve the App.
  • To deliver automated advertising to support the development of the App.
Is the camera used by the App?
Only insofar as to access the light function of your camera is the camera used by the App. The App does not take, capture, transfer or store any photos or videos.

How do we protect your information?
We implement a variety of security measures to maintain the safety of your personal information.

Do we use cookies?
We do not use cookies.

Do we disclose any information to outside parties?
We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. 

Third party links
We may include third party products or services on our App. These third party sites have separate and independent privacy policies. We therefore have no responsibility or liability for the content and activities of these linked sites. Nonetheless, we seek to protect the integrity of our App, and welcome any feedback about these sites.

In-App Privacy Policy Only
This Policy applies only to information collected through our App, and not to information collected elsewhere.

Changes to our Privacy Policy 
If we decide to change our Policy, we will post those changes on this page.

This Policy was posted on 2017-02-16. It is effective upon acceptance for new users, and from 2017-03-17 for all other users.

Contacting Us

If there are any questions regarding this Policy you may contact us by submitting a comment to this post.

Thursday, December 25, 2014

The Interview - a metaphor for America

I bought The Interview on Google Play yesterday afternoon, and watched it last night.  It was surprisingly good. I don't know if it's going to win any awards, but it was fairly funny and well-structured. I counted only one jarring transition / awkwardly beginning scene and only one spot in the plot where pacing was off, and at least half a dozen hearty chuckles.

Then thinking about it this morning, there are a few parallels between The Interview and America. The Interview started out as a novelty, something that I caught a glimpse of in passing; I thought "Oh that looks a little cool, I guess. What else you got for today, Internet / media?". I imagine anyone in the late 1400s early 1500s who wasn't investing in America but still heard about it might have had similar reactions: "Oh, that's a little interesting, I guess. Gosh I hope the Inquisition doesn't come by today".

Then the controversy hit. People who were interested in seeing it not blossom went out of their way to put up roadblocks to it. Heavy taxation from the British = Sony hackers. Other, more serious stumbling came:  Revolutionary war, Native American genocide, slavery, prohibition, suffrage struggle, civil rights struggle = major movie theatre chains deciding not to show it in light of asshat terrorist threats. But eventually things kind of work out.

Both America and The Interview have a noticeable amount of sex, but from my perspective neither of them go over the top with it. They both also have a fair amount of drug use, but again, not too much. It's all in good fun and doesn't go off the rails with it. There is also a lot of love in this movie / country: love of one's work, love of one's country, love of things, puppies, lust, and, most of all, friendship. Lots and lots of good, honest, wholesome, heartfelt friendship.

The only excess in this movie is a slight, minor imperfection, and that is the violence. I know a comedy about assassination is going to have some violence, and for the most part it wasn't too bad. At least one part is hilariously absurd. Another part is, at first, shockingly grotesque, but understandable given the situation. At first. Then the second and third time are so cringeworthy, I had to look away. (I'm guessing you will too.) Just like in America.

Overall, I rather like it. Sure, it's got a few problems. Anyone who tells you it's perfect is either ignorant of all the facts, lying, or clearly insane. But definitely worth checking out. Same goes for The Interview.

Thursday, May 29, 2014

Ruboto error starting emulator

So, I've started dabbling with Ruboto: the Ruby way of doing Android.
Looks pretty cool. Fairly straightforward so far. Pretty glaring typo on this page makes me a little concerned, but whatevs. (Why do so many sites not make it easier to report typoes to the webmaster?)

Going by the ReadMe page, I enter this command to start up an emulator:
ruboto emulator -t android-19
That was fast, easily, painless and work. Hallelujah. I'm going to dinner.
I come back from dinner and decide to try some of the automated app generation stuff:
ruboto gen app --package com.dstrube.rubototest --path . --name RubotoTest --target android-19 --min-sdk android-19 --activity MainActivity
Again, easy, but this time not so effective. The generator says "." doesn't exist so it'll create it. Good luck with that, little buddy. So I run it again, this time specifying the folder RubotoTest. All good in the hood. 

Until I try running the emulator again (that I'd closed before dinner). Then I get this noise:

NAND: nand_dev_load_disk_state ftruncate failed: Invalid argument
savevm: unable to load section nand_dev

Searching the google for help gave me only instances where this was happening with Eclipse. Solution: close and reopen Eclipse. Not applicable here. Closing and reopening this emulator just gave the same error again. 

So here's the solution:
1- IF you were stupid enough to make the min sdk the same as the target sdk, I understand, but that was stupid. Do it again, but this time min-sdk = something like 10.
2- ruboto emulator -t android-18

Does closing and reopening the 18 emulator still work? Yes
Does trying to open the 19 emulator again still break? Yes

Is any of this a complete solution? No, but hopefully it'll help someone save a few minutes of hair pulling on this so they can pull hair on something else.

Thursday, April 25, 2013

Flex time weirdness

Consider the following:


If you put that into Flash Builder and run it right now and click the button (this post is written in 2013, late April), you'll probably get something like this:

Beginning of this month: Mon Apr 1 2013
End of last month: Sun Mar 31 2013

However, if your timezone is set to "(UTC) Dublin Edinburgh, Lisbon, London", (as opposed to "(UTC) Monrovia, Reykjavik" or "(UTC) Coordinated Universal Time"), then you'll get this weirdness:

Beginning of this month: Mon Apr 1 2013
End of last month: Sat Mar 30 2013

Why? Well, because during the execution of the code, beginningOfThisMonth = Mon Apr 1 00:00:00 GMT+0100 2013, while endOfLastMonth = Sat Mar 30 23:00:00 GMT+0000 2013. Wait, what? Why did the timezone change? And why did it go to GMT+1? I thought UTC = GMT, no?

Let's see what wikipedia says:
[UTC] is one of several closely related successors to Greenwich Mean Time (GMT). For most purposes, UTC is synonymous with GMT, but GMT is no longer precisely defined by the scientific community.

Well, that's neat. How do we fix that? Best solution: do away with timezones, all together, as a culture. They're way more trouble than they're worth, if you think about it (especially if you, like me, think about a future where we go to other planets). But that's not going to happen soon, and I need this fix soon.

Here's a hint. That leads me to this quasi-fixed better approach:

var beginOffset:Number = beginningOfThisMonth.getTimezoneOffset(); //if utc london=-60; if plain utc=0; if EST=240
var endOffset:Number = endOfLastMonth.getTimezoneOffset();//if utc london=0; if plain utc=0; if EST=240
if (beginOffset == endOffset){/* no problem */}
else {
var offsetMilliseconds:Number = beginningOfThisMonth.getTimezoneOffset() * 60 * 1000;
endOfLastMonth.setTime(beginningOfThisMonth.getTime() + offsetMilliseconds);

 It's better in that it now has the right dates, but only just barely- the endOfLastMonth now = Sun Mar 31 23:00:00 GMT+0100 2013. Good enough for my purpose, but still leaves a bad taste in my mouth. Anyone wanna help wash this out?

Thursday, February 21, 2013

MS SQL Server connection dialog location

In MS SQL Server 2008, my connection dialog has somehow moved to an inconvenient location. I have a portrait monitor and a landscape monitor. I no longer open SQL Server in the landscape monitor because then the connection dialog opens off screen.

I've tried everything I can think of:
  1. dragging the dialog box to center screen then opening a connection, then closing and reopening SQL Server
  2. dragging the dialog box then canceling the connection
  3. both of the above with SQL Server Maximized as well as Restored.
Somewhere in some config file there must be a setting that says "always open the connection dialog at this location". Where is that setting? Or is there another way to fix this?

Wednesday, April 25, 2012

Flash shrinkage in Chrome

Someone saw something weird. On her computer, by going thru a few simple steps in a Flex app, she was able to make some pages look normal whereas others were shrunk teeny tiny.
I wasn't able to reproduce it on my machine.
Same OS.
Same version of Chrome.
Same Flash Player setup.

Chrome's use of Flash is special.
If you go to chrome://plugins, you see the two or more versions of Flash that Chrome uses- a Chrome version and your system's version (as well as maybe another- not important to the story).

I tried toggling between using one, then the other, then both.
No difference- everytime unreproducible on my machine; everytime reproducible on hers.

I'd tried everything I could think of.
Then someone else suggested looking at the zoom setting in Chrome.
That was it.

I couldn't find this stupidly easy solution when doing a search for this problem online.
Hopefully this post will prevent others from having this problem.

Monday, November 28, 2011

Before suing / getting sued for libel...

Know this: the day is drawing near when bullies can no longer get away with intimidating scientifically minded truth seekers and skeptical speakers. If you're gonna try to use the courts to push us around, be sure you have the truth on your side, or you're gonna get your ass handed to you in the public forum by a calm, assiduous, and intellectually honest high school kid, rightfully and righteously so.