Become a fan of Slashdot on Facebook


Forgot your password?

Comment: Re:Terraforming potential? (Score 1) 258

by Rei (#49785427) Attached to: How To Die On Mars

First off, you're misusing temperature. You don't call it heat if all of the particles are moving in the same direction and unionized, you just call it "wind". It only becomes heat if that windstream suddenly slams into a non-moving solid surface and becomes instantly thermalized (but of course even then that would be a very short-lived event as it would correspond with a pressure rise and the deflection of the stream behind the high-pressure zone). Additionally, nor would that be the windspeed touching the surface as, obviously, wind forms boundary layers.

Secondly, hundreds of km/s from Venus escape to Mars intercept? That doesn't at all correspond to any delta-V chart I've ever seen.

Comment: Every language has its gotchas (Score 2) 266

by Rei (#49784155) Attached to: How Much C++ Should You Know For an Entry-Level C++ Job?

And it's important for new programmers to learn them - more important than learning syntax.

  For C++ for example I'd warn about classes containing pointer member variables with implicitly-defined assignment operators / copy constructors. You have Foo a and Foo b, where Foobar has a member variable "int* bar". So the newbie does " = new int[100];" then later "b = a;" then later b goes out of scope, then they try to use and the program crashes. Seems to be a very common C++ newbie mistake. Eventually they learn to see pointers in class definitions as having big "DANGER" signs over them calling their attention, and/or rely on smart pointers.

Any others that people can think of that are common?

Oh, here's one more: iterator invalidation. A newbie who's not warned about this in advance will likely get bitten by it several times before the point gets driven into their head: "if you're using a class to manage memory for you, it's going to manage memory for you, including moving things around as needed."

Comment: Re:I am amazed (Score 2) 204

by Rei (#49783805) Attached to: A Text Message Can Crash An iPhone and Force It To Reboot

Yep, they have been UTF-16 for a long time. And Unicode has been widely broken for a long time. It's not a coincidence.

Someone on StackExchange did some tests last year, adding in 4-byte unicode characters in common applications and seeing how they behaved. The results were really bad:

Opera has problem with editing them (delete required 2 presses on backspace)
        Notepad can't deal with them correctly (delete required 2 presses on backspace)
        File names editing in Window dialogs in broken (delete required 2 presses on backspace)
        All QT3 applications can't deal with them - show two empty squares instead of one symbol.
        Python encodes such characters incorrectly when used directly u'X'!=unicode('X','utf-16') on some platforms when X in character outside of BMP.
        Python 2.5 unicodedata fails to get properties on such characters when python compiled with UTF-16 Unicode strings.
        StackOverflow seems to remove these characters from the text if edited directly in as Unicode characters (these characters are shown using HTML Unicode escapes).
        WinForms TextBox may generate invalid string when limited with MaxLength.

I've had more than my share of these sort of experiences too.

UTF-16 is dangerous, and should be phased out as much as possible. Where absolutely needed for performance reasons, it should be an internal representation only, hidden from the developer as much as possible. In particular, "length" functions should return the actual string length in characters, not code units; indexing functions should take character offsets; not code unit offsets; and returned "single characters" exposed to the developer should be of a format capable of handling multi-code-unit glyphs. Anything involving working with actual singular UTF-16 code units should only be available as a "for advanced users only, use at your own risk" functionality.

Comment: Re:Terraforming potential? (Score 1) 258

by Rei (#49783677) Attached to: How To Die On Mars

. So basically you'd need to impart almost 6x as much energy (36x as much speed) to get to Mars as to just escape Venus

Yes, the velocity would need to be tens of kilometers per second. But really, what's the limiting factor here? Certainly not skin drag, when you're talking something on the necessary scale here. Viscosity losses, radiating the energy away to space as heat? The energy can't effectively radiate away as heat, that's why the funnel is there, to reflect IR while transmitting visible light from the sun. There's not many options for the gas to lose energy except to accelerate.

Basically that "negligible drag" would be the only thing providing a supporting force to the funnel.

Negligible from a systems perspective. But from the perspective of the funnel, it's tremendous force. The mass of the funnel is insignificant compared to the mass of the rising gas when you're talking about a megastructure.

I wonder though what might happen if you directed the CO2 to Venus's L4 or L5 points? Could you build up sufficient mass to create a stable bubble of CO2

That would be.... unusual. What would you call that, a "Gas Dwarf"? I really have no clue how much you could have persist stably there, but I'd be really curious to know. It'd be particularly strange if you could make it out of a combination of gasses that are breathable - aka, limiting the CO2 levels, O2 from CO2, and any mix of Venusian/Jovian N2, Ar, and He as buffer gasses as needed. If the water vapor levels were low then there would be little in terms of cloud cover to reflect light. Earth's atmosphere absorbs about 1/3rd of the sun's energy, so with two passes through it'd absorb about half; at Venus's distance it'd probably be a pretty comfortable temperature. Gravity would be tiny. Obviously not long-term stable due to the solar wind, and high radiation, unless you artificially create a miniature magnetosphere. But in the short term...?

That would be so weird to be floating "midair" in a temperate breathable environment with no land anywhere.

Comment: Re:Hobbit (Score 1) 258

by Rei (#49783411) Attached to: How To Die On Mars

Well, certainly more realistic than living on the surface. And probably easier to set up than a Mars habitat - terrain is irrelevant and your entry is so much easier - plus, even normal Earth air is a lifting gas on Venus. And it'd be no less self-sustaining (that is, to say, "not very" ;) ).

There's no need to send people offworld to do science, whether to Venus or Mars. But while there's no need for any kind of "facility" at all, manned or otherwise, for robotic equipment on Mars, the concept of some sort of floating "facility" on Venus is pretty important. Any sort of craft designed to tolerate Venus's surface environment is going to make a terrible analysis lab or sample return vehicle. I mean, even solar panels would have to be heavily shielded on a sampling run to not be destroyed; there's very little that you can have exposed that can tolerate that environment. Sampling and analysis or return on Venus is best done in two stages: 1) Buoyant craft that repeatedly dive and rise the atmosphere like submarines and take samples on the surface, and 2) a floating platform containing any analysis equipment or return hardware, high gain communication with Earth, and solar panels to recharge the batteries of the sampling craft while samples are being offloaded.

Venus's surface is really unusual and it'd be neat to know more about what's there. I'm still not big on the concept that we need humans there to do it, but at least a floating platform of some kind would be important. The only advantages I could see for having humans would be to cut the communications latency with the samplers to allow for smarter sampling decisions without requiring them to wait in the harsh environment for round-trip communications on Earth, the ability to repair samplers, and perhaps mildly better local analysis of samples and/or decisions about what to bring back. Hard to justify the added price tag, though.

Comment: Re:Hobbit (Score 1) 258

by Rei (#49782957) Attached to: How To Die On Mars

"Never" is too harsh of a word. But I share in your frustration about their glossing over the reality of engineering these "simple" processes that they envision. Just the amount of engineering work to *design* with enough precision to actually build a fully self-sustaining industrial base designed to work on Mars with the individual components being small enough to plausibly launch would cost in hundreds of billions to trillions of dollars Everything in industry has unimaginably massively long dependency chains that interconnect with each other, using raw materials sourced from a massive variety of different types of geological formations the planet over. You basically have to reengineer all industry on Earth for the martian envirionment in a gigantic mass-minimization optimization problem. You can't just plop down a 3d printer and some generic "mining robot" that roams around your habitat like people envision in their sci-fi fantasies. Reality isn't so friendly.

Even worse, if you start launching stuff without doing all of that engineering work, you end up heading down a dead end. Let's say you make some smelter that takes limonite as its iron feedstock. But then as you start expanding your industrial base, you discover that you actually need a lot of sulfuric acid, and your iron production process should instead be designed to work around iron sulfate feedstocks with sulfuric acid produced as the much-needed byproduct, with a different type of smelter required. Well, guess what? That smelter that you spend $20 billion dollars engineering, building, and shipping to Mars is now scrap. It applies to almost everything. You made a pipeline out of polyethylene? Whoops, now you discover that you sometimes need to ship corrosive liquids and it really should have been made out of teflon, tough luck! Built some big piece of industrial equipment that relies on high-temperature inconel alloys? Whoops, you discover that you can't find a practical niobium deposit within driving distances, you have to reengineer your hardware for very different matierial properties or operating environments! Everything down to the tolerances on your bolts or the type of plastic you put on your greenhouses can be a costly screwup if you don't design your whole industrial layout in advance on a standardized set of hardware and know precisely what mineral deposits are where and how to get at them.

To all of the sci-fi buffs: It's not time to try to colonize Mars. It's time to learn about Mars, and to engineer here on Earth. And it's going to be in that phase for a long, long time. Want to go to Mars and hop around for a bit with a rock hammer like they did on the moon? Fine. But don't call it a colony.

Comment: Re:I am amazed (Score 5, Interesting) 204

by Rei (#49782699) Attached to: A Text Message Can Crash An iPhone and Force It To Reboot

It's not that NSString itself is broken, it's that the fact that 99.99% of the time an NSString is one 16-bit code unit per glyph that apps using it rarely test the use case where it's two code units per glyph. So a person goes in and writes an app that inserts a new character at a particular byte offset and it works 99.99% of the time, but if it happens to get stuck in the middle of a multi-code-unit glyph, the program breaks.

The documentation is no help. First off, it lies:

Conceptually, a CFString object represents an array of Unicode characters (UniChar) along with a count of the number of characters. The [Unicode] standard defines a universal, uniform encoding scheme that is 16 bits per character.

As we all should know, that's simply not true. Unfortunately, a lot of people don't know better. Unicode is not a universal, uniform encoding scheme that is 16 bits per character. Even UTF-16 isn't that.

A string object presents itself as an array of Unicode characters . You can determine how many characters a string object contains with the length method and can retrieve a specific character with the characterAtIndex: method. These two “primitive” methods provide basic access to a string object.

characterAtIndex returns a 16-bit integer. So obviously it has no way to actually represent wider unicode characters. The length method is not the number of characters on the screen, but the number of code units, which is different, but highly misleading to programmers. They're, again, the same thing 99.99% of the time, but those rare cases where they're not generally slip through testing. And this is why UTF-16 is such a hazardous encoding to use.

Yes, NSString is old. And that's part of the problem. It was made at a time where many thought that unicode was only going to be 16 bits. It hasn't aged well. And it's caused a lot of bugs over its time. And now I'd bet that it or something similar has created a brand new iPhone-equivalent of Winnuke.

Programmers really need two types of strings, and only two, for the lion's share of tasks. One, binary strings, where a char is always 8 bytes and operations can be optimized to heck and back. And two, unicode strings, where a char always represents a whole unicode character that you would display, and the count of characters represents the count of display characters and so forth. None of this "99.99% of the time it's one thing, but every so often it's another...". That's asking for bugs.

Comment: Re:Time to buy some SpaceX stocks....oh wait... (Score 1) 59

by Rei (#49782511) Attached to: SpaceX Cleared For US Military Launches

Yep.. and the etymologies are totally unrelated. "Foul" is believed to possibly trace back back to an onomatopoeic word "*pu", meaning foul or rotten, being the sound a person makes when smelling such an object (*p underwent an early shift to f). "Fowl" and "fly" are both believed to trace back to "*pleuk", meaning to fly. The proto-germanic for bird, fuglaz, could be thought of as "that which flies". There are lots of cognates in modern languages - for example, in Icelandic, "u" often equates to an "ow" sound in English, and "gl" to a "wl" sound (aka, closer to Old English than modern). So the Icelandic "fugl" (bird) equates "fugel" in Old English and "fowl" in modern English. Other examples are ugl(a) -> owl, hund(ur) -> hound, turn -> tower, bund(inn) -> bound, and even sund->sound (in both cases, in the context of "a large body of water connected to the ocean", like "Puget Sound").


Comment: Re:Hobbit (Score 1) 258

by Rei (#49782033) Attached to: How To Die On Mars

Oh wait someone invented a thing called a submarine and developed the means to heat, pressurize and provide oxygen and fresh water to people living inside of it.

And submarines are about as far from self-sufficient as possible, relying entirely on their shore support infrastructure to supply everything except oxygen and water. Every last part onboard the ship, every last meal they eat, comes from shore. You know, just like it will be with a Martian colony. Oh sure, fantasists in the early days of submarines dreamed of them being like underwater colonies and raising their own food and having their own internal industry to make all their replacement parts and so forth, just like people do today about Martian colonies. The reality turned out to be... well, less fantastical.

(I love how you can just gloss over something as complex as an O2-and-water-producing Mars-environment-operating nuclear reactor as if it's just some trivial thing to design, make, launch, and keep operating ;) )

Comment: Re:I am amazed (Score 3, Informative) 204

by Rei (#49781853) Attached to: A Text Message Can Crash An iPhone and Force It To Reboot

I'd be willing to bet that the unicode library they were using was UTF-16 . Either that or they were handling unicode in a straight binary string with something homebrewed. Both are horribly dangerous - the latter for obvious reasons, but the former in particular because it makes it easy to code something that "just works" for 99,99% of cases, but those rare 0,01% side cases involving 32-bit unicode characters slip through testing and come back and bite you down the road. It's amazing how many apps have incorrect behavior with 4-byte unicode characters, on a wide range of platforms.

Both should be considered bad practice and programming languages evolved to standardize on UTF-8 for any string format that is to handle unicode. C++ for example needs to introduce something along the lines of "std::ustring" that makes unicode string ops "just work" with a UTF-8 backend, at the cost of some memory and performance vs. std::string, which should be seen as exclusively for ascii and binary string operations. std::wstring should be obsoleted.

Comment: Re:Hobbit (Score 0) 258

by Rei (#49781503) Attached to: How To Die On Mars

Let go of your anger, young padawan.

Nowhere did I say that it exists today. I didn't even say it'd be the best option - my post was about how even that "simpler" approach is still incredibly expensive and complex.

Please aim your rage in the correct direction.

(and FYI, even NASA uses the word "hab" - for example, their X-Hab competition.)

Comment: Re:Terraforming potential? (Score 3, Interesting) 258

by Rei (#49781309) Attached to: How To Die On Mars

My favorite approach is to build floating solar towers on Venus or the gas giants - big chunks of greenhouse material shaped like an inverted funnel reaching out into space. Unable to radiate its IR radiation back to space, the air under the funnel would become hotter than the surrounding atmosphere and rise (imparting lift to the funnel without even requiring a lifting gas). Due to the size, drag against the funnel surface would be irrelevantly small. As the funnel narrows, the gas velocity would increase - with a large enough funnel, to well over escape velocity. The funnel could be moved and aimed to some degree by directing part of the flow out through adjustable side jets. If the funnel was shaped so as to cause the gases to spiral and then flare out at the end, you could centrifugally sort the gases out by atomic mass, and thus for example rob light gases (such as water and nitrogen) of escape velocity while allowing heavy gases like CO2 the energy to escape.

Venus could send CO2 on a Mars intercept trajectory to raise its temperature and pressure. Jupiter could send hydrogen on Venus and Mars intercept trajectories, for Bosch water generation. Large moons and dwarf planets could be similarly seeded.

Of course, the obvious question: will this, or any other form of terraforming begin any time in the next many-hundred years?


Comment: Re:Radiation not a problem, an opportunity (Score 1) 258

by Rei (#49781239) Attached to: How To Die On Mars

The sad fact is, the first colonies will probably be build right out in the open on flat land with nothing around for dozens of kilometers, because it's safer to land there. Which is why we haven't landed any Mars probes in deep canyons or the like, despite all of the interesting geological formations that would be exposed on the walls.

Comment: Re:Hobbit (Score 3, Informative) 258

by Rei (#49781201) Attached to: How To Die On Mars

I love how these things are all "you simply have to do..." Like one goes out and collects the atmosphere with a butterfly net and splits it with a butcher's knife. Or like just goes and "gets a smelter and a foundry going".

Do these people have any clue how complex these sorts of industrial systems are? They have hundreds of thousands of components, all of which can break, and some of which are massive. The more you scale it down, the less efficient it becomes. And systems engineered on Earth don't just magically work on Mars too. You can't just dump heat into a river or the air, your gravity is significantly lower, and you've got electrostatic dust that clings to everything. And everyone output feedstock you want requires half a dozen or so input feedstocks, not counting all of the parts that can break - and they will break. And not all of these feedstocks can be gotten from the same location.

Let's just pick one little part of what you just wrote. "pass the CO over iron oxide dust" (we'll ignore everything leading up to getting and transporting that CO2). First off, if you literally do just that, you'll get nothing. The reaction needs to be done *hot*. And it can't be just "passing it over", it has to be thoroughly mixed. But then you get ready-to-use steel right? Wrong. Because you don't have "iron oxide dust". First off, you don't have any fine "dust" in mineable quanties, the blowing surface dust is spread over overthing, not accumulated in big pits ready for you to dig up.You at best have sand; at worst, solid rock. Most sands are not going to made of a majority iron oxide (if they have any sizeable quantities at all). Iron ore deposits are places where iron has been *concentrated* by geological processes, it doesn't make up the majority of basalts. And even cementations of iron-rich clay concentrates aren't 100% iron oxide. Whatever you mine (which means mining equipment, which means big, expensive, complex devices), you need to break it up, which means rock crushers, (which mean big, expensive, high wear devices), transport (haulers - more expensive devices), etc. At the mill it's going to go through a range of hoppers, conveyors, etc, all of which will wear and break. In addition to your ore and CO, you need a wide range of fluxing agents to separate out the stuff you don't want and to produce a usable product. The most critical of your fluxing agents is limestone, which on Earth mainly comes from deposits of marine microorganisms. Fat lot of luck finding that on Mars. So you need to mine less common calcium carbonate sources like travertine. More mining equipment. Hey, do you expect to find your travertine ten feet from your iron ore? Yeah, best of luck finding that, you've got to drive! Just hope you don't have to drive hundreds of kilometers, eh? Of course that's just one of a variety of fluxing agents you'll be wanting to add, there are many, for varying purposes. Anyway, once you've got your big molten mess (consuming ridiculous amounts of energy, orders of magnitude more than we've ever fielded offworld), you need to do something with it as you stream it out. Okay, then of course you have your slag skimmers. Hey, how long do you think that parts dripped in a stream of molten iron last? And you need to do something with your slag, so get your equipment to haul it away (after you've cooled it) ready as well. Speaking of cooling, normally we'd use water for that and just let it boil off for cooling, but on Mars it's a precious commodity, so go add more complexity for recapture and cooling! So now we've got a stream of mostly pure steel, but we're not even CLOSE to having usable parts.... (I'll stop here, as I don't want to spend all day on this).

I get it, you have a basic understanding of the chemical formulas for making a couple products. Well, here in the real world, a simple chemical formula is not enough. Real world processes are far more expensive and complex. They don't just pop together by waving a magic wand where you say, "you just do X and Y, and poof you have a habitat!"

In the real world, we're not even 1% of the way to the point where we could set up a working steel mill on Mars. Not. Even. Close.

Humans living on Mars can't just "bootstrap" themselves like some sort of colonist stepping off of the Mayflower. They're entirely dependent on modern technology just to live. Well, unfortunately, modern technology is produced by extremely complicated global supply/dependency chains. You can't just chisel a CO2 scrubber out of a chunk of granite.

Comment: Re:Hobbit (Score 0) 258

by Rei (#49781079) Attached to: How To Die On Mars

Indeed, it's far easier to build a hab on Earth that you know will work and launch it. We're about as close to being able to build complex structures on Mars out of local materials as we are to being able to send a probe to alpha centauri: vague, general ideas with little real-world engineering and no practical experience.

Even the simplest "local materials" concept - building a hab on Earth with the structural strength to bear a thick layer of regolith, launching it, then dumping the regolith on top - requires engineering, launching and landing a "martian excavator", which would be a multi-billion dollar program. Certainly more expensive than say the Curiosity rover. I'd wager in the 5-10 billion range, after all is said and done (not counting the hab itself).

Or were they picturing people spending half a year outside in space suits working with picks and shovels and burning the caloric equivalent of many tonnes of food and other consumables and wearing through their space suits, all while being exposed to a high radiation flux?

The solution of this problem is trivial and is left as an exercise for the reader.