|
He does, but explaining the intricacies of when it is and isn't appropriate to make jokes would involve a long winded description of office politics so feel free to use your imagination.
|
# ? Dec 21, 2015 20:34 |
|
|
# ? Jun 7, 2024 23:20 |
|
Every once in a while I will sneak in a git commit from: http://whatthecommit.com/
|
# ? Dec 21, 2015 20:34 |
|
The patch note is fine mostly, except the actual statement of the bug itself is wrapped in a joke, which makes it hard to discern if you're not already familiar with the bug. I didn't really know what the joke was until I figured out what the bug was, and then the joke became apparent (and also somewhat vice versa).
|
# ? Dec 21, 2015 20:48 |
|
Subjunctive posted:Perhaps! We used to have all sorts of fun names and comments in commits and are dev tracking system, but when we went international a lot of our international customers demanded we be ISO certified for some reason (I guess this is a big deal in Europe?) and one of the things ISO wants to see is how you track fixes to ensure quality. This meant we had some swiss auditor reading our commit messages and such, and now fun is forbidden because "<Feature> calculates interest in a really stupid way" is apparently not an appropriate or "quality" name for a bug record.
|
# ? Dec 21, 2015 21:34 |
|
Volte posted:The patch note is fine mostly, except the actual statement of the bug itself is wrapped in a joke, which makes it hard to discern if you're not already familiar with the bug. I didn't really know what the joke was until I figured out what the bug was, and then the joke became apparent (and also somewhat vice versa). That just means it's well-written LeftistMuslimObama posted:We used to have all sorts of fun names and comments in commits and are dev tracking system, but when we went international a lot of our international customers demanded we be ISO certified for some reason (I guess this is a big deal in Europe?) and one of the things ISO wants to see is how you track fixes to ensure quality. This meant we had some swiss auditor reading our commit messages and such, and now fun is forbidden because "<Feature> calculates interest in a really stupid way" is apparently not an appropriate or "quality" name for a bug record. Maybe that's not the best example but "in a really stupid way" also isn't helpful to someone coming along later to try to figure out why you did what you did because now they have to read and understand two versions of the code instead of "calculates interest by recursively applying a multiple instead of using a constant-time formula". You could still turn that into a joke and the post that triggered this whole derail actually did because it's both descriptive and funny. It's just also long-winded, but oh well.
|
# ? Dec 21, 2015 21:51 |
|
Munkeymon posted:Maybe that's not the best example but "in a really stupid way" also isn't helpful to someone coming along later to try to figure out why you did what you did because now they have to read and understand two versions of the code instead of "calculates interest by recursively applying a multiple instead of using a constant-time formula". You could still turn that into a joke and the post that triggered this whole derail actually did because it's both descriptive and funny. It's just also long-winded, but oh well. So, that was the title of what we call a QA note (our version of bugs). The actual body of the QA note had a detailed description of the issue and had lots of metadata describing it as well. The titles are basically the most meaningless part of our issue tracking system, so they were often used to be funny. ISO didn't like the idea that are issue tracking had humor in it at all, so now that's out the window. In other words, the bug title says "in a stupid way", but the first paragraph of the record describes specifically how the interest calculation is stupid.
|
# ? Dec 21, 2015 22:48 |
|
At my last job there was one particularly annoying programmer who was referenced in quite a few commit messages ("this commit does blah blah blah in reference to such and such ticket, also, gently caress you Mike"), other than that we kept them fairly kosher
|
# ? Dec 21, 2015 23:42 |
|
Oh wow, I just pieced together a long-standing mystery that was troubling me. Universal Windows Platform has the Smooth Streaming SDK for playback of Smooth Streaming video, which extends the native MediaElement to support the adaptive streaming format. Now, observe how you enable this SDK to work with your MediaElements:code:
But okay, I can live with this - presumably Windows Media Foundation has some funny initialization expectations. Magic startup calls are not that crazy. Now, this SDK extends playback with adaptive streaming functions - things like automatic quality level switching. Obviously, I want feedback - to show the user the current quality level, for example. How do I do this? In a sane world, I would expect there to be some call to get the SDK's view of the activities of a MediaElement, something similar this: code:
But how do you get an AdaptiveSourceManager? Aha, there's a very simple call. code:
code:
code:
What if you have two MediaElements that try to play the same URL? I have no idea but I am going to find out because that's exactly what I need to do! Huh, come to think of it, that might explain some crashes I have encountered when playing the same video many times with Microsoft Player Framework... Why would you ever publish an API like that? This sort of design is completely unintelligible - you get an SDK that has no obvious way to actually use it. This is my 3rd try at understanding the behavior, I just gave up the first 2 times I started digging into this. I have worked with players for over 5 years - I doubt a random Windows Store app developer is going to have any idea WTF is going on. This is an SDK that is only usable by copy-pasting Microsoft sample projects that use it. Edit: oh, of course you need to do string parsing when handling events from this SDK. This snippet is from Microsoft Player Framework. code:
code:
EssOEss fucked around with this message at 13:37 on Dec 22, 2015 |
# ? Dec 22, 2015 09:36 |
|
Aint nobody got time for design when they have to play office politics for the "Excellent" stack ranking.
|
# ? Dec 22, 2015 09:44 |
|
Yikes. I've seen some really lovely media APIs in my time, but holy moly.
|
# ? Dec 22, 2015 10:08 |
|
Registering an event handler using += is also a very... interesting design choice.
|
# ? Dec 22, 2015 10:12 |
|
Sunk cost time! We've got an Oracle database that's in the wrong format for a third party application to read it, so we've written a program that lets a user request some data to be dumped from the primary database into a reformatted Oracle database so that the third party application can read it; I was tasked with implementing archive and staging tables so that we'd have a record of our data dumps and so that we could (more or less) atomically update the reformatted database tables (a data dump could take over an hour and we didn't want users to see a partial update). (FWIW I wanted to use something like Cassandra for the reformatted database since one of Cassandra's use cases is time series data, but I was overruled for the reasonable reason that we've got a billion Oracle admins and zero Cassandra admins.) My boss had written some proof of concept code several months ago that implemented archiving/staging with several dozen lines of SQL; this had the downside that we had to manually create archiving and staging versions of all of our tables and that any change to the live table would necessitate a change to the archiving/staging tables, and more importantly it had the downside of using a single global staging table that might get all hosed up if we tried to execute two or more data dumps concurrently. My implementation is about a half dozen lines of code and uses Oracle's Workspace Manager; archiving/staging tables get created automatically and ordinarily aren't visible to the user, and concurrent data dumps operate on separate workspaces so nothing will break (if two data dumps change the same data i.e. if the user screwed up when submitting their batch jobs then the first dump will merge successfully but the second dump will refuse to merge until the user resolves any conflicts in the data). Anyway, now I've got to go back and re-implement everything using my boss's lovely proof of concept code because otherwise minutes of his life will have been wasted, but I'm willing to bet that he's not going to fire me if I just ignore him.
|
# ? Dec 22, 2015 10:54 |
|
vOv posted:Registering an event handler using += is also a very... interesting design choice. That's just C# and not part of this particular horror.
|
# ? Dec 22, 2015 11:59 |
|
EssOEss posted:Oh wow, I just pieced together a long-standing mystery that was troubling me. Universal Windows Platform has the Smooth Streaming SDK for playback of Smooth Streaming video, which extends the native MediaElement to support the adaptive streaming format. Now, observe how you enable this SDK to work with your MediaElements: Developers! Developers! Developers!
|
# ? Dec 22, 2015 18:48 |
|
Oh, SO... quote:I have two functions one is PHP second is JQuery. I want them to activate on same button click. But I want fisrt to activate PHP function and then JQuery. How can I do this?
|
# ? Dec 23, 2015 17:00 |
|
My brain broke just trying to come up with a snotty response to that. How do people get hired to write code that have such a poor grasp of the technology? Makes me feel like I could qualify for a senior development position somewhere.
|
# ? Dec 23, 2015 17:05 |
|
xzzy posted:My brain broke just trying to come up with a snotty response to that. How do people get hired to write code that have such a poor grasp of the technology? Why do you presume that the person has a job writing code?
|
# ? Dec 23, 2015 17:35 |
|
In any other development environment, that would be a sane question. In fact, there are frameworks that try to make that transparent, Meteor.js being the hot new HN ones, but ColdFusion did that for years, as has frameworks in the PHP space.
|
# ? Dec 23, 2015 19:00 |
|
Suspicious Dish posted:In any other development environment, that would be a sane question. In fact, there are frameworks that try to make that transparent, Meteor.js being the hot new HN ones, but ColdFusion did that for years, as has frameworks in the PHP space. The fact that people keep trying to build frameworks which make network calls transparent could itself be considered a horror. I get why it sounds appealing, but when people have been trying to do something for a few decades without ever making it work well, perhaps you should try to actually come up with a solution to the problems the previous attempts ran into rather than just assuming they were too dumb to make it work.
|
# ? Dec 23, 2015 19:07 |
|
Hey now, that's "just" an assumption in the same way that the theory of evolution is "just" a theory.
|
# ? Dec 23, 2015 21:18 |
|
Plorkyeran posted:The fact that people keep trying to build frameworks which make network calls transparent could itself be considered a horror. I get why it sounds appealing, but when people have been trying to do something for a few decades without ever making it work well, perhaps you should try to actually come up with a solution to the problems the previous attempts ran into rather than just assuming they were too dumb to make it work. Network filesystems do a pretty good job of making programs work without knowing there's a network involved. You can run into edge cases, but you can do that with local filesystems too.
|
# ? Dec 24, 2015 04:11 |
|
I/O to a disk and I/O over a high-quality local network are pretty similar in terms of speed and latency, and while the network adds more ways for things to fail, they're not all that different from the pre-existing error cases. Network filesystems over the public internet are a janky mess where programs regularly lock up for 30 seconds and everything is so unpleasant that you just make a local copy of all the files you need. Similarly, RPC works reasonably well for processes on one machine, or between servers on a decent network, and not so well on an unreliable network.
|
# ? Dec 24, 2015 05:26 |
|
I had an interview with a company that gave me a few programming assignments that I implemented and then discussed with them over google chat - one assignment was to see if I understood hashing and another was to see if I understood concurrency, but the third was something I hadn't seen before in an interview programming question: "here's a bad spec for a stupid problem, let's see how you deal with it." It turns out that at some point a programmer working for this company who drew the short straw had to write an ugly program to turn a bunch of Ant projects into Maven projects (or something like that), and so they decided that it would be fun to incorporate that project into their interviewing process to see if the person they were interviewing was able to write functional but lovely code.
loinburger fucked around with this message at 08:51 on Dec 24, 2015 |
# ? Dec 24, 2015 05:29 |
|
"Unreliable" meaning any network with unix hosts on it until 2005 or so when they started getting less lovely about getting unrecoverably stuck because a share went away for a little while. Exorcising hubs and finishing the migration to gigabit helped a lot too. People wanting NFS cross mounts all the gently caress over the place because "it makes my job easy and I need those files everywhere!" were a constant source of frustration. Rebooting one host meant rebooting several others because who wants to listen to the engineers/admins, they never know what they're talking about.
|
# ? Dec 24, 2015 05:34 |
|
Subjunctive posted:Network filesystems do a pretty good job of making programs work without knowing there's a network involved. You can run into edge cases, but you can do that with local filesystems too. I don't know about that. I'd say more that the commercial solutions do a pretty good job of making the pain of network filesystems less visible, but the suckiness is still there. NFS is a shitshow where NFSv3 vs. NFSv4 is or was (as of a couple years ago) still a legitimate question, with NFSv4 of highly questionable stability, such as a Linux server with an NFS mount hanging forever on the storage server on the same switch to respond (and failing to realize the server went back up after it went down and resume whatever it was trying to do, thereby hanging the system completely), or FreeBSD kernel panics on the storage server because of too many exports, and a bunch of miscellaneous edge cases – which weren't that obscure for non-corporate, self-configured servers that targeted a couple of tens of active users + several hundred to a couple thousand users overall – all this on server hardware with server-grade RAID controllers. Of course, they're a huge pain to set up in the first place, which is why companies can so profitably sell storage appliances that at least configure a bunch of the problems away. Off the top of my head, MogileFS is written in Perl and (I could be wrong) not really suitable for workstation usage. I don't know anything about GlusterFS but it's still rather new. Not sure what serious alternatives there are for networked filesystems. SSHFS (through FUSE) is a joke and will break if you sneeze too hard. And just to cover my bases, I wouldn't count networked object storage like S3 since the files can't be seeked/manipulated in a really fine grained manner (also if you've ever tried to set up OpenStack it's hilariously convoluted), and I wouldn't count iSCSI (which can work pretty okay) because it just moves/virtualizes disks, not the filesystem. And then for high availability you may want to back your iSCSI with DRBD for redundancy's sake too, if you're not going the "just RAID your disks" route. It's just...I dunno. Network storage is so complex and messy. I'd go further than to say "you can run into edge case" and say that not encountering an edge case is the edge case. xzzy posted:"Unreliable" meaning any network with unix hosts on it until 2005 or so when they started getting less lovely about getting unrecoverably stuck because a share went away for a little while. Exorcising hubs and finishing the migration to gigabit helped a lot too. Plorkyeran posted:I/O to a disk and I/O over a high-quality local network are pretty similar in terms of speed and latency Doctor w-rw-rw- fucked around with this message at 07:40 on Dec 24, 2015 |
# ? Dec 24, 2015 07:30 |
|
This is a good time to post this: https://www.usenix.org/system/files/1311_05-08_mickens.pdf Contains phrases like "I had the modest goal of translating a file read into a network operation", and "I HAVE NO TOOLS BECAUSE I’VE DESTROYED MY TOOLS WITH MY TOOLS". Horrors abound. Merry Christmas you guys
|
# ? Dec 24, 2015 10:02 |
|
quote:It’s like, French is a great idea, but nobody is going to invent French if they’re constantly being attacked by bears. Do you see? SYSTEMS HACKERS SOLVE THE BEAR MENACE. Only through the constant vigilance of my people do you get the freedom to think about croissants and subtle puns involving the true father of Louis XIV.
|
# ? Dec 24, 2015 10:26 |
|
loinburger posted:I had an interview with a company that gave me a few programming assignments that I implemented and then discussed with them over google chat - one assignment was to see if I understood hashing and another was to see if I understood concurrency, but the third was something I hadn't seen before in an interview programming question: "here's a bad spec for a stupid problem, let's see how you deal with it." It turns out that at some point a programmer working for this company who drew the short straw had to write an ugly program to turn a bunch of Ant projects into Maven projects (or something like that), and so they decided that it would be fun to incorporate that project into their interviewing process to see if the person they were interviewing was able to write functional but lovely code. Whenever I'm given a coding test for a job, I refuse. whatever the test is, it's either going to take too long, or isn't going to representative of my skills. I don't work for free, and there's more than enough of my code to look at on github. More often than not, I end up getting an apology.
|
# ? Dec 24, 2015 10:42 |
|
Karate Bastard posted:This is a good time to post this: This guy knows. However: quote:THERE IS NO HARDWARE ARCHITECTURE THAT IS ALIGNED ON 7.
|
# ? Dec 24, 2015 11:53 |
|
xlevus posted:why would you want to use that as your yardstick? "Oh, your lovely code is slightly less lovely than that other guys. I guess we'll hire you". loinburger fucked around with this message at 15:00 on Dec 24, 2015 |
# ? Dec 24, 2015 14:55 |
|
Asking for clarifications on a bad specification is a red flag? What is this terrible company, so none of us ever have to suffer there?
|
# ? Dec 24, 2015 16:52 |
|
loinburger posted:with two red flagged approaches being "send a ton of email to the interviewer asking for clarifications on the lovely spec" In TYOOL 2015, communication is a bad thing.
|
# ? Dec 24, 2015 17:29 |
|
Hey, at least it's probably more representative of working there than whiteboarding out some random algorithm to demonstrate logical thinking.
|
# ? Dec 24, 2015 17:44 |
|
That question seems like it's supposed to evaluate how candidates operate when a particular type of obstacle is in their way.
|
# ? Dec 24, 2015 17:46 |
|
loinburger posted:"send a ton of email to the interviewer asking for clarifications on the lovely spec" loinburger posted:"write a humongous mess of nested if-else or try-catch blocks" In either case, a reasonable number of emails / questions / if-else blocks / try-catch blocks was permitted/expected
|
# ? Dec 24, 2015 18:04 |
|
How common are these interviews that have whiteboard exercises? I've never been asked to do this, and I have never asked anyone to do them either. It seems like a giant waste of time unless maybe you are scraping the bottom of the barrel.
|
# ? Dec 24, 2015 18:32 |
|
I've had a fair number of "write some code without us looking over your shoulder and later we'll review it on Skype / Google hangouts / whatever" exercises where the problems can be moderately difficult (e.g. one was "write an encoder that removes the zero-bytes from a byte array, and a decoder to transform the encoded byte array back into the original byte array"), for for whiteboard exercises they're always fizzbuzz type questions.
|
# ? Dec 24, 2015 18:37 |
|
M31 posted:How common are these interviews that have whiteboard exercises? I've never been asked to do this, and I have never asked anyone to do them either. It seems like a giant waste of time unless maybe you are scraping the bottom of the barrel. Pretty common. Some ask trivia, but a well-done one can gauge fluency in the person's language of choice as well as their ability to translate their thinking to code and structure the most common scale of code: a handful of functions. You might be surprised (I was) to discover how many people can do well on a conversational screen but can't code their way out of a paper bag. I'm not big on algorithmic quiz shows, but it's reasonable to expect people to understand big-O, sorting, common data structures, the rough cost and operation of key parts of their preferred language.
|
# ? Dec 24, 2015 19:09 |
|
M31 posted:How common are these interviews that have whiteboard exercises? I've never been asked to do this, and I have never asked anyone to do them either. It seems like a giant waste of time unless maybe you are scraping the bottom of the barrel. What do you experience then? Non-whiteboard exercises? Conversations about the weather? One interview experience I had, at a startup in Boston, the CEO came in, pulled out a laptop, visited my web site, clicked on the page with "gently caress" in an <h1>, clicked back... and then the next guy came in and... was extremely sleep-deprived and hatefully grouchy and talked a bunch, and then the next guy came in and... talked about how she spent a bunch of time programming the UPS instead of doing the image recognition stuff the company was ostensibly about, and then the office manager came in and did a "psychological" interview. This is what the non-whiteboard approach is like (I'm guessing). sarehu fucked around with this message at 19:52 on Dec 24, 2015 |
# ? Dec 24, 2015 19:48 |
|
|
# ? Jun 7, 2024 23:20 |
|
In my most recent job search I interviewed with four companies for remote positions, so most of it was done over the phone / email / google hangout. Two had me write some code offline that they reviewed offline with a thumbs up or thumbs down, the third had me write some code offline and had three developers review it / grill me on it over google hangout, and the fourth had me do a team programming thing with one of their developers over google hangout. All four conducted non-whiteboard technical phone / skype screens of some kind in addition to HR "talk about your most recent job(s)" interviews, usually something along the lines of "say some bullshit about string matching" or "say some bullshit about garbage collection" or whatever.
|
# ? Dec 24, 2015 20:20 |