« first day (1994 days earlier)      last day (3001 days later) » 
00:00 - 17:0017:00 - 23:00

12:01 AM
@durron597 variety of approaches, depends on the technology. In MSSQL you can join across DB's, and even across servers, but the performance is never great. Typically anymore I aim for doing the data aggregation in application code treating my DB as 1 data source through a repo, and the other as another data source through a repo (which should point at a web service to abstract changes in the DB I don't control ideally managed by the people owning that DB)
alternatively, you can use ETL and just have batch jobs crossing data back and forth to get the relevant pieces into both databases that each needs
or live real-time data maintenance: Somebody updates entity X which has data in both DB's, the application updates both DB's.
Across databases - depending on the DBMS - you aren't going to get DBMS enforced foreign key constraints. You simply must manage constraints at the application level then in most cases.
So my favored approach: A team that owns a DB with data I need creates a REST service for CRUD on their DB. In my application I write a repo against that REST service, and a repo against my DB, and let the composition layer above the repos manage the data synchronization, atomicity of transactions if necessary, aggregation, etc.
They should maintain their REST service because it's not my DB - I don't want my repo breaking every time they make a DB change.
(replace REST with whatever reasonable IPC approach makes sense given the constraints of the system - performance or otherwise may push towards other IPC approaches for instance)
 
12:16 AM
@JimmyHoffa is ETL a concept or a tool?
i thought it was a concept but people talk about it like it's a tool
 
people mix it up because there's a ton of tools (very large ones) that do it
It is a concept though. You can do it by hand, by one tool, by many tools, at the end of the day it is a fairly simple concept that most everyone runs into pretty quickly in software, so it is what you think it is: Take data from place A, change it to fit place B, load it into place B
 
it's different database platforms and different owners. ETL is currently what we're thinking about
i don't think people are going to create CRUD REST APIs for us
 
Lots of companies entire system is run wholey by ETL tools because there are many that are so large they'll touch on anything and everything a business could want to do with wizards and such
 
so in our situation, if we aren't going to get people to write REST apis for us
 
@durron597 plausibly not, you could create them and hope to be notified when they're going to make breaking DB changes. You could also just ETL the data over or directly access it in real time if that's a reasonable approach
 
12:19 AM
and we don't really have capacity to write an application that does a lot of the joining work for us
so the right thing to do is ETL?
 
you could just create a repo against that DB just like you have a repo against your own using JDBC or whatever
@durron597 ah yeah, given that, ETL is probably a best bet
you can likely find tools that will make it easy, depending on how broadly available tooling is for the given DB platforms
 
@JimmyHoffa this is Amazon, there's an internal ETL tool
 
haha well there ya go. Also the concern with ETL is frequency: How stale can the data be, before your application degrades or doesn't serve it's primary purpose?
ETL is typically a heavy weight operation so not something you want to run frequently. You have to start doing more fine-grained synchronization activities if you need highly current data in both sides
 
@JimmyHoffa I think we'll start with ETL and possibly move to an application based pipeline late
we just need to have something functional ASAP and then work on things like highly concurrent reports lter
later
 
In CLOS you can construct objects that haven't been defined yet.
 
user55340
12:52 AM
 
user55340
@KitZ.Fox you know you want more reps...
 
user55340
0
Q: I'm done with my coding from Agile perspective

Mohammad NajarScenario: I'm working in an Agile environment. The dev environment has not been configured yet, and I'm told to code a piece of an application. I code the module and write appropriate unite test's for it as part of the coding task, and test the code offline in my own box. There is also a testi...

 
1:12 AM
@durron597 ETL tools are more or less designed for what you are describing - assuming you want to make reports?
@MetaFight I'm watching your upvotes roll in on that agile post. lol
 
yeah, I'm surprised at the response.
 
especially since you say "meh, wahtever" :P
 
that's me in a nutshell.
 
it was funny, since in the process of reading the question/answer I saw several upvotes on your answer. hah
 
this is my most valuable contribution to the site today:
I've occasionally considered myself a code guerrilla. — MetaFight 4 mins ago
 
user55340
2:14 AM
@MetaFight under cover refactoring... slipping that 'remove whitespace from ends of lines' format in with another "Adding braces where needed" commit message in Python.
 
