00:00:23 <zzo38> I think it might be related to Kan extensions as well.
00:05:45 <zzo38> For example you can have: CoYoneda (X [] Maybe)
00:08:34 <zzo38> I suppose it is a bit like (X x y) is decomposing the type x from y, sort of.
00:09:18 <zzo38> What would you think of this way?
00:26:18 -!- zzo38 has quit (Remote host closed the connection).
00:42:41 -!- DHeadshot has joined.
00:47:30 -!- DHeadshot has quit (Read error: Connection reset by peer).
00:47:38 -!- DH____ has joined.
00:47:40 -!- DH____ has quit (Remote host closed the connection).
00:48:56 -!- DHeadshot has joined.
01:00:55 -!- DHeadshot has quit (Read error: Connection reset by peer).
01:01:08 -!- DH____ has joined.
01:02:46 -!- DH____ has quit (Read error: Connection reset by peer).
01:02:52 -!- DHeadshot has joined.
01:04:11 -!- DHeadshot has quit (Read error: Connection reset by peer).
01:04:17 -!- DH____ has joined.
01:13:54 -!- DH____ has quit (Ping timeout: 264 seconds).
01:49:10 -!- DHeadshot has joined.
01:55:52 -!- rmdashrf has joined.
01:56:01 -!- rmdashrf has left.
02:14:37 -!- copumpkin has quit (Ping timeout: 240 seconds).
02:15:17 -!- copumpkin has joined.
02:53:25 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
03:25:08 -!- oerjan has quit (Quit: Good night).
03:56:20 -!- calamari has left ("Leaving").
04:21:46 -!- Phantom_Hoover has joined.
04:22:32 -!- edwardk has joined.
04:26:45 -!- edwardk has quit (Ping timeout: 244 seconds).
04:27:15 -!- zzo38 has joined.
04:37:14 <zzo38> I thought of simultaneous chess boxing where you have to call out the moves while you are fighting your opponent too. (You can use algebraic or descriptive notation.) There is chess clock but only the referee needs to touch them and to update the view of the board on the walls (there is none on the ceiling).
04:47:23 <zzo38> I figured out how you can make a free monad using a F-algebra: toFree (CodensityAsk f) = f (Algebra Free) Pure; mkFree x = CodensityAsk (\(Algebra q) k -> q (fmap k x));
04:58:44 -!- edwardk has joined.
05:03:32 <coppro> how do you manage all your haskell code so that you can easily use it when you run ghci or the like?
05:03:42 <coppro> I need to start cabalizing and that means I need more than one directory tree
05:04:19 <edwardk> i make a cabal project for each thing i work on
05:05:48 <coppro> but how do you ensure that ghci loads all your projects?
05:06:21 <edwardk> when you cabal install the project it will get loaded when you use it
05:06:41 <edwardk> and it just works since ghc-pkg has the package unhidden
05:07:19 <coppro> so you use local installs?
05:09:22 <edwardk> i just use 'cabal install' as my build process
05:09:37 <edwardk> and then forget about the package and move on to the next when i start working on that
05:13:16 <edwardk> another useful thing to make ghci happy
05:13:16 <edwardk> is to make your project source files sit in a src dir
05:13:36 <edwardk> and add it via hs-source-dirs
05:13:36 <edwardk> that way ghci doesn't try to load the file directly when you are in the top level project folder
05:13:47 <edwardk> which can matter a lot when you have interesting build processes
05:15:17 <edwardk> i try to do that all the time when i have a package with a c library dependency or something else complicated
05:54:52 -!- pikhq_ has joined.
05:55:18 -!- pikhq has quit (Ping timeout: 264 seconds).
06:03:35 <zzo38> I always run a Haskell code in GHCi although I may compile executable files too sometimes.
06:04:15 <zzo38> I figured out how you can make a free monad using a F-algebra: toFree (CodensityAsk f) = f (Algebra Free) Pure; mkFree x = CodensityAsk (\(Algebra q) k -> q (fmap k x));
06:07:43 -!- edwardk has quit (Remote host closed the connection).
06:09:08 -!- edwardk has joined.
06:14:11 -!- edwardk has quit (Quit: Leaving...).
06:15:16 -!- Nothing has joined.
06:15:40 -!- Nothing has changed nick to Guest46900.
06:17:20 -!- Guest46900 has quit (Client Quit).
06:23:08 <zzo38> Sleep on the ceiling next Sunday.
06:23:39 <coppro> `addquote <zzo38> Sleep on the ceiling next Sunday.
06:23:50 <HackEgo> 849) <zzo38> Sleep on the ceiling next Sunday.
06:49:02 -!- zzo38 has quit (Remote host closed the connection).
06:55:54 -!- asiekierka has joined.
07:03:23 -!- asiekierka_ has joined.
07:03:27 -!- asiekierka_ has quit (Remote host closed the connection).
07:17:20 -!- Vorpal has joined.
07:27:42 -!- nortti has quit (Ping timeout: 264 seconds).
07:28:23 -!- nortti has joined.
07:33:02 -!- Lumpio- has quit (Remote host closed the connection).
07:33:11 -!- Lumpio- has joined.
07:33:43 -!- AnotherTest has joined.
07:36:20 -!- lifthrasiir has quit (Ping timeout: 248 seconds).
07:45:04 -!- lifthrasiir has joined.
07:50:31 <Vorpal> hm the mount options used on android are kind of crazy...
07:51:30 <Vorpal> most partitions are mounted noatime, of the two that are mounted relatime instead, one is also mounted ro
07:51:38 <Vorpal> so the relatime has no effect
07:52:19 <Vorpal> quintopia, http://sprunge.us/dEXZ
07:52:38 <Vorpal> I like how it fakes the internal storage being an sdcard by using fuse
07:53:05 <Vorpal> the fuse file system emulates a FAT-style file system when it comes to permissions
07:53:31 <Vorpal> /mnt/sdcard is actually stored at /data/media
07:54:31 <Vorpal> (I don't have a real microSD yet, going to buy one later this week hopefully)
07:55:26 <fizzie> http://sprunge.us/EGaM
07:55:32 <Vorpal> also I don't know why /mnt/sdcard is mounted relatime when the underlying directory for it is mounted noatime
07:56:00 <Vorpal> fizzie, n900? What is up with the bind mounts?
07:56:03 <pikhq_> Ah, Android. Because screw your concepts of userspace, we just want init=/bin/dalvik
07:56:21 <Vorpal> pikhq_, I don't think init is /system/bin/dalvik?
07:56:34 <pikhq_> Vorpal: It's not, but they very obviously wish it could be.
07:56:42 <Vorpal> USER PID PPID VSIZE RSS WCHAN PC NAME
07:56:42 <Vorpal> root 1 0 528 356 ffffffff 00000000 S /init
07:56:52 <pikhq_> Then you wouldn't need anything else!
07:56:56 <Vorpal> what sort of name is /init?
07:57:05 <Vorpal> pikhq_, fun fact: Samsung sucks at programming
07:57:13 <olsner> Vorpal: presumably that's the path to init
07:57:21 <fizzie> Vorpal: There's nothing especially "up" with them, it's just that the / partition is kinda small so large packages put themselves in /opt (which is physically on /home, a larger partition) and then do some bind mounts if they "need" to be somewhere in /usr.
07:57:23 <pikhq_> The sort of name devised by people who hate everything.
07:57:55 <Vorpal> pikhq_, I get two zombie sh processes every time I plug the phone into a computer. The parent is /system/bin/kiesexe, Kies is Samsung's PC bloatware suite for phones
07:58:50 <Vorpal> Filesystem Size Used Available Use% Mounted on
07:58:51 <Vorpal> df: /: can't find mount point
07:59:03 <Vorpal> Filesystem Size Used Free Blksize
07:59:10 <Vorpal> but doesn't make sense
07:59:30 <Vorpal> pikhq_, any idea what is going on with / on android?
08:00:03 <Vorpal> fizzie, which one is your sdcard?
08:00:12 <fizzie> I don't have one, and I've forgotten where it goes to.
08:00:23 <Vorpal> /dev/mmcblk0p1 on /home/user/MyDocs type vfat (rw,noauto,nodev,noexec,nosuid,noatime,nodiratime,utf8,uid=29999,shortname=mixed,dmask=000,fmask=0133,rodir) <-- why is that vfat?
08:00:24 <fizzie> The thing in /home/user/MyDocs is the ~30G internal storage thing.
08:00:24 <pikhq_> Vorpal: Only that Android userspace is a tower of lies.
08:00:52 <fizzie> Vorpal: I suppose to be "more compatible". It's what gets exported if you plug the phone in as a mass storage device.
08:00:53 <Vorpal> pikhq_, the id->group/user mappings are hard coded tables in the libc from what I understand
08:01:02 <Vorpal> pikhq_, which means the busybox id doesn't work
08:01:13 <Vorpal> well the busybox I have at least
08:01:21 <Vorpal> which is presumably compiled against a different libc
08:01:24 <pikhq_> Keep in mind that they literally *started with* a BSD libc...
08:01:34 <pikhq_> They *actually had to work* to make this suck.
08:01:41 <Vorpal> oh? I thought they wrote bionic from scratch?
08:02:21 <Vorpal> btw, my phone does MTP. It is kind of funky. Works kind of randomly sometimes under linux on the computer
08:02:32 <pikhq_> It's a fork of a BSD libc with actual *effort* applied to it to make it suck.
08:03:04 <pikhq_> That's not them being lazy, that is them *actually hating you*.
08:03:09 <Vorpal> anyway, even under windows it seems like MTP doesn't do IO scheduling. You can not start two copy operations to/from the phone at once!
08:03:19 <fizzie> Vorpal: No; it has two modes, the mass storage one and then Nokia's PC Suite mode which makes it pretend to be a pile of devices, I don't even know what all of them do. (But there's the "can talk AT commands to" regular modem one.)
08:03:32 <fizzie> So terribly many processes: http://sprunge.us/EahJ
08:03:36 <Vorpal> fizzie, how much internal storage does it have?
08:03:52 <Vorpal> fizzie, eh, not much more than my ubuntu laptop I bet
08:04:09 <Vorpal> dragon $ ps aux | wc -l
08:04:12 <fizzie> 32G, of which about 30G go to MyDocs.
08:04:25 <Vorpal> shell@android:/ $ ps | wc -l
08:04:32 <Vorpal> (this ps doesn't do a, u or x)
08:04:51 <Vorpal> fizzie, why would anyone want 30 GB of vfat...
08:05:31 <fizzie> Why not? You're supposed to put your photos, videos and music there. Why would the filesystem matter especially much? It's not like it wouldn't format the microSD card VFAT too.
08:06:02 <Vorpal> well, you can't run linux software that want proper permissions from it
08:07:08 <Vorpal> BogoMIPS: 1592.52 <-- the CPU runs at 1.4 GHz, what a strange number of NOPs per clock cycle this CPU must have...
08:08:01 <Vorpal> if I understand the definition of BogoMIPS, this means the CPU can execute approx 1.138 NOPs per clock cycle?
08:08:57 <Vorpal> the numbers on my laptop are much closer to a whole multiple (~2.000978)
08:09:21 -!- fizziew has joined.
08:09:27 <Vorpal> (which probably just means the CPU doesn't run at exactly 2.26 GHz like it claims to)
08:09:40 <Vorpal> pikhq_, any idea about that bogomips number?
08:09:59 <Vorpal> fizziew, <Vorpal> well, you can't run linux software that want proper permissions from it
08:10:02 <Vorpal> in case you missed that
08:10:05 -!- john_metcalf has quit (Quit: john_metcalf).
08:11:21 <fizziew> That was the last thing I saw. And yeah, but your regular user has music collection that is >> in size compared to software; especially since code doesn't take up all that much stuff. (Some games in the repository with large data files install those in MyDocs.)
08:12:23 <pikhq_> Vorpal: Well. Maybe the branch takes a weird amount of time.
08:12:39 <Vorpal> I wonder if it uses Thumb or ARM to measure it
08:12:44 <Vorpal> that could factor into it I guess?
08:13:02 <pikhq_> ARM chips don't exactly design for really fast branching, so.
08:13:07 <Vorpal> pikhq_, btw did you know that android hotplugs inactive CPU cores in order to save power?
08:13:43 <Vorpal> also ARM /proc/cpuinfo is weird
08:13:59 <Vorpal> http://sprunge.us/UhML
08:14:05 <Vorpal> looks nothing like the x86 one
08:14:31 <Vorpal> that is from a 4-core CPU, I guess the other cores are unplugged atm though
08:14:53 <Vorpal> also a refreshingly short feature flag list
08:15:14 <Vorpal> on my core 2 duo it is absurdly long, even worse on my core i7 (sandy bridge)
08:15:33 -!- clog has quit (Ping timeout: 252 seconds).
08:15:59 <Vorpal> fizziew, you have an arm7 on that thingy? I thought it was older than that
08:16:09 <Vorpal> very low bogomips though
08:16:22 <Vorpal> what is the actual clock frequency on it?
08:16:35 <fizziew> It's clocked to about 250 MHz most of the time, IIRC. 600 MHz is what it runs when busy.
08:16:53 <Vorpal> fizziew, I thought bogomips was measured when it ran at full speed?
08:16:54 <fizziew> And the hardware is OMAP3, it's the same as e.g. the original Droid.
08:17:17 <fizziew> I've seen changing bogomips; don't know details.
08:17:34 <Vorpal> my phone seems to idle (with screen on) jumping between 200 and 500 MHz, staying at 200 most of the time
08:18:17 <fizziew> http://sprunge.us/jTWT with a while true; do true; done running in another terminal.
08:18:48 <Vorpal> fizziew, did you run the shell from the computer or on the phone itself?
08:19:38 <Vorpal> fizzie, what about two busy loops? Or do you have a single core only?
08:20:17 <fizziew> BogoMIPS are calculated for those busy-loop delays, so it'd make sense it'd change as a function of the frequency to keep the delay times equal. (What gets printed in /proc/cpuinfo of course needn't.)
08:20:53 <Vorpal> pretty sure that it stays constant on x86 at least
08:21:03 <fizzie> It doesn't on my Athlon X2, unless I misremember.
08:21:24 <fizzie> (Oh, this one works again too. Phew; was worried for a moment there. Would've been a bit hard to go home to debug.)
08:22:04 <Vorpal> fizzie, I thought you were abroad? "* [fizziew] (~htkallas@pc112.ics.hut.fi): Heikki Kallasjoki"
08:22:17 <Vorpal> or do you have a bouncer at the university too?
08:22:31 <Vorpal> <fizzie> It doesn't on my Athlon X2, unless I misremember. <-- hm it does on my core 2 duo
08:22:43 <fizzie> http://sprunge.us/gJMf
08:22:47 <fizzie> Here's from this workstation.
08:23:07 <fizzie> (Which also happens to be an Athlon X2.)
08:23:20 <fizzie> (Again with a while true loop between the two.)
08:23:25 <Vorpal> fizzie, http://sprunge.us/SQJg
08:24:06 <Vorpal> fizzie, you ran two such loops there?
08:24:07 <fizzie> Just goes on to show that BogoMIPS are maybe not the best benchmark. :p
08:24:23 <fizzie> Just one; the X2 frequency scaling is CPU-wide, not per-core.
08:24:59 <Vorpal> <fizzie> Just goes on to show that BogoMIPS are maybe not the best benchmark. :p <-- the only reason I looked at BogoMIPS was that it wasn't even close to a multiple of the clock speed on the phone
08:25:41 <Vorpal> also the actual clock speed was not listed in the ARM cpuinfo
08:27:09 <fizzie> Could be a slightly different busy loop on ARM. Modern processors are so weird anyway, you can't just sum up cycles/instruction like you mostly could on, say, a Z80.
08:28:34 <fizzie> To answer an earlier question, no, I don't run a bouncer on pc112; I just had a backup irssi in a screen there.
08:29:27 <Vorpal> pikhq_, any idea what "rootfs" is under linux? My laptop has it too, (only in /proc/mounts, not /etc/mtab though)
08:29:31 <fizzie> I'd check the constantness of bogomips on the Atom this client is running on, but funnily enough it doesn't do frequency scaling.
08:29:48 <Vorpal> wait what, I thought atom was low power stuff
08:29:57 <Vorpal> surely those do frequency scaling?
08:30:13 <Vorpal> is it due to the kernel or the hardware?
08:30:19 <fizzie> The hardware, as far as I know.
08:30:23 <Vorpal> anyway I guess it could be related to kernel versions
08:30:28 <Vorpal> which ones did you test on
08:30:45 <Vorpal> I tested on 3.0 for my phone and 2.6.39 for my laptop
08:30:51 <fizzie> http://ark.intel.com/products/35635
08:30:58 <fizzie> "Enhanced Intel SpeedStep® Technology No
08:31:22 <Vorpal> wait, it does hyperthreading?
08:31:41 <fizzie> I'm not sure I have a HT kernel on it, though.
08:31:43 <Vorpal> anyway what sort of computer is it in?
08:31:58 <fizzie> It's on a Jetway "mini-ITX" board.
08:32:33 <fizzie> Mostly chosen because they had a fancy add-on "daughterboard" that adds 3x Realtek gigabit ethernet ports to the one on the motherboard already.
08:32:35 <Vorpal> speaking of power management, I'm pretty sure my desktop runs cooler under linux than under windows
08:32:50 <Vorpal> (idle condition, screen on empty desktop in both cases)
08:32:51 <fizzie> So it's four ports in quite a small package, to summarize.
08:33:10 <Vorpal> do you use it as a router?
08:34:05 <fizzie> It's also currently in an ATX chassis because the power supply in the tiny mini-ITX box sort of gave up, and I didn't see a reasonable replacement for it anywhere, it's kind of oddly shaped. It looks rather humorous with the tiny board inside the huge box.
08:34:35 <Vorpal> fizzie, so a full tower case or what?
08:35:07 <fizzie> Not quite, fortunately. It's some sort of a smaller edition, I suppose it's designed for a mini-ATX board. But still.
08:35:26 <Vorpal> all those form factors
08:35:54 <fizzie> The "HD" is also just a 8G CF card with an IDE adapter, packed into a plastic box that used to hold screws, then electric-taped tightly shut.
08:36:51 <fizzie> The IDE adapter didn't really have places for mounting screws. Though it *is* vaguely in the place where a regular 3.5" disk would go in the chassis.
08:38:45 <Vorpal> fizzie, that is what you run your irc client on?
08:38:57 <Vorpal> an nfs mount to a more capable computer?
08:40:02 <fizzie> There's a cron job that one-way rsyncs the logs every now and then when the more capable computer (my regular desktop box) happens to be on. Technically I could be removing local copies of old logs, but haven't had to, yet.
08:40:24 <fizzie> Just 748M of them at the moment.
08:41:05 <fizzie> (They start from 2009-03 when I switched to the current bouncer. Things older than that are elsewhere.)
08:41:31 <fizzie> Actually, there's one more complication, but it might be outside the scope of this discussion. Or, well...
08:41:56 <fizzie> I'm a bit worried about the write cycles of the CF card, I have no idea if those do any very sophisticated wear balancing like real SSDs nowadays.
08:42:12 <Vorpal> fizzie, hm I have 850 MB of xz compressed logs since when I started logging
08:43:06 <fizzie> So I've got the actual logging on a tmpfs that only holds current month's logs, and every three hours or so I batch-update new lines in those to the on-the-CF-card copies.
08:43:38 <Vorpal> fizzie, why the tempfs?
08:43:52 <Vorpal> to save on the flash memory?
08:44:29 <fizzie> Might not really be necessary, but I was sort of worried.
08:44:53 <fizzie> (I've tried to put most of the often-changing files on tmpfs like that.)
08:44:55 <Vorpal> this month: 881 MB uncompressed logs
08:45:40 <fizzie> This month: 13M, uncompressed. My channels are obviously less noisy.
08:45:41 <Vorpal> oh wait, it is two months. Seems the cron script didn't run to rotate it this month since the computer was off due to a thunderstorm
08:48:28 * Vorpal runs find . -iname '*.log' -print0 | xargs -0 -n4 -P2 xz -z
08:48:55 <Vorpal> (I should set up automatic compressing after rotating)
08:49:00 <fizzie> Speaking of N900, there's been a bit of a buzz in that a Finnish startup called Jolla, made mostly of ex-Nokians, said publicly they're going to make a new Meego/Mer smartphone. So maybe it's not an entirely dead platform quite yet. (Of course so far they're just *saying* that.)
08:49:34 <Vorpal> fizzie, n900 didn't sell terribly well did it?
08:50:11 <olsner> I'd say that meego is entirely dead, but there might be people intending to revive it
08:50:29 <fizzie> No, and neither did the actual Meego phone (N9), but it's not entirely obvious it's because of bad technology instead of other matters.
08:50:34 <Vorpal> olsner, so we might get an undead phone? Awesome
08:50:57 <olsner> no, after reviving it will be alive
08:51:23 <Vorpal> fizzie, N9 had terrible battery time as well?
08:51:43 <fizzie> I don't recall that, but it's certainly possible.
08:52:06 <Vorpal> my new phone actually has way better battery time than I expected. I watched youtube videos over wlan with it recently for maybe 5 hours, only drained down to 85% charge (from full charge before)
08:53:11 <fizzie> "The Nokia N9 has a BV-5JW 3.7V 1450mAh battery. According to Nokia, this provides from 7h to 11h of continuous talk time, from 16 to 19.5 days of standby, 4.5h of video playback and up to 50h of music playback." Well, going purely on the specs, it's not good, but maybe not quite "terrible" either. Anyway, new phone would presumably mean new hardware, too.
08:54:06 <Vorpal> seems my phone has a 2100 mAh battery
08:54:22 <fizzie> N9's primary problem (I think) was that they didn't really *sell* it anywhere. I mean, it wasn't released in the US (not such a big surprise), but not in "UK, the Netherlands, Germany, France, Italy, Spain, and others" either.
08:54:57 <olsner> my phone only has a 1250mAh battery
08:55:40 <fizzie> 1320 mAh BL-5J on the N900.
08:55:56 <Vorpal> hm how does this translate to mWh, which is what ACPI on my laptop reports:
08:56:00 <Vorpal> design capacity: 51830 mWh
08:56:00 <Vorpal> last full capacity: 48720 mWh
08:56:18 <olsner> you multiply by the volts, I think
08:56:43 <Vorpal> design voltage: 10800 mV
08:56:59 <Vorpal> olsner, shouldn't I divide by the voltage then?
08:57:13 <olsner> depends on which number you do it on
08:57:16 <Vorpal> or does the h bit change that
08:57:33 <Vorpal> olsner, well I don't know the voltage on my phone, so lets translate the laptop to mAh
08:57:47 <olsner> I think Wh is a better comparison though
08:58:21 <Vorpal> hm I guess ARM doesn't use ACPI
08:59:20 <Vorpal> urgh the phone adb shell seems to believe my terminal is 80 columns wide
08:59:31 <Vorpal> the issue is the path is like 70 chars wide
09:00:02 <soundnfury> and/or sending the shell process a SIGWINCH?
09:00:15 * soundnfury doesn't know the context, nor what adb is, but whatever
09:00:26 <Vorpal> soundnfury, adb = android debug bridge
09:00:40 <Vorpal> soundnfury, it is used when developing for android. In this case I ran adb shell
09:00:50 <Vorpal> so I ran a shell on my phone over the usb cable to it
09:01:38 <fizzie> People who bother meddling around with N900 development generally just do USB networking and SSH in over that.
09:01:49 <Vorpal> fizzie, USB networking?
09:02:16 <Vorpal> you can do networking over usb?
09:02:26 <Vorpal> I knew you could do ethernet over firewire
09:03:12 <Vorpal> I guess the batt_vol_* files are relevant for the phone. However all but one just returns N/A. the one that doesn't just blocks
09:03:18 <Vorpal> (in /sys/devices/platform/samsung-battery/power_supply/battery)
09:03:30 <soundnfury> um, given that you can do networking over RS232, I think it'd be pretty remiss of USB not to support the same thing
09:03:40 <fizzie> You'll need a special sort of a cable to do USB networking for two "hosts", though.
09:03:55 <fizzie> But the phone is normally... the opposite of a host, I forget which term the USB folks use.
09:04:01 <Lumpio-> USB over ethernet is standardized
09:04:03 <soundnfury> fizzie: I hope you're not suggesting the use of a double-A-jack cable?
09:04:27 <Lumpio-> I found ago a couple of years ago when I plugged my phone into my laptop and found a network interface called "usb0"
09:04:31 <Vorpal> speaking of special sorts of cables, I should get an USB on the go cable
09:04:38 <Lumpio-> Yeah. Great. Good work brain
09:04:52 <Vorpal> from what I read, for an android phone my phone has exceptionally good USB support
09:05:12 <fizzie> soundnfury: No, they make cables with electronics on it to make that sort of stuff properly work.
09:05:12 <Vorpal> someone hooked up an xbox controller to the same model and got it working for example
09:05:30 <Lumpio-> It's not a cable anymore in that case.
09:05:37 <Lumpio-> It's a device that appears as a slave to two hosts at the same time.
09:05:40 <fizzie> Well, that's arguable.
09:05:50 <Lumpio-> Well it might look like a cable
09:05:56 <Lumpio-> Chips can fit inside the plugs these days
09:06:00 <fizzie> If it quacks like a duck...
09:06:11 <Lumpio-> But from a USB viewpoint it's a device.
09:06:19 <Lumpio-> Well it quacks like a duck when your system sees it
09:06:24 <Vorpal> why would anyone want to do that though?
09:06:26 <Lumpio-> As a slave device, from both ends
09:06:47 <soundnfury> so really it's a "router" that's a USB slave to two hosts
09:06:56 <Vorpal> <Lumpio-> I found ago a couple of years ago when I plugged my phone into my laptop and found a network interface called "usb0" <-- what sort of phone was that?
09:07:09 <soundnfury> as though the router should be the host and the PCs the slave
09:07:16 <Vorpal> is that just network sharing over usb?
09:07:24 <Lumpio-> Well it can be used for that
09:07:32 <Lumpio-> But it's a proper network interface
09:07:37 <Lumpio-> ifconfig away and do whatever you want with it.
09:08:00 <Lumpio-> For 3G sharing it offers PPP over USB serial though
09:08:12 <Lumpio-> Because the stripped down kernel on it doesn't even have iptables
09:08:14 <fizzie> Ethernet stuffs are in the "CDC" communications device class USB standard bits. So yes, it's just a standard way to pass Ethernet frames over USB.
09:08:24 <Vorpal> well I get an usb0 when I enable tethering with usb on my phone
09:08:50 <Vorpal> since I rooted my phone I decided to take a look at iptables
09:08:52 <Lumpio-> It's one way to do connection sharing if your phone can do it, I could never be bothered to replace the kernel on mine with one with iptables
09:09:00 <fizzie> I suppose some phones might use that by default for network sharing.
09:09:01 <Vorpal> it turns out that probably all ICS devices have iptables
09:09:12 <Lumpio-> ...at once point I was writing some kind of custom pipe thing to get interwebs over there without iptables
09:09:15 <Vorpal> because it does the "network usage per app" thing that is new in ICS by iptables rules
09:09:34 <fizzie> Vorpal: Do you get a /dev/ttyUSBx device too, or just the usb0 interface?
09:09:36 <Lumpio-> I eventually found out you could just use PPP. Somehow I was under the misconception that PPP would take over the phone's 3G modem entirely and the phone itself wouldn't be able to use it
09:09:41 <Lumpio-> (That's what it did with GPRS on my old phone)
09:09:45 <Vorpal> fizzie, sec, will turn the thing on again
09:10:01 <Lumpio-> But apparently the modem supports multiple users at the same time, or the phone emulates PPP and talks to the modem by itself
09:10:13 <fizzie> Lumpio-: I think the latter.
09:10:22 <Vorpal> fizzie, no /dev/ttyUSB*
09:10:36 <fizzie> You could check whether you get pppd processes around when you share interwebs like that.
09:10:45 <Lumpio-> Or well PPP and AT commands and all that
09:10:54 <Lumpio-> But I don't really need to share interwebs with it anymore.
09:11:01 <Lumpio-> I got a laptop with built-in 3G
09:11:39 <Vorpal> can the N900 do sharing by acting as a wifi AP too?
09:11:52 <fizzie> Never tried it, though.
09:11:58 <fizzie> And probably not out-of-the-box.
09:12:10 <Vorpal> that seems to work better than sharing by bluetooth on this phone. I used to use sharing by bluetooth on my old dumb-phone nokia.
09:12:32 <fizzie> Well, at least for an ad-hoc network.
09:12:40 <fizzie> I'm not entirely sure the driver/hardware can do a regular AP.
09:13:29 <fizzie> Haven't investigated, really.
09:13:34 <Vorpal> hm there is an option for wifi direct in this menu too, whatever that is
09:14:16 <Vorpal> also a DLNA option, again no clue what it is. says "share your media files with nearby devices via DLNA" though
09:14:36 <Vorpal> there are also some options for NFC in that menu
09:15:00 <Vorpal> fizzie, anyway does the n900 have a front facing camera?
09:15:03 <Lumpio-> I think it can be put in AP mode
09:15:09 <fizzie> Vorpal: Yes, but it's horrible.
09:15:11 <Lumpio-> But as there's no iptables, you need extra software to do routing...
09:15:16 <fizzie> Quality-wise, that is.
09:15:20 <Lumpio-> I've only used it in ad-hoc mode myself
09:15:38 <Vorpal> fizzie, samsung actually came up with a cool idea for it. To detect if you are looking at the phone, and if so delay the screen timeout
09:15:44 <Vorpal> it actually works surprisingly well
09:16:00 <Lumpio-> The front camera is actually pretty good on the N900
09:16:05 <Lumpio-> ...as an entropy source for RNGs
09:16:18 <fizzie> I don't suppose anyone expects good quality out of those, and it only does 640x480 anyway, but even given that the N900 camera is quite bad. (Also AFAIK depends a bit on the hardware revision, or so I've read.)
09:16:22 <Vorpal> doesn't work in a totally dark room, or if you look at the phone at too much of an angle
09:16:28 <Vorpal> but other than that, it works pretty well
09:16:45 <Lumpio-> I think some software said the picture quality depends on *software* revision lol
09:16:49 <Lumpio-> How the hell would that even happen
09:17:08 <Vorpal> I think my front facing camera does more than that
09:17:12 <Vorpal> let me find the resolution for it
09:17:42 <Vorpal> "1.9 MP, 720p@30fps", not sure about the resolution
09:18:25 <Vorpal> 1280x960 seems to be standard for front facing camera, and 1392x1392 is max
09:18:34 <Vorpal> curious with a square camera
09:18:53 <Vorpal> the back camera does 3264x2448
09:19:01 <fizzie> 1280x720 is the "standard" 720p square-pixel size.
09:19:13 <fizzie> So I guess they wanted the resolution to be > than that.
09:19:26 <Vorpal> fizzie, I guess maybe for the anti-shake feature
09:19:30 <Vorpal> they want a bit of leeway
09:19:51 <Vorpal> since I doubt it has a physical anti-shake (like my Minolta Dimage A2 does)
09:20:17 <Vorpal> (you can hear the anti-shake motor when you take an exposure with that option turned on)
09:20:31 <fizzie> Daily trivia: you can make the N-gage get its internet connection via a computer (not terribly useful in general, but maybe in a specific situation) if you do a really terrible kludge. I've forgotten the details, but it involved DNS trickery to add a custom nonstandard TLD that it checks for.
09:20:59 <fizzie> It's related to what PC Suite does normally to speak with the phone.
09:22:37 <Vorpal> I believe 720x1280 is the phone screen resolution on my phone btw
09:23:26 <Vorpal> the dpi is high enough that you can't really notice that the screen is pentile though
09:24:14 <Vorpal> also sub-pixel hinting for pentile must be a nightmare to program, since it would depend on the exact location on the screen to a much larger degree than on a normal RGB TFT
09:25:11 <fizzie> I think the N9 screen had one of those RGBG things too.
09:25:33 <Vorpal> what is the DPI on that thing?
09:26:03 <fizzie> I think I mentioned this before, but it's funny how camera resolutions always count individual subpixels, while display resolutions (this far, anyway) have tended to report the number of actual RGB pixels.
09:26:36 <fizzie> It's something smaller, since it had a 854x480 screen.
09:27:06 <Vorpal> fizzie, it isn't exactly RGBG though, https://en.wikipedia.org/wiki/File:Nexus_one_screen_microscope.jpg (not the same phone, and I believe the exact arrangement is different on my phone)
09:28:17 <fizzie> That's just a matter of how you look at it. I mean, it's not the usual Bayer pattern "RGBG", but it does have twice as much green than R or B.
09:36:01 <fizzie> Another thing I think I wondered out loud before: I wonder if there are digital cameras where, if you shoot non-raw and select a black-and-white mode, it makes the resulting image by doing something more black-and-white oriented on the subpixels, as opposed to just applying the same interpolation it would use for a color image and then weighted-summing the R, G and B channels.
09:36:25 <fizzie> It's not exactly something that would get mentioned on the manual, perhaps.
09:58:04 -!- azaq23 has quit (Quit: Leaving.).
10:01:06 <Vorpal> fizzie, there is an issue with doing that, in that not all those subpixels are sensitive to all the light
10:01:30 <Vorpal> due to colour filters or whatever
10:01:45 <Vorpal> there are however black-and-white digital cameras
10:06:27 -!- copumpkin has quit (Ping timeout: 265 seconds).
10:07:06 -!- copumpkin has joined.
10:11:17 -!- clog has joined.
10:16:51 -!- itidus21 has joined.
10:36:12 <fizzie> Sure, it'd still need some sort of interpolation. And it's possible the best kind would still do the R, G and B channel separately. I was just wondering.
10:36:44 <fizzie> dcraw has a no-interpolation mode for if you're actually photographing something black-and-white.
11:18:28 <mroman> my toNAND is a little bit bloaty :D
11:18:41 <Vorpal> mroman, toNAND? What does that do?
11:18:56 <mroman> !(!(!(!(!(p && p) && !(p && p)) && !(q && q)) && !(!(!(p && p) && !(p && p)) && !(q && q))) && !(!(!(!(p && p) && !(p && p)) && !(q && q)) && !(!(!(p && p) && !(p && p)) && !(q && q))))
11:19:03 -!- AnotherTest has left.
11:19:05 -!- AnotherTest has joined.
11:19:06 <Vorpal> oh, so not flashing to NAND-style flash?
11:19:20 <Vorpal> also yeah that seems sub-optimal
11:19:21 <mroman> it transforms a term into just NAND-Terms.
11:19:40 <Vorpal> mroman, how does it do that?
11:20:12 <mroman> http://codepad.org/BfTFj88J <- that way.
11:20:27 <Vorpal> I remember doing that sort of thing by hand in some electronics course at university. Forgot what the diagrams were called. Used Gray coding for the numbering of the states along the sides I remember
11:21:05 <Vorpal> dammit, any idea what those are called?
11:21:46 <mroman> shanon is a generalization of de morgan.
11:22:05 <mroman> yes... they can be used for simplifications.
11:22:25 <Vorpal> mroman, and to convert to specific forms (depending on if you circle the zeros or the ones)
11:22:37 <mroman> but something is wrong else.
11:22:40 <Vorpal> forgot which circling yielded what type of expression
11:22:49 <mroman> !(!(!(!(p && p) && !(q && q)) && !(!(p && p) && !(q && q))) && !(!(!(p && p) && !(q && q)) && !(!(p && p) && !(q && q))))
11:22:54 <mroman> which is too bloat for just an or.
11:23:14 <mroman> im guessing some toNAND $ are uneccessary
11:23:15 <Vorpal> mroman, btw I used Karnaugh diagrams at a later point once. When I was building an 7-segment display in minecraft, to figure out the mapping from BCD
11:23:29 <Vorpal> that is the only time I ever used Karnaugh diagrams outside that course
11:23:38 <mroman> toNAND (p :| q) = toNAND (ENot (ENot ((toNAND p) :| (toNAND q))))
11:23:43 <mroman> ^- that first toNAND is bloat.
11:23:59 <lambdabot> Not in scope: data constructor `ENot'
11:28:27 <mroman> *Main> toHuman . toNAND $ EAny 'p' :=> EAny 'q'
11:28:49 <mroman> *Main> shortest' . reduce $ toNAND $ EAny 'p' :=> EAny 'q'
11:28:50 <mroman> (8,"(p => q)",EAny 'p' :=> EAny 'q')
11:29:00 <mroman> Vorpal: It's not a predefined haskell thing.
11:31:53 <mroman> !q would use a NOT-Gate instead of just NAND-Gates.
11:33:38 <mroman> p => q -> !(!(!(p && p) && !(p && p)) && !(q && q))
11:34:31 <mroman> Vorpal: https://github.com/FMNSSun/hs-experiments/blob/master/rewrite.hs#L419
11:41:56 <mroman> http://codepad.org/X5HSlpTR <- I use it for fun ;)
11:52:45 -!- boily has joined.
12:29:47 <mroman> a => (b => a) is to my surprise a tautology.
12:51:22 -!- ogrom has joined.
12:55:31 <fizzie> Well, if a, then obviously a no matter whether b.
13:05:49 -!- Slereah_ has quit (Ping timeout: 255 seconds).
13:06:00 -!- Slereah has joined.
13:40:41 -!- augur has quit (Remote host closed the connection).
13:52:23 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:09:41 -!- copumpkin has joined.
14:12:06 -!- DHeadshot has quit (Ping timeout: 264 seconds).
14:18:57 -!- augur has joined.
14:21:14 -!- augur has quit (Read error: Connection reset by peer).
14:21:33 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
14:21:36 -!- augur has joined.
14:22:10 -!- Phantom_Hoover has joined.
14:29:38 -!- DHeadshot has joined.
14:55:48 -!- augur has quit (Ping timeout: 248 seconds).
14:55:50 -!- augur_ has joined.
15:04:47 <Sgeo> "Notice also that this fallacy does not apply to situations where there are only two rival claims and one has already been falsified, then we may justly establish the truth of the other even if we cannot find evidence for or against it."
15:04:50 <Sgeo> http://philosophy.hku.hk/think/fallacy/fallacy-list.php
15:05:22 <Sgeo> Err....... I mean, I guess that's strictly speaking true, if there is in fact some situation in which there are literally only two options
15:05:45 <Sgeo> But there are fallacies where people wrongly think there are only two options
15:12:09 <shachaf> Sgeo: "either X or Y" is "evidence for X"
15:40:42 <Vorpal> Sgeo, that follows from the law of excluded middle in a logic which include that law
15:40:53 <Vorpal> unless I completely misunderstood what you meant
15:47:05 -!- asiekierka has quit (Remote host closed the connection).
15:58:06 -!- asiekierka has joined.
16:27:14 -!- Gregor has set topic: The Ünicode lookup channel | Individuals guilty of ruining this channel: itidus21 (ex officio), oerjan (ex cathedra), olsner (k ex), others (see /names) | http://codu.org/logs/_esoteric/.
17:00:48 -!- DHeadshot has quit (Read error: Connection reset by peer).
17:08:29 -!- calamari has joined.
17:57:07 -!- AnotherTest has quit (Quit: Leaving.).
18:01:03 -!- Taneb has joined.
18:08:27 -!- zzo38 has joined.
18:13:01 -!- Slereah has quit (Remote host closed the connection).
18:13:28 -!- Slereah has joined.
18:14:12 -!- boily has quit (Ping timeout: 248 seconds).
18:19:30 <Taneb> Is it right to say that, in Haskell, if you have f :: (), there are two possibilities for it, f = () and f = f?
18:20:01 <Sgeo> be back in a bit
18:20:13 <Sgeo> And I think f = _|_ is a clearer way of putting it
18:20:15 <Sgeo> You're welcome
18:20:45 <Taneb> I'd say there's two possibilities, but only one possible value. Is that right?
18:21:00 <Sgeo> Don't ask me about terminology
18:21:03 <zzo38> f = () is the only fully defined possibility, but f = f and f = undefined and f = error "42" are other possibilities
18:21:20 <zzo38> So I would also say there is only one possible value.
18:21:49 <Taneb> I'm trying to teach myself, for fun, without the use of any tutorial, how to write a compiler
18:21:59 <Taneb> With 0x10c's DCPU as the target platform.
18:22:05 <Taneb> I've picked a bad language to compile
18:22:36 <fizzie> You didn't mention the language. Or was it Haskell?
18:23:16 <Taneb> I think I'm trying to do way too much in compile-time
18:23:41 <Sgeo> ...........I wonder if the thing that ais523 and I proved is provable with Coq
18:23:51 <olsner> Taneb: Trying to do too much in compile-time? No, you are not.
18:24:24 <olsner> *Trying to do too much in compile-time you are not.
18:24:51 <zzo38> I think it is against the rules of Haskell for the compiler to assume f :: () implies f = () but it is OK for Ibtlfmm compiler (but not an interpreter) to assume that.
18:25:44 <Vorpal> <Taneb> Yes, it's Haskell <-- trying to compile haskell? you crazy?
18:25:49 <Taneb> Maybe if I created my own language (I've done it before, heh, otherwise I'd be ashamed to be on this channel), then create a Haskell to that language compiler, that would be easier
18:26:15 <fizzie> Maybe you could compile something simpler, that's what most people do, I'd say.
18:28:15 <fizzie> You're dead-set to compile something lazy and as different from the resulting machine code that is physically possible?
18:28:35 <Taneb> MIBBLLII isn't necessarily lazy
18:29:06 <Taneb> I figure I mayswell dive in at the deep end and try not to drown
18:30:07 <fizzie> As opposed to walking from the shallow end towards the deep end and testing the whole drowning thing a little more safely. Well, sure.
18:30:31 <Taneb> Seeing as this, for now, is but a hobby.
18:31:05 <Taneb> For gods' sake, I'm writing a compiler for a platform that is from an unreleased video game!
18:31:29 <nortti> the one from minecraft's creator?
18:31:50 <Taneb> Yeah, that's the one
18:32:26 <Taneb> Wow, when I type "p" in chrome, the top result is the spec for the DCPU
18:32:38 <Taneb> Second is "prime factors of 421"
18:32:44 <Taneb> iirc, it's prime in of itself
18:32:55 <fizzie> Maybe it's personalized for you.
18:33:14 <fizzie> "P-magazine | Elke dinsdag het vuur aan de lont!" is my current top result.
18:33:20 <Taneb> I'd hate it to be personalised for someone else
18:34:15 <fizzie> "Uitgeverij P poëzie kunst geschiedenis creatief leuven" is #2.
18:34:42 <fizzie> I don't know what any of that means.
18:35:26 <olsner> something about a publisher of poetry, art, something and creative living
18:35:26 <Taneb> WHAT HAPPENED TO HIATUS
18:35:55 <olsner> but I mean, dutch - how hard can it be?
18:38:18 <Sgeo> Taneb, was going to be an update on 11th or before
18:38:28 <Sgeo> Hiatus presumably back on, waiting for EoA6A3
18:38:42 <fizzie> I don't think 'leuven' is about living. Google Translate translates it as "slots", but in this case it's probably just the name of this city maybe.
18:38:56 <fizzie> Dutch so far has been rather easy to decode, that's true.
18:39:26 <Gregor> Dutch is just English with a funny accent.
18:39:43 <fizzie> There's quite a bit of German in there. Or is that just more English with a different accent?
18:40:07 <olsner> I think it's an english/german/scandinavian hybrid
18:40:28 <olsner> or maybe it's equally similar to every language in the world
18:40:53 <olsner> for some reason I think geschiedenis means separate
18:41:01 <fizzie> Pickpocket is "zakkenroller", a warning about them loops in some of the trains.
18:43:49 <Vorpal> <olsner> for some reason I think geschiedenis means separate <-- does it though?
18:44:08 <itidus21> A kobold has zakkenrolled a potion from you.
18:44:10 <olsner> Vorpal: one guess and suddenly I'm the authority on dutch?
18:44:46 <Sgeo> Taneb, I didn't even notice the additional pages
18:44:47 <olsner> ok then, it does mean that and I know because I'm the dutchmaster
18:47:09 -!- boily has joined.
18:48:46 <Vorpal> hm heat exchangers installed for heating the house during winter are suboptimal when used to cool. The first floor is now frigid and the upper floor is still as hot as before. Oh well
18:51:13 <Vorpal> also, why am I not super-tired, I only managed to sleep like 2.5 hours during the night (I hate loud seagulls), and I was up all day yesterday, and today.
18:52:10 -!- Frooxius|TabletP has quit (Ping timeout: 244 seconds).
18:52:42 <Taneb> Sgeo... that update...
18:53:08 -!- Frooxius|TabletP has joined.
18:53:29 <Sgeo> First I don't notice the ==>
18:53:36 <Sgeo> Then, page 7150 breaks my browser
18:53:56 <Sgeo> Vorpal, Homestuck
18:57:14 <Taneb> 7150, if I had an iPhone, I'd want that as my wallpaper
19:02:34 <Taneb> I must have got in before everybody else noticed
19:02:41 <nortti> what are you talking about?
19:03:16 <Taneb> One of the most esoteric web media projects out there (it's not a webcomic anymore.)
19:04:08 <Phantom_Hoover> OK that entrance sequence still wasn't as good as the 2nd through 4th but it was close.
19:05:12 <Vorpal> Taneb, what is it then?
19:05:21 <Vorpal> Taneb, I haven't been keeping up with it
19:05:23 <Taneb> A web multimedia project
19:05:39 <Vorpal> well, it used to have the occasional flash every now and then before too?
19:05:55 <Taneb> It encompasses webcomics, music, short video games, pseudo-interactive fiction, and others
19:07:56 -!- Slereah has quit (Ping timeout: 245 seconds).
19:08:19 <Vorpal> wow, what the hell is up with mediafire today, this 91 MB download has been running for 3 hours, with another hour estimated to go
19:08:20 <olsner> red dwarf references!? where !?
19:08:32 <Vorpal> Phantom_Hoover, what is red dwarf?
19:08:43 <olsner> Vorpal: what are you downloading from mediafire?
19:09:35 <Taneb> Vorpal, Red Dwarf was a sci-fi TV series.
19:09:38 <Taneb> Also a kind of star
19:09:42 <olsner> Vorpal: is it amateur porn you got linked from 4chan or something?
19:09:46 <Vorpal> Taneb, I know the latter meaning
19:09:52 <Vorpal> olsner, no it is a boring android related thingy
19:12:10 <Phantom_Hoover> also ok this is now my joint third favourite entrance sequence
19:14:11 <Taneb> Tell me when it reaches first
19:16:19 <Phantom_Hoover> especially not rose's because it represents my single favourite point in homestuck
19:16:41 <Taneb> By which I mean it's my favourite
19:16:55 <Taneb> I'm not here to enforce my opinions.
19:17:09 <Taneb> I also almost wrote "here" twice in that sentence
19:30:04 -!- oerjan has joined.
19:34:00 -!- ogrom has quit (Quit: Left).
19:36:06 <zzo38> Whatever document I have written in TeX, you should be able to compile them on any computer having TeX even in future and even in past, since it is the same TeX everywhere.
19:37:24 -!- Vorpal has quit (Ping timeout: 276 seconds).
19:37:25 <oerjan> TeX: the original programming language. that xkcd about the universe being written in perl and lisp was just propaganda.
19:38:12 <zzo38> But it might not necessarily work if you use one of the programs other than "tex" (such as "pdftex", "latex", etc).
19:42:15 <zzo38> Now the X and Y types I have written about yesterday, I have called Decompose and Recompose.
19:43:39 <zzo38> I have made those and other things available in "for-free" package.
19:47:32 <soundnfury> oerjan: ah, but TeX was written in WEB, and Don Knuth himself is actually written in XSLT (yeah, I was shocked too)
19:49:02 <Taneb> What's XSLT written in? (dun dun DUN)
19:49:33 <oerjan> 11:23:38: <mroman> toNAND (p :| q) = toNAND (ENot (ENot ((toNAND p) :| (toNAND q))))
19:49:36 <oerjan> 11:23:43: <mroman> ^- that first toNAND is bloat.
19:50:13 <oerjan> try with toNAND (p :| q) = toNAND (ENot (ENot p :& Enot q))
19:50:38 -!- ais523 has joined.
19:51:19 <Taneb> I was just thinking aloud
19:51:30 <oerjan> ...i wasn't talking to you
19:51:50 <Taneb> I misparsed your caret
19:51:57 <Taneb> :t fix (\r a -> if a == 0 then 1 else r (a - 1))
19:51:58 <lambdabot> forall a t. (Num a, Num t) => a -> t
19:52:09 <Taneb> > fix (\r a -> if a == 0 then 1 else r (a - 1)) 10
19:52:19 <Taneb> > fix (\r a -> if a == 0 then 1 else a * r (a - 1)) 10
19:52:45 <Taneb> @pl fix (\r a -> if a == 0 then 1 else a * r (a - 1))
19:52:45 <lambdabot> fix (ap (flip if' 1 . (0 ==)) . ap (*) . (. subtract 1))
19:53:06 <Taneb> But pointless recursive factorial!
19:53:15 <olsner> some combination of fix and zip`ap`tail should work
19:53:40 <soundnfury> Taneb: Now write a recursive factorial in Eniuq
19:53:46 <olsner> :t zipWith (*) `ap` tail
19:53:46 <Taneb> > zip `ap` tail $ [1,2,3]
19:54:04 <Taneb> soundnfury, I know not what Eniuq is
19:54:10 <soundnfury> (Disclaimer: May not be possible. Management accepts no liability for loss of sanity. Brains parked at owners' risk.)
19:54:15 <Taneb> ...it's quine backwards, that's what it is
19:54:49 <soundnfury> unfortunately I'm not crazy enough to be able to write programs in it
19:55:18 <soundnfury> it took me three hours to write unary.en
19:55:31 <soundnfury> which looks like this: ?1-"I~1-~84*3+f!1+4*5d3**+84*3+Dk84*3+"48*2+D48*2+O`Oo
19:56:32 <olsner> > fix$(<$>)<$>(:)<*>((<$>((:[{-odd-}])<$>))(=<<)<$>(+)<$>(+)1)$1
19:56:33 <lambdabot> [1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,5...
19:57:54 <zzo38> Do you like the format of the ITMCK manual so far?
19:58:27 <olsner> (that right there is probably the most useful haskell program I've ever written)
19:59:15 <Taneb> olsner, have you seen my interactive factorial program?
19:59:26 <Taneb> It's the most controversial Haskell program on Uncyclopedia
19:59:32 <oerjan> <Taneb> I'd say there's two possibilities, but only one possible value. Is that right? <-- that is not the standard haskell view, although i recall someone starting a flame war defending your interpretation
20:00:08 <zzo38> oerjan: Well, I agree, there is two possibilities but only one possible value.
20:00:26 <Taneb> Two possibilities in a practical sense, one value in a theoretical sense
20:00:27 <zzo38> Actually there are more than two possibilities.
20:00:55 <Taneb> Ignoring any output to stderr
20:00:59 <olsner> Taneb: I think I have not, where is it?
20:01:06 <oerjan> Taneb: no, there are >= 2 values in the theoretical sense. haskell uses denotational semantics.
20:01:14 <Taneb> olsner, uncyclopedia.wikia.com/wiki/Talk:Haskell
20:01:21 <zzo38> Since you might have error "42" or error "I AM ERROR" or unsafePerformIO (putStrLn "Hello, World!") or a bunch of other possible stuff.
20:02:00 <olsner> " the Zygohistomorphic Prepromorphism section is outdated and wrong. The real code is ..." :D
20:02:02 <zzo38> But the only proper value would be f = ()
20:02:33 <olsner> Taneb: oh, the one with all the <*> and unsafeCoerces?
20:02:45 <Taneb> It works, but takes ages for bigger numbers
20:02:50 * oerjan shouldn't be shocked about zzo38 not accepting the standard view of haskell.
20:02:52 <zzo38> It seem to me that it is like the SK combinators
20:02:55 <Taneb> Where bigger means more than about 8 or 9
20:03:05 <Taneb> zzo38, that is EXACTLY how it works
20:03:43 <Taneb> I initially wrote it in SKI, then translated and fixed compily errors
20:04:43 <Taneb> Hey, Christopher Eccleston is on
20:04:48 <zzo38> Yes that is what it looks like to me.
20:05:37 <Taneb> Three pures, one (<*>), and the only print each have an explicit type signature
20:06:46 <Taneb> This is because the unsafeCoerces confues GHC, and presumably every other Haskell compiler
20:07:18 <Taneb> I think a couple of unsafeCoerces can be replaced by id
20:07:36 <olsner> you probably have a few unnecessary parens there, have you tried minimizing them?
20:08:03 <Taneb> That was an earlier version, I'm not sure where the final one has got to
20:10:50 -!- Nisstyre has quit (Ping timeout: 246 seconds).
20:17:59 -!- augur_ has quit (Remote host closed the connection).
20:18:07 <mroman> oerjan: That wont work.
20:18:15 <mroman> p might be an expression containing another or ;)
20:18:20 <mroman> but I already fixed it.
20:18:26 <zzo38> soundnfury: http://repo.or.cz/w/ITMCK.git https://devlabs.linuxassist.net/projects/itmck are two webpages with information.
20:18:32 <mroman> I also added support for xor
20:18:38 <mroman> and noImplication, noEqu, noXor
20:18:45 <zzo38> But I can send the files directly too if you want specific files.
20:18:50 <mroman> so that (((a == b) ^^ c) => d) (^^ is xor)
20:19:00 <mroman> (!((!!((!a && b) || (a && !b)) && c) || (!((!a && b) || (a && !b)) && !c)) || d)
20:19:38 <zzo38> In Haskell you can use /= for boolean XOR.
20:19:57 <mroman> but it directly translates to what noXor would.
20:20:01 <Taneb> XOR is 0110; XNOR is 1001. XNOR is what I'd call Equ using your convention
20:20:03 <mroman> *Main> toHuman . noEqu $ EAny 'a' := EAny 'b'
20:20:04 <mroman> "!((!a && b) || (a && !b))"
20:20:23 <soundnfury> Gah! how come gedit doesn't have a syntax highlighting option for TeX (only LaTeX) yet it has highlighters for shit like "Literate Haskell"?
20:20:33 <mroman> Still the biggest issue is toNAND :(
20:20:34 <ion> Finished Deus Ex.
20:20:42 <mroman> *Main> toHuman . toNAND . noEqu $ EAny 'a' := EAny 'b'
20:20:43 <mroman> "(!(!(!(!(a && a) && b) && !(!(a && a) && b)) && !(!(!(a && a) && b) && !(!(a && a) && b))) && !(!(!(a && !(b && b)) && !(a && !(b && b))) && !(!(a && !(b && b)) && !(a && !(b && b)))))"
20:20:50 <mroman> It just looks way too bloat :D
20:21:01 <Taneb> ion, I read that is Finnish Deus Ex, as the reason to soundnfury's moan
20:21:08 <zzo38> soundnfury: I don't know. But it is possible for the syntax in a TeX file to change part way through due to category codes, so it may not work extremely well
20:22:00 <mroman> *Main> shortest' . reduce . toNAND . noEqu $ EAny 'a' := EAny 'b'
20:22:01 <mroman> (8,"(a == b)",EAny 'a' := EAny 'b')
20:22:14 <mroman> ^- but it's cleary a valid and equivalent only-nand logic expression :)
20:22:32 <zzo38> For things such as literate Haskell, you just need to find the line with > at front and highlight everything else on that line as a Haskell code, and then highlight the rest using a different syntax highlighter (which could be the plain text highligher).
20:22:52 <zzo38> However literate Haskell codes can also have \begin{code} \end{code} so you would highlight those too.
20:23:00 <soundnfury> yeah but my question is, what kind of pervert uses Literate Haskell?
20:23:09 <Taneb> zzo38, it's plaintext dyed blue, iirc. Haddock docs are green, maybe?
20:23:11 <oerjan> < mroman> p might be an expression containing another or ;) <-- i don't see the problem.
20:23:20 <zzo38> soundnfury: I sometimes use it.
20:23:22 <Taneb> soundnfury, about half the haskell users in this channel
20:23:32 <Taneb> It's useful for blogging etc
20:23:33 <mroman> oerjan: An or is not a NAND.
20:23:38 * soundnfury does not like haskell, had you guessed?
20:23:53 <zzo38> If you don't like Haskell that is OK you do not have to use it.
20:23:56 <mroman> The idea is, to translate a logic expression to NAND so that
20:24:08 <mroman> you can build it as a digital circuit only using NAND Gates.
20:24:09 <Taneb> (I'm still not here to force my opinions on people)
20:24:21 <soundnfury> zzo38: yeah, but I have to read it all the time in this channel ;P
20:24:29 <mroman> that means: No or, no not... only NAND.
20:24:39 <Taneb> I think that was what made me learn it, soundnfury
20:24:46 <soundnfury> next time someone posts a Haskell code snippet, I'll post some Z80 m/c
20:24:47 <mroman> !a is !(a && a) for example.
20:24:50 <Taneb> That and I sucked at Python
20:24:58 <mroman> because !a is not NAND-only.
20:25:05 <zzo38> OK post some Z80 m/c if you have something to write about it
20:25:25 <zzo38> soundnfury: Do you like ITMCK? Do you like TeX? Do you like LLVM?
20:25:48 <oerjan> <mroman> oerjan: An or is not a NAND. <-- you noted that my expression says to reapply toNand to everything, right?
20:26:30 <mroman> toNAND (p :| q) = toNAND (ENot (ENot p :& Enot q)) does not apply toNAND to p or q
20:26:39 -!- Taneb has set topic: The nicode lookup channel | Individuals guilty of ruining this channel: itidus21 (ex officio), oerjan (ex cathedra), olsner (k ex), ion (deus ex), others (see /names) | http://codu.org/logs/_esoteric/.
20:26:39 <soundnfury> zzo38: Dunno about ITMCK, I prefer beeper audio demos though chiptune is nice too. SIDs suck though.
20:27:04 <soundnfury> I certainly do like TeX, although I'd write a program manual in either XHTML or (better) troff -man
20:27:09 <zzo38> Do you like PPMCK?
20:27:20 <soundnfury> I had never heard of PPMCK before today
20:27:46 <zzo38> PPMCK is a program to create .NSF musics
20:27:48 <mroman> p || q -> !(!p :& !q) is not NAND only.
20:28:14 <mroman> Currently I'm using toNAND (p :| q) = (ENot $ toNAND (ENot ((toNAND p) :| (toNAND q))))
20:28:26 <oerjan> mroman: yes it does, it should become ENot (toNAND (ENot p) :& toNAND (ENot q)) in the next step
20:28:33 <zzo38> .NSF musics is musics for NES/Famicom.
20:30:10 <nortti> soundnfury: about you spectrum lisp implementation. why wouldn't (lambda (args) (foo)) work instead of (lambda arg (foo))?
20:31:11 <soundnfury> but you could go ((lambda arg (foo)) (args...))
20:31:18 <soundnfury> ie. you can pass a list as the argument
20:31:32 <soundnfury> but then (foo) has to extract the individual arguments from that
20:31:55 <mroman> oerjan: Still pretty bloat :)
20:32:33 <mroman> http://codepad.org/LeaJjhFp <- output of that.
20:32:33 <oerjan> mroman: well there are limits, iirc xor and equ are bloated when expressed in nand
20:32:43 <zzo38> soundnfury: Have you written any music?
20:33:10 <mroman> oerjan: It's also bloat because I only allow binary :&
20:33:23 <mroman> in real life you have nand gates with more than just two inputs.
20:35:13 <mroman> and now it's broken :(
20:35:47 <oerjan> mroman: um are you sure you gave the right paste?
20:36:52 <oerjan> toNAND (p :| q) = toNAND $ (ENot $ toNAND (ENot p :| q)) is definitely wrong
20:37:48 <oerjan> the last ENot only affects the p
20:38:47 <mroman> toNAND (p :| q) = (ENot $ toNAND (ENot p :| ENot q))
20:39:03 <mroman> what if toNAND returns something in the form of ENot (...)?
20:39:09 <mroman> then you got ENot $ ENot $
20:39:13 <mroman> whis is not NAND-only.
20:39:32 <oerjan> my suggestion is toNAND (p :| q) = Enot $ toNAND (Enot p) :& toNAND (Enot q)
20:41:09 <oerjan> it's just about applying deMorgan's law in the right places, really
20:42:43 <soundnfury> zzo38: you mean chiptune, or in general?
20:42:48 <mroman> It still gets bloated way out of proportion :)
20:43:09 <mroman> but that's most certainly due to the binary and.
20:43:25 <mroman> gets bloated too !(!(!(a && b) && c) && !(!(a && b) && c))
20:43:56 <mroman> !(!(!(!(!(a && b) && c) && !(!(a && b) && c)) && d) && !(!(!(!(a && b) && c) && !(!(a && b) && c)) && d))
20:44:01 <zzo38> soundnfury: In general (but including chiptune too)
20:44:30 <mroman> But that's good enough for now.
20:44:43 <mroman> As long as it guarantees that the term only contains NAND, it does its job :)
20:45:07 <soundnfury> chiptune-wise, I tried writing some AY music with SoundTracker about 5 years ago, but most of it was shoite :)
20:46:42 <zzo38> What is AY music and SoundTracker?
20:46:58 <oerjan> if you allow non-binary NAND, then ENot becomes just a single-argument NAND
20:47:36 <soundnfury> zzo38: AY == General Instruments AY-3-8912
20:47:49 <soundnfury> the sound chip in the 128k ZX Spectrum
20:48:08 <soundnfury> SoundTracker was a piece of Speccy software for writing AY tunes
20:48:18 <soundnfury> which you can probably find on World of Spectrum
20:49:37 <mroman> oerjan: That would require too much code change
20:49:47 <mroman> because then EBool :& EBool is no longer usable.
20:50:09 <mroman> but toNAND was actually not my intended goal.
20:50:15 <mroman> it was just a side experiment.
20:50:21 <mroman> so I'm going to leave it there.
20:51:47 -!- Frooxius|TabletP has quit (Ping timeout: 246 seconds).
20:52:40 -!- azaq23 has joined.
20:52:48 -!- Frooxius|TabletP has joined.
20:52:52 -!- azaq23 has quit (Max SendQ exceeded).
20:53:45 -!- azaq23 has joined.
20:56:41 -!- Taneb has quit (Quit: Leaving).
20:57:06 <mroman> I probably should remove rules changing stuff to implication or xor :)
20:57:42 <mroman> p xor q is smaller than (!p && q) || (p && !q) but it pretty much
20:57:47 <mroman> ruins other rules after that :D
21:02:09 <nortti> ok. now that I am making new version of my old lis.py I remember why I kinda dislike programming functionaly in python
21:02:33 -!- stanley has quit (Ping timeout: 255 seconds).
21:02:55 -!- boily has quit (Quit: WeeChat 0.3.8).
21:06:45 <nortti> the reasons it the fucking ternary if. whose idea was to make it have syntax (if_true if condition else if_false)
21:08:05 -!- stanley has joined.
21:15:06 <soundnfury> yeah, they should have used a nice sensible condition?yes:no like C
21:15:24 <soundnfury> or "don't do unless not or die()", like perl :P
21:16:28 <soundnfury> which does in fact have an "unless" statement
21:16:52 <mroman> nortti: a if b else c is pretty cool.
21:16:55 <soundnfury> and generally lets you put conditions before, after, or in compromising acts with statements
21:17:40 <nortti> mroman: a, b and c refer to what in that expression
21:18:41 <nortti> or maybe forth like condition if if_true then / condition if if_true else if_false then
21:19:07 <mroman> thats pretty like an english sentence
21:19:22 <soundnfury> mroman: trying to be like english just gets you COBOL
21:19:27 <mroman> "Go home" if "it rains" else "stay here"
21:19:31 <mroman> soundnfury: Good point.
21:19:35 <mroman> I tried to learn COBOL
21:19:51 <mroman> It's just a damn fucking stupid language.
21:20:14 <mroman> It was supposed to be easy.
21:20:22 <mroman> but it's the total opposite of it.
21:20:26 <nortti> mroman: it is just bit irritating when nesting if expressions
21:20:52 <mroman> hell it's worse than brainfuck.
21:27:53 <mroman> I actually can't find the real words to describe how much it sucks.
21:28:16 <mroman> I tried 7 minutes now. But it's not possible.
21:31:33 <Sgeo> Although I've looked at Tcl, and I know that's not really well liked. Although it's not bad like COBOL
21:32:03 <pikhq_> Tcl is actually fairly enjoyable, if decidedly odd.
21:32:13 <nortti> why id tcl not liked well?
21:32:18 <pikhq_> nortti: Because it's odd.
21:33:08 <mroman> lisp yes. if it runs on jvm.
21:33:25 <mroman> allthough it's not called lisp anymore ;)
21:33:43 -!- asiekierka has quit (Remote host closed the connection).
21:34:23 <soundnfury> the word "clojure" always looks faintly visceral and pornographic to me
21:34:51 <mroman> Do I have to look up visceral in a dictionary?
21:34:55 <mroman> Or is it not worth it?
21:35:54 <lambdabot> I perform dictionary lookups via the following 13 commands:
21:35:54 <lambdabot> all-dicts ... Query all databases on dict.org
21:35:54 <lambdabot> devils ...... The Devil's Dictionary
21:35:54 <lambdabot> easton ...... Easton's 1897 Bible Dictionary
21:36:01 <lambdabot> Supported dictionary-lookup commands:
21:36:02 <lambdabot> all-dicts devils easton elements foldoc gazetteer hitchcock jargon lojban vera web1913 wn world02
21:36:02 <lambdabot> Use "dict-help [cmd...]" for more.
21:36:17 <lambdabot> *** "visceral" wn "WordNet (r) 3.0 (2006)"
21:36:17 <lambdabot> adj 1: relating to or affecting the viscera; "visceral
21:36:17 <lambdabot> bleeding"; "a splanchnic nerve" [syn: {visceral},
21:36:19 <lambdabot> 2: obtained through intuition rather than from reasoning or
21:36:21 <lambdabot> observation [syn: {intuitive}, {nonrational}, {visceral}]
21:36:41 <lambdabot> *** "viscera" wn "WordNet (r) 3.0 (2006)"
21:36:42 <lambdabot> n 1: internal organs collectively (especially those in the
21:36:42 <lambdabot> abdominal cavity); "`viscera' is the plural form of
21:36:42 <lambdabot> `viscus'" [syn: {viscera}, {entrails}, {innards}]
21:36:45 <mroman> That's more interesting ;)
21:37:29 <lambdabot> Error: 550 invalid database, use SHOW DB for list
21:38:13 <lambdabot> *** "bsd" vera "V.E.R.A. -- Virtual Entity of Relevant Acronyms (June 2006)"
21:38:13 <lambdabot> Berkeley System / Software Distribution (manufacturer, Unix, OS)
21:38:13 <lambdabot> *** "bsd" vera "V.E.R.A. -- Virtual Entity of Relevant Acronyms (June 2006)"
21:39:00 <lambdabot> *** "bsd" jargon "The Jargon File (version 4.4.7, 29 Dec 2003)"
21:39:00 <lambdabot> [abbreviation for ?Berkeley Software Distribution?] a family of {Unix}
21:43:13 <lambdabot> Error: 550 invalid database, use SHOW DB for list
21:43:57 -!- stanley has quit (Ping timeout: 255 seconds).
21:47:16 -!- Nisstyre has joined.
21:51:08 -!- stanley has joined.
21:53:32 -!- nortti_ has joined.
21:56:06 -!- pikhq has joined.
21:56:07 -!- pikhq_ has quit (Ping timeout: 240 seconds).
22:23:24 -!- nortti_ has quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )).
22:28:42 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:35:08 <zzo38> Channel = (channelvariable-1) & 63 ; Channel is 0 based.
22:35:22 <zzo38> Why does it work like that?
22:39:07 <oerjan> there are probably some dried grapes involved, madly laughing
22:41:53 <lambdabot> forall a b. (a -> Maybe b) -> [a] -> [b]
22:45:05 <lambdabot> forall a. (a -> Bool) -> [a] -> Maybe a
22:46:13 <lambdabot> forall a b. (a -> b) -> [a] -> [b]
22:46:44 -!- copumpkin has joined.
23:06:10 <zzo38> Compose (Decompose g f) g = f
23:18:11 <quintopia> $ rsync -azvX My\ Music/ quint@74.117.158.92:musics
23:36:09 -!- pikhq_ has joined.
23:36:22 -!- pikhq has quit (Ping timeout: 250 seconds).
23:57:46 <Sgeo> Is it reasonable to want to make a non-eggdrop bot in Tcl?