As was foretold, we've added advertisements to the forums! If you have questions, or if you encounter any bugs, please visit this thread: https://forums.penny-arcade.com/discussion/240191/forum-advertisement-faq-and-reports-thread/
We're funding a new Acquisitions Incorporated series on Kickstarter right now! Check it out at https://www.kickstarter.com/projects/pennyarcade/acquisitions-incorporated-the-series-2

[Programming] Mirror, mirror, on the wall, show the git diff for them all

17778808283100

Posts

  • JasconiusJasconius sword criminal mad onlineRegistered User regular
    i've almost finished my masterpiece at work. i fixed all the issues with Electron and slowness, the app is almost at release levels of stability

    there's a greater than 50% chance that after I finish this project I will probably retire from programming full time professionally

    maybe one day then I can love it enough to actually start doing it at home again

    ecco the dolphin
  • electricitylikesmeelectricitylikesme Registered User regular
    edited March 2016
    I hardly think microframeworks are a problem, so much as people not thinking about the ramifications of their dependencies. When I actually gave that one some thought (since Go is really subject to the problem) I started just `govendor add +ext` all my packages. Dependencies get stored right next to source code, so the source always builds.

    And that's exactly what people should be doing with node_modules because storage is a lot cheaper then the hours you'll waste sorting out why the URL for something changed.

    EDIT: Hell, when I go insane, I'm going to try and push this idea onto our Java dev's I think. We've spent a ridiculous amount of time messing around with artifactory recently, and I'm just thinking "let's check everything in, if you want to bump a dependency, everyone gets to see when you did it and what that did".

    electricitylikesme on
  • SeolSeol Registered User regular
    edited March 2016
    EDIT: Hell, when I go insane, I'm going to try and push this idea onto our Java dev's I think. We've spent a ridiculous amount of time messing around with artifactory recently, and I'm just thinking "let's check everything in, if you want to bump a dependency, everyone gets to see when you did it and what that did".
    I work at a place doing Java and we moved from (our own locally hosted) artifactory to putting dependencies in source control. I'd say it's almost been pure upside for us.

    The one thing is that in order to do that, you kinda need to have a monolithic repository. Having twelve copies of Apache commons in source control - one in each project repo - is a bit ugh.

    Seol on
  • PhasenPhasen Hell WorldRegistered User regular
    Since you guys are on the subject, summer semester is coming up and I am unsure if I should take java or c++. I'll be finishing up adv. C# this semester. I kinda wish there were more options because java seems like the one I should take next but seeing comments here leads me to think otherwise.

    psn: PhasenWeeple
  • RendRend Registered User regular
    Phasen wrote: »
    Since you guys are on the subject, summer semester is coming up and I am unsure if I should take java or c++. I'll be finishing up adv. C# this semester. I kinda wish there were more options because java seems like the one I should take next but seeing comments here leads me to think otherwise.

    If you already know c# go with c++ without question.
    If you go with java you'll basically just be learning another dialect of C#. You could do this in a weekend more than likely.
    If you go with C++ you'll be learning a whole different way of thinking about stuff. An old, arcane, fiddly way of thinking, but an important one.

    TofystedethInfideldjmitchellaMahnmutbowentemplewulfEvigilantDisruptedCapitalistironsizidereplacewythy
  • InfidelInfidel Heretic Registered User regular
    What Rend said.

    Learn and use C#, if you ever have to use Java then you'll just do it no problem.

    You want to expose yourself to multiple ways of programming, not for the specific languages but so that you understand what is language specific and what is truly universal in concept.

    OrokosPA.png
    bowen
  • [Michael][Michael] Registered User regular
    You're not gonna learn much of anything taking a Java class if you've already taken "Adv. C#". They're very, verrrry similar languages, which C# being the nicer one to work with. I got my current job as a C# developer with zero C# experience, but 2 or 3 years of Java experience. I had no problem jumping straight into C# code on day 1.

    Of course I've had problems bringing myself to actually code in Java after making the switch to C#. It's usually when I get to the difference in object initializers or getters/setters that I start getting angry at Java for not being C#

    EchobowentemplewulfEvigilantreplacewythy
  • PhasenPhasen Hell WorldRegistered User regular
    Thanks for the info. On another note how do you keep your knowledge from atrophying? I am saving some of my lessons for reference but some of this stuff is still very tenuous in my mind. How confident did you feel about your first jobs?

    psn: PhasenWeeple
  • InfidelInfidel Heretic Registered User regular
    Look up imposter syndrome. It is pretty much universal in our field.

    If you feel like you're way not prepared for your first job, that's usual. Expect to google the shit out of things, and this is why you need strong foundational understanding. You need problem-solving skills. Knowing an API off the top of your head isn't going to serve you much.

    OrokosPA.png
    EchoPhasenRendcrimsoncoyoteNogsdjmitchellabowenEndzerzhulgavindelMvrcktemplewulfEvigilantNaphtaliGrape Ape
  • RendRend Registered User regular
    Infidel wrote: »
    Look up imposter syndrome. It is pretty much universal in our field.

    If you feel like you're way not prepared for your first job, that's usual. Expect to google the shit out of things, and this is why you need strong foundational understanding. You need problem-solving skills. Knowing an API off the top of your head isn't going to serve you much.

    This 100%. Learning C# or java* is kind of like buying a toolbox. You've got what you need in there to do what needs to be done, for sure, but you don't go to college because they give you fancy tools, you go to college so you can identify when you should use a nail vs. a screw, and techniques about where to put those nails and screws, and how to hold a hammer, and perhaps most importantly of all, how to measure and plan all this stuff out before you start.

    *Learning C++ is kind of like buying one of those weird hand tools that comes with one handle and like thirty replaceable heads so you can make a single hand tool into whatever you want and yeah I guess it's efficient or something but more often than not it's just a lot of extra effort and hurts your hand a little

    Phasencrimsoncoyotetemplewulf
  • admanbadmanb unionize your workplace Seattle, WARegistered User regular
    Phasen wrote: »
    Thanks for the info. On another note how do you keep your knowledge from atrophying? I am saving some of my lessons for reference but some of this stuff is still very tenuous in my mind. How confident did you feel about your first jobs?

    I've been coding for 15 years, professionally for six. A couple weeks ago I forgot how to write a JavaScript for loop.

    Don't worry about it.

    RendPhasencrimsoncoyoteEchoMvrckPolaritietemplewulfNaphtaliKolosusDisruptedCapitalist
  • NogsNogs Crap, crap, mega crap. Crap, crap, mega crap.Registered User regular
    hell, ive been doing javascript for like a decade and i still have times where im like "wait...is it split() or slice() that i want here?"

    syntax doesn't mean anything, it's literally just an "API" for a concept.

    understanding concepts, critical thinking and good problem solving skills are the important things.

    rotate.jpg
    PARKER, YOU'RE FIRED! <-- My comic book podcast! Satan look here!
    crimsoncoyoteInfidelEchoNaphtaliironsizide
  • InfidelInfidel Heretic Registered User regular
    Yep, I hired a dev straight out of school, mentoring him and getting him rolling.

    I pulled up JavaScript MDN to look up substring. And made a point of how I can't fucking remember how it works because each language does quirky shit that all lines up but doesn't.

    He got the message pretty quick that I need him to think and not memorize language features.

    OrokosPA.png
    DelmaincrimsoncoyoteLD50Mvrck
  • LD50LD50 Registered User regular
    I judge languages in part by how good their documentation is because lord knows I'm going to be googling what methods Array offers two weeks from now.

    crimsoncoyoteEchoPolaritietemplewulfGrape Apeironsizide
  • hippofanthippofant ティンク Registered User regular
    LD50 wrote: »
    I judge languages in part by how good their documentation is because lord knows I'm going to be googling what methods Array offers two weeks from now.

    I legit hate Python's documentation so much. I don't know how it's so fucking bad.

  • InfidelInfidel Heretic Registered User regular
    I would have an average of three PHP doc pages open when I was working with it regularly.

    Do NOT assume anything sensible or consistent about PHP functions.

    OrokosPA.png
    Baron DirigiblebowenEchotemplewulfironsizide
  • LD50LD50 Registered User regular
    I like having the documentation for what I'm working with open no matter how well I know the language because sometimes you'll be surprised to find out that there's actually a built in method for exactly what you're trying to do that you've never had to use before.

    Mvrcktemplewulf
  • bowenbowen How you doin'? Registered User regular
    Infidel wrote: »
    I would have an average of three PHP doc pages open when I was working with it regularly.

    Do NOT assume anything sensible or consistent about PHP functions.

    3? Lightweight.

    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Big Red TieBig Red Tie beautiful clydesdale style feet too hot to trotRegistered User regular
    anyone taken the IBM IPAT

    do they ever tell you your score?

    3926 4292 8829
    Beasteh wrote: »
    *おなら*
  • PhyphorPhyphor Building Planet Busters Tasting FruitRegistered User regular
    edited March 2016
    I have to say std::chrono is pretty nice. Oh you need something in microseconds say for a timespec, just
    template<class R, class P>
    void Foo(std::chrono::duration<R, P> time)
    {
      Foo(std::chrono::duration_cast<std::chrono::microseconds>(time).count());
    }
    
    void Foo(uint64_t microseconds);
    

    so
    Foo(std::chrono::milliseconds(500));
    Foo(std::chrono::duration<float>(1.5f));
    Foo(std::chrono::nanoseconds(10000));
    Foo(1.5s); // with appropriate usings
    

    all work as expected. Good job spec!

    Also telling whether a timestamp is from the system clock, a monotomic clock, etc is pretty handy! You can do waits internally with steady_clock and still handle system_clock times

    Phyphor on
    ecco the dolphincrimsoncoyoteMahnmuthtm
  • urahonkyurahonky Registered User regular
    I'm not sure if everyone is up on the situation I've been dealing with at my office the past... ohhhh three or four weeks but here's a recap:

    My application is running on Javascript, and in our lab we purchased about 30 or so Surface tablets for each workstation as it seemed like a good idea at the time. Shortly thereafter we ran into issues where the Surfaces decide to stop charging their batteries, even though they are constantly plugged in. So after 8 hours you have to unplug them, wait thirty minutes, then they start to charge again. No idea why and we can't fix it. January 19th we open a Jira ticket to our IT manager about the problem. He begins "researching" new solutions that we can use instead of the Surface tablets. In the meantime we have to swap in and out about 8 or so tablets a day when they die.

    March 4th and still no progress on these tablets. The lab (our employer) is asking about them daily. Manager seems to be completely ignoring any and all requests for these for whatever reason. I take 20 minutes out of my day (along with the other Sys Admin) and update the Jira ticket with a direct amazon link to a replacement that would be suitable for our lab use. We hammer him about not getting this ticket done and it's basically met with bullshit excuses.

    About two weeks ago the Surfaces got a new Windows update that completely broke the on-screen keyboard. For whatever reason the keyboard does NOT show up when you click on a text field on a web application (this includes Chrome/Firefox/!IE), but it does show up everywhere else. We try everything to get it to show up but nothing works. My app is also running in full screen so they can't click the button to get to the on screen keyboard. They have to long-tap on something, click reload page, and then it'll go out of full screen mode. The next day I add a button for them to click to switch between full screen and not-full screen mode so they can at least type. We press him some more and met with more excuses about "researching" or whatever. Lab manager gets involved and asks if he is ever going to order them and if he needs help then either me or the other Sys Admin is willing to do it. He said he's got 4 on order that we'll get to test in the next few days.

    The next day we get a shipment of tablets. Oh wait... No these tablets are for a completely unrelated issue. They are like 28" big and completely unable to fit in the lab. Next day at our standup he mentions that he has others on order and should be arriving today. They, too, ended up being for the other unrelated issue. Another bullshit excuse about how researching and testing is important and blahblablah.

    Last Friday comes. 4 tablets arrive and they are actually ones that would go into the lab! Sweet! The other Sys Admin and I are tasked to unbox them and test them to be sure they work and we'll go to the lab and swap them out and try them to see if they like the new ones. One of those 4 is the tablet I suggested on March 4th.

    Today I get forwarded an email from the IT Manager (because I wasn't on the list) that was sent to the CEO, Lab Manager, Lab Assistant, and Product manager. Here's what it said:
    5Xw8JdB.png

    Notice how many times he mentions "I" in the email, and doesn't ever mention that he literally didn't do shit about it since January?

    Barrakketh
  • templewulftemplewulf The Team Chump USARegistered User regular
    urahonky wrote: »
    I'm not sure if everyone is up on the situation I've been dealing with at my office the past... ohhhh three or four weeks but here's a recap:

    My application is running on Javascript, and in our lab we purchased about 30 or so Surface tablets for each workstation as it seemed like a good idea at the time. Shortly thereafter we ran into issues where the Surfaces decide to stop charging their batteries, even though they are constantly plugged in. So after 8 hours you have to unplug them, wait thirty minutes, then they start to charge again. No idea why and we can't fix it. January 19th we open a Jira ticket to our IT manager about the problem. He begins "researching" new solutions that we can use instead of the Surface tablets. In the meantime we have to swap in and out about 8 or so tablets a day when they die.

    March 4th and still no progress on these tablets. The lab (our employer) is asking about them daily. Manager seems to be completely ignoring any and all requests for these for whatever reason. I take 20 minutes out of my day (along with the other Sys Admin) and update the Jira ticket with a direct amazon link to a replacement that would be suitable for our lab use. We hammer him about not getting this ticket done and it's basically met with bullshit excuses.

    About two weeks ago the Surfaces got a new Windows update that completely broke the on-screen keyboard. For whatever reason the keyboard does NOT show up when you click on a text field on a web application (this includes Chrome/Firefox/!IE), but it does show up everywhere else. We try everything to get it to show up but nothing works. My app is also running in full screen so they can't click the button to get to the on screen keyboard. They have to long-tap on something, click reload page, and then it'll go out of full screen mode. The next day I add a button for them to click to switch between full screen and not-full screen mode so they can at least type. We press him some more and met with more excuses about "researching" or whatever. Lab manager gets involved and asks if he is ever going to order them and if he needs help then either me or the other Sys Admin is willing to do it. He said he's got 4 on order that we'll get to test in the next few days.

    The next day we get a shipment of tablets. Oh wait... No these tablets are for a completely unrelated issue. They are like 28" big and completely unable to fit in the lab. Next day at our standup he mentions that he has others on order and should be arriving today. They, too, ended up being for the other unrelated issue. Another bullshit excuse about how researching and testing is important and blahblablah.

    Last Friday comes. 4 tablets arrive and they are actually ones that would go into the lab! Sweet! The other Sys Admin and I are tasked to unbox them and test them to be sure they work and we'll go to the lab and swap them out and try them to see if they like the new ones. One of those 4 is the tablet I suggested on March 4th.

    Today I get forwarded an email from the IT Manager (because I wasn't on the list) that was sent to the CEO, Lab Manager, Lab Assistant, and Product manager. Here's what it said:
    5Xw8JdB.png

    Notice how many times he mentions "I" in the email, and doesn't ever mention that he literally didn't do shit about it since January?

    Is that not everyone's experience with managers?

    Twitch.tv/FiercePunchStudios | PSN | Steam | Discord | SFV CFN: templewulf
  • bowenbowen How you doin'? Registered User regular
    lol did he just bullet point tablet features?

    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
    Mvrck
  • MvrckMvrck Dwarven MountainhomeRegistered User regular
    That guy sounds like a dick.

    bowenecco the dolphinurahonky
  • urahonkyurahonky Registered User regular
    I realized that it's probably because he didn't come up with the solutions. If he had he would be on it like no one's business. But because I had stepped in and tried to get the ball moving: He took his sweet time and then ended up taking credit for it.

  • LD50LD50 Registered User regular
    It would be best if someone else threw him under the bus.

    bowen
  • urahonkyurahonky Registered User regular
    I'd say 90% of the time I really like dealing with node.

    Until I run into a situation where I have to update npm.
    $ npm -v
    3.6.0

    Okay, update using npm install -g npm
    $ npm install -g npm
    C:\Users\urahonky\AppData\Roaming\npm\npm -> C:\Users\urahonky\AppData\Roaming\npm\node_modules\npm\bin\npm-cli.js
    C:\Users\urahonky\AppData\Roaming\npm
    `-- [email protected]

    Okay that claims that it's updated to 3.8.3.
    $ npm -v
    3.6.0

    Restart terminal...
    $ npm -v
    3.6.0

  • urahonkyurahonky Registered User regular
    Either way it's not why this npm start isn't working, but it's really frustrating.

  • SaerisSaeris Borb Enthusiast flapflapflapflapRegistered User regular
    Why do you have to update npm?

    Anyway, I'm pretty sure you have two npm's in your path. The first one will probably be the one that comes with Node, which is why you'll never see an update actually apply. I believe Node adds its installation directory to the path when installing.

    You can either remove Node's directory from the path, or delete the npm executable from that directory, or just use that version. I generally just take that last option. Which brings me back to the first question: why do you have to update npm?

    borb_sig.png
  • NogsNogs Crap, crap, mega crap. Crap, crap, mega crap.Registered User regular
    edited March 2016
    I just use nvm (https://github.com/coreybutler/nvm-windows because i develop on windows)

    That allows me to easily switch between node 0.12, 4 and 5. And thats how i swtch my npm versions too. Node5 comes with npm3, so if i update my node 5 version, then my npm 3 version gets updated with it.

    If you only support node 4, then you probably shouldnt be using npm3, as it doesnt ship with node 4.

    Nogs on
    rotate.jpg
    PARKER, YOU'RE FIRED! <-- My comic book podcast! Satan look here!
    templewulf
  • urahonkyurahonky Registered User regular
    Saeris wrote: »
    Why do you have to update npm?

    Anyway, I'm pretty sure you have two npm's in your path. The first one will probably be the one that comes with Node, which is why you'll never see an update actually apply. I believe Node adds its installation directory to the path when installing.

    You can either remove Node's directory from the path, or delete the npm executable from that directory, or just use that version. I generally just take that last option. Which brings me back to the first question: why do you have to update npm?

    Was attempting to run the code from our offshore team and ran into an error that suggested that I update npm and try again. Turns out if I learned to read that it wasn't the issue and got it resolved without updating it. But I do remember spending about an hour trying to figure this out.

    But I'm guessing you're right about the path variable.

  • admanbadmanb unionize your workplace Seattle, WARegistered User regular
    If you want to update npm from the command line in Windows you have to do some special stuff... luckily there's an NPM package that does it for you!

    Otherwise the recommended way is to install a newer version of Node that brings the NPM update with it.

  • urahonkyurahonky Registered User regular
    admanb wrote: »
    If you want to update npm from the command line in Windows you have to do some special stuff... luckily there's an NPM package that does it for you!

    Otherwise the recommended way is to install a newer version of Node that brings the NPM update with it.

    Oh man that is so stupid. But thanks!

  • DisruptedCapitalistDisruptedCapitalist I swear! Registered User regular
    LD50 wrote: »
    I judge languages in part by how good their documentation is because lord knows I'm going to be googling what methods Array offers two weeks from now.

    I once applied for a job where the guy interviewing me expected me to have the entire MDN for JavaScript memorized and actually got quite pissy when I couldn't remember all the methods Array offers.

    Needless to say we were both in agreement that the job probably wasn't a good fit for me. I pity the fool that actually got that job.

    crimsoncoyotePolaritieNaphtali
  • urahonkyurahonky Registered User regular
    LD50 wrote: »
    I judge languages in part by how good their documentation is because lord knows I'm going to be googling what methods Array offers two weeks from now.

    I once applied for a job where the guy interviewing me expected me to have the entire MDN for JavaScript memorized and actually got quite pissy when I couldn't remember all the methods Array offers.

    Needless to say we were both in agreement that the job probably wasn't a good fit for me. I pity the fool that actually got that job.

    This is not that surprising in our field, unfortunately. I went into an interview that asked me some ridiculous Java questions, and when I couldn't answer them without a little research they sorta scoffed and pointed at my resume with the Oracle Java Developer Certificate or whatever.

    But I studied for MONTHS for that waste of paper.

    DisruptedCapitalist
  • RendRend Registered User regular
    urahonky wrote: »
    LD50 wrote: »
    I judge languages in part by how good their documentation is because lord knows I'm going to be googling what methods Array offers two weeks from now.

    I once applied for a job where the guy interviewing me expected me to have the entire MDN for JavaScript memorized and actually got quite pissy when I couldn't remember all the methods Array offers.

    Needless to say we were both in agreement that the job probably wasn't a good fit for me. I pity the fool that actually got that job.

    This is not that surprising in our field, unfortunately. I went into an interview that asked me some ridiculous Java questions, and when I couldn't answer them without a little research they sorta scoffed and pointed at my resume with the Oracle Java Developer Certificate or whatever.

    But I studied for MONTHS for that waste of paper.

    Imo "I'd need to reference the docs for syntax, but it would look basically like this..." is almost always a reasonable answer in reference to stuff more complex than primitives

    urahonkycrimsoncoyoteGrape Ape
  • PhyphorPhyphor Building Planet Busters Tasting FruitRegistered User regular
    edited March 2016
    LD50 wrote: »
    I judge languages in part by how good their documentation is because lord knows I'm going to be googling what methods Array offers two weeks from now.

    I once applied for a job where the guy interviewing me expected me to have the entire MDN for JavaScript memorized and actually got quite pissy when I couldn't remember all the methods Array offers.

    Needless to say we were both in agreement that the job probably wasn't a good fit for me. I pity the fool that actually got that job.

    I regularly consult the docs for std::string, vector, map, etc. There are 6 versions of std::string::compare and I would be impressed if anyone knows all of them and how to use them without consulting a reference

    When I do windows programming I often have a dozen or more MSDN tabs open. And this is with intellisense helping out

    Phyphor on
    ecco the dolphincrimsoncoyote
  • LD50LD50 Registered User regular
    I'd be pretty wary of anyone who didn't check the docs at least occasionally. Shit changes yo, and people can make mistakes and misremember stuff.

    crimsoncoyotePolaritieNaphtali
  • Grape ApeGrape Ape Registered User regular
    It dawned on me today that the infrastructure projects I've been chipping away at for the last year are essentially just crude facsimiles of the tools I miss: package management, an automated development pipeline and unit tests.

    replicated with:
    perl
    git hooks
    cronjobs

    Nothing fancy, but paradigm-wise I think we're finally in the mid-to-late 90's as opposed to the early 80's

    :whistle:

    gavindel
  • DehumanizedDehumanized Registered User regular
    I seem to spend way less time embroiled in docs since I've been pairing and using resharper. It's really rare that all of myself, my pair, and resharper's expanded autocompletion know nothing about the interface for the code we are preparing to write.

This discussion has been closed.