00:00:23 I think it might be related to Kan extensions as well. 00:05:45 For example you can have: CoYoneda (X [] Maybe) 00:08:34 I suppose it is a bit like (X x y) is decomposing the type x from y, sort of. 00:09:18 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 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 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:02:59 ho, edwardk 05:03:05 heya 05:03:32 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 I need to start cabalizing and that means I need more than one directory tree 05:04:19 i make a cabal project for each thing i work on 05:04:21 then its just there 05:05:48 but how do you ensure that ghci loads all your projects? 05:06:21 when you cabal install the project it will get loaded when you use it 05:06:27 eg. in cabal install 'ad' 05:06:29 then i run ghci 05:06:33 and import Numeric.AD 05:06:41 and it just works since ghc-pkg has the package unhidden 05:07:19 so you use local installs? 05:09:11 yes 05:09:22 i just use 'cabal install' as my build process 05:09:37 and then forget about the package and move on to the next when i start working on that 05:11:22 haha 05:13:16 another useful thing to make ghci happy 05:13:16 is to make your project source files sit in a src dir 05:13:36 and add it via hs-source-dirs 05:13:36 that way ghci doesn't try to load the file directly when you are in the top level project folder 05:13:47 which can matter a lot when you have interesting build processes 05:15:17 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 I always run a Haskell code in GHCi although I may compile executable files too sometimes. 06:04:15 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:16:57 * Guest46900 will be off to sleep in short order. 06:17:20 -!- Guest46900 has quit (Client Quit). 06:23:08 Sleep on the ceiling next Sunday. 06:23:39 `addquote Sleep on the ceiling next Sunday. 06:23:50 849) Sleep on the ceiling next Sunday. 06:25:14 Because g is a vector! 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:06:23 Why isn't it g then. 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 hm the mount options used on android are kind of crazy... 07:51:10 are they funny 07:51:30 most partitions are mounted noatime, of the two that are mounted relatime instead, one is also mounted ro 07:51:38 so the relatime has no effect 07:52:19 quintopia, http://sprunge.us/dEXZ 07:52:38 I like how it fakes the internal storage being an sdcard by using fuse 07:53:05 the fuse file system emulates a FAT-style file system when it comes to permissions 07:53:31 /mnt/sdcard is actually stored at /data/media 07:54:31 (I don't have a real microSD yet, going to buy one later this week hopefully) 07:55:26 http://sprunge.us/EGaM 07:55:32 also I don't know why /mnt/sdcard is mounted relatime when the underlying directory for it is mounted noatime 07:55:36 how does that work 07:56:00 fizzie, n900? What is up with the bind mounts? 07:56:03 Ah, Android. Because screw your concepts of userspace, we just want init=/bin/dalvik 07:56:21 pikhq_, I don't think init is /system/bin/dalvik? 07:56:30 (there is no /bin) 07:56:34 Vorpal: It's not, but they very obviously wish it could be. 07:56:42 shell@android:/ $ ps 07:56:42 USER PID PPID VSIZE RSS WCHAN PC NAME 07:56:42 root 1 0 528 356 ffffffff 00000000 S /init 07:56:52 Then you wouldn't need anything else! 07:56:56 what sort of name is /init? 07:57:05 pikhq_, fun fact: Samsung sucks at programming 07:57:13 Vorpal: presumably that's the path to init 07:57:17 olsner, nope 07:57:21 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 The sort of name devised by people who hate everything. 07:57:55 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:20 fizzie, ah 07:58:50 $ busybox df -h / 07:58:50 Filesystem Size Used Available Use% Mounted on 07:58:51 df: /: can't find mount point 07:58:51 what? 07:58:56 the built in df works 07:59:03 $ df / 07:59:03 Filesystem Size Used Free Blksize 07:59:07 / 0K 0K 0K 4096 07:59:10 but doesn't make sense 07:59:30 pikhq_, any idea what is going on with / on android? 07:59:48 fizzie, ah I see 08:00:03 fizzie, which one is your sdcard? 08:00:05 if you have one 08:00:12 I don't have one, and I've forgotten where it goes to. 08:00:23 /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 The thing in /home/user/MyDocs is the ~30G internal storage thing. 08:00:24 Vorpal: Only that Android userspace is a tower of lies. 08:00:29 pikhq_, well yes 08:00:52 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 pikhq_, the id->group/user mappings are hard coded tables in the libc from what I understand 08:01:02 Yup. 08:01:02 pikhq_, which means the busybox id doesn't work 08:01:13 well the busybox I have at least 08:01:21 which is presumably compiled against a different libc 08:01:24 Keep in mind that they literally *started with* a BSD libc... 08:01:34 They *actually had to work* to make this suck. 08:01:41 oh? I thought they wrote bionic from scratch? 08:01:45 No. 08:01:52 fizzie, so no MTP? 08:02:21 btw, my phone does MTP. It is kind of funky. Works kind of randomly sometimes under linux on the computer 08:02:32 It's a fork of a BSD libc with actual *effort* applied to it to make it suck. 08:02:39 pikhq_, ouch 08:03:04 That's not them being lazy, that is them *actually hating you*. 08:03:09 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:12 Why 08:03:19 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:31 fizzie, ah 08:03:32 So terribly many processes: http://sprunge.us/EahJ 08:03:36 fizzie, how much internal storage does it have? 08:03:52 fizzie, eh, not much more than my ubuntu laptop I bet 08:04:09 dragon $ ps aux | wc -l 08:04:09 164 08:04:12 32G, of which about 30G go to MyDocs. 08:04:25 shell@android:/ $ ps | wc -l 08:04:26 174 08:04:32 (this ps doesn't do a, u or x) 08:04:51 fizzie, why would anyone want 30 GB of vfat... 08:05:31 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:05:40 dont call it fat! its not PC! 08:06:02 well, you can't run linux software that want proper permissions from it 08:07:08 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 if I understand the definition of BogoMIPS, this means the CPU can execute approx 1.138 NOPs per clock cycle? 08:08:03 huh? 08:08:57 the numbers on my laptop are much closer to a whole multiple (~2.000978) 08:09:21 -!- fizziew has joined. 08:09:26 (Home-SSH froze.) 08:09:27 (which probably just means the CPU doesn't run at exactly 2.26 GHz like it claims to) 08:09:40 pikhq_, any idea about that bogomips number? 08:09:59 fizziew, well, you can't run linux software that want proper permissions from it 08:10:02 in case you missed that 08:10:05 -!- john_metcalf has quit (Quit: john_metcalf). 08:11:21 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:11:34 s/stuff/space/ 08:11:38 Vorpal: Hmm. 08:11:54 Vorpal: Beats me. 08:12:23 Vorpal: Well. Maybe the branch takes a weird amount of time. 08:12:29 guess so 08:12:39 I wonder if it uses Thumb or ARM to measure it 08:12:44 that could factor into it I guess? 08:13:02 ARM chips don't exactly design for really fast branching, so. 08:13:07 pikhq_, btw did you know that android hotplugs inactive CPU cores in order to save power? 08:13:18 Huh. No, I didn't. 08:13:21 Makes sense, though. 08:13:43 also ARM /proc/cpuinfo is weird 08:13:59 http://sprunge.us/UhML 08:14:05 looks nothing like the x86 one 08:14:13 no model name either 08:14:31 that is from a 4-core CPU, I guess the other cores are unplugged atm though 08:14:53 also a refreshingly short feature flag list 08:15:14 on my core 2 duo it is absurdly long, even worse on my core i7 (sandy bridge) 08:15:19 http://sprunge.us/UTPP 08:15:33 -!- clog has quit (Ping timeout: 252 seconds). 08:15:59 fizziew, you have an arm7 on that thingy? I thought it was older than that 08:16:09 very low bogomips though 08:16:22 what is the actual clock frequency on it? 08:16:35 It's clocked to about 250 MHz most of the time, IIRC. 600 MHz is what it runs when busy. 08:16:53 fizziew, I thought bogomips was measured when it ran at full speed? 08:16:54 And the hardware is OMAP3, it's the same as e.g. the original Droid. 08:17:17 I've seen changing bogomips; don't know details. 08:17:34 my phone seems to idle (with screen on) jumping between 200 and 500 MHz, staying at 200 most of the time 08:18:17 http://sprunge.us/jTWT with a while true; do true; done running in another terminal. 08:18:24 huh 08:18:48 fizziew, did you run the shell from the computer or on the phone itself? 08:18:53 On the phone. 08:19:03 oh okay 08:19:38 fizzie, what about two busy loops? Or do you have a single core only? 08:19:44 It's single-core, yes. 08:19:51 It's not *that* new. 08:20:17 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 pretty sure that it stays constant on x86 at least 08:21:03 It doesn't on my Athlon X2, unless I misremember. 08:21:24 (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 fizzie, I thought you were abroad? "* [fizziew] (~htkallas@pc112.ics.hut.fi): Heikki Kallasjoki" 08:22:17 or do you have a bouncer at the university too? 08:22:31 It doesn't on my Athlon X2, unless I misremember. <-- hm it does on my core 2 duo 08:22:43 http://sprunge.us/gJMf 08:22:47 Here's from this workstation. 08:23:07 (Which also happens to be an Athlon X2.) 08:23:20 (Again with a while true loop between the two.) 08:23:25 fizzie, http://sprunge.us/SQJg 08:24:06 fizzie, you ran two such loops there? 08:24:07 Just goes on to show that BogoMIPS are maybe not the best benchmark. :p 08:24:23 Just one; the X2 frequency scaling is CPU-wide, not per-core. 08:24:26 ah 08:24:59 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 also the actual clock speed was not listed in the ARM cpuinfo 08:27:09 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:27:26 true 08:28:34 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 pikhq_, any idea what "rootfs" is under linux? My laptop has it too, (only in /proc/mounts, not /etc/mtab though) 08:29:31 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 wait what, I thought atom was low power stuff 08:29:57 It is. 08:29:57 surely those do frequency scaling? 08:30:03 No, it doesn't. 08:30:13 is it due to the kernel or the hardware? 08:30:19 The hardware, as far as I know. 08:30:23 anyway I guess it could be related to kernel versions 08:30:28 which ones did you test on 08:30:45 I tested on 3.0 for my phone and 2.6.39 for my laptop 08:30:51 http://ark.intel.com/products/35635 08:30:58 "Enhanced Intel SpeedStep® Technology No 08:31:07 lol 08:31:22 wait, it does hyperthreading? 08:31:29 Yes. 08:31:36 so weird 08:31:41 I'm not sure I have a HT kernel on it, though. 08:31:43 anyway what sort of computer is it in? 08:31:58 It's on a Jetway "mini-ITX" board. 08:32:09 hm 08:32:33 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 speaking of power management, I'm pretty sure my desktop runs cooler under linux than under windows 08:32:50 (idle condition, screen on empty desktop in both cases) 08:32:51 So it's four ports in quite a small package, to summarize. 08:33:04 3 ethernet ports? 08:33:10 do you use it as a router? 08:33:12 Yes. 08:33:22 nice 08:34:05 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:19 hah 08:34:35 fizzie, so a full tower case or what? 08:34:49 s/case/chassis/ 08:35:07 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 all those form factors 08:35:54 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:15 heh 08:36:51 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:37:33 hm 08:38:00 s/8G/16G/ apparently. 08:38:31 hm 08:38:45 fizzie, that is what you run your irc client on? 08:38:48 what about logs? 08:38:57 an nfs mount to a more capable computer? 08:39:03 a* 08:40:02 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 Just 748M of them at the moment. 08:41:05 (They start from 2009-03 when I switched to the current bouncer. Things older than that are elsewhere.) 08:41:31 Actually, there's one more complication, but it might be outside the scope of this discussion. Or, well... 08:41:56 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 fizzie, hm I have 850 MB of xz compressed logs since when I started logging 08:43:06 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:34 fancy 08:43:38 fizzie, why the tempfs? 08:43:52 to save on the flash memory? 08:44:15 Right. 08:44:29 Might not really be necessary, but I was sort of worried. 08:44:52 heh 08:44:53 (I've tried to put most of the often-changing files on tmpfs like that.) 08:44:55 this month: 881 MB uncompressed logs 08:45:13 that is a bit much 08:45:40 This month: 13M, uncompressed. My channels are obviously less noisy. 08:45:41 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:45:53 sometimes I hate cron 08:46:23 57M for 2012-0[67]. 08:48:28 * Vorpal runs find . -iname '*.log' -print0 | xargs -0 -n4 -P2 xz -z 08:48:55 (I should set up automatic compressing after rotating) 08:49:00 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:10 hm 08:49:34 fizzie, n900 didn't sell terribly well did it? 08:50:11 I'd say that meego is entirely dead, but there might be people intending to revive it 08:50:29 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 olsner, so we might get an undead phone? Awesome 08:50:57 no, after reviving it will be alive 08:51:06 boring 08:51:10 indeed 08:51:23 fizzie, N9 had terrible battery time as well? 08:51:43 I don't recall that, but it's certainly possible. 08:52:06 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 "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 seems my phone has a 2100 mAh battery 08:54:22 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:38 ouch 08:54:57 my phone only has a 1250mAh battery 08:55:40 1320 mAh BL-5J on the N900. 08:55:56 hm how does this translate to mWh, which is what ACPI on my laptop reports: 08:56:00 design capacity: 51830 mWh 08:56:00 last full capacity: 48720 mWh 08:56:18 you multiply by the volts, I think 08:56:34 the mWh or the mAh? 08:56:43 design voltage: 10800 mV 08:56:45 A*V = W 08:56:59 olsner, shouldn't I divide by the voltage then? 08:57:13 depends on which number you do it on 08:57:16 or does the h bit change that 08:57:33 olsner, well I don't know the voltage on my phone, so lets translate the laptop to mAh 08:57:47 I think Wh is a better comparison though 08:57:54 hm okay 08:58:20 50Wh, 11V, that's about 5Ah 08:58:21 hm I guess ARM doesn't use ACPI 08:58:32 soundnfury, thanks 08:59:07 * soundnfury doesn't like the use of Ah and Wh 08:59:16 they're just big numbers of C and J 08:59:20 urgh the phone adb shell seems to believe my terminal is 80 columns wide 08:59:31 the issue is the path is like 70 chars wide 08:59:46 soundnfury, I agree 08:59:47 Vorpal: try setting $COLUMNS? 09:00:02 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:17 ah yes 09:00:26 soundnfury, adb = android debug bridge 09:00:40 soundnfury, it is used when developing for android. In this case I ran adb shell 09:00:50 so I ran a shell on my phone over the usb cable to it 09:01:38 People who bother meddling around with N900 development generally just do USB networking and SSH in over that. 09:01:49 fizzie, USB networking? 09:02:16 you can do networking over usb? 09:02:19 is that a standard? 09:02:22 Yes. 09:02:26 I knew you could do ethernet over firewire 09:02:29 but usb? 09:03:08 Yes. 09:03:12 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 (in /sys/devices/platform/samsung-battery/power_supply/battery) 09:03:30 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 You'll need a special sort of a cable to do USB networking for two "hosts", though. 09:03:55 But the phone is normally... the opposite of a host, I forget which term the USB folks use. 09:04:01 USB over ethernet is standardized 09:04:03 fizzie: I hope you're not suggesting the use of a double-A-jack cable? 09:04:04 ...er 09:04:08 Ethernet over USB 09:04:27 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:28 USB /always/ has a master and a slave 09:04:30 them's the rules 09:04:31 speaking of special sorts of cables, I should get an USB on the go cable 09:04:38 Yeah. Great. Good work brain 09:04:39 found out* 09:04:52 from what I read, for an android phone my phone has exceptionally good USB support 09:05:12 soundnfury: No, they make cables with electronics on it to make that sort of stuff properly work. 09:05:12 someone hooked up an xbox controller to the same model and got it working for example 09:05:23 or was it PS3? 09:05:25 anyway 09:05:30 It's not a cable anymore in that case. 09:05:37 It's a device that appears as a slave to two hosts at the same time. 09:05:40 Well, that's arguable. 09:05:50 Well it might look like a cable 09:05:56 Chips can fit inside the plugs these days 09:06:00 If it quacks like a duck... 09:06:11 But from a USB viewpoint it's a device. 09:06:16 heh 09:06:19 Well it quacks like a duck when your system sees it 09:06:24 why would anyone want to do that though? 09:06:26 As a slave device, from both ends 09:06:47 so really it's a "router" that's a USB slave to two hosts 09:06:54 that feels dirty somehow 09:06:56 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:03 Vorpal: Nokia N900 09:07:07 ah 09:07:09 as though the router should be the host and the PCs the slave 09:07:16 is that just network sharing over usb? 09:07:24 Well it can be used for that 09:07:32 But it's a proper network interface 09:07:37 ifconfig away and do whatever you want with it. 09:08:00 For 3G sharing it offers PPP over USB serial though 09:08:12 Because the stripped down kernel on it doesn't even have iptables 09:08:14 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 well I get an usb0 when I enable tethering with usb on my phone 09:08:25 oh well 09:08:50 since I rooted my phone I decided to take a look at iptables 09:08:52 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 I suppose some phones might use that by default for network sharing. 09:09:01 it turns out that probably all ICS devices have iptables 09:09:12 ...at once point I was writing some kind of custom pipe thing to get interwebs over there without iptables 09:09:15 but 09:09:15 because it does the "network usage per app" thing that is new in ICS by iptables rules 09:09:34 Vorpal: Do you get a /dev/ttyUSBx device too, or just the usb0 interface? 09:09:36 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 (That's what it did with GPRS on my old phone) 09:09:45 fizzie, sec, will turn the thing on again 09:10:01 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 Lumpio-: I think the latter. 09:10:22 fizzie, no /dev/ttyUSB* 09:10:23 Me too 09:10:36 You could check whether you get pppd processes around when you share interwebs like that. 09:10:45 Or well PPP and AT commands and all that 09:10:54 But I don't really need to share interwebs with it anymore. 09:10:55 fizzie, on the phone? 09:11:01 I got a laptop with built-in 3G 09:11:26 nice 09:11:39 can the N900 do sharing by acting as a wifi AP too? 09:11:48 Yes, IIRC. 09:11:52 Never tried it, though. 09:11:58 And probably not out-of-the-box. 09:12:10 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 Well, at least for an ad-hoc network. 09:12:40 I'm not entirely sure the driver/hardware can do a regular AP. 09:12:58 ah 09:13:29 Haven't investigated, really. 09:13:34 hm there is an option for wifi direct in this menu too, whatever that is 09:14:16 also a DLNA option, again no clue what it is. says "share your media files with nearby devices via DLNA" though 09:14:36 there are also some options for NFC in that menu 09:15:00 fizzie, anyway does the n900 have a front facing camera? 09:15:03 I think it can be put in AP mode 09:15:09 Vorpal: Yes, but it's horrible. 09:15:11 But as there's no iptables, you need extra software to do routing... 09:15:12 oh 09:15:16 Quality-wise, that is. 09:15:20 I've only used it in ad-hoc mode myself 09:15:38 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 it actually works surprisingly well 09:16:00 The front camera is actually pretty good on the N900 09:16:05 ...as an entropy source for RNGs 09:16:18 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 doesn't work in a totally dark room, or if you look at the phone at too much of an angle 09:16:28 but other than that, it works pretty well 09:16:37 Hardware revision? 09:16:45 I think some software said the picture quality depends on *software* revision lol 09:16:49 How the hell would that even happen 09:16:58 different firmware? 09:17:08 I think my front facing camera does more than that 09:17:12 let me find the resolution for it 09:17:42 "1.9 MP, 720p@30fps", not sure about the resolution 09:18:25 1280x960 seems to be standard for front facing camera, and 1392x1392 is max 09:18:34 curious with a square camera 09:18:53 the back camera does 3264x2448 09:19:01 1280x720 is the "standard" 720p square-pixel size. 09:19:13 So I guess they wanted the resolution to be > than that. 09:19:13 ah 09:19:18 right 09:19:26 fizzie, I guess maybe for the anti-shake feature 09:19:30 they want a bit of leeway 09:19:51 since I doubt it has a physical anti-shake (like my Minolta Dimage A2 does) 09:20:17 (you can hear the anti-shake motor when you take an exposure with that option turned on) 09:20:31 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:56 heh 09:20:59 It's related to what PC Suite does normally to speak with the phone. 09:22:37 I believe 720x1280 is the phone screen resolution on my phone btw 09:22:48 though it is pentile 09:23:26 the dpi is high enough that you can't really notice that the screen is pentile though 09:24:14 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 I think the N9 screen had one of those RGBG things too. 09:25:33 what is the DPI on that thing? 09:26:03 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 It's something smaller, since it had a 854x480 screen. 09:27:06 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 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:28:37 well yes 09:36:01 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 It's not exactly something that would get mentioned on the manual, perhaps. 09:58:04 -!- azaq23 has quit (Quit: Leaving.). 10:01:06 fizzie, there is an issue with doing that, in that not all those subpixels are sensitive to all the light 10:01:30 due to colour filters or whatever 10:01:45 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 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 dcraw has a no-interpolation mode for if you're actually photographing something black-and-white. 10:43:32 fizzie, heh 11:18:21 oops. 11:18:28 my toNAND is a little bit bloaty :D 11:18:41 mroman, toNAND? What does that do? 11:18:44 toNAND on p => q 11:18:45 gives 11:18:56 !(!(!(!(!(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 oh, so not flashing to NAND-style flash? 11:19:10 right 11:19:20 also yeah that seems sub-optimal 11:19:21 it transforms a term into just NAND-Terms. 11:19:40 mroman, how does it do that? 11:20:12 http://codepad.org/BfTFj88J <- that way. 11:20:27 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 dammit, any idea what those are called? 11:21:20 shanon? 11:21:27 hm no 11:21:29 something else 11:21:35 de morgan? 11:21:46 shanon is a generalization of de morgan. 11:21:48 no... that is a law 11:21:52 Karnaugh 11:21:53 that's it 11:21:55 ah 11:21:58 Karnaugh diagrams. 11:22:01 yep 11:22:02 those 11:22:05 yes... they can be used for simplifications. 11:22:25 mroman, and to convert to specific forms (depending on if you circle the zeros or the ones) 11:22:37 but something is wrong else. 11:22:40 forgot which circling yielded what type of expression 11:22:40 p || q gives me 11:22:49 !(!(!(!(p && p) && !(q && q)) && !(!(p && p) && !(q && q))) && !(!(!(p && p) && !(q && q)) && !(!(p && p) && !(q && q)))) 11:22:54 which is too bloat for just an or. 11:23:14 im guessing some toNAND $ are uneccessary 11:23:15 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:16 XD 11:23:29 that is the only time I ever used Karnaugh diagrams outside that course 11:23:38 toNAND (p :| q) = toNAND (ENot (ENot ((toNAND p) :| (toNAND q)))) 11:23:43 ^- that first toNAND is bloat. 11:23:55 mroman, what is ENot? 11:23:58 :t ENot 11:23:59 Not in scope: data constructor `ENot' 11:28:27 *Main> toHuman . toNAND $ EAny 'p' :=> EAny 'q' 11:28:28 "!(!!(p && p) && !q)" 11:28:31 perfect. 11:28:49 *Main> shortest' . reduce $ toNAND $ EAny 'p' :=> EAny 'q' 11:28:50 (8,"(p => q)",EAny 'p' :=> EAny 'q') 11:29:00 Vorpal: It's not a predefined haskell thing. 11:29:03 @ENot 11:29:03 Unknown command, try @list 11:29:30 ok not perfect. 11:29:33 !q is not legal. 11:31:53 !q would use a NOT-Gate instead of just NAND-Gates. 11:33:38 p => q -> !(!(!(p && p) && !(p && p)) && !(q && q)) 11:34:31 Vorpal: https://github.com/FMNSSun/hs-experiments/blob/master/rewrite.hs#L419 11:41:56 http://codepad.org/X5HSlpTR <- I use it for fun ;) 11:52:45 -!- boily has joined. 12:29:47 a => (b => a) is to my surprise a tautology. 12:51:22 -!- ogrom has joined. 12:55:31 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 "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 http://philosophy.hku.hk/think/fallacy/fallacy-list.php 15:05:22 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 But there are fallacies where people wrongly think there are only two options 15:05:47 :/ 15:12:09 Sgeo: "either X or Y" is "evidence for X" 15:40:42 Sgeo, that follows from the law of excluded middle in a logic which include that law 15:40:53 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:01:06 Hello! 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:16 Taneb, hi 18:19:30 Is it right to say that, in Haskell, if you have f :: (), there are two possibilities for it, f = () and f = f? 18:19:50 bbiab 18:19:57 define:bbiab 18:20:01 be back in a bit 18:20:09 Thanks, Sgeo 18:20:13 And I think f = _|_ is a clearer way of putting it 18:20:15 You're welcome 18:20:23 That works too 18:20:45 I'd say there's two possibilities, but only one possible value. Is that right? 18:21:00 Don't ask me about terminology 18:21:03 f = () is the only fully defined possibility, but f = f and f = undefined and f = error "42" are other possibilities 18:21:20 So I would also say there is only one possible value. 18:21:49 I'm trying to teach myself, for fun, without the use of any tutorial, how to write a compiler 18:21:59 With 0x10c's DCPU as the target platform. 18:22:05 I've picked a bad language to compile 18:22:36 You didn't mention the language. Or was it Haskell? 18:22:51 Yes, it's Haskell 18:23:16 I think I'm trying to do way too much in compile-time 18:23:23 brb, thirsty 18:23:41 ...........I wonder if the thing that ais523 and I proved is provable with Coq 18:23:51 Taneb: Trying to do too much in compile-time? No, you are not. 18:24:24 *Trying to do too much in compile-time you are not. 18:24:44 Hmm 18:24:51 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 Yes, it's Haskell <-- trying to compile haskell? you crazy? 18:25:49 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 Maybe you could compile something simpler, that's what most people do, I'd say. 18:27:36 Perhaps MIBBLLII? 18:27:53 Am I mad? 18:28:15 You're dead-set to compile something lazy and as different from the resulting machine code that is physically possible? 18:28:35 MIBBLLII isn't necessarily lazy 18:28:41 But yes 18:28:53 Compile LLVM 18:29:06 I figure I mayswell dive in at the deep end and try not to drown 18:30:07 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 Seeing as this, for now, is but a hobby. 18:31:05 For gods' sake, I'm writing a compiler for a platform that is from an unreleased video game! 18:31:29 the one from minecraft's creator? 18:31:50 Yeah, that's the one 18:32:26 Wow, when I type "p" in chrome, the top result is the spec for the DCPU 18:32:38 Second is "prime factors of 421" 18:32:44 iirc, it's prime in of itself 18:32:55 Maybe it's personalized for you. 18:33:14 "P-magazine | Elke dinsdag het vuur aan de lont!" is my current top result. 18:33:20 I'd hate it to be personalised for someone else 18:34:15 "Uitgeverij P poëzie kunst geschiedenis creatief leuven" is #2. 18:34:42 I don't know what any of that means. 18:35:03 Taneb, UPDATE 18:35:26 something about a publisher of poetry, art, something and creative living 18:35:26 WHAT HAPPENED TO HIATUS 18:35:36 (guessing) 18:35:55 but I mean, dutch - how hard can it be? 18:38:18 Taneb, was going to be an update on 11th or before 18:38:28 Hiatus presumably back on, waiting for EoA6A3 18:38:42 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:44 brb again 18:38:56 Dutch so far has been rather easy to decode, that's true. 18:39:26 Dutch is just English with a funny accent. 18:39:43 There's quite a bit of German in there. Or is that just more English with a different accent? 18:40:07 I think it's an english/german/scandinavian hybrid 18:40:28 or maybe it's equally similar to every language in the world 18:40:53 for some reason I think geschiedenis means separate 18:41:01 Pickpocket is "zakkenroller", a warning about them loops in some of the trains. 18:43:19 heh 18:43:27 nice word 18:43:49 for some reason I think geschiedenis means separate <-- does it though? 18:44:08 A kobold has zakkenrolled a potion from you. 18:44:10 Vorpal: one guess and suddenly I'm the authority on dutch? 18:44:27 olsner, sure 18:44:46 Taneb, I didn't even notice the additional pages 18:44:47 ok then, it does mean that and I know because I'm the dutchmaster 18:45:53 I knew it 18:46:06 Back 18:47:09 -!- boily has joined. 18:48:46 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 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 Sgeo... that update... 18:53:08 -!- Frooxius|TabletP has joined. 18:53:29 First I don't notice the ==> 18:53:36 Then, page 7150 breaks my browser 18:53:49 Sgeo, update to what? 18:53:56 Vorpal, Homestuck 18:54:01 ah 18:57:14 7150, if I had an iPhone, I'd want that as my wallpaper 19:00:45 7138 is taking so long to load 19:02:34 I must have got in before everybody else noticed 19:02:37 Thanks, Sgeo 19:02:41 what are you talking about? 19:02:53 Homestuck 19:03:16 One of the most esoteric web media projects out there (it's not a webcomic anymore.) 19:04:08 OK that entrance sequence still wasn't as good as the 2nd through 4th but it was close. 19:05:12 Taneb, what is it then? 19:05:21 Taneb, I haven't been keeping up with it 19:05:22 It's a web media project, duh. 19:05:23 A web multimedia project 19:05:39 well, it used to have the occasional flash every now and then before too? 19:05:55 It encompasses webcomics, music, short video games, pseudo-interactive fiction, and others 19:06:24 oh my god red dwarf references!!! 19:07:56 -!- Slereah has quit (Ping timeout: 245 seconds). 19:08:19 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 red dwarf references!? where !? 19:08:32 Phantom_Hoover, what is red dwarf? 19:08:39 Vorpal, fuck off 19:08:43 Vorpal: what are you downloading from mediafire? 19:08:43 what? 19:08:43 olsner, homestuck 19:09:12 olsner, a zip file 19:09:35 Vorpal, Red Dwarf was a sci-fi TV series. 19:09:38 Also a kind of star 19:09:42 Vorpal: is it amateur porn you got linked from 4chan or something? 19:09:46 Taneb, I know the latter meaning 19:09:52 olsner, no it is a boring android related thingy 19:10:03 Vorpal: boring 19:10:23 amateur android porn? 19:10:30 sounds awesome 19:11:43 (the androids are not paid to be androids, ofc) 19:12:10 also ok this is now my joint third favourite entrance sequence 19:14:11 Tell me when it reaches first 19:15:38 sorry 19:15:56 it cannot beat rose's or jade's 19:16:19 especially not rose's because it represents my single favourite point in homestuck 19:16:41 By which I mean it's my favourite 19:16:54 sorry you are wrong 19:16:55 I'm not here to enforce my opinions. 19:17:09 I also almost wrote "here" twice in that sentence 19:17:11 obviously, they're so wrong 19:30:04 -!- oerjan has joined. 19:34:00 -!- ogrom has quit (Quit: Left). 19:36:06 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 TeX: the original programming language. that xkcd about the universe being written in perl and lisp was just propaganda. 19:38:12 But it might not necessarily work if you use one of the programs other than "tex" (such as "pdftex", "latex", etc). 19:42:15 Now the X and Y types I have written about yesterday, I have called Decompose and Recompose. 19:43:39 I have made those and other things available in "for-free" package. 19:47:32 oerjan: ah, but TeX was written in WEB, and Don Knuth himself is actually written in XSLT (yeah, I was shocked too) 19:48:08 makes sense. 19:49:02 What's XSLT written in? (dun dun DUN) 19:49:10 Unicorns. 19:49:33 11:23:38: toNAND (p :| q) = toNAND (ENot (ENot ((toNAND p) :| (toNAND q)))) 19:49:36 11:23:43: ^- that first toNAND is bloat. 19:50:13 try with toNAND (p :| q) = toNAND (ENot (ENot p :& Enot q)) 19:50:38 -!- ais523 has joined. 19:50:48 :t fix 19:50:49 forall a. (a -> a) -> a 19:51:02 mroman: ^ 19:51:13 What? 19:51:19 I was just thinking aloud 19:51:30 ...i wasn't talking to you 19:51:50 I misparsed your caret 19:51:57 :t fix (\r a -> if a == 0 then 1 else r (a - 1)) 19:51:58 forall a t. (Num a, Num t) => a -> t 19:52:09 > fix (\r a -> if a == 0 then 1 else r (a - 1)) 10 19:52:11 1 19:52:19 > fix (\r a -> if a == 0 then 1 else a * r (a - 1)) 10 19:52:20 3628800 19:52:45 @pl fix (\r a -> if a == 0 then 1 else a * r (a - 1)) 19:52:45 fix (ap (flip if' 1 . (0 ==)) . ap (*) . (. subtract 1)) 19:52:53 Stupid ugly code 19:53:06 But pointless recursive factorial! 19:53:15 some combination of fix and zip`ap`tail should work 19:53:26 :t zip `ap` tail 19:53:27 forall b. [b] -> [(b, b)] 19:53:40 Taneb: Now write a recursive factorial in Eniuq 19:53:46 :t zipWith (*) `ap` tail 19:53:46 > zip `ap` tail $ [1,2,3] 19:53:48 [(1,2),(2,3)] 19:53:48 forall a. (Num a) => [a] -> [a] 19:54:04 soundnfury, I know not what Eniuq is 19:54:10 (Disclaimer: May not be possible. Management accepts no liability for loss of sanity. Brains parked at owners' risk.) 19:54:15 ...it's quine backwards, that's what it is 19:54:16 http://esolangs.org/wiki/Eniuq 19:54:35 It's my latest esolang, is what it is 19:54:49 unfortunately I'm not crazy enough to be able to write programs in it 19:55:02 I'm crazy 19:55:05 I'll give it a go 19:55:18 it took me three hours to write unary.en 19:55:31 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 > fix$(<$>)<$>(:)<*>((<$>((:[{-odd-}])<$>))(=<<)<$>(+)<$>(+)1)$1 19:56:33 [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:11 Gesundheit! 19:57:54 Do you like the format of the ITMCK manual so far? 19:58:27 (that right there is probably the most useful haskell program I've ever written) 19:59:15 olsner, have you seen my interactive factorial program? 19:59:26 It's the most controversial Haskell program on Uncyclopedia 19:59:32 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 oerjan: Well, I agree, there is two possibilities but only one possible value. 20:00:26 Two possibilities in a practical sense, one value in a theoretical sense 20:00:27 Actually there are more than two possibilities. 20:00:55 Ignoring any output to stderr 20:00:59 Taneb: I think I have not, where is it? 20:01:06 Taneb: no, there are >= 2 values in the theoretical sense. haskell uses denotational semantics. 20:01:14 olsner, uncyclopedia.wikia.com/wiki/Talk:Haskell 20:01:21 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 " the Zygohistomorphic Prepromorphism section is outdated and wrong. The real code is ..." :D 20:02:02 But the only proper value would be f = () 20:02:33 Taneb: oh, the one with all the <*> and unsafeCoerces? 20:02:37 Yeah 20:02:45 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 It seem to me that it is like the SK combinators 20:02:55 Where bigger means more than about 8 or 9 20:03:05 zzo38, that is EXACTLY how it works 20:03:43 I initially wrote it in SKI, then translated and fixed compily errors 20:04:43 Hey, Christopher Eccleston is on 20:04:48 Yes that is what it looks like to me. 20:05:37 Three pures, one (<*>), and the only print each have an explicit type signature 20:06:46 This is because the unsafeCoerces confues GHC, and presumably every other Haskell compiler 20:07:18 I think a couple of unsafeCoerces can be replaced by id 20:07:36 you probably have a few unnecessary parens there, have you tried minimizing them? 20:08:03 That was an earlier version, I'm not sure where the final one has got to 20:08:27 And yes, I did 20:10:50 -!- Nisstyre has quit (Ping timeout: 246 seconds). 20:16:15 zzo38: ITMCK? 20:17:59 -!- augur_ has quit (Remote host closed the connection). 20:18:07 oerjan: That wont work. 20:18:15 p might be an expression containing another or ;) 20:18:20 but I already fixed it. 20:18:26 soundnfury: http://repo.or.cz/w/ITMCK.git https://devlabs.linuxassist.net/projects/itmck are two webpages with information. 20:18:32 I also added support for xor 20:18:38 and noImplication, noEqu, noXor 20:18:45 But I can send the files directly too if you want specific files. 20:18:50 so that (((a == b) ^^ c) => d) (^^ is xor) 20:18:52 translates to 20:19:00 (!((!!((!a && b) || (a && !b)) && c) || (!((!a && b) || (a && !b)) && !c)) || d) 20:19:04 Isn't noEqu Xor? 20:19:14 noEqu uses xor, yes. 20:19:16 well 20:19:20 xnor to be specific. 20:19:38 In Haskell you can use /= for boolean XOR. 20:19:57 but it directly translates to what noXor would. 20:20:01 XOR is 0110; XNOR is 1001. XNOR is what I'd call Equ using your convention 20:20:03 *Main> toHuman . noEqu $ EAny 'a' := EAny 'b' 20:20:04 "!((!a && b) || (a && !b))" 20:20:23 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 Still the biggest issue is toNAND :( 20:20:34 Finished Deus Ex. 20:20:42 *Main> toHuman . toNAND . noEqu $ EAny 'a' := EAny 'b' 20:20:43 "(!(!(!(!(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 It just looks way too bloat :D 20:21:01 ion, I read that is Finnish Deus Ex, as the reason to soundnfury's moan 20:21:08 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 *Main> shortest' . reduce . toNAND . noEqu $ EAny 'a' := EAny 'b' 20:22:01 (8,"(a == b)",EAny 'a' := EAny 'b') 20:22:14 ^- but it's cleary a valid and equivalent only-nand logic expression :) 20:22:32 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 However literate Haskell codes can also have \begin{code} \end{code} so you would highlight those too. 20:23:00 yeah but my question is, what kind of pervert uses Literate Haskell? 20:23:09 zzo38, it's plaintext dyed blue, iirc. Haddock docs are green, maybe? 20:23:11 < mroman> p might be an expression containing another or ;) <-- i don't see the problem. 20:23:19 ;P 20:23:20 soundnfury: I sometimes use it. 20:23:20 well 20:23:22 soundnfury, about half the haskell users in this channel 20:23:32 It's useful for blogging etc 20:23:33 oerjan: An or is not a NAND. 20:23:38 * soundnfury does not like haskell, had you guessed? 20:23:53 If you don't like Haskell that is OK you do not have to use it. 20:23:53 Get out. (jk) 20:23:56 The idea is, to translate a logic expression to NAND so that 20:24:08 you can build it as a digital circuit only using NAND Gates. 20:24:09 (I'm still not here to force my opinions on people) 20:24:21 zzo38: yeah, but I have to read it all the time in this channel ;P 20:24:29 tell you what 20:24:29 that means: No or, no not... only NAND. 20:24:39 I think that was what made me learn it, soundnfury 20:24:46 next time someone posts a Haskell code snippet, I'll post some Z80 m/c 20:24:47 !a is !(a && a) for example. 20:24:50 That and I sucked at Python 20:24:58 because !a is not NAND-only. 20:25:05 OK post some Z80 m/c if you have something to write about it 20:25:25 soundnfury: Do you like ITMCK? Do you like TeX? Do you like LLVM? 20:25:48 oerjan: An or is not a NAND. <-- you noted that my expression says to reapply toNand to everything, right? 20:26:30 toNAND (p :| q) = toNAND (ENot (ENot p :& Enot q)) does not apply toNAND to p or q 20:26:38 *nor 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 zzo38: Dunno about ITMCK, I prefer beeper audio demos though chiptune is nice too. SIDs suck though. 20:27:04 I certainly do like TeX, although I'd write a program manual in either XHTML or (better) troff -man 20:27:09 Do you like PPMCK? 20:27:15 also 20:27:20 I had never heard of PPMCK before today 20:27:26 I know almost nothing about LLVM 20:27:46 PPMCK is a program to create .NSF musics 20:27:48 p || q -> !(!p :& !q) is not NAND only. 20:28:08 NSF := "Not So Fast!" 20:28:14 Currently I'm using toNAND (p :| q) = (ENot $ toNAND (ENot ((toNAND p) :| (toNAND q)))) 20:28:26 mroman: yes it does, it should become ENot (toNAND (ENot p) :& toNAND (ENot q)) in the next step 20:28:28 ncurses! foiled again! 20:28:33 .NSF musics is musics for NES/Famicom. 20:28:34 hm. 20:28:37 I'll try that. 20:28:53 * soundnfury is more in the Spectrum scene 20:29:04 never learned much about the Famicom 20:29:12 except for the "Famichord" 20:30:10 soundnfury: about you spectrum lisp implementation. why wouldn't (lambda (args) (foo)) work instead of (lambda arg (foo))? 20:30:46 oh, um, because that would be hard 20:31:11 but you could go ((lambda arg (foo)) (args...)) 20:31:18 ie. you can pass a list as the argument 20:31:32 but then (foo) has to extract the individual arguments from that 20:31:55 oerjan: Still pretty bloat :) 20:32:33 http://codepad.org/LeaJjhFp <- output of that. 20:32:33 mroman: well there are limits, iirc xor and equ are bloated when expressed in nand 20:32:43 soundnfury: Have you written any music? 20:33:10 oerjan: It's also bloat because I only allow binary :& 20:33:23 in real life you have nand gates with more than just two inputs. 20:33:45 yeah 20:35:13 and now it's broken :( 20:35:47 mroman: um are you sure you gave the right paste? 20:36:52 toNAND (p :| q) = toNAND $ (ENot $ toNAND (ENot p :| q)) is definitely wrong 20:37:24 how so? 20:37:48 the last ENot only affects the p 20:37:55 ah yeah. 20:38:44 your suggestion is 20:38:47 toNAND (p :| q) = (ENot $ toNAND (ENot p :| ENot q)) 20:39:03 what if toNAND returns something in the form of ENot (...)? 20:39:04 no. 20:39:09 then you got ENot $ ENot $ 20:39:13 whis is not NAND-only. 20:39:16 *which 20:39:32 my suggestion is toNAND (p :| q) = Enot $ toNAND (Enot p) :& toNAND (Enot q) 20:39:47 *ENot 20:40:22 hm yeah 20:40:30 :| is wrong anyway :D 20:41:09 it's just about applying deMorgan's law in the right places, really 20:41:44 Yes. 20:42:43 zzo38: you mean chiptune, or in general? 20:42:48 It still gets bloated way out of proportion :) 20:43:09 but that's most certainly due to the binary and. 20:43:11 as just a simple 20:43:14 (!(a && b) && c) 20:43:25 gets bloated too !(!(!(a && b) && c) && !(!(a && b) && c)) 20:43:46 Now If you add a && d 20:43:48 you get 20:43:56 !(!(!(!(!(a && b) && c) && !(!(a && b) && c)) && d) && !(!(!(!(a && b) && c) && !(!(a && b) && c)) && d)) 20:44:01 soundnfury: In general (but including chiptune too) 20:44:14 in general, there's a page on my site 20:44:30 But that's good enough for now. 20:44:31 http://jttlov.no-ip.org/music.htm 20:44:43 As long as it guarantees that the term only contains NAND, it does its job :) 20:45:07 chiptune-wise, I tried writing some AY music with SoundTracker about 5 years ago, but most of it was shoite :) 20:46:42 What is AY music and SoundTracker? 20:46:58 if you allow non-binary NAND, then ENot becomes just a single-argument NAND 20:47:36 zzo38: AY == General Instruments AY-3-8912 20:47:49 the sound chip in the 128k ZX Spectrum 20:48:08 SoundTracker was a piece of Speccy software for writing AY tunes 20:48:18 which you can probably find on World of Spectrum 20:49:37 oerjan: That would require too much code change 20:49:47 because then EBool :& EBool is no longer usable. 20:50:09 but toNAND was actually not my intended goal. 20:50:15 it was just a side experiment. 20:50:21 so I'm going to leave it there. 20:50:26 ok 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:40 Goodnight, guys 20:56:41 -!- Taneb has quit (Quit: Leaving). 20:57:06 I probably should remove rules changing stuff to implication or xor :) 20:57:42 p xor q is smaller than (!p && q) || (p && !q) but it pretty much 20:57:47 ruins other rules after that :D 21:02:09 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 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 yeah, they should have used a nice sensible condition?yes:no like C 21:15:24 or "don't do unless not or die()", like perl :P 21:15:58 how does that work? 21:16:02 dunno 21:16:06 it's perl 21:16:28 which does in fact have an "unless" statement 21:16:52 nortti: a if b else c is pretty cool. 21:16:55 and generally lets you put conditions before, after, or in compromising acts with statements 21:17:40 mroman: a, b and c refer to what in that expression 21:18:41 or maybe forth like condition if if_true then / condition if if_true else if_false then 21:18:54 well 21:19:00 its a IF b else c 21:19:07 thats pretty like an english sentence 21:19:22 mroman: trying to be like english just gets you COBOL 21:19:27 "Go home" if "it rains" else "stay here" 21:19:31 soundnfury: Good point. 21:19:35 I tried to learn COBOL 21:19:37 but I failed. 21:19:50 good 21:19:51 It's just a damn fucking stupid language. 21:19:53 to learn COBOL is to fail 21:20:08 I mean srsly 21:20:14 It was supposed to be easy. 21:20:22 but it's the total opposite of it. 21:20:26 It's worse than SQL 21:20:26 mroman: it is just bit irritating when nesting if expressions 21:20:30 http://www.coboloncogs.org/ 21:20:52 hell it's worse than brainfuck. 21:27:53 I actually can't find the real words to describe how much it sucks. 21:28:16 I tried 7 minutes now. But it's not possible. 21:29:16 s/real/right 21:30:58 is Sgeo trying to learn cobol again 21:31:08 No, actually 21:31:14 oh 21:31:15 who# 21:31:33 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 Tcl is actually fairly enjoyable, if decidedly odd. 21:32:13 why id tcl not liked well? 21:32:18 nortti: Because it's odd. 21:32:38 ok 21:32:51 is lisp well liked? 21:32:55 or forth? 21:33:04 forth no 21:33:08 lisp yes. if it runs on jvm. 21:33:25 allthough it's not called lisp anymore ;) 21:33:28 -l 21:33:43 -!- asiekierka has quit (Remote host closed the connection). 21:33:56 clojure? 21:34:05 what about scheme? 21:34:23 the word "clojure" always looks faintly visceral and pornographic to me 21:34:51 Do I have to look up visceral in a dictionary? 21:34:55 Or is it not worth it? 21:35:03 it's like guts and stuff 21:35:54 @help dict 21:35:54 I perform dictionary lookups via the following 13 commands: 21:35:54 all-dicts ... Query all databases on dict.org 21:35:54 devils ...... The Devil's Dictionary 21:35:54 easton ...... Easton's 1897 Bible Dictionary 21:35:54 elements .... Elements database 21:35:56 [9 @more lines] 21:35:57 intestines. 21:36:01 @dict visceral 21:36:01 Supported dictionary-lookup commands: 21:36:02 all-dicts devils easton elements foldoc gazetteer hitchcock jargon lojban vera web1913 wn world02 21:36:02 Use "dict-help [cmd...]" for more. 21:36:07 oops 21:36:16 @wn visceral 21:36:17 *** "visceral" wn "WordNet (r) 3.0 (2006)" 21:36:17 visceral 21:36:17 adj 1: relating to or affecting the viscera; "visceral 21:36:17 bleeding"; "a splanchnic nerve" [syn: {visceral}, 21:36:17 {splanchnic}] 21:36:19 2: obtained through intuition rather than from reasoning or 21:36:21 observation [syn: {intuitive}, {nonrational}, {visceral}] 21:36:41 @wn viscera 21:36:41 *** "viscera" wn "WordNet (r) 3.0 (2006)" 21:36:42 viscera 21:36:42 n 1: internal organs collectively (especially those in the 21:36:42 abdominal cavity); "`viscera' is the plural form of 21:36:42 `viscus'" [syn: {viscera}, {entrails}, {innards}] 21:36:45 That's more interesting ;) 21:37:28 @devil BSD 21:37:29 Error: 550 invalid database, use SHOW DB for list 21:38:13 @all-dicts BSD 21:38:13 *** "bsd" vera "V.E.R.A. -- Virtual Entity of Relevant Acronyms (June 2006)" 21:38:13 BSD 21:38:13 Berkeley System / Software Distribution (manufacturer, Unix, OS) 21:38:13 21:38:13 *** "bsd" vera "V.E.R.A. -- Virtual Entity of Relevant Acronyms (June 2006)" 21:38:15 [46 @more lines] 21:38:59 @jargon BSD 21:39:00 *** "bsd" jargon "The Jargon File (version 4.4.7, 29 Dec 2003)" 21:39:00 BSD 21:39:00 /B?S?D/, n. 21:39:00 21:39:00 [abbreviation for ?Berkeley Software Distribution?] a family of {Unix} 21:39:02 [10 @more lines] 21:43:12 @devils BSD 21:43:13 Error: 550 invalid database, use SHOW DB for list 21:43:57 -!- stanley has quit (Ping timeout: 255 seconds). 21:44:01 blah 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 Channel = (channelvariable-1) & 63 ; Channel is 0 based. 22:35:22 Why does it work like that? 22:36:52 Like what? 22:39:07 there are probably some dried grapes involved, madly laughing 22:41:51 :t mapMaybe 22:41:53 forall a b. (a -> Maybe b) -> [a] -> [b] 22:45:01 :t find 22:45:05 forall a. (a -> Bool) -> [a] -> Maybe a 22:46:11 :t map 22:46:13 forall a b. (a -> b) -> [a] -> [b] 22:46:44 -!- copumpkin has joined. 22:50:48 > 26^5 22:50:50 11881376 23:06:10 Compose (Decompose g f) g = f 23:08:35 It works! 23:18:06 lolol 23:18:11 $ rsync -azvX My\ Music/ quint@74.117.158.92:musics 23:18:14 sending incremental file list 23:18:16 ./ 23:18:19 02 Hornpipe.mp3 23:18:21 Write failed: Broken pipe 23:18:34 how to fix a broken hornpipe? 23:36:09 -!- pikhq_ has joined. 23:36:22 -!- pikhq has quit (Ping timeout: 250 seconds). 23:49:19 quintopia, horn? 23:51:18 ;) 23:57:46 Is it reasonable to want to make a non-eggdrop bot in Tcl?