TIL there are websites that push a mound of Javascript out to the browser to render the page.
Needless to say this makes them somewhat resistant to scraping.
 
user55340
There is "Javascript renders everything", there is "the page is rendered, but has no data, Javascript fetches everything"
 
It's not Angular, or anything nearly that sophisticated.
In fact, it's quite possibly the ugliest web page I've ever seen.
 
user55340
Sometimes is also "this is a ton of code for job/contract security because the client will never be able to change anything without paying us"
 
user55340
2:20 AM
or.us: Could very well be in the "contractors did this and don't want anyone to ever be able to change it"
 
Could be. Most of the other states are reasonably sane, though there is one that inexplicably has a Recaptcha on it.
New Jersey actually charges for this information. What a racket.
 
user55340
@RobertHarvey From the days when each request was a paper request, they needed to charge a fee to avoid getting "person asked for 1M printed pages of data". The laws about requiring the fees are rarely revoked.
 
user55340
Also, even if the department wanted to revoke the fees for the data, they aren't the ones that make the laws - they just implement them.
 
Perhaps. But they are the only state that has a fee.
I remember going to a trade show in New Jersey once, as a vendor. The Teamsters charged $150 to move our booth materials 100 feet from the loading dock to our booth location. We weren't allowed to touch them until they were delivered.
Heh.
 
user55340
blame @JimmyHoffa
 
user55340
2:25 AM
btw, have you seen the unofficial blog I've been dabbling in?
 
Lemme see, lemme see.
 
user55340
And the github repo... github.com/the-whiteboard
 
Nice.
 
user55340
2:27 AM
I'm going to point out I'm rather disappointed with SE not trying to do this for the sites.
 
user55340
Its really easy.
 
user55340
And github has a CI server running on the backend for jekyll sites.
 
The blogs were never a real priority for them.
 
user55340
This took 30 minutes to set up once I said I'm setting it up.
 
user55340
They've got their blog in github.
 
user55340
2:29 AM
I'm building it on the idea from Room 15 (Android SO chat rom): room-15.github.io/blog
 
user55340
For this purpose, the local wiki and issue tracking are killer features.
 
Oh, blargh.
Even a leading underscore makes more sense.
 
user55340
note: not going to add Discus to the-whiteboard -- we've got a place to discuss things. Right here.
 
Is Discus the Github chat?
 
user55340
2:33 AM
Discus is a third party that makes embeddable comments.
 
user55340
 
user55340
That part of it.
 
Nice example.
So we're not inviting the great unwashed masses then.
 
user55340
 
user55340
2:34 AM
Nope. Well, we are - I mean its not that hard to get 20 rep.
 
user55340
But I feel that comments on the posts distract from the post themselves.
 
user55340
And it requires moderation of that
 
@MichaelT So you say.
 
user55340
And I don't want to have to deal with "The evil moderators are deleting all my comments
 
user55340
@RobertHarvey Go to World Building. Ask how many zombies it would take to take over the world.
 
2:36 AM
 
user55340
Go to English.SE EnglishLanguageLearners.SE and ask how to pronounce "disqus"
 
user55340
Go to outdoors and ask what sex gender the chipmunks are.
 
Ah, yes. World Building. The site where everything's made up and the points don't matter.
 
user55340
Thing is, 20 rep isn't that hard to get somewhere if you want to participate in chat.
 
user55340
Shoot, could go ask how to tie your shoes when you're holding a dog in LifeHacks.SE.
 
user55340
2:40 AM
Anyways... still don't want to deal with it there.
 
user55340
3:34 AM
Ouch - I70 in Glenwood Canyon to be closed for weeks from a rock slide bellinghamherald.com/news/nation-world/national/…
 
user55340
Not a lot of ways to go around that: google.com/maps/@39.5666993,-107.1920623,12.44z
 
user55340
3:57 AM
@AaronHall ps. I hate questions. But I'll be damned if I let people write crappy answers that are guesses to it.
 
Yeah, but was that the first one?
 
user55340
@AaronHall en.wikipedia.org/wiki/Microprocessor#History - start there and go forward.
 
user55340
The 6100 was very odd. Only had 3 bits for instructions - 8 possible instructions total. Talk about RISC.
 
