« first day (1693 days earlier)      last day (3231 days later) » 

12:04 AM
Haha oops.
 
12:58 AM
@Mitch Slacker.
 
1:18 AM
@Robusto Should I live so long.
 
@cornbreadninja麵包忍者: Whoa, Yes bassist Chris Squire just died.
@tchrist You're 2/3 of the way there after four years or so. Another two should do you.
 
Not feeling arsible.
 
1:32 AM
@tchrist I know you're depressed, but I hope you'll come out of it.
 
I spent the two days of the weekend joyfully writing new code that was simple, powerful, testable, and which by the way worked.
I have spent the two days since then doing nothing but looking at 187-frame stack dumps filled with utterly incomprehensible nonsense and no way to debug it.
The latter code, needless to say, is not mine.
Creating stuff makes me happy.
Having other people's stupidity stuffed down my throat makes me want to scream.
Worst of all, the real problem was hidden because one of those frames "helpfully" rewrote everything, losing the real problem.
> "When it comes to writing code, the number one most important skill is how to keep a tangle of features from collapsing under the weight of its own complexity."
Oh. Fucking. True.
 
@tchrist I like getting lost in work like that.
 
Sent you private message on G+ of why I want to strangle people.
 
Hmm, let me look.
 
There are perhaps 3 frames with any meaning there.
And even those are hard to notice.
 
1:41 AM
Ha, glad I don't have to pore through that shit.
 
My brain collapses under the weight of the complexity of all those over-clever magic features.
 
Yeah. But I really love just being in my interior coding zone and making really good stuff. I just had a couple of weeks where I could do just that, without interference, and it was sublime.
 
If I ever produced something like that, I would expect them to take away my keys and send me to the padded room.
In fact, I demand it.
 
Yup. It's like I tell my kids when I see some old guy going 15 miles an hour on the highway: if I ever get like that, shoot me.
 
This weekend I was working on localization stuff, and on an expressive assertions library. You know how in C you have a nice #define assert() macro that can disappear at compile-time. Well, in interpreted languages, this is not supposed to be possible.
However, they too have a compiler, and if you are willing to become unnaturally chummy with it, you can delete those nodes from the parse tree. :)
 
1:46 AM
Hmm, interesting.
 
In other words, you want the assertions on during dev and test but not during prod.
 
Yup.
 
But then if stuff goes wrong with prod, you want to be able to magically turn them on again WITHOUT A CODE CHANGE, which requires a release cycle, etc.
 
Looks like we think alike.
 
Docs and code or arguably prettier code.
That's how I write stuff. You can understand it even if you can't read the language, well except for the magic compiler bits. And it's documented.
 
1:50 AM
I just noticed.
 
The $job code you are expected to figure out afresh every time you look at it, with files thousands of lines long and no docs.
 
First thing I looked at.
I was going to say I love clean, well-documented code. To me, code should read like a novel.
 
Or a joke for docs, where they start every method with an underscore to avoid the must-document-methods static analysis tool. Or they put a blank section in the docs. And they never tell you want the function expects as arguments or returns as a return value. And all the classes are built dynamically and given ugly anonymous names that mean nothing.
I believe in WYSIWYG code.
Stuff that does what it says it does, and which fits into your brain at once, and doesn't require that you juggle over 9 million names of God in your head at the same time.
 
I write code in four stages: 1. Plan it. 2. Write it. 3. Revise it. 4. Document it.
 
Oh, and which has a rigorous test suite that does positive and negative tests on every fucking single fucking method.
That code won't even install unless it passes its own self-test suite, which tests each method at least two ways for positive and negative results.
That's how you write code for other people to use.
What passes for unit tests at $job are very very very high level things related to web-app overall stuff. Oh, but which do not include anything GUI.
And they never check their arguments, so you're always having methods blow up.
 
1:56 AM
Wut?
 
This module is to make it so there is never an excuse not to check your fucking arguments.
And when things blow up, they generate stack dumps of pure garbage like previously discussed. Useless.
As you see, I have an attitude problem. It is situational.
It is not chemical.
 
I'm familiar with those. I call them attitude attacks.
 
And this is both the best and the worst code in its own way that I have ever seen.
The main problem is that very clever people keep trying to solve the problem of too much complexity by adding still more framework layers of complexity.
It never occurs to those digging the holes that rule #1 is stop digging.
You cannot solve the problem of too much complexity by adding more of the same. It simply is not possible. You must remove it.
 
@tchrist As the saying goes, the only thing abstraction can't cure is too much abstraction.
 
I particularly like the "Runtime Control" solution I came up with.
So that you can just set an environment variable and override the always/never/carp nature of the assertions.
You just tell prod support to set a variable and start up the web stack again. You can set it to carp so that failed assertions don't stop the app, just carp at you.
But normally the assertions don't even get compiled in prod.
One central function at work has nothing but 14 interlocking anonymous closures for some elaborate dance that is virtually impossible to understand. Another takes ELEVEN UNCHECKED POSITIONAL ARGUMENTS. Another function has 1,000 lines of code in it. These are all signs of disorganized minds.
 
2:06 AM
@tchrist I hate that shit.
 
Me, I try to avoid functions of even three arguments if I can help it. And functions of no arguments are lovely, because you can't fuck them up.
Unless of course you neglect to make sure you were called with none, so people call you with stuff and then you don't notice and they wonder why it didn't do what they said.
I just don't put up with that.
 
Another thing I hate is seeing lots of C&P code, code that repeats procedures five or ten times on the same page.
 
Well, that doesn't happen here.
That was at the last job.
These people are all good programmers, but perhaps not great.
They seem impervious to the problem of complexity. It doesn't bother them. Clever programmers devise clever solutions. Brilliant programmers devise simple solutions. There are too many of the former and too few of the latter.
I don't care if it's a complicated problem.
I expect a solution that demonstrates abstraction in cognitively manageable chunks.
Saying it's a complicated problem is no excuse for a 1,000-line function to solve it. To the contrary, in fact.
 
Yep. That reminds me of something my brother-in-law told me about programming once. He's a dept. chair in CS at Georgia Tech, and I asked him one day if he preferred simple, bare-bones coding or the crafting of elaborate (I used the word "elegant") constructs that were rich and complicated. He just looked at me and said, "The simple solution is the more elegant solution."
 
Yes. That's what is lacking here.
My code may look like a sausage factor while I'm developing it, but when I release it, it looks like what you just read.
 
2:12 AM
He told me that before I was a programmer, and I took it to heart when I started coding myself.
 
On more cheerful matters, did the internet break for the leap second again?
 
Not that I'm aware of.
 
That's a shame. It was fun last time. :)
 
2 hours ago, by Robusto
Here comes the leap second! Are you ready?
 
> The previous leap second, which took place in 2012, brought down Reddit, Yelp (YELP), LinkedIn (LNKD, Tech30), FourSquare, Gawker and StumbleUpon, among other sites and apps. Qantas' entire computer system went down, forcing employees to check in passengers by hand.
> Twitter is having problem estimating how long ago tweets were sent. Seeing tweets from a minute ago say they were sent a day ago #leapsecond
Of course everybody had to tweet on the extra second. :)
Me, I'm more excited about the close-ups of Pluto and Charon we'll get pretty soon.
 
2:19 AM
Yeah.
Eight years ago I was thinking of going into teaching, and I developed a science project that would track the New Horizons project. At that time, the Pluto flyby was far in the future.
Now here it is, and those kids are out of college by now.
 
Time keeps on slippin’
 
Into the future.
 
Or stumbling, like today.
 
By now we're used to leap seconds, I hope.
 
I still think DST is worse.
Although at least you can pretend it doesn't exist.
 
2:24 AM
I don't see the need for it. If you have DST for seven months out of the year, that should be the standard time.
 
Yep.
I think I mentioned this, but people who don't understand why Spaniards eat "lunch" (well, comida) at 2pm are those who don't understand that that is solar noon there.
Spain should be in the same tz as England, but isn't.
And summer time just bumps it again.
 
And then a nap, and then dinner late at night.
 
So high noon is at 2pm in the summer.
 
I didn't know that.
 
Even people who live there don't always think of it.
 
2:27 AM
I love the long days of summer. I hate that they are slipping away slowly now.
But I must enjoy them while I can.
 
And this is why you say buenos días until lunch and buenas tardes afterwards. It doesn't matter what time it is, and two people can say opposite things to each other, thereby indicating which one has already eaten. :)
 
Hmm.
 
heh
Astronomía
Jul. 01, 2015	Salida	Puesta
Hora real	7:06 AM CEST	9:48 PM CEST
See the weird skew?
7am sunrise, 10pm sunset.
Split the difference to find noon.
 
Yeah.
 
That's what makes their 2pm "lunches" reasonable.
Or 10pm suppers.
 
2:34 AM
Still, every other place I've been to in Europe they take their suppers that late.
 
Not in England.
Wow, did you see the 10 day forecast for Seville? 93,97,100,102,107,107,105,109,105.
And they currently have 88% humidity.
 
Egad.
 
And 0% chance of rain that whole time.
 
Pluto.
 
It’ll get better.
 
2:37 AM
From Pluto the sun looks like a bright star.
 
Which it isn't, of course.
Bright, I mean.
 
I know. From another star our sun is almost invisible.
 
We need to get on the space tourism route.
 
I've always wanted to do that. I would just love to look at the stars in outer space. Just stare at them for hours.
Billions of 'em, and all colors too.
Debo dormir.
Buenas noches.
 
 
2 hours later…
4:17 AM
@Cerberus "good English" is a bit vague.
 
 
3 hours later…
6:56 AM
@FaheemMitha he's talking about having command of the language, which is not at all "vague." :-)
 
@skillpatrol It's pretty vague. Define "command of the language".
 
[ SmokeDetector ] Repeating characters in answer: How do you hyphenate the word day to day? by user127429 on english.stackexchange.com
[ SmokeDetector ] Repeating characters in answer: How do you hyphenate the word day to day? by user127429 on english.stackexchange.com
 
8:07 AM
@FaheemMitha If you speak a language fluently, it implies you speak it with ease, smoothly, without hesitation. You could still be fluent and speak the language with an accent, although the accent shouldn't be so strong that the person at times is incomprehensible. A fluent person could speak the language with accuracy, although a native speaker could speak his language fluently even with a regional accent, yet not have an excellent command of his language, making grammatical mistakes at times.
When I hear "excellent command," I think of a person who speaks the language with expertise, mastery, and accuracy. This person may also speak the language with an accent and could still be considered having an excellent command as long as the person doesn't have an accent that makes the language at times incomprehensible.
 
9:01 AM
@skillpatrol Mmm. Your description still allows much room for variability. But in any case, speaking English fluently in India is very much an elite thing. And "expertise, mastery, and accuracy" sounds more like an Oxbridge don to me than even elite Indian English speakers. For example, I know few Indians personally (I could probably count them on the fingers of one hand) who would pause a second to make note of a grammatical error they have made, or even acknowledge it.
 
 
1 hour later…
10:22 AM
@FaheemMitha I think we know what Rob meant.
Or at least I can't make it any clearer.
 
@FaheemMitha Or even, perhaps, to realize that they made an error.
Don't get me wrong: most developers I've worked with have indifferent English "mastery" and poor communication skills in general. But the S/N ratio approaches zero whenever I have to be on a call with a team of Indian devs. Start with the lo-fi medium, add a bunch varying of accents, no faces (so I can't tell who's talking) and even if they were speaking perfect English it would make comprehension and communication difficult. But they're not, and they don't seem to care that they're not.
They don't say when they don't understand something, which means they can agree to something that have no ideas about. Which makes them look unreliable.
In fact, it's almost axiomatic that "OK" seems to mean "I don't understand what you just said." That's the most maddening thing.
 
@Robusto Well, yes. I guess I meant a scenario where someone else pointed out an error to them.
Doing something well is at least partly a matter of caring. If you don't care about speaking well, you probably won't.
 
Yeah. It's that indifference to good communication that I can't fathom.
 
10:37 AM
@Robusto It's a very noticeable feature of Indian culture. At least for me locally. And mostly in a commercial context. I don't have a good network of Indian friends.
 
"excellent command" requires a Commitment to Excellence :D
 
Again, don't get me wrong. Many of them are fine coders and accomplished technician. But the communication gap places a severe burden on productivity.
 
The exception is the local free software community. I'm on the Indian Debian list, and it's a little strange to read Indians there writing actual grammatical and properly formatted English.
@Robusto It's quite common in fact to hear OK in response to a question.
@Robusto I don't see how someone could code well and not speak (and write) well. The two go together.
 
Maybe they communicate well in their local dialect. I don't know.
 
@Robusto Possibly. I'm reliably told that the local standard of Hindi here is not great, for example.
@Robusto And it's language, not dialect.
 
10:47 AM
@FaheemMitha I understand that, and I speak Japanese so I'm aware that hai ("yes') in response to a question doesn't mean yes, but something like "noted" . . .
 
@FaheemMitha Couldn't agree more.
 
