--- Log opened Fri Dec 20 00:00:13 2013 |
--- Day changed Fri Dec 20 2013 |
00:00 | | jeroud [sid10043@Nightstar-a1k27g.irccloud.com] has joined #code |
00:00 | | ToxicFrog [ToxicFrog@Nightstar-gtjrvq.dsl.teksavvy.com] has joined #code |
00:00 | | Derakon [Derakon@Nightstar-4k2ccr.ca.comcast.net] has joined #code |
00:00 | | Vornicus [vorn@Nightstar-sn7kve.sd.cox.net] has joined #code |
00:00 | | ServerMode/#code [+aoaoqo ToxicFrog ToxicFrog Derakon Derakon Vornicus Vornicus] by *.Nightstar.Net |
00:10 | | Orthia [orthianz@Nightstar-avg.1ee.224.119.IP] has quit [Ping timeout: 121 seconds] |
00:11 | | Orthia [orthianz@Nightstar-avg.1ee.224.119.IP] has joined #code |
00:11 | | mode/#code [+o Orthia] by ChanServ |
00:28 | <@gnolam> | Arrgh. |
00:29 | <@gnolam> | "The sqlite3 module is not built with loadable extension support by default" |
00:29 | <@gnolam> | Well of course not. Because that would be fucking useful. |
00:29 | <@gnolam> | (And the worst thing is that the rationale is "because some platforms (notably Mac OS X) have SQLite libraries which are compiled without this feature)" |
00:30 | <@gnolam> | Nghghghgh |
00:31 | <@gnolam> | Seriously, WTF? |
00:32 | | * gnolam sighs, starts thinking about ditching the nice, clean database schema and implementing his own trees. |
00:40 | | Turaiel[Offline] is now known as Turaiel |
00:52 | | You're now known as TheWatcher[T-2] |
00:58 | | You're now known as TheWatcher[zZzZ] |
01:11 | | Turaiel is now known as Turaiel[Offline] |
02:00 | | Thalass|dinnar is now known as Thalass |
02:39 | | Thalass [thalass@Nightstar-bce70i.eastlink.ca] has quit [[NS] Quit: arg] |
02:52 | | * McMartin looks at GPU-Z |
02:53 | <&McMartin> | There's about 10 degrees Celsius difference between reported GPU termperature depending on whether it's looking at the graphics driver or at the ADT7473 sensor chip |
02:53 | <&McMartin> | The PCB temperatures are more in-line with each other, though. |
03:18 | <&McMartin> | Hm |
03:18 | <&McMartin> | Not in a gaming mood |
03:18 | <&McMartin> | Irritated at work |
03:18 | <&McMartin> | Maybe I'll write some unit tests after dinner |
03:24 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [[NS] Quit: Program Shutting down] |
03:37 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds] |
03:50 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code |
03:50 | | mode/#code [+o himi] by ChanServ |
04:07 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds] |
04:13 | | Vornicus [vorn@Nightstar-sn7kve.sd.cox.net] has quit [Connection reset by peer] |
04:16 | | Vornicus [vorn@Nightstar-sn7kve.sd.cox.net] has joined #code |
04:16 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
04:16 | | Reiv [NSwebIRC@Nightstar-95746c1f.kinect.net.nz] has quit [Ping timeout: 121 seconds] |
04:19 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code |
04:19 | | mode/#code [+o himi] by ChanServ |
04:26 | | Kindamoody[zZz] is now known as Kindamoody |
05:05 | | Derakon is now known as Derakon[AFK] |
05:21 | | Vornicus [vorn@Nightstar-sn7kve.sd.cox.net] has quit [Connection reset by peer] |
05:24 | | Vornicus [vorn@Nightstar-sn7kve.sd.cox.net] has joined #code |
05:24 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
05:35 | | RichyB [RichyB@Nightstar-c6u.vd5.170.83.IP] has quit [[NS] Quit: Gone.] |
05:38 | | RichyB [RichyB@Nightstar-c6u.vd5.170.83.IP] has joined #code |
05:45 | | ErikMesoy|sleep is now known as ErikMesoy |
06:37 | | Serah [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code |
06:39 | | Stalker [Z@Nightstar-484uip.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
06:40 | | Kindamoody is now known as Kindamoody|afk |
07:08 | | You're now known as TheWatcher |
07:50 | | celticminstrel [celticminst@Nightstar-gj43l1.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
08:07 | | You're now known as TheWatcher[afk] |
09:07 | | dmiles_afk [dmiles@Nightstar-hdcn1r.or.comcast.net] has quit [Connection closed] |
09:08 | | dmiles_afk [dmiles@Nightstar-hdcn1r.or.comcast.net] has joined #code |
09:48 | | You're now known as TheWatcher |
09:51 | | AverageJoe [evil1@Nightstar-fb1kt4.ph.cox.net] has joined #code |
10:23 | < Azash> | http://www.ifixit.com/Teardown/Steam+Machine+Teardown/20473 |
10:26 | | dmiles_afk [dmiles@Nightstar-hdcn1r.or.comcast.net] has quit [Connection closed] |
10:27 | | dmiles_afk [dmiles@Nightstar-hdcn1r.or.comcast.net] has joined #code |
10:52 | | AverageJoe [evil1@Nightstar-fb1kt4.ph.cox.net] has quit [[NS] Quit: Leaving] |
11:52 | | You're now known as TheWatcher[d00m] |
11:57 | | Vornicus [vorn@Nightstar-sn7kve.sd.cox.net] has quit [[NS] Quit: Leaving] |
12:37 | | You're now known as TheWatcher |
14:35 | | You're now known as TheWatcher[afk] |
14:37 | | AnnoDomini [Elite8361@Nightstar-rl3j3i.tl.libirc.so] has quit [Connection closed] |
14:47 | | AnnoDomini [Elite8361@Nightstar-rl3j3i.tl.libirc.so] has joined #code |
15:40 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds] |
15:53 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code |
15:53 | | mode/#code [+o himi] by ChanServ |
15:54 | | Serah [Z@Nightstar-484uip.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
16:24 | | celticminstrel [celticminst@Nightstar-gj43l1.dsl.bell.ca] has joined #code |
16:24 | | mode/#code [+o celticminstrel] by ChanServ |
16:26 | | Stalker [Z@Nightstar-ro94ms.balk.dk] has joined #code |
17:12 | <@Alek> | Azash: sweet |
20:02 | | Vornicus [vorn@Nightstar-sn7kve.sd.cox.net] has joined #code |
20:02 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
20:11 | | Derakon [chriswei@Nightstar-4k2ccr.ca.comcast.net] has joined #code |
20:12 | | mode/#code [+ao Derakon Derakon] by ChanServ |
20:12 | <&Derakon> | Man, publish/subscribe is the best thing ever. |
20:12 | <&Derakon> | I have no idea how I'd retain sanity in the design of this program without it. |
20:12 | <&Derakon> | No need to establish explicit relationships between abstract components! |
20:12 | <&Derakon> | Things can just put data out there and let it be consumed by whatever cares! |
20:14 | <~Vornicus> | hooray publish/subscribe |
20:22 | | * Syka publishes a box of cupcakes |
20:22 | | * Derakon subscribes to the event stream, consumes events. |
20:23 | | * Syka fills the event stream, blocks it with iced eventcakes |
20:23 | < Syka> | D: backpressure |
20:39 | | * Derakon idly does a LoC count for the microscope system, comes up with 14486, or 22291 counting device-specific code. |
20:39 | <&Derakon> | Strange, feels like it should be bigger somehow. |
20:40 | <&Derakon> | (3167/5006 lines of comments, respectively) |
21:13 | | Stalker [Z@Nightstar-ro94ms.balk.dk] has quit [Ping timeout: 121 seconds] |
21:49 | <@iospace> | and I just made my last commit at work. yay... |
22:01 | | Araleith [Araleith@Nightstar-gtjrvq.dsl.teksavvy.com] has joined #code |
22:02 | <&jerith> | Derakon: That's smaller than my work codebase. |
22:02 | <&Derakon> | Jerith: this is just one program of several that I write/maintain. |
22:03 | <&Derakon> | There's, uh, 125k LoC in files that end in ".py" in the repository. |
22:03 | <&jerith> | I actually meant "either of my two biggish work codebases". |
22:03 | <&jerith> | Yeah, that's bigger. |
22:03 | <&Derakon> | There's some degree of repetition in that though. |
22:04 | <&Derakon> | I think it's plenty for one guy to be responsible for. ._. |
22:04 | <&jerith> | Total Physical Source Lines of Code (SLOC) = 38,748 |
22:04 | <&Derakon> | "Physical"? |
22:04 | <&Derakon> | You aren't printing this out, are you~? |
22:04 | <&jerith> | As opposed to "logical". |
22:05 | <&jerith> | Total Physical Source Lines of Code (SLOC) = 32,399 |
22:05 | <&jerith> | Those are the two main repos. |
22:05 | <&jerith> | The second has a huge pile of JS that sloccount doesn't know about. |
22:06 | <&Derakon> | Yeah, we also have some C code that's lost when looking only at Python. |
22:06 | <&Derakon> | ...mm, to be fair, a lot of that Python is also just a copy of some old shit that I inherited and haven't touched in three years. |
22:07 | <&Derakon> | So I guess I'm not really responsible for it, at least not in an effective way~ |
22:07 | <&Derakon> | 33k LoC worth. |
22:09 | <&jerith> | The second codebase is 36k rather than 32k4 when I just pipe it all through cat, grep out the empty lines and wc it. |
22:10 | <&jerith> | I get 105k lines of JS when I do that, but only because I have no idea how to exclude the deps that we ship with our stuff. |
22:17 | <@gnolam> | ... I read that as "derps" |
22:18 | <&McMartin> | To be fair, derp tracking is a very important part of large software projects. |
22:18 | <&jerith> | gnolam: That too. It's made out of JS. |
22:18 | | * Syka begins brainstorming for her pycon talk proposal |
22:19 | < Syka> | Using Pickle For Fun And Profit |
22:19 | <&McMartin> | Do something with music. |
22:20 | <@Tamber> | "Pickling for Fun and Profit"? |
22:20 | < Syka> | Nobody Needs Unicode: A Bytes Lesson in 8 Fits |
22:20 | <&McMartin> | Then you can have Pickled Beats. |
22:20 | | * McMartin \ufffd Unicode. |
22:20 | < Syka> | Code Smell Driven Design |
22:20 | <@Tamber> | Alcohol Driven Design? |
22:20 | < Syka> | Integrating MongoDB Into Your Application |
22:21 | < ErikMesoy> | Profit Driven Design? |
22:21 | < Syka> | actually those are SykaCon talks |
22:21 | < ErikMesoy> | advice on creating the next Zynga |
22:22 | < Syka> | i could probably rant about Twisted or something |
22:23 | <@froztbyte> | Syka: eh |
22:23 | <@froztbyte> | I definitely think that previously-discussed topic would be a very good one |
22:23 | < ErikMesoy> | On The Proper Use Of Eval() |
22:23 | < ErikMesoy> | or exec() |
22:23 | <@froztbyte> | you've gone from "python? like, the snake?" to "have released twisted" in under a year |
22:23 | <@Tamber> | FPA: "Proper Use of Evil" |
22:23 | <@froztbyte> | I think that's a good journey to talk about |
22:23 | < ErikMesoy> | Then you stand on stage and perform Cage's 4'33''. |
22:24 | <&McMartin> | Is there a good whitepaper-like summary of Python variants? |
22:24 | <@froztbyte> | because it could help other people not be scared at things |
22:24 | < ErikMesoy> | Tamber: What is FPA? |
22:24 | <@Tamber> | "First Parsed Asâ¦" |
22:24 | < Syka> | froztbyte: so the "Python, Twisted & The Pursuit of Happiness" route then? |
22:24 | <&McMartin> | Ah, an IRTA variant >_> |
22:24 | < Syka> | McMartin: not really |
22:24 | <@froztbyte> | Syka: scratch it out on some pieces of paper or something, see how you feel about it as a topic |
22:24 | <@froztbyte> | Syka: but I definitely think that kind of thing could have worth |
22:25 | < Syka> | in short, there are three that you care about |
22:25 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code |
22:25 | < Syka> | CPython 2.7, CPython 3.4, PyPy |
22:25 | <@froztbyte> | nono |
22:25 | < Syka> | (of which the latter implements 2.7 and i think 3.3) |
22:25 | <@froztbyte> | there are two you care about |
22:25 | < Syka> | haha |
22:25 | <@froztbyte> | CPython 3.4 is some bitches&bling shit that'll go the way of perl6 |
22:25 | < Syka> | oh yrah |
22:26 | < Syka> | python 3 does not exist |
22:26 | <@froztbyte> | mark my fucking words |
22:26 | <@froztbyte> | I know how dangerous it is to make tech predictions |
22:26 | <&McMartin> | ... has Python 3 been implemented in Haskell yet? |
22:26 | < Syka> | McMartin: okay basically it breaks down into two things |
22:26 | <@froztbyte> | but of this one I feel "okay" |
22:26 | <&McMartin> | You can't properly go the way of Perl 6 until you are implemented in Haskell |
22:26 | <@froztbyte> | rofl |
22:26 | < Syka> | Slow and reliable: CPython |
22:26 | < Syka> | Fast and slightly incompatible: PyPy |
22:27 | < Syka> | PyPy doesnt handle C extensions well |
22:27 | <&McMartin> | (I hear Parrot is no longer the reference implementation, but that was fabulous) |
22:27 | < Syka> | but it does handle CFFI great |
22:27 | <&McMartin> | Hrm, when you say "C extensions" does that include cf... oho |
22:27 | <&McMartin> | OK then |
22:27 | <&McMartin> | ++ |
22:27 | < Syka> | and CFFI will soon replace c extension |
22:27 | < Syka> | cffi was written for pypy |
22:27 | <&McMartin> | I use Python instead of shell, basically, so my use cases are differently focused |
22:28 | < Syka> | if you use cffi, youre fine |
22:28 | < Syka> | if you use twisted, youre fine |
22:28 | < Syka> | except for pyopenssl |
22:28 | | Derakon [chriswei@Nightstar-4k2ccr.ca.comcast.net] has quit [[NS] Quit: leaving] |
22:28 | < Syka> | McMartin: so yeah, hopefully that sums it up |
22:29 | < Syka> | IronPython and etc are all bullshit |
22:29 | <@froztbyte> | McMartin: basically |
22:29 | <@froztbyte> | McMartin: cpython has an extension interface that's somewhat "fairly specific" |
22:29 | <&McMartin> | Is IronPython the one that targets .NET or the one that's like ActivePerl? |
22:29 | <@froztbyte> | in that symbol generation and all kinds of other shit is toolchained up the wazoo |
22:30 | < RichyB> | McMartin, "C extensions" as in C code which starts «#include "Python.h"» and generates a foo.so that can be imported in CPython by putting it in PYTHONPATH and running "import foo" |
22:30 | < Syka> | there is an ActivePython |
22:30 | <@froztbyte> | and then, yes, that |
22:30 | <&McMartin> | Ah, OK |
22:30 | < Syka> | ironpython is on the JVM i think |
22:30 | < RichyB> | IronPython is .NET |
22:30 | < RichyB> | jython is JWM |
22:30 | <@froztbyte> | it becomes a .so module which extends capabilities in the python runtime |
22:30 | < RichyB> | *JVM |
22:30 | <@froztbyte> | it is full of spiders |
22:30 | < Syka> | oh right |
22:30 | <&McMartin> | froztbyte: Soudns like the FFIs I know and hate |
22:31 | <&McMartin> | I like this brave new world of "knowing what dlopen and dlsym or their equivalents are" |
22:31 | < RichyB> | I don't entirely agree with "it is full of spiders" |
22:31 | < Syka> | CFFI in python is great though |
22:31 | <@froztbyte> | McMartin: it's....not quite like CFFI |
22:31 | <@froztbyte> | but it's not an impossible comparison either |
22:31 | <@froztbyte> | they're pretty related |
22:31 | <&McMartin> | C extensions here sounds like Guile's FFI; CFFI is more like Gambit's. |
22:32 | < Syka> | python CFFI is based off another FF |
22:32 | < RichyB> | it is full of implementation details of CPython, which means that it has effectively locked CPython into specifics that really could have been hidden implementation details but instead ended up as part of CPython's API |
22:32 | < Syka> | FFI |
22:32 | | ErikMesoy is now known as ErikMesoy|sleep |
22:32 | <@froztbyte> | RichyB: I'd say there's a fair amount of spiders involve......yes, that |
22:32 | <@froztbyte> | I mean |
22:32 | < Syka> | Luas FFI? i think |
22:32 | <&McMartin> | I can belive that |
22:32 | < Syka> | i dont remember |
22:32 | <&McMartin> | Mmmm |
22:32 | < RichyB> | the one thing that is massively spidery is that refcounting in Python C extensions is rumoured to be a little underdocumented |
22:32 | < Syka> | the readthedocs page says |
22:32 | <&McMartin> | Actually, Lua's is not unlike the others |
22:32 | <@froztbyte> | just go look into the scoping shit involved in looking around for the .so's someday |
22:32 | <@froztbyte> | have some magic, yo |
22:32 | <&McMartin> | Since when you do the call in Lua you have to write bridge code in C to do marshalling and unmarshalling |
22:33 | < Syka> | McMartin: http://cffi.readthedocs.org |
22:33 | < RichyB> | froztbyte, so, isn't cffi just like ctypes but better? |
22:33 | < Syka> | this should say it |
22:33 | <@froztbyte> | (jesus it was annoying injecting properly/safely into that) |
22:33 | <@froztbyte> | RichyB: yeah, something like that |
22:33 | < Syka> | cffi is ctypes but not shit |
22:33 | <@froztbyte> | RichyB: I wouldn't make any extensive arguments on the point |
22:33 | <@froztbyte> | RichyB: I understand enough about the matter to know which to choose, if I had the two as options |
22:33 | <&McMartin> | While cffi - looking at PyMonocle - is more like C#'s p/invoke where the guy making the FFI knows enough about C to be able to handle the marshalling itself given signatures |
22:34 | < Syka> | yeah based off LuaJITs FFI ideas |
22:34 | < RichyB> | Yeah. IMHO fundamentally the correct approach. It's much nicer to have the high-level language defining semantics for calling into & being called from the low-level language than vice-versa! |
22:34 | <&McMartin> | Syka: Jerith's been cffi-ing up one of the C library's I'm designing and developing |
22:34 | < Syka> | anyway back to the point |
22:34 | <@froztbyte> | no |
22:34 | < Syka> | pypy is great and you should try it |
22:34 | <@froztbyte> | IT IS DERAILMENT HOUR |
22:34 | <@froztbyte> | oh |
22:34 | <@froztbyte> | that point |
22:34 | <@froztbyte> | yeah I could agree with that point |
22:34 | < RichyB> | hehee |
22:34 | < Syka> | for basic scripting CPython is probably better |
22:35 | < Syka> | since pypy is slow until the JIT warms up |
22:35 | <&McMartin> | Yeah |
22:35 | <&McMartin> | But if I were to use pymonocle to actually write games, it seems like pypy would be the way to go |
22:35 | < Syka> | yep |
22:35 | < Syka> | another thing to chexk out |
22:35 | < RichyB> | it's not like jvm-startup-time slow. |
22:35 | < Syka> | Duangle's NOWHERE |
22:35 | <&McMartin> | (Strongly suspect jvm could be improved, just nobody cares enough to) |
22:35 | < Syka> | paniq has written his own 3D engine in python |
22:36 | <&McMartin> | (IIRC much of the work is loading all the unicode translation garbage) |
22:36 | < Syka> | its on bitbucket |
22:36 | | * Vornicus fiddles with graph theory stuff. |
22:36 | < Syka> | the game engine is open source |
22:36 | < Syka> | he uses pypy on mac/win/linux |
22:36 | < RichyB> | McMartin, not sure that I agree with you; Dalvik was massive effort to make a Java interpreter that eliminates the JVM's headaches and it doesn't entirely succeed. |
22:36 | < Syka> | and opengl on all 3 |
22:36 | < RichyB> | wait what unicode translation tables |
22:36 | < Syka> | RichyB: chexk out ART |
22:36 | < RichyB> | why aren't those just mmap()'d? |
22:36 | < Syka> | if you havent already |
22:37 | < Syka> | it is alsonworth noting that the JVM is good |
22:37 | < RichyB> | Syka, interpreter? |
22:37 | < Syka> | it has had a lot of smart people work on it |
22:37 | <&McMartin> | RichyB: I haven't done the profiling myself, but I was told once that this was a source of the 1 second JVM startup time |
22:37 | <&McMartin> | Yeah |
22:37 | < RichyB> | "art" is not very googlable as a technical term, sorry. |
22:37 | < Syka> | RichyB: android art |
22:37 | < Syka> | android run time or ART |
22:37 | <&McMartin> | HotSpot JVM and the .NET runtime are the two best JITs in the world right now. |
22:37 | < RichyB> | Thank you, Syka. |
22:37 | < Syka> | replacement for dalvik |
22:38 | <&McMartin> | PyPy is getting to the point AIUI where it can stand unashamed near them |
22:38 | < Syka> | McMartin: pypy might come close pretty soon |
22:38 | <&McMartin> | Yeah |
22:38 | <&McMartin> | That's generally where I've been hearing of it |
22:38 | < Syka> | pypy is doing excellent considering python |
22:38 | < Syka> | .net and java is typed, python aint |
22:38 | < Syka> | ("typed") |
22:39 | <&McMartin> | "statically typed" is the word you want |
22:39 | <&McMartin> | well, phrase |
22:39 | < Syka> | well theyre not |
22:39 | | Kindamoody|afk is now known as Kindamoody |
22:39 | < Syka> | in java its a runtime check |
22:39 | <&McMartin> | Sorta |
22:39 | <&McMartin> | That's to enforce safe downcasts |
22:39 | < Syka> | its dynamically typed with safeguards |
22:39 | <&McMartin> | But even at the bytecode level each stack location and register has a typename attached to it |
22:39 | < Syka> | half-assed typed |
22:40 | <&McMartin> | If it's an int, it stays an int until it's overwritten |
22:40 | <&McMartin> | And it's assembler so overwriting is the same as creating a new variable >_< |
22:40 | < Syka> | McMartin: heh |
22:40 | < Syka> | one thing i hate |
22:40 | < Syka> | java strings |
22:40 | < Syka> | fucking why. |
22:40 | <&McMartin> | There's a handful of things to hate there, you'll have to be more specific~ |
22:41 | <&McMartin> | "Immutable strings that support +=, producing Secretly Quadratic Code" is tops on my list there |
22:41 | < Syka> | "stringa" == "string" + "a" returns false |
22:41 | < Syka> | if you can even do that |
22:42 | < Syka> | because IMMUTABLE STRINGS |
22:42 | | * jerith looks up at the scrool. |
22:43 | <&jerith> | McMartin: These days pypy and CPython are pretty close to equivalent if you ignore C extensions to the latter and a few dark corners of the stdlib in the former. |
22:43 | < Syka> | watch out |
22:43 | < Syka> | it might scroll *sunglasses* back |
22:44 | < Syka> | its 7am i cannot joke |
22:44 | <&McMartin> | Syka: Oh, that's the eq vs. equal problem |
22:44 | <~Vornicus> | I'm so glad Python got that right |
22:44 | <&jerith> | pypy's JIT is interesting in that it is built entirely by armies of robots. |
22:44 | <&McMartin> | Java shares that problem with C and Lisp and several other languages |
22:44 | < Syka> | McMartin: string eq compares memory addresses |
22:44 | <&McMartin> | Yeah |
22:44 | < Syka> | not content |
22:45 | <&McMartin> | As == does for char * in C |
22:45 | <&jerith> | It is a meta-tracing JIT. |
22:45 | < Syka> | which is fucking dumb |
22:45 | <&McMartin> | You have to use strcmp in C or .equals in Java |
22:45 | <&McMartin> | C++ gets this basically right but does it by summoning Cthulhu |
22:45 | < Syka> | i love my python |
22:45 | <&McMartin> | std::string is a typedef of like a triply-nested template |
22:45 | <&McMartin> | But it does at least overload operator==. |
22:45 | < Syka> | it makes things so easy |
22:45 | <@Namegduf> | C# allows overriding == and uses it for string too. |
22:46 | | Kindamoody is now known as Kindamoody[zZz] |
22:46 | < Syka> | and also its not too batshit |
22:46 | <&McMartin> | Yeah |
22:46 | <@Namegduf> | When going between it and Java, I consider that to be one of the strongest arguments for C# actually making useful changes to Java. |
22:46 | <&McMartin> | Namegduf: I would add delegates to that, because they make publish/subscribe a lot cleaner to express, and as was previously noted, publish/subscribe is frickin' awesome |
22:47 | <&McMartin> | And then IDisposable is a gigantic improvement over Java's traditional and intensely ugly semantics |
22:47 | <@Namegduf> | Is that just events? |
22:47 | < Syka> | at least C# doesnt cling to write once run anywhere |
22:47 | <&McMartin> | It's a generalized version of events that makes them usable as freely as function pointers or closures |
22:47 | <&jerith> | So you sprinkle a few "give me some JIT here" calls here and there and when it finishes translating you have a JIT for your interpreter. |
22:47 | <@Namegduf> | I mean, publish/subscribe. |
22:47 | <&McMartin> | events have constraintsa bout how can fire and receive them, IIRC |
22:47 | | Stalker [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code |
22:47 | <&McMartin> | Oh |
22:47 | <&McMartin> | I meant the "event" keyword in C#, which is legacy now, I think |
22:48 | <@Namegduf> | I'd agree with delegates, but that strings are not actually a massive bug trap as in Java is probably good. |
22:48 | <@Namegduf> | I don't think so. |
22:48 | <@froztbyte> | <McMartin> C++ gets this basically right but does it by summoning Cthulhu |
22:48 | <@froztbyte> | <McMartin> std::string is a typedef of like a triply-nested template |
22:48 | <@froztbyte> | <McMartin> But it does at least overload operator==. |
22:48 | <@froztbyte> | ROFL |
22:48 | <@Namegduf> | An "event" is kind of a special public delegate property. |
22:48 | <@froztbyte> | wow |
22:48 | <@froztbyte> | I'd never gone looking |
22:48 | <@froztbyte> | but damn |
22:48 | <@Namegduf> | It can only be called from inside the class. |
22:48 | <@Namegduf> | But has public add/remove. |
22:48 | < Syka> | netgate: i might play around with a few ideas |
22:49 | < Syka> | but anyway |
22:49 | <&McMartin> | froztbyte: IIRC it isn't required per se, but it always is so that std::string and std::wstring can share source code |
22:49 | < Syka> | time for bed |
22:49 | < Syka> | it is 7am |
22:49 | <&McMartin> | (it templates on character type and allocator and I think one other thing) |
22:49 | < Syka> | and i have dropped my phone on my face like 4 times |
22:49 | < Syka> | because i am best at hands |
22:49 | <&McMartin> | Get some sleep, Syka |
22:50 | <~Vornicus> | oh, reminds me, I dropped a template problem behind the stove some months back and I should really try to get back to it. |
22:50 | < Syka> | my hands are writing words |
22:50 | < Syka> | haaaaaaands</xkcd> |
22:50 | <&jerith> | I explained my stove to our product manager the other day. |
22:50 | < Syka> | i should work more on my new project tomorrow |
22:50 | <@Namegduf> | Vornicus: It'll have grown like a fungus. :( |
22:51 | < Syka> | i might show it around when its done |
22:51 | < Syka> | its a little task manager doohicky :> |
22:51 | <~Vornicus> | Hooray |
22:51 | <&jerith> | Syka: I still need to take a look at your API thing. |
22:51 | <@Namegduf> | McMartin: What I'm wondering is not about C# but about publish/subscribe. Is there more to it than a public event which can be hooked to be invoked on an event occurring? |
22:51 | <&jerith> | It's been open in a tab. |
22:51 | < Syka> | jerith: haddock has had a bunch of changes |
22:51 | < Syka> | my latest project uses it for all api stuff |
22:52 | <&jerith> | Actually, someone called me Captain Haddock tonight. |
22:52 | < Syka> | so i uncovered a shitload of bugs |
22:52 | <~Vornicus> | Son of a submariner |
22:52 | <&jerith> | Probably because my beard has become dramatically large and unkempt. |
22:52 | < AnnoDomini> | jerith: It shows that you are an employed IT professional. |
22:53 | < Syka> | jerith: example.py and exampleAPI.json should explain it, both in the root of the project dir |
22:53 | <&jerith> | (But clean. Unless I've just eaten something problematic.) |
22:53 | < Syka> | jerith: my real world impl is in hawkowl/tomato-salad |
22:53 | <&jerith> | Tomato salad? |
22:53 | < Syka> | in tomatosalad/service/api.puly |
22:53 | < Syka> | py |
22:54 | < Syka> | its making fun of the name of the pomodoro method |
22:54 | <&jerith> | Is this the Mediterranean salad made of tomato, onion and vinegar? |
22:54 | < Syka> | whuich is spanish for tomato |
22:54 | < Syka> | or something |
22:54 | < Syka> | and i have been told to never make a tomato based fruit salad |
22:55 | < Syka> | and so i am making a tomato salad instead :D |
22:56 | <&McMartin> | Namegduf: Aha. No, not really, though it doesn't require anything more complex than single inheritance |
22:56 | <&McMartin> | C# has actual language support for this and that is super-optional |
22:56 | <@Namegduf> | Also super-optional: Support for loops. |
22:57 | <&McMartin> | More optional than that |
22:57 | <@froztbyte> | jerith is one of the few people in the world with whom I can (and do) have beard envy |
22:57 | <&McMartin> | LISP doesn't even notice it has this because mutable lists and first-class functions also work |
22:57 | <@Namegduf> | Yeah, true. |
22:57 | <@froztbyte> | (I bet there are more people, but I haven't met them) |
22:57 | <&jerith> | froztbyte: Get Bunnee to take and publish some pictures of tomorrow's luncheon outing. |
22:58 | <@froztbyte> | jerith: will do |
22:58 | <@froztbyte> | jerith: I'll also make mithrandi feel guilty about leaving his camera at home |
22:58 | <@froztbyte> | (which I presume he did) |
22:58 | <@Namegduf> | I'm mostly curious because I use events a fair bit and I was wondering if I was basically using it but not by name. |
22:58 | <@Namegduf> | Sounds like it. |
22:58 | < Syka> | anyway bed |
22:59 | <@froztbyte> | jerith: I think I wanna get down there again sometime early next year, when I can do a proper holiday |
22:59 | <@froztbyte> | rather than one with all the things in it |
22:59 | <&jerith> | It is 1am and I should sleep. |
22:59 | <@froztbyte> | sleep is for other people |
23:00 | <&jerith> | froztbyte: I'm not letting you spend all my money on computing and networking hardware next time. :-P |
23:01 | <@froztbyte> | fortunately that's not necessary |
23:01 | <@froztbyte> | have you repacked that machine yet? ;D |
23:01 | <&jerith> | I'll get to it eventually... |
23:01 | <@froztbyte> | :D:D:D |
23:01 | <@froztbyte> | either when you move |
23:01 | <@froztbyte> | or when the hardware dies |
23:01 | <@froztbyte> | whichever comes first |
23:02 | <&jerith> | Oh, are we going to have our traditional AI War marathon on Christmas and Boxing Day? |
23:02 | <&jerith> | We'll have to exclude mithrandi, because he'll be with family. |
23:03 | <&jerith> | Actually, now's not the time to discuss this. Now's the time to sleep. |
23:04 | <@froztbyte> | haha |
23:04 | <@froztbyte> | well, I'd be keen |
23:04 | <@froztbyte> | we can maybe drag Syka into matters too |
23:04 | <@froztbyte> | and perhaps Mr Waffle |
23:20 | | Derakon[AFK] is now known as Derakon |
23:25 | < RichyB> | Really annoying thing reading about lock-free algorithms |
23:27 | < RichyB> | Intel defined value_before = __sync_val_compare_and_swap(ptr, compare_value, replace_value) (and gcc and clang both implement that as an intrinsic) |
23:27 | <@froztbyte> | you can't fondle their private members? |
23:29 | < RichyB> | Microsoft VC++ defines: value_before = InterlockedCompareExchangePointer(ptr, replace_value, compare_value) |
23:29 | < RichyB> | oh, what I'm calling "replace_value" is more often referred to as "exchange_value". |
23:29 | < RichyB> | but seriously fuck everyone involved for failing to settle on one way or the other |
23:30 | <@froztbyte> | come now, RichyB |
23:30 | <@froztbyte> | you know exactly what URL I'll quote at you |
23:30 | < RichyB> | Makes papers a PITA to read because ¯\_(°_*)_/¯ who fucking knows which way around is being used |
23:30 | <@froztbyte> | tha |
23:31 | < RichyB> | froztbyte, (gently) fuck you for telling me not to be interested in something fun. |
23:31 | <@froztbyte> | that's* a factor of whether or not the reference implementation in section 3 of the paper |
23:31 | <@froztbyte> | RichyB: oh, no |
23:31 | <@froztbyte> | RichyB: I believe you misunderstood me |
23:31 | <@froztbyte> | RichyB: http://xkcd.com/927/ |
23:31 | < RichyB> | Oh I'm sorry |
23:31 | < RichyB> | Much better, than you. |
23:31 | <@froztbyte> | :D |
23:32 | < RichyB> | Fortunately there are only 3 * 2 * 1 = 6 possible ways to spell CAS |
23:32 | <@froztbyte> | I read filesystem papers on friday nights |
23:32 | <@froztbyte> | from bars |
23:32 | <@froztbyte> | on my phone |
23:32 | < RichyB> | Heehee =D |
23:32 | | * froztbyte is not one to speak |
23:32 | < RichyB> | Doubly fortunately, I have never seen a CAS where anybody put the pointer argument in the wrong position |
23:32 | < RichyB> | xchg and cmp keep being swapped, though. x_x |
23:32 | <@froztbyte> | let's have them do that |
23:33 | <@froztbyte> | *and* switch endianness |
23:33 | <@froztbyte> | for great lulz |
23:44 | | thalass [thalass@Nightstar-bce70i.eastlink.ca] has joined #code |
23:53 | | Turaiel[Offline] is now known as Turaiel |
23:53 | < RichyB> | Ah, fortunately ConcurrencyKit defines it the same way around as Intel did⦠and so does C++11 |
23:54 | < RichyB> | so it turns out that there's the standard way and the Microsoft way, as usual. |
23:57 | <&McMartin> | And if the standard way *is* the Microsoft way, the standard will change |
23:58 | < RichyB> | That has happened before, even though it really ought not to. |
--- Log closed Sat Dec 21 00:00:30 2013 |