Disclaimer

The content of this blog is my personal opinion only. Although I am an employee - currently of Nvidia, in the past of other companies such as Iagination Technologies, MIPS, Intellectual Ventures, Intel, AMD, Motorola, and Gould - I reveal this only so that the reader may account for any possible bias I may have towards my employer's products. The statements I make here in no way represent my employer's position, nor am I authorized to speak on behalf of my employer. In fact, this posting may not even represent my personal opinion, since occasionally I play devil's advocate.

See http://docs.google.com/View?id=dcxddbtr_23cg5thdfj for photo credits.

Friday, February 17, 2012

Email address as website login ID

More and more websites are allowing you to use your email address as your website login ID or user name.  This is good.

What is not so good is that email addresses change over time.  Now, hopefully you can change the email address that the website uses to send email to you.

However, today I encountered a website that allows you to change your email address - but not the user name, which was the email address that you had when you first registered with the site.

So I am now in the situation of

a) Having to login with MyReallyOldObsoleteEmailAddress@defunct-mail-server.net

b) Getting email sent to newaddress@current-mail.net

:-(


Online vs. Paper Mail Notifications

Many businesses - stockbrokers, health insurance, telephone companies, etc. - want to save money ("and trees") by having you receive notifications online.

I am a but of a Luddite in that I like receiving paper mail.  Not for everything - but I know just how fragiler the email system is, and how easy it could be to lose access to all of my email accounts.  Less easy now than it used to be, but nevertheless...

Actually, what I really want is both paper and electronic.  Paper as a backup.  Electronic so that I can easily search.

But note that I said "electronic" and "easily search".  Most online notifications are pull - as in, "go to the website and download the bill".  Or, maybe "we will send you email when a new item is posted to your account, but then you must go to the website and pull it down yourself".  Frankly, I am too lazy and too busy to want to do this.

I want push, and/or I want automation.  I want such information aggregated automatically.  (Yes, I know about mint.com)

Also: I keep paper records for all of my financial stuff.  If ir's online only I have to print out out myself.  If they paper mail it to me, I save a step.  That's worth it to me, although perhaps not to them.  (I have asked my financial providers to use online for most stuff, but to send me full paper mail annual or quarterly reports.  But they usually don't have that flexibility.)



Here's an idea:

Instead of the only options being (0) Paper mail only, and (1) Online only.

How about

(1.5) Paper and online. Some sites allow pure pull from the website, but decide not to email you when they send you paper mail notifications.

(1.75) Online - but if you have not acknowledged that you have looked at in a month, or whatever to critical time period is, send a paper version.

I wonder if there could be a "full spectrum aggregator" - one that not only aggregates your financial info, but also aggregates all of these things like health insurance.

The proliferation of private email systems sucks.

Sunday, February 12, 2012

Tickler

GTD (Getting Things Done)

Tickler file - perpetual calendar.  Replay for humans - place a card in the calendar at about the right time.

It is sad that physical index cards are often easier to do stuff like this with than computer software.  Most calendar programs think that an event occurs, and recurs, only on spcifgic dates and with a specific frequency.


I once had a PalmPilot PDA calendar program that understidd stuff like allergy shots: the reminder appeared after the minimum spacing e.g. 14 days, being more intensive as you approached the maximum spacing, say 28 days, and automatically rescheduled itself with the same spacing relative to when you actually said that you got your shot.  I.e. T[n] = T[n-1] + dist(14,28).  Not T[n] = T[0] + n*21 +/- 7.   It makes a big difference.


It's sad that paper index cards work better than software. Perhaps I can write, in my copious spare time.

I'd like to have the good stuff that computers bring: search, cross indexing, the ability to be filed in more than one category.


Key things: defer.  Don't even show it on the ToDo list until such and such a time. Date

Defer:

Standard Perpetual calendar
* to a day 1-31, in the rotating days of month
* to a month Jan-Dec,. in the rotating months of year

Not so standard:
* to this afternoon, evening, next morning, lunch
* to the weekend

Precise date and time - sure, maybe.


I would like to keep one rotating tickler file, but I need to separate work and personal.  SW should allow that.  But for now, using paper index cards, I don;t crate a tickler file for each.

Now/Soon/Someday is often as much as I can be bothered with.


We may want to be able to defer, and not think about, certain actions.  But we may also want to be able to recall a deferred action - e.g. "Tell me the next thing I have to do wrt my personal computing environment - my mind is too slagged for real work.  I don't care if it has been put off to a date in the future."








Thursday, February 09, 2012

PSON examples (possible)

Here some examples of notation.

BTW, why am I posting here instead of on wiki?  Mainly because it is quicker to post here than on my wiki.  Mediawiki is slow. Too many clicks.  In twiki I had comment mode. (TBD: install twiki on my webhost. Want ACLs.)

Anyway, examoples - of the PSON possible "copmpact" notation, andf then the correspondingly fully parehthesized version (although I may not use quotes, etc., everywhere):

a: b c d
a: [b,c,d]


a:b c d
a:[b,c,d]


a: b, c, d
a:[b,c,d]

a: b, c, d;
a:[b,c,d]

a: b c d, e f
[a:[b,c,d],e,f]
or
a:[[b,c,d],[e,f]]
?

a:b c:d e:f
{a:b,c:d,e:f}

a: b c:d
{a:b,c:d}


a: b c: d
{a:b,c:d}


a: b=c d=e f=g
a:{b=c,d=e,f=g}


a: b=c d e f=g
a:[b=c,d,e,f=g]
??

a:[b=c,0:d,1:e,f=g]
??

a: b=c d e f=g h:i
??


a: b c d
a: [b,c,d]



a b:c d
[a,b:c,d]
??
[0:1,b:c,1:d]
??

It seems a bit weird to have
a: b c d => a: [b,c,d]

but


x a: b c d => [x a:b,c,d]

??
Is this really what I want?

It seems to mean that label: at the beginning of a string means something different than in the middle.

a,b,c: d e,f
[a,b,c:[d e],f]


a,b, x c:d e,f
[a,b,[x,c:d,e],f]

a,b,c:d e,f
[a,b,c:[d e],f]


a,b,c:d,e,f
[a,b,c:d,e,f]




Mixing array and name syntax

So, straight array syntax and straight name=value is handled in many ways
Array: [ a, b, c, d ]
Struct: { k1=v1, k2=v2 }
Or , paren-less (or implicit parens):
Array:  a, b, c, d
Struct:  k1=v1, k2=v2

Q: but what about intermixing - having a key-value appear in the middle of a list of values:
a, b, c, d=e, f, g, h
Should this be interpreted as a struct in an array, or what?

(Again, emphasizing: this is just for convenience. Explicit parens always available.)


(1) implicit struct element

[ a, b, c, {d=e}, f, g, h]

(2)  explicit in same array/struct, inside/in addition to sequence

A different way of looking at it might be to say "All array notation is really just implict name=value pairs":

I.e.
Array: [ a, b, c, d ]
is equivalent to
Array: { 0:a, 1:b, 2:c, 3:d }
This would suggest that
[ a, b, c, d=e, f, g, h]
should be
{ 1:a, 2:b, 3:c, d:e, 4:e, 5:f, 6:g, 7:h }
although even that is not so explicit as one might like: we may want to emphasize that elements "named" d and 4 actually point to the same value, not to different elements that happen to have equal values.

(3) explicit in same array, but outside of sequence

Rather than creating an aklis to the positional notation, put iot oustide positional:

[ a, b, c, d=e, f, g, h]
should be
{ 1:a, 2:b, 3:c, d:e, 4:f, 5:g, 6:h }
This seems to be what I have wanted to do most often with keyword arguments for functions:

add( 1, 2) 
add(1,2,modulo=16) 
add(modulo=16,1,2)
we want to refer to the positional "1" and "2" using the same names, irrespective of where the keyword parameter is written.




BOTTOM LINE:  I think I prefer (3) explicit in same array, but outside of sequence

 
 

Relaxation

Talking with someone about GNU make passes - first evaluating the dependency graph, and then building it..

.SECONDEXPANSION http://www.gnu.org/software/make/manual/make.html#Secondary-Expansion - a kluge, IMHO.  Although it may be good enough.

One of my friends got annoyed enough by passes that he wrote his own build tool. (Hi, Mark!)

Suggested relaxation - basically, keep passing over, until changes stop happening.

Observation: in a language like Perl or Make, with sigils like $var, each pass might strip a sigil.  1st pass $VAR, second $$VAR, third $$$$VAR, etc.  Ugly!  I hate counting backquotes.

Languages that use unadorned variable names look prettier.

But are they any more or less likely to have infinite relaxation cycles?  Probably no more.

--

How does this relate to my desire to set a bit in text to say "Never parse this?"  Not much.  Or, rather, that may be the key to reducing user errors with relaxation. Set the bit, and never substitute no more.

--

Hey, maybe this is the key: there are two types of text, syntactic text - into which substitutions may be done - and non-syntactic, terminal, finalized text.

If you arrive at terminal text you are done, done, done.

Syntactic text may continue, or may stop relaxing when there are no more changes.

Most languages make terminal text harder to express - quoted string.

I've worked with languages that make syntactic text harder and uglier - e.g. Algol W with 'IF' 'ELSE' quoted keywords.

Key is notations that allow us to go from easy syntactic / ugly terminal text, through ugly syntactic / unquoted, easy, terminal text.  Points in the middle...

Google calendar scrollbar oscillation

For the past week have been plagued by oscillation of the scrollbars in Google calendar.

In Chrome.  Typically when fullscreen on my 1200x1920 monitor.

Scrollbars on, scroll bars off.

Changing window size remedies.

Just goes to show that Google can have annoying bugs, just like anyone else.