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:

testDate.mxml

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 {
//problem
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.

DIGRESSION
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.
END DIGRESSION

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.

Tuesday, April 26, 2011

How to find broken 2-way relationships

This is not advice on how to interact with people. I'm not the best person to ask for that.
===
I have a table to represent friendships. In this table there must be two rows for each friendship: one for User A->User B, and one for User B->User A.

There are some friendships where the second row is missing.
How do I find them?

Here are the pertinent tables and columns:
Table: User
Columns: userID

Table: UserFriend
Columns: fromUserID, toUserID
===
Solution:

select UF.*
from UserFriend UF with (nolock)
left outer join UserFriend UF2 with (nolock) on
UF.fromUserID = UF2.toUserID and
UF.toUserID = UF2.fromUserID
where UF2.fromUserID is null

Friday, March 11, 2011

ERROR[3332]: Connection to SMTP server test failed.

Going to the web UI for a Sharp3100N printer, Network Settings, Connection test, got this error:
ERROR[3332]: Connection to SMTP server test failed.

Solution:
Change the SMTP server address to
smtp.google.com
Port: 587
SSL: On
Authentication: put in your gmail username and password.

Assuming your printer can find the internet, that should do it.

Sunday, December 19, 2010

Today, +/- n days

Searching on google and stackoverflow wasn't much help; also, "man date", "man cal", "man calendar", "man time", etc are limited in there accuracy; so here:

What is today's date plus n days, let's say 61 days*?:
date -v+61d
Answer:
2011-02-18
Calendar marked.

*: This is the question that came into my head after reading this.

While I applaud them for making a testable claim, I doubt this. The stone age didn't end because we ran out of stones. But who knows, this time may different. Maybe some of us will have to start carrying around unmemorizable IPv6 addresses. Maybe we'll find a way to memorize them. Maybe IPv4 really was a gross underestimation of our capacity for connectedness (and maybe IPv6 isn't). We shall see; and thankfully soon.

Monday, December 6, 2010

Sex, not gender

Continued from here (where I seem to have reached the thread's size limit), regarding Disapora's choice to use a text field for Gender instead of a drop down for Sex:

I agree that sex is not a simple binary, although the vast majority of the human population is not hermaphrodite or neutered. But let's consider that n%, as I'm sure you'll agree it is the rights of the minority that are the most important when considering how to design a new society like Diaspora.

Are anyone's rights being infringed up by having a drop down for Sex (options being Male, Female, Other, ..) instead of a text box for Gender? You say such an approach would implicitly treat them as freaks- funny your usage of "implicitly" here, as though I am implying anything. I am not. If such a conclusion is reached, it is by inference, i.e., someone else is inferring it. In other words, it is their problem that they would think I am calling them a freak, not mine. Sorry to get tautological here, but if they are not male or female then they are not male or female, and as such should be given an option for neither. This says nothing about whether or not they are freaks. Any reading into it as such is just bringing one's own prejudices where they are not justified.

As far as denying their existence by giving them this option- um, no? Isn't giving them the option in fact recognizing their existence? Wouldn't it be a denial of their existence if the option wasn't given?

Think of it another way: gender is subjective. What is masculine in one culture may be feminine in another. What makes me manly in my eyes could make me womanly in yours. Sex on the other hand is objective. I either have a penis or vagina or neither or both. I may feel manly today and womanly tomorrow, but the sexual organs I have do not change on a daily basis. Male in Italy and Australia and 13th century France is male in America, today, yesterday, and tomorrow.

I want my user profile to reflect the fixed status of this aspect of my objective self. It seems other people want to have a non-fixed reflection of a subjective aspect of their self. Fine. How about this for a compromise: give users both the free-form text field for Gender and the drop down for Sex. This solution recognizes the validity of both our points, as I believe there both are. As it is right now, Diaspora is limiting its appeal by excluding people with preferences like mine, and I'm sure you'll agree that maximizing its appeal would be good for Diaspora.

Thursday, December 2, 2010

Friend looking for employment

Anybody need pet-or-house sitting or house cleaning services? I have a friend who is in desperate need of funds. She has references and experience in these things.

Monday, October 18, 2010

testing 1

this is one of many test posts i'll be making today; these posts are only tests meant to debug an external system; had this been an actual post, you would not be encouraged to ignore this. this is only a test.

Friday, May 28, 2010

Why is my ASP:Image not accessible from the vb?

I just figured this out. Figured it might bite someone else someday.

Given this code in an aspx file:

<table width="100%">
<tr>
<td class="normaltxt10" colSpan="50">
<!--
<asp:DataGrid id="dgImage" runat="server" ShowHeader="False"
AutoGenerateColumns="False" TabIndex="5">
<Columns>
<asp:BoundColumn Visible="False" DataField="file"></asp:BoundColumn>
<asp:TemplateColumn>
<ItemTemplate>
-->
<asp:Image ID="screenShotImage" Runat="server"></asp:Image>
<!--
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
-->
</td>
</tr>
</table>


Why would screenShotImage be not accessible in the vb code behind?

Answer: because it's in the commented out DataGrid, and in my case, dgImage wasn't referenced at all in the vb.
Removing the commented out DataGrid will fix this.
Like so:

<table width="100%">
<tr>
<td class="normaltxt10" colSpan="50">
<asp:Image ID="screenShotImage" Runat="server"></asp:Image>
</td>
</tr>
</table>

This is stupid in my opinion, but whatever. Now we know.

Monday, April 12, 2010

Far as a rental car can go

Gosh, I love driving the hell out of a rental car. I mean, it's not mine, and so long as I don't total it or get caught, no repercussions for me, right? I won't have to live with this car for very long, don't have to worry about any long term maintenance of it, so I can use it and abuse it with reckless abandon. The sheer acceleration that I'd never do in my car, knowing that it's all consequence-free because it's not my property that I'm fooling around with, there's simply No Comparison to that kind of thrill, is there?
If only I could live, constantly and henceforth, with the joy of non-ownership of that which I have: a house that I don't have to clean, friends that I don't have to be nice to, a body I can just totally let go of- that would be awesome. And if everybody else could do the same, surely that would be heaven.

Thursday, April 8, 2010

Output from a friend's cool applet



From here to here.

Must come back later and fool around with this some more.
I think my nephew (who has shown interest in animation) would really enjoy this.

Sunday, April 4, 2010

Heh

Working with XSL right now:

<xsl:choose>
<xsl:when test="1=1">
1=1
</xsl:when>
<xsl:otherwise>
1=2
</xsl:otherwise>
</xsl:choose>

prints out 1=1.
But

<xsl:choose>
<xsl:when test="a=a">
a=a
</xsl:when>
<xsl:otherwise>
a=b
</xsl:otherwise>
</xsl:choose>

prints out a=b.

So, a does not equal a, eh?

Friday, March 26, 2010

Perhaps someone can explain this to me

Let's start with this:
http://factcheck.org/2010/03/a-final-weekend-of-whoppers/

I'm glad to see a low-bias, honest presentation of the facts. One fact, though, that I don't see emphasized enough (here and in a lot of other places) is this: "mandating that individuals buy coverage". Why is this okay? Why would this not be seen as an outrageous affront to my personal liberty?

I've heard that if one does not accept the mandate, one must pay a fine, a non-insurance fee. The rest of this rant is based on the quite possibly false assumption that this is true.

Consider this. Let's say I give you the following choice: either you
1- chop off one of your feet and I give you a magical golden blanket that keeps you from getting sick (maybe); or
2- chop off one of your toes. You get nothing in return and your toe goes into a pot to help pay for other people's magical golden blankets.

Now, nevermind which option you choose- you can decide on your own time and keep that to yourself. What I want to know is:
Is it a good thing that you are being forced to make this choice? Hypothetically, am I a good person for forcing this choice upon you?

I'm sure I'm missing something here and I'd greatly appreciate someone telling me what it is, please. I'm honestly curious. If I'm not missing something, then I'm just baffled.

Wednesday, March 17, 2010

Set with Select

Today's forehard slap is brought to you by the following:

This is a perfectly valid syntax for setting a local variable using SET which gets its value from a SELECT:
set @VAR1 = (select var1 from table1 (nolock) where var2 = @var2 and var3 = @var3)

This will bring your company to a grinding halt and leave everyone breathing down your neck till you fix it:
set @VAR1 = select var1 from table1 (nolock) where var2 = @var2 and var3 = @var3

Be careful to note and recall the difference.