user55340
It actually had more - but they were all "macros" on top of that.
 
user55340
000 - AND.
001 - TAD.
010 - ISZ.
011 - DCA.
100 - JMS.
101 - JMP.
 
user55340
Though they might be able to make an argument for the PDP 8
 
user55340
> On all models of PDP-8 prior to the PDP-8/E, the group three instructions were only implemented if the EAE option was present. If this option is absent on such machines, all group three instructions become no-ops.
On the PDP-8/E and following models, CLA, MQA and MQL instructions are implemented in the standard CPU, while the other operations are implemented in the optional EAE. Portable code should avoid relying on the availability of any of these instructions.
 
user55340
> 7501 - MQA or Multiplier Quotient with Accumulator

MQA ors the contents of the MQ register into AC. Usually, the microcoded combination CLA MQA is used; this first clears the accumulator, so the result can be viewed as a load operation.
7421 - MQL Multiplier Quotient Load

MQL loads the contents of the MQ register from AC and then clears AC.
The microcoded combination CLA MQL first clears AC, so the result is to clear both AC and MQ. Some assemblers supply the mnemonic CAM for this combined operation.
 
5:59 AM
This question probably belongs on programmers.stackexchange.comMatthew Herbst 11 secs ago
 
 
4 hours later…
10:36 AM
I think this question belongs more to codereview or programmers. — WorldSEnder 57 secs ago
 
10:53 AM
Easy solution, get a VPN so you can spoof your location as North Wales! — yshavit 12 hours ago
heh
14
A: Numbers within strings?