@DamkerngT. I won't argue that point, because essentially I agree with it. I'm trying to give my Indian colleagues as much benefit of doubt as I can.
But when I see code whose variables are full of typos, like getUserFavoriate instead of getUserFavorite and so on, I no longer trust anything in that code.
 
@Robusto nods -- Good code needs clear thinking, and we can't think clearly if our language is not clear.
 
@Robusto Camel case. Ugh.
 
And the first and probably most important weapon in the arsenal of communication is and should be: "I don't understand."
 
10:52 AM
@Robusto That is something you rarely hear here.
 
I never hear that from them.
 
@Robusto Couldn't agree more with this one, either!
 
People seem to consider saying that somewhat indecent.
 
Which is maddening.
 
"Here" is Bombay, India, for the record.
 
10:53 AM
At least the Japanese will say muzukashii desu ne, meaning "It's difficult, isn't it." And you know you have a communication or agreement problem and can work on that. But when someone just says "OK" and goes off to do whatever, you don't even know you have a problem until something breaks.
@FaheemMitha That's where most of the Indian devs I've worked with come from. My manager, though, is from the Delhi area, and seems different in a lot of ways.
For one thing, he doesn't go back on what he says.
If he tells you something, you can take it to the bank.
 
Even on the Debian mailing list, here was a title of a recent post - "Any1 going to DebConf15 from India?"
Sigh.
Seriously, r u kidding?
 
Maybe it's the education system that gives a lot of people the mistake aversion. Saying "I don't understand" is in a way admitting that you made a mistake (by being unable to understand the other), I think.
@FaheemMitha Interesting!
 
@DamkerngT. But as Jung said, "Neurosis is always a substitute for legitimate suffering." Meaning if you're unwilling or unable to bear the pain of acknowledging something is wrong, not only can't you fix it but it will come back and bite you in the ass harder later on.
 
@DamkerngT. It's a cultural thing. Where is comes from could be a hypothetical subject of study.
 
nods
 
10:58 AM
All cultures have their distinctive feaures, and specific corners of insanity.
 
True!
 
What is striking in India is the pervasiveness of many of these features. I would have expected more variability.
Of course, when I say India, I don't really mean India. I mean my little corner of it. Though I do occasionally communicate with people in other parts or it, and they seem no different.
@Robusto I don't see why Delhi would be substantially different.
 
I don't either. I only have a dataset of one.
 
@Robusto ok
 
I just notice he seems more willing than the others to stand behind what he says.
Maybe that's why he's a manager.
 
11:03 AM
two more ~frameworks
 
@Robusto What kind of collaborative setup do you have? Is your company outsourcing work to India?
 
@FaheemMitha Yeah. We have devs here and there. About 60% of our devs are Indian, and of those probably half are in India.
 
@Robusto Oh. That's a high proportion. And here is...?
 
Boston area.
 
11:18 AM
@Robusto Oh.
 
Oh?
Every large tech firm has a high proportion of devs from the subcontinent. Usually there are some Chinese mixed in, but not where I'm at now.
The Chinese, I needn't add, are usually even harder to communicate with.
 
@Robusto I did not know that. Every large tech firm in the US?
And why?
 
Because business is booming, and there aren't enough American devs available.
 
@Robusto What about other nationalities?
 
If you're an American who can code for the Web, and code well, you can pretty much write your own ticket. I could walk out on this company today and have three job offers by the end of the week.
 
11:22 AM
And are any of these people independent, or do they all come in through contract companies?
 
@FaheemMitha Some Russians. A few Pakistanis, sometimes Iranians, but that's about it.
@FaheemMitha The Indians come in through contract companies.
 
@Robusto Ok
@Robusto Is the attraction of the Indians that they are cheap, or are there other factors?
 
You see some Sikhs, which I don't really count as Indian. They seem like something else.
@FaheemMitha Cheapness is a myth. It costs just as much in productivity to hire an Indian through a middleman, when all is accounted for. The lure is an abundance of people to do the work.
That's for technical work, of course. Unskilled manufacturing is cheaper, but most of that is farmed out to China.
@FaheemMitha What's your opinion of the competence and work ethic for the people contracted by these offshore companies?
@JohanLarsson: Do you have that link to the cartoon about the javascript framework again?
 
11:48 AM
no, but I can find it
gah, had to scroll transcript
 
Thanks.
 

« first day (1693 days earlier)      last day (3231 days later) »