code logs -> 2015 -> Thu, 30 Jul 2015< code.20150729.log - code.20150731.log >
--- Log opened Thu Jul 30 00:00:16 2015
00:17 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
00:18 mode/#code [+qo Vornicus Vornicus] by ChanServ
00:41 Meatyhandbag [sebastianfe@Nightstar-fit.ukq.53.184.IP] has joined #code
01:32
<&McMartin>
Holy crap, I got it working
01:32
<&McMartin>
Future me is gonna hate me *so much*
01:32
<&McMartin>
Maybe he'll blame Stroustrup.
01:32
<&McMartin>
He should.
01:32
<&McMartin>
But he's been known to overflow with wrath.
01:33
< catadroid>
heh
01:33
< catadroid>
Stroustrup's book on the history of the language is very good
01:34 ion [Owner@Nightstar-ck1244.bchsia.telus.net] has joined #code
01:35
<&McMartin>
Yes
01:35 * McMartin enjoyed it a great deal.
01:35
<&McMartin>
But yes, it turns out the last bit I had gotten wrong was that I could not actually say
01:36
<&McMartin>
template <typename T, typename U> inline Foo<T>::bar(U u) { ... }
01:36
<&McMartin>
No, I needed to say:
01:36
<&McMartin>
template <typename T> template <typename U> inline Foo<T>::bar(U u) { ... }
01:36
<&McMartin>
Er, and also have a void there after inline.
01:37
<&McMartin>
(The implementation of bar ended up needing to instantiate a subclass of Foo<U>)
01:37
< catadroid>
aha
01:37
< catadroid>
yeah, that makes sense
01:37
<&McMartin>
This means I can restructure that code I was complaining about earlier (my) today.
01:38
<&McMartin>
So that it will have two levels of indentation instead of sixteen.
01:38
< catadroid>
I remember :)
01:38
<&McMartin>
That will be nice!
01:38
< catadroid>
\o/
01:38
<&McMartin>
\o/ indeed
01:38
<&McMartin>
This has been a pretty good week so far as work-related stuff has gone.
01:38
<&McMartin>
Sounds like you've been doing well too
01:38
<&McMartin>
Eldritch horror high five, etc
01:39
< catadroid>
actually I spent most of today being deliberately sidetracked so as to recharge
01:39
<&McMartin>
Ha
01:39
< catadroid>
which is something I recognise I need to do occasionally
01:39
< catadroid>
otherwise I burn out
01:39
<&McMartin>
Nod nod
01:39
<&McMartin>
Good times
01:40 ion [Owner@Nightstar-ck1244.bchsia.telus.net] has quit [Ping timeout: 121 seconds]
01:41
< catadroid>
fortunately I'm one of the most pedantic if not the most pedantic at the company
01:41
< catadroid>
so there's always more tests to implement
01:49 * McMartin nods
01:49
<&McMartin>
I'm going to need to do that pretty soon
01:49
<&McMartin>
Right now I've set up basically a mini-systemic test and some super-basic unit tests
01:49
< catadroid>
I wrote unit tests for move and forward today
01:49
<&McMartin>
This new function I got working will also make meatier tests between "unit" and "full systemic" be feasible, so that's good
01:50
< catadroid>
it felt good that not only can I use them, but that I understand how to test them too
01:50
<&McMartin>
I've got a good sense of std::move now but std::forward is still a bit abstract for me
01:50
<&McMartin>
I haven't had to use it "for real" yet
01:51
< catadroid>
I've used it to optimise some of the standard routines we have
01:52 * McMartin nods
01:52
<&McMartin>
Yeah, I got the impression that's what it's for, but I haven't had to do that kind of stuff that is optimized thereby
02:07 Meatyhandbag [sebastianfe@Nightstar-fit.ukq.53.184.IP] has quit [Ping timeout: 121 seconds]
02:43 himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds]
02:44 Syloq [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
02:48 himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code
02:48 mode/#code [+o himi] by ChanServ
02:48 Syloq [Syloq@Nightstar-hco.fem.152.204.IP] has joined #code
02:48 mode/#code [+o Syloq] by ChanServ
03:05 himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds]
03:57 Checkmate [Z@Nightstar-r9lk5l.cust.comxnet.dk] has quit [Ping timeout: 121 seconds]
04:18 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [Connection closed]
04:51 Thalatwerk [thalass@Nightstar-m49.o7s.158.104.IP] has joined #code
04:58 ion [Owner@Nightstar-h5r554.vs.shawcable.net] has joined #code
04:59 Derakon is now known as Derakon[AFK]
05:22 macdjord|wurk is now known as macdjord
05:35 himi [fow035@Nightstar-8etbk2.optusnet.com.au] has joined #code
05:35 mode/#code [+o himi] by ChanServ
05:35 ion_ [Owner@Nightstar-h5r554.vs.shawcable.net] has joined #code
05:37 ion [Owner@Nightstar-h5r554.vs.shawcable.net] has quit [Ping timeout: 121 seconds]
05:41 Kindamoody|autojoin is now known as Kindamoody
06:07 catadroid` [catalyst@Nightstar-v4big1.dab.02.net] has joined #code
06:11 catadroid [catalyst@Nightstar-jsdu2v.dab.02.net] has quit [Ping timeout: 121 seconds]
06:28 celticminstrel [celticminst@Nightstar-c0l57i.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
06:36 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection closed]
06:41 Xires is now known as ^Xires
06:49 ^Xires is now known as Xires
06:58 catadroid` is now known as catadroid
07:00 Thalatwerk is now known as thalass
07:00 mode/#code [+o thalass] by ChanServ
07:01 thalass is now known as Thalass|slep
07:15 himi [fow035@Nightstar-8etbk2.optusnet.com.au] has quit [Ping timeout: 121 seconds]
07:48 Reiv [NSwebIRC@Nightstar-q8avec.kinect.net.nz] has quit [Ping timeout: 121 seconds]
07:52 catadroid [catalyst@Nightstar-v4big1.dab.02.net] has quit [[NS] Quit: Bye]
08:34 macdjord is now known as macdjord|slep
08:50 Kindamoody is now known as Kindamoody|afk
10:10 himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code
10:10 mode/#code [+o himi] by ChanServ
10:15 catadroid [catalyst@Nightstar-gvtais.dab.02.net] has joined #code
11:10 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code
11:10 VirusJTG_ [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code
11:10 VirusJTG_ [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [Connection closed]
11:10 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [Connection closed]
11:12 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code
11:43 Checkmate [Z@Nightstar-r9lk5l.cust.comxnet.dk] has joined #code
11:43 mode/#code [+o Checkmate] by ChanServ
11:50 catadroid [catalyst@Nightstar-gvtais.dab.02.net] has quit [The TLS connection was non-properly terminated.]
11:51 catadroid [catalyst@Nightstar-gvtais.dab.02.net] has joined #code
12:37 catadroid` [catalyst@Nightstar-nafmrq.dab.02.net] has joined #code
12:40 catadroid [catalyst@Nightstar-gvtais.dab.02.net] has quit [Ping timeout: 121 seconds]
13:34 catadroid` is now known as catadroid
14:08 macdjord|slep is now known as macdjord|wurk
14:25 Thalass|slep is now known as thalass
15:00
<@TheWatcher>
... godsdamnit, I can't break this
15:00
<@TheWatcher>
I need to test what goes wrong if I break this, and I can't bloody do it
15:02 * TheWatcher goes in and starts commenting out code
15:03
<@Tamber>
Clearly, you've done far too good a job. :p
15:07 celticminstrel [celticminst@Nightstar-c0l57i.dsl.bell.ca] has joined #code
15:07 mode/#code [+o celticminstrel] by ChanServ
15:31
<@TheWatcher>
It's validation and error handling for user input, where users include members of staff who do things like write down their university login details on pieces of paper stuck on their desks
15:32
<@Tamber>
Of course.
15:34
<@TheWatcher>
Next step is writing somethign that sends the final, correct, valid version of the content they enter back through time to correct the input after the first validation failure
15:34
<@TheWatcher>
Fuck you, temporal paradoxes.
15:34
<@Tamber>
I'm pretty sure there's a module on CPAN for that.
15:37
<@TheWatcher>
WEll, first it probably involves running everything through Acme::Phlegethoth...
15:39
<@Tamber>
I'm pretty sure it does that internally anyway.
15:39
<@Tamber>
Saves time, y'see.
16:29 jeroud [sid10043@Nightstar-h2b233.irccloud.com] has quit [Connection closed]
16:36 Checkmate [Z@Nightstar-r9lk5l.cust.comxnet.dk] has quit [Ping timeout: 121 seconds]
16:55 Attilla [sid13723@Nightstar-ed0oqj.irccloud.com] has quit [Connection closed]
17:02 Meatyhandbag [sebastianfe@Nightstar-112.u04.53.184.IP] has joined #code
17:06 Meatyhandbag [sebastianfe@Nightstar-112.u04.53.184.IP] has quit [Ping timeout: 121 seconds]
17:10 jeroud [sid10043@Nightstar-h2b233.irccloud.com] has joined #code
17:10 mode/#code [+ao jeroud jeroud] by ChanServ
17:19 Attilla [sid13723@Nightstar-ed0oqj.irccloud.com] has joined #code
17:37 gizmore [kvirc@Nightstar-18qenh.dip0.t-ipconnect.de] has joined #code
18:59
<@gnolam>
Nghgh
18:59
<@gnolam>
Would it have killed you to include specifications /for the actual returned data/ in the communications protocol spec? >:E
19:08 catadroid` [catalyst@Nightstar-50elb0.dab.02.net] has joined #code
19:11 catadroid [catalyst@Nightstar-nafmrq.dab.02.net] has quit [Ping timeout: 121 seconds]
19:26
<@gnolam>
(I can make a measurement and get the data back - I just have NFI which range it covers.)
19:46
<&ToxicFrog>
GO FORTH, MY ROBOT ARMY
19:47 thalass [thalass@Nightstar-m49.o7s.158.104.IP] has quit [Ping timeout: 121 seconds]
19:58 catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code
20:09 Meatyhandbag [sebastianfe@Nightstar-112.u04.53.184.IP] has joined #code
20:15 Meatyhandbag [sebastianfe@Nightstar-112.u04.53.184.IP] has quit [Ping timeout: 121 seconds]
20:29 gizmore [kvirc@Nightstar-18qenh.dip0.t-ipconnect.de] has quit [[NS] Quit: KVIrc 4.3.1 Aria http://www.kvirc.net/]
20:49 starkruzr [jtd@Nightstar-qbtq3s.fios.verizon.net] has quit [Ping timeout: 121 seconds]
20:52 starkruzr [jtd@Nightstar-qbtq3s.fios.verizon.net] has joined #code
21:24 catadroid` [catalyst@Nightstar-50elb0.dab.02.net] has quit [[NS] Quit: Bye]
21:28 ion [Owner@Nightstar-h5r554.vs.shawcable.net] has joined #code
21:31 ion_ [Owner@Nightstar-h5r554.vs.shawcable.net] has quit [Ping timeout: 121 seconds]
21:46 Kindamoody|afk is now known as Kindamoody
22:22 Derakon [chriswei@Nightstar-2fe4eq.ca.comcast.net] has joined #code
22:22 mode/#code [+ao Derakon Derakon] by ChanServ
22:22
<&Derakon>
C++ syntax question.
22:22
<&Derakon>
I have a class DeviceBase which has a public typedef MM::Action<U> CPropertyAction
22:23
<&Derakon>
I want to access CPropertyAction from a class that is not related to DeviceBase.
22:23
<&Derakon>
It is public, so I assume this is possible, but I can't figure out the appropriate syntax.
22:23
<&Derakon>
Within the class I could just do "CPropertyAction* action = new CPropertyAction(...)", but outside I need to indicate the proper scope somehow.
22:24
<&Derakon>
Google is being surprisingly unhelpful.
22:27
<&Derakon>
...bleh, Visual Studio's editor is tripe.
22:31
<&McMartin>
DeviceBase<U>::CPropertyAction
22:31
<&McMartin>
WIth "U" being any type if it doesn't matter, or the correct type if it does matter.
22:31
<&McMartin>
Consider, for example the typedef std::vector<int>::iterator
22:32
<&McMartin>
You can declare variables of that type
22:33
<&McMartin>
Visual Studio's code completion got suddenly vastly worse in the 2012
22:33
<&McMartin>
edition
22:33
<&Derakon>
Ehh, I'm more missing the ability to quickly set and jump to locations in the file, and regex-based search-and-replace.
22:33
<&Derakon>
IOW I want to be using vim.
22:34
<&McMartin>
Vim is available for Windows
22:34
<&Derakon>
But task-switching is already super-unwieldy here (Remote Desktop onto a Windows box from my laptop).
22:34
<&McMartin>
If you want it, you can get it~
22:34
<&Derakon>
Yes, I know, it'd be a separate process, per file, from Visual Studio which I need for compiling.
22:34
<&Derakon>
I'm just bitching, don't mind me. Thanks for the help on the types.
22:34
<&Derakon>
Ended up redoing how I'm compositing this behavior anyway, due to other type issues.
22:34
<&McMartin>
(Vimperator is also a good way to keep people from borrowing your browser~)
22:35
< ion>
I tried using vimperator, but I don't think it liked my archiac browser profile
22:36
< ion>
Don't remember what it did, just that things went funny and I had to uninstall it
22:37
<&McMartin>
As an Emacs sort I'm afraid I can't help
22:37
< ion>
I think it was more of a firefox problem in general
22:37
<&Derakon>
Okay, I've screwed up my virtual function somehow.
22:38
<&Derakon>
base class A has "virtual int TestTriggering();" in its class header.
22:38
< ion>
I've dragged my user profile with me since a FF2 install
22:38
<&Derakon>
Classes B and C both descend from A and have "int TestTriggering();" in their headers, with corresponding implementations.
22:38
<&McMartin>
That should infer the virtuality
22:38
<&Derakon>
When I try to compile I get an error because A::TestTriggering() is an unresolved external symbol.
22:39
<&McMartin>
Oh, does it not have an implementation? You want it fully abstract?
22:39
<&McMartin>
If so you must declare it as virtual int TestTriggering() = 0;
22:39
<&Derakon>
A does not have an implementation, no.
22:39
<&Derakon>
...ah.
22:39
<&McMartin>
"virtual" in C++ means "overrides can actually happen, which means you need a vtable"
22:39
<&Derakon>
Yeah, that compiles. Thanks.
22:39
<&McMartin>
Nonvirtual methods in C++ are actually ordinary global functions with a funny calling syntax.
22:39
<&Derakon>
...so wait, what happens if you have a non-virtual method and an inheriting class has a method with an identical signature?
22:40
<&McMartin>
Then the declared type of the variable you call it on completely determines the target.
22:40
<&McMartin>
This is almost never what you want, and this interacts with operator overloading in a complicated way that I don't have swapped in.
22:40
<&Derakon>
Fairynuff.
22:41
<&Derakon>
Thanks for the assist.
22:41
<&Derakon>
My brain's just too much in Java mode these days.
22:41
<&McMartin>
If *none* of your methods are virtual, however, then your structure size drops by one pointer amount and this is occasionally important for things like C FFI and space efficiency with gigantic arrays.
22:41
<&Derakon>
FFI...forward function initialization?
22:41
<&McMartin>
(Also you cannot be subject to teypeid or dynaimc_cast calls, because Efficiency)
22:41
<&McMartin>
...oh right
22:42
<&McMartin>
If you are subclassing, *always declare your base destructor virtual*
22:42
<&McMartin>
Otherwise the jackassery described above will happen sometimes depending on how things leave scope
22:42
<&McMartin>
It's bad (tm)
22:42
<&Derakon>
Righto, done.
22:42 Kindamoody is now known as Kindamoody[zZz]
22:42
<&Derakon>
Just "virtual ~A();"?
22:42
<&Derakon>
Or do I need the " = 0" bit?
22:42
<&McMartin>
Probably virtual ~A() {} if you don't otherwise have one
22:42
<&McMartin>
You can't not have a descrutor
22:42
<&McMartin>
destructor
22:43
<&Derakon>
This is stuff I used to know, I swear.
22:43
<&Derakon>
I wrote entire nontrivial programs in C++, once upon a time.
22:43
<&McMartin>
(The default destructor destroys all fields in reverse declaration order, then destroys its superclass instances)
22:43
<&McMartin>
THe langauge has changed unrecognizably at least three times since the last time you did~
22:43
<&McMartin>
I'm in blankslate mode over here after working on a codebase for seven years, all C++, and I'm basically relearning the language as I go
22:44
<&Derakon>
Aside from having access to Boost, this mostly all looks like the C++ I used to work with.
22:45
<&Derakon>
I've just forgotten how it works.
22:46
<&Derakon>
...oh, cute, I've screwed things up enough that I'm getting access violations on launch. \o/
--- Log closed Fri Jul 31 00:00:31 2015
code logs -> 2015 -> Thu, 30 Jul 2015< code.20150729.log - code.20150731.log >

[ Latest log file ]