Bergi (and please don't post code as pictures)

LOL
 
 
1 hour later…
12:24 PM
We have a piece of software that, while being packaged, requires specific versions of third-party firmware to be pulled in from somewhere to be bundled into the package. The "specific versions" will change over time.
In order to allow for full build automation, I'm going to set up a webserver with these third party resources hosted on them, e.g. http://<host>/resources/<name>/<version|"latest">/<filename>; our software's build script will then ask a lookup API (Python script probably — keeps builds of historical versions working even if the resource storage location/mechanism changes) to get the URL of <name> (version <version>).
Now, I can set up a basic public wwwroot (with a little magic to auto-generate the "latest" symlink directory) ... but what's the common way to do this? Is there a commonly used software page that manages resources like this? As I type this I wonder why we don't put them in SVN and tag, despite not being source. Hmmz.
 
are you talking about "vendoring" your dependencies?
 
not sure - depends what that is
 
vendoring dependencies basically means checking them into your source tree, with the goal of making builds repeatable even in the face of dependency updates
 
ok well sort of but sort of not
 
you can find many blog posts explaining why this practice is either the spawn of the devil or absolutely mandatory for anyone who's serious about product stability
 
12:34 PM
I guess one option is to do that (and we've done it on a smaller scale in the past without many problems)
but I'm trying to come up with a better practice, such as hosting all the third-party deps on an internal webserver
and having the version-controlled build scripts obtain the resulting URL for a specific version of a specific dependency through a version-controlled API layer
I guess the real question is whether storing the deps on a webserver in the first place is considered okay, or whether I should just stick with SVN for everything. ^/dep-name/tags/v1-3-02/ and external it surely
 
personally, I'm failing to see what the benefit is of storing those deps on an internal server as opposed to straight-up vendoring them
unless the goal is for many different projects from separate repos to all have reliable access to them
 
one benefit is availability to non-software folks (say, hardware testing, who love to be able to flash these f/ws independently of anything else) - they won't be using SVN but a webserver's probably okay
(atm they take the binaries off a horribly organised network share directory)
it would also be cool
the blog posts I've read so far on the subject seem to assume an open-source ecosystem where everyone's version control is accessible through Git
how myopic
another downside of SVNing it is that it would be weird. copy newly received build to trunk, tag. copy newly received build to trunk, tag. copy newly received build to trunk, tag.
 
1:08 PM
in my ideal fantasy world, if I chose to vendor dependencies there would be a daily Jenkins job that checks if a new version is available and if so generates the PR for the update, and all PRs have a webhook to run tests so I can just look for the checkmark and hit merge
but the hardware testing thing is a good point
RESTful CRUD microservices it is
 
1:33 PM
@Ixrec these are binaries delivered by email by vendors though
there won't be anything automated about the dependencies ;)
@Ixrec wheee
 
@PreferenceBean wat
 
@Ixrec GNSS chip vendors don't publish their code on github
 
fair enough
 
you buy the firmware
or get updates through support contracts I suppose
maybe the GNSS chip vendor doesn't email the updates but we do have one chip vendor that does :)
 
1:56 PM
I don't know why, I'm totally a tea man, but I have a hankering for some mediocre coffee.
Oh yeah, new idea for my nick, I'm thinking, 'Aaron "g-daddy" Hall'
 
g-daddy.
 
No, you have to say the whole thing.
With the quotes.
I'm totally joking.
 
[makes air quotes with hands]
 
yeah, like that!
 
I did that. I'll note it next time, 'g-daddy'.
 
2:02 PM
oh, crap, laughing so hard I'm waking my wife.
 
My roommate made pumpkin cornbread last might. She tried the batter and said it was too sweet, so she added salt. Then she added more salt. And then added more.
 
yum, salty
 
Yeah.
 
At least all that salt makes it more secure, right?
 
@AaronHall Is she okay?
 
2:04 PM
Good thing I have this (removed) button.
 
Well-preserved pumpkin pound cake.
 
@AaronHall I ask because it's 9am
 
I dump a packet of salt and a tablespoon of sugar in my instant oatmeal before warming it up at my office. The salt makes it good.
 
@AaronHall do it do it do it
 
Yeah, she likes to sleep nine hours.
and we go to bed at midnight
I hit the office by ten, and work til 6.
sometimes later
I only need 7 and a half hours or less, so morning is "me" time.
 
2:06 PM
Salt is good in oatmeal. Salt in umpkin cornbread (at probably three times the amount)? Not so much.
 
Ugh. I like at least eight, preferably ten.
 
I had six last night. That's why I'm in here talking to you fine folks.
 
I like my cornbread savory southern style.
 
I like mine unsalted.
Turns out.
 
I like it sweet too. Either way is fine.
 
2:09 PM
The CefSharp folks actually wrote me a "Hello World" yesterday.
 
@AaronHall was the exact opposite while I was living with Evil Spawn. would get up at 6 and need me to let her out of the "secure" car park. then be back from work around 3pm just as I was really getting warmed up on my work. and be surprised when I couldn't give her any attention. er hello 9-6 love. Can't say I'm in any way sad to be crawling out of bed at 9 then working until 7, 8, 9pm by default in comparison
 
My brother called her ex "The Plaintiff."
 
Sounds like your brother had a bad time.
 
You might say that.
 
This guy sounds like he's been up since 4:30:
I'm not sure he concluded that the change was for the better.
 
2:21 PM
@RobertHarvey heh
@AaronHall lunatic
I need to answer more Programmers.SE questions so I can get 10k and see all the deleted crap
at the moment I'm missing like 80% of what Feeds posts ;p
 
Writes blog post titled "How waking yourself up hourly and plunging your head into a vat of jello screaming "Boy, I'm tired!" can change your life" and waits for the talk invitations.
 
parse error: unexpected `B` on line 1
 
@PreferenceBean
@AaronHall what is it with New Yorkers and starting their days so late? maybe it's a midwest thing, but I don't know anyone who starts that late
but everyone I find that does... is in NYC ;)
 
2:43 PM
I used to get up at noon, but then I had kids.
No longer a night owl.
 
I often get up around 10-noon on weekends, but only weekends
 
gotta go!
 
if I sleep in until noon I'm sick/dying/call-911 levels of sickness :P
 
8 am is late for me these days.
Well, I slept until noon because I went to bed at three.
 
I still wake up super early even if I do that
it's horrible
 
2:49 PM
I wrote "3. Business owners and interested parties are delighted." right into the agenda for the sprint review.
I also found some cookies in the cupboard that I had forgotten were in there.
Today is a good day!
 
@KitZ.Fox this is what came into my mind when you said that:
 
I also titled today's meeting invite as "MOAR SPRINT PLANNING!!1!" in an attempt at whimsy.
We're actually projecting a velocity this time! Isn't that exciting!?
Why do I keep yelling everything!
 
it does feel awesome when you realize the velocity became a real meaningful thing
 
do you have a previous velocity to base it on, or did you just make it up?
 
Well. Our first sprint was 1 point, the second one was 8 points.
 
2:56 PM
wow
2 weeks, 8 points
 
 
But this one, which was our first everybody-pull-together sprint, looks like we might make 30.
 
ok, that's funny right there.
nope
30?
nope
 
well points are arbitrary right?
 
they're relative to eachother
8 in 2 weeks doesn't mean you can suddenly do 30
 
2:57 PM
velocity should only go up that much if you have way more people than you did last week
 
It's t-shirt sizing but numerically.
 
@JimmyHoffa it also assumes that the estimates are remotely accurate
 
@Ixrec Exactly.
 
8 in 2 weeks tells you that, you explicitly cannot do 30 in 2 weeks without a good amount of time spent practicing and improving
 
@JimmyHoffa it's hard to know if they guesstimated even close to well though. don't forget they are agile noobs
 
2:58 PM
@enderland also true, hopefully they have some amount of relative accuracy between them by now as they've estimated a hand full
 
We had one guy testing the production release for sprint 1, one guy making some feed changes in sprint 2 and now three devs and the designer working on sprint 3.
 
it's really not an "agile" skill to look at 2 feature requests and compare their size though, that's just being a developer
 
@JimmyHoffa doesn't Kit complain about her devs though? or is it her QA people. I can't keep track of which people everyone here is frustrated with :)
 
Well, we're close to having completed 30 already.
@enderland Just the project lead.
Most of the dev team is really good and the tester is new.
damn, standup! bbl
 
3:11 PM
Happy Release Day!
 
that's tomorrow
 
typical release day....
 
@Ampt this is not going to end well.... :P
 
but it will end, which is the most important part :D
@KitZ.Fox you're working on 3 sprints at once?
 
it's a marathon!
 
3:29 PM
@Ampt No, we're on sprint 3. We did 1 and 2 earlier.
Almost done with #3.
Planning #4 today. Review for #3 tomorrow. We're still getting the kinks out of the scheduling, but we're making really good progress!
 
3:53 PM
wow, how long are your sprints?
a week?
 
I hate days where this is me: dilbert.com/strip/1995-06-01 - lugging around a laptop all day and not using it.
 
@Ampt Two week sprints.
 
@AaronHall I would totally use that in restaurants and outdoors
but how I would end up in either of those places during work hours I'm not sure
 
@enderland 10 is not "late"!!
Granted, it's about as late as I think one should get away with. But 9 is normal, 10 is relaxed.
You're biased by your silly "start work at 3.25am" culture - that's early, bro!
 
4:09 PM
If you start work at 4 am you can declare it over at noon still having worked an 8 hour day.
 
@enderland FWIW when I visited customers in NYC (well, New Jersey but just outside Manhattan) they all started at stupid o'clock and I only just about got away with turning up at 9 (which for me was a bit of a drag as it was)
 
Hypothetically speaking.
 
BTW @AaronHall here'‌​s the spacemacs python layer documentation. Nice thing about spacemacs is every layer has a standard documentation template which basically says what it is for, and then lists down all the key combos for the different things it supports and the variables you can set in your config section of your spacemacs file to change it's settings (for indentation levels and such)
(also, if you haven't turned on global auto-complete, you're missing out)
excuse me, I mean
Happy Coffee Day
 
anaconda-mode? Is that associated with continuum?
 
@AaronHall read what it says in the layer documentation there - I don't know what continuum is or anything
 
4:13 PM
There's a python distribution called anaconda
 
@KitZ.Fox it's been 6 weeks?!
 
Since early January, yes.
I think the first week of January was when they told me we were switching to agile.
 
Somebody needs a group hug.
hug
 
@AaronHall this is where the "anaconda mode" comes from, guess it's a standard python mode for emacs people use a lot, most of spacemacs "layers" are just taking normal emacs packages and packaging them into spacemacs and changing key bindings so they're mnemonic, and adding the spacemacs documentation template with all the features and key bindings info etc
 
hug
@Ampt Is that good or bad? I can't tell.
 
4:20 PM
I want to make something cool
stuck writing tests blergh
 
but tests are cool
 
still psyched about my working loop semantics ;p
 
I want to be playing Fallout 4.
@PreferenceBean w00t! Nice.
 
and more than a little worried that they may actually not be working but I have not spotted remaining extant problems
but hey it's not as if we're building a beta tomorrow or anything
 
I should be playing Halo 4
 
4:21 PM
My eggs are cold. I'm trying not to grumble.
 
and watching Breaking Bad season 4
 
@AaronHall you should try using spacemacs for python for like 1 hour today with the python mode turned on. Dollars to donuts - you'll get used to the key bindings for it after 10-15 minutes and realize how awesome it is. Just M-x shell and then cd to the root folder for some python code, touch projectile and with that blank file in place, spacemacs projectile will recognize it as the root of project. Then you can M-m p f to open a file under that project folder with ease
 
and the rest of the Fourth Doctor
why am I on nothing but 4s
 
Four score and seven.
 
18 hours ago, by PreferenceBean
took me like four hours to get it working properly alongside my conditionals. and allow everything to be nested. I implemented it all as a stack of "jump X commands after Y commands" ... maybe that's why
 
4:22 PM
and another four
 
and do project-level commands on that python project like building all of it or searching that whole project etc. plus M-m p b will swap buffers in that project so if you have 4 files open in that project and 20 other buffers, that will easily let you choose buffers just for that project
 
@PreferenceBean I love it when a plan comes together.
 
@Ixrec heh
are we about to hit the USS Bozeman....????
(yeah I know that was three)
 
@PreferenceBean sounds like an NCube?
 
@JimmyHoffa eh
 
4:24 PM
@JimmyHoffa just added comments to a code review saying "this will have bugs in edge cases..." :o
if I don't respond... they got me!
 
@enderland should have added input examples showcasing failure scenarios for them to test with
 
should've written their failing tests for them
 
^^ he is QA after all
 
no u
 
@enderland how are your docker networks today
 
4:27 PM
@enderland yeah, that attitude going to have your scalp hanging on a dev's wall by days end. Nice knowing ya :D
@PreferenceBean undecidable, he hasn't accepted Haskell into his home and into his heart yet. He has no monoids :(
 
@PreferenceBean the project I am on feels like this:
 
;p
that did come to mind last night as we were talking
about Docker network isolation being deliberate
 
@enderland that's the correct approach.
(presuming it's a true reproduction of the prod environment)
 
@JimmyHoffa yeah. that'll be the trick - nothing like trying to do something like that on week 3 at a new company, I have minimal domain knowledge here (obviously) so it's a bit interesting :)
 
I laugh everytime someone talks about testing in an environment where they recreated prod - all in VM's on one machine, or with weird different DC and network boundaries and shit.
 
@JimmyHoffa yeah... luckily with Docker that's easier?
 
@enderland only if that's what you run your production environment in. Otherwise you're in for a pile of not-reproducible-in-production situations and real issues that are not-reproducible-in-test.
Nobody ever does that, I'm sure you're confused; everyone get's mirroring their production environment wrong.
 
NEED MORE CYNICISM
 
Better?
Don't forget to be mindful of any networking / domain configuration facets of production too. Production is in Domain A with DB's in Domain B: Must do same in the test mirror. Production is in Colo A, has MPLS link to Resource B: Must do same (or at least similarly network-latent-causing situation) in test mirror.
 
1. just pretend none of those matter
2. profit!
 
4:38 PM
that's one of those oft-overlooked situations, all the configuration points: Everything is broke in production but works in test! Oh, in test the application runs in SU... or Oh, in test there's no latency to the DB that would cause our production race condition...
 
Yeah, we've already run into weird quirks we think are related to that? but we're not sure
 
Data mockDbQuery() {
    sleep(random());
    return staticData;
}
(no we don't do this)
 
(much)
 
We have a "works on my machine" checkbox for the devs to use.
 
lol
 
4:41 PM
@KitZ.Fox oh goodness.. this is magical. Wow. Words fail me. I will therefore respond without them: dlakhgfsldhftg salrejngvzdfnrisldrgnb vzk drhigure v34e98 vndjfr r
 
this is also why our internal Github repo has a webhook that runs the Jenkins job with all the tests every time a PR is created or updated; no excuses!
it catches a lot of silly mistakes
 
Part of it was that the last tester kept reporting bugs that were shut down as "by design".
 
@JimmyHoffa more random: Y'AI 'NG'NGAH H'EE-L'GEB F'AI THRODOG UAAAH
 
@Ixrec typical. Sadly people are terrible about maintaining their local dev workspaces in a clean mirror of a proper environment identical to all other devs on their teams and to production regarding dependency versions, build tooling, etc. One of those "saves me a lot of trouble" skills I learned when I did CM work. I scrub my local and grab everything from prod before every change is started and before testing every change and again before committing every change
extra work up front, but my changes never have misaligned configuration issues ("works on my machine! Oh wait, I run it in admin... oh wait, I used v4.2 not v4.1 of the build chain or of dependency Y..")
 
well, most of what it catches aren't environment issues, but legitimate test failures, since it runs all the tests and us devs usually only run the small subset of tests we know we're affecting since 5 minutes vs 5 seconds is a big diff
that and the usual "but I only changed one line!" test failures we didn't bother to rerun the tests on
 
4:46 PM
@Ixrec yeah, that's a good thing. I actually encourage relying on CI to run tests because it saves a ton of dev time to not require devs to run the full suite every time they do any work. They can move on and in the 80+% of times the full suite passes, it saved them time and let them continue working on the next thing. The 20% other times they just go back and fix before they've forgotten everything they did.
 
cool, that's what I thought
 
devs should do reasonable testing for certain, but a good CI suite that will find a majority of issues for you will save them so much "my code is compiling" time waste
 
The dev team is better than they used to be at code management, but there's this one dev who inevitably blows away everyone else's changes and breaks the build.
It is something I heckle the project manager about.
 
especially in the case of those 1-liners, seriously, 5 minutes to change the code and then half hour to test? Oh, made a mistake, now fix again and another half hour gone and now you're an hour lost just because testing locally. Send that to Jenkins and that's an hour the dev could have spent working on other stuff (like making his perfect cuppa; happy dev's don't write bugs!)
 
oddly enough, we had to implement the ability to blow away everyone else's changes in our shared worksheet app recently, for some reason we decided to call the operation a "splat"
 
4:49 PM
"How many times are you going to let the build fail before your team figures out how to merge changes?"
 
@KitZ.Fox if teams can't figure it out, they should designate a subset of folk capable with experience and who study the proper approaches to doing it; give them the privs and make everyone gate their merges through them. More overhead, but forces merge-reviews as well as making a set of people more skilled and capable of doing such properly. Seen that approach to the problem work with large dev teams quite well.
 
Yeah, we have one dev responsible for pushing changes to QA and Prod now.
 
I once briefly worked on a team where one person had to approve all of the reviews.
I am not a fan of that.
 
But this one dev still will stick stuff out on QA on his own.
And they have a dev environment besides local, which is what I think he ought to use instead.
 
@Ixrec it can be terrible or perfectly fine. Depends on the team dynamics, size, etc. When I worked places that did that - it was never 1 person. It was more like 1 in every 5 people
 
4:53 PM
QA belongs to the tester. He's not supposed to go putting whatever he feel like out there.
 
indeed, I'm pretty sure the problem was that it was just one guy
 
It would be good if they did some pairing on the team.
 
@Ixrec yeah, also the people allowed worked together to get the job done, big merges coming in of like multiple branches etc they'd group and go over it and make sure it was all cogent as a group.
I'm a definite fan of reviews of many sorts. The frequent short review (I wrote 100 lines, hey, got 10 minutes to double check me?), followed by the infrequent large review (I just implemented 6 classes altogether to provide this set of facilities for this feature, let's schedule 30-60 minutes with 1 merge specialist or lead, and 1 peer to double check it), followed by the merge review (the 3 of us just finished this feature, it's got 2500loc and adds a major new subsystem to the application, we want to merge it into dev now, can we get a lead, a merge specialist, a QA person and 1 peer for
just because I like the CYA effect that gives me the ability to make large changes without proclaiming it was just willy nilly- CYA gives the political credibility to make large important changes. Plus makes me feel like whatever I do is far more likely to have issues found ahead of going out
 
00:00 - 17:0017:00 - 23:00

« first day (1994 days earlier)      last day (3001 days later) »