00:04:39 <ehird> Does "Code" fall under "Documents"? I don't think so.
00:04:45 <ehird> I'm glad we agree.
00:06:01 -!- CakeProphet has joined.
00:11:40 -!- olsner has quit (Remote closed the connection).
00:21:43 -!- GregorR has quit (Read error: 110 (Connection timed out)).
00:44:46 -!- jix has quit ("...").
01:11:50 -!- CakeProphet has quit (Read error: 60 (Operation timed out)).
01:37:20 -!- GreaseMonkey has quit ("Client Excited").
01:38:51 -!- SchrodingersCat has joined.
01:39:08 -!- SchrodingersCat has left (?).
02:09:09 -!- GreaseMonkey has joined.
02:28:27 -!- Corun has quit ("This computer has gone to sleep").
03:21:03 -!- Sgeo has joined.
03:57:35 -!- chuck has joined.
04:45:09 -!- GregorR has joined.
05:06:33 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
06:04:13 -!- Dewio has joined.
06:16:59 -!- Dewi has quit (Read error: 101 (Network is unreachable)).
07:40:37 <oklopol> does anyone run unlambda here?
07:47:19 <oklopol> Slereah2: CAN YOU LINK ME TO A PIRRRRRRRRATED TO MOCK A MOCKINGBIRD I KNOW YOU CAN DO IT
07:54:58 <oklopol> looking at it from google, i may have misunderstood the kind of book it is.
07:56:42 <oklopol> oh, two-part book, second part cl, i see i see
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:01:21 <MizardX> Closest torrent I find is "To kill a mockingbird", a crime drama movie from 1962.
08:02:05 <oklopol> closest i found to the book was google's version, which was the part just before combinators
08:02:55 <oklopol> of course i could probably get the same pleasure from just memorizing the combinator birds
08:03:03 <oklopol> maybe i'll do that this weekend
08:23:04 -!- GreaseMonkey has quit ("Client Excited").
08:41:15 -!- Deewiant has quit (Read error: 60 (Operation timed out)).
08:43:13 -!- Deewiant has joined.
09:27:31 -!- Slereah has joined.
09:32:00 -!- ais523 has joined.
09:38:20 -!- Slereah2 has quit (Read error: 110 (Connection timed out)).
10:02:26 <ais523> <Baldrson> The risk adjusted net present value of unicorns is basically 0 because the risk of their not existing is close to 1.
11:45:26 -!- ais523 has quit (Remote closed the connection).
12:10:38 -!- ais523 has joined.
12:54:28 -!- ais523 has quit (Read error: 60 (Operation timed out)).
12:55:38 -!- ais523 has joined.
13:01:52 -!- ais523 has quit (Read error: 104 (Connection reset by peer)).
13:01:54 -!- ais523_ has joined.
13:03:26 -!- ais523_ has changed nick to ais523.
13:05:16 -!- ais523_ has joined.
13:05:22 -!- ais523 has quit (Nick collision from services.).
13:05:28 -!- ais523_ has changed nick to CallForJudgement.
13:23:54 -!- CallForJudgement has quit.
13:24:05 -!- CallForJudgement has joined.
13:24:30 -!- CallForJudgement has changed nick to ais523.
13:34:14 <ehird> [13:32:49] <shortc|laptop> [07:14:53] Hey...I run a site called Rosetta Code, and I was reviewing one of the pages there. There's a strange bit of text in one of the J examples, and I can't tell if it's normal output or vandalism.
13:34:14 <ehird> [13:32:49] <shortc|laptop> [07:15:22] http://rosettacode.org/wiki/Character_code#J
13:34:24 <ehird> [13:32:49] <shortc|laptop> [07:15:57] At the bottom of the second code block, the string "cdefghijklm" looks suspiciously like someone pounding on the home row.
13:34:25 <ehird> [13:32:49] <shortc|laptop> [07:16:37] I'm almost certain it's in error, but I have a hard time reading J to be sure.
13:35:39 <ais523> and I love that, just like if someone vandalised TECO probably nobody would ever know
13:35:46 <ais523> unless it was well-commented
13:36:21 <ehird> it wsa actually the correct output :D
13:36:31 <ehird> [13:32:49] <olegfink> [07:45:14] shortc|laptop: that's not the home row, that's eleven characters starting with code 99
13:36:32 <ehird> [13:32:49] <shortc|laptop> [07:45:32] doh.
13:36:33 <ehird> [13:32:49] <shortc|laptop> [07:45:40] That's what I get for doing this stuff at 3AM.
13:36:34 <ehird> [13:32:49] <shortc|laptop> [07:45:45] Thanks for the double-check. :-)
13:36:40 <ais523> I noticed it wasn't the home row, too
13:38:54 <ehird> Uh oh, I crashed Safari...
13:39:08 <ehird> Well, it was on Gmail.
13:39:20 <ehird> Probably I triggered some weird JS codepath that made it busy-loop.
13:39:43 <ehird> Gmail saved my draft, anyway/
13:43:50 <ehird> Hmm. I hope Time Machine compresses backups.
13:44:05 <ehird> Even with a 1TB backup drive, I have like 150GB of stuff on here.
13:44:22 <ehird> ais523, btw I realised it wasn't basically a rsync frontend
13:44:29 <ehird> because rsync can't both do --update and also store the old version
13:44:38 <ehird> i.e., it can't just store what's changed in a new section
13:44:47 <ehird> (with, I presume, occasional full snapshots)
13:44:53 <ais523> and I'm pretty sure that there's at least one common open source backup program that can, I forget which one
13:45:10 <ehird> yes, almost certainly, it's a rather obvious idea
13:48:17 <ehird> one silly gripe: the 3d dock is inaccurate, from a physics point of view, and it breaks the perspective guidelines (how is the preview two-photos icon standing by a corner of the photo?)
13:48:18 <ehird> http://turbomilk.com/blog/cookbook/criticism/physics_still_matter_even_with_special_effects/
13:48:39 <ehird> to get it right you'd need variations of every icon for (position in dock, length of dock)
13:51:41 <ais523> nah, you just need 3D icons
13:51:53 <ais523> then you can project them to the right perspective
13:52:10 <ehird> but I think I prefer the infinite pngs
13:52:18 <ehird> maybe run a program with that tuple as the argument
13:52:21 <ehird> and make it output a png
13:54:24 -!- Sgeo has joined.
13:54:45 <ehird> DNS over HTTP over UDP.
13:55:32 <ais523> come to think of it, that's as stupid as BGP over TCP
13:56:19 <ehird> ais523: because HTTP solves every problem, including finding the IP of a domain to contact it over HTTP.
13:56:47 <ais523> also, who even suggested that? and why?
13:56:56 <ehird> I did. And because my brain is currently in wtf mode.
13:57:08 <ais523> you should look up BGP, some time
13:57:23 <ais523> it's a routing protocol designed to be politically inoffensive rather than good
13:57:57 <ais523> basically, it's designed to make sure traffic gets from one bit of the internet to another despite the various networks en route all disagreeing about which way the packet should go
13:58:35 <ehird> ehird@rutian:/home/bsmnt/python_chroot/bot$ sudo rm -r scripts
13:58:36 <ehird> rm: cannot remove directory `scripts': Device or resource busy
13:58:51 <ehird> (I'm removing bsmnt_bot because I'm too lazy to get it working without reconnecting and meh)
13:58:52 <ais523> ehird: is something cded into that directory?
13:59:08 <ais523> daemons are supposed to cd / for that reason
13:59:27 <ehird> not that I can tell though
13:59:32 <ehird> how can I --really-force
13:59:45 <ais523> kill the process that's in that directory
13:59:53 <ehird> i don't know which
13:59:58 <ais523> there's some easy way to find out
14:00:04 <ais523> lsof | grep would work, probably
14:00:14 <ehird> i _could_ install it :P
14:00:18 <ais523> how do you not have lsof?
14:00:28 <ehird> this is a base server install, it doesn't even have man(1)
14:00:44 <ehird> (I'm pretty sure that violates POSIX)
14:00:52 <ais523> ls -l /proc/*/cwd | grep
14:00:54 <ehird> ehird@rutian:/home/bsmnt/python_chroot/bot$ lsof | grep scripts
14:00:54 <ehird> ehird@rutian:/home/bsmnt/python_chroot/bot$
14:01:33 <ehird> also, you mean cat
14:01:43 <ais523> nope, cwd is a symlink
14:01:51 <ais523> so you have to dereference it somehow
14:02:15 <ais523> you probably don't have readlink due to being on a server, so you either need the cd pwd trick in a loop, or ls
14:02:39 <ehird> "Time Machine saves the hourly backups for the past 24 hours, daily backups for the past month, and weekly backups for everything older than a month."
14:02:44 <ehird> hmm, I thought it stored backups forever
14:02:57 <ais523> it does, just not all of them
14:03:31 <ais523> did the proc/*/cwd trick help?
14:03:36 <ehird> no, I pasted the lsof output
14:03:42 <ehird> [14:00:53] <ehird> ehird@rutian:/home/bsmnt/python_chroot/bot$ lsof | grep scripts
14:03:42 <ehird> [14:00:53] <ehird> ehird@rutian:/home/bsmnt/python_chroot/bot$
14:03:51 <ais523> oh, you need to sudo it if it's running as a different user
14:03:54 <ehird> "Time Machine creates links to any unchanged files, so when you travel back in time you see the entire contents of your Mac on a given day." <- cute trick
14:04:05 <ais523> yep, hardlink backups have been around for ages
14:04:32 <ehird> ehird@rutian:/home/bsmnt/python_chroot/bot$ sudo lsof | grep scripts
14:04:32 <ehird> ehird@rutian:/home/bsmnt/python_chroot/bot$
14:05:07 <ehird> Backing up to a full disk.
14:05:18 <ehird> One day, no matter how large your backup drive is, it will run out of space. And Time Machine has an action plan. It alerts you that it will start deleting previous backups, oldest first. Before it deletes any backup, Time Machine copies files that might be needed to fully restore your disk for every remaining backup. (Moral of the story: The larger the drive, the farther back in time you can back up.)
14:05:19 <ehird> Non-reality distortion field translation:
14:05:29 <ehird> "We will threaten you with destroying your backups so you quickly buy a new drive."
14:06:01 <ais523> well, it has to do /something/ when you run out of backup space
14:06:17 <ais523> the Windows solution is to delete all but the most recent backup, which is not very encouraging
14:07:08 <ehird> i'd make it pop up going "Your backup drive is full. Delete some backups or get a new drive or something. Meanwhile I'll sit here doing nothing."
14:07:27 <ais523> but then you wouldn't have your backups every hour
14:07:48 <ehird> buy a new harddrive within an hour :P
14:08:11 <ehird> I'm kind of a rabid archivist so I guess it doesn't make sense for others.
14:08:35 <ehird> Still, with a 1TB external drive I think it'd take me rather a while to fill that up...
14:09:04 * ehird reboots rutian to see if the scripts dire
14:09:09 <ehird> ctory will be deletable
14:09:22 <ehird> [14:09:04] • ehird reboots rutian to see if the scripts dire
14:09:22 <ehird> [14:09:08] <ehird> ctory will be deletable
14:09:28 <ais523> also, you could always try moving the directory into /tmp
14:09:32 <ehird> the scripts folder is rather weird
14:09:33 <ehird> ehird@rutian:/home/bsmnt/python_chroot/bot$ ls -lh
14:09:33 <ehird> drwxrwxrwx 2 1343 root 1.0K Feb 12 13:57 scripts
14:09:46 <ehird> mv: cannot move `scripts' to `/tmp/scripts': Device or resource busy
14:09:58 <ehird> drwxrwxrwx 2 1343 root 1.0K Feb 12 13:57 .
14:09:58 <ehird> dr-xr-xr-x 3 1001 1001 4.0K Feb 12 13:57 ..
14:10:15 -!- ehird has quit ("Caught sigterm, terminating...").
14:11:03 -!- ehird has joined.
14:11:51 -!- ehird has quit (Client Quit).
14:12:17 <ais523> I wonder what's happening to ehird?
14:13:22 -!- ehird has joined.
14:14:02 <ais523> ah, your rebooting messed the bounder?
14:14:40 <ehird> the bouncer runs on the server
14:14:47 <ais523> and I thought you were rebooting the eserver
14:15:04 <ais523> <-- ehird has left this server ("Caught sigterm, terminating...").
14:15:12 <ais523> that's the message your bouncer gives when someone sigterms it
14:15:15 <ehird> must have repeated a kill line from the history
14:15:21 <ehird> (ctrl-r by mistake)
14:15:27 <ehird> or it may hvae crashed
14:39:04 <ehird> ... Time Machine will version my .git directories. That will be ... interesting.
14:41:20 <ehird> Gah, I need zsh. Can't take bash any longer.
14:41:31 <ehird> MacPorts or manual compile ... MacPorts.
14:41:37 <ais523> you should be proficient with a range of shells, ideally
14:41:44 <ais523> even csh, in case you're stuck using it
14:42:05 <ehird> I can use bash, I just don't _want_ to
14:42:10 <ehird> Can't use csh though, thank god.
14:42:26 <ais523> the CDE computers here are tcsh by default
14:42:46 <ehird> I wonder how long it took to make the Stacks in the dock fold out line the leaning tower of pisa
14:44:04 <ais523> probably not all that long
14:44:57 <ehird> Can't map the URL 'file://.' to a port description file ("Could not find Portfile in /Users/ehird").
14:45:08 <ehird> oh, I need to sync. I think.
14:45:45 <ehird> MacPorts is written in Tcl./
14:47:10 <ehird> configure: error: C compiler cannot create executables
14:47:15 <ehird> Ah. Methinks I need the developer tools.
14:50:08 <ehird> bsmntbombdood: no, I don't have a C compiler
14:50:56 <ehird> was scripts mounted?
14:51:00 <ehird> that would explain it
14:51:40 <ehird> i knew it was a weird directory :P
14:54:19 <ehird> this disc doesn't have the developer tools
14:54:25 * ehird trudges off to get it from adc
14:54:38 <ais523> is it a legitimate disk?
14:54:50 <ehird> no, but the problem is that it's disc 1, the install disc
14:55:00 <ehird> instead of disc 2, the Things You Need To Actually Be Able To Use This disc.
14:55:56 <ehird> there we go, downloading
14:56:05 <ehird> holy carp it's 996MB.
14:56:12 <ehird> why isn't this bundled with the os. geez.
14:56:13 <ais523> that won't fit on a CD
14:56:53 <ehird> ais523: OS X install disc = dual-layer DVD
14:57:09 <ehird> iirc it's about 7.5 GB used out of 8.5
14:57:31 <ehird> http://tunes.org/legalese/bugroff.html <--this is even better than the WTFPL
14:58:38 <ehird> although the "all lawyers suck" sentiment is stupid.
15:07:13 <ehird> ais523: you've used OCaml, right?
15:07:33 <ais523> yes, I'm doing a uni project with it atm
15:12:09 <ehird> ais523: is it as crap as they say
15:12:18 <ais523> it has various troubles
15:12:25 <ais523> the most annoying is the lack of any sort of operator overloading
15:12:43 <ais523> in Perl, you have eq that's different from ==
15:12:48 <ais523> for comparing strings vs. numbers
15:12:54 <ais523> that's fine, you need it as it's weakly typed
15:13:03 <ais523> in C, you have / for int vs. / for float
15:13:08 <ais523> which is also fine, as it's strongly typed
15:13:08 <ehird> ocaml has no typeclasses right?
15:13:15 <ais523> OCaml is strongly typed (without typeclasses)
15:13:15 <ehird> that's why you pay homeage to slashdot all the time
15:13:24 <ehird> yeah that's really stupid
15:13:25 <ais523> yet it requires a different operator for everything, it seems
15:13:28 <ais523> and normally a cast too
15:13:41 <ehird> also, it's strictly evaluated and non-pure.
15:13:47 <ehird> which is also kinda stupid for a functional language.
15:13:53 <ais523> it's an imperative language too
15:13:59 <ehird> and an OOP language
15:14:02 <ais523> it's specifically designed to be both imperative and functional
15:14:07 <ais523> the OOPness I haven't learnt
15:14:15 <ais523> so although I'm writing OCaml, I'm only really using Caml
15:14:18 -!- KingOfKarlsruhe has joined.
15:15:02 <ehird> ais523: function arguments are evaluated right to left
15:15:07 <ehird> because it's efficient for stack usage
15:15:13 <ehird> that's just awful in an imperative language...
15:15:18 <ais523> I try not to rely on any order of evaluation
15:15:25 <ais523> except the fact that a;b runs a before b
15:15:30 <ais523> it's less confusing that way
15:15:42 <ehird> I'll stick to Common Lisp for my functional/imperative mix.
15:18:16 <ehird> ais523: is ocaml as fast as claimed?
15:18:40 <ais523> I'm doing all sorts of ridiculous things that should be slow
15:18:56 <ais523> but they're running so quickly I can't tell how fast they're running
15:19:05 <ais523> and like solving a maze by random walk
15:19:11 <ais523> (or the programming equivalent)
15:19:14 <ehird> what's the project?
15:19:22 <ais523> compiling imperative languages into hardware
15:19:34 <ais523> which has basically become compiling functional languages with some weird restrictions into hardware
15:19:58 <ehird> ais523: what lang are you compiling? You've mentioned it, care to show e.g. factorial function?
15:20:18 <ais523> well, it's a functional lang with no recursion
15:20:23 <ais523> there are restrictions to make it turing-incomplete
15:20:33 <ehird> ais523: so presumably you need to do an imperative loop for factorial
15:20:34 <ais523> you have imperative loops instead, which are converted into tail-recursion
15:20:45 <ehird> so what does factorial look like?
15:20:49 <ais523> also, I'm working mostly on the intermediate representation
15:20:56 <ais523> so I'd have to look up what the syntax for a loop is
15:21:01 <ais523> in the original source
15:21:07 <ehird> is it basically just:
15:22:01 <ehird> fun fact(n : integer) : integer; i = 1; loop (n != 0) with (n = n - 1); i *= n; end; end?
15:22:06 <ehird> i.e. nothing special
15:22:27 <ehird> what computational c lass is it?
15:22:44 <ehird> is that the most powerful sub-TC level?
15:22:54 <ehird> ah, is such a concept undefined?
15:22:56 <ais523> it's equivalent to finite-state-machine, which is one of the lowest
15:23:11 <ais523> but it means, in practice, "something which would be TC except it doesn't have infinite memory"
15:23:22 <ehird> I'm interested in nearly-TC languages, specifically, total functional programming languages
15:23:33 <ehird> you know how in FP langs, all values are actually (value or _|_)?
15:23:36 <ehird> where _|_ = bottom
15:23:44 <ehird> x = error "nooooo"
15:23:57 <ehird> func "a value its pattern matching doesnt handle"
15:24:00 <ais523> I'm not really aware of how fixed-point languages work
15:24:07 <ehird> functional programming
15:24:22 <ehird> anyway, a total FP language is one without _|_
15:24:41 <ehird> all pattern matches must be complete, every program halts, and there are no errors apart from with types like (Either Error Result)
15:24:55 <ais523> the one I'm working with is one of those, apart from the every program halts bit
15:25:03 <ehird> I've read a paper which suggests to me that you can actually make such a language useful for most tasks
15:25:09 <ais523> if a program doesn't halt, it's in an infiniloop so there's no way to tell what its return value is
15:25:23 <ehird> what i'm thinking about is making a combinator base like ski
15:25:27 <ehird> except that you can only write total programs in
15:25:28 <ais523> also, I love the way that all the data types are syntactic sugar for multiple booleans
15:25:38 <ehird> that is, the machine code for a total FP lang
15:25:40 <ais523> and that would be neat
15:25:51 <ais523> hmm... are total FP langs necessarily reversible?
15:26:05 <ehird> bam, irreversable function
15:26:21 <ehird> although reversibility IS a nice property,
15:26:27 <ehird> I'm not sure total FP + reversability would be useful at all
15:26:34 <ais523> make a functional lang that compiles into BackFlip
15:26:43 <ais523> just for the fun of it
15:26:52 <ehird> can I just gnaw on my toenails instead? that'd be less painful :P
15:27:10 <ehird> something non-2d would be easier :P
15:27:30 <ais523> which has been proved to be compilable into backflip
15:27:35 <ais523> and which is actually quite fun to write
15:28:03 <ais523> <masklinn> One of the worst parts in XSLT is its verbosity (it's a dysfunctional purely functional language, yet building the structure for a recursive function that takes a single argument and doesn't do anything takes like 8 lines)
15:28:29 <ehird> ok, Unassignable looks pretty usable
15:28:42 <ais523> it's the only reversible guaranteed-termination OO lang I know of
15:28:51 <ehird> Error: Target org.macports.activate returned: Image error: /opt/local/bin/zsh is being used by the active zsh-devel port. Please deactivate this port first, or use the -f flag to force the activation.
15:28:58 <ehird> fuck on earthhhhhhhhhhhh
15:29:03 <ehird> Archive and Install is so crap
15:29:06 <ehird> it doesn't delete everything properly
15:29:09 <ehird> it thinks I have stuff installed
15:29:11 <ais523> ehird: where else would you expect to fuck?
15:29:28 <ehird> also, fuck on earth = wtf x 1000
15:29:46 <ehird> bournemouth:~ ehird$ sudo rm -rf /opt
15:30:39 <ehird> sure is taking a while
15:30:48 <ais523> hmm... I'm not the sort of person who'd do something like that, I don't think
15:31:04 <ais523> I would find it really amusing if rm was in /opt. or sudo was.
15:31:10 <ais523> although that's unlikely
15:31:16 <ehird> ais523: archive and install is meant to move the whole system to /Previous Systems/, then install a clean one
15:31:23 <ehird> unfortunately, it didn't handle macports.
15:31:32 <ehird> so it's kind of confused about what it has.
15:33:12 * ehird tells finder to calculate the size of /opt/local
15:33:17 <ehird> it's taking a while to rm...
15:33:24 <ais523> 0, obviously, you're deleting it
15:33:34 <ais523> also why not delete /opt/local not /opt?
15:33:34 <ehird> it's in the middle of deleting it
15:33:44 <ehird> because /opt only contains local/
15:33:50 -!- BeholdMyGlory has joined.
15:34:02 <ehird> a lot of my installed ports are worthless anyway
15:34:08 <ehird> e.g., ruby and python now come with the os
15:36:27 <ehird> "Installing this software requires no additional space"
15:37:05 <Slereah> It is exactly 0 byte long.
15:38:23 <ehird> No ports are installed.
15:45:05 -!- MigoMipo has joined.
15:47:25 <ehird> ais523: I'm going to write a factorial program in Unassignable.
15:47:36 <ehird> it is possible, right?
15:47:45 <ais523> that binary-to-decimal took me long enough, though
15:47:55 <ehird> I'll just output in unary
15:48:06 <ehird> using your program as the base
15:48:15 <ais523> it's not output that's the problem, I suspect, it's the multiplication
15:48:22 <ehird> err, why is mainloop an integer?
15:48:23 <ais523> trying to reset state afterwards could be fun
15:48:36 <ais523> loops can only exist as methods on integers
15:48:39 <ais523> "loop this many times"
15:48:47 <ais523> and you can't change the integer during the loop
15:49:01 <ais523> the general rule is that if you're inside a method of an object, you can't change, or even mention, the object itself
15:49:07 <ais523> because that would be recursion, and that would be wrong
15:49:12 <ehird> (X must be a power of 2).
15:49:15 <ehird> ok, that_is_ an issue
15:49:24 <ais523> you can work around it
15:49:35 <ais523> there's a pair of variables in my binary-to-decimal which simulate an x of 10
15:49:45 <ais523> basically, you have two variables, one the power below, one the power above
15:49:47 <ehird> which binary to decimal
15:49:54 <ais523> ehird: it's the only example program I give
15:49:57 <ais523> a counter which outputs in decimal
15:50:01 <ehird> http://esolangs.org/wiki/Talk:Unassignable
15:50:05 <ehird> http://esolangs.org/wiki/Unassignable#Example
15:50:19 <ais523> ah, the one on the talk page
15:50:24 <ais523> the other one's probably a syntax example
15:50:48 <ehird> ais523: can X be a variable in increment(X)?
15:51:01 <ais523> it has to be a constant power of 2
15:51:09 <ais523> although increment(1); increment(8); is legal
15:51:13 <ais523> and a trivial way to increment by 9
15:51:17 <ehird> ah, I've figured out how to do it
15:51:30 <ehird> then that iterates othernum->increment(1)
15:51:53 <ais523> incidentally, if you need multiple iterators on a single integer, and you normally do
15:52:04 <ais523> get its iterator to call lots of functions, and disable all but the one you need
15:52:20 <ais523> I should make a sugared version of Unassignable some day
15:52:36 <ehird> integer factorial(4294967295)=4294967295;
15:52:43 <ehird> and it calls a special object that just deactivates it
15:53:02 <ehird> factorialkiller->doyourthin
15:53:05 <ehird> and factorialkiller does
15:53:10 <ehird> factorial->deactivate
15:53:14 <ais523> er... that's recursion
15:53:35 <ehird> well, that's okay, n! only iterates n times
15:53:39 <ais523> the iterator, say, is three functions, a, b, and c
15:53:59 <ehird> integer factorial(6)=6;
15:53:59 <ehird> integer factorial(6)=6;
15:54:00 <ais523> wait, two will do, a and b
15:54:07 <ais523> initially, a's active and b's inactive
15:54:11 <ais523> a can break by activating b
15:54:23 <ais523> and b increments a counter that's initially -1, and deactivates a on overflow
15:54:39 <ais523> you can't activate an inactive function, or deactivate an active function, because that breaks reversibility
15:56:09 <ehird> ais523: can any function take non-constant args?
15:56:10 <ehird> result->multiply(num);
15:56:24 <ais523> no, all args are constants
15:56:33 <ais523> you can use global variables to pass args
15:56:56 <ais523> due to no-recursion, you don't have scoping problems if you name the args after the functions
15:58:14 <ehird> multiplication is hard :<
15:58:21 <ehird> in unassignable that is :P
15:58:29 <ehird> since you can't really loop over two v- except...
15:58:32 <ais523> even addition is non-trivial
15:58:50 <ais523> so I suppose you could just do a += b in a loop
15:59:00 <ais523> you probably want to do a -= b in a loop afterwards to reset a
15:59:21 <ehird> a += b is trivial?
15:59:32 <ais523> loop on b, incrementing a
15:59:41 <ehird> yeah but you can't loop that
15:59:47 <ehird> and a = b is also a pain
15:59:52 <ehird> because we're doing multiple iterators
15:59:54 <ehird> andf sjfhdksfhkdfjhsdkfshfkjdf
15:59:59 <ais523> reversible lang, remember
16:02:01 -!- FireFly has joined.
16:02:58 <ais523> it's not an easy language
16:03:20 <ehird> ok, I've got this program working:
16:03:32 <ehird> is there an interp?
16:07:48 <ehird> Copied old '~/.zshrc' to '~/.zshrc.zni'.
16:07:48 <ehird> *** Internal error: bad type for keymap ***
16:07:48 <ehird> --- Type a key in forlorn hope ---
16:08:13 <ais523> ehird: I have a compiler to C++
16:08:19 <ais523> but it doesn't enforce the no-recursion rule
16:08:38 <ais523> I think I know where it is
16:10:27 <ais523> it seems to be in two parts, a .c file which is the compiler in C, and a .h file which is the header for generated files in C++
16:11:00 <ais523> http://filebin.ca/hpckp/una2cpp.tgz
16:11:31 <Sgeo> Post that URL to the wiki?
16:11:52 <ais523> it'll vanish in a few hours
16:12:02 <ehird> filebin links generally persist
16:12:04 <ais523> it's a temporary pastebin
16:12:05 <ehird> ooh, I have bsd ls(1)
16:12:19 <ais523> "Files will be kept in a rotating pool of space, and may be removed at any time."
16:12:25 <ehird> ais523: yes, it's not actually true
16:12:28 <ehird> I've never had a filebin link expire
16:12:29 -!- oerjan has joined.
16:12:32 <ais523> so they persist until someone else pastest something big, I guess
16:13:00 <oerjan> beware of what thou pastest
16:13:47 <ehird> /Users/ehird/Code/esolangs/unassignable/una2cpp
16:14:21 <ehird> Integer has invalid maximum.
16:14:24 <ais523> including a complete source tree for all the packages in a uclinux distro which is about 6 directories below my home
16:14:25 <ehird> the max is 4294967295
16:14:30 <ehird> needs to be 4294967294
16:14:37 <ais523> no, the first value is probably correct
16:14:43 <ais523> my guess is I wrote int rather than unsigned
16:14:44 <ehird> then whydit complain
16:15:04 <ais523> it was a quick hack, as you can tell by the state of una2cpp.h
16:15:07 <ehird> if(fscanf(in,"%lu",&templu)!=1)
16:15:07 <ehird> fprintf(stderr,"Integer maximum is not a number.\n");
16:15:07 <ehird> return EXIT_FAILURE;
16:15:31 <ais523> ehird: that's not the error you're getting
16:15:44 <ais523> and fscanf returns 1 if it inputs 1 input value, so it's a correct check
16:15:52 <ehird> case 4294967295LU: break;
16:15:52 <ehird> fprintf(stderr,"Integer has invalid maximum.\n");
16:16:09 <ehird> so it should work...
16:16:18 <ehird> function main=activated;
16:16:18 <ehird> integer a(4294967295)=5;
16:16:18 <ehird> integer multiply(5)=5;
16:16:22 <ehird> that'sthe whole declaration section
16:16:32 <ais523> it's the 5 that's invalid
16:16:50 <ais523> look at tenloop in my Talk:Unassignable program, though
16:16:56 <ais523> that shows how to do an integer with a different maximum
16:17:03 <ais523> basically, to get an int from 0 to 9
16:17:12 <ais523> I had an int from 0 to 8 and an int from 0 to 16
16:17:16 <ehird> the maximum can be anything
16:17:19 <ehird> I just set it to 5
16:17:28 <ais523> integer b(7)=5; is legal
16:17:40 <ehird> b and multiply never change
16:18:11 <ehird> #define CURCLASS void unatmain::
16:18:18 <ehird> that is not valid C, surely
16:18:28 <ais523> look at the other #defines
16:18:36 <ais523> it becomes valid C++ once you apply all of them
16:18:36 <ehird> I think I'll avoid that :P
16:18:39 -!- oerjan has quit ("Reboot").
16:19:14 <ehird> multiply.cpp:14: warning: this decimal constant is unsigned only in ISO C90
16:19:28 <ehird> multiplication doesn't work
16:19:36 <ehird> ais523: does the loop loop for the maximum
16:19:49 <ais523> but you mustn't change the value during the loop, or even mention it
16:19:58 <ehird> My program tells me 5 * 5 = 30
16:19:58 <ais523> paste your program, so I can see what's wrong with it?
16:20:08 <FireFly> [17:13:49] <ehird> longest path evar <-- I've seen longer, it's called Windows
16:20:17 <ais523> my guess is you started with 5, then added 5 to it 5 times
16:20:25 <ehird> ais523: http://pastie.org/private/vvvlhnwhslor4idpdepaow
16:20:27 <ais523> whereas you need to start with 0 for that to work
16:20:58 <ehird> that makes things a lot more compliated, then
16:21:11 <ais523> the real trouble in unassignable is resetting variables once you're done with them
16:21:20 <ais523> you often have to write large parts of your program in reverse
16:23:33 <ehird> calculates 100 * 576 = 57600
16:23:41 <ehird> now I can write factorial
16:23:46 -!- oerjan has joined.
16:23:53 <ehird> http://pastie.org/private/e0z6t3a9k0npupa2nk4lbq
16:24:04 <ehird> it doesn't check limits
16:24:10 <ehird> you can fix them :P
16:24:28 * ehird just sets all limits to 4294967295
16:25:03 <ais523> as for factorial, note you aren't allowed to iterate on b whilst multiplying by b
16:25:19 <ais523> the easy solution here is just to get the variable you're iterating on to increase a separate loop counter
16:29:14 -!- Hiato has joined.
16:31:26 <ehird> gah, my delete key is ^? but zsh wants %H
16:31:47 <ehird> no, you use zsh keybindings
16:32:04 <ehird> factorial.cpp: In member function ‘virtual void unatmain::erun()’:
16:32:04 <ehird> factorial.cpp:38: error: ‘class unatfactorial’ has no member named ‘fcall’
16:32:08 <ais523> well, it depends on what delete key you want for stdio, I suppose
16:32:28 <ehird> ... 6! = 21, apparently.
16:33:07 <ais523> I should make an unassignable compiler that enforces the restrictions, really
16:33:35 <ehird> wait, why on earth is it = 21...
16:34:49 <ehird> lol, it's addorial
16:36:58 * oerjan beats ehird with a triangle |>
16:37:03 <ehird> ^H does backwards delete
16:37:06 <ehird> what's forward delete?
16:37:36 <ehird> "^H" backward-delete-char
16:37:36 <ehird> "^?" backward-delete-char
16:37:53 <ehird> my terminal sends \033[3~
16:37:56 <ehird> so I guess I'll bind that
16:41:16 <oklopol> what's the commotion that composes this day?
16:41:26 <ais523> oklopol: ehird upgrading his OS
16:41:55 <ehird> I miss my old prompt.
16:41:59 <ehird> Even though it was unreadabl.
16:42:16 <ais523> anyway, why aren't all your settings saved in dot files in ~?
16:42:18 <ehird> oklopol: past tense
16:42:26 <ehird> ais523: they are, the system was reinstalled
16:42:35 <ehird> archive + install = copy old system to special directory, do clean install
16:42:57 <ehird> /Previous Systems.localized/2009-02-11_1200/Users/ehird % cat .zshrc
16:43:11 <ais523> wouldn't it be usual to move your home dir over after doing that
16:43:40 <ehird> yes, but I have so much rubbish in my home directory that I decided to leave it and copy on need
16:44:05 <oklopol> you could always copy on write
16:44:07 <ehird> precmd() { print -Pn "\e]0;%n@%m:%~\a" }
16:44:07 <ehird> export PS1=$(print "%{\e[33m%}")"[%n:%~] %#"$(print "%{\e[0m%}")" "
16:44:19 <ehird> Yes, yellow on white is unreadable. I don't care.
16:44:48 <ehird> Prompts are for feel, not usefulness. :P
16:44:53 <oklopol> is that some kinda sh-language?
16:45:10 <ehird> PS1&precmd is the hideous baby sublanguage
16:45:14 <ehird> but I use command interpolation there too
16:45:19 <ehird> so i can print out colours
16:45:31 <oklopol> i should learn more languages.
16:46:46 <ehird> I should install SBCL.
16:47:07 <ehird> Where would my system be without a crazy lisp compiler that has tons of hacks to make it portable so you can compile it without a bunch of annoying bootstrapping?
16:47:20 <ehird> And that is really, really fast?
16:47:36 <ehird> Ooh ooh, I can get the new Carbon Emacs. Oh wait, I despise emacs.
16:47:45 <ais523> what, I thought you liked it
16:48:04 <ehird> I tolerate it because writing Lisp or Haskell with anything else is painful
16:48:04 <Deewiant> ehird: What does that precmd do?
16:48:16 <ehird> Deewiant: puts "ehird@bournemouth:~/Code" in my titlebar
16:48:19 <Deewiant> ehird: In particular, that print command.
16:48:54 * ehird looks for it in zshbuiltins
16:49:14 <ehird> I wrote this in 2007, y'see.
16:49:27 <ehird> -P Perform prompt expansion (see zshmisc(1)).
16:49:37 <ehird> so that's for the %n stuff and suchlike
16:49:43 -!- oklofok has joined.
16:49:57 <Deewiant> -p Print the arguments to the input of the coprocess.
16:50:06 <ehird> I love how the quotes in export PS1=$(print "%{\e[33m%}")"[%n:%~] %#"$(print "%{\e[0m%}")" " start half way through
16:50:15 <ehird> because you can not quote command interpolations, so I didn't
16:50:27 <ehird> as in you can and you can also opt not to
16:51:49 <ehird> carbbon emacs is from a japanese server and the server is so slooooow
16:52:24 <Deewiant> It's probably fairly fast, it's the wires that're slow :-P
16:53:11 <ehird> I want wireless wires.
16:54:02 -!- oklopol has quit (Read error: 60 (Operation timed out)).
16:54:12 <ehird> not only is it freaking cool, on account of using lasers, it is infinitely fast.
16:54:26 <ehird> because the lasers are actually light. and the computers are -1 miles apart from each other.
16:54:33 <ehird> this is done by bending spacetime.
16:56:25 <oklofok> ^ this here sounds very very good.
16:56:56 <Slereah> Lasers aren't infinitely fast, ehird
16:57:04 <ais523> Slereah: they are if they go BACKWARDS!
16:57:06 <ehird> They are if you bend space time, moron.
16:57:26 <ehird> They go both backwards _and_ bend space time.
16:57:48 <ehird> You're just afraid of new science.
16:57:52 <ehird> Afraid... of WHAT LIES AHEAD.
16:58:13 <ehird> the physicist is a lameo.
16:58:29 <ehird> we can just bend spacetime so that lasers shoot out lasers that are infinitely fast.
17:00:33 <ehird> zsh: command not found: git
17:00:36 <ehird> DSHJSDFkJShdfkjsdhfkjsdfhsdf WHAAAAAAT
17:00:45 <ais523> yay for working package managers
17:00:54 <ehird> my package manager works fine
17:00:57 <ehird> I just haven't installed git
17:01:22 <ehird> i was just assuming this computer was absolutely perfect out of the box
17:01:26 <ehird> because I mean why wouldn't it be
17:03:22 <ehird> emacs is 145mb that's just not right.
17:03:27 <ehird> an editor has no right to be that big :|
17:09:31 <ehird> Too many things depend on other things.
17:10:42 -!- Slereah has left (?).
17:10:52 -!- Slereah has joined.
17:13:27 <ehird> oklofok: will oklotalk handle the euler identity?
17:13:46 <ais523> ehird: Mathematica's probably got a command for solving the euler identity, by the way
17:14:04 <ehird> ais523: I tried doing N[(equation here)] but it just made e and pi into numbers
17:14:05 <ais523> you have to use things like Reduce[] or Solve[] or that sort of thing to manipulate expressions into different forms
17:14:14 <ais523> N is just a numerical approximator
17:14:23 <ehird> right, so it should numerically approximate the euler identity
17:14:24 <ais523> you need a symbolic manipulator to solve that identity
17:14:35 <ehird> mathematica is weird ass
17:14:37 <ais523> because Mathematica operators don't do more than they're designed to do
17:15:40 -!- oerjan has quit ("Noise unbearable").
17:16:07 <oklofok> ehird: dunno. i'm a fairly discrete dude.
17:16:16 <ehird> is discrete your middle name.
17:16:36 <oklofok> oklopol discrete ominovorol
17:16:52 <ehird> [17:16:45] oklofok has userhost n=nnscript@a91-153-121-248.elisa-laajakaista.fi and realname Ville Salo
17:18:06 <ehird> git relies on gettext
17:18:13 <ehird> I don't care if it's indirect, just ugh
17:18:17 <ais523> internationalisation, obviously
17:18:23 <ehird> git is english only
17:18:42 <ehird> umm, most version control systems and the like only output in english
17:18:46 <ais523> anything let anywhere near a major OSS repo tends to get translated
17:19:04 <oklofok> actually that name is just gibberish i sometimes use to confuse people; you see this one student organization requires real names to be real names, so i made up a finnish-sounding name.
17:19:31 <ehird> ais523: IMO it doesn't make sense to translate a vcs
17:19:41 <ehird> you need to know english to program in most languages
17:19:47 <ehird> yes, you can rote memorize a few keywords as meaningless
17:19:53 <ehird> but you can do that with your VCS's terminology, too
17:20:09 <ehird> e.g. Python's style guide strongly suggests that comments are in english
17:20:11 <ais523> hmm... maybe git depends on gnu coreutils?
17:20:17 <ais523> it's very heavily sh-based
17:20:21 <ais523> it may need specific utils
17:20:30 <ehird> we'll see if macports tries to install gnu coreutils
17:20:37 <ehird> (I hope not, though... I like my BSD userland)
17:20:56 <ais523> LC_ALL=fr_FR.utf8 cp --help outputs in French for me; LC_ALL=fr_FR.utf8 git --help doesn't
17:21:11 <ais523> "Copier la SOURCE vers la DESTINATION, ou de multiples SOURCES vers un RÉPERTOIRE."
17:21:19 <ehird> % LC_ALL=fr_FR.utf8 cp --help
17:21:20 <ehird> cp: illegal option -- -
17:21:20 <ehird> usage: cp [-R [-H | -L | -P]] [-fi | -n] [-pvX] source_file target_file
17:21:20 <ehird> cp [-R [-H | -L | -P]] [-fi | -n] [-pvX] source_file ... target_directory
17:21:47 <ais523> $ LC_ALL=fr_FR.utf8 gcc --help
17:21:49 <ais523> Usage: gcc [options] fichier...
17:22:03 <ehird> % LC_ALL=fr_FR.utf8 gcc --help
17:22:03 <ehird> Usage: i686-apple-darwin9-gcc-4.0.1 [options] file...
17:22:03 <ehird> -pass-exit-codes Exit with highest error code from a phase
17:22:05 <ais523> so gcc, at least, needs gettext, or at least can use it
17:22:10 <ehird> I guess Apple stripped out the translation files
17:22:24 <ais523> I like having multiple languages available
17:22:34 <ais523> you never know when you might want to give a guest account to someone chinese, for instance
17:24:00 <ehird> do not give this email address out
17:24:00 <ehird> do not CC me on any public mailing list with this address
17:24:00 <ehird> do not place this address in cleartext on any web page
17:24:12 <ehird> I am so tempted to type it in here and let clog and Google be the perps, not me...
17:24:34 <ehird> ah, it's already on the interwebs it seems
17:24:42 <ehird> http://www.nightmare.com/~rushing/new_email.html
17:24:43 <oklofok> i don't get the spammophobes, who doesn't like spam
17:24:49 <ehird> As a service to the blind, this address reads:
17:24:52 <ehird> sam@rushing.nightmare.com
17:25:34 <Deewiant> I don't get people who get hundreds of spam messages a day
17:25:52 <ehird> I get hundreds of spams a day, but I never see them apart from 1 or 2 every once in a while
17:25:56 <oklofok> i just get the ones i've requested
17:26:03 <ehird> Deewiant: register for a load of sites willy-nilly
17:26:07 <oklofok> (a seer, and some advertisement)
17:26:09 <ehird> also, post it on the interwebs in plain text regularly
17:26:13 <ehird> ----------------------> SPAM
17:26:24 <ehird> well I get more like 30 spams a day
17:26:25 <Deewiant> I've done both hundreds of times :-P
17:26:29 <ehird> if i was more popular i'd get hundreds
17:26:30 <Deewiant> And I get less than 10 per day
17:26:54 <Deewiant> Maybe my ISP just blocks known spam senders and that's where the bulk comes from
17:27:50 <ehird> gmail has, to my knowledge, never blocked a legitimate mail, and let through less than 50 spams to my inbox since 2006 when I got this account
17:27:57 <ehird> it's one great spamfilter
17:28:00 <Deewiant> gmail has blocked several legitimate mails to my account
17:28:07 <Deewiant> some bugzilla posts and some private mail
17:28:14 <ehird> Deewiant: stop purchasing viagra
17:28:38 <Deewiant> If I purchased viagra wouldn't that mean that it stops blocking viagra, rather than that it blocks something else? :-P
17:29:02 <ehird> y'see, I was implying the nature of that private mail. as a bad joke.
17:29:04 <oklofok> Deewiant: umm probably it'd block the viagra
17:29:13 <Deewiant> ehird: ah, right, didn't get it.
17:30:19 <ehird> man that's one big slipup:
17:30:48 <Deewiant> Anyhoo, that's one reason why I'd like gmail to /not/ block spam
17:30:58 <ehird> Deewiant: you can tell it not to
17:31:00 <Deewiant> Since now I'm never sure whether it's blocked something it shouldn't have
17:31:11 <ehird> Settings->Filters->Create
17:31:16 <ehird> Has the words: [in:spam ]
17:31:17 <Deewiant> 1, 2, or 3 years ago you couldn't :-P
17:31:18 <ehird> click past the warning
17:31:32 <ehird> i'm sure you can figure it out from there
17:31:42 <FireFly> I've had 6 spam mails the last 3 days, not too bad...
17:32:11 <ehird> meh, it isn't uploading
17:32:14 <Deewiant> ehird: Actually I can't. "[in:spam ]"?
17:32:21 <ehird> Deewiant: [ ... ] = textbox
17:32:31 <ehird> so type in: in:spam
17:32:53 <Deewiant> Messages in Spam and Trash will not be searched.
17:33:22 <ehird> [17:31:15] <ehird> Has the words: [in:spam ]
17:33:43 <Deewiant> You really should consider putting subjects and verbs in your sentences :-P
17:35:06 <Deewiant> Hm, can I forward all my existing spam somehow
17:35:33 <ehird> ok, i'll be more specific
17:35:45 <ehird> tick never send it to spam, then click "Also apply to ..."
17:35:49 <ehird> watch spam flood into inbox
17:36:26 <Deewiant> Note: filter will not be applied to old conversations in Spam or Trash
17:36:41 <ais523> why not just read the spam folder/
17:36:57 <ehird> yeah what sgeo said
17:37:00 <Deewiant> Besides, I do want it in the Spam folder, I just want to forward it to my 'real' address
17:37:01 <Sgeo> Select all $num conversations in Spam
17:37:23 <ehird> Forward it to: [... your address ...]
17:37:26 <Deewiant> I can select all but I don't see a 'forward' button
17:37:47 <Deewiant> Also apply filter to 0 conversations below.
17:37:55 <ehird> then your spam is empty
17:38:14 <ehird> screenshot your filter criteria page
17:38:34 <Deewiant> [in:spam] in "Has the words", all else blank
17:38:42 <ehird> ok, click test search
17:38:46 <ehird> does it show all your spam
17:38:49 <Deewiant> No existing messages match your criteria.
17:38:55 <ehird> is this the new gmail
17:39:00 <Deewiant> Is it so hard to believe "Messages in Spam and Trash will not be searched."
17:39:06 <ehird> yes, because I have a filter with in:spam
17:39:13 <Deewiant> I've used this approximately never
17:39:19 <ehird> Deewiant: do the inbox, starred etc links have a semi-large indent in front of them
17:39:20 <Deewiant> I just get everything over POP
17:39:21 <ehird> if so, it's the new one
17:39:57 <Deewiant> Yeah, there's about 2 or 3 em there
17:40:11 <ehird> ok, then it's the new one
17:40:13 <ehird> I have this filter:
17:40:29 <Deewiant> Right, there's a link to "Older version" at the top
17:40:59 <Deewiant> ehird: that space was relevant
17:41:11 <ehird> you can't have a space
17:41:15 <ehird> i thought you meant
17:41:18 <ehird> should I put the space in
17:41:41 <ehird> [ ] was just to represent the browser's text box
17:42:15 <Deewiant> hoo, 1200 conversations of spam coming my mway
17:42:40 <ehird> it's like a ROLLERCOASTER of SPAM
17:43:00 <Deewiant> Either there's a delay or it's not sending them
17:43:01 <ehird> Deewiant: what's your gmail? I'll send you a test spam to see if it's working
17:43:59 <ehird> note: make sure it's in spam folder in your gmail, as well as being forwarded...
17:46:03 <Deewiant> ehird: Wasn't flagged as spam :-D
17:46:16 * ehird gets a real spam from spam folder
17:46:22 <Deewiant> Came into my inbox and thunderbird grabbed it from there
17:46:24 <ehird> viagra spammers should just... write normally
17:46:28 <ehird> they wouldn't be blocked.
17:46:38 <Deewiant> Thunderbird didn't flag it as spam either FWIW
17:48:08 <Deewiant> gmail spam, wasn't forwarded to me though
17:48:23 <ehird> in the filters pane, what does it say?
17:48:59 <Deewiant> The following filters are applied to all incoming mail: Matches: in:spam Do this: Forward to ...
17:49:53 <ehird> Deewiant: try also ticking "never mark as spam"
17:50:37 <ehird> Deewiant: btw if you use imap the spam is sent as a folder
17:50:38 <Deewiant> (Again refused to do anything with the old ones)
17:54:34 <Deewiant> Wouldn't help for receiving the mail :-P
17:55:03 <ehird> I meant use IMAP directly on gmail
17:55:38 <Deewiant> my gmail got hit with some authentic japanese spam though, and that was forwarded correctly \o/
17:55:50 <ehird> still in the spam folder
17:55:56 <ehird> enjoy your useless ibox
17:56:07 <Deewiant> Because you told me to set "don't mark as spam" :-P
17:56:22 <Deewiant> Now it comes to both my gmail and non-gmail inboxes
17:56:58 <ehird> it'll forward it, then delete it
17:57:15 <Deewiant> Rather, I'll not forward it and just grab it from the inbox
17:57:38 <ehird> That also doth work
17:57:42 <Deewiant> ehird: Now tell me how I can select all spam and forward it
17:57:56 <Deewiant> Rather, I can do the former, but I don't know how to do the latter
17:57:58 <ehird> Write a script that connects via imap, reads all spams, and forwards them
17:58:10 <Deewiant> GMail has no 'forward' button?
17:59:18 <ehird> But it's message specific
17:59:34 <ehird> Select al lof them
17:59:38 <ehird> hopefully, it'll forward
17:59:48 <Deewiant> The "not spam" button is helpfully disabled after I select all
18:00:02 <Deewiant> Because I might press it accidentally or something, I guess.
18:00:11 <ehird> then do that one manually
18:00:36 <Deewiant> Deselecting one deselects all pages that I don't see as well
18:00:44 <Deewiant> I'd have to do each page manually
18:00:56 <ehird> Deewiant: no, you can do it
18:01:22 <Deewiant> Still selects only the first page
18:01:31 <ehird> Deewiant: do a search for
18:01:57 <Deewiant> Ooh, now I got your spam btw :-P
18:04:07 <Deewiant> ehird: Can I search for 'not-in:inbox' with some syntax
18:04:50 <ehird> so you can just use -{search terms}
18:07:40 * ehird writes gmailbackup.py
18:08:43 <Deewiant> Moving to inbox via the search worked
18:09:32 <Deewiant> And thunderbird is moving dozens to "Sent" because from = to = deewiant@ :-P
18:09:48 <Deewiant> And haha, it can only get 252 at a time
18:11:58 <Deewiant> AnMaster: stopping gmail from stopping spam
18:12:25 <ehird> read the bloody conversation
18:12:29 <ehird> like the rest of us
18:13:20 <AnMaster> well I was just heading to bed anyway, since I have a bad cold, can hardly speak currently...
18:13:22 <Deewiant> Hmm, I think something failed and I only got around 200/500 spam
18:13:58 <Deewiant> Aha! There is one non-spam message here
18:14:12 <ehird> that's spam to me :D
18:14:30 <Deewiant> I like to archive crap like that even if I'm not interested
18:14:48 <Deewiant> Since it's actually authentic mail to me from a provider of a service I use or used
18:15:10 <ehird> do you think I should back up messages to maildir or mbox
18:15:29 <ehird> maildir seems kinda pointless for what I'm doing and mbox is more supported, but I dislike mbox's one-honking-big-fil
18:15:52 <Deewiant> Use the Mozilla version of mbox, not supported by pretty much anything right? :-P
18:16:23 <Deewiant> Welp, my junk filter just got 80 messages of training data
18:16:30 <Sgeo> Bye for now all
18:16:41 <ehird> I don't really want to invent my own format, see.
18:16:45 <ehird> Since that's not very useful.
18:16:53 -!- Sgeo has quit ("Leaving").
18:17:15 <Deewiant> ehird: http://en.wikipedia.org/wiki/Mbox#Limitations
18:17:39 <ehird> er, I knew that? :s
18:17:41 <Deewiant> http://en.wikipedia.org/w/index.php?title=Mbox&diff=267734082&oldid=251122842 :-D
18:17:59 <ehird> that's the third paragraph yo
18:18:19 <Deewiant> mbox stores... -- paragraph one
18:18:25 <Deewiant> The maildir... -- paragraph two
18:19:12 <ehird> mailbox and mbox don't handle folders though
18:19:20 <ehird> maildir++ does, but it's ugly
18:20:32 <Deewiant> You are currently using 1 MB (0%) of your 7294 MB.
18:20:44 <ehird> You are currently using 751MB (10%) of your 7294MB.
18:20:46 <Deewiant> Hmm, now where's that coming from
18:21:09 <ehird> :<, the only thing Mail.app can import is mbox and various propietary shit, + mozilla
18:21:16 <Deewiant> Aha, there's still something in "All Mail"
18:22:20 <ehird> Mayhaps I will output to both maildir AND mbox
18:22:44 <Deewiant> You are currently using 0 MB (0%) of your 7294 MB.
18:28:10 <Deewiant> 939 344 002 bytes of mail here
18:34:10 <ehird> problem with mbox:
18:34:14 <ehird> no folder support :<
18:34:33 <ehird> even folder support isn't that good tbh, since gmail's labels can be all over the place
18:34:56 -!- kwufo has quit ("Leaving.").
18:37:28 <Deewiant> ehird: So what's wrong with maildir++
18:37:47 <ehird> Well, maildir requires me putting hostnames in the generated filenames and really that's just ridiculous
18:37:52 <ehird> also it's not really suited to just dumping
18:37:58 <ehird> I'll probably just dump to multiple mboxes
18:38:01 <ehird> irritating though that is
18:40:00 <ehird> ('OK', ['(\\HasNoChildren) "/" "Agora"', '(\\HasNoChildren) "/" "B Nomic"', '(\\HasNoChildren) "/" "INBOX"', '(\\HasNoChildren) "/" "Nomicron"', '(\\Noselect \\HasChildren) "/" "[Google Mail]"', '(\\HasNoChildren) "/" "[Google Mail]/All Mail"', '(\\HasNoChildren) "/" "[Google Mail]/Bin"', '(\\HasNoChildren) "/" "[Google Mail]/Drafts"', '(\\HasNoChildren) "/" "[Google Mail]/Sent Mail"', '(\\HasNoChildren) "/" "[Google Mail]/Spam"', '(\\HasNoChildren) "/" "[Goog
18:40:11 <ehird> imap i s the worst thing evar
18:41:23 -!- ais523 has quit (Remote closed the connection).
18:52:13 <ehird> Deewiant: does thunderbird handle maildir?
18:52:51 <ehird> [('1234464706.M732275P80012Q1.bournemouth', <rfc822.Message instance at 0x26a2b0>), ('.DS_Store', <rfc822.Message instance at 0x26a300>)]
18:52:55 -!- Corun has joined.
18:52:57 <ehird> fucking OS X and it's fucking hidden files. :|
18:54:39 <Deewiant> I'm currently in Windows where it tells me it can import mail from "Communicator 4.x", "Eudora", "Outlook", "Outlook Express"
18:54:52 <ehird> but not mbox or maildir? o_O
18:55:25 <fizzie> I've imported mbox format with Windows thunderbird, but I think it was more like "copy the mbox here and hope for the best". Maybe.
18:58:49 <fizzie> This Debian Thunderbird (rebranded Icedove) only has "Communicator 4.x" in the "Tools/Import/Mail" wizzard, but the interweb says that I can just put mbox folders under the "Local Folders" storage-place and they'll appear.
18:59:02 <fizzie> Maildir it probably doesn't do.
18:59:21 -!- kar8nga has joined.
19:00:24 <fizzie> There's a lot of command-line mbox/maildir/pop/imap/stuff-handling tools, though.
19:01:33 <Deewiant> http://yergler.net/projects/one-off/maildir-to-mbox/
19:01:43 <fizzie> GNU mailutils has that "movemail" tool that can do conversions, and "capable of speaking POP3, IMAP, mbox, MH and Maildir". And the Pine people had one, too.
19:05:18 <fizzie> Yes, the "uw-mailutils" package has the "mailutil" tool, which is pretty much a frontend to that c-client library of theirs. It does at least IMAP, POP3 and NNTP on the network side, I don't know what local formats. That mailutil I've used in one migration, anyway.
19:08:12 <fizzie> The driver names are "unix", "mbox", "mmdf", "mbx", "tenex", "mtx", "mh", "news" (it's a local news-spool) and "phile" (single-file thing), so I guess it's pretty comprehensive as far as mailboxy formats go, but not maildirry.
19:12:30 -!- olsner has joined.
19:19:50 <ehird> there should be an mbox variant with a header like
19:20:43 <ehird> (\Noselect \HasChildren) "/" "[Google Mail]"
19:20:47 <ehird> i should totally not have to parse that
19:29:00 <ehird> sub c{($_=pop)<0?print substr"/,'\\)(`\n |_.",$_+12,1:c(vec(vec
19:29:00 <ehird> ('<;JK;::::B:::Tshu[FoatcN[LL;DWQ?cJ?=ghTsXqWqwhqgT@CUMGlgTpRd'.
19:29:01 <ehird> 'KhI_wgTp`lpGOYs>quHWthuhUbuhuh[hu@TguhMGWulXsWiiekwhqwhqwxh@q'.
19:29:01 <ehird> 'uXaWGhqqOmqwxhtXiThf:::[:::::Jb?cB_duWI[ZLN[DNqWIObTsPGuUoTDU'.
19:29:03 <ehird> 'oOqWac@sMSUDUMGlWoNp`lXsXeWqc`XquXqW=WqJeW=gpGnWqi[Pu@TgiVeNm'.
19:29:11 <ehird> 'qSQwWwWwWGpSQ]wWonhTTQ]ufeWonhTboEi=::ZQGke`E',$a/6,8)-58>>$a++
19:29:12 <ehird> %6&1?'HGJSTFIXOZ[':'QLRKMUVWYPN',$_,8)-82)}c 10 while$a<1728
19:30:04 <ehird> Perl, Ruby & Python quine:
19:30:11 <ehird> #!/usr/bin/env python
19:30:14 <ehird> print 'Hello, world!\n'
19:30:31 <ehird> with perl, it actually executes python :-D
19:30:43 <Deewiant> print "Just another", ((0 and " Ruby ") or ("Pyt" + "hon" or " Perl ")), "hacker.\n",
19:31:14 <ehird> but in python it outputs an extraneous space+newline
19:32:27 <ehird> try it fo yourself
19:32:34 <ehird> it goes \n, space, \n
19:32:58 <Deewiant> I did try and no extra newline :-P
19:33:40 <Deewiant> File generated by running that ends in 0D 0A.
19:33:57 <fizzie> As long as "" is on another line, of course.
19:34:03 <ehird> >>> print "Just another", ((0 and " Ruby ") or ("Pyt" + "hon" or " Perl ")), "hacker.\n",""
19:34:03 <ehird> Just another Python hacker.
19:34:10 <ehird> >>> print "Just another", ((0 and " Ruby ") or ("Pyt" + "hon" or " Perl ")), "hacker.\n",""
19:34:12 <fizzie> Yes, well, it's two lines.
19:34:13 <ehird> Just another Python hacker.
19:34:34 <ehird> The others output 1 line.
19:34:46 <fizzie> We mean that in the source you put the "" part on another line.
19:34:51 <fizzie> Then it doesn't print out an extra line.
19:35:05 <fizzie> >>> print "Just another", ((0 and " Ruby ") or ("Pyt" + "hon" or " Perl ")), "hacker.\n",
19:35:09 <fizzie> Just another Python hacker.
19:35:28 <fizzie> And the extra empty string there does not produce any output.
19:36:53 <lament> print "" stops working in python3k
19:37:06 <ehird> that's easily fixable
19:37:08 <ehird> just put parens in
19:38:10 <fizzie> Did they remove the automatic-newline for print() in Python 3k too? I don't remember.
19:39:17 <ehird> I wonder if mbox importers check for sent
19:39:22 <ehird> e.g. folders named Sent
19:40:38 <fizzie> Oh, the 3.0 print() function has an extra optional parameter 'end' denoting the ending text.
19:42:36 <ehird> doesn't help for polyglotism
19:45:00 <ehird> http://torvalds-family.blogspot.com/2009/02/25-things-about-me.html
19:45:43 <ehird> written in base 0.04, i assume
19:51:50 <ehird> wtf you can only do one mailbox at a time in imap.
20:13:25 <ehird> All Mail is irritating
20:13:52 <ehird> because it's hard to avoid duplicate messages
20:18:06 -!- Hiato has quit ("Leaving.").
20:22:52 <ehird> http://gqwl.wordpress.com/2009/02/12/making-valentines-day-special-with-haskell-and-brainfuck/
20:23:21 -!- Metcalf has joined.
20:24:01 <Metcalf> Hi Ehird, I was wondering where you are
20:24:14 <ehird> oh right, I updated my system
20:24:16 <ehird> so new irc client config
20:57:33 -!- MigoMipo has quit (Connection timed out).
21:15:47 -!- Corun has quit ("Leaving").
21:20:40 -!- Metcalf has quit ("mov.i #1,1").
21:49:55 <ehird> Python(80380) malloc: *** mmap(size=2281472) failed (error code=12)
21:49:56 <ehird> *** error: can't allocate region
21:49:56 <ehird> *** set a breakpoint in malloc_error_break to debug
21:54:34 <ehird> yeah it's downloading an email
21:54:38 <ehird> I don't have any 2.2gig emails
21:57:25 <olsner> um, doesn't that say 2.2 meg?
21:57:40 <olsner> or is it saying 4.8 gig in pages?
21:57:46 <ehird> the email is just 2mb
21:57:50 <fizzie> At least the mmap syscall is bytes.
21:57:52 <ehird> i'm streaming it to a file
21:57:56 <ehird> wonder if I could optimize that?
21:58:01 <ehird> i.e., have it not go through a string...
21:58:17 <olsner> optimized transfer of 2MB ... should be a waste of time!
21:59:09 -!- Corun has joined.
21:59:54 <fizzie> And that's a rather small allocation. Although you can get ENOMEM (12) by exceeding the maximum number of mappings, too.
22:00:28 -!- GreaseMonkey has joined.
22:00:31 <ehird> 'm not sure why it's doing this.
22:00:44 <ehird> A tiny backtrace snippet from the end:
22:00:44 <ehird> File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/imaplib.py", line 948, in _get_response
22:00:45 <ehird> data = self.read(size)
22:00:45 <ehird> File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/imaplib.py", line 1150, in read
22:00:46 <ehird> data = self.sslobj.read(size-read)
22:03:28 <ehird> What, every single mail message? It may balk out at message 10 but I'm downloading tensathousandsa messages here...
22:03:52 <ehird> I'll give it a try though
22:07:50 <MizardX> http://mail.python.org/pipermail/python-list/2008-January/474035.html
22:08:24 <ehird> it's like we're al lthe same <3
22:08:32 <ehird> "In a worst case scenario, you'll need some 13 gigabytes of
22:08:32 <ehird> virtual memory to read a 15 megabyte message..."
22:08:43 <ehird> worst library EVER
22:08:59 <MizardX> http://bugs.python.org/issue1389051
22:10:16 <ehird> well, it's been over a year
22:12:44 -!- kar8nga has left (?).
22:14:00 <ehird> I'll just use libgmail
22:16:53 <ehird> libgmail is prolly really slow though
22:17:06 <ehird> as it screen-scrapes, eww
22:18:08 <fizzie> There were a couple of workaround-attempts in those two bugs (1389051 and 1092502).
22:18:54 <ehird> I don't wanna edit the core socket.py
22:19:59 <MizardX> make a copy of socket.py in your project dir
22:23:23 -!- KingOfKarlsruhe has quit (Remote closed the connection).
22:34:11 <ehird> libgmail is just too slow
22:35:07 <ehird> # String method conversion by ESR, February 2001.
22:37:41 <MizardX> http://en.wikipedia.org/wiki/ZISC
22:45:11 <ehird> "The following are SGI specific, and may be out of touch with the current version of reality.
22:48:09 -!- Corun has quit ("This computer has gone to sleep").
23:01:04 <ehird> Hooray, backup-gmail version 0.00000001pre-pre-alpha works.
23:03:42 * GregorR doubts highly that ZISCs are TC :P
23:04:08 <GregorR> Because non-looping neural networks aren't.
23:04:17 <GregorR> And looping neural networks are generally uncomputable in bounded time.
23:05:11 * lament computes GregorR's brain
23:05:18 <lament> only took me a second!
23:16:05 -!- BeholdMyGlory has quit (Read error: 104 (Connection reset by peer)).
23:26:50 * ehird just stopped 2,000 windows from opening
23:27:54 <FireFly> Alright, anyways, how come? Why was 2 000 windows about to open?
23:29:07 <ehird> FireFly: I highlighted 2000 files then double clicked