HN user

Sodel

111 karma

I was formerly a software developer. Now I'm a power engineer (A.K.A. stationary engineer, steam engineer, etc.) who still plays with software on the side.

Posts5
Comments44
View on HN

Very interesting indeed. This reminds me of a (relatively) recent standard for distributed industrial process control.

For industrial process control, the IEC-61499 [1] standard introduces an architecture where the program and its function blocks are independent of where the components actually run.

I don't believe automatic distribution of the components to different devices is included. But, it allows setting up function blocks and their interconnections, and then distributing function blocks between devices. Inter-device communication is included in the standard.

Compared to standard PLC programming (IEC-61131), 61499 adds events to the function block diagram paradigm.

I don't think this standard os popular yet, but I've always wanted to give it a try.

4diac is an open source implementation.

[1] https://en.m.wikipedia.org/wiki/IEC_61499

[2] https://www.eclipse.org/4diac/

I mostly agree with your points except to say that, even if Oracle is not active in the project, the risk is real as long as Oracle owns any of the copyright for any ZFS code.

The USL vs BSDi litigation over BSD ultimately came down to a handful of source files out of 18000. ( https://en.m.wikipedia.org/wiki/History_of_the_Berkeley_Soft... )

I wouldn't talk badly against ZFS, but I would not roll any dice with Oracle as a copyright holder.

Someone will probably need to correct me, but here's how I understand it.

Proteins naturally fold into a shape where they have the lowest "potential energy". There are several useful metaphors to explain what "lowest potential energy" means and why the proteins are attracted to the shape with the lowest potential energy.

In "the real world", an object's "altitude" is a form of potential energy. A ball on a hill will roll down hill until it settles into the lowest valley it can — the place where its potential energy is lowest. Balls roll downhill to the place of lowest potential energy, and proteins fold into the shape in which they contain the lowest potential energy.

You can also think of a fresh protein as a stretched out spring. The stresses in the spring from being stretched out of shape are a form of potential energy. The spring will contract until it is completely relaxed so there is the minimum amount of "springy" potential energy remaining. Springs contract into the shape that is most "relaxed" and has the lowest potential energy, and proteins fold into a shape having the lowest potential energy.

If the protein was to fold into any other shape, there would still be some potential energy left in the protein that could be relieved if only the protein could get itself folded into the "correct" shape. If the rolling ball gets stuck on a rock or the spring gets snagged and can't completely relax, both objects would be stuck with a higher potential energy than they would if the ball reached the bottom of the hill or if the spring were allowed to fully relax.

Hopefully this explains why there is a single shape that proteins are most attracted to when folding. But, it doesn't explain why other shapes are somehow "invalid".

Proteins are like pieces of cellular or chemical "machinery". Like the parts of a mechanical machine, the protein's shape is part of what defines how the protein works, what it can "do", and how it fits together with other pieces of the cellular machine. And, since "correctly" folded proteins always have the same shape, "machines" can be built with them.

When proteins are misfolded, they have a different shape from the shape that all of the other machinery expects. Like a gear without teeth cut into it, the misfolded protein doesn't perform the function that it, as part of a cellular machine, is supposed to perform. The protein might "jam" the machine up or even cause the machine to malfunction and start doing something completely unintended.

I hope this comment is correct enough and clear enough for an ELI5 — though it might be more of an ELI15.

I've got two hobby projects on the go.

I'm building a steam power plant simulator for students and trainees that won't cost upwards of $100K for a site license. It also has a plant builder interface, which lets anyone place and connect equipment, piping, instrumentation, and controls. Then, they can run the plant like a real operator would from a control room.

When I was at school for power/stationary engineering, we all wished we could use something like the school's simulator at home. So, maybe I'll get to fill that niche. (And, nothing out there has a do-it-yourself plant builder!)

I have mostly-complete prototypes done for the builder interface and numerical simulator. I like that it keeps the theory that I learned at school nice and fresh.

Also, I bought a gas turbine engine on eBay, and I'm working with a friend to get it running. We got an oil system hooked up yesterday, and we spun it up with the starter motor and a car battery. Lots of fun!

First of all, I love this.

One nagging thing in my mind, though, is how easy it seems it would be for a Three-Letter Agency to backdoor LE to pieces. Then again, I guess that's nearly just as true for any CA out there.

(I don't mean to pooh-pooh this useful service! And, if there's any interloper-mitigation going on that I don't know about, I'd be happily put straight!)

You appear to be assuming (not being a mind-reader, whether you actually are or not is of course unknown to me) that QNX would automatically be used in server farms if it was high throughput; and, since it's not visibly used there, it is not high-throughput.

(As an aside, I'll grant that even a high-throughput microkernel seems likely, to me, to have a lower throughput relative to a more tightly-coupled monolithic kernel. That's just one of the architectural trade-offs involved here.)

As I see it, there are technical (e.g. hardware drivers, precompiled proprietary binaries) and social (e.g. relative lack of QNX expertise = $$, proprietary licensing) reasons for many people to choose one of the more popular OSes, running monolithic kernels.

I can't say what's technically superior, but even if QNX was, nobody's a dumbass for choosing something else -- and I don't think the fellow you're replying to was saying so. There are, of course, reasons and trade-offs.

An OS's adoption is a social thing, and proves nothing technical about it. If it wasn't for licensing (a social problem), BSD might have taken off, and Linux been comparatively marginalized.

Just sharing my perspective here.

One friend of mine essentially refused to take breaks after school. He'd get home and immediately start working on the day's homework. It would frequently take him until after 9 o'clock to finish up work that shouldn't have taken anywhere near that long. I know he's an intelligent fellow, and not prone to distraction. He'd just get stuck.

I'm /certain/ taking a break would have gotten him into a fresh mindset, and let him finish it all up faster. And, if I had /not/ put some hours between getting home and doing my homework, that it really could have taken me many hours to finish.

Just one speculative data point, but there it is.

Sorry if this is pedantic, but actually:

    find . | grep 'abc' === find . -name '*abc*'

    find . | grep -i 'abc' === find . -iname '*abc*'
The -name and -iname options do a verbatim file name check if you don't include those wild-card asterisks. I've been inconvenienced by having to go back and add them often enough that this is burned into my brain. :-)

