<elliottcable>
99.99999% of my e-mail isn't “real people”
<devyn>
aww
<devyn>
I'd say about 80% for me, but much of the 20% isn't important; just mailing lists
<elliottcable>
oh, mailing lists are all automatically filtered
<whitequark>
elliottcable: discover mail filtering?
<elliottcable>
yeah, it's all already *heavily* filtered
<elliottcable>
I probably have ~150 gmail filters
<whitequark>
oh
<whitequark>
oh crap.
<elliottcable>
and I've *still* got 900 unread, un-filtered-out in my inbox.
* whitequark
has around a dozen
<elliottcable>
I only started on a crusade to reduce my e-mail issues six months, ish, ago
<elliottcable>
so there's still plenty of automatic mailings, various spam-y things, or services I used once and then forgot
<elliottcable>
so when I “clear out my inbox,” it generally involves taking the top item of mail, searching for all mail from that sender's domain, and then selecting all, mark as read and archive
<elliottcable>
similarly, looking for an “unsubscribe” or “notification preferences” link within those emails
<elliottcable>
so, time to automate that process and allow me to batch-process entire chunks of mail (“Everything from Twitter.com”, “everything from the NRA”, etceteras) at once
<elliottcable>
then, allow me to automatically add a new filter or append an existing one, if there's no unsubscribe link or similar to handle it
<elliottcable>
all of this should be relatively trivial scripting, if I can get past the fucking authentication part
<elliottcable>
I hate OAuth with a livid passion. More “security” (in airquotes, because every fucking system implementing OAuth is already as leaky as boxers on a baby) for general users, at a loss to scriptability of the web as a whole.
<whitequark>
use gem 'mechanize'
<elliottcable>
meh, not in the mood to be around Ruby right now
<elliottcable>
doing it in Node
<elliottcable>
and I definitely want to do this properly, not by scraping the HTML
<elliottcable>
done plenty of mechanize back in the day, but it's *way* too slow to process hundreds of e-mails over the 3G connections I generally find myself using
<whitequark>
use a server?
<whitequark>
also um
<whitequark>
why do you need oauth to get email?
<whitequark>
imap
<whitequark>
I was offering mechanize as a means to log in to websites from which you want to unsubscribe
<elliottcable>
OAuth because I want to generalize it and turn it into a Gmail Gadget someday.
<whitequark>
so you want to restrict people who want to use it to gmail only
<whitequark>
meh
<elliottcable>
The end-goal is a <canvas> disc-shaped break-down of your e-mail, by label, sending-website, individual sender, mailing-list ... you get the idea
<alexgordon>
yay so my memorization algorithm works pretty well
<elliottcable>
with the ability to create a filter, or apply an “unsubscribe”-link heuristic, for any given subsection that it displays
<elliottcable>
with one click.
* whitequark
read that as "dick-shaped break-down"
<elliottcable>
definitely gmail only.
<elliottcable>
whitequark: wat.
<purr>
beep.
<whitequark>
reading too much drama lately
<telemachus>
elliottcable: No worries, but who are Brian_Phillip and danpalmer and how did they get into my Twitter-stream?
<elliottcable>
lol. Brian's a friend of mine; danpalmer is a very smart dude who used to frequent this channel
<purr>
lol
<whitequark>
elliottcable: everything from that list, including filtering, is not gmail-specific
<elliottcable>
he goes to the same university as trolling
<elliottcable>
so he stopped frequenting. I believe it was becoming weird for them.
<telemachus>
elliottcable: K. All good.
<alexgordon>
kind of want to make my own ketchup
<elliottcable>
whitequark ⑊ yes, but the ability to *create* a filter is too specific to the service; I don't want to have to generate filter-rules specific to whatever service the user may use
<elliottcable>
not an argument I care about.
<elliottcable>
convention over configuration, every time; and gmail is *the* convention.
<whitequark>
elliottcable: discover sieve
<elliottcable>
make the code simple enough and modular enough to modify to your necessities, then wrap it into a gmail gadget. done.
<devyn>
alexgordon: memorization algo?
<alexgordon>
devyn: you know about supermemo?
<alexgordon>
or anki, etc
<devyn>
I know Anki
<whitequark>
elliottcable: and you're essentially generating filter-rules specific to whatever service the user may use.
<elliottcable>
yes, but specific to *one* service, not many
<elliottcable>
could just as well say I should support POP as well as IMAP, etcetcetc
<alexgordon>
devyn: Anki uses an algorithm called "SM2", which was developed in the 80s iirc
<elliottcable>
this is a script, for me, that it'd be *easy enough* to generalize for others' use
<alexgordon>
devyn: it's pretty inefficient :P
<devyn>
lol
<purr>
lol
<elliottcable>
doesn't mean I'm going to put a lot of effort into making it useful for *everybody* who might want to do something similar
sephr has joined #elliottcable
<elliottcable>
wait, alexgordon
<elliottcable>
“memorization” not “memoization?”
<elliottcable>
this conversation just took on an entirely new light.
<alexgordon>
with an R
<alexgordon>
for remembering stuff
<elliottcable>
Is there something like that for the iPhone, with push notifications?
<elliottcable>
'cause, want.
<alexgordon>
there probably is
<alexgordon>
but I'll open source my lib and you can use it!
<devyn>
oh, that would be neat; something that just sends you an info card every so often?
<whitequark>
ARGH
<alexgordon>
it's quite resource intensive though, I designed it for desktop computers
<whitequark>
I need to debug one of my passes which produce invalid SSA
<whitequark>
but my debugging tool broke
<elliottcable>
alexgordon ⑊ do that!
<whitequark>
DO NOT WANT to analyze 10k+ lines of console output
<alexgordon>
devyn, elliottcable: so for a mobile device you'd probably need a server to do all the work and just have a thin client
<devyn>
I have a 313-lines-of-Ruby-long script that's a clusterfuck now
<elliottcable>
devyn ⑊ I was thinking, after reading Lift.do's fucking-whitepaper-in-release-notes for the last release, about something like that
<elliottcable>
yes, server and thin-client
<elliottcable>
and I'd like to add *additional* heuristics to ensure I don't get too many push requests
<elliottcable>
would have to take into account: 1) how often I swipe-open the APN, as opposed to ignoring it entirely,
<elliottcable>
2) how many “refreshers” I complete after swiping an APN
<alexgordon>
anyway as I was saying Anki uses SM2 and the latest is SM15 which is considerably more efficient. But algorithms from about SM5 onwards are not detailed very well, so I'm designing my own from scratch
<elliottcable>
(let's assume that the app will APN when it has something new that it wants to refresh you about, a month down the line ... but when you swipe that APN, it will *continue* showing you refereshers as long as you're bored and stay in the app)
<elliottcable>
alexgordon ⑊ what are these SM* numbers?
<elliottcable>
I've done that before, although I'm not a fan of that syntax
<devyn>
watf since when is this called templeos
<elliottcable>
generally, I stick to %|| or %(), or, in special cases, a space (% abc )
<devyn>
why does he change the name so goddamn frequently
<elliottcable>
*especially* when you're already within square-brackets, use something else
<devyn>
for a while it was LoseThos
<alexgordon>
devyn: OS written in 10 years by a schizophrenic and VERY religious guy
<devyn>
alexgordon: I know
<alexgordon>
oh, misread
<devyn>
but I don't understand why he keeps changing the name of it
<devyn>
lol
<purr>
lol
<devyn>
just recently
<elliottcable>
oh my god this video
<elliottcable>
pretty sure it's giving me that thing with the eyes and seizures
<alexgordon>
elliottcable: erm anyway, I have one algorithm for working out which items are relevant today, and a separate one for working out *when* in the day to do what
<devyn>
“can change tasks in half
<devyn>
a microsecond”
<devyn>
because that totally doesn't depend on processor speed
<elliottcable>
lol
<alexgordon>
devyn: are you suggesting that multiple people are running this OS?
<devyn>
alexgordon: hmmm? I don't follow
<alexgordon>
devyn: he's the only person crazy enough to run it
<elliottcable>
it's not for using, it's for playing
<elliottcable>
I look at this, and think “Arduino, but for systems-level-software instead of gadget-level-hardware”
<elliottcable>
i.e. completely useless for any real tasks, only interesting for learning and fiddling and being crazy
<alexgordon>
elliottcable: so for a thin client implementation, you would have a server tell you what items are relevant for today, then have the client decide when in the day to show them
<elliottcable>
there's plenty of alternatives for *real* tasks (compare Arduino to BeagleBoards, Lego Mindstorms, Raspberry Pi, ...)
<elliottcable>
but for what it's good for, it looks excellent
<elliottcable>
alexgordon ⑊ not good enough, at least for what I'm talking about; because the server needs to provide push-notifs throughout the day
<alexgordon>
elliottcable: can't an app do that using a background process?
<elliottcable>
... no
<alexgordon>
why not
<elliottcable>
have you ever *touched* an iPhone?
<alexgordon>
lol
<purr>
lol
<alexgordon>
I thought you could run limited background processes on iOS
<elliottcable>
did I miss something massive, and you use Android or something?
<elliottcable>
yes. very limited.
<elliottcable>
you've got:
<elliottcable>
- 10 minute task-completion, limited in API availability after the app has tabbed out
<elliottcable>
- indefinate audio API, even *more* limited availability (basically impossible to hijack for any purpose other than Spotify-esque music streaming)
<elliottcable>
that's literally it, unless I missed the big “Oh! We're going to let you background tasks indefinately now!” headline feature in iOS 6
<alexgordon>
oh well
<elliottcable>
everything you see that does notifications when the app isn't running, is doing it server-side, or within ten minutes of you last tabbing out of the app
<alexgordon>
ok then I guess you'd have to do it on the server
<elliottcable>
still don't get your dual-algo approach
<elliottcable>
why the hell?
<elliottcable>
explain
<alexgordon>
because basically the two problems are unrelated
<alexgordon>
during the day you want to make an "imprint" as supermemo guy calls it, so that you definitely remember the desired memory for at least the rest of the day
<alexgordon>
but between days it's a different problem, you want to optimize for memory "strength", so that you forget the memory *more slowly*
<alexgordon>
strength doesn't really exist in units less than a day
<alexgordon>
this is the key insight in supermemo: the less often you repeat something, the slower you forget it
<alexgordon>
if you repeat something really quickly, then you have to keep repeating it at that speed otherwise you forget it just as quickly, but if you repeat it in big intervals (but are frequent enough that you don't forget it) then you build strong memories that you forget slowly
<elliottcable>
um,
<elliottcable>
hahahahaha
<elliottcable>
I'm sorry, if his thing is written on that assumption, than it's fatally flawed
<alexgordon>
it's backed up by data, so not really
<elliottcable>
and please don't make that mistake in your own, as it'd make it as useless to me as it sounds like his would be
<elliottcable>
I've an *absolutely atrocious* memory; and I guarantee you that I can forget something within the same day
<alexgordon>
you probably don't, but you might just need more effort to imprint the memories
<elliottcable>
for me, more useful (at least at the start) would be repeating in much smaller intervals. Perhaps fifteen minutes after I spam it in the first time, if there's nothing else for it to show me, then perhaps three hours later
<alexgordon>
brb food
<elliottcable>
see, I shouldn't have to put effort in. That's the entire point.
<alexgordon>
by effort I mean greater repetition during the day
<alexgordon>
I'm not suggesting you just show it once a day
<alexgordon>
but you forget things differently between days than you do during a day
<elliottcable>
I'm not so sure I believe that.
<elliottcable>
But if there's truly studies backing that statement, so be it
<elliottcable>
as long as there's a methodology for training on schedules *shorter than a day*
brr has quit [Read error: Operation timed out]
<devyn>
please.feed.the.damn.cat
<devyn>
lol
<purr>
lol
malia_ has joined #elliottcable
brr has joined #elliottcable
<elliottcable>
devyn ⑊ was that in reply to whitequark's tweet, or vice versa?
<elliottcable>
either way, what's the context?
<whitequark>
elliottcable: vice versa
<sanitypassing>
time to write a speech...
<sanitypassing>
... I hate writing speeches...
<elliottcable>
why're you writing a speech?
<sanitypassing>
speech class.
<devyn>
elliottcable: brr's mask is corrobor@please.feed.the.damn.cat
Aria has quit [Remote host closed the connection]
<alexgordon>
[21:59:04] <+elliottcable> why're you writing a speech?