Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
baquerd
Jul 2, 2007

by FactsAreUseless

Verloc posted:

This. Good SCM/devops people are worth their weight in gold because a year after they've automated themselves out of a job on SCM stuff they're still coming up with ways to make the developers' and sysadmins' lives easier.

If only they typically got paid that way, we might have a lot better software out there on average.

Adbot
ADBOT LOVES YOU

Deus Rex
Mar 5, 2005

Ithaqua posted:

First problem: Hiring a "devops" guy. I've seen no compelling reason for this role. Devops is about increasing collaboration and communication between developers and infrastructure. If you need automated builds and deployments, start allocating time to do it. If you can't convince management that the time investment is worthwhile, you're already doomed.

You're absolutely right. That money for hiring a devops guy would be far better spent on a Microsoft TFS support consultation instead.

baby puzzle
Jun 3, 2011

I'll Sequence your Storm.
Beware all functions, classes, and libraries that have "Smart" in their name.

Jewel
May 2, 2009

baby puzzle posted:

Beware all functions, classes, and libraries that have "Smart" in their name.

Thanks. Will avoid Smart Pointers in future :tipshat:

FamDav
Mar 29, 2008

dexter posted:

I don't find that to be the case at all. Most of our developers don't need to care about how applications are deployed or scaled. They're welcome to participate in those decisions / actual implementation and we absolutely encourage it (devopzzzz) but we don't require it of them. We build tooling around our infrastructure allowing them to deploy applications and services themselves so they can continue to work on their projects without being bothered with configuring CI jobs, deployment scripts, etc.

if you have infrastructure in place that allows developers to deploy apps themselves, youre at peak devops dude.

devops is not "alright made that bug change now let me manually apply this patch to 80 servers" or "welp let me look through server options all day trying to figure out which one is right for me". devops is having the tools in place so that deployments are "commit change, let build server build, deploy built versions as part of environment update" and scaling is "woah we're getting hammered better move that slider to the right and deploy more apps"

Steve French
Sep 8, 2003

FamDav posted:

if you have infrastructure in place that allows developers to deploy apps themselves, youre at peak devops dude.

devops is not "alright made that bug change now let me manually apply this patch to 80 servers" or "welp let me look through server options all day trying to figure out which one is right for me". devops is having the tools in place so that deployments are "commit change, let build server build, deploy built versions as part of environment update" and scaling is "woah we're getting hammered better move that slider to the right and deploy more apps"

As far as I can tell he never claimed his organization wasn't doing devops. He was responding to Ithaqua saying he doesn't see any benefit to having people dedicated to devops tasks. Someone has to build the infrastructure to allow devs to do the things you are describing. Ithaqua was saying that the devs should be the ones to do that, the implication in the post you are responding to is that someone else did.

FamDav
Mar 29, 2008

Steve French posted:

As far as I can tell he never claimed his organization wasn't doing devops. He was responding to Ithaqua saying he doesn't see any benefit to having people dedicated to devops tasks. Someone has to build the infrastructure to allow devs to do the things you are describing. Ithaqua was saying that the devs should be the ones to do that, the implication in the post you are responding to is that someone else did.

I misread.

Anyways yeah, having each team handle highly granular portions of their build and deploy process is wasteful. There are so many commonalities that you should have a dedicated team.

there are plenty of existing and emerging public tools for easy repeatable deployment, but less so on the build side. Ideally you want

# everything is a package
# language/build tool agnostic dependency management
# sandboxed builds
# Versioned dependency sets
# deterministic builds, both for parallel builds and retrieving prebuilt dependencies
# ability to develop multiple packages at the same time
# ability to map built packages into the layout of your application

canis minor
May 4, 2011

baby puzzle posted:

Beware all functions, classes, and libraries that have "Smart" in their name.

I think somebody started their adventure with Smarty.

HFX
Nov 29, 2004
I have commited a coding horror today. Due to silly code metrics like at least 75% of code must be unit tested, I ended up writing code to scan through a package, and for each class, set and test all the fields which have gets and sets. Increased my code coverage by 40%. Now to just spend the next two weeks writing mocks so I can finish testing the interesting code.

