|
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.
|
# ? May 1, 2014 02:52 |
|
|
# ? Jun 1, 2024 04:24 |
|
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.
|
# ? May 1, 2014 04:48 |
|
Beware all functions, classes, and libraries that have "Smart" in their name.
|
# ? May 1, 2014 16:11 |
|
baby puzzle posted:Beware all functions, classes, and libraries that have "Smart" in their name. Thanks. Will avoid Smart Pointers in future
|
# ? May 1, 2014 16:16 |
|
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"
|
# ? May 1, 2014 16:43 |
|
FamDav posted:if you have infrastructure in place that allows developers to deploy apps themselves, youre at peak devops dude. 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.
|
# ? May 1, 2014 16:59 |
|
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
|
# ? May 1, 2014 17:21 |
|
baby puzzle posted:Beware all functions, classes, and libraries that have "Smart" in their name. I think somebody started their adventure with Smarty.
|
# ? May 1, 2014 17:23 |
|
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 |
# ? May 1, 2014 18:08 |
|
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.
|
# ? May 1, 2014 21:07 |
|
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. Wow. The naming convention I can actually understand. But the rest?? Why??
|
# ? May 1, 2014 21:09 |
|
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 |
# ? May 1, 2014 21:46 |
|
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:
code:
== "Well, the shelf is the sturdy enough!"
|
# ? May 1, 2014 21:54 |
|
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.
|
# ? May 1, 2014 22:01 |
|
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.
|
# ? May 1, 2014 22:02 |
|
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).
|
# ? May 1, 2014 22:13 |
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: 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
|
|
# ? May 1, 2014 22:16 |
|
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.
|
# ? May 2, 2014 00:00 |
|
The real horror there is that a*b is actually fast in matlab, whereas the for-loop will be painfully slow.
|
# ? May 2, 2014 00:19 |
|
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:
|
# ? May 2, 2014 02:47 |
|
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?
|
# ? May 2, 2014 03:14 |
|
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.
|
# ? May 2, 2014 03:18 |
|
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.
|
# ? May 2, 2014 03:31 |
|
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.
|
# ? May 2, 2014 03:35 |
|
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.
|
# ? May 2, 2014 03:36 |
|
Subjunctive posted:I feel so old. (I may have had to make that argument recently.)
|
# ? May 2, 2014 03:42 |
|
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 |
# ? May 2, 2014 03:45 |
|
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.
|
# ? May 2, 2014 03:47 |
|
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.
|
# ? May 2, 2014 04:18 |
|
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.
|
# ? May 2, 2014 05:11 |
|
ExcessBLarg! posted:C99 has been out for 15 years now. It's even been superseded. It's safe to write C99 now, really. 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."
|
# ? May 2, 2014 08:49 |
|
Wasn't Microsoft's C compiler only basically C89 for quite some time?
|
# ? May 2, 2014 18:10 |
|
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.
|
# ? May 2, 2014 18:22 |
|
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.
|
# ? May 2, 2014 19:58 |
|
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
|
# ? May 2, 2014 21:06 |
|
Removing tgmath.h at the same time as adding _Generic would be a pretty weird decision.
|
# ? May 2, 2014 21:47 |
|
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?
|
# ? May 3, 2014 04:33 |
|
PSN Store posted:Featured 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:
The horror:%E2%84%A2 is the ™ symbol. Take it out and their link works.
|
# ? May 3, 2014 04:48 |
|
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.
|
# ? May 3, 2014 05:03 |
|
|
# ? Jun 1, 2024 04:24 |
|
Microsoft has publicly stated that they will not support any C features that don't naturally fall out of their C++ implementation.
|
# ? May 3, 2014 05:08 |