00:00:04 <ehird> Mostly gay orgies, though.
00:05:29 -!- oerjan has joined.
00:07:22 <oerjan> hi pikhq. hi all </lazy>
00:15:14 -!- coppro has joined.
00:16:44 <ehird> formatter['3']=fmtrot13;
00:16:45 <ehird> printf("spoiler: %3\n", "snape killed dumbledore");
00:17:58 -!- pikhq has quit ("Java user signed off").
00:18:04 <oerjan> ehird: It was his sled.
00:19:04 <ehird> for(s=nil; s=nextspoiler("http://www.threadless.com/product/844/Spoilt"); s) {
00:19:04 <ehird> printf("%3\n", s);
00:19:17 <oerjan> what do you do if the number needs to be followed by an ordinary printf character?
00:19:40 <ehird> touché, I hadn't even thought of that
00:19:57 <ehird> i just didn't want to think of an appropriate alphanumeric :)
00:20:36 <ehird> i don't think H is taken (as in hide)
00:20:56 <ehird> s/'3'/'H'/; s/%3/%H/
00:25:20 -!- augur has joined.
00:27:49 <ehird> The actual fmtrot13 function would probably look something like http://sprunge.us/DGfQ.
00:28:02 <ehird> Likely with annotations for printf typechecking.
00:28:22 <ehird> Allow me to correct that.
00:28:45 <ehird> http://sprunge.us/MGNM
00:28:49 <ehird> There, now it actually rot13s. :P
00:29:30 -!- Slereah_ has joined.
00:31:10 <ehird> "If a note interrupts a system call and the note handler calls noted(NCONT), the system call terminates early with error string interrupted. This is very important, as it can be a cause of errors. Beware."
00:31:10 <ehird> Hey, PC loser-ing!
00:40:05 -!- Slereah has quit (Read error: 110 (Connection timed out)).
00:48:30 -!- oerjan has quit ("leaving").
00:49:44 <ehird> http://www.apachenews.org/
00:49:44 <ehird> Issue: Must commit suicide
00:49:44 <ehird> Resolution: CANTFIX
00:49:45 <ehird> Could not find enough money for alcohol. […] Please donate.
00:50:31 <ehird> (http://www.reddit.com/r/programming/comments/a74li/he_will_commit_suicide/c0g60ij)
00:58:30 -!- madbr has joined.
01:03:31 -!- pikhq has joined.
01:09:46 <pikhq> Why am I tempted to play with NaCl?
01:09:57 <ehird> did you know that PC loser-ing as seen in the Worse is Better paper is still an actual issue (although of reduced importance, of course) in Plan 9 today?
01:09:58 <coppro> pikhq: Grab some Na and some Cl and make popcorn
01:10:08 <ehird> "If a note interrupts a system call and the note handler calls noted(NCONT), the system call terminates early with error string interrupted. This is very important, as it can be a cause of errors. Beware."
01:10:12 <ehird> pikhq: because go supports it?
01:10:20 <ehird> and this thus must be an implicit endorsement!
01:10:36 <ehird> nacl is cool, i just wish it didn't focus on web stuff
01:10:39 <pikhq> ehird: Go supports it? Well, then. That was my one major question. :)
01:10:57 <pikhq> I do wish that NaCl was a more generic sandboxing setup, yeah.
01:10:57 <ehird> yep, just set GOOS=nacl and go wild
01:11:09 <ehird> bonus: http://golang.org/pkg/exp/nacl/
01:11:53 <ehird> 8g foo.go; 8l foo.8 will result in 8.out being whatever nacl wants, I expect
01:12:03 <ehird> I suggest compiling with an x86 target on whatever host you have.
01:12:15 <ehird> So, GOARCH=386 GOOS=nacl, I believe.
01:12:25 <pikhq> It's pretty nice for safe arbitrary code execution (never thought I'd say *that* about x86 code) in HTML, but it'd be really nice to see it used for, say, Plash.
01:12:28 <ehird> Although that might try and compile them as 386 compilers.
01:12:34 <ehird> When in doubt, read the build system. :P
01:13:32 <ehird> Hmm, nacl is x86 only.
01:13:38 <ehird> I wonder if that includes amd64.
01:13:50 <ehird> and if not, does it mean the browser has to run as x86, or just the plugin?
01:14:25 <ehird> Using 8* is obviously the only sane choice for NaCl with Go (probably compiled for amd64 for you), so it's only relevant as far as actually using the results goes.
01:14:26 <pikhq> Almost certainly just the plugin. Though you *may* need to use nspluginwrapper.
01:16:45 <ehird> http://doc.cat-v.org/bell_labs/structural_regexps/se.pdf is sweet
01:19:08 <ehird> http://man.cat-v.org/unix_8th/1/visi is intriguing. (gawd, it's so easy to get lost in cat-v.org)
01:20:05 <ehird> its interface appears to be like vi except always in : mode
01:24:04 <ehird> pikhq: btw, a hidden bonus about Go — it contains a full port of Ken Thompson's Plan 9 C compilers to Linux/OS X compiling from and to all of arm, x86 and amd64.
01:24:31 <ehird> and since you can use it with plan9port's lib9 instead of libc...
01:24:40 <ehird> Voila: plan9port now has a compiler and a library.
01:24:58 <ehird> It already has lib9. :P
01:25:20 <pikhq> So Plan9port can be used to run Plan9-esque things on Linux without too much effort.
01:25:45 <ehird> pikhq: Go doesn't support Plan 9, yet the gc compiler is written in Plan 9 C.
01:25:52 <ehird> It may be a viable path!
01:26:07 <pikhq> Actually, that lets me write Plan 9 C.
01:26:31 -!- MizardX has quit (leguin.freenode.net irc.freenode.net).
01:26:32 -!- SimonRC has quit (leguin.freenode.net irc.freenode.net).
01:26:32 -!- Rembane has quit (leguin.freenode.net irc.freenode.net).
01:26:58 * ehird recompiles plan9port as 64-bit; tries to compile plan 9 hello world
01:27:07 -!- MizardX has joined.
01:27:07 -!- Rembane has joined.
01:27:07 -!- SimonRC has joined.
01:27:30 <pikhq> So, C that actually handles Unicode right without silly libraries... Or taking special care not to break the UTF-8.
01:27:55 <ehird> C with decent IO libraries, and an extensible printf.
01:28:01 <ehird> C that compiles really quickly.
01:28:12 <ehird> C with Go-style inheritance (the bio library uses it, for instance).
01:28:16 <pikhq> Hmm. Does the Plan 9 C compiler target NaCl?
01:28:26 <pikhq> ... C with Go-style inheritance?
01:28:28 <ehird> I don't think so. You could try.
01:28:33 <ehird> pikhq: Yep; it has unnamed structs.
01:28:42 <ehird> struct Bar { struct Foo *; }
01:28:49 <ehird> struct Bar { struct Foo; }
01:29:03 <ehird> You can now use a (struct Bar *) as a (struct Foo *).
01:29:27 <ehird> So bar->fooField works, funcExpectingFoo(bar), etc.
01:29:35 <ehird> No interfaces, though, but still. It's nice.
01:29:44 <ehird> pikhq: http://man.cat-v.org/plan_9/1/2c for more
01:31:28 <ehird> tl;dr of the rest: (struct S){v1,v2,v3}. int a[] = {[3]1,[10]5}, a[3]==1. (struct S){.x 2, .y 3}. #pragma lib "foo" makes linker link foo automatically to this program (it's in library headers). printf typechecking. //comments work. long long=64-bit;vlong=long long;uvlong=unsigned long long; emulated on 32-bit (so no switch(){})
01:34:42 <pikhq> #pragma lib, eh... Man, that alone makes C nicer.
01:34:46 <pikhq> Well, C build systems.
01:34:58 <pikhq> Deprecates autoconf. :P
01:35:25 <ehird> Furthermore, if your include files include any other include files you will be poked with a rusty stick, so don't do that. Also, use bio.
01:35:29 <ehird> That's about it for Plan 9 C, really.
01:35:42 <ehird> Oh, and exit statuses are strings; exits(0) for success, exits("foo") for failure.
01:35:55 <ehird> Except plan9port just translates them to 0 or 1; sux2bu.
01:36:30 <pikhq> Does plan9port at least put the error string to stderr?
01:36:38 <pikhq> (or something similar?)
01:36:56 <ehird> It isn't too much of a big deal in practice, anyway.
01:37:10 <pikhq> Not a huge deal, but would be nice.
01:39:43 <ehird> $ 6c -I$PLAN9/include hello.c
01:39:47 <ehird> $ 6c -I$PLAN9/include hello.c
01:39:47 <ehird> /Users/ehird/plan9/include/u.h:5 hello.c:1 unknown #: if
01:39:47 <ehird> /Users/ehird/plan9/include/u.h:6 hello.c:1 syntax error, last name: "<string>"
01:39:57 <ehird> First issue: plan9port, obviously, depends on non-plan9 things.
01:40:06 <ehird> Invokes cpp before compiling.
01:40:09 <ehird> Note: HIDEOUS OW OW OW
01:40:21 <ehird> can't exec C preprocessor /bin/cpp: No such file or directory
01:40:22 <ehird> Not the best start, I must say.
01:40:31 * ehird does cc -E hello.c
01:41:07 <ehird> Oh, the #pragmas aren't there either, of course. Using Plan 9's header files may prove fruitful.
01:41:26 <ehird> hello2.c:60 not a function
01:41:26 <ehird> hello2.c:60 syntax error, last name: __darwin_va_list
01:41:26 <ehird> I should probably look at Go's source.
01:42:39 <ehird> $ ls $GOROOT/include
01:42:39 <ehird> ar.hfmt.hu.hureg_x86.h
01:42:39 <ehird> bio.hlibc.hureg_amd64.hutf.h
01:42:39 <ehird> bootexec.hmach.hureg_arm.h
01:42:52 <ehird> It's justs plan9port's.
01:43:37 <ehird> Hmm... Okay, so gc is compiled with gcc, just with lib9 instead of libc.
01:44:03 <ehird> hello.c:7 function args not checked: print
01:44:03 <ehird> hello.c:8 function args not checked: exits
01:44:03 <ehird> Who needs headers.
01:44:40 <ehird> $ 6l /Users/ehird/plan9/lib/lib9.a hello.6
01:44:42 <pikhq> People who can't type-check by hand, that's who. :P
01:44:47 <ehird> pikhq: This will probably take quite some work. :P
01:45:18 <ehird> Ooh, -l9 produces *different* errors!
01:46:12 <ehird> Eh. I give up for now.
01:50:43 <ehird> pikhq: Oh, I forgot one thing about Plan 9 C — no consst.
01:50:54 <ehird> Well, it may have been added since the paper. I doubt it, though.
01:51:00 <pikhq> Mixed feelings about that.
01:51:27 <ehird> "The keywords register, volatile, and const, are recognised syntactically but are semantically ignored. Volatile seems to have no meaning, so it is hard to tell if ignoring it is a departure from the standard. Const only confuses library interfaces with the hope of catching some rare errors."
01:51:44 <pikhq> On the one hand: it is nice being able to enforce const. On the other hand, const in C is done very poorly.
01:51:58 <ehird> In general I agree; I don't think I've ever had a single error caught thanks to const-correctness, and when trying to transform my own code into const-correct style, type signatures blow up and become completely incomprehensible and useless.
01:53:03 <pikhq> It's almost as though the ISO committee saw the issues with function pointer declarations, and thought "Hmm. The problem with this is that it's not incomprehensible enough. Let's add a keyword!"
01:56:03 <ehird> The intelligence of a group is inversely proportional to the sum of the intelligence of everyone in it, clamped to a maximum value equal to that of the least intelligent person in the group.
01:56:13 <ehird> Erm, not inversely proportional in that way.
01:56:18 <ehird> A group with one dumb person is really dumb.
01:56:26 <ehird> But a group with two intelligent people isn't as intelligent as one intelligent person.
02:00:06 <pikhq> Counter-example: the Haskell committee.
02:00:51 <ehird> 1. Statistical anomalies exist; 2. maybe this isn't one. They really are that smart.
02:01:00 <ehird> #2 is only half-joking.
02:01:01 * coppro searches for the obligatory despair.com link
02:01:18 <coppro> http://despair.com/meetings.html
02:01:24 <pikhq> Yeah, Haskell is probably a statistical anomaly.
02:01:42 <pikhq> Filled with people who know exactly when to let go or something.
02:03:36 <ehird> Or a small subset that dictate things.
02:04:12 -!- Azstal has joined.
02:10:58 -!- Asztal has quit (Read error: 145 (Connection timed out)).
02:12:53 -!- bsmntbombdood_ has joined.
02:21:27 -!- pikhq has quit ("Java user signed off").
02:27:24 -!- bsmntbombdood has quit (Read error: 101 (Network is unreachable)).
02:40:16 <ehird> http://www.youtube.com/watch?v=1KI8QLm8Inw i have no idea what this is
02:43:33 -!- ehird has quit.
03:24:21 <Gracenotes> oh dear. philosophy canceled again. then we'll have two weeks to get through 2/3 of Genealogy of Morality.
03:40:01 -!- Gracenotes_ has joined.
03:42:03 -!- Gracenotes has quit (Nick collision from services.).
03:42:28 -!- Gracenotes_ has changed nick to Gracenotes.
03:49:34 -!- Azstal has quit (Read error: 110 (Connection timed out)).
04:09:46 <Sgeo_> I think I'm writing terrible code
04:09:47 <Sgeo_> for i in (i for i in puzzle_objects.iterkeys() if i.startswith("#GREEN:")):
04:22:13 <Gracenotes> did I mention I dislike the word "pythonic"? Anyway.. not sure there's a cleaner way using generator expressions :/ they're not so much a substitute for filtering with effectful things :/
05:21:18 -!- Sgeo_ has quit (Read error: 104 (Connection reset by peer)).
06:32:25 -!- FireFly has joined.
06:54:12 -!- FireFly has quit ("Later").
06:58:43 -!- madbr has quit ("Radiateur").
07:00:30 -!- puzzlet has quit (Remote closed the connection).
07:00:42 -!- puzzlet has joined.
07:02:06 -!- bsmntbombdood_ has changed nick to bsmntbombdood.
07:23:52 -!- AnMaster has quit (Connection timed out).
07:46:22 -!- AnMaster has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:05:45 -!- AnMaster has quit (Network is unreachable).
08:41:22 -!- puzzlet has quit (Remote closed the connection).
08:41:26 -!- puzzlet has joined.
09:07:24 -!- BeholdMyGlory has joined.
09:10:34 -!- Pthing has joined.
09:37:06 -!- MigoMipo has joined.
10:01:26 -!- Asztal has joined.
10:04:49 -!- MigoMipo has quit ("Page closed").
10:05:42 -!- BeholdMyGlory has quit (Remote closed the connection).
14:00:09 -!- FireFly has joined.
14:04:05 -!- BeholdMyGlory has joined.
16:06:36 -!- clog has joined.
16:06:36 -!- clog has joined.
16:06:37 <AnMaster> ais523, what would you do if computer locked up in the morning with the disk lamp fixed on but not kernel panic or responding at all (needed reset button), memtest showing nothing after running for 8 hours, disk seeming to be just fine (once journal recovery completed) but last log message ended with some garbled chars
16:06:56 <AnMaster> and about the same time the home alarm system broke down
16:07:07 <AnMaster> some sort of electrical issues?
16:07:14 <ais523> I'd assume a brownout, and try to REISUB, or failing that, hard-reboot
16:07:21 <ais523> oh, if you've rebooted already, it should be OK
16:07:34 <ais523> AnMaster: rebooting a Linux system by hand
16:07:38 <AnMaster> ais523, well I ran full fsck on all partitions too just in case.
16:07:48 <ais523> alt-(sysrq+r), alt-(sysrq+e), etc
16:07:54 <AnMaster> ais523, well, holding down power button *didn't* work. that's unusual
16:08:01 <AnMaster> I had to actually use the reset button instead
16:08:30 <ais523> basically, a brownout happens when a power supply malfunction means that the voltage input isn't high enough to cause the system to act correctly
16:08:40 <ais523> but isn't low enough to make it think there's been a power cut and power off
16:08:54 <AnMaster> ais523, hm now that I think about it, I think one of the lamps flickered around then
16:08:55 <ais523> for a 5V system, it's normally somewhere around 4V
16:09:31 <ais523> normally I wouldn't guess that, but it's plausible if other unrelated electronic devices have similar problems
16:10:20 <AnMaster> ais523, well the home alarm system is completely broken, it reported a spurious alarm and now just shows a red single LED on the front marked "error"
16:10:30 <AnMaster> going to get some service people here tomorrow
16:10:44 <ais523> http://en.wikipedia.org/wiki/Brownout_(electricity)
16:11:10 <ais523> most power supplies cope with them badly
16:11:15 <AnMaster> ais523, what's even more odd was that the disk access light was stuck at "accessing" but yet the harddrive was definitely spun down
16:11:51 <AnMaster> <ais523> http://en.wikipedia.org/wiki/Brownout_(electricity) <-- redirects to "power outage"
16:11:56 <ais523> AnMaster: I've had plenty of brownouts when doing electronics myself, sometimes even deliberately
16:12:35 <ais523> its basic effect on most microprocessors and similar devices is to randomly set some of the bits in memory to 0 (or to 1, depending on how the memory works)
16:12:39 -!- FireFly has quit ("Later").
16:12:41 <ais523> including things like registers
16:13:15 <ais523> most computers can't recover sanely from that state; it might be interesting to try to write an esolang (with program stored in simulated ROM) where programs had to be able to
16:13:42 <AnMaster> ais523, usually you use something like an UPS or such iirc?
16:14:11 <AnMaster> ais523, and is it even possible to recover in a sane way except 1) preventing it in the first place 2) detect it and force a reboot
16:14:29 <ais523> AnMaster: probably not; 2) is a very common solution
16:14:31 * AnMaster remembers some PIC<something> with a "brown out detection" feature or such
16:14:56 <AnMaster> ais523, for servers/desktops I assume 1 is more common (as in UPS or similar)
16:14:59 <ais523> yep, it's common to get small brownout detectors that work at a range of voltages, that hard-reset the hardware if they detect a brownout
16:15:07 <ais523> AnMaster: seems about right
16:15:20 -!- MigoMipo has joined.
16:15:49 <AnMaster> ais523, would a brown out cause "normal" light bulbs to dim but a fluorescent(sp?) one to flicker?
16:15:59 <AnMaster> because if so I think it's a perfect match
16:16:06 <ais523> AnMaster: yes, seems about right
16:16:24 <ais523> normal lamps dimming is the most obvious effect, it's where the name brownout comes from
16:16:30 <ais523> because they go brown, but not altogether off
16:17:07 <AnMaster> ais523, a low energy lamp dimmed rather than flickered, and I thought they operated on similar principle to fluorescent ones?
16:17:51 <ais523> I'm not entirely sure how they worked
16:18:08 <ais523> incidentally, were you recording the behaviour of all the lamps in your house when this happened? or do you/your family have a really good memory?
16:18:18 <ais523> or has it been browning out so constantly you've had time to go round and check?
16:18:22 <AnMaster> ais523, I was eating breakfast
16:18:34 <AnMaster> and I was standing just besides a fluorescent lamp
16:18:44 <AnMaster> with a non-fluorescent in the window
16:18:55 <AnMaster> and a low energy one also in view
16:19:16 <AnMaster> ais523, from system logs I reconstructed that the lock up must have happened at aprox the same time +- 5 minutes
16:19:32 <AnMaster> as in, I found the computer locked up about 5 minutes after
16:19:53 <AnMaster> and last system log message (something from cron) was about 10 minutes before I found it that way
16:20:37 <ais523> ouch, fsck definitely seems broken on this computer
16:20:45 <ais523> the logon autofsck keeps stopping at 89-90%
16:20:52 <ais523> with no disk activity, and with the computer locked up
16:21:06 <AnMaster> ais523, home alarm system I noticed a short while later, and it hadn't been like that when I went downstairs. So that gives an aprox +/- 20 minutes range on the home alarm system error led turning on
16:21:17 <ais523> although, it did just go from 89 to 90
16:21:26 <ais523> which is strange given the lack of disk activitu
16:21:27 <AnMaster> It didn't seem too far fetched to connect them
16:21:40 <ais523> meh, I'll wait a while and see if it goes up higher
16:21:57 <AnMaster> ais523, hm... is that the "mounted n times, fsck forced" fsck?
16:22:20 <ais523> except, hidden behind a graphical bootsplash thing
16:24:02 <AnMaster> ais523, btw did you know that fsck.xfs just returns 0?
16:24:20 <AnMaster> fsck.xfs is called by the generic Linux fsck(8) program at startup to check and repair an XFS filesystem. XFS is a journaling filesystem
16:24:20 <AnMaster> and performs recovery at mount(8) time if necessary, so fsck.xfs simply exits with a zero exit status.
16:24:57 <AnMaster> there is xfs_check to actually check things if you want to
16:25:10 <AnMaster> ais523, why do you use the bootsplash thing?
16:25:17 <ais523> AnMaster: it's on there by default
16:25:25 <AnMaster> ais523, one change in grub iirc?
16:25:39 <AnMaster> something like adding nosplash
16:25:53 <ais523> but Ubuntu change round the boot sequence every now and then
16:26:02 <ais523> and part of the reason I'm running Ubuntu is to try to debug it for everyone else
16:26:41 <AnMaster> ais523, ah I'm still on jaunty
16:26:49 <AnMaster> looks like there will be a kernel upgrade today
16:27:45 -!- Pthing has quit (Remote closed the connection).
16:28:15 <AnMaster> * SAUCE: Enable speakers for Toshiba NB200 (Realtek ALC272)
16:29:20 <AnMaster> it doesn't seem to refer to any kernel module
16:31:05 <AnMaster> well, at least the relevant part of the version number didn't change, so I don't have to mess around with the various external modules (virtualbox, backported wlan drivers, and so on)
16:37:48 <AnMaster> ais523, hm what causes a brown out?
16:38:24 <ais523> AnMaster: usual cause on the small scale is trying to draw too much current from one power supply
16:38:29 <ais523> I think it can happen on the large scale too
16:38:45 <ais523> when the supply available for a neighborhood or an entire city isn't enough to meet demand
16:58:27 -!- augur has quit (Read error: 145 (Connection timed out)).
17:40:16 -!- augur has joined.
18:24:54 <ais523> hmm, I just filed https://bugs.launchpad.net/ubuntu/+bug/487744
18:25:04 <ais523> and there's something really wrong with the page <title>
18:25:17 <ais523> "Bug #487744 is not in Ubuntu: ..."
18:28:45 -!- ais523_ has joined.
18:39:51 -!- ais523 has quit ("Page closed").
18:43:03 <AnMaster> ais523_, file another bug about that?
18:43:26 <ais523_> it looks like intentional behaviour
18:43:32 <AnMaster> ais523_, try to boot from a livecd?
18:43:47 -!- ais523_ has changed nick to ais523.
18:43:53 <ais523> well, it boots well enough if I just skip the fsck
18:44:04 <ais523> and if something's wrong with fsck, it's possibly best not to run it
18:44:07 <AnMaster> ais523, maybe disk errors in unused blocks?
18:44:23 <ais523> that shouldn't crash fsck the way it does
18:44:36 <AnMaster> ais523, worth a try. From livecd of course
18:44:48 <AnMaster> ais523, as for livecd, don't use an ubuntu one
18:45:57 <AnMaster> ais523, use a livecd that isn't debian based for this in fact
18:46:21 <AnMaster> like http://www.sysresccd.org/Main_Page
18:46:30 <AnMaster> iirc that one is actually gentoo-based
18:49:02 <ais523> gentoo liveCD is a contradiction
19:09:08 -!- augur has quit (Read error: 110 (Connection timed out)).
19:27:15 <AnMaster> ais523, gentoo has one itself for install
19:52:50 <ais523> IMO by definition that isn't gentoo
19:52:53 <ais523> even if it's used to install it
20:06:43 <AnMaster> it is built from gentoo packages
20:07:10 <AnMaster> ais523, for that http://www.sysresccd.org/Main_Page you can even take it back to a gentoo system if you install it on an usb stick or such
20:09:38 <AnMaster> ais523, know anything about UPS units that works well with linux?
20:10:01 -!- adam_d has joined.
20:12:02 -!- JohnTeddy has joined.
20:22:41 <fizzie> From what I've heard, quite a lot of them work pretty well with Linux; assuming you count as "works well" the ability to get a basic level of status outputs and control out of it. And electricity, but it would be quite an oops of a UPS (see what I did there?!) if it had some OS dependencies for *that*.
20:22:50 <fizzie> I don't really have hands-on experience with any, though.
20:23:52 <fizzie> Linux boxes are a bit of a target market for UPS people, it isn't really surprising that they have better levels of support than some random gaming peripheral.
20:23:56 * AnMaster is wondering about price ranges too
20:24:28 <AnMaster> after all I can find everything from cheap consumer crap to ultra-reliable ones meant for mission critical servers.
20:24:41 <AnMaster> and I'm looking for a reasonable one for a desktop
20:24:55 -!- pikhq has joined.
20:24:59 <AnMaster> fizzie, random gaming peripheral?
20:25:22 -!- JohnTeddy has left (?).
20:26:59 <fizzie> The stuff they ship with Windows-only games (fake guitars, fake skateboard, fake whatever) nowadays. To be honest, I couldn't really figure out right then and there anything that really definitely wouldn't work with Linux; I'm not surprised if there are drivers for that stuff too.
20:27:34 <AnMaster> fake skateboard? wireless or *really* long cable?
20:27:38 <fizzie> If I were to get a desktop UPS, I'd pick some respectible manufacturer (I have a good-ish feeling about APC, though no real evidence for it) and select something from their low-end range.
20:27:51 <AnMaster> (wouldn't it have to be ethernet, iirc the max length on usb cable is rather short)
20:28:07 <fizzie> I have no clue how it works. I don't think you're supposed to move around with it, just sort of... I don't know what, tilt and jump and whatnot.
20:28:33 <AnMaster> fizzie, but wouldn't they generally just show up as a HID device of some sort?
20:28:35 <fizzie> I'm talking about http://en.wikipedia.org/wiki/Tony_Hawk:_Ride here.
20:28:43 <fizzie> "The peripheral, shaped just like a real skateboard, is equipped with infrared sensors to detect motion and display it on-screen. Turning, leaning, hopping, and other actions will all reflect in the game realistically."
20:29:10 <AnMaster> well that make pirating the thing harder I guess
20:29:33 <fizzie> Yes, they might. Still, there's no *official* support, unlike for UPSes. (Admittedly official Linux support often means horrible kludgy crap, even when compared to some not-so-brilliant open-source hacks.)
20:29:37 <AnMaster> it's like one of those "dongles" (remember those?) except this time the thing is actually required
20:29:57 <AnMaster> fizzie, you mean like nvidia drivers?
20:30:06 <AnMaster> also aren't the windows thingies about as bad?
20:30:21 <AnMaster> I remember kludgy HP drivers for example
20:30:26 <AnMaster> where scanning just didn't work well
20:30:36 <AnMaster> unless you had done some weird stuff first
20:30:47 <AnMaster> (of course it works flawlessly under linux)
20:31:26 <AnMaster> <fizzie> "The peripheral, shaped just like a real skateboard, is equipped with infrared sensors to detect motion and display it on-screen. Turning, leaning, hopping, and other actions will all reflect in the game realistically." <-- I'm pretty sure a real one has wheels. Unless someone invented a hover skateboard recently
20:32:02 <AnMaster> hover skateboard sounds cool btw
20:32:17 <fizzie> It sounds very back-to-the-future-ish. If you've seen the movie.
20:32:40 <AnMaster> now that you mention it, it sounds familiar
20:32:42 <fizzie> In fact I first read that Wikipedia bit without the word "shaped": "The peripheral, just like a real skateboard, is equipped with infrared sensors to detect motion and display it on-screen."
20:32:53 <fizzie> I think it had hoverboards, but I might be wrong.
20:33:37 <fizzie> "A Hoverboard (or hover board) is a fictional hovering board used for personal transportation in the films Back to the Future Part II and Back to the Future Part III."
20:33:58 <AnMaster> fizzie, couldn't you build an actual hover skateboard though? I mean, based on classical hover principles rather than some sort of fictional anti-gravity
20:34:05 <fizzie> "Some companies hoping to leverage the commercial success of the movies have marketed hovercraft vehicles as hoverboards, but these products have not been shown to replicate the experience depicted in the movies." Haha. "What, really?!"
20:34:38 <fizzie> You could build something, but I doubt it'd be quite as sleek and well-behaved.
20:35:13 <AnMaster> fizzie, you could make it computer controlled. Like an dynamically unstable aircraft (you know what those are?)
20:35:27 <AnMaster> ais523, hey I was going to mention segway next
20:35:32 <fizzie> MythBusters did one, in fact, out of a surfboard and leaf-blowers. (The WP article I was quoting from contains also this tidbit, though now that I've read it, I do remember that episode too.)
20:35:36 <AnMaster> that it might be a good example
20:35:41 -!- pikhq has quit ("Java user signed off").
20:35:49 <AnMaster> fizzie, oh? how did it work out?
20:36:09 <fizzie> Speaking of the future, we were thinking of getting a Roomba, for the cat to drive around with. I've seen all those Youtube videos about it.
20:36:26 -!- pikhq has joined.
20:37:02 <fizzie> AnMaster: It's one of those robotic vacuum things. It might even be the first commercially-successful-on-the-consumer-markets-really one, for all I know.
20:37:05 <ais523> isn't it a sort of robotic vaccum cleaner?
20:37:13 <ais523> I didn't think cats rode them, though
20:37:49 <AnMaster> fizzie, looking at wp article it would be unable to fit under my desk. Too short distance between floor and lowest drawers
20:37:57 <AnMaster> otherwise I think it would be cool
20:38:09 <fizzie> ais523: Youtube “cat roomba” results 1 - 20 of about 313. (Admittedly not all are a cat riding a Roomba; some are of other sort of cat-Roomba-interactions.)
20:39:04 <fizzie> But the first hit, with over 4 million views, is: http://www.youtube.com/watch?v=LQ-jv8g1YVI
20:41:25 <AnMaster> fizzie, strange the cat didn't get off when it turned around so much
20:41:43 <fizzie> As for the MythBusters hover-thing, I seem to remember they had some sort of competition race on the beach or something. I don't think it worked quite so well on uneven sand, but reasonably well on flat ground. It's just that having four (or was it two?) leaf-blowers running full blast right below you is probably not included in your hoverboarding daydreams.
20:42:53 <AnMaster> oklokok, but a normal vacuum cleaner is noisy too
20:42:53 <oklokok> but would be a cool pet if it was silent.
20:43:06 <oklokok> yeah, but it gets the job done faster
20:43:13 <AnMaster> wouldn't have to be completely silent
20:43:18 <AnMaster> completely silent would be bad
20:43:26 <AnMaster> no way you will trip over that loud thing
20:43:51 <fizzie> The newer models should be a *bit* less noisy, but I don't really know anyone who'd have one, so I could go and listen. The noise part is something that's making us a bit vary, though.
20:43:51 <oklokok> i guess there could be a version that makes a sound for blind ppl
20:43:52 <AnMaster> oklokok, would you notice one moving about in a half dark room?
20:44:34 <fizzie> oklokok: At least with the noise you'll have some sort of advance warning when it turns evil and comes to murder you.
20:44:51 <oklokok> i mean, it's an electronic gizmo dizmo, so it has a light
20:45:03 <fizzie> (All robots do that sooner or later, it's like a law or something.)
20:45:21 <AnMaster> fizzie, it could stop the noisy part until it moved up just right behind you
20:45:43 <fizzie> I guess it could. Hmmmm, now I'm not sure we dare to get one.
20:45:53 <AnMaster> fizzie, why doesn't normal computers turn evil too?
20:46:19 <AnMaster> fizzie, I mean, they likely have way more computational resources than that.
20:46:33 <AnMaster> the only difference is that it isn't on wheels
20:46:47 * AnMaster imagines a thinkpad with wheels
20:46:50 <oklokok> <lame> they do, it's called windows </lame>
20:47:09 <AnMaster> oklokok, isn't that thing just a joke?
20:47:25 <fizzie> Speaking of which, the company (iRobot) *does* make also some sort of development platform, that's basically a Roomba without the "noisy part", i.e. the cleaning machinery. There's just a microcontroller you can program to do whatever you want, and some sort of empty space to put whatever you want in.
20:47:36 <oklokok> anyway computers couldn't really kill people, the law actually states that everything that thinks, and can kill, eventually will
20:47:38 <AnMaster> I mean, they pre-install this joke windows so as to not end up in a distro flamewar just becaused they selected kubuntu instead of ubuntu
20:47:41 <fizzie> http://store.irobot.com/shop/index.jsp?categoryId=3311368 -- their website is a bit messy, though.
20:47:53 <oklokok> AnMaster: yes, it's just alme
20:48:36 <fizzie> The joke was too alme for you to ge.t
20:49:08 <AnMaster> <oklokok> anyway computers couldn't really kill people, the law actually states that everything that thinks, and can kill, eventually will <-- do robots think?
20:49:32 <oklokok> fizzie: so does it like learn the apartment?
20:49:36 <AnMaster> imagine some simple one that was designed out of Lego. I have programmed for RCX. No way it could think
20:49:38 <oklokok> and systematically clean it
20:50:39 <oklokok> AnMaster: your mom doesn't think
20:50:49 <fizzie> oklokok: The actual Roomba? No; in fact, as far as I know, it decidedly doesn't try to learn it at all. There's just some messy heuristics involved, and a lot of random-walking around. They claim that makes it more robust.
20:51:08 <oklokok> mmkay, it looked pretty idiotic in the cat vid
20:51:28 <fizzie> Yes, well, our cat is not the most clever thing ever either. They could suit each other just fine.
20:52:21 <AnMaster> that seems very illogical way to do it
20:52:23 <fizzie> Anyway, doesn't a two-dimensional random walk eventually cover the whole plane? I think it does. (I have no idea how it does for differently-shaped polygonal enclosed regions, though.)
20:52:41 <AnMaster> logical way is to build a map as you go along, and update it if you notice changes
20:52:57 <oklokok> and i'm sure it covers all polygons as well
20:53:01 <AnMaster> like when you pass near where there was a chair leg before, see if there is still anything there with your sensors
20:53:38 <AnMaster> <fizzie> Anyway, doesn't a two-dimensional random walk eventually cover the whole plane? I think it does. (I have no idea how it does for differently-shaped polygonal enclosed regions, though.) <-- I think one key word here is "eventually"
20:53:44 <oklokok> it's obvious that it covers any finite region
20:53:59 <fizzie> AnMaster: It's just that the thing can't really know where it is started from, and anyway that sort of stuff is nontrivial. I'm sure their engineers have better sort of things to do.
20:54:03 <oklokok> for infinite regions, we know it covers the whole infinite plane
20:54:18 <AnMaster> fizzie, "eventually" monkeys + typewriters = shakespear. Even in a finite number
20:54:42 <fizzie> AnMaster: Yes, but for most apartments, this is a lot smaller "eventually" we're talking about here.
20:54:44 <oklokok> but not so sure about infinite polygons
20:54:45 <AnMaster> <fizzie> AnMaster: It's just that the thing can't really know where it is started from, and anyway that sort of stuff is nontrivial. I'm sure their engineers have better sort of things to do. <-- try to match it against previous map
20:54:55 <AnMaster> see if you get a good enough fit
20:55:08 <oklokok> at least if you have a few teleports you could simulate a 3d topology with it
20:55:21 <AnMaster> fizzie, or use a GPS maybe. Not sure if that is accurate enough (even assuming you can get a signal indoors, I usually can that at least)
20:55:23 <oklokok> and in 3d a random walk does not cover the plane
20:55:57 <fizzie> GPS is very much not accurate enough for that, and anyway it would cost to add a GPS receiver.
20:56:16 <fizzie> http://mathworld.wolfram.com/PolyasRandomWalkConstants.html was in fact the result I was sort of remembering.
20:56:27 <AnMaster> fizzie, anyway you could have some sort of "reset maps, we moved to a different apartment" button
20:57:07 <fizzie> So if you live at point P on the infinite plane, and kick off the Roomba, it'll eventually come back to you. (That might be a rather long "eventually" here.)
20:57:39 <oklokok> but that doesn't say anything about infinite polygons
20:57:46 <fizzie> Anyway, I am under the impression that some of the other robotic vacuum thingies do build maps too.
20:58:19 <AnMaster> so it *may or may not* come back
20:58:21 <oklokok> although intuitively it seems restricting the map would just make it harder to get away from the origin...
20:58:33 <fizzie> AnMaster: Well, you have to assume an ideal Roomba here.
20:58:39 <fizzie> Ah, here's the justification I was looking for:
20:58:41 <fizzie> Unlike the Electrolux Trilobite vacuuming robots, Roombas do not map out the rooms they are cleaning. Instead, they rely on a few simple algorithms such as spiral cleaning, wall-following and random walk angle-changing after bumping into an object or wall. This design is based on MIT researcher and iRobot CTO Rodney Brooks' philosophy that robots should be like insects, equipped with simple control mechanisms tuned to their environments. The result is that
20:58:41 <fizzie> although Roombas are effective at cleaning rooms, they take several times as long to do the job as a person would, usually covering some areas many times and others only once or occasionally not at all.
20:59:12 <AnMaster> #esoteric, the only place where discussing a vacuum cleaner robot on an infinte plain will ever happen
20:59:57 <AnMaster> fizzie, which seems quite pointless. I want things properly cleaned
21:00:03 <oklokok> i haven't actually seen proof of the random walk + plane thing, would probably make it easier to see if the probability stays at 1 if you restrict the path
21:00:49 <fizzie> AnMaster: Well, you're a deterministic sort of a person. Statistically speaking they do clean things properly, the differences even out.
21:01:05 <oklokok> on R^2, i imagine a random curve would return to any open ball around the origin
21:01:28 <oklokok> and probably by adding an infinite amount of circles on the plane, each having a smaller hole than the last
21:01:30 <AnMaster> fizzie, what is the time complexity of roomba cleaning in a finite room though?
21:02:14 <oklokok> you could make the probability of getting from x to y to < 1... i think... maybe
21:02:33 <fizzie> Also, I like this part: "After a certain amount of time -- the Roomba stops and sings a few triumphant notes. If a homebase is detected, a second- or third-generation Roomba will try to return to it. -- If at any time the unit senses that it has become stuck, no longer senses the floor beneath it, or it decides that it has worked its way into a narrow area from which it is unable to escape, it stops and sounds a mournful tone to help its owner find it."
21:02:39 <fizzie> That's just somehow so cute.
21:02:49 <oklokok> if it was like more probable to always get to an outer circle than an inner one
21:03:06 * ais523 vaguely wonders what would cause a failure to sense the floor
21:03:19 <Deewiant> Somebody turning it upside down
21:03:37 <fizzie> Or running down the stairs and ending up upside-down; though it's supposed to avoid stairs normally.
21:03:58 <AnMaster> fizzie, hm... a mapping robot would avoid those issues
21:04:19 <AnMaster> well, not during initial mapping
21:04:40 <fizzie> I do think a mapping robot can also get stuck or confused just fine; the real world is a fuzzy thing.
21:04:42 <AnMaster> but it could be built to detect with ultrasound or radar if there was somewhere it wouldn't firt
21:05:29 <AnMaster> http://en.wikipedia.org/wiki/Electrolux_Trilobite seems to have an ultrasonic sensor
21:05:57 <fizzie> "This object detection is fairly reliable, but sometimes fails if the robot approaches an object with a sharp corner."
21:06:04 <fizzie> See, it's not a clear-cut thing.
21:06:20 <AnMaster> fizzie, true. but that is where mapping helps after the initial mapping run
21:06:37 <fizzie> I'm not sure your ideal robotic vacuuming device is very cost-efficient. There's a point of diminshing returns somewhere in the piling up of intelligence on it.
21:06:45 <fizzie> (But certainly mapping is a viable strategy too.)
21:07:23 <AnMaster> fizzie, mapping shouldn't be too expensive, memory is cheap and the programming for it only need to be done once
21:07:39 <fizzie> You need to pay a lot for competent programmers. :p
21:07:47 <fizzie> Besides, a mapping robot is decidedly closer to a planning robot, and a planning robot is again closer to a scheming robot, and a scheming robot is just a couple of short steps from the robotic revolution.
21:08:13 <Deewiant> Even if it's not too expensive, the idea is that it's not too useful
21:08:30 <fizzie> "When we reported about the new Electrolux Trilobite 2.0 Vacuum robot last Friday, we asked the question why this vacuum robot ($1,799 at Amazon.com) is about 10 times more expensive than the iRobot Roomba ($159.99 at Amazon.com)." (This is from 2004, though.)
21:09:18 <ais523> fizzie: a scheming robot would be closer to being properly functional
21:09:33 <AnMaster> fizzie, sure I didn't say the ultrasound sensor *wasn't* expensive
21:09:40 <AnMaster> I just said that mapping isn't a lot more expensive
21:09:40 <fizzie> Also; the serial interface of the Roomba is documented, you can easily provide as much intelligence as you like by sticking some additional hardware on top.
21:10:20 <AnMaster> fizzie, anyway it seems the trilobite gets the job done quicker
21:11:19 <Deewiant> The advantage there is mostly power saving, since the idea is to leave it on for the 8 hours you're at work or whatever
21:12:14 <fizzie> I'm not sure we want to spend a four-digit number of euros on it, also. (Some Finnish price-comparison site lists the ZA 2 /2.0 Trilobite at 1259 EUR.)
21:12:21 <AnMaster> Deewiant, what about home office?
21:12:59 <fizzie> Supposedly it's also somewhat more noisy. (But also sucks more, in the "good" sense.)
21:13:21 <fizzie> This is all just hearsay from reviews, though. I'd like to hear both myself somewhere.
21:14:43 <AnMaster> fizzie, useful for people who are allergic to various things (like me)
21:15:16 <AnMaster> (getting rid of the damn pollen every spring is a high priority for me at least)
21:23:56 -!- MigoMipo has quit.
22:12:34 -!- augur has joined.
22:14:20 <SimonRC> initial response: "I see the reversed-text thing, but why did they badly photoshop lips onto John's girlfriend?" After looking at the original: "Oh, Jim Davis really did draw them that badly." http://www.mezzacotta.net/garfield/?comic=207
22:21:09 * SimonRC continues memorising a 20-char random password for work
22:21:33 <Rembane> SimonRC: Tattoo it on your forearm!
22:21:40 <AnMaster> SimonRC, why did you choose something that long
22:25:51 <AnMaster> SimonRC, you aren't supposed to show off passwords
22:25:56 <AnMaster> they are supposed to be secret
22:28:32 -!- Slereah has joined.
22:29:54 -!- Slereah_ has quit (Connection timed out).
22:37:56 <SimonRC> you can boast about the length though
22:51:12 -!- immibis has joined.
23:08:31 -!- ais523 has quit (Remote closed the connection).
23:08:56 -!- immibis_ has joined.
23:11:17 -!- immibis_ has quit (Read error: 54 (Connection reset by peer)).
23:11:32 -!- immibis_ has joined.
23:13:47 -!- immibis_ has quit (Client Quit).
23:15:50 -!- immibis has quit (Read error: 60 (Operation timed out)).
23:24:32 -!- oerjan has joined.
23:28:11 <oerjan> 18:03:36 <ehird> Or a small subset that dictate things.
23:29:19 <oerjan> i do recall reading the haskell committee had a daily designated syntax dictator, who had the final word on all syntax issues
23:29:42 <oerjan> i'm sure this helped immensely
23:33:15 <oerjan> see also: wadler's law
23:52:05 <SimonRC> anyone here know any Forth?
23:53:04 <oerjan> and that's about it ;)
23:53:10 <SimonRC> you know about /mod, right?
23:53:30 <oerjan> no, is it something like haskell's divmod?
23:54:01 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
23:54:17 <SimonRC> I just realised I have a better place to ask my question
23:55:51 -!- augur has changed nick to augur[hw].