I shouldn't say finish testing the interesting code, it is tested through integration tests. However, it is kind of hard to do unit tests for ftp drops and database access when the ftp site is inaccessible from the build machine, and the database access changes the database.

Hooray for code metrics.

HFX fucked around with this message at 18:19 on May 1, 2014

Omnomnomnivore
Nov 14, 2010

I'm swiftly moving toward a solution which pleases nobody! YEAGGH!

ErrantSystems posted:

<physics code>

My first job was working with a bunch of physicists-turned-financiers and their code. Imagine what you just posted, except it's written in awk.

Legacyspy
Oct 25, 2008

ErrantSystems posted:

Hello, I've come to enforce the idea that all physics code is incomprehensible. I have tremendous respect for the people who can take a random paper and turn it into a working implementation, but I can't say that I'm at all fond of 950 line monstrosities like this.

Just in case you didn't catch on, there are 0 variable declarations past the very first block of code. Personally, my favorite variable is aaa2, although I really couldn't tell you what its supposed to represent.

Wow. The naming convention I can actually understand. But the rest?? Why??

coffeetable
Feb 5, 2006

TELL ME AGAIN HOW GREAT BRITAIN WOULD BE IF IT WAS RULED BY THE MERCILESS JACKBOOT OF PRINCE CHARLES

YES I DO TALK TO PLANTS ACTUALLY

Legacyspy posted:

Wow. The naming convention I can actually understand. But the rest?? Why??

Because when they decided they needed to write something in #language, they went and got a book and read until they knew just enough to do what they needed, then they went and did it. And also because scientists usually work on their code alone, so they never had any coworkers to tell them what the problem was.

e: Imagine you're fixing a shelf. Now you could sit down and learn carpentry and learn how to fix it properly so it looks good as new, orrrr you could drive seven screws through the joint at varying angles until it stops falling down. Yeah you've shredded the heads and split the wood, but the job's done and you can go back to what you actually care about.

coffeetable fucked around with this message at 21:49 on May 1, 2014

SurgicalOntologist
Jun 17, 2004

That really sums up scientific computing. My advisor (a physicist) uses Matlab but has never really figured out array arithmetic. I don't know how many times I've seen him do something like this:

code:
for i=1:length(a)
    c(i) = a(i)*b(i)
end
and when I say "Hey, you know this works too:

code:
c = a*b
He says "both ways work. My way works so I don't feel the need to learn a new way."

== "Well, the shelf is the sturdy enough!"

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS
Not a coding horror per se, but definitely a horror.

I just had a powerpoint emailed to me where someone argued that due to budget concerns we should use Dreamhost to host our websites over AWS.

The cost difference is less than a thousand dollars. For a $500 million company.

God dammit.

Alien Arcana
Feb 14, 2012

You're related to soup, Admiral.

Edison was a dick posted:

Heh, if this is C++ and operationSuccess is as uninitialized as I suspect it is, it's not even guaranteed to be set to true because of undefined behaviour.

Powerful Two-Hander posted:

$5 says operationSuccess is initialized as being true and the operation is able to silently fail without actually throwing an exception.

This is Javascript. operationSuccess is a local variable properly initialized to true at the start of the function, and that's the only other time it's referenced. I don't know if the operation is able to fail or not (it's executing a SQL command, so if it can it's not our fault).

So this wouldn't really be a horror, except that what I posted is the end of the function, and nothing is ever done with operationSuccess. If the SQL command fails, the rest of the program just chugs along, oblivious to the fact that the record it's trying add wasn't actually added.

ErrantSystems
Jul 5, 2009

Omnomnomnivore posted:

My first job was working with a bunch of physicists-turned-financiers and their code. Imagine what you just posted, except it's written in awk.

I'm so sorry. I can only hope you were spared the huge amounts of FORTRAN 77 code, which everyone seems to love to use (LAPACK is fine, sure, but new applications? Uhg).

