code logs -> 2008 -> Fri, 16 May 2008< code.20080515.log - code.20080517.log >
--- Log opened Fri May 16 00:00:25 2008
00:00
< Vornicus>
We get signal!
00:00
< Vornicus>
er
00:00
< Vornicus>
We get envelope!
00:01
< Doctor_Nick>
what!
00:01
< Doctor_Nick>
letter opener turn on
00:01
< Vornicus>
er
00:01
< Vornicus>
wrong channel
00:01
< Doctor_Nick>
heh
00:08
<@gnolam>
Doctor_Nick: I have no idea.
00:10
< Doctor_Nick>
k
00:24 You're now known as TheWatcher[T-2]
00:27 You're now known as TheWatcher[zZzZ]
00:29 gnolam [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has quit [Quit: I have head explody?]
01:10 McMartin [~mcmartin@Nightstar-7072.dsl.pltn13.sbcglobal.net] has quit [Quit: Leaving]
02:21 Vornicus is now known as Vornicus-Latens
02:26 McMartin [~mcmartin@Nightstar-2079.dsl.snfc21.pacbell.net] has joined #code
02:26 mode/#code [+o McMartin] by ChanServ
02:57 Doctor_N1ck [~nick@Nightstar-25013.hsd1.fl.comcast.net] has joined #code
02:59 Doctor_N1ck [~nick@Nightstar-25013.hsd1.fl.comcast.net] has quit [Quit: leaving]
04:04 McMartin [~mcmartin@Nightstar-2079.dsl.snfc21.pacbell.net] has quit [Connection reset by peer]
04:06 McMartin [~mcmartin@Nightstar-6968.googlewifi.com] has joined #code
04:06 mode/#code [+o McMartin] by ChanServ
04:06
< Doctor_Nick>
mc martiiiiiinnn
05:18
<@McMartin>
Yes?
05:32
< Doctor_Nick>
sorry
05:33
< Doctor_Nick>
just recalling the wb series ;)
05:42 McMartin [~mcmartin@Nightstar-6968.googlewifi.com] has quit [Quit: home]
05:45 Doctor_Nick [~nick@Nightstar-25013.hsd1.fl.comcast.net] has quit [Quit: leaving]
05:53 Doctor_Nick [~nick@Nightstar-25013.hsd1.fl.comcast.net] has joined #code
05:54 Doctor_Nick is now known as NSGuest-6523
06:06 AnnoDomini [AnnoDomini@Nightstar-29058.neoplus.adsl.tpnet.pl] has joined #Code
06:06 mode/#code [+o AnnoDomini] by ChanServ
07:49 You're now known as TheWatcher
11:26 Mojo1978 [~Mojo1978@Nightstar-14878.hsi.ish.de] has joined #code
13:22 gnolam [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has joined #Code
13:22 mode/#code [+o gnolam] by ChanServ
13:24 GeekSoldier [~Rob@Nightstar-8249.dip.t-dialin.net] has quit [Ping Timeout]
14:17 Vornicus-Latens is now known as Vornicus
15:39 Mojo1978 [~Mojo1978@Nightstar-14878.hsi.ish.de] has quit [Connection reset by peer]
16:06
<@ToxicFrog>
Hmm.
16:06
<@ToxicFrog>
So if I were to completely ignore the lua aspect, and write this as a C library, how would it work?
16:08 GeekSoldier [~Rob@Nightstar-8224.dip.t-dialin.net] has joined #code
16:08 mode/#code [+o GeekSoldier] by ChanServ
16:11
< NSGuest-6523>
terribly!
16:11
<@ToxicFrog>
I can't use SGOS-style SRR; I need some means of synchronizing the threads for the actual message pass and releasing them when it's finished.
16:11
<@ToxicFrog>
Alternately, I could just go "screw it, this is too much work" and leave it tightly coupled to lua.
16:32 * ToxicFrog attempts to eliminate race conditions from the thread shutdown code
16:32
<@ToxicFrog>
I think I need another mutex >.<
16:34
<@ToxicFrog>
Actually, no, I can use the existing one.
16:34
<@ToxicFrog>
Sender: lock mutex, check thread status; if status is dead, unlock mutex and raise error, otherwise add self to list, unlock mutex, and sleep.
16:35
<@ToxicFrog>
Shutdown: lock mutex, change status to dead, clean up all blocked threads, free subobjects, decrement reference count
16:35
<@ToxicFrog>
And unlock mmutex.
16:36
<@ToxicFrog>
This ensures that when the thread starts shutting down, all previous threads will have finished adding themselves to the list, and all subsequent threads will see it as dead and raise an error.
16:42
< NSGuest-6523>
ok
17:01
<@ToxicFrog>
...oh, goddamnit.
17:02
<@ToxicFrog>
The way my synchronization code works, it's possible for invalid arguments in send() to not be detected until it's received
17:02
<@ToxicFrog>
At which point the sender raises an error and the receiver is in limbo, having just received a message that doesn't actually exist
17:02
<@ToxicFrog>
I need to fix this.
17:15 You're now known as TheWatcher[afk]
18:06 AnnoDomini is now known as Lance
18:41 You're now known as TheWatcher
18:47 gnolam [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has quit [Quit: Reboot]
18:58 gnolam [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has joined #Code
18:58 mode/#code [+o gnolam] by ChanServ
19:09 NSGuest-6523 is now known as Doctor_Nick
19:10 Doctor_Nick is now known as NSGuest-6528
19:25 Brother_Willibald [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has joined #Code
19:25 gnolam is now known as NSGuest-6530
19:25 Brother_Willibald is now known as gnolam
19:25 NSGuest-6530 [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has quit [Ping Timeout]
20:20 NSGuest-6528 is now known as Doctor_Nick
20:21 Doctor_Nick is now known as NSGuest-6532
20:23 ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has quit [Operation timed out]
20:32 ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has joined #code
20:32 mode/#code [+o ToxicFrog] by ChanServ
20:34 NSGuest-6532 is now known as Doctor_Nick
21:32
<@ToxicFrog>
Gnar.
21:32
<@ToxicFrog>
I don't want to drop the mask feature, because it can't be easily implemented outside the library.
21:32
<@ToxicFrog>
But it's a pain in the ass.
21:43
< Doctor_Nick>
ganbatte, ToxicFrog-san~
21:44
<@ToxicFrog>
On the other hand, I can omit it for now, and adding it later won't break existing code~
21:50
< Vornicus>
okay. Hand-writing concat statements in Excel is liquid pain
21:51 Lance is now known as AnnoDomini
21:51
< Vornicus>
Not that it's much nicer in any other language...
21:52
< Doctor_Nick>
welp
21:53
<@ToxicFrog>
Concatenation of what?
21:53
< Vornicus>
strings.
21:54
< Vornicus>
When you're building a string that can be eval'd from a dozen or so inputs.
21:54
< Vornicus>
what with all the quotes and escaping.
21:55
< Vornicus>
well, okay. % work would be cool about now
22:00
<@ToxicFrog>
Aah.
22:00
<@ToxicFrog>
%?
22:00
< Vornicus>
% formatting
22:01
<@jerith>
Python's string formatting operator.
22:01
<@C_tiger>
printf
22:01
<@ToxicFrog>
As in, "%X" % 10 as equivalent to sprintf("%X", 10)?
22:01
< Vornicus>
yes
22:01
<@ToxicFrog>
That reminds me.
22:01
<@ToxicFrog>
I keep meaning to port that to lua, because it's a totally sweet idea.
22:01
<@jerith>
"foo %s bar %2f" % ("str", 23.5)
22:01
< Vornicus>
TF: I'd also look at python 3.0's format function; it's a bit more awesome.
22:02 * jerith should look at that.
22:02
<@ToxicFrog>
Well, we already have a format function
22:02
<@ToxicFrog>
I mean the % operator applied to strings specifically
22:05
<@ToxicFrog>
That was surprisingly easy.
22:05
<@ToxicFrog>
getmetatable("").__mod = function(fmt, data) return fmt:format(unpack(data)) end
22:06
< Vornicus>
THat was surprisingly easy.
22:07
< Doctor_Nick>
That was surpisingly easy.
22:09
<@ToxicFrog>
getmetatable("").__mod = function(fmt, data) return fmt:format(unpack(type(data) == "table" and data or {data})) end
22:09
<@ToxicFrog>
A more forgiving version that lets you drop the {} when there's only a single substitution to be made.
22:13
<@ToxicFrog>
bkelly@b-kelly:~/devel$ env LUA_PATH='./?.lua;./?/init.lua' lua -lutil -e 'print( "foo %s bar %d" % { "baz", 10 } )'
22:13
<@ToxicFrog>
foo baz bar 10
22:13
<@ToxicFrog>
yaye
22:14
<@ToxicFrog>
aaand commmitted to git
22:15
< Doctor_Nick>
how do you like git compared to other VCSs?
22:16
<@ToxicFrog>
It's my favorite so far.
22:16
< Doctor_Nick>
hmm
22:17
<@ToxicFrog>
*way* easier to set up and use than SVN or CVS, and I like the semantics more than SVN or Perforce.
22:17
< Doctor_Nick>
have you used DARCS?
22:17
<@ToxicFrog>
I haven't tried Mercurial, which I understand is very similar.
22:17
<@ToxicFrog>
I don't know anything about DARCS.
22:17
< Doctor_Nick>
ok
22:17
<@ToxicFrog>
Distributed ??? Revision Control System?
22:17
< Doctor_Nick>
i'm starting a project soon and i need to set up a vcs
22:17
< Doctor_Nick>
I dunno
22:17
<@jerith>
Darcs, git and mercurial seem to be fairly similar in featureset and general philosophy.
22:18
< Doctor_Nick>
my friend was all up ons about it
22:18
< Doctor_Nick>
but he's that way about anything haskell
22:18
<@ToxicFrog>
git (and distributd VCSes in general) tend to be very easy to set up because they don't require a central server
22:18
<@jerith>
I've used darcs and hg a bit.
22:18
<@ToxicFrog>
And git at least will talk over SSH, so even if you're keeping your code on a remote server you don't need to run gitd.
22:18
< Doctor_Nick>
oh, cool
22:19
<@jerith>
That's a win over darcs. I think.
22:19
< Doctor_Nick>
almost all my coding is going to be through ssh so
22:20
<@ToxicFrog>
(let's see...man page says it talks read-write on local, rsync, and ssh repos, and read-only on http, https, and gitd)
22:21
<@ToxicFrog>
Nod
22:22
<@ToxicFrog>
It's pretty cool about cloning repos and the like - you can say "git clone ssh://user@host/repo.git" to get a local copy, and it'll remember where it was originally cloned from so that "git pull" and "git push" automatically talk to that repo by default
22:23
< Doctor_Nick>
cool
22:23
<@ToxicFrog>
All the usual DVCS features...branching, deltified storage, diffs, per-file and per-change commit staging, stashing and unstashing
22:24
<@ToxicFrog>
The GUI tools are kind of rough, though, from what little I've used them.
22:26
< Doctor_Nick>
like i said, this is all gonna be through ssh, so i dont need any gui tools ;)
22:27
<@ToxicFrog>
Aah yes. Will you be doing the actual development on the remote system, or developing locally (with, say, an X-capable editor) and syncing to the remote system for testing and the like?
22:27
< Doctor_Nick>
i think im just gonna use emacs on that system
22:28
<@ToxicFrog>
Nod
22:28
< Doctor_Nick>
i was thinking about using sshfs but I can't because I have to do an ssh into the cs shell and then to my specific computer
22:28
<@ToxicFrog>
And in that case you don't even need the ssh transport for your VCS, you just keep it all on the remote system
22:28
<@ToxicFrog>
aaah
22:28
<@ToxicFrog>
Yeah, I'm in a similar situation with the CS lab machines here
22:29
< Doctor_Nick>
hope it doesn't hard lock while im at home :)
22:29
<@ToxicFrog>
However, I have a world-facing SSH server
22:29
<@ToxicFrog>
So generally what I do is develop locally, and when I need to test it on the lab machine, I ssh to the gateway, from there to the lab machine, and from there I rsync or git-pull my changes from my home machine
22:30
<@ToxicFrog>
Rather than copying them to the gateway, and from there to the lab system.
22:31
< Doctor_Nick>
hmm
22:32
< Doctor_Nick>
maybe ill just do that
22:32
<@ToxicFrog>
I keep the master repo on my home machine, and if I end up making changes on the lab machine (either physically in the lab, or over ssh as I find a fix needs to be made while testing remotely or the like) I can push them back.
22:34
< Doctor_Nick>
yeah
22:35
< Doctor_Nick>
it's probably a good idea to store the canonical copy on the lab computer so my partners can access it, and just push any changes that i know are safe
22:37
<@ToxicFrog>
Nod
22:37
< Doctor_Nick>
I hate yum sooooo much
22:37
<@ToxicFrog>
Why?
22:37
< Doctor_Nick>
very slow and crashes on this system often
22:37
<@ToxicFrog>
Aah.
22:39
<@ToxicFrog>
Anyways, for that setup, best approach is probably to create a "bare" repo on the lab machines, and everyone does clone/push/pull on that
22:39
<@ToxicFrog>
simplifies synchronization
22:40
< Doctor_Nick>
"bare"?
22:40
< Vornicus>
...and apparently Excel's concatenate only takes 30 inputs.
22:40
<@ToxicFrog>
(although there are other idioms you can use; such as having the master repo be your working copy, and everyone else pushes into an "incoming" branch which you then merge into the main branch)
22:40
< Doctor_Nick>
gg
22:40
<@ToxicFrog>
bare == no working copy
22:41
< Doctor_Nick>
?
22:41
<@ToxicFrog>
A repo that holds all the project history and can be synced from and to, but is not used directly for development
22:41
< Doctor_Nick>
oh
22:41
< Doctor_Nick>
i see
22:41 * Vornicus rejiggers, cuts it down a lot by turning 3 into 1 six times over.
22:41
<@ToxicFrog>
A normal git repo contains both the version history (in .git) and a working copy which you can edit.
22:42
<@ToxicFrog>
"commit" saves those edits to the version history, and push/pull/fetch/merge/etc synchronize those edits with other branches or repos.
22:42
< Doctor_Nick>
ok
22:43
<@ToxicFrog>
A bare repo is used only for synchronization; you can push to it and pull from it, but it has no working copy you can edit directly - if you cd into it, you instead find the internals of the revision history.
22:43
< Doctor_Nick>
would i still be able to clone it locally?
22:43
<@ToxicFrog>
Yep
22:43
< Doctor_Nick>
ok
22:44
<@ToxicFrog>
None of the commands care what transport you use
22:44
<@ToxicFrog>
(this is in fact how I do my development; bare repos are in /usr/src and are exposed to the world read-only. My working copies are cloned from them and kept in ~/devel on the same machine.)
22:44
< Doctor_Nick>
aah, ok
22:45
<@ToxicFrog>
(I *could* expose my working copies to the world, and sync to/from them directly from my other systems, but there are potential complications involved with pushing to a branch that is *also* the currently checked out working copy)
22:46
<@ToxicFrog>
(using a bare repo completely avoids these complications, since it never has anything checked out, at the cost of having to keep a second repo around)
22:47
< Doctor_Nick>
how does it handle patching two versions of the same file pushed to it?
23:34 AnnoDomini [AnnoDomini@Nightstar-29058.neoplus.adsl.tpnet.pl] has quit [Quit: ...and when Mr. Bigglesworth gets upset, people die!]
23:49
<@ToxicFrog>
As in, person A commits, then person B commits changes to the same files?
23:49
<@ToxicFrog>
It'll tell person B that they need to re-pull and merge the changes
23:50
<@ToxicFrog>
And once they've done that it'll accept it.
23:50
<@ToxicFrog>
It can auto-merge if the changes are nonconflicting, or you can do it manually whether they conflict or not.
23:54
< Doctor_Nick>
yeah
23:55
< Doctor_Nick>
ok
--- Log closed Sat May 17 00:00:31 2008
code logs -> 2008 -> Fri, 16 May 2008< code.20080515.log - code.20080517.log >