code logs -> 2015 -> Thu, 03 Sep 2015< code.20150902.log - code.20150904.log >
--- Log opened Thu Sep 03 00:00:29 2015
00:06 Checkmate [Z@Nightstar-r9lk5l.cust.comxnet.dk] has joined #code
00:06 mode/#code [+o Checkmate] by ChanServ
00:25 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
00:25 mode/#code [+qo Vornicus Vornicus] by ChanServ
00:45 Alek [Alek@Nightstar-03ja8q.il.comcast.net] has quit [Ping timeout: 121 seconds]
00:56
<@macdjord>
* McMartin types Shift-Insert into a cmd.exe window and it fucking works, after 20 years
00:57
<@macdjord>
Way back in highschool, I had one CS class where we worked in Pascal using this ancient IDE that only recognised the 'classic' editing shortcuts - [modifier]-Insert for cut, copy, and paste, etc..
00:57
<@macdjord>
For some reason, one of them, Ctrl-Shift-Z for 'Redo' (rather than Ctrl-Y) stuck with me, and I keep getting annoyed by modern programs that don't recognise it (or, worse, use it for something else).
01:03
<@celticminstrel>
Some modern programs still recognize that though...
01:08 Reiv [NSwebIRC@Nightstar-q8avec.kinect.net.nz] has joined #code
01:09 Netsplit *.net <-> *.split quits: abudhabi, tripflag, Xires, @Derakon[AFK], grindhold, @Vornicus, @macdjord, @jerith, wowaname, @Tamber
01:10 mode/#code [+o Reiv] by ChanServ
01:10 Netsplit over, joins: @Tamber, &jerith, &Derakon[AFK], ~Vornicus, @macdjord, Xires, grindhold, tripflag, wowaname, abudhabi
01:16 himi [fow035@Nightstar-dm0.2ni.203.150.IP] has joined #code
01:16 mode/#code [+o himi] by ChanServ
01:27 Alek [Alek@Nightstar-03ja8q.il.comcast.net] has joined #code
01:27 mode/#code [+o Alek] by ChanServ
01:48
< [R]>
" For example on my first day I found that X was running what was supposedly largest VAXcluster remaining in the world, for doing their production builds. Yes, dozens of VAXen running VMS, working as a cross-compile farm, producing x86 code. You might wonder a bit about the viability of the VAX as computing platform in the year 2005. Especially for something as cpu-bound as compiling. But don't worry, one of my new coworkers had as their current task evaluating
01:48
< [R]>
whether this should be migrated to VMS/Alpha or to VMS/VAX running under a VAX emulator on x86-64!"
01:49
< [R]>
https://www.snellman.net/blog/archive/2015-09-01-the-most-obsolete-infrastructur e-money-could-buy/
01:49 Meatyhandbag [sebastianfe@Nightstar-ee1.oh7.224.136.IP] has quit [Client exited]
02:12 thalass [thalass@Nightstar-m49.o7s.158.104.IP] has joined #code
02:12 mode/#code [+o thalass] by ChanServ
02:19 mac [macdjord@Nightstar-r9vt2h.mc.videotron.ca] has joined #code
02:19 mode/#code [+o mac] by ChanServ
02:21 macdjord [macdjord@Nightstar-r9vt2h.mc.videotron.ca] has quit [Ping timeout: 121 seconds]
03:24 catadroid` [catalyst@Nightstar-amtka2.dab.02.net] has joined #code
03:27 catadroid [catalyst@Nightstar-pcp6ei.dab.02.net] has quit [Ping timeout: 121 seconds]
03:46 Meatyhandbag [sebastianfe@Nightstar-ee1.oh7.224.136.IP] has joined #code
03:52 thalass [thalass@Nightstar-m49.o7s.158.104.IP] has quit [Ping timeout: 121 seconds]
04:18 Meatyhandbag [sebastianfe@Nightstar-ee1.oh7.224.136.IP] has quit [Client exited]
04:31 Turaiel is now known as Turaiel[Offline]
04:41 catadroid` [catalyst@Nightstar-amtka2.dab.02.net] has quit [The TLS connection was non-properly terminated.]
04:41 catadroid [catalyst@Nightstar-20rmth.dab.02.net] has joined #code
04:47 Checkmate [Z@Nightstar-r9lk5l.cust.comxnet.dk] has quit [Ping timeout: 121 seconds]
04:55
< [R]>
How do I force ld to look at a 64bit library?
04:55
< [R]>
It's repeatedly bitching about 32bit libraries not being compatable with the 64bit one I'm compiling, when 64bit versions exist.
05:01 mac [macdjord@Nightstar-r9vt2h.mc.videotron.ca] has quit [[NS] Quit: Remeber, you two, be smart. And if you can't be smart, be safe. And if you can't be safe, /name it after me/.]
05:13
<&McMartin>
Make sure your library path is properly set, I imagine
05:14
<&McMartin>
Also, that talk catadroid linked earlier today/yesterday is fantastic
05:14 * McMartin is only about a half-hour in, but yeah, this kind of thing is *exactly* the level of stuff he was looking for.
05:15
<@Reiv>
What's this, McM?
05:16
<&McMartin>
13:26 < catalyst> https://www.youtube.com/watch?v=xnqTKD8uD64 might be handy, I don't know if it's pitched at a decent level for you or not
05:16
<&McMartin>
It's pitched at experts that have forgotten what problems with C++98 were, in fact, problems in the first place that C++11/14/17 were trying to solve, and how the terrifyingly general solutions produced thereby *were* solved
05:17
<&McMartin>
Which is to say, it's targeted almost directly at me, especially since I'll probably have to train half the company in C++ at some point in the foreseeable future and it's also talking about *that* as well as "these are the best practices you implement with these tools"
05:24
<@Reiv>
McMartin: Hunh
05:24
<@Reiv>
So you're pretty much going to use that as an educational video?~
05:29
<~Vornicus>
there's this bit - he's talking early on about defaults. they're really, super, stupid important. like
05:30
<~Vornicus>
For twelve years I did not know that objects were *already* hashable in python.
05:31
<~Vornicus>
and I needed that so damn often
05:35
<~Vornicus>
and if I'd known that that was the default, I'd have had to write a lot less code.
05:36
<&McMartin>
Reiv: I'm giving the main one to the CTO
05:37
<&McMartin>
The other bit is to get that 180-page "here's what you really need to know" book, devour it, and make sure that what I design can be *used* by people who know just that.
05:37
<&McMartin>
Noting that what can be *used by* and what can be *written by* are two very different things
05:43
<~Vornicus>
this c++ thing is
05:43
<~Vornicus>
C++ does not look anything like I thought it did
05:45
<&McMartin>
I've been saying for some time that C++11 may as well be an entirely new language...
05:45
<&McMartin>
... I was not attempting hyperbole
05:53
<~Vornicus>
I'm getting that impression!
05:53 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [Connection reset by peer]
05:53
<~Vornicus>
A lot of this talk is over my head because I haven't done anything in C++ in a long time
05:53
<&McMartin>
A wag might also add "and if you did it right, that language would be Rust"
05:53
<&McMartin>
Yeah, this is in no way a beginner's guide
05:54
<&McMartin>
I've been coding in C++11 for 3 months now almost exclusively, and that was with several months of experimenting with Rust as it evolved, and thus getting used to messing with object lifetime as a core thing to worry about and deal with
05:54
<&McMartin>
So it's kind of like going to a statically typed language where I have to declare all my casts after a decade of nothing but JavaScript and Perl >_>
05:56
<@Reiv>
Do you prefer either?
06:10
<&McMartin>
C++11 is an actual production language that everything has a compiler for. Rust... is still in its infancy, but it has a good chance of being important later.
06:11
<~Vornicus>
the whole concept of move constructors blows up my head
06:15
<&McMartin>
Yeah, Rust is "move semantics *fucking everywhere*" and I think that gave me a better grounding to make proper use of C++11's madness.
06:15
<&McMartin>
Also, in Rust, when you fuck it up, it is a compiler error instead of runtime heap corruption =P
06:17
<~Vornicus>
I do pine for the days where shit don't build when I fuck it up that way
06:17
<~Vornicus>
but I work in fuckin' javascript
06:17
<~Vornicus>
gnah, slep
06:19 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection closed]
07:17 himi [fow035@Nightstar-dm0.2ni.203.150.IP] has quit [Ping timeout: 121 seconds]
07:27
< catadroid>
If there's one thing in the world I am an expert in, it's C++
07:39 Kindamoody[zZz] is now known as Kindamoody
08:02 celticminstrel [celticminst@Nightstar-r3r7al.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
08:36 kourbou [kourbou@Nightstar-deqg8j.fbx.proxad.net] has joined #code
08:53 Kindamoody is now known as Kindamoody|afk
09:04 himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code
09:04 mode/#code [+o himi] by ChanServ
09:39 kourbou [kourbou@Nightstar-deqg8j.fbx.proxad.net] has quit [[NS] Quit: Off to school I go]
09:54 catadroid` [catalyst@Nightstar-n67l13.dab.02.net] has joined #code
09:56 catadroid [catalyst@Nightstar-20rmth.dab.02.net] has quit [Ping timeout: 121 seconds]
10:05 catadroid` is now known as catadroid
10:36
<@TheWatcher>
Ugh, it should not be faster to write your own godsdamned API client module that to modify an existing one to do one simple bloody thing
10:37
<@TheWatcher>
*than to
10:50 You're now known as TheWatcher[d00m]
10:55 thalass [thalass@Nightstar-m49.o7s.158.104.IP] has joined #code
10:55 mode/#code [+o thalass] by ChanServ
10:56
< catadroid>
Maybe? depends what the API is
11:06 Netsplit *.net <-> *.split quits: catadroid
11:08 PinkFreud [WhyNot@Pinkfreud.is.really.fuckin.lame.nightstar.net] has quit [Ping timeout: 121 seconds]
11:08 thalass [thalass@Nightstar-m49.o7s.158.104.IP] has quit [[NS] Quit: Leaving]
11:09 PinkFreud [WhyNot@Pinkfreud.is.really.fuckin.lame.nightstar.net] has joined #code
11:09 mode/#code [+o PinkFreud] by ChanServ
11:09 Netsplit over, joins: catadroid
11:13 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code
11:17
<@TheWatcher[d00m]>
catadroid: the GitLab API.
11:17
<@TheWatcher[d00m]>
Being used from perl
11:17
<@TheWatcher[d00m]>
So in theory Gitlab::API::v3 should do the job, except the author either forgot to add the sudo facility, or ran into the problem I'm having with it.
11:19
< catadroid>
oh, I see
11:19
<@TheWatcher[d00m]>
(added irritating: that module uses Moo, and hence has some - IMO - horrible syntax and great fun with field initialisation in object creation.
11:19
<@TheWatcher[d00m]>
)
11:20 You're now known as TheWatcher
11:25 gnolam_ [lenin@Nightstar-t1tbf0.cust.bahnhof.se] has joined #code
11:28 gnolam [lenin@Nightstar-t1tbf0.cust.bahnhof.se] has quit [Ping timeout: 121 seconds]
12:06 * TheWatcher args at people that don't M-x delete-trailing-whitespace
12:10
< abudhabi>
Why do you hate trailing whitespace?
12:11 Checkmate [Z@Nightstar-r9lk5l.cust.comxnet.dk] has joined #code
12:11 mode/#code [+o Checkmate] by ChanServ
12:13
<@TheWatcher>
I have "(add-hook 'before-save-hook 'delete-trailing-whitespace)" in my .emacs, and if I'm working on code written by someone who doesn't strip trailing whitespace, I get my changes plus a bunch of changes caused by stripped whitespace
12:14
<@TheWatcher>
Which is Irritating
12:28 * TheWatcher eyes '$Rev: 273 $'
12:29
<@TheWatcher>
Y halo that, CVS substitution marker. It's been a while since I last saw you.
12:29
<@TheWatcher>
*thar
12:31
< catadroid>
:o
12:31
< catadroid>
CVS substitution marker?
12:35
<@TheWatcher>
CVS let you put keywords like $Date: $, $Log: $ and other thins in your code and, each time you commited, it would substitute the appropriate values there - so you'd get $Date: 2015/09/03 12:35:05 $ and so on. Although now I think, I believe it was $Revision: $ rather than just $Rev: $
12:39
<@TheWatcher>
Kinda broke with subversion, altough I seem to remember that there was a way to do it in there too. It makes no sense at all to do something like that with git/etc though, of course.
13:00
< catadroid>
ah I see
13:00
< catadroid>
I really should learn how to use git and Co
13:21 Meatyhandbag [sebastianfe@Nightstar-ee1.oh7.224.136.IP] has joined #code
13:44 himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds]
13:52 gnolam_ is now known as gnolam
13:52 mode/#code [+o gnolam] by ChanServ
13:57
< [R]>
I'm getting the following error: undefined reference to `imlib_free_image', header: http://nobl.ca/Imlib2.h source: http://nobl.ca/test.c (Yes, I know I'm calling it wrong, trying to figgure out why it can't see the prototype)
13:59
<@TheWatcher>
You're linking with -lImlib2 ?
14:04
< [R]>
\o/
14:04
< [R]>
Thank you, that worked.
14:04
<@TheWatcher>
Wewt.
14:08 * gnolam sighs.
14:09
<@gnolam>
Yet another spectro...
14:14
<@gnolam>
I'm going to have to build some sort of shelf for my desk. I'm out of room.
14:59 gnolam [lenin@Nightstar-t1tbf0.cust.bahnhof.se] has quit [Connection closed]
14:59 gnolam [lenin@Nightstar-t1tbf0.cust.bahnhof.se] has joined #code
14:59 mode/#code [+o gnolam] by ChanServ
16:17 kourbou [kourbou@Nightstar-deqg8j.fbx.proxad.net] has joined #code
16:24 catadroid` [catalyst@Nightstar-pnednl.dab.02.net] has joined #code
16:24 Meatyhandbag [sebastianfe@Nightstar-ee1.oh7.224.136.IP] has quit [Client exited]
16:27 catadroid [catalyst@Nightstar-n67l13.dab.02.net] has quit [Ping timeout: 121 seconds]
16:33 celticminstrel [celticminst@Nightstar-r3r7al.dsl.bell.ca] has joined #code
16:33 mode/#code [+o celticminstrel] by ChanServ
16:42 catadroid [catalyst@Nightstar-spe22l.dab.02.net] has joined #code
16:42 catadroid` [catalyst@Nightstar-pnednl.dab.02.net] has quit [A TLS packet with unexpected length was received.]
16:46 GreenGuy [Gnomino@Nightstar-fik25i.gnomino.eu] has joined #code
16:57 gizmore [kvirc@Nightstar-grreaf.dip0.t-ipconnect.de] has joined #code
17:03 catadroid [catalyst@Nightstar-spe22l.dab.02.net] has quit [[NS] Quit: Bye]
17:06 Meatyhandbag [sebastianfe@Nightstar-ee1.oh7.224.136.IP] has joined #code
17:10 catadroid [catalyst@Nightstar-spe22l.dab.02.net] has joined #code
17:24 Checkmate [Z@Nightstar-r9lk5l.cust.comxnet.dk] has quit [[NS] Quit: If I had a world of my own, everything would be nonsense. Nothing would be what it is because everything would be what it isn't. And contrary-wise; what it is it wouldn't be, and what it wouldn't be, it would. You see?]
17:51 Meatyhandbag [sebastianfe@Nightstar-ee1.oh7.224.136.IP] has quit [Client exited]
17:52 Meatyhandbag [sebastianfe@Nightstar-ee1.oh7.224.136.IP] has joined #code
17:53 Meatyhandbag [sebastianfe@Nightstar-ee1.oh7.224.136.IP] has quit [Client exited]
17:57 Meatyhandbag [sebastianfe@Nightstar-0fv.1a3.224.136.IP] has joined #code
18:12
<@gnolam>
Gah. Blue bloody LEDs.
18:14
<@gnolam>
Why would anyone need those on a bloody /label printer/?
18:14
<@Tamber>
Because bloo is futuristic!1
18:15
<@Tamber>
(Fuck blue indicator LEDs on anything.)
18:16 kourbou [kourbou@Nightstar-deqg8j.fbx.proxad.net] has quit [[NS] Quit: Iām not a psychopath. Iām a high-functioning sociopath. Do your research.]
18:29
<@Alek>
they're pretty bright in the dark XD
18:30 * Alek has a blue led power indicator on his box. and a green HD-activity led.
18:31
<@Alek>
blame the TRON reboot. :P
18:31
<@Alek>
um. not reboot. sequel. -_-
18:40 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [Ping timeout: 121 seconds]
19:02 Kindamoody|afk is now known as Kindamoody
19:10 GreenGuy [Gnomino@Nightstar-fik25i.gnomino.eu] has quit [Connection closed]
19:45 Kindamoody is now known as Kindamoody[zZz]
19:54
<&McMartin>
04:39 <@TheWatcher> Kinda broke with subversion, altough I seem to remember that there was a way to do it in there too. It makes no sense at all to do something like that with git/etc though, of course.
19:55
<&McMartin>
Is there actually a mechanism for git or git-like systems for "this header file includes a string/etc that indicates the provenance of the code"?
19:55
<&McMartin>
I suppose "generate at build time from contents of git log" but
19:56 Meatyhandbag [sebastianfe@Nightstar-0fv.1a3.224.136.IP] has quit [Client exited]
19:56
<&jerith>
McMartin: You're supposed to do that yourself by looking at repository metadata, I think.
19:59
<&McMartin>
Oh right
19:59 * McMartin forgot this was OSS, where shipped software does not exist
19:59
<&McMartin>
Or exists only under the most grudging of duress
19:59
<&jerith>
https://github.com/warner/python-versioneer
20:00
<&McMartin>
Ooh.
20:00
<&jerith>
That does something clever, although I don't recall the details.
20:00
<&McMartin>
Yes, I want this for Ophis, even though I think literally nobody uses the distutils version
20:01
<&jerith>
I used versioneer a while ago and there were some issues with it, but I don't recall the details.
20:02
<&McMartin>
Which probably means I don't want it for Ophis, because I really should be tying a bow on Ophis 2 and putting it into formal hibernation/completed status
20:02
<&McMartin>
It's been mature for over seven years
20:02
<&jerith>
Anyway, I meant you do the VCS metadata thing at build or packaging time.
20:03
<&McMartin>
And then use an ISO date code for last commit as your monotonically increasing integer that on SVN you'd use the revision number for, I imagine
20:04
<&jerith>
Do you need monotonically increasing integers for dev builds?
20:04 GreenGuy [uid85383@Nightstar-om40rg.irccloud.com] has joined #code
20:05
<&jerith>
Actually, versioneer seems to do it by counting the commits since the last tag.
20:06 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code
20:06
<&McMartin>
"Do you need monotonically increasing integers for dev builds?" -> "Do you have any notion of autoupdate in your product and need to be able to tell whether the next available is truly an upgrade or not?"
20:06
<&McMartin>
"If yes, do you ever test this functionality before release?"
20:06
<&jerith>
McMartin: Those should be release builds, not dev builds.
20:06
<&McMartin>
Commits since last tag seems like a more human-friendly mechanism.
20:07
<&jerith>
And as such, they get tagged.
20:07
<@Tamber>
Pah! Autoupdate is for *spit* closed-source software~ ;)
20:07
<&McMartin>
jerith: Yeah, that wasn't how we were organized at the last place
20:07
<&jerith>
Tamber: `apt-get update && apt-get upgrade` in a cron job. ;-)
20:07
<&McMartin>
Essentially any commit could be turned into a "release" for QA by the build bot with no effort on any human's part.
20:08
<@Tamber>
jerith, perhaps I should have put that as "built-in autoupdate" instead, then. :p
20:08
<&McMartin>
That was actually pretty nice, and SVN gave us that for basically free by including an appropriate call to svnversion in the buildscripts
20:09
<&McMartin>
Versioneer sounds like it could do that with commitcounting and the "you're shipping .debs" tradition appears to be "use an ISO date as the 'patch level'"
20:10
<&jerith>
McMartin: `git tag <version>; git push --tags` and have your CI system build a release package. ;-)
20:10
<&McMartin>
Yes
20:10
<&McMartin>
Now you need to make sure that your "version"s are monotonically increasing across all your devs, etc
20:10
<&McMartin>
That is strictly a step down
20:10
<&jerith>
I don't follow.
20:11
<&McMartin>
If I "git tag <version>", I need to be in communication with every other dev to make sure it's an atomic increment.
20:11 gizmore [kvirc@Nightstar-grreaf.dip0.t-ipconnect.de] has quit [[NS] Quit: KVIrc 4.3.1 Aria http://www.kvirc.net/]
20:11
<&McMartin>
If I use something based on date or commitcount, I push.
20:12
<&McMartin>
The latter workflow is significantly more robust.
20:13
<&jerith>
`git tag` shows you the existing tags and you can just pick the next one.
20:13
<&jerith>
Or you make <version> date-based.
20:13
<&McMartin>
The failcase for that is when two developers are preparing releases for QA on the same codebase
20:14
<&McMartin>
Which means either you explicitly embrace the notion of partial order
20:14
<&McMartin>
Or you let the build system handle it all
20:14
<&McMartin>
This is adding a manual step that shits up your taglist and ANAICT buys you literally nothing, so I'm still struggling to see why one would do it
20:15
<&jerith>
Oh, I actually meant the build bot does that.
20:15
<&jerith>
When it decides "this commit should be a release", it tags the commit with the version and rebuilds or whatever.
20:16
<&jerith>
It does mean you have to manage the release versions explicitly rather than relying on a full ordering of all commits.
20:17
<&McMartin>
Right, though anything that makes it out to customers would need that anyway for the "real" revision jumps
20:17
<&McMartin>
But it's nice to have anything the CI spits out be able to coexist
20:18
<&jerith>
Yeah.
20:18
<&jerith>
How does your system handle branch builds?
20:18
<&McMartin>
Past tense, as the company folded for non-tech related reasons, but...
20:18
<&McMartin>
It was a lexicographical compare on major.minor.patch.revision
20:19
<&McMartin>
So a branch from an earlier release is an update to that release but not any later release
20:19
<&McMartin>
Two branches from the same release would "fight" for the latest-revision slot
20:19
<&jerith>
I know, but I'm talking about the design of the system rather than the actual usage thereof. :-)
20:19
<&McMartin>
The nature of the product was such that downgrades were nonfeasible
20:19
<&McMartin>
Yeah, the design was "lexicographical comapre on major.minor.path.revision" because it was SVN based
20:20 * jerith nods.
20:20 Checkmate [Z@Nightstar-ev6.6um.94.83.IP] has joined #code
20:20 mode/#code [+o Checkmate] by ChanServ
20:20
<&McMartin>
There were plans to switch to git, that never really materialized because git is shit at blobs and we needed decent blob support, and the on-paper plan was to replace "revision" with a count of builds made by the CI system.
20:20
<&McMartin>
Which was not my choice; I argued for ISO date.
20:21
<&jerith>
The commits-since-last-tag-followed-by-hash gives you something similar to the SVN thing, except the branch with more commits always wins.
20:21
<&jerith>
Having the CI system count sounds like a horrible idea.
20:22
<&McMartin>
"The branch with more commits always wins" sounds like an outright design failure
20:22
<&McMartin>
Given the nature of the system and what we used it to enforce, date directly represented that as the final disambiguator
20:22
<&jerith>
I don't see how that's particularly worse than "branch with most recent commit".
20:23
<&jerith>
Assuming branches are actually independent.
20:23
<&McMartin>
The latter is easier to change if you need to force it~
20:24
<&McMartin>
(Though yeah we also had a revision-override command)
20:24
<&jerith>
Nothing that matters should be seeing branch builds anyway.
20:25
<&jerith>
If you really need to push experimental stuff outside the branch test world, tag an unstable release or something. :-)
20:26
<&McMartin>
There is not actually a universal answer to "should QA get to see branch builds"
20:26
<&McMartin>
This place said "yes, absolutely" to that, in part because SVN branches are more heavyweight
20:26
<&McMartin>
While we also had people come in and boggle at this, since apparently they were used to people reintegrating and breaking everything for everyone
20:27
<&jerith>
Oh, QA should almost certainly see them. QA should also treat them as branches, not release candidates.
20:27 Meatyhandbag [sebastianfe@Nightstar-ee1.oh7.224.136.IP] has joined #code
20:28
<&McMartin>
Right, though this also meant that under the SVN environment QA and dev needed no special protocol for "test autoupgrade from last release to branch"
20:29
<&McMartin>
So one wasn't written because it Just Worked, modulo bugs that the branch hopefully was fixing
20:29 catadroid [catalyst@Nightstar-spe22l.dab.02.net] has quit [[NS] Quit: Bye]
20:30
<&jerith>
How did that work switching between two unrelated branches?
20:30
<&McMartin>
That wasn't a tested workflow, per se, but one would probably work and the other required a manual intervention
20:32
<&McMartin>
(if you deliberately engineered your branches so that an "upgrade" was actually a downgrade that couldn't handle data migration, that would have been on you, but (a) that never came up and (b) if it did we'd have demanded a pre-release bump in patchlevel)
20:33
<&jerith>
I was thinking more along the lines of "branch A adds thing 1, branch B adds thing 2, neither knows about the other".
20:34
<&jerith>
So switching between the two behaves like a downgrade in either thing 1 or thing 2.
20:35
<&McMartin>
Our protocol for testing things independently like that involves doing a full system reset between the two
20:35
<&jerith>
(I'm asking because I'm curious, not because I think it's a bad setup.)
20:35
<&McMartin>
(In practice we would assign each thing to a different QA engineer, and then get them both integrated with each other as quickly as possible.)
20:35
<&McMartin>
Generally we paired devs with QA leads and they worked together on test protocols and as stuff evolved we'd go through with it
20:36
<&McMartin>
We had a *much* stronger human element in our QA than is typical
20:36
<&McMartin>
The places where the spiders tended to live were places where unit tests consistently were the problem instead of the code.
20:36
<&McMartin>
Automated systemic tests for desktop software that talks to servers is hard =P
20:37
<&jerith>
My preferred protocol for QA like that is to start each session with a complete reset to the current (or relevant) release version, followed by autoupdate to the build being tested.
20:37
<&McMartin>
Yeah
20:37
<&jerith>
But that isn't always feasible.
20:37
<&McMartin>
For us it was always *possible* but time-consuming
20:38
<&McMartin>
So for iteration (or, of course, for testing things that requires two different builds with the feature in) it had to do both
20:38
<&jerith>
I've been bitten by leftover state from intermediate versions that meant QA worked fine but production broke.
20:38
<&McMartin>
Yeah
20:39
<&McMartin>
System reset is mandatory once you get to "everything is drafted and integrated, send the first complete version of the next version to QA"
20:39
<&jerith>
Much more recently, I've watched colleagues get bitten because their automated testing isn't where it should be.
20:40
<&McMartin>
Yes
20:40
<&McMartin>
Note that I often come off as sounding like I think automated testing is overrated
20:41
<&McMartin>
This is because the bugs I tended to get were things like "If MS Office is also installed, its keyboard/language select bar starts placing itself over parts of your display, interfering with proper operation of our product"
20:41
<&jerith>
We've hired an excellent QA lead, but because stupid reasons he's spent a bunch of his time loading content into a crappy system over and over again instead of actually leading QA.
20:41
<&McMartin>
And this is the sort of thing automated testing does not catch.
20:42
<&jerith>
Oh, and I meant I watched them get bitten specifically by the upgrade thing.
20:42
<&McMartin>
Oh, right.
20:42
<&McMartin>
I don't recall for sure
20:42
<&McMartin>
But I think they used a dd-like approach for system resets
20:43
<&jerith>
Because their automated tests started never ran migrations.
20:43
<&McMartin>
Yeah
20:43
<&McMartin>
WHen I first joined that company we had an attempt at a full automated test
20:43
<&jerith>
So the migrations were only ever tested manually on an ad-hoc QA system.
20:44
<&jerith>
This is all web stuff, though.
20:44
<&jerith>
So much less tricky to test than your things.
20:44
<&McMartin>
It would download the installer, run it, start it up, log in to that server with appropriate credentials, subscribe to content, install it, configure and launch a VM, which would then do detectable things, then shut down, power off, uninstall, cleanup
20:44
<&jerith>
That sounds... ambitious.
20:44
<&McMartin>
That is literally the minimum to test the basic operation of anything, too
20:45
<&McMartin>
I would estimate the ratio of "the unit tests failed because something is wrong with the code you did" to "the unit tests failed because something went sideways in that chain of spaghetti" to be about 1:35
20:45
<&McMartin>
... which is why it didn't last much longer, and also why our QA was more human-heavy than usual
20:45
<&McMartin>
Individual modules were unit-tested
20:45
<&McMartin>
That was so very much not the Work Of Testing
20:46
<&jerith>
Anyway, I suspect most of your bugs were weird interactions because you already had decent code-level testing.
20:46
<&McMartin>
(Meanwhile, the server team would deploy 5,000 automated mock clients and just stand there shouting GO FORTH, MY ARMY OF ROBOTS!)
20:46
<&McMartin>
Yep
20:46
<&jerith>
Last time I unleashed an army of robots on my system, it defeated them.
20:47
<&McMartin>
While I don't consider myself an expert, my tentative conclusion here is that how human-heavy your QA has to be depends a lot on how much of the things that can go wrong involve "weird interactions"
20:47
<&jerith>
That was a very long time ago, though.
20:47
<&McMartin>
And there's a definite sense from some quarters that weird interactions are not actually bugs in your code, but the fault of the end user or system administrator
20:47
<&McMartin>
And my pushing back against that is what produces the impression I'm anti-automated tests
20:48
<&jerith>
I've never seen you as anti-automated test, FWIW.
20:48
<&McMartin>
okay
20:48
<&jerith>
Especially not in conversations like this one. :-)
20:49
<&jerith>
It might be because I tend to assume that decent automated testing is a starting point, not an unattainable goal.
20:50
<&jerith>
Meanwhile, Bunnee is getting very frustrated next to me giving her mom tech support over the phone.
20:55
<&McMartin>
Oh dear
20:57
<&jerith>
Her mom is now following instructions instead of reading everything on the screen, so all is good.
20:58 catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code
21:24
<@froztbyte>
I am making good headway in writing some automated minions
21:24
<@froztbyte>
for testing our stuff
21:25
<@froztbyte>
but it's quite the process because holy crap moving components within moving components
21:25
<@froztbyte>
(not in the sense of over-complexified anything, it's just the nature of what's actually being sold)
21:25
<@froztbyte>
but it's going to be fuuuuuuuun when I can explode some servers at the touch of a button
21:26
<&ToxicFrog>
McMartin: apart from stuff like versioneer, git has a general purpose mechanism for adjusting file contents just before commit (or just after checkout, or both)
21:26
<&ToxicFrog>
Which can be used to implement stuff like this without much trouble.
21:27
<&ToxicFrog>
What you can't do is implement exactly "replace this with the current commit ID", because the commit ID is a hash derived in part from the file contents, although things like "commits since last tag" are entirely possible.
21:30
<&ToxicFrog>
Re: weird interactions: we actually have a thing in snowcat that brings up a complete serving stack with a variety of configurations, sends a whole bunch of traffic through it, and checks both the results of the traffic and the contents of the logs. IME the ratio of problems with your code vs. problems with the test infrastructure itself is about 1:1, which is good enough to be useful.
21:30
<&ToxicFrog>
But we also have a team dedicated just to maintaining this thing, so.
21:31
<&ToxicFrog>
catalyst: as noted earlier I am generally pro-git!
21:32
< catalyst>
aha :)
21:32
<&ToxicFrog>
Er. As in "I am in favour of it", not as in "I am a pro at git", although I have some experience with it.
21:32
<&McMartin>
TF: Yeah, being a Gigantic Corporation with properly organized priorities helps a lot for this
21:33
<&McMartin>
We, uh, burned out three QA-Dev engineers on that thing and then decided to cut our losses for the good of humanity
21:33
<&ToxicFrog>
Eep.
21:33
<&McMartin>
I think one of them left the industry to get into autocross. >_>
21:34
<&McMartin>
catalyst: I don't think I said this directly to you, so: thank you for the video link yesterday! That is in fact *exactly* the level I was hoping to be targeted at
21:34
< catalyst>
Awesome
21:34
<&McMartin>
viz. "people who use the C++ language like the demoscene uses defunct chipsets, and who really probably shouldn't be"
21:35 Meatyhandbag [sebastianfe@Nightstar-ee1.oh7.224.136.IP] has quit [Client exited]
21:40
<&McMartin>
Also, he's talking up "A Tour of C++" which I think I need to acquire and force upon my co-workers
21:40
<&McMartin>
("C++, unlike war, changed a lot. Here's what you need.")
21:44 * TheWatcher readsup
21:50
<@TheWatcher>
I do note that, for several projects I either use or am involved with (some involving dozens of devs), annotated git tags are pretty much The Standard Release Marker and it seems to work - of course, many of them get around the problem of clashing tags by essentially only having one or two devs who are allowed to set them...
21:51 thalass [thalass@Nightstar-m49.o7s.158.104.IP] has joined #code
21:51 mode/#code [+o thalass] by ChanServ
21:51 Turaiel[Offline] is now known as Turaiel
21:52
<@celticminstrel>
I wish I could use C++14 in XCode 4. :/
22:11
<@celticminstrel>
Anyone know if there's a way to make XCode relink static libraries if they've changed?
22:11
<@celticminstrel>
Maybe if I added it to the build phase instead of the command-line options...
22:18
<@celticminstrel>
But they're not showing up in Products. :/
22:37
<@celticminstrel>
It's annoying how XCode doesn't properly understand where your products are and doesn't let you manually fix it.
22:38
<@TheWatcher>
But it Just Works~
22:45
<@celticminstrel>
Only if you don't mess with the build products location in build settings.
22:45
<@celticminstrel>
You'd think it would be able to tell that you've done that, but apparently not.
23:00
<&ToxicFrog>
TheWatcher: the problem being solved here is not "how do you mark releases in git" but "how do you make sure the program as released reports itself as the right version, without needing to remember to make an "update version numbers" commit"
23:05 GreenGuy [uid85383@Nightstar-om40rg.irccloud.com] has quit [[NS] Quit: Connection closed for inactivity]
23:48 Meatyhandbag [sebastianfe@Nightstar-ee1.oh7.224.136.IP] has joined #code
23:48 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
23:48 mode/#code [+qo Vornicus Vornicus] by ChanServ
23:49 himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code
23:49 mode/#code [+o himi] by ChanServ
--- Log closed Fri Sep 04 00:00:45 2015
code logs -> 2015 -> Thu, 03 Sep 2015< code.20150902.log - code.20150904.log >

[ Latest log file ]