« first day (756 days earlier)      last day (3251 days later) » 

9:02 PM
@200_success Good point. I jumped the gun and answered before there was any HTML. You should put that in an answer. — Flambino 12 hours ago
short, but looks legit
 
@GarethRees In my book, they're badly written. But I understand why they do it.
 
@Mast In real life you often get poor specifications — you'd much rather have one that was long-winded and badly written (but correct) than one that was terse but ambiguous
 
@GarethRees I prefer to be not the guy making the translation.
 
If it were me designing challenges for potential hires I would ensure that some of them were incomplete or wrong
 
Wrong challenges?
Or post wrong answers on the web?
 
9:13 PM
No, I mean the problem specification would be incomplete or wrong in some way
The people answering the challenge would have to figure out what it should have said before they can solve it
 
That's kind of a good idea.
Ah, like that.
 
Yeah, I know a number of places that put in trick questions.
A decent programmer (hiring candidate) should know when to challenge the specifications.
 
That's the hardest piece of solving a problem: figuring out what the real problem is.
2
 
Yes, or fill in the blanks themselves. Here's an example of the kind of problem I'm talking about:
7
Q: Espresso Queue simulation

Juha UntinenI was asked to do a technical test with the following specification, but my solution was rejected and I was not selected for the available position (Junior to "normal" level, with 4 days of time to finish the test). Could you point out which areas need improvement in my solution? In software ...

On the other hand, this is not automatically judgeable in the way that the Google Foobar challenges need to be, so it wouldn't work so well at scale
 
Yeah, though I was looking for this one:
33
Q: Sorting millions of integers

JaszLast Friday I was hit with a sorting interview question that I never really had to deal with. Develop a your own sorting algorithm. It cannot use any other Classes for help. It needs to be able to sort an array of millions of integers in size. It needs to be as fast as possibl...

design your own sort - it needs to be as fast as possible .... yeah, right
 
9:18 PM
@rolfl And without classes, without specifying in what language.
In some languages, everything is a class.
 
0
Q: Tail-recursive factorial F#

NickAfter learning a bit about tail recursion, this is what I came up with. let factorial n = let rec loop num mul = if mul - 1I = 0I then num else loop (num * (mul - 1I)) (mul - 1I) loop n n Is there a way to improve this?

 
@GarethRees To me that doesn't seem to be hard at all? Or am I missing something?
(Just jumping in the conversation here)
 
On the plus-side, the USB flash drive I put through the washing machine and dryer seems to be just fine....
 
@skiwi I don't know — but the OP botched it in various ways so I don't think it's all that easy
 
@rolfl As long as you don't connect it while it's still partially wet, you'll most often be fine.
 
9:24 PM
@rolfl Yay!
 
I speak out of experience...
 
@skiwi There are several subtleties, for example handling engineers who change status while in the queue, or recognizing that the exponential distribution is needed
 
@GarethRees I'm seeing it in your answer now
 
@rolfl Congratz on the non-lost data :)
 
On the negative side, I am having issues on how to do something in a nice way in Groovy...
 
9:24 PM
It's pretty ignorant to make those mistakes... but maybe with an university background you get more used to reading written specifications?
@SimonAndréForsberg Do it the dirty way first, then refactor later
When you're working in sprints with Agile you really won't have time to do all things the prettiest way
 
@skiwi Not everyone gets taught "exam technique"
 
Imagine you have a method builder-like chain like a(1).b(2).c(3), how can you make sure that the chain actually is terminated? (or do something if it is not) What if only a(1) is called, but it's .c(3) that actually does something?
 
@skiwi That's not the point. The point is the specification is always wrong. The hard part is fixing the specification to match what the customer wants.
 
Isn't that exactly what Agile is for, with demo and planning sessions with the client?
It's not an option in this question, but just asking
 
@skiwi That's assuming the client actually knows what he wants.
 
9:28 PM
Yes, that's a key feature of Agile / Extreme programming / Iterative delivery
 
The client will know what he wants the moment he gets it and not a moment earlier.
 
If the client keeps changing his opinions and keeps paying you, what's the problem?
 
But it's far from easy to do
 
-1
Q: Open a file or webpage and count character frequency

Kelly KumoveI'm currently working on a Python assignment and having trouble getting my function to work correctly. The assignment is to write a Python 3 program that reads a text file or web page named by the user, and prints a neat table showing the counts of all of the different characters it reads with ...

 
@skiwi You're still supposed to deliver the right stuff. Regardless of your customers inaptitude to convey it.
 
9:29 PM
@Mast Well.. okay
 
@skiwi It's not really a matter of the client having opinions and changing them. Typically the client has a business problem that they want to solve, and hasn't really thought it through about how the software is going to solve that problem.
 
@GarethRees That.
 
Meanwhile, the programmers know nothing about the business problem.
 
@GarethRees the chance that an engineer becomes super-busy in some unit of time, I'd say that it's just x% chance for it to happen every time unit
 
So simultaneously the client has to learn about what software can do, and the programmers have to figure out what the business problem really is
 
9:32 PM
@GarethRees Perhaps I'm just used to the Agile way (as I'm doing a big project on university right now that uses it), but how can such situation ever work if the programmers don't even know what they are actually implementing?
 
@skiwi Yes, if you're modelling time in unit steps, then that would be the way to implement it. But my simulation doesn't work in unit steps
@skiwi Typically the client asks for software X. Some work goes into preparing a specification and implementing it. You deliver X and discover that this wasn't want the client needed.
The reason this happens is that designing software is hard and there is no reason to expect the client to be any good at it
 
@GarethRees Stop: Is the client giving you the specification?
 
The specification results from negotiation between the client and the programmers
But often, yes, the client will issue an Invitation to Tender with a rough specification
 
Ah okay, then there's more reason to belief it's correct
 
No, that's the problem I am trying to describe]
Just because the client writes the specification does not mean that it will solve their problem
 
9:36 PM
Exactly
I mean if the client would fully write the specification, then there's less reason to belief it's correct as it is now, but even now it is not correct enough
How does it relate to the interview questions though? I find their specifications to be solid
 
In the "Espresso Queue" specification, it just says, "Please implement a simulator"
There are several different kinds of things that go by the name "simulator"
So you have to figure out what kind of simulator might be needed
 
I'd probably get stuck for a bit on that one, now I'm reading it better
First thought would be to implement a simulation, but then you'd get stuck on the time units
 
OP implemented a real-time simulator, but it seems unlikely to me that was what was wanted
 
Given this context a simulator is probably some system you can start/stop/reset and advance by x time units, and supply input data to and read current data out of
 
I took it to mean computer simulation in the sense of the Wikipedia article — something that you could use to model, investigate and predict the behaviour of the system
 
9:44 PM
Much like Business Information Systems
 
Or more specifically, a discrete event simulator
 
Interesting conversation, unfortunately I'll need to head off though, it's closing midnight here
 
TTFN
 
ISYALOAT
(I see you are learning our abbrevations too)
 
I forked Roslyn and opened the solution
160 projects
 
10:05 PM
25405 compilation errors and counting
Seems like a few references are not properly applied
153576 errors
Yes, that's 6 digits
 
The correct answer is "this is crap code - sack the programmer - it would not past the code review" — Ed Heal 11 secs ago
 
10:20 PM
@JeroenVannevel The amount of errors is usually irrelevant. Fix the first listed and see what else sticks out after that.
But that's an awful lot.
 
They're all originated in tests and apply to missing references
I don't expect I'll be contributing to Roslyn any time soon anyway, so I won't bother too much
but it's nice to read their code (certainly considering there are a lot of analyzers in there)
 
Analyzers are good.
 
10:57 PM
Does anyone have a good book about use strict by the way? I'm trying to prevent callback-hell and I got a feeling strict has it's own way of solving that problem.
 
11:14 PM
0
Q: PHP connector for communicating with a REST API (part 2)

MikeI wrote a PHP connector that will allow me to communicate with a REST API. The class was little over 1500 lines of code and it was hard to manage it. It was a nightmare to even look at it as you can probably imaging. My intention was to to make be better where I can later share it on GitHub and...

 
@QPaysTaxes If you want feedback, yea. If you're not going to do anything with the feedback, there's no point in posting it.
 
0
Q: Create a directed graph and compute in degrees in Python

OrestisI have implemented a couple of functions in python as part of an online course. Although the functions seem to work fine I feel that the code is inefficient with a lot of nested loops. Are there any improvements I can make? I am new to the language so any advice is welcome. Here is the code and ...

 
Anyone know how to add github commits as feeds to chat?
Never mind.
 
11:51 PM
@EthanBierlein Write a bot to do it. Ask @skiwi, AFAIK he wrote the basics for @Duga
 
@Mast I just had to add /commits/master.atom to the end.
 
RELOAD!
 

« first day (756 days earlier)      last day (3251 days later) »