HN user

mreiland

430 karma
Posts3
Comments617
View on HN

When it's all said and done with, software needs to be consistent and meet the expectations of its users.

If it does that, the question of a framework or high level documentation or user stories don't matter. Those are tools used to help achieve the above govals, but if you can do so without the use of the tools then the tools aren't all that useful for that particular project.

I sometimes think people miss the forest for the trees. I make the same argument about tests and TDD, the goal isn't tests, the goal is stable, maintainable software. If you can do that without tests, then you don't need tests, and that's ok.

I don't know, I used to feel that way but over the last few years I've changed my mind. The reason is because I got a hosting company as a client and I've seen some shit.

I've written the tools they use for automated VPS creation/deployment. The wrench in the works is that this company offers the ability to install/configure a lot of different pieces of software and software combinations, not just the usual to get enough going for the customer to log into the VPS. Slowly over the last few years I've started to realize my trust and hope in software that isn't written by me has plummeted as a direct result of this experience. I'm talking about software with a configuration web API where only half the confurable options will actually configure via the given web API and instead you find yourself tracking down and diving into the individual files and updating those instead (and figuring out how to restart their services such that they don't overwrite your changes and accept them). It's just not acceptable, and they charge money for that implementation. I've been told that one of the major features in their new version is that their own web app will start calling the web API so their implementations will actually work in this version. Am I the only one who finds that a ridiculous feature?

long story short, I think there's an assumption in your post that the people writing the software give a shit about correctness and ease of use, when in reality a lot of software only cares about getting money in their pocket. If that means shipping with a web API that's broken and announcing the proper functioning of said API as a feature for the next version, then so be it.

What ends up happening is that you, as a developer, have to deal with the bad decisions made by other people and at some point you start preferring to just write it yourself. To give you an example, PoSH SSH (Powershell SSH). Version 1.6 had no timeout functionality, so it was possible for an SSH session to never end. 1.7 added a timeout functionality, only the default timeout was set to 60 seconds, you can only change the timeout on a session basis, and it's not possible to get back the old 1.6 behavior of having no timeout (sending a timeout of 0 just immediately returns with a timeout error). The best you can do is set the timeout to Int.Max.

The thing is, most of the differences are a bit of a pain, but nothing more, except for the decision to change the default behavior in 1.7 to be different than 1.6. This guarantees that anyone who upgrades gets rocked by this change. And for no good reason. If someone wants a shorter timeout in 1.7, they can make that adjustment while they're writing new code. It's just a bad decision made out of convenience and probably some emotional feeling of "goodness" that results from the default behavior being "right" or "correct" with the new timeout behavior.

Another issue in 1.7 is that if the connection goes away, it will hang until the timout gets hit. I went diving into the code to see what was going on, and in their busy wait loop they never actually check if the session breaks unexpectedly, so if it does break it sits in that loop until the timeout is hit. I discovered this because my automated tools were SSHing into some linux VPS's and issueing a restart command. But because the timeout is on a session basis rather than command basis, it isn't as simple as just adjusting the timeout. I had to actually start maintaining my own version (I did report the issue to PoSSH SSH, but I don't think it's been fixed).

In general, the quality of the PoSH SSH library is such that I'm actually in the middle of changing from PoSSH SSH to the putty tools for my SSH/SCP needs. It's actually more consistent for me to escape and parse the cmd input/output than it is for me to use PoSH SSH, and that's damning.

I'm not asking for 9 9's of availability from these libraries, but my personal goal when I write code is for it to work consistently, and to be loud in its failures so we know that more work is needed to work consistently. But PoSH SSH's design is such that it's easier to meet those goals using external CLI tools than to use the Powershell library.

This turned into a bit of a rant, but this is something that's been on my mind more and more over the past few years as I find myself dealing with such a myriad of different pieces of software with this client.

Why are you thinking about free speech in terms of things that need to be penalized (or rewarded)?

I encourage everyone to avoid answering that question, it presupposes that the mindset that resulted in such a question is valid on some level and worthy of engagement.

Inconsistencies in HN moderation are random side-effects of the impossibility of reading all the threads.

Unless it's one of mine, of course. Then you seem fairly consistent.

ban me or leave me alone.

I have no issues with the way you worded that, I would have defended you had dang stepped in to complain about it (and in fact I've done exactly that in the past, which is when dang started harassing me). I was more pointing out the hypocrisy of dang.

I ended the conversation for exactly the reason I cited, a distinct lack of imagination. Anyone who immediately reaches for "you must be a novice programmer" isn't really someone I'm interested in conversing with.

Especially since anyone who stopped to think about it for more than two seconds would realize a "novice programmer" would find the yoda conditionals easier specifically because they're still learning to read code.

No one in their right mind would claim an adult reader would be better at having random bits of text in their novels read from right to left in the middle of their left to right text. Most reasonable people are going to agree that it's easier for a young person just learning to read to pick up on that.

Yet there you were, making exactly that claim for programming.

It indicated a reactionary comment with a complete lack of critical thinking on your part and I just have no interest in spending my time speaking with a person whose thought processes work in that manner.

And if that offends you, then so be it. I personally do think you were simply being passive aggressive and that's why you didn't stop to think about what you were actually saying.

Which is your right to do, and I would defend you for it. But it doesn't mean I'm willing to continue engaging you.

please stop following me around dang. One would think you would be warning the person who implied I was a novice programmer, but that would require consistency and fairness.

either ban me or leave me alone until I do something that's actually ban worthy please.

And to be clear, so there is no confusion here.

Your guidelines state the following:

When disagreeing, please reply to the argument instead of calling names. E.g. "That is idiotic; 1 + 1 is 2, not 3" can be shortened to "1 + 1 is 2, not 3."

According to your guidelines, his comment:

If your train of thought is interrupted every time you encounter them, you are way too novice a programmer.

Should have been something such as:

If your train of thought is interrupted every time you encounter them you probably don't see yoda conditionals very often.

Please, do me favor, go warn him as well.

consistency and fairness.

Or just ban me since we both know that's what you want to do.

It seems like a reading micro-optimization to me, though.

It's a "reading micro-optimization" in the same way that not littering your code with comments is a "reading micro-optimization".

It makes you pause and interrupts your flow of thought as you contemplate something not directly related to what you were modeling in your head 2 seconds ago.

It's more subtle than that. People act as if developers are all a clean slate, which isn't true.

developers have personalities with differing values. That super productive developer may just not value the flexibility of the code due to his personality coupled with that developers personal experience.

That developer will absolutely shine in some environments and be abysmal in others since there are absolutely environments where flexibility isn't an overriding concern.

As you get more experience you learn to be more explicit about your decisions, but you'll still have your preferences and your defaults and it takes a certain threshold for you to move away from said preferences and defaults.

except that it can get you banned or harassed. I had deng(dang?) follow me around, and he (she?) was obviously prepping for a ban.

At one point he wholesale deleted a comment of mine because it was widely misinterpreted in a sexist way (I clarified to multiple people, but it wasn't enough apparently). The sad part is the only ones being sexist were the ones interpreting it that way, I was personally shocked that so many people thought I was being sexist.

And that was just the last time he stepped in, he had been threatening me repeatedly, and why? My best guess is either

a) because I was having a conversation with another poster in which he came in and bitched at them, only I defended that poster, or b) after I was "flag bombed" (I think that's the term?) for having an opinion many didn't like [1].

I'm not sure which because they were both a part of the same thread, but immediately after I started seeing deng everywhere, threatening me repeatedly. I've been online long enough to know what being targetted by a mod looks like.

This idea that you shouldn't be self censoring on HN is naive. It means you haven't attracted deng's ire (or one of the other mods) or said something that was truly an "unsafe" minority opinion.

There's apparently another person who won't allow linking from HN I believe? I don't know the full story behind that, but I can absolutely understand that person's opinion of HN.

HN is honestly one of the oppressive environments for actual discourse I've seen and that's not a joke. The only site I can think of off the top of my head that's unequivocally worse is hubski.com.

The poster who spoke about 4chan is spot on. You can optimize for good discussion or you can optimize for feel good politeness, but you can't optimize for both. Most communities attempt to balance it, but HN leans far to the side of feel good politeness. You don't actually come to HN for discussion, you come to HN to make comments on random things that pop up. Unfortunately, some mistake that for discussion, but I'm of the opinion those folks don't actually understand what a good discussion is.

To end this post, I'm just going to say I find your opinion to be horrifically naive. Even now I know the reaction is going to be folks piling on to tell me how great a person deng is, and I'll find myself taking another multi-month long hiatus from HN until deng (once again) forgets about me.

I've been online for entirely too long.

[1] The poster I defended took issue with my opinion and we were going round and round about it and deng apparently thought he was getting too heated. I was the recipient of said "heat" and I disagreed.

This feels like damage control to me. While your explanation is always possible, that board moved much slower than HN's front page so the idea that the post somehow got lost in the mix when he was actively involved in several other posts sitting on the front page is stretching things a bit (in my opinion).

But that isn't even the important point. The deficiencies I outlined haven't been been revisited have they?

If not, it would seem my distrust wasn't so misplaced, and that was the bigger point.

Who knows, maybe the rest of the stdlib has had more thought put into it, but that was the first bit of the stdlib I had dove into the source for and what I saw wasn't good. I didn't want to do that for the rest of the stdlib either.

If Araq has become the bottleneck, then maybe something needs to change in your process, because as you can clearly see I offered to be the one to make the changes.

And to be clear, I'm not angry about it, I just chose to spend my time elsewhere. Intentional or not, the language dev's as a whole could be doing a better job getting other people involved.

I logged back into the forums to try and find it, but I didn't see a way to pull up old posts.

IIRC, the issue I posted about had to do with some of the underlying parsers. I was looking at the CSV stuff and I believe one of the types it relies on had a skipBOM function, or one of the functions would skip the BOM, or something along those lines.

But what it did was blindly increment the file pointer without checking it was looking at a BOM, or that it was at the start of the file.

To me the interface is a fairly big deal because you can't safely use the type without knowing that implementation behavior. People do stupid crap, and calling skipBOM at the wrong time will happen, even though it's obviously not intended. What I recall is recommending that it either fail noisily or turn into a noop. I'm on the side of failing noisily to help users of the class find their bugs quicker, but I can understand why someone would want it to be a noop since technically doing nothing if it's not a BOM is the right thing to do.

The response I got was the type wasn't meant to be part of the public interface for the stdlib and so wasn't an issue, and then I was pretty much ignored after that statement. I even offered to do the work myself, but pretty much got ignored.

It wasn't so much that the reaction was negative, as much as it wasn't conducive to improving the stdlib all that much. And from my perspective, one of the biggest problem nim had (at the time) is that the stdlib felt very unpolished. As if someone had written it for very specific use cases and then haven't revisited it. I guess what I'm saying is that it didn't feel like an stdlib in many places, it felt like someone who wrote some production code for very specific use cases. Which is perfectly acceptable for production code with a specific use case, but not for an stdlib (in my opinion).

The entire thing left a bad taste in my mouth and I lost a lot of trust in the quality of the stdlib and so decided to stop learning/using nim.

It's all a little fuzzy in my mind, so I may not have all the details correct but the loss of trust was definitely the result.

And who knows, perhaps I was misreading the code, I wasn't all that experienced with nim at the time. But even having someone point out it was my mistake would have felt better than simply being ignored.

It's too bad really, because I did like the language itself, which is why I had offered to try and help improve the stdlib. Nowadays I'm picking up rust for fun(putting together an NES emulator in it). I'm a little bit of a language whore :)

I tried to get into nim, but then I started reading the source for some of their stdlib and finding bugs.

I pointed it out on the boards and the response wasn't all that great, so I decided to spend my time elsewhere.

I started picking up Rust a few weeks ago, so far I'm having fun :)

No, not that kind of offensive. I gave the larping.org guy $10 for legal fees, even though LARPers are strange folk unlike us normal, sane tabletop RPG players.

Ok, I laughed. It's kind of true though, I'm always reminded of this video:

https://www.youtube.com/watch?v=KZ04mfAY2BU

I had a roommate that was into melee, where they'd all get together and make fake weapons and then fight. They had a point system and everything, it was interesting to watch.

I'm still using an iPhone 4S and I have no reason to upgrade. a while back I called to see what it would cost me to upgrade through my provider, and I think I was quotes something like $600 (that's the cheap, 2 year contract version), and I just cannot fathom why it's worth spending an extra $600 for the new iphone.

The only think I wish was better is the load times on the kindle app. We're talking seconds, so not worth $600 to get better hardware for it.

As far as I'm concerned, the 4S is perfectly usable.

I bought my Corolla off the lot in 2004. It currently has 120k miles on it and I've never had a major problem with it.

OTOH, I always maintain it by taking it into the shop and having them do what they do.

The only issue I'm having now is the A/C would sometimes go out last summer, but I'll be getting that looked at as we get into the summer months.

I expect this vehicle to be running just as well at 240k miles. I've already got over 10 years in it and I don't expect another 10 years to be outlandish.

That's lasting power, but I don't maintain the vehicle myself, I pay others to do it for me.

squatting once/week is viable if you're extremely experienced and are not on steroids. The more experience you get, the more rest you need between lifts.

One of the major reasons why steroids works is because it cuts down on the required rest time by a large margin.

Walmart Pay 11 years ago

That and the horrible fucking cards is the reason I don't shop at wal-mart unless I absolutely must.

seriously, I bet in the last 10 years I've never had a wal-mart cart that didn't have problems.

Walmart Pay 11 years ago

They always have been, I took a tour of their facilities in college. I recall being told at the time that every transaction that goes through any of their stores anywhere in the world is saved to a HD and stored in a vault somewhere. Kind of insane when you think about it.

Walmart Pay 11 years ago

Strangely, I seem to recall the sentence being:

"I far prefer it over dealing with the hassle of a card".

I may have misread it.

Men at work 11 years ago

The discussion is around gender, the gender of the author does actually make a difference in how the article is received (as it should).

People get stupid around gender. If this were an article about christian and muslims, no one would blink at using the religion of the author to help decipher intent.

This is what I like to do for the exact same reasons. I get some alone time and I've found I enjoy studying various things during this time.

My issue is always that I find it hard to keep a straight sleep schedule. Even when I was young I was like that, it's like my circadian rhythm is longer than 24 hours and I have to force it to reset.

sucks, but when I'm able to get up early I love it.