I was lucky enough to get a tour of their facility last June. One half was assembling and testing the most colossal plasma injection guns, driven by the biggest capacitor bank I have ever seen in my life.

The other half of the facility contained the anemone-shaped plasma compression chamber from all their promotional images. (And far more impressive than the dinky prototype from the article above.) They had a shelf full of cracked steel pistons, and I'm still not sure how they plan to solve that problem when the full-scale machine uses 200 of them instead of just a dozen or so.

(An aside, if anyone from General Fusion is reading this: my inventor friend suggested shooting slugs of molten lead into the molten lead core, instead of using the current steel-piston approach.)

I guess I'm just saying that between the facilities, and what our host (one of the project managers) was talking about, I'm satisfied that they're not dawdling. These are just some inherently hard problems they're working on.

Crystal Language 11 years ago

I recommend adding something about static type checking to the list at the top of Crystal's homepage. I saw "never have to specify the type of...", and believed it was another dynamically typed language.

I actually didn't know it had static type checking until I had closed the tab, and glanced at this comment you posted here. (I know, I didn't read very far in the linked page.)

That aside, it looks neat! :)

First off, thank you for mentioning Cadquery and Verb. I've never heard of either, and they're both interesting. Cadquery in particular looks very promising.

Solvespace is a genuine joy to use. If making chamfers, path-based operations, and other such features were better supported, I'd gladly make it my primary CAD package.

It was released as open source pretty recently. I really hope some more development takes off.

[dead] 13 years ago

If hard work in excess happens to be one of the reasons you find it hard to get up in the morning, you may confidently disregard this post. It is not meant for you; if it actually is meant for those sorts (I am not the author), it shouldn't be.

Workflow in tmux 13 years ago

I've started running tmux in all my terminals automatically, and conveniently sharing a "master" session between them all.

Instead of running tmux directly, I have a small script which creates a session named TMUX-MASTER if it doesn't already exist, and immediately detaches it. All the clients that I actually interact with are created separately and automatically grouped with the TMUX-MASTER session.

To prevent my system from being clogged by dozens of detached client sessions, I rebound prefix+d to kill-session, killing the client session but leaving my TMUX-MASTER session untouched. Closing terminals while running these client sessions, however, still leaves my system cluttered with dormant client sessions.

I'd like to see if a "ephemeral" option (it'd need a better name) could easily be added to new-session, which would cause the created session to just die when it's told to detach, or receives the HUP signal. It'd simplify things a bit.

> At 200/hr, if you gross 400K they're taking 60K? Are they really providing 60K worth of service?

It depends on what you would have been making without their help. If you otherwise would have made any less than $280K that year, they are definitely providing $60K worth of service. (Or, perhaps more properly, "value".)

> I really can't believe you referred to a student as a client. It just feels to me completely against the spirit of education.

Actually, I can completely understand why the OP would say something like this, and I can see the value in it.

Calling a student a "client" can be a good reminder that, as a teacher, your main responsibility is delivering something of value -- knowledge and understanding -- to that student. I think that's more congruent with the "spirit of education" than thinking a teacher's primary responsibility is to whatever organization they're part of. (Note: I'm not at all implying you were saying that! Only that some poorer teachers seem to act that way.)

I won't pretend to be an authority on aesthetics, but GoDaddy's site doesn't seem to be quite the aberration against reason that this post seems to describe. Granted, I have no account with GoDaddy, so it may well look different when logged in. In any case, I can definitely point you to a site that (was) far worse.

Epileptics, proceed with caution: http://web.archive.org/web/20060613061524/http://moire.ch/

> However it speaks of a compiler for ALGOL... it was compiled down to machine instructions. Assembly is just a representation of machine instructions, so I don't see how it can be said to not have an assembly language.

In this sense, you're completely right. But I think that people who grok the system mean something a bit different when they say it doesn't have an assembly language. (Disclaimer: I have no firsthand experience with Burroughs mainframes.)

The Burroughs system didn't execute Algol directly, true. But, the machine representation that your compiled down to was essentially a high-level proto-Algol. It wasn't a disticnt, "first-class citizen". It was, if you like, Algol "virtual machine bytecode" for a virtual machine that wasn't virtual.

If you're writing in C, or some other higher-level programming languages, there are times when you want more fine-grained control over the hardware than the more plush languages provide. That's the time to drop down to assembly code, to talk to the computer "in its own language".

The Burroughs mainframes had nothing analogous to that. The system was designed to map as directly to Algol as they could. It's machine language wasn't distinct from the higher-level language that you were supposed to use. To talk to a Burroughs system "in its own language" would be to write a rather more verbose expression of the Algol code you'd have had to write anyway, but not particularly different in principle.

So, I guess the answer to whether or not the Burroughs systems did or did not have an assembly language is a philosophical one. :P