o.m. 94
Nov 23, 2009

SurgicalOntologist posted:

That really sums up scientific computing. My advisor (a physicist) uses Matlab but has never really figured out array arithmetic. I don't know how many times I've seen him do something like this:

code:
for i=1:length(a)
    c(i) = a(i)*b(i)
end
and when I say "Hey, you know this works too:

code:
c = a*b

I can understand his misguided reasoning though, he's thinking in terms of sigma notation like a mathematician which invariably he feels more comfortable with rather than a programmer's approach

SurgicalOntologist
Jun 17, 2004

Yeah, I can understand it, but this is in example scripts and problem sets in a class he's teaching, so I think he should make the effort to show students the easy. Not to mention that it would be part of some larger algorithm, and usually the one-line version is pretty much exactly what it would look like written out as an equation, but his version comes out at 300 lines of nested loops and intermediate results stored in variables with 2-letter names. It's a mess.

Nippashish
Nov 2, 2005

Let me see you dance!
The real horror there is that a*b is actually fast in matlab, whereas the for-loop will be painfully slow.

Zemyla
Aug 6, 2008

I'll take her off your hands. Pleasure doing business with you!

SurgicalOntologist posted:

That really sums up scientific computing. My advisor (a physicist) uses Matlab but has never really figured out array arithmetic. I don't know how many times I've seen him do something like this:

code:
for i=1:length(a)
    c(i) = a(i)*b(i)
end
and when I say "Hey, you know this works too:

code:
c = a*b
He says "both ways work. My way works so I don't feel the need to learn a new way."

== "Well, the shelf is the sturdy enough!"
Well, in his defense, he may as a mathematician see a*b as the dot product of the two vectors. Is that a different operator in MATLAB?

nebby
Dec 21, 2000
resident mog

Ithaqua posted:

Who's going to know how to deploy your software better than the guy who's writing it? Who's going to know about the environments that run the software better than the guy who's setting them up?
I know this is from a page ago, but I wanted to also point out this is also true when it comes to managing the testing infrastructure. My employer hired a dedicated team to manage the unit testing framework, integration testing framework, CI server, etc. They did do some good things, but they regularly broke poo poo that halted everyone's work. If they were involved in developing the mainline product, it would have been (nearly) impossible for them to ship broken tools. But since their only 'product' was the testing stuff, they often were self-absorbed in the latest TDD/BDD trend, adding the latest framework of the month, and spending time building poo poo nobody needed, breaking stuff in the process.

SurgicalOntologist
Jun 17, 2004

Zemyla posted:

Well, in his defense, he may as a mathematician see a*b as the dot product of the two vectors. Is that a different operator in MATLAB?

Oh right. It would have to be a.*b for an element-by-element operation. But he knows this.

fritz
Jul 26, 2003

Legacyspy posted:

Wow. The naming convention I can actually understand. But the rest?? Why??

I want to say the variable declarations at the top used to be a thing you actually had to do in some languages, maybe including older versions of C.

The Laplace Demon
Jul 23, 2009

"Oh dear! Oh dear! Heisenberg is a douche!"

fritz posted:

I want to say the variable declarations at the top used to be a thing you actually had to do in some languages, maybe including older versions of C.

AFAIK scientific computing is the only reason Fortran is still in use today. That code looks like it was written by a "recovering" Fortran addict.

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

fritz posted:

I want to say the variable declarations at the top used to be a thing you actually had to do in some languages, maybe including older versions of C.

I feel so old.

ExcessBLarg!
Sep 1, 2001

Subjunctive posted:

I feel so old.
C99 has been out for 15 years now. It's even been superseded. It's safe to write C99 now, really.

(I may have had to make that argument recently.)

ErrantSystems
Jul 5, 2009

fritz posted:

I want to say the variable declarations at the top used to be a thing you actually had to do in some languages, maybe including older versions of C.

Yeah, C89 required that iirc (at the beginning of scope at least, as Plorkyeran pointed out). Seems more likely that its due to the popularity of FORTRAN in physics like Laplace said though, especially since the code I posted was C++ and written between 2003-2005 or so. I wish I could actually use c++11, it makes me so sad.

ErrantSystems fucked around with this message at 05:23 on May 2, 2014

FamDav
Mar 29, 2008

nebby posted:

I know this is from a page ago, but I wanted to also point out this is also true when it comes to managing the testing infrastructure. My employer hired a dedicated team to manage the unit testing framework, integration testing framework, CI server, etc. They did do some good things, but they regularly broke poo poo that halted everyone's work. If they were involved in developing the mainline product, it would have been (nearly) impossible for them to ship broken tools. But since their only 'product' was the testing stuff, they often were self-absorbed in the latest TDD/BDD trend, adding the latest framework of the month, and spending time building poo poo nobody needed, breaking stuff in the process.

Your issue is that either nobody clearly defined their customer or nobody held them accountable to their customer.

fritz
Jul 26, 2003

Subjunctive posted:

I feel so old.

I was being cagey with phrasing because I didn't want to look it up and see when exactly it changed but yeah I don't miss the "everything at the top" days at all.

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
C89 only requires that variable declarations be at the beginning of a scope (and not function or file or something), so even if you like to write 500 line functions it's usually possible to have the declarations relatively close to the usage.

Harik
Sep 9, 2001

From the hard streets of Moscow
First dog to touch the stars


Plaster Town Cop

ExcessBLarg! posted:

C99 has been out for 15 years now. It's even been superseded. It's safe to write C99 now, really.

(I may have had to make that argument recently.)

I've just recently had to deal with an embedded compiler that's not C99, and never will be.

Of course, it wasn't really C89 either. Just "maybe-sorta-C if we feel like it."

carry on then
Jul 10, 2010

by VideoGames

(and can't post for 10 years!)

Wasn't Microsoft's C compiler only basically C89 for quite some time?

Strabo
Feb 25, 2011

carry on then posted:

Wasn't Microsoft's C compiler only basically C89 for quite some time?

Yeah, the latest Visual studio still supports C99 only "partially". In the year of our Lord 2014.

Soricidus
Oct 21, 2010
freedom-hating statist shill
And they won. The new C standard makes most of the useful parts of C99 optional purely for the benefit of lazy vendors like Microsoft.

b0lt
Apr 29, 2005

Soricidus posted:

And they won. The new C standard makes most of the useful parts of C99 optional purely for the benefit of lazy vendors like Microsoft.

and yet it still has tgmath.h :negative:

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
Removing tgmath.h at the same time as adding _Generic would be a pretty weird decision.

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

carry on then posted:

Wasn't Microsoft's C compiler only basically C89 for quite some time?

Yeah, MSVC and some lovely off-brand Unix one (Sun Studio?) were the compilers that kept Firefox C and C++ in the dark ages for a long time; I don't think it was OK to have intermingled variable declarations in C files until...2007?

itskage
Aug 26, 2003


PSN Store posted:

Featured Games
We can't find any related games.

Link: http://us.playstation.com/ps-products/BrowseGames?console=ps3%E2%84%A2&downloadableContent=Add_ons&beginsWith=Any

SA shortens that though. Here is the URL but you won't see it in all of its glory unless you click.

code:
[url]http://us.playstation.com/ps-products/BrowseGames?console=ps3%E2%84%A2&downloadableContent=Add_ons&beginsWith=Any[/url]
Must be taking notes from the TSA.


The horror:%E2%84%A2 is the ™ symbol. Take it out and their link works.

The_Franz
Aug 8, 2003

Subjunctive posted:

Yeah, MSVC and some lovely off-brand Unix one (Sun Studio?) were the compilers that kept Firefox C and C++ in the dark ages for a long time; I don't think it was OK to have intermingled variable declarations in C files until...2007?

MSVC didn't support that particular C99 behavior until VS2013.

Adbot
ADBOT LOVES YOU

pseudorandom name
May 6, 2007

Microsoft has publicly stated that they will not support any C features that don't naturally fall out of their C++ implementation.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply