code logs -> 2013 -> Fri, 20 Dec 2013< code.20131219.log - code.20131221.log >
--- 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
code logs -> 2013 -> Fri, 20 Dec 2013< code.20131219.log - code.20131221.log >

[ Latest log file ]