code logs -> 2013 -> Fri, 12 Jul 2013< code.20130711.log - code.20130713.log >
--- Log opened Fri Jul 12 00:00:31 2013
00:07 Derakon[AFK] is now known as Derakon
00:26
<&ToxicFrog>
McMartin: sweet
00:26
<&ToxicFrog>
We're agitating for it >.>
00:26
<&ToxicFrog>
Scala seems to be getting some traction.
00:30 Typh|offline [Typherix@Nightstar-7dc8031d.mi.comcast.net] has joined #code
00:30 Turaiel[Offline] [Brandon@Nightstar-7dc8031d.mi.comcast.net] has joined #code
00:36
<&McMartin>
TF: Well, sadly, the excuse is "this is a one-shot analysis that nobody else has to make work"~
02:03 Derakon is now known as Derakon[AFK]
02:20 Syloq [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Operation timed out]
02:21 Syloq [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code
02:21 mode/#code [+o Syloq] by ChanServ
02:26 RichyB [RichyB@D553D1.68E9F7.02BB7C.3AF784] has quit [[NS] Quit: Gone.]
02:29 RichyB [RichyB@D553D1.68E9F7.02BB7C.3AF784] has joined #code
02:29 Typh|offline is now known as Typherix
02:30 Derakon[AFK] is now known as Derakon
02:48 Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has quit [Client exited]
02:58 Turaiel[Offline] is now known as Turaiel
03:09 Karono [Karono@Nightstar-0e4527e4.optusnet.com.au] has joined #code
03:10 Turaiel is now known as Tunpack
03:12 Typherix is now known as Typh|offline
04:08 Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has quit [Ping timeout: 121 seconds]
04:08 Kindamoody[zZz] is now known as Kindamoody
04:10 Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has joined #code
04:10 mode/#code [+o Orthia] by ChanServ
04:15 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [[NS] Quit: Program Shutting down]
04:19 Karono [Karono@Nightstar-0e4527e4.optusnet.com.au] has quit [Client closed the connection]
04:19 Karono_ [Karono@Nightstar-0e4527e4.optusnet.com.au] has joined #code
04:21 Karono_ is now known as Karono
04:56 Tunpack is now known as Tur|Shower
05:06 Tur|Shower is now known as Turaiel[Offline]
05:10 Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code
05:10 mode/#code [+ao Derakon Derakon] by ChanServ
05:17 Turaiel[Offline] is now known as Turaiel
05:24 Derakon is now known as Derakon[AFK]
05:47 * McMartin snickers at the handle "Death .cab for qt"
05:48 * Alek snerks.
05:48
<@Alek>
nice.
06:00 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code
06:00 mode/#code [+qo Vornicus Vornicus] by ChanServ
06:08 ^Xires is now known as Xires
06:46 McMartin [mcmartin@Nightstar-7130bbf8.pltn13.sbcglobal.net] has quit [[NS] Quit: brb]
06:49 McMartin [mcmartin@Nightstar-7130bbf8.pltn13.sbcglobal.net] has joined #code
06:49 mode/#code [+ao McMartin McMartin] by ChanServ
06:54 Turaiel is now known as Turaiel[Offline]
07:19 celticminstrel [celticminst@Nightstar-8403057e.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
07:29 ErikMesoy [Erik@A08927.B4421D.FE7332.704AA5] has joined #code
07:34 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
07:48 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
07:48 mode/#code [+o himi] by ChanServ
07:48 Kindamoody is now known as Kindamoody|out
08:14
< [R]>
Thank you Oracle for your excellent nio example file.
08:15
< [R]>
I appreciate that most lines are randomly duplicated
08:15 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
08:15
< [R]>
Also the "entry point" comment for `static void main` greatly assisted my understanding of non-blocking I/O.
08:34
< ktemkin[work]>
There's no comment like an inane comment.
08:35
< ktemkin[work]>
I've had students submit projects where it's obvious that one person wrote the code, and the other commented it.
08:36
< ktemkin[work]>
void motor_enable() //enables the motor
08:42 Karono [Karono@Nightstar-0e4527e4.optusnet.com.au] has quit [[NS] Quit: ]
09:03 Karono [Karono@Nightstar-a97724cd.optusnet.com.au] has joined #code
09:04
<@Tarinaky>
dpkg is the only installer I know of that ddoesn't check dependancies until /after/ installing the software :/
09:04
<@Tarinaky>
Bloody Ubuntu :/
09:12 Netsplit *.net <-> *.split quits: @Pandemic, @Orthia, @Reiv, @PinkFreud, Typh|offline, sshine, Azash, ktemkin[work], @McMartin, @jerith, (+2 more, use /NETSPLIT to show all of them)
09:13 Netsplit over, joins: PinkFreud, Pandemic, sshine, Azash, Alek, [R]
09:13 VirusHome [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
09:13 Netsplit over, joins: &jerith, @Orthia, &McMartin, @Reiv, ktemkin[work], Typh|offline
09:13 ServerMode/#code [+oooaoaooo Pandemic Alek PinkFreud jerith jerith McMartin McMartin Orthia Reiv] by *.Nightstar.Net
09:14 Pandemic [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Ping timeout: 121 seconds]
09:32 You're now known as TheWatcher
09:37 Vornicus is now known as Vash
09:43 [R] [rstamer@genoce.org] has quit [Ping timeout: 121 seconds]
09:44 [R] [rstamer@4CA975.228F8B.B8F8FC.CBE31C] has joined #code
09:44 sshine [simon@Nightstar-2aa33f9d.pronoia.dk] has quit [Ping timeout: 121 seconds]
09:45 sshine [simon@Nightstar-2aa33f9d.pronoia.dk] has joined #code
--- Log closed Fri Jul 12 09:48:33 2013
--- Log opened Fri Jul 12 09:48:53 2013
09:48 TheWatcher [chris@Nightstar-3762b576.co.uk] has joined #code
09:48 Irssi: #code: Total of 36 nicks [13 ops, 0 halfops, 0 voices, 23 normal]
09:48 mode/#code [+o TheWatcher] by ChanServ
09:49 Irssi: Join to #code was synced in 38 secs
10:26 Vash [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving]
11:03
<@froztbyte>
Tarinaky: uh, rpm does that too
11:04
<@froztbyte>
what are you doing dealing directly with dpkg?
11:05
<@froztbyte>
(it also doesn't install it, it only completes a single stage/phase)
11:21
<@Tarinaky>
Installing a package supplied as a .deb.
11:21
<@Tarinaky>
(Steam)
11:22
<@Tarinaky>
I found the problem anyway. I forgot Ubuntu wasn't rolling release and the computer I was installing on to was using an older version of Ubuntu.
11:23
<&McMartin>
How old? I run it on Precise.
11:23
<@Tarinaky>
Not sure. Three years?
11:23
<@Tarinaky>
It's not my box.
11:24
<@Tarinaky>
Mostly I'm just surprised with the implication that dpkg isn't the right tool for unpacking .deb files.
11:24
<@Tarinaky>
I was told it was.
11:25 * Tarinaky begins to pine for Arch.
11:25
<@Tarinaky>
Well, for Pacman.
11:25
<@Tarinaky>
Arch sucks these days :/
11:25
< Syka_>
um
11:25
< Syka_>
dpkg is the correct tool for *installing* .deb files
11:26
< Syka_>
to unpack them, just use gzip, because theyre really renamed .tar.gzs
11:26
<@Tarinaky>
By unpack I meant unpack into /
11:26
<@Tarinaky>
aka install.
11:26
< Syka_>
...so you mean install
11:26
< Syka_>
also uh
11:26
< Syka_>
you're not attempting to run steam on ubuntu 9.04 are you
11:27
<@Tarinaky>
I think it's at least 10 or 11.
11:27
<&McMartin>
12.04 is the minimum req
11:27
< Syka_>
12.04 is the minimum version that steam supports, yeah
11:27
<@Tarinaky>
I have Ubuntu upgrading.
11:27
< Syka_>
expect everything (and I mean everything) to break
11:27
<@Tarinaky>
I just spend ages frustrated at apt-get telling me it couldn't find a newer version of libc :/
11:27
<@Tarinaky>
Really?
11:28
<@froztbyte>
<Tarinaky> Mostly I'm just surprised with the implication that dpkg isn't the right tool for unpacking .deb files.
11:28
<@froztbyte>
this assertion is wrong
11:28
<@froztbyte>
very wrong
11:28
<@Tarinaky>
froztbyte: "what are you doing dealing directly with dpkg?
11:28
< Syka_>
Tarinaky: the best thing to do, is have /home on a seperate partition
11:28
<@froztbyte>
but indeed it sounds like your problem was elsewhere
11:28
< RichyB>
Can't you "apt-get install ./foo.deb"?
11:28
<@froztbyte>
Tarinaky: there are few occasions where it's necessary, but it's not incorrect to have to do so
11:29
< Syka_>
i think the implication was
11:29
< RichyB>
yum will deal with .rpm files directly if you have one lying around.
11:29
<@Tarinaky>
Is installing a .deb one of those few occasions?
11:29
< Syka_>
"why are you not using your repos"
11:29
< Syka_>
because installing .debs almost always means you're doing it wrong
11:29
< RichyB>
Of course that doesn't help Tarinaky with the underlying "using the wrong version of Ubuntu entirely" problem.
11:29
< Syka_>
or rather
11:29
< Syka_>
manually downloading and installing
11:30
< RichyB>
Is the Steam installer in the Ubuntu Software Centre yet?
11:30
< Syka_>
i think so
11:30
< Syka_>
it might be in the partner repos
11:30
<@Tarinaky>
Steam updates outside of the package manager.
11:30
<@froztbyte>
there's a couple of times where the .deb in question would be applying a repo config, such as with savonet's airtime installer
11:30
<@Tarinaky>
The .deb is just to bootstrap it.
11:30
< Syka_>
Tarinaky: no it doesn't, not entireley
11:30
<@froztbyte>
they have a package called airtime-easy-setup
11:30
< Syka_>
I have a steam:i386 update every so often
11:31
<@froztbyte>
which half-installs (pre-install drops a repo config file down in /etc/apt/sources.list.d)
11:31
<@froztbyte>
and then do depends
11:31
<@Tarinaky>
Hunh, okay.
11:31
< Syka_>
also, Tarinaky, you'll probably want ubuntu 12.10
11:31
< Syka_>
not 12.04
11:31
<@froztbyte>
after that you to `apt-get -f install` for "fixing"
11:31
<@froztbyte>
it's a bit of a janky way
11:31
<@froztbyte>
but it does "work"
11:31
<@Tarinaky>
Syka_: The updater only had one "update" button.
11:31
<@froztbyte>
steam does a similar thing
11:31
< Syka_>
oh it's probably taking you on some wild ride then
11:31
<@Tarinaky>
I don't remember what version it's fetching.
11:32
< Syka_>
https://apps.ubuntu.com/cat/applications/steam-launcher/
11:32
<@Tarinaky>
I've had to run other errands since.
11:32
< Syka_>
also, related
11:32
<@froztbyte>
Syka_: I've not run steam on linux enough, so I've noticed their update mechanism weirding out
11:32
<@froztbyte>
it's partly debian-packaged
11:32
<@froztbyte>
and partly binary updates it pulls through on its own
11:32
<@froztbyte>
I've not looked into it in depth, but it feels like they're doing something in some shitty way
11:32
< Syka_>
yeah
11:33
< Syka_>
it's kind of... shitty, yeah
11:33
<@TheWatcher>
... ahaha
11:33
< Syka_>
Steam is a package manager unto itself
11:33 * TheWatcher sigh
11:33
< Syka_>
which means ~fun~ ocurrs
11:33
< Syka_>
occurs*
11:33
<@Tarinaky>
Yo dawg~
11:34
<@froztbyte>
RichyB: I'm not sure if you can install a file directly with apt
11:34
<@Tarinaky>
None of this changes the fact that pacman is a fucking awesome package manager and I miss it :/
11:34
< RichyB>
Long live pacman~
11:34
<@Tarinaky>
Pity about the distro.
11:34
<@froztbyte>
some quick checking around indicates that it doesn't support it
11:35
<@froztbyte>
(which I'm not too surprised about0
11:35
<@froztbyte>
s/0/)/
11:36
<@Tarinaky>
4 hours to install the updates o.O
11:37
<@Tarinaky>
Either the read/write head is made of treacle or something seriously weird is happening.
11:45
<@froztbyte>
`iostat -x -m 1`
11:47
<@TheWatcher>
OR maybe it just has a shitton to download and update? >.>
11:48
<@Tarinaky>
It only took 45 minutes to download.
11:49
<@Tarinaky>
At... about 400 kbit/s
11:49
<@Tarinaky>
Bulk transfer to a local harddisk should be at least an order higher.
11:51
<@froztbyte>
400 kbit/s sounds terribly slow
11:51
<@Tarinaky>
We're used to it.
11:51
<@froztbyte>
sounds like you need to employ some stabbing!
11:52
<@froztbyte>
but seriously, your internet is sub-megabit?
11:52
<@Tarinaky>
No cable.
11:52
<@Tarinaky>
And a very poor ADSL signal.
11:52
<@froztbyte>
ouch
11:52
<@froztbyte>
it's been quite a while since I've seen anyone in !.za have such crappy performance
11:53
<@TheWatcher>
Vast swathes of the UK do
11:56
<@Tarinaky>
This is usually the point where someone tries to mis-attribute the blame on the privatisation of British Telecom.
11:56
<@TheWatcher>
Oh, no
11:57
<@TheWatcher>
ISPs with hilarious contention ratios, hilariously patchy infrastructure maintenance
11:57
<@TheWatcher>
The entire thing is jjust laughable, really
11:57
<@Tarinaky>
In this case, it's actually the fault of new-build developers.
11:57
<@Tarinaky>
Home building, in the UK, is a scam.
11:58
<@Tarinaky>
Our little private road is right off a main road with cable and all the rest.
11:58
<@TheWatcher>
What, you mean shoebox slaptogethers?
11:58
<@Tarinaky>
But when they build the houses they underspecced basically every utility.
11:59
<@Tarinaky>
So we had rolling powercuts for the first 2 years.
11:59
<@TheWatcher>
Sounds 'bout right
11:59
<@Tarinaky>
Then we had the sewage pump go.
11:59 Orth [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has joined #code
12:00 Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has quit [Ping timeout: 121 seconds]
12:04
<@Tarinaky>
It's part of why I want to leave the country :/
12:05
<@Tarinaky>
Someone on IRC once showed me some pictures of somewhere in Flanders or Holland or something that they were thinking of renting for their small family.
12:06
<@Tarinaky>
The rent was about the same as I'm paying for a study bedroom :/
12:06
<@Tarinaky>
On the downside, you have to put up with the Dutch I guess :p
12:07
< RichyB>
The Dutch are mostly lovely.
12:07
<@Tarinaky>
I'm sure they are; their TV probably sucks though.
12:07
<@Tarinaky>
Given I don't speak anything except English >.<
12:07
< RichyB>
I'd still rather hang out with the Finns, but then you have to deal with expensive booze and unending night in winter. :)
12:08
< RichyB>
)
12:08
< RichyB>
;)
12:08
<@Tarinaky>
We have awesome TV in the UK out of necessity.
12:08
<@Tarinaky>
Otherwise we'd all walk off a roof or something.
12:09
<@Tarinaky>
The hope and anticipation of watching David Mitchel saying something funny to Stephen Fry, or one of the Top Gear presenters suffering a life-changing injury is the only thing that keeps us going.
12:10
< Syka_>
i dunno, david mitchell by himself is pretty good too
12:11
<@Tarinaky>
He needs someone to get him rilled up first.
12:11 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
12:11 mode/#code [+o himi] by ChanServ
12:11
<@Tarinaky>
And if anyone's going to poke him with a stick it might as well be Fry.
12:11
<@Tarinaky>
Given Steve Irwin is notoriously difficult to book these days.
12:12 * TheWatcher blinks
12:12
<@TheWatcher>
TV must have changed. I stopped having anything to do with it around 2000 or so, and then it was an unending stream of banal crap.
12:13 ktemkin[work] is now known as ktemkin[awol]
12:13
<@Tarinaky>
TheWatcher: You missed out on Monkey Dust then, I heartily recommend you checking it out.
12:13
< Syka_>
TV still is
12:13
<@Tarinaky>
It's a little bit dated now though.
12:13
< Syka_>
public broadcasters not as much though
12:13
<@Tarinaky>
Monkey Dust was deliciously twisted.
12:14
< Syka_>
eg. bbc, australian abc, al jazeera
12:14
<@Tarinaky>
Sturgeon's Law applies to Television.
12:14
< Syka_>
whats sturgeons law again
12:14
<@Tarinaky>
It's just people feel a great amount of learned helplessness towards it.
12:14
<@Tarinaky>
90% of everything is crap.
12:15
< Syka_>
well
12:15
< Syka_>
i guess we're not the target audience
12:15
<@Tarinaky>
Nah, not just that.
12:15
< Syka_>
we can breathe without dedicating most of our thought power to it, for imstamce
12:15
<@Tarinaky>
Show's budgets are different.
12:16
<@Tarinaky>
Because some shows are filler.
12:16
<@Tarinaky>
The horse meat in your burger.
12:16
<@Tarinaky>
But there's usually a couple of hours of quality programming in the anglosphere each week.
12:23
<@Tarinaky>
Probably not worth a TV license though, given most of it is on either youtube or iplayer >.>
12:24
< Syka_>
well, you need the tv license for iplayer :P
12:24
<@Tarinaky>
TV license is like... a few hundred quid a year. You can buy a lot of DVDs for that much.
12:24
<@Tarinaky>
Nope.
12:24
<@Tarinaky>
You only need TV license to watch iplayer live.
12:24
<@Tarinaky>
And even then it's not on particularly firm legal footing.
12:25
< Syka_>
hm
12:26
<@Tarinaky>
I will accept though that the TV license is what allows the stuff to actually be put on the iplayer in the first place.
12:28
<@Tarinaky>
But... well... You can buy a few boxed sets for the price of a TV license >.<
12:29
<@Tarinaky>
To say nothing of Netflix >.<
12:39 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
12:58 AverageJoe [evil1@Nightstar-4b668a07.ph.cox.net] has joined #code
13:03 AverageJoe [evil1@Nightstar-4b668a07.ph.cox.net] has quit [[NS] Quit: Leaving]
13:30
<@Namegduf>
Tarinaky: You can also get Netflix
13:30
<@Namegduf>
I have a Roku and no intention of paying for a TV licence
13:54
<@Tarinaky>
Namegduf: Netflix is better value than buying DVD boxsets.
13:54
<@Tarinaky>
Is what I meant.
13:54
<@Tarinaky>
Also: WOW, vanilla Ubuntu is slow and clunky :/
13:54
<@Tarinaky>
*modern
13:55 * Tarinaky has only played with lubuntu.
14:30 VirusHome [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [[NS] Quit: shutting down!]
14:45 Pandemic [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
14:45 mode/#code [+o Pandemic] by ChanServ
14:56
<&ToxicFrog>
Tarinaky: switch to 2d mode.
14:57
<&ToxicFrog>
The default ubuntu UI actually needs a fairly capable video card.
15:00
<@iospace>
would a GTX 670 count? :3
15:01
<&ToxicFrog>
I have no idea, I don't follow Pokemon.
15:01
<@iospace>
...
15:01
<@iospace>
wat
15:01
<@iospace>
a Nvidia GTX 670
15:01 * iospace whaps ToxicFrog
15:02
<&ToxicFrog>
More seriously, I have no idea how to interpret nV model numbers.
15:04
<@Tamber>
"if you double it, you get the price"
15:10 * TheWatcher eyes this student data code with an increasing sense of Impending Doom.
15:10
<@TheWatcher>
Nowhere in the feed does it actually say which academic year these students are for, so unless it switches on the first day of the academic year... this will be horrible.
15:12
<@Tarinaky>
ToxicFrog: How do I do that?
15:13
<&ToxicFrog>
Tarinaky: log out, click the little ubuntu icon next to your name on the login screen, choose "ubuntu 2d"
15:13
<&ToxicFrog>
This is also where stuff like KDE and XFCE appear.
15:13
<@iospace>
ToxicFrog: the 670 was the 2nd best single GPU card nvidia had last generation
15:15
<&ToxicFrog>
So like a 6900 equivalent or thereabouts. Ok. Yeah, that counts.
15:15
<&ToxicFrog>
Assuming the nV drivers deign to work~
16:09
<@Tamber>
<NeckbeardHacker> 2003: "I replaced you with a set of very small shell scripts."\n2013: "I replaced your scripts with a six-figure enterprise DevOps platform."
16:14
<@TheWatcher>
Oh, god
16:15
<@TheWatcher>
Dear sweet Azathoth, they update which academic year comes through on the data feed by hand
16:15 * TheWatcher headdesks
16:17
<@TheWatcher>
And without actually including that year in the feed, I need to either manually change which year I expect, or engage in Shenanigans to work out that they've changed it. Brilliant.
16:56 Secure [sapies@Nightstar-e140609f.home.otenet.gr] has joined #code
16:56
< Secure>
hi
16:56
< Secure>
kalisperes
16:57 Secure [sapies@Nightstar-e140609f.home.otenet.gr] has quit [[NS] Quit: ]
17:04
<&ToxicFrog>
Huh.
17:07 Typh|offline is now known as Typherix
17:09
<@gnolam>
Would've been funnier with "Kallisti".
17:15 Karono [Karono@Nightstar-a97724cd.optusnet.com.au] has quit [[NS] Quit: zzz]
17:37 celticminstrel [celticminst@Nightstar-8403057e.dsl.bell.ca] has joined #code
17:37 mode/#code [+o celticminstrel] by ChanServ
18:09 celticminstrel [celticminst@Nightstar-8403057e.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
18:20 * iospace grumbles, waiting on commits from a co-worker
18:33
< Syka_>
oh shit github update
18:33
< Syka_>
it now shows your languages on your profile
18:34
< Syka_>
it says i use ruby
18:34
< Syka_>
it was just the sass config :<
18:50
<&ToxicFrog>
Mine says I use [lua C shell], which is accurate
18:51
<&ToxicFrog>
If incomplete
18:51
<&ToxicFrog>
I wish there were a way to override its language detection, though; it keeps mis-detection lua scripts without extensions as perl.
19:05 Typherix is now known as Typh|offline
19:23 Typh|offline is now known as Typherix
20:02 Derakon [chriswei@Nightstar-a3b183ae.ca.comcast.net] has joined #code
20:02 mode/#code [+ao Derakon Derakon] by ChanServ
20:03
<&Derakon>
Hm, bossman wants me to enable joystick control of the new sample positioning system we got.
20:03
<&Derakon>
Problem being that the joystick support provided by the vendor doesn't go through my control software.
20:03
<&Derakon>
Including the rather important positioning safeties that keep it from crashing into other bits of equipment.
20:05 Kindamoody|out is now known as Kindamoody
20:15
<&Derakon>
In other news, now that Pyrel's [de]serialization system is working, how the hell do I make it work fast? O_o
20:16
<&McMartin>
"C++, Python, C"
20:16
<&Derakon>
Hmm?
20:16
<&McMartin>
Pretty sure that ought to be "Python, C, C++" by regularity~
20:16
<&McMartin>
github's idea of my languages
20:16
<&Derakon>
Ah.
20:16
<&McMartin>
Though I guess argle is 100% C++.
20:17
<&ToxicFrog>
I'm pondering submitting a patch to Linguist, if I can get it to detect lua more reliably.
20:18
<&McMartin>
Ha ha ha ha
20:18
<&McMartin>
OK, I see now
20:18
<&McMartin>
.h files that don't have #ifdef __cplusplus in them count as C++ headers and not C ones~
20:19
<&Derakon>
Wat
20:19
<&ToxicFrog>
It thinks ss1edit is mostly perl, for example.
20:19
<&McMartin>
Derakon: https://github.com/michaelcmartin/monocle/search?l=c%2B%2B
20:19
< Syka_>
mine says ruby :<
20:19
<&ToxicFrog>
...although looking at it, it thinks this partly because 'res' and 'map' don't have extensions and it detets them as perl for some reason
20:19
<&McMartin>
All the other .h files are identified as C.
20:19
< Syka_>
my only ruby is a config file for compass ;v;
20:20
<&ToxicFrog>
But mostly because the old SPECS file, which is plain text, gets detected as perl.
20:20
<&ToxicFrog>
I should probably double check that everything in SPECS has been split into other files and then delete it.
20:21
<@Tamber>
If it's the thing displayed just above location, mine is apparently: Perl, Lua. ...reasonably accurate.
20:21
<@TheWatcher>
Perl, Javacript, Shell ... yeah, probably right.
20:21
<&McMartin>
Tamber: That's been right there since the first redesign.
20:21
<&McMartin>
The new thing is on your userpage
20:23
<&ToxicFrog>
Yeah, my user estimate is accurate, it's just confused about some specific projects.
20:23
<@Tamber>
I have /no clue/ what's been added/removed since redesign. But, I'm looking at my userpage; it's sandwiched below my username and above my location, yes?
20:34
<&Derakon>
Bleh. With profiling, 21.5s to save the game in Debug Town.
20:34
<&Derakon>
For a 25MB result file.
20:36 Kindamoody is now known as Kindamoody[zZz]
20:37
<&McMartin>
Everybody knows what happens in Debug Town, but nobody talks about it once they leave.
20:39
<&Derakon>
"Debug Town" is just the hardcoded experimental environment, as opposed to the normal town with stores and a staircase in the dungeon.
20:39
<&Derakon>
Normal Town hasn't actually been implemented yet~
20:41
<&Derakon>
7.5 million calls to isinstance, yikes.
20:41
< RichyB>
Derakon: you're not multithreaded, right?
20:42
< RichyB>
(Since it's Python, ideally you should not be.)
20:42
<&Derakon>
No, I'm not.
20:42
< RichyB>
Excellent. Use statprof.
20:42
<&Derakon>
Multithreading this would be tricky.
20:42
<&Derakon>
I'm using cProfile right now.
20:42
<&Derakon>
Hm, will give statprof a shot, thanks.
20:43
< RichyB>
And pointless, too. Threading in all current Python implementations except Jython is completely pointless unless you're I/O bound with high I/O throughput and latency.
20:43
< RichyB>
cProfile does some work on every function call, so it's really expensive and distorts your profiles a lot.
20:44
< RichyB>
statprof interrupts your program on a timer and counts how many times each function appears on the stack. MUCH more accurate results; distortion caused by this strategy in C programs is small, in Python, good luck trying to measure it.
20:44 * Derakon nods.
20:44
< RichyB>
Also imperceptible overhead.
20:45
< RichyB>
You're working on the saveload branch, right?
20:45
<&Derakon>
Yeah.
20:45
< RichyB>
Ta.
20:45
<&Derakon>
If you want to test it, run pyrel.py, then hit 'S' (capitalized).
20:46
<&Derakon>
The function in question is invoked from commands.user.SaveCommand.
20:46 You're now known as TheWatcher[afk]
20:48
< RichyB>
Derakon: you might wanna add wxPython to Pyrel's dependencies list. :)
20:49
<&Derakon>
That's only if you use the wx frontend...which is the default, I grant. I'll update the Readme. :)
20:49
< RichyB>
That said, bloody good work on making this buildable.
20:49
<&Derakon>
All of the C stuff was handled by other people, really.
20:51
< RichyB>
Dammit, I have wxPython 2.8 and need 2.9. :(
20:51
<&Derakon>
You might try the Qt frontend instead.
20:51
<&Derakon>
Or curses.
20:52
<&Derakon>
The readme does in fact list the dependencies for the different frontends; it's just not quite as obvious as it could have been.
20:52
< RichyB>
Ah
20:53
< RichyB>
PyQt will be much easier.
20:53
<&Derakon>
Hm, turns out saving isn't actually running in the main thread.
20:54
<&Derakon>
Wonder how that happens.
20:56 * Derakon hacks it to run in the main thread, gets a "dictionary changed size during iteration" error regardless of whether statprof is active. Weird.
20:56
<&Derakon>
(When I said I was singlethreaded, what I meant was that the process of saving or loading does not create new threads)
20:58
< RichyB>
Ahhh.
20:59
< RichyB>
I don't know if statprof works around Cython'd modules.
20:59
<&Derakon>
The Cythonization is pretty trivial; there's no syntax changes in the actual modules.
20:59
<&Derakon>
So if that doesn't work then I can just de-Cythonize them and throw away a couple seconds' speedup in level creation.
21:00
<&Derakon>
Okay, got statprof to work.
21:00
<&Derakon>
After hacking up my input handling.
21:04 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code
21:04 mode/#code [+qo Vornicus Vornicus] by ChanServ
21:05
<&ToxicFrog>
Sweet. (s1 > s2) is not eqv to (not (s1 <= s2)) if s1 and s2 are python sets.
21:08
< RichyB>
Derakon: this is all I had to do to get statprof to work in pyrel http://pastebin.starforge.co.uk/578
21:08
< RichyB>
You can put its calls around just the thing that you're interested in.
21:08
<~Vornicus>
Technically that's also true of /actual/ sets.
21:08
<&Derakon>
Hm, it gave me an error about signals not being able to be used in the current thread when I tried.
21:08
<&Derakon>
That may be specific to the wxPython frontend though.
21:09
< RichyB>
Signals and threads mix poorly.
21:09
< RichyB>
*tend to, unless you've spent ages reading all the man pages, and even then it's a pain.
21:10 * Derakon saves a second and a half by modifying the function that safechecks the type of every object so that it minimizes calls to isinstance().
21:10
<&Derakon>
17.15s to go...
21:10
<&Derakon>
Unfortunately an awful lot of time is spent in encoder.py, which is called by json.dumps().
21:12
<~Vornicus>
Though really you're working with \subset and \supseteq, which are kind of hard to write
21:13
<&Derakon>
What's the difference between "cumulative seconds" and "self seconds".
21:13
<&Derakon>
They seem to be almost identical.
21:13
< RichyB>
They're wildly different for some functions.
21:13
< RichyB>
def f(): return 1 + g()
21:13
<&ToxicFrog>
Vornicus: yeah, that's kind of my point; python unheamily re-uses operators to mean something different that doesn't behave the way the operator's real meaning does.
21:13
<&Derakon>
Oh, time spent actually in this function vs. in functions this function calls.
21:14
< RichyB>
f's self seconds is the amount of time spent with "f" as the uppermost thing on the stack, so it'll count up the (+) and the (return) opcodes there.
21:14
<&Derakon>
In my case, they happen to be almost identical.
21:14
<~Vornicus>
'course, < and > don't really work on set in any sense.
21:14
< RichyB>
f's cumulative seconds is time spent with f on the stack at all, which means it includes time spent in g() because of f().
21:15
< RichyB>
Derakon: e.g. serializer.py:209:cleanDict takes 0.11s self and 4.99s cum
21:15
< RichyB>
writeFile does only delegation to other libraries so it takes a lot cumulatively and very little self.
21:15
<&Derakon>
Ahh, I hadn't looked down that far.
21:17
< RichyB>
The bad news here is that statprof isn't necessarily going to work with multi-threaded programs.
21:17
< RichyB>
I don't know how badly it does or doesn't do.
21:17
< RichyB>
Sorry! :|
21:17
<&Derakon>
As long as all the work is being done in the main thread, there shouldn't be a problem, right?
21:18
< RichyB>
I think that it's unlikely to be a problem.
21:18
< RichyB>
I think that it assumes that the thread that the signal interrupt lands on is the only one which exists & doesn't know how to go collect time from other threads (*).
21:18 * Derakon nods.
21:19
<&Derakon>
So if all your work was in a subthread, it'd say "Whelp, all your time was spent in your event handler, AFAICT."
21:19
<&Derakon>
The fact that I'm getting plausible results out suggests there's no issue here.
21:19
< RichyB>
(* is actually slightly harder to solve than just looking up where the other threads are waiting, because somehow you have to work out whether they are waiting on a lock or for more I/O from a client or whether they're just busy)
21:21
<&Derakon>
Looks like about 5s is being spent in Serializer.cleanValue() even after that minor optimization of reordering the if/elif/elif/... statements.
21:22
<&Derakon>
(They're now in order of frequency based on a sample size of 1...)
21:23
< RichyB>
Good luck. :)
21:24
<&Derakon>
Heh, thanks.
21:29 VirusHome [VirusJTG@BAD19E.09A45B.582A63.5AE998] has joined #code
21:29
<&Derakon>
Wow, either statprof doesn't like Cython or the serializer doesn't.
21:29
<&Derakon>
Changing serializer.py to serializer.pyx adds 9s to the save-game time.
21:30
<&Derakon>
(Then again, it also seems to be tracking part of my event loop, so that data shouldn't be trusted)
21:31 Pandemic [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Ping timeout: 121 seconds]
21:49 VirusNotAtWork [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
21:51 VirusHome [VirusJTG@BAD19E.09A45B.582A63.5AE998] has quit [Ping timeout: 121 seconds]
21:54
<&ToxicFrog>
.pyx?
21:55
< RichyB>
Pyrex
21:55
< RichyB>
or actually, the fork of Pyrex which people actually use, which is Cython.
21:55
< RichyB>
Cython is one of those shedskin style projects
21:56
<&ToxicFrog>
??????
21:56
< RichyB>
it compiles a language that is almost indistinguishable from Python into C code which calls all of the equivalent Python C API methods
21:56
< RichyB>
it speeds some Python code up by a constant factor over the CPython interpreter by avoiding jumping into and out of the bytecode dispatcher
21:57
< RichyB>
It can also do more than that if you start adding annotations about types.
21:57
< RichyB>
I'm not sure if it knows about any more optimisations than "call the Python C API naively."
21:57
<&ToxicFrog>
Aah.
22:10 Turaiel[Offline] is now known as Turaiel
22:22 Serah [Z@Nightstar-ab9723d2.customer.tdc.net] has joined #code
22:22
<&ToxicFrog>
Sweet. I just got an email from someone using vstruct.
22:22
<&ToxicFrog>
"This library is very useful for manipulating binary data.
22:22
<&ToxicFrog>
Any of my colleagues who have to do the same thing (unpacking/packing
22:22
<&ToxicFrog>
binary network data) with C# turn green with envy when I show them a
22:22
<&ToxicFrog>
two-liner where they have to write pages of code to achieve the same :)"
22:22 You're now known as TheWatcher
22:22
<&ToxicFrog>
...thank you for those linebreaks, irssi, you terrible piece of software
22:23
<&ToxicFrog>
Oh, actually, on reflection, it probably can't tell the difference between me typing \n and pasting it. Nvm.
22:23
< RichyB>
What's vstruct written for?
22:23
< RichyB>
Is vstruct Lua?
22:23
<&ToxicFrog>
Packing and unpacking binary data, like it says in the email~
22:23
<&ToxicFrog>
Yes.
22:23
<&ToxicFrog>
It is basically a pure lua, no external dependencies version of python's struct library (or lua's lpack)
22:24
<~Vornicus>
It's also a bit more powerful than struct
22:24
< RichyB>
Yes, I meant to ask about language since there are equivalents in most of the high-level languages that I know of.
22:24
<&ToxicFrog>
With support for some data types not commonly found in such libraries, like fixed point or arbitrary-width ints.
22:24
<&ToxicFrog>
And support for describing the structure (field names, repetitions, etc) in the format string, so you call it once and get the data structure you want rather than needing to shuffle the data around after reading.;
22:25
< RichyB>
Yes, noticeably more powerful than struct. Am I correct in thinking that you actually have native support in vstruct for length-labelled byte-strings?
22:26
<&ToxicFrog>
As in stuff like { size_t size, byte[size_t] data }?
22:26
<&ToxicFrog>
Yes.
22:26
<&Derakon>
Hm, one problem with statprof: its results vary wildly from one call to the next.
22:26
<&ToxicFrog>
That is currently implemented as a special case (it has its own format); one of the features I'm working on is a mechanism for users to do that sort of thing in general, by making parts of the format string references to values read earlier in the structure.
22:26
<&Derakon>
Like, by over 5%.
22:27
< RichyB>
It's a statistical profiler, not a call counter.
22:27
<&Derakon>
Yeah.
22:27
<&Derakon>
I was just expecting slightly more consistency.
22:27
<&ToxicFrog>
(I originally wrote this because none of the existing libraries in any language supported the formats I needed for my project; at this point I've implemented all the features I need and am just lily-gilding~)
22:28
< RichyB>
There are a lot of things conspiring against your goal of getting high consistency.
22:28
<&Derakon>
Yeah, yeah. :p
22:28
<&Derakon>
In any event, scratch this optimization idea; flattening the Stats/StatMod relationship actually makes things slower for some reason. O_o
22:28
< RichyB>
The place where the maths tends to work out in your favour are that the most-slow lines are the ones which are most likely to have the highest consistency of reporting.
22:29
< RichyB>
Naturally these are the ones that you actually care about.
22:29
<&Derakon>
(Stats are basically dictionaries of lists of StatMods; I thought that putting them in charge of [de]serializing StatMods would speed things up since the actual Serializer would no longer need to track some object relationships, but oh well)
22:30
<&ToxicFrog>
RichyB: (re: length labeling) is that actually what you meant?
22:30
< RichyB>
ToxicFrog: yuep.
22:30
<&ToxicFrog>
IIRC, that was actually a feature request from someone; System Shock doesn't generally use such things.
22:30
< RichyB>
Hrmn. I don't know of anything really friendly like that for C except maybe protobufs.
22:31
<&ToxicFrog>
Protobufs have their own format; they're good for serializing stuff, useless for deserializing someone else's stuff.
22:31
< RichyB>
Yyyes.
22:31
< RichyB>
I'm pretty sure there's a binary parser combinator monad somewhere for Haskell, so it'll be semi-terse. :)
22:31
<&ToxicFrog>
The traditional approach in C is to declare the struct, then read your stuff into a buffer and cast it to a (Struct *)
22:32
< RichyB>
I've tried writing code that does that. It's not really considered to be well defined behaviour any more.
22:32 * TheWatcher twitch
22:32
<&ToxicFrog>
Although I'm pretty sure this is not actually what System Shock does, on account of there not being a native 24-bit int type on any architecture it runs on.
22:33
<&Derakon>
24-bit ints? Why?
22:33
<&McMartin>
In the world before alpha channels, that was the most natural size of a VGA palette entry.
22:33
<@TheWatcher>
Dera: Using the smallest number of bits needed
22:33
<&ToxicFrog>
I never asked, but a bunch of fields in RES headers are uint24s.
22:34
< RichyB>
Did System Shock have to run anywhere really space-constrained?
22:34
<&McMartin>
I'd have to dig up some very old code, but ISTR that setting the palette in 8-bit VGA mode did in fact involve pointing to an array of 24-bit ints, effectively.
22:34
<&McMartin>
(Actually triples of 8-bit ints)
22:34
< RichyB>
PCs without CD-ROM drives?
22:34 * TheWatcher grumps at some of the choices LGS made in the dark engine
22:34
<&ToxicFrog>
3d models use 24.8 and 16.16 fixed point fractions all over the goddamn place, too.
22:35 celticminstrel [celticminst@Nightstar-8403057e.dsl.bell.ca] has joined #code
22:35 mode/#code [+o celticminstrel] by ChanServ
22:35
<~Vornicus>
RichyB: there is a floppy disk version
22:35
<@TheWatcher>
RichyB: 1994
22:35
<@TheWatcher>
Do the maths.
22:35
<~Vornicus>
So, "yes"
22:36
< RichyB>
I ask because some games came out around that time with no support for machines without CD-ROM drives.
22:36
<&ToxicFrog>
(actual raster graphics are palettized; I don't think anyone's reverse-engineered the palette format yet. The graphics themselves are just RLE-encoded balls of 8-bit palette indices.)
22:36
< RichyB>
Command and Conquer came out some time in 1995.
22:37
<&ToxicFrog>
Anyways, yeah, lack of uint24 and fix24.8/fix16.16 support in existing libraries is what prompted me to write vstruct.
22:38
<&ToxicFrog>
Once I had bitpack support in, writing a decompressor in lua became viable, too (the compression format uses uint14s)
22:38
<&ToxicFrog>
(that is not a typo)
22:38
<&Derakon>
;_;
22:38
<&McMartin>
Z-Code uses five-bit chars~
22:38
<&McMartin>
Er
22:38
<&McMartin>
six-bit.
22:39
<~Vornicus>
six-bit.
22:39
<&ToxicFrog>
That said, you don't want to actually use the pure-lua decompressor if you can get away with it, because it's ~130x slower than the C one.
22:39
<~Vornicus>
Six bit chars?
22:39
<~Vornicus>
How the hell?
22:39
<&McMartin>
four characters per three bytes.
22:40
<~Vornicus>
yeahbut
22:40
<&McMartin>
Z-Code ran under *crippling* constraints.
22:40
<&Derakon>
Though I guess I'm not free of this problem -- we had a camera sending us 11 bits per pixel, padded to 12 bits, and sharing part of a uint16 with an adjacent pixel.
22:40
<&ToxicFrog>
Vornicus: the Z-Machine predates System Shock by, what, a decade?
22:40
<&Derakon>
(And the worst part was that they'd alternate the 4-bit segment between being the low bits or the high bits of the previous byte)
22:41
<&McMartin>
Also, they had about 32kB of writable RAM, if that, and 140kB for swapping in.
22:41
< RichyB>
McMartin: the fools! They could've gotten it down to five bits for most characters (at the cost of being variable-length) if only they'd used a baudot code. ;)
22:42
<~Vornicus>
That's a little more crippling than I can imagine actually /putting/ things in.
22:42
<@TheWatcher>
Needs must when the devil vomits into your kettle.
22:43
<&McMartin>
Vornicus: That's "what RAM is left on the C64 after you've loaded an interpreter in, and you get one disk to put the game on"
22:43
<~Vornicus>
No, no, six bits per chartacter
22:43
< RichyB>
I wonder if, hypothetically, someone could've made some money back in the microprocessor days by saving cash on RAM + swap by building hardware-accelerated Huffman tree support into a CPU. :)
22:43
<~Vornicus>
32kb of ram is fine, I can run in that.
22:43
<&McMartin>
Vorn: Well, I mean, you compile it on a PDP-11
22:44
<&McMartin>
And there was A LOT of text.
22:44
<&McMartin>
Because, you know, Infocom
22:44
<&McMartin>
RichyB: Actually, Glulx, the 32-bit Z-Code extension VM, uses Huffman encoding for all its strings.
22:44
<~Vornicus>
But six bits per character, the character gamut doesn't fit in there.
22:44
<&Derakon>
That's 64 characters; should be plenty, right?
22:44
<&Derakon>
I mean, you don't need lower case.
22:45
<&McMartin>
Though IIRC they managed it.
22:45
<&McMartin>
I don't have the DM4 handy. There was some kind of custom character set stuff going on.
22:46
<~Vornicus>
well, if you remove lowercase, you still need to get another, hm. eight or nine symbols out
22:46
<&Derakon>
What all are you trying to put in there?
22:47
<&McMartin>
OK, it's got to be some kind of multibyte thing going on
22:47
<&McMartin>
http://inform-fiction.org/manual/html/tables.html#tbl2a
22:47
<~Vornicus>
The printable character set in ASCII is 96 characters. Add in \n because you're going to need it.
22:48
<&Derakon>
That has crap like accented characters though.
22:48
<~Vornicus>
Nope, that's latin-1
22:48
<&McMartin>
Also braces and vertical bar, which, frex, PETSCII lacks.
22:48
<&McMartin>
The full ZSCII is actually too broad for the original machines targeted.
22:48
< RichyB>
McMartin: cool! The "build it into hardware" question is really about whether it'd have been useful in applications with really tight time constraints.
22:48
<~Vornicus>
96 characters: 26 upperletters, 26 lowerletters, 10 numerals, `!@#$%^&*()_+-=~{}|[]\;':",./<>?, and space
22:50
<&McMartin>
" In any story file, 78 of the characters in the ZSCII set are designated as "cheap" by being placed into what's called the "alphabet table". One of these is mandatorily new-line, another is mandatorily double-quote and a third cannot be used, leaving 75."
22:50
<&Derakon>
Don't need `_~{}\ at least.
22:51
<&McMartin>
It looks like the standard was "lowercase letters take one Zchar, uppercase and numbers take two Zchars, and everything else is a post-Infocom extension and takes four"
22:51
<&McMartin>
And a Zchar is six bits, or possibly even five.
22:51
<@TheWatcher>
S'like a baby unicode~
22:52
<&Derakon>
Mmm, variable-width chars.
22:52
<~Vornicus>
This doesn't include /any/ of the unprintables, like newline, tab, various control characters for use in marking bold etc...
22:53
<&McMartin>
It used instructions for bold.
22:53
<&Derakon>
You mean like, markup?
22:54
<&McMartin>
No, I mean, like, assembler instructions.
22:54
<&McMartin>
Oh hey
22:54
<&McMartin>
It was in fact inspired by Baudot code.
22:54
<&McMartin>
http://inform-fiction.org/zmachine/standards/z1point0/sect03.html
22:55
<&Derakon>
Cute, they fit a null-terminator into the spare bit.
22:57 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
23:10 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving]
23:16 ktemkin[awol] is now known as ktemkin
23:19 Turaiel [Brandon@Nightstar-7dc8031d.mi.comcast.net] has quit [Operation timed out]
23:21 Typherix [Typherix@Nightstar-7dc8031d.mi.comcast.net] has quit [Ping timeout: 121 seconds]
23:22 Typherix [Typherix@Nightstar-7dc8031d.mi.comcast.net] has joined #code
23:23 Turaiel [Brandon@Nightstar-7dc8031d.mi.comcast.net] has joined #code
23:31 Orth [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has quit [Ping timeout: 121 seconds]
23:36 Derakon [chriswei@Nightstar-a3b183ae.ca.comcast.net] has quit [[NS] Quit: leaving]
23:50 Turaiel [Brandon@Nightstar-7dc8031d.mi.comcast.net] has quit [Ping timeout: 121 seconds]
23:50 Typherix [Typherix@Nightstar-7dc8031d.mi.comcast.net] has quit [Ping timeout: 121 seconds]
23:51 Typherix [Typherix@Nightstar-7dc8031d.mi.comcast.net] has joined #code
23:52 Turaiel_ [Brandon@Nightstar-7dc8031d.mi.comcast.net] has joined #code
23:53 Typherix [Typherix@Nightstar-7dc8031d.mi.comcast.net] has quit [Operation timed out]
23:53 Typherix [Typherix@Nightstar-7dc8031d.mi.comcast.net] has joined #code
23:54 Turaiel_ is now known as Turaiel
23:58 Typherix [Typherix@Nightstar-7dc8031d.mi.comcast.net] has quit [Ping timeout: 121 seconds]
23:58 Turaiel [Brandon@Nightstar-7dc8031d.mi.comcast.net] has quit [Ping timeout: 121 seconds]
23:59 Turaiel [Brandon@Nightstar-7dc8031d.mi.comcast.net] has joined #code
23:59 Typherix [Typherix@Nightstar-7dc8031d.mi.comcast.net] has joined #code
--- Log closed Sat Jul 13 00:00:55 2013
code logs -> 2013 -> Fri, 12 Jul 2013< code.20130711.log - code.20130713.log >

[ Latest log file ]