code logs -> 2012 -> Sat, 09 Jun 2012< code.20120608.log - code.20120610.log >
--- Log opened Sat Jun 09 00:00:08 2012
00:12 Attilla [Obsolete@Nightstar-52ef0425.as43234.net] has quit [Ping timeout: 121 seconds]
00:17 Attilla [Obsolete@Nightstar-58ca13fd.as43234.net] has joined #code
00:21 ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has quit [Connection reset by peer]
00:22 ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has joined #code
00:22 mode/#code [+o ToxicFrog] by ChanServ
00:32 io|afk is now known as iospace
00:43
<&McMartin>
http://arstechnica.com/gaming/2012/06/gorgeous-unreal-engine-4-brings-direct-pro gramming-indirect-lighting/ is a fun read
00:55
<&McMartin>
In unrelated news it turns out that flash drives work better if you plug them into a machine that is actually on
00:59
< Rhamphoryncus>
go figure
01:14
<~Vornicus>
heh
01:33 You're now known as TheWatcher[T-2]
01:37 You're now known as TheWatcher[zZzZ]
02:33 Attilla [Obsolete@Nightstar-58ca13fd.as43234.net] has quit [Ping timeout: 121 seconds]
02:35
< celticminstrel>
XD
02:36
<&McMartin>
OK, time to test the connection post-utter-clusterfuck
02:39 Attilla [Obsolete@Nightstar-5ca589d7.as43234.net] has joined #code
02:57 Attilla [Obsolete@Nightstar-5ca589d7.as43234.net] has quit [Ping timeout: 121 seconds]
03:35 Kindamoody[zZz] is now known as Kindamoody
04:19 Vash [Vash@Nightstar-241cb5d4.wlfrct.sbcglobal.net] has joined #code
04:19 mode/#code [+o Vash] by ChanServ
04:27 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [[NS] Quit: Well, most things get better when I kick them!]
04:48
<&McMartin>
Hey, cool
04:48
<~Vornicus>
?
04:49 * McMartin flips through the disassembly of an old Atari 2600 ROM, finds a nearly-direct implementation of a technique he had worked out back in his Ophis-testing binge.
04:49
<~Vornicus>
Cool.
04:49
<~Vornicus>
Which ROM?
04:50
<&McMartin>
Air-Sea Battle - it's a basic technique for doing multisprite and precisely positioning stuff on a scanline with procedurally generated cyclecount delays.
04:51
<&McMartin>
This was done better in later years - it looks like the best one found by the old Stella list was Battlezone's, which not only does the autodelay but will also autocompute the values to jam into the fine control registers later, and fast enough to let you do this every scanline if you were so inclined.
05:14
<&McMartin>
Also, sweet
05:14 * McMartin got his first bug identified by his unit tests.
05:17
<~Vornicus>
Man, Air Sea Battle
05:32 Vash [Vash@Nightstar-241cb5d4.wlfrct.sbcglobal.net] has quit [[NS] Quit: I lovecraft Vorn!]
06:23
<&McMartin>
fg
06:26
<&McMartin>
oops
06:31 celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
06:31 Kindamoody is now known as Kindamoody|breakfast
07:09 Kindamoody|breakfast is now known as Kindamoody
08:31 Kindamoody is now known as Kindamoody|out
09:13 You're now known as TheWatcher
09:20 RichyB [MyCatVerbs@Nightstar-32e483b9.range81-153.btcentralplus.com] has joined #code
09:35 * McMartin Writes A Book.
09:39 RichyB [MyCatVerbs@Nightstar-32e483b9.range81-153.btcentralplus.com] has quit [[NS] Quit: Leaving]
09:46 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
09:52 Rhamphoryncus [rhamph@Nightstar-5697f7e2.abhsia.telus.net] has quit [Client exited]
09:59 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
09:59 mode/#code [+o himi] by ChanServ
10:30 * McMartin blinks again, wonders if he wrote this code before he saw it in Gradius.
11:28 * McMartin finishes his book, announces it here instead of the wrong channel
11:28
<&McMartin>
https://hkn.eecs.berkeley.edu/~mcmartin/ophismanual.pdf
11:36 Attilla [Obsolete@Nightstar-b09560bd.as43234.net] has joined #code
12:28
<&McMartin>
Also, woohoo, I have found the first bug in my unit tests that *completely blindsided me*
12:29
<&McMartin>
s/in/with/
12:30
<&McMartin>
(To wit: when dumping binary to stdout, you have to dick around with msvcrt functions to not fuck it up - while popen can compensate for that, subprocess *can't* and subprocess is more representative of an unknown client.)
12:31 Attilla [Obsolete@Nightstar-b09560bd.as43234.net] has quit [Ping timeout: 121 seconds]
12:36 Attilla [Obsolete@Nightstar-0ba771bb.as43234.net] has joined #code
13:12 Attilla [Obsolete@Nightstar-0ba771bb.as43234.net] has quit [Ping timeout: 121 seconds]
13:17 Attilla [Obsolete@Nightstar-7a7f2080.as43234.net] has joined #code
13:30
<&jerith>
McMartin: Yay unit tests!
13:31
<&jerith>
Is this your first foray into decent test coverage, or just your first on this project?
13:48 Attilla [Obsolete@Nightstar-7a7f2080.as43234.net] has quit [Ping timeout: 121 seconds]
13:53 Attilla [Obsolete@Nightstar-0dcac30b.as43234.net] has joined #code
15:01 Vash [Vash@Nightstar-241cb5d4.wlfrct.sbcglobal.net] has joined #code
15:01 mode/#code [+o Vash] by ChanServ
15:01 * froztbyte looks into options to getting a php codebase converted from lots of ereg_replace to preg_replace
15:02
< froztbyte>
(because I'm not sure if these patterns are even all valid PCRE)
15:27 ForgeAus [forgeaus@Nightstar-1226a595.tpgi.com.au] has joined #code
15:28
< ForgeAus>
any particular language here?
15:28
<@Tamber>
Hand-forged machine-code.
15:28
< ForgeAus>
you mean assembly?
15:29
<&jerith>
ForgeAus: No, machine code. We hex-edit binaries directly. ^.^
15:29 * Tamber hands ForgeAus a stack of punch-cards.
15:29
<&jerith>
Actually, we're a pretty diverse bunch.
15:29
< ForgeAus>
ok so well how do you know what the hex stuff is actually meant to be doing?
15:30
<@Tamber>
Depends. If you're hardcore, you have all the opcodes memorised.
15:30
< ForgeAus>
wouldn't that depend on what processor architecture your using?
15:30
<&jerith>
Yup.
15:30
<@Tamber>
Of course.
15:30
<&jerith>
For example, McMartin over there has a fondness for the 6502.
15:30
< ForgeAus>
uh, and? which one would that be?
15:30 iospace is now known as io|FOOD
15:31
<&jerith>
I'm more partial to 8-bit AVRs, myself.
15:31
< ForgeAus>
I don't know what an AVR is lol
15:31
< froztbyte>
ForgeAus: I prefer to drop-cast my CPUs as mechanical interactive machines
15:31
< froztbyte>
takes a while to finish a compile though
15:31
<&jerith>
I haven't actually built a microprocessor in a number of years.
15:31
< froztbyte>
jerith: we should do that water-CPU idea of mine sometime
15:31
< froztbyte>
it's completely batshit.
15:31 * Tamber really should get around to figuring out how to do about that mechanical computer...
15:32
<@Tamber>
Because I find the idea of having to shovel coal into a steam-engine to make my processing happen to be kinda neat!
15:32
<&jerith>
Tamber: You live near enough to London that you can go look at the Difference Engine there.
15:32
<@Tamber>
Indeed.
15:32
< ForgeAus>
Tamber you like your machines to actually be mechanical rather than electronic?
15:33
<@Tamber>
I don't mind either way; but there's just something... more tangible about mechanical bits.
15:33
< ForgeAus>
somehow I think your using a PC of some description to chat on IRC :)
15:33
<@Tamber>
Of course.
15:34
< ForgeAus>
it would have to be a very special mechanical device (non electronic) to do something like that
15:35
<@Tamber>
There would, naturally, have to be an electromechanical interface between it and a more 'standard' PC. (Probably something like a serial link.)
15:36
< ForgeAus>
oh yeah for the network device, so your allowed a network adapter and power supply to it ...
15:36
<~Vornicus>
(the 6502 and its friends were used in the commodore 64 and the NES, among others)
15:36
< ForgeAus>
NES wow,
15:36
< ForgeAus>
aren't they Z80-based?
15:36
<@Tamber>
However, I haven't gotten anywhere with figuring out how to go about said mechanical computer; I have more important things paged in at this time~
15:37
< ForgeAus>
its almost not beyond reason to run a *nix os on a Z80
15:37
<@Tamber>
That would depend on where you draw the line of reason, surely?
15:37
< ForgeAus>
true
15:37
<&jerith>
ForgeAus: I think you need hardware memory management.
15:38
<@ToxicFrog>
ForgeAus: nope, the NES was a modified 6502 with a bunch of coprocessors
15:38
<~Vornicus>
game boy was z80
15:38
< ForgeAus>
I'm not entirely sure about that but I know sharp mz series was z80 based at least at the time of MZ700
15:38
<~Vornicus>
z80 is one of the most popular architectures out there.
15:38
<&jerith>
There's a guy who got Linux running on an AVR, but he did it by writing an emulator for a more competent microprocessor.
15:39
<@ToxicFrog>
The gameboy was actually a weird 8080/Z80 hybrid
15:39
< ForgeAus>
and MZ800 (the next model up) had a project (never completed) to build a Unix port or derivative of some kind
15:39
<@ToxicFrog>
The SMS was Z80, though, and the Megadrive/Genesis used the Z80 as the SPU.
15:40
<@ToxicFrog>
(and to address your original question, we talk everything from gate design to lisp here, as well as language-agnostic design stuff)
15:41
<@Tamber>
Rather, you lot do; and most of it goes over my head. @_@ (One thing I do know is that I don't know a lot.)
15:41
< ForgeAus>
apparnetly the spectum had a Unix or Linux of some kind
15:44
<&jerith>
Tamber: Ask more questions, then. :-)
15:44
<&jerith>
Also, http://programming-motherfucker.com/become.html
15:44
<&jerith>
Not sure if that's been pasted in here yet.
15:45
<@Tamber>
*chuckle*
15:46
< ForgeAus>
wow Xenix was on Apple Lisa!
15:48
<&jerith>
The Lisa was a 68k machine, I believe.
15:48
<@Tamber>
jerith, I go digging into things, learn how it works; then it promptly tumbles out of the other ear because my attention flits elsewhere... <_>
15:48 celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has joined #code
15:48
<&jerith>
Tamber: I recommend large doses of Ritalin.~
15:50
< ForgeAus>
yeah probably 68k since it was the pre-Macintosh Macintosh pretty much afaik
15:52
<~Vornicus>
seeing as the z80 was supposed to be an 8080 clone in the first place...
15:52
<@Tamber>
Anyway, I should go bash at this pastebin a little more... *sigh* I added something similar to Watcher's "Are you human?" box, it stopped all but one... I add reCAPTCHA as part of a rewrite, and it's busted already. Getting spam all over the place.
15:52
< ForgeAus>
also before it was Microsoft it was micro-soft
15:56
< ForgeAus>
Altair systems were 8080 :)
15:58
< ForgeAus>
thats where it all started, at least the whole DOS and MS Basic thing ...
16:03
< ForgeAus>
ahh so thats where WINE probably got the idea from, XINU ... although the WINE one is a lie
16:03
< ForgeAus>
Wine calls itself a ABI but it does use Windows Emulation to achieve it
16:07
<@ToxicFrog>
Recursive acronyms predate both WINE and XINU.
16:08
<@ToxicFrog>
And Wine is not, in fact, an emulator, except in the "wine libraries emulate the functionality of windows system libraries" sense that makes, for example, lesstif a Motif emulator.
16:08
< ForgeAus>
ok they're the only ones I've come across
16:08
<&jerith>
GNU?
16:09
< ForgeAus>
I would agree there that lesstif is a motif emulator but I get what you mean
16:09
<&jerith>
GNU's Not Unix.
16:09
< ForgeAus>
oh yeah
16:09
< ForgeAus>
I think I did know that ..
16:12
<@ToxicFrog>
ForgeAus: well, it's an 'emulator' in the dictionary sense but not in the sense that anyone actually means 'emulator' when talking about emulation software, which is why we have the seperate 'compatibility layer' terminology
16:13
<@ToxicFrog>
wine and lesstif are both fundamentally different from, say, snes9x, or qemu.
16:24 RichyB [MyCatVerbs@Nightstar-32e483b9.range81-153.btcentralplus.com] has joined #code
16:31 io|FOOD is now known as iospace
16:36 Kindamoody|out is now known as Kindamoody
17:51 * Tamber takes a deep breath, screams at the PHP.
17:52
<@Tamber>
I don't know if it's actually PHP's fault, but it deserves it anyway.
17:55
<@Tamber>
Apparently, a string comparison will work in testing; but not in 'production'. I don't think I have enough alcohol to deal with this...
18:00
<@ToxicFrog>
The problem is in your php.ini. Or possibly in your Apache mod_php configuration, or your site-specific configuration files. Or your environment variables.
18:00
<@ToxicFrog>
Or your php compile-time options, if testing and production aren't using the same builds.
18:01
<@ToxicFrog>
Basically what I am saying here is that PHP is for masochists~
18:01
<@ToxicFrog>
And speaking of masochism
18:01 * ToxicFrog starts implementing a format string parser in C ;.;
18:02
<@Tamber>
TF: In short, the problem is PHP.
18:02
<@Tamber>
Which is made of spiders and bat-shit.
18:04
<@Tamber>
And glued together with the tears of everyone who tried to do anything in it.
--- Log closed Sat Jun 09 18:14:45 2012
--- Log opened Sat Jun 09 18:26:07 2012
18:26 TheWatcher [chris@Nightstar-3762b576.co.uk] has joined #code
18:26 Irssi: #code: Total of 25 nicks [7 ops, 0 halfops, 0 voices, 18 normal]
18:26 mode/#code [+o TheWatcher] by ChanServ
18:26 Irssi: Join to #code was synced in 36 secs
18:29 Vash [Vash@Nightstar-241cb5d4.wlfrct.sbcglobal.net] has quit [[NS] Quit: I lovecraft Vorn!]
18:37 Kindamoody is now known as Kindamoody[zZz]
18:38 RichyB [MyCatVerbs@Nightstar-32e483b9.range81-153.btcentralplus.com] has quit [[NS] Quit: Leaving]
18:41
<&jerith>
Tamber: The fact that there are so many ways PHP can screw this up *without* you putting the file in the wrong place says quite a lot.
18:41
<@Tamber>
Indeed.
18:41
< froztbyte>
no
18:42
< froztbyte>
the fact that there are still people willing to ARGUE with you about that says a lot Q_Q
18:55
<@ToxicFrog>
Yeah, I think PHP has the highest ratio of rabid defenders to actual quality I've seen
18:56
<@ToxicFrog>
I mean, FORTRAN still gets used a lot but I don't think I know anyone who actually defends it as a language. But PHP? They come out of the woodwork.
18:56
<@rms>
IMO the issue with that is it is popular and a bunch of the arguments aren't really that good.
18:57
<@rms>
So it becomes mostly reactionary to people making moronic comments like "variable variables are stupid and I don't like them."
18:57
<@rms>
Rather than legitimate failings of the language.
18:58
<@ToxicFrog>
Not in my experience.
18:58
<@ToxicFrog>
I mean, yes, there are people saying things like that and getting flamed for it
18:59
<@ToxicFrog>
But exactly the same people say exactly the same things when people bring up legitimate issues with PHP
18:59
<@rms>
As I said, it becomes a programmed reaction.
18:59
<@rms>
IE: PAvlov.
18:59
<@ToxicFrog>
And I mean, yes, any language will have its defenders
18:59
<@ToxicFrog>
But PHP has so many
19:00
<@ToxicFrog>
And I don't really see this effect with, say, the Python community, which gets a lot of people saying "wtf mandatory indentation python sux" and is entirely happy to deploy the smackdown on them, but is also willing to admit that python is not in fact The Best Language.
19:01
<@ToxicFrog>
Or Lua, which gets a lot of people who are inordinately angry at the fact that it uses keywords rather than braces to delimit blocks.
19:02
<@rms>
IMO it's just a vocal sub-group
19:02
<@rms>
PHP just happens to have a large enough main-group to make the vocal group look huge.
19:03
<@ToxicFrog>
Except, again, other very popular languages like Python don't seem to have this issue.
19:03
<@ToxicFrog>
Or if they do, they don't have it to nearly the same degree.
19:03
<@rms>
Python doesn't get a huge amount of flack either.
19:03
<@rms>
The two languages that I always see getting flack are: PHP and VB.
19:04
<@rms>
Only negative I've ever seen for Python is the lack of braces actually.
19:05
<@ToxicFrog>
I see people having a crazy about Python's mandatory significant whitespace fairly frequently
19:06
<@ToxicFrog>
(I mean, disregarding actually legitimate complaints)
19:06
<@ToxicFrog>
VB I actually haven't seen discussion of in ages. Maybe it's dying out.
19:07
<@ToxicFrog>
(I'd rather see PHP die out than VB~)
19:07
< Rhamphoryncus>
Python deserves a lot of flack for its crappy threading, but nobody understands threading so they rarely comment
19:08
< Rhamphoryncus>
When they do the arguments from both sides are pretty inane though
19:08
<@ToxicFrog>
I don't python a lot but I was under the impression that that was a cpython implementation issue and not a language issue
19:09
<@ToxicFrog>
Unlike, say, function scope and terrible support for anonymous functions
19:10
< Rhamphoryncus>
cpython is the canonical implementation and it definitely exhibits it, but the threading API is pretty bad too
19:11
< Rhamphoryncus>
Memory semantics were never defined but there's sort of an assumption of certain things being atomic.. some of which aren't on other implementations
19:11
<@ToxicFrog>
Oh joy
19:11
< Rhamphoryncus>
If the language had a concept of isolation it'd be a lot easier to have scalable implementation
19:12
<@ToxicFrog>
(local memory only with message passing 4 life)
19:12
< Rhamphoryncus>
Not to mention being easier to use
19:12
< Rhamphoryncus>
ToxicFrog: how do you pass class objects and instances?
19:14
< Rhamphoryncus>
Answering that led to the design of python-safethread
19:14
<@ToxicFrog>
What do you mean?
19:15
< Rhamphoryncus>
Global state such as module and class objects are mutable, so they're not thread-safe, nor can they be copied to every thread for message passing
19:15 * rms wonders if Perl 6 works now
19:15
<@ToxicFrog>
"how does the programmer pass them" - the same way you pass anything else, they're just values like any other. "how does the implementor pass them" - I don't know enough about python internals to say, but there's no shortage of languages that do the equivalent and I've written the equivalent for luapilot
19:16
<@ToxicFrog>
Erm
19:16
<@ToxicFrog>
<ToxicFrog> (local memory only with message passing 4 life)
19:16
< Rhamphoryncus>
Yeah, my context is python, yours is not :)
19:17
<@ToxicFrog>
I guess you can have some immutable globals like interpreter version information shared across threads if you really want but that's an implementation detail
19:17
<@ToxicFrog>
Ok, I'm missing something here
19:18
< Rhamphoryncus>
I was extending python, so there were limitations in how much I could change it
19:18
<@ToxicFrog>
Because you seem to be approaching this from the stance of "any parallel python program must have at least some mutable state shared across threads"
19:18
<@ToxicFrog>
Ok, so what I'm missing is that you're talking about something unrelated, gotcha
19:18
< Rhamphoryncus>
The entire module and class system in python is built around being mutable
19:19
<@ToxicFrog>
"mutable" isn't the problem, "shared" is
19:19
< Rhamphoryncus>
shared too
19:19
<@ToxicFrog>
Untrue, or Pylot wouldn't work
19:20
< Rhamphoryncus>
Good question, how does it work?
19:21
< Rhamphoryncus>
The way you scale up in python is a) do it in C, or b) fork
19:21
<@ToxicFrog>
By forking.
19:21
< Rhamphoryncus>
forking means make a copy of the entire global state
19:21
<@ToxicFrog>
That said, my understanding is that this is a limitation of cpython (you can't have more than one isolated interpreter per process) and not all python terps have this limitation.
19:21
<@ToxicFrog>
Yes?
19:22
< Rhamphoryncus>
It's a very heavy solution, considering COW doesn't work for refcounting
19:22
< Rhamphoryncus>
(at least not when the refcount is stored with every object)
19:22
< Rhamphoryncus>
Calling it a limitation of cpython is academic
19:22
< Rhamphoryncus>
Jython may not have it but pypy does
19:23
<@ToxicFrog>
I don't even know what you're trying to argue anymore
19:24
< Rhamphoryncus>
Theory vs practice I guess. Sure, in theory you could make a python who's threading scales, but in practice it doesn't
19:25
< Rhamphoryncus>
CPython is *the* implementation. Probably around 99.99% of the usage, considering it's installed by default on many distros and used by distro tools
19:25
<@ToxicFrog>
Ok, so, first of all, I'm talking more about ease of use than scalability, since it already doesn't scale
19:26
< Rhamphoryncus>
You could also argue that you could have a C implementation that applies pointer safety. They do exist. Very obscure though
19:26
<@ToxicFrog>
My argument being that a local-memory-message-passing threading API would remove, for example, the atomicity concerns you cited as problems with the existing API
19:27
< Rhamphoryncus>
Ahh, you mean message passing as a style/technique?
19:27
<@ToxicFrog>
Secondly, Pylot was actually developed for high-performance supercomputing clusters and in that context it scales just fine :P
19:27
<@ToxicFrog>
(although you will probably want the heavy lifting on individual nodes to happen in numpy or cython)
19:28
<@ToxicFrog>
Yes, what did you think I meant?
19:28
< Rhamphoryncus>
Interprocess message passing is several orders of magnitude slower than local memory access, so yes it works if you do relatively little of it, but doesn't if you need to do it a lot
19:29
< Rhamphoryncus>
Language design?
19:29
<@ToxicFrog>
As in, you thought I meant message passing in the Smalltal sense, which is basically what python already does?
19:30
< Rhamphoryncus>
huh?
19:31
<@ToxicFrog>
<Rhamphoryncus> Interprocess message passing is several orders of magnitude slower... Yes, but again, I'm talking ease of use/correctness, not performance; in the case of Pylot it's often a message pass over the network which is even slower, which is why you try to minimize the amount of message passing you do relative to computation. In a language or implementation that doesn't have the one-environment-per-process limitation, of co
19:31
<@ToxicFrog>
urse, you can get away with a memcpy() (fast) or, for immutables, a pointer copy (super fast).
19:32 * Rhamphoryncus nods
19:32
< Rhamphoryncus>
I'm all for message passing in that environment
19:32
<@ToxicFrog>
<Rhamphoryncus> huh? -- I mean, I meant message passing as in send-receive (as opposed to lock-modify-unlock) parallel programming. You said you thought I meant it "as in language design", which I'm interpreting to mean "message passing" in the sense of, say, Smalltalk's dynamic method dispatch.
19:32
<@ToxicFrog>
If you didn't think I meant either, what did you mean?
19:34
< Rhamphoryncus>
Python is oriented towards locks, not message passing, so it's fragile
19:35
<@ToxicFrog>
Python's threading implementation, you mean
19:35
< Rhamphoryncus>
.. no, the language design as a whole
19:36
< Rhamphoryncus>
There's a massive amount of shared mutable state
19:39
<@ToxicFrog>
That state doesn't need to be shared, though! It is not the case that, for example, every process in a python program needs to have the same modules loaded.
19:40
<@ToxicFrog>
Also, sudden terrible/wonderful thought
19:40
< Rhamphoryncus>
That's just multiprocessing. It has nothing to do with python
19:40
< Rhamphoryncus>
You could apply the same argument to every language
19:40
<@ToxicFrog>
I think we're arguing at complete cross purposes
19:40
<@ToxicFrog>
I say "send-receive is a better parallel programming API than lock-modify-unlock"
19:41
<@ToxicFrog>
And you respond with "but cpython is built around lock-modify-unlock"
19:41
< Rhamphoryncus>
yeah
19:41
< Rhamphoryncus>
I'm coming at it from language design. It should support and encourage send-receive rather than lock-modify-unluck
19:50
<@ToxicFrog>
Right. But what I'm getting at is that at the language level, disregarding all the implementation stuff, python works Just Fine with send-receive
19:50
<@ToxicFrog>
Anyways, the terrible/wonderful thought
19:50
<@ToxicFrog>
send-receive and lock-modify-unlock are the two main schools of parallel programming
19:51
<@ToxicFrog>
However, lock-modify-unlock is also one of the main version control architectures
19:51
<@ToxicFrog>
The other being copy-modify-merge
19:51
<@ToxicFrog>
I wonder what a copy-modify-merge parallel programming architecture would look like?
19:53
< Rhamphoryncus>
It works fine for the app you mentioned. It's totally inadequate for YASTTC
19:54
< Rhamphoryncus>
probably STM :)
19:55
<@ToxicFrog>
STM?
19:55
< Rhamphoryncus>
software transactional memoroy
19:56
<@ToxicFrog>
Goddamnit, someone beat me to it
19:56
< Rhamphoryncus>
It's all the rare, heh
19:56
< Rhamphoryncus>
rage*
20:44 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code
20:50
< Rhamphoryncus>
mmm truth tables
21:05
< Rhamphoryncus>
Haw. Just went in a circle. Need a memory layout to backup the mixed-row iteration, one that I can easily rotate. Ended up with the subdivides-into-4 structure and figured out the bit ops to rotate those coordinates. However, I never figured out how to translate mixed-row iteration into that
21:29 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [[NS] Quit: Leaving]
21:39
< celticminstrel>
How can I tell git that a file it thinks is binary is in fact text? Or does it just not understand UTF-16?
21:44
<~Vornicus>
It may not understand UTF-16
21:44
<~Vornicus>
Does it have a BOM at the beginning?
21:44
<@ToxicFrog>
celticminstrel: http://stackoverflow.com/questions/777949/can-i-make-git-recognize-a-utf-16-file -as-text
21:45
<@ToxicFrog>
(note: first google result for 'git utf-16')
21:45
<@ToxicFrog>
Short answer: you need to (a) configure git to recognize that file as text and (b) configure it to use external diff tools that understand UTF-16
21:45
<@ToxicFrog>
A better solution is probably to not use UTF-16, considering how much of a headache it is.
21:49 Attilla_ [Obsolete@Nightstar-faef4021.as43234.net] has joined #code
21:50 Attilla [Obsolete@Nightstar-0dcac30b.as43234.net] has quit [Ping timeout: 121 seconds]
22:13
< celticminstrel>
I have no idea whether it needs to be UTF-16; it's the InfoPlist.Strings file that Xcode puts in a project. I don't even know if I need it for anything.
22:33 Attilla_ is now known as Attilla
22:34
< ForgeAus>
part of the app most mac apps have that stuff
22:34
< ForgeAus>
in the .app bundle
22:34
< ForgeAus>
some have several
22:39
< celticminstrel>
Does it need to be UTF-16?
22:55
< Namegduf>
Why do you need it to recognise it as text?
22:55
< Namegduf>
Is it commonly going to need merging?
22:58
< celticminstrel>
I don't expect to to ever change, to be honest.
22:58
< celticminstrel>
^it
22:59
< Namegduf>
Then I wouldn't bother.
22:59
< celticminstrel>
Eh, I guess.
23:00
< Namegduf>
Treat it like you would any other kind of weird database file which happens to contain a representation of text somewhere in it.
23:00
< Namegduf>
And just not bother having git merging integrate with it.
23:01
< celticminstrel>
I'm getting SIGABORT in a compiler-generated destructor...
23:03
< celticminstrel>
In free.
23:03
< celticminstrel>
It's a call to the delete operator, but does this actually mean the pointer being deleted is invalid? The destructor is invoked before the memory is freed, right?
23:04 ForgeAus [forgeaus@Nightstar-1226a595.tpgi.com.au] has quit [[NS] Quit: ]
23:11
<@ToxicFrog>
celticminstrel: yes. Are you sure you aren't deleting the same object twice?
23:11
< Rhamphoryncus>
Hrm. I've figured out my translation but so far I've only got a recursive (or looping) algorithm. I could generate a lookup table though..
23:11
<@ToxicFrog>
Memoize!
23:12
< Rhamphoryncus>
.. no :)
23:12
<@ToxicFrog>
Why not?
23:13
< Rhamphoryncus>
For 3 stages of subdivision there's only 64 targets
23:15
< Rhamphoryncus>
And saturation will be 100%
23:15
< Rhamphoryncus>
So there's no reason to fill it lazily rather than eagerly
23:15
< Rhamphoryncus>
I also might need this in GLSL. DUnno yet.
23:16
< celticminstrel>
I'm not sure, no. It doesn't look like I am, though.
23:16
< celticminstrel>
That said, I've just decided to use shared_ptrs and see if that magically fixes it.
23:17 * Rhamphoryncus notes that exponential hurts. subdivision of 4 gives 256 targets. 8 gives 65536
23:17
< Rhamphoryncus>
16.. well, not so nice ;)
23:18
< Rhamphoryncus>
But I don't want that much loaded at once anyway
23:19
< celticminstrel>
That seems to have fixed the issue.
23:19
<@ToxicFrog>
celticminstrel: woo
23:19
<@ToxicFrog>
(also valgrind and gdb are your friends)
23:20
<@ToxicFrog>
(I think. Does valgrind support c++?)
23:20
< celticminstrel>
I guess somehow I was deleting it twice?
23:20
< celticminstrel>
I have no idea.
23:20
<@ToxicFrog>
Probably, yes
23:20
< celticminstrel>
I tried using the Instruments tool with Xcode, but that was kinda complicated and confusing.
23:20
<@ToxicFrog>
IME the most typical cause of this is "object is inserted into container, container is deleted and deletes all of its contents automatically, object is later deleted by original creator'
23:20
< celticminstrel>
Ah.
23:21
<@ToxicFrog>
But this is just one of the many, many ways manual memory management can go horribly wrong!
23:21
< celticminstrel>
Not sure if that could've been what happened here, but maybe. There were three lists and a string in the class being destructed.
23:22
< celticminstrel>
And yes. That's why I've been shifting towards shared_ptr and reference counting. :P
23:22
< celticminstrel>
I think there's one or two places I've yet to make the switch.
23:23
< celticminstrel>
Not counting the ObjC objects used in reading a plist.
23:29
< Namegduf>
Valgrind does.
23:31
< celticminstrel>
if(A); else if(B) {...} is equivalent to... if(!A && B)?
23:32
<@ToxicFrog>
Yes.
23:34 iospace is now known as io|FOOD
--- Log closed Sun Jun 10 00:00:06 2012
code logs -> 2012 -> Sat, 09 Jun 2012< code.20120608.log - code.20120610.log >

[ Latest log file ]