holmak's comments

holmak | 1 year ago | on: F/OSS Comics: 8. The Origins of Unix and the C Language

In "The Evolution of the Unix Time-sharing System" by Dennis Ritchie, he writes:

> Although it was not until well into 1970 that Brian Kernighan suggested the name ‘Unix,’ in a somewhat treacherous pun on ‘Multics,’ the operating system we know today was born.

I like this paper for its thorough description of the very earliest versions of the operating system.

holmak | 9 years ago | on: Transportation Enabling a Robust Cislunar Space Economy [pdf]

Their market analysis, just like every other discussion of commercial space exploration I've ever seen, is circular. Space solar power, space manufacturing, space mining, space refueling... the only reason to do any of those things is if you have some other reason to be in space in the first place. (And in this case, near the moon!)

holmak | 9 years ago | on: Context switch logging with the Windows Event Tracing API (2014)

SDL is written in C, and it has a much more pleasant way of dealing with heterogeneous event types. There is a struct called SDL_Event, which you fill by calling SDL_PollEvent() until there are no more events to read. The struct is a (discriminated) union of all the possible event types. (It even wraps the Win32 API, so it is very directly comparable -- it is returning the same events!)

https://wiki.libsdl.org/SDL_PollEvent

holmak | 10 years ago | on: Why would you learn C++ in 2016?

I don't have any trouble with pointers. I can understand C programs just fine. But Modern C++, as the evangelists love to point out, is specifically about avoiding raw pointers in favor of smart pointers, value semantics, etc. That's the stuff that I find difficult to use.

I did buy Stroustrup's post-C++11 book, "A Tour of C++", which is supposed to be the compact "how to do Modern C++". It provides tips, but as I mentioned above, I did not find it comprehensive enough. Terse recommendations like "Prefer returning by value" may be great small-scale recommendations, but they don't explain how the big picture is supposed to come together.

holmak | 10 years ago | on: Why would you learn C++ in 2016?

Sorry, I misunderstood your comment. I think the original poster was referring to the Plan 9 team's strong preference for C over C++. Plan 9 was written with a modified version of C, and the developers seemed to be very interested in evolving the C language. As far as I can tell, they never used C++.

> In the presentation before the awarding of the Japan Prize today, you were quoted on the distinction between research and development. [The former, Thompson stated, was directionless, whereas development had a specific goal in mind.] So in that context, is Go experimental? > Yes. When the three of us [Thompson, Rob Pike, and Robert Griesemer] got started, it was pure research. The three of us got together and decided that we hated C++. [laughter] [1]

It looks like you were half-right about the early Go compiler being partly written in C++: There were two compilers, and "gccgo" had a C++ front-end, while their homemade compiler "gc" was written entirely in C. [2]

[1] http://www.drdobbs.com/open-source/interview-with-ken-thomps...

[2] https://golang.org/doc/faq#What_compiler_technology_is_used_...

holmak | 10 years ago | on: Why would you learn C++ in 2016?

I tried to learn "modern" C++ style, and watched many, many videos from cppcon, but I just don't feel like I understand how to do it. I started a C++ project, #included <vector> and all the rest, and tried to do things the way the experts recommend, but I had no confidence that I was doing any of it right.

I know all the copying and moving and whatnot is supposed to "just work", but as far as I can tell, there's no easy way to verify that your program is doing what you intend. There also aren't any compact guidelines -- "follow these N simple rules and the STL won't explode!". With most other languages, I can at least think through the program to figure out if it is going to do what you intend, but the way that the STL is implemented to support all the modern C++ behavior requires a brain the size of a planet to understand.

I'm sure Stroustrup and the committee can write Modern C++, but I sure can't. Not with any confidence, anyway.

holmak | 10 years ago | on: How Harvey Mudd College increased the ratio of women in CS

I wonder what fraction of male Computer Science majors also come into their first semester with no programming experience. When I was a freshman, it seemed like absolutely everyone in my CS classes had been programming for years, but surely that's not the case for everyone?

Anyway, the bit about (comparatively) experienced programmers intimidating the other students in freshman classes is a real and terrible thing. I thoroughly support shoving all those students into a different class; it is disruptive to have them in an intro course.

holmak | 10 years ago | on: Bernie Tax Calculator

Regardless of how you categorize the system, having more money flowing through an organization increases the incentive for the members of that system to do something unethical to take advantage of it.

holmak | 10 years ago | on: Bernie Tax Calculator

I noticed that too. It amuses me that it just takes a couple of tasteful red and blue stripes to make something look official!

holmak | 10 years ago | on: The Rent-Seeking Is Too Damn High

I agree that the names are confusing or misleading to modern readers. The strange choice of words in both cases seems to be due to the terms being used in a technical sense with a more specific meaning than in plain English. Plus, they are both based on terms coined long ago, and the connotations (or definitions) of English words do tend to change over the centuries.

From the Wikipedia page on moral hazard:

> [...] the term dates back to the 17th century [...] Dembe and Boden point out, however, that prominent mathematicians studying decision making in the 18th century used "moral" to mean "subjective", which may cloud the true ethical significance in the term.

From the Wikipedia page on rent seeking:

> The word "rent" does not refer here to payment on a lease but stems instead from Adam Smith's division of incomes into profit, wage, and rent. The origin of the term refers to gaining control of land or other natural resources.

holmak | 10 years ago | on: Abominable Function Types (C++)

The article suggests that the discussed behavior is a problem because it does show up in code that "regular users" have to look at:

> This paper tries to shed some light in the dark corners, and explores whether the language can be cleaned up so that good template documentation does not drag obscure language-lawyer details into the domain of the regular user.

holmak | 10 years ago | on: The format of strings in early (pre-C) Unix

I have seen it claimed that null-terminated strings were encouraged by the instruction sets of the time -- that some instruction sets make null-terminated sequences easier to handle than length-prefixed ones. The article's error-message-printing code snippet is a good example. Does anyone think there is any truth to this?

holmak | 10 years ago | on: Study: US is an oligarchy, not a democracy (2014)

I've been thinking about this lately, and there might be a great advantage to modern democracy even if it is a sham run by oligarchs. Unlike an old-fashioned monarchy or dictatorship, if you want to take over the country, you just have to pay a bunch of money to take control of legislative seats and/or the presidency. This is way less disruptive than having a civil war with armies rampaging about.

It may be nowhere close to the popular ideal of democracy, but the reduced violence and destruction would probably make it a worthwhile innovation anyway.

holmak | 10 years ago | on: The Yale Problem Begins in High School

The concept presented here of "seeking justice by appeal to the majority" reminds me of the Twitter phenomenon in which people learned that the only way to get customer service from Google/Ubisoft/Bank of America/(insert giant faceless company) was to tweet a grievance publicly. It seems to work well, at least in a few high-profile cases. At least, it worked a few times when private requests failed. Perhaps people are learning by example?

The old-fashioned ("culture of honor/dignity"?) style of one-on-one negotiation is often futile when you are dealing with a company.

holmak | 10 years ago | on: Why It's So Hard to Design Arabic Typefaces

I often think about the strange coincidence that English is the easiest language to represent in a computer. Only 26 characters, with no accents, all independently placed in series. The only awkwardness is the existence of both capital and lowercase. (How much simpler would things be if case-sensitivity wasn't a consideration?) But at least capitalization is one-to-one in English, unlike German's "ss" rule. All this makes it easy to make a keyboard for English typing, too. Every other language and script I can think of is more difficult to handle in software. Perhaps Cyrillic is similarly computer-compatible, but I don't know enough about it to be sure.

It is just strangely convenient!

page 1