For the best experience on desktop, install the Chrome extension to track your reading on news.ycombinator.com
Hacker Newsnew | past | comments | ask | show | jobs | submit | history | more shannongreen's commentsregister

As someone who has to write C for their day job, I am a little bit offended by the introduction of this article, but I guess that's the point.

The code presented is trash and doesn't follow best practices - using the type system, descriptive variable names, etc. Void pointers for everything, are you serious? Of course it's hard to understand. Revealing that it's the generated code doesn't make me any more comfortable with it.

Yes, I get that you shouldn't care what the generated code looks like if you trust your input, but I don't find the predicate any easier to understand. How do I know that's correct? What if I need to debug this generated output?


I have seen code written like that by humans, namely offshored projects.


I've taken "Goodbye C developers" out of the title above, since it's pretty linkbaity.


FWIW, I would hate working with someone like this. You don't have to be super active, socially, but treating the other people (and they _are_ people) on your team as just drones is a) not conducive to good collaboration and b) pretty damn rude.


It doesn’t have to be rude. Seeing it as rude is an imposition on those of us who don’t see it as rude.

I’m pretty antisocial, personally, and love it when my workmates get to the point and focus on the actual “drone”-tasks. Why? Because that is why I do software. I don’t do software because I love people. I don’t do software because I love the paycheck. I do software because I love software and every second away from focusing on the concerns of producing quality software just seems like a genuine waste of time. Even here on HN, it’s mostly an opportunity to safely experiment with “politics” in a way that isn’t totally exhausting.

I get that everyone is not like me, and I’m okay with that. I don’t expect everyone to have my preferences.

I’d personally prefer to be treated as a respected “drone” (now THAT seems rude) and I don’t really want to spend time on banter, unless it’s being used as a metaphor that can improve our collective output.

This is “fun.” This is why I “work” (it’s not work to me). Discussing requirements and problem solving solutions is great; it’s fun. Happy hour is “work” to me. Please don’t act like I’m rude just because I don’t share your preferences.


As someone who as been on both ends of that spectrum at different points of my life, I’ll attempt to explain: your core concept is completely legitimate and understood, at least here in HN.

Presenting it as a clear-cut _you are a queue of work and paychecks_ is where it breeds conflict. For the royal you that description is merely a description and expresses no judgement, it is simply the _why_ of your intentional lack of interaction with your coworkers.

To the people on the other side, that description brings back the negative feelings they felt when a coworker that held that same opinion (not you) was unnecesarily rude at work and shielded his failings behind the _I don’t do people_ cover.

I realize that asking you to use the human touch (for lack of a better term) is asking you to have to “work” to cater to the social aspects that you are trying to not get involved with…

So instead I’ll posit that your last paragraph is a perfectly acceptable response to the eternal “want to join and be social” question. It’s innofensive yet firm, and it conveys your position in a concise way that nobody can really pick apart unless they want to make an scene and look bad.


That's not really the same as not caring about your co-workers as human beings, though. I'm happy to leave introverts alone and not drag them to unhappy hour with me, but they're still worth something as people, and I'd still help them out if they e.g. got hospitalised and needed someone to bring them clothes and a book.

I interpreted "I don't care about you as a person" as "I don't think you have moral worth outside your instrumental value to me", which goes beyond rudeness and into questions of whether the person can be trusted at all.


First, I made friends with most people I worked with. I still see them years after I left the company.

So who do I not see, the ones who insisted I must follow their favourite sport teams, the ones who got so drunk on the weekend they could not remember what they did but thought I should have been with them. The one (thank goodness it was only one) who keep eyeing the high school girls while we were in our 30s and 40S. And last the ones who always had to go out for a smoke, I don't want to imagine what their places were like.

You can like some people, but some people you just do not want to be around when you are not being paid to work with them.


> The normal experience with C++ done well is no need for debugging

You cannot possibly be saying this with a straight face :)


I guess it depends on who is doing it. If that's not your experience yet, it could be. Lean in on the type system, and make it work for you. The fewer bugs you leave room for, the fewer you get.


> It is possible to define a struct type in C with bit-fields for the individual elements, however the C standard does not guarantee the layout and order of the individual fields.

As a professional embedded developer who uses bitfields to access registers every day, this doesn't really make a practical difference. On any bare-metal or embedded project you will rely on the behaviour of your compiler, and portability is largely irrelevant if you're accessing memory-mapped registers. Probably, the manufacturer has already provided register maps using bitfields anyway.


Having direct control over this type of thing is important when updating the fields of a persistent data structure. I've had to deal with mistake before, where the original developer thought the layout matched what they specified, but the actual layout that got persisted didn't match. For compatibility, the broken layout stuck around forever, and special rules were required to detect this.


  Whenever you're called on to make up your mind,
  and you're hampered by not having any,
  the best way to solve the dilemma, you'll find,
  is simply by spinning a penny.
  No - not so that chance shall decide the affair
  while you're passively standing there moping;
  but the moment the penny is up in the air,
  you suddenly know what you're hoping. 
  -- Piet Hein, "A Psychological Tip"


Hah, interesting. I knew it from Frasier: https://www.youtube.com/watch?t=173&v=pPYiCw9HHXo&feature=yo...


I learnt Dvorak 6 years ago and now type exclusively in Dvorak on QWERTY keyboards (currently a Microsoft Ergonomic). I have never used a keyboard with a Dvorak printed key layout. I think my Dvorak typing speed is still slightly slower than my old QWERTY max, but it feels much more comfortable typing for long periods, and less effortful.

The printed keys don't mean much - to learn to touch type correctly you shouldn't be looking at the keys anyway. I used a few typing games to start and then switched cold turkey for a few activities that didn't require speed (like responding to emails). It was, indeed, very frustrating.

That said, I don't recommend switching for most people, because you will get much worse at QWERTY and when you occasionally need to type it (like on a colleague's keyboard) you will appear incompetent; you will ruin your muscle memory for keyboard shortcuts; and, because standard Dvorak is not great for programming IMO due to the position of the [{ and }] keys. But now I'm in too deep, and I know from experience how hard it is to switch so I don't want to switch back!


I switched to Dovorak maybe more than 15 years ago. But I found it put too much load an the pinky fingers (which already are pretty loaded doing enter, backspace, shift). Also typing german is very awkward with Dvorak.

I then switched to NEO layout [1] which is optimized for german, programming and english. I never regretted that. For programming, NEO is superb. It gives you 3 different shift keys (each present two times on both halves of the keyboard) thereby allowing a lot of punctuation and other special keys being typed blindly without much moving of the hand.

Switching back to occasionally work on a qwerty keyboard was impossible at first. But eventually I got used to that and I can now go forth and back and adjust within minutes. Though qwerty typing speed and accuracy is much lower than my NEO speed and using qwerty generally feels frustrating.

[1] https://www.neo-layout.org/


You must have stopped reading at that point because the comment went on to talk about using the location to select a regional dialect only.

Your browser's language is set to English. Do you serve UK, US, Australian or Canadian English?


Then we should have browser settings for regional dialect, because the same thing holds true. I don't stop being a British English speaker just because my IP address is in Toronto.

Language is a property of people, not place.

edit: Also, I'm an English speaker living in Berlin. This shit happens to me all the time, and it's a trigger. Apologies for blowing my cool.

And I'm used to reading any flavour of English. The regional dialects really don't matter. Colour can be color and I'll still understand. I won't understand "Farbe".


> Then we should have browser settings for regional dialect

We do, and that's what I'm using. Sorry if my example was confusing, I should have worded it better. I am using the regional setting from the browser to determine the correct region for your language, I'm not using your physical location in any way.

My comment was an outline for the right way to do it and I blew it when my example had the person with their region set to mexico actually in mexico (which is true most of the time, and true in my example, but is not how the app logic works because it's not true for everyone all the time). Either way, I think the actual logic agrees with what you would expect -- you get the language your browser is set to regardless of where you're connecting from. Additionally, if you have your region selected, we'll also tune your desired language for the right region of that language too regardless of where you are physically.


Apologies for not reading your post right, then. Like I said, this is a bit of a trigger for me because I live in a country where I don't speak the language, and deal with this shit all the time.

Your site is an outlier if you ignore the user's location. Most tend to take the IP address as more important than the browser settings (looking at you Google, Amazon).

The Amazon case is especially weird. I can talk English to Amazon.com, but as soon as I set up a Berlin delivery address it wants me to switch to Amazon.de. Which speaks German to me. There is a switch for language there, but that only works for some parts of the interface, and not things like reviews, etc, which are all still in German. It knows I speak English, because it keeps offering to translate these German reviews into English for me. But if I go to the same product on the .com site, there's a ton of English reviews for the same product. I must admit, I don't understand the logic behind it all.

But the same problem is at the core: assuming that because someone lives in Germany, they speak German. Again, language is a property of people, not places.


> Which speaks German to me. There is a switch for language there, but that only works for some parts of the interface, and not things like reviews, etc, which are all still in German.

It's worse than that. The Amazon interface on amazon.de is clearly a translated version of amazon.com, but the English option is a machine translation of the German amazon.de (which was originally manually translated from English). Why?

And then amazon.fr just doesn't give you an English option at all. Again, why?


haha that's hilarious. I hadn't caught that it was that bad.

I always figure I must be a tiny minority market for Amazon to not have optimised my experience.


With few exceptions, I can't think of a good reason to serve up regional dialects of English and I can't imagine anyone approving the translation of a site into UK, US, Australian, Canadian, Indian English or any other regional dialect.

English speakers are quite capable of understanding regional dialects and I would guess there are few instances when a user could be confused by a dialect not local to them.

Do we then have to go down the route of translating to northern English dialect over Scottish English? etc.?

No, you serve up whatever variation of English that is local to you. The rest of us native English speakers will get by just fine, unlike if I was on holiday in Mexico and was served up Spanish. I wouldn't have a clue.


I don't think dialect is the key thing.

As someone from the UK, I don't need a news article to use "pavement" or "footway" instead of "sidewalk".

But I do appreciate sites using a UK date format, and saying "Colour" instead of "Color", in their UI.


No one should be using the travesty that the Americans call a "date format" anyway =)


An HTTP Accept-Language header includes a regional qualifier -- de-DE, en-GB, es-CO and so on.

(Although, I don't think I've ever seen a website offering multiple versions of English.)


Really!? I'm from the UK and can think of loads of sites that offer a British English version.

"Favourites" instead of "Favorites".


South African English! :)


> hz

hopefully mAh


> Most hearing aids don't deliver sound directly to the damaged ear canal, but also utilise other sound delivery mechanisms. Like induction.

I don't think this is correct. All hearing aids do work this way, and I also don't know of any way that (electromagnetic?) induction could be used to deliver sound.

In a person with hearing loss, not all frequencies are affected equally. Hearing aids can compensate by

1. Amplifying the affected frequencies (this is by far the most common approach) or

2. Compressing and pitch shifting the sound to a range that the user has better hearing.


When I studied at Uni, some lecture halls had induction, where the sound recorded by the microphone would be transmitted via an inductive system throughout the entire room and compatible hearing aids would be able to use that sound instead of having to boost the audio from the speakers throughout the hall.


That is input via induction (there is also FM and BT transmitters)

The GP was referring to induction output - of which comprises a minority of hearing devices.


> [electromagnetic] induction

Maybe they meant [bone] conduction?


Those were just a list of obstacles, but there was no honest analysis to speak of despite the boast that he can 'do math'; e.g., the nonsense claims about transmission losses and that solar only makes economic sense in the 'ideal' locations.


Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search:

HN For You