Why Sex? Biologists Find New Explanations - <AUTHOR> https://www.quantamagazine.org/why-sex-biologists-find-new-explanations-20200423/ <comment><USER3> The article really highlights that there's likely not one single explanation for sex - increasing diversity, decreasing diversity through gene repairs. Same-sex behaviors potentially being something not just even worth being selected against, highlighting the "good enough" nature of natural selection where not everything needs a reason. A good read on the complexity behind explaining phenomena with natural selection - billions of years or random chance + selection pressures has no requirement to result in clean, neat, and easy explanations for complex phenomena.

</comment><comment><USER4> I like how the article starts but I think it got lost a bit in hypothetical and anecdotes towards the end. Not holding it against the article though. As the article rightly points out, anything involving sex drags in biases as well.

I wonder how convergent evolution [0] fits into this? Maybe one form of reproduction leaves a large niche open for another type of reproduction to fill in.

Could it be that there was sexual reproduction first and asexual reproduction came later? We always assume the other way around. But maybe conditions were initially always stressful and only after conditions improved (I am thinking of conditions on Earth when these single cells organisms were evolving) did asexual reproduction start.

Last question, is meiosis and mitosis the only two way to reproduce? I had never really though about it until now.

[0] [https://en.wikipedia.org/wiki/Convergent_evolution](https://en.wikipedia.org/wiki/Convergent_evolution)

<comment><USER5> > Could it be that there was sexual reproduction first and asexual > reproduction came later?

Unlikely. You can't mate with copies of yourself unless there are already multiple copies of yourself floating around.

I like the story they present in the article. For simple organisms, it's fairly inexpensive to let defective individuals die off. As organisms get more complex, it starts to become more costly to allow defects in the genetic code to persist. Then it becomes worthwhile to perform "integrity checks" to correct errors in the data as it's being copied.

If a population of organism is put into an environment conducive to a lot of data corruption, then the ones who are want to perform these checks are the ones who end up surviving.

You could imagine that when higher complexity organisms are exposed to high- stress environments, it would help establish their population's ability to sexually reproduce. The ones who aren't doing it will tend to die off.

Then as the complexity increases further, the genetic complexity itself can be a permanent endogenous source of high stress. The organism then loses the ability to produce asexually because it's no longer needed.

Sexual reproduction promotes genetic complexity because it _allows_ us to survive while having more complicated genes. The recombination and mixing-and- matching only helps further the process along.

<comment><USER6> > Unlikely. You can't mate with copies of yourself unless there are already > multiple copies of yourself floating around.

Asexual reproduction doesn't require copies of "yourself". Plants can self fertilize and they are some of the most complex organisms to do it and you probably know this.

Can you rephrase that statement?

<comment><USER7> I /think/ they're saying that if sexual reproduction came first, you have a pretty basic problem: where's the second individual that the first sexually reproducing entity mates with?

<comment><USER6> Sexual reproduction can involve an asexual (which would be hemaphroditic) partner.

<comment><USER8> Why would you evolve the necessary organs to sexually reproduce with your self, with no one else around?

<comment><USER6> Often times sexual organs are multipurpose. It's likely a genetic mutation that allows for sexual reproduction, as with all structural advances. I might end up with a functioning probiscus near my gamete sack and if I end up bumping into my fellow eukaryotes, that's just how it goes.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> I'm not a biologist, but my understanding is that bacteria are much more likely to undergo horizontal gene transfer when undress stress. (Particularly troubling these days for antibiotic resistance.)

Seems like it would be a natural next step for single cell eukaryotes to have a similar mechanism to fix bad DNA, especially given the much longer genomes of eukaryotes, which the article discusses without mentioning bacteria.

By the time you get to multicellular creatures, this gets even more important and leads to males, who pass on only nuclear DNA, and females, who pass one nuclear and mitochondrial DNA.

<comment><USER10> Eukaryotes don't really evolve very much on the protein level - <USER2> complexity allows them to mostly evolve on the regulatory level (while bacteria often still are on the protein level).

Practically, this means that getting proteins from elsewhere isn't that selected for, while better regulation is. It's a complicated subject, but that's partially why there is so much "junk" dna in multicellular eukaryotes (single cellular like yeast are still pretty efficient)

<comment><USER9> My primitive understanding is that the bottleneck for bacterial reproduction is DNA replication, so there's a huge incentive to shed unneeded DNA, especially with mechanisms to get genes back via HGT. Am I right in thinking that the more efficient chromosome replication in eukaryotes doesn't penalize junk dna the same way, so it can just stick around?

</comment></comment></comment><comment><USER11> >> It increases genetic diversity in the pool of offspring. That diversity could then raise the fitness of future generations by making them stronger, faster, more resistant to parasites or otherwise more adaptable

Probably off topic, but I didn't know this was not a commonly accepted explanation. When I went to school (maybe middle school) in Vietnam in the early 90s, I was taught this. My biology teacher said this explains why marriage between closed relatives is not recommended because it leads to less diversity, and a bad gene would have chance to manifest.

<comment><USER12> Reproduction between close relatives isn't recommended because of the chance of offspring getting multiple recessive genes. That's orthogonal to the genetic diversity benefits from sexual reproduction. (In asexual reproduction, you don't have to worry about offspring inheriting multiple recessive genes.)

</comment></comment><comment><USER10> C. elegans is a good example of this. They have males and hermaphordites, but interestingly enough, the ratios of those two from lab and wild strains differed by quite a bit.

Turns out, in a stable lab environment, hermaphrodites were more efficient. However, once you started changing the environment populations with males could always adapt faster.

</comment><comment><USER13> > Nedelcu and her colleagues found that if you alleviate their physiological > stress — by providing them with a boost of antioxidants — they don't have > sex.

Well that explains a lot.

In all seriousness, I find that the idea in the article raises another question. If mating can increase individual fitness by sharing something, how is that explanation of sex different than being a member of a social group? Social species take the idea even further. Is sex simply the building block for social behaviors, and more sophisticated adaptations beyond sex are now available?

</comment><comment><USER14> This is pretty amazing - the fact that it can be immunity-boosting and slow age-related brain function. This is an area that needs to be explored further.

</comment><comment><USER15> These comments make me sad. I thought the HN community was better than this.

<comment><USER16> HN is notoriously bad at anything related to biology, evolution, and genetics. It's a combination of this ([https://xkcd.com/1831/](https://xkcd.com/1831/)) and this ([https://xkcd.com/793/](https://xkcd.com/793/)) comic. People there are also fond of finding a bunch of psychology papers that confirms existing biases.

There's also a misleading phenomenon where many of the fields whose "experts" chime in on these questions are called _evolutionary psychology_ or _behavioral genetics_ , making you think that these fields are related to biology and enjoy the same methodological standards of rigor as well as the same consensus from biologists. In reality these fields approach the questions from _psychology_ , and that one field is known for having a bunch of practices, biases and motivated reasoning that'd make many a biologist reluctant to touch it with a ten feet pole.

It's very elegant to see the sleight of hand in action: someone makes a claim about sex, arguing it's a biological reality, and when challenged backs up their claim with a psych paper from a field that disguises as one from biologists and pretends that his claim enjoys a widespread consensus among actual scientists (as opposed to just psychologists). Hence, the claim isn't ideologically motivated, _it 's just science_. Beautiful

<comment><USER17> There is definitely a trend of tech bros 1831'ing biology. While it is very annoying, I do think we should try to be more charitable in how we respond to them. It's ultimately a good thing that other people are interested in what we are doing.

<comment><USER3> I agree. Maybe I've just gotten jaded from the usual responses I get when trying to talk about biology with tech people (where they just assume it's over their head and want painful analogies to "simplify" it for them) that it's a bit of a breath of fresh air to see people try to engage with it. Even if they're wrong, well, so was I about basically everything when I took bio 101. It's a way to have those assumptions challenged and learn more. If they arent open to it and are operating in bad faith, c'est la vie, peoplle gonna be like that, but if people are approaching fields they dont know in good faith, then it's a first step.

<comment><USER16> I mean, people being wrong about biology is ok, the issue is when the discussion devolves into some of the touchier subjects and suddenly everyone larps as a scientist. "Do you have citations for that?" "There is a widely accepted consensus that..." "It's not just my opinion, it's science."

This is very strange because in technology threads where actual experts chime in, no one acts like that. People share their experiences about using such- and-such stack, sometimes with very strongly worded and passionate opinions but never with the pretense of scolarship or "quest for truth". Imagine how bewildering it'd be if people cited publications from "The Journal of Serverless Stacks" (IF=1.4) in lieu of experience sharing.

<comment><USER17> Yes. It takes a lot of time for concepts in biology to sink in and become interconnected mentally. People who are not in the field tend to think about concepts in isolation. Tech people also tend to think more mechanistically/rigidly because they are used to things obeying rules/code.

I agree that it can be annoying when armchair biologists make hollow arguments. But I also do think that we do share some responsibility to not turn people off completely or make them dig in harder in their positions.

</comment></comment></comment></comment></comment></comment><comment><USER18> If same sex attraction exists biologically, not as a social construct than it's possible those genes are select as side effect of smth else that comes with it. For example, my gay friend is godlike attractive and one girl literally begged him to marry him in really sick ways and he's ended up marrying her to make his life easier and also because she was completely attached and attracted to us just because of how he looked. Few months ago, they had a kid. Has there been any studies which can shed some light on this, if gay people are more attractive on average or more intelligent?

<comment><USER19> This is really more of a silly and non-scientific anecdotal pursuit of probably very little value. That being said, I have heard many women say, "Oh, he's way too hot to be straight". So I think there is at least some kind of meme-level support for the idea.

I have also met lots of very wonderful, very gay, quite-less-than- stereotypically-attractive people who could warm almost any soul with the way their smiles lit up their faces. For whatever any of that is worth.

</comment></comment><comment><USER20>
        Sex is good for your heart
        A hug keeps tension away
        Sex can be a stress buster
        Weekly sex might help fend off illness
        People who have sex feel healthier
        Loving support reduces risk of angina and ulcer

[https://www.nhs.uk/live-well/sexual-health/benefits-of- love-...](https://www.nhs.uk/live-well/sexual-health/benefits-of-love-sex- relationships/)

<comment><USER21> That quoting style is for code. It is difficult to read on mobile.

</comment></comment><comment> globular-toast The author fails to mention what is probably the largest downside to sex: an entire half of the population is completely unable to reproduce. The question "why do we have sex?" could be restated as "why do males exist?"

Unfortunately the answers to that question trouble some people so it's difficult to establish the truth. The simple answer comes down to the fact that a species has to find a balance between maintaining genetic diversity, which is important for resilience and adaptation, and maintaining a strong breeding population. Males are there to allow some really wacky variations to exist that just wouldn't be viable in females. It only takes a tiny handful of males to take part in reproduction, but it takes essentially all females (especially considering they are only 50% of the population to begin with).

<comment><USER22> I feel you didn't read the entire article. They study single gender and asexual species for exactly that assumption you made</comment></comment>


CREDO and Cloudflare NSL finally public - <AUTHOR> https://www.eff.org/document/notice-regarding-public-identification-nsl-recipients <comment><AUTHOR> See also:

[https://www.eff.org/press/releases/hearing-wednesday- nationa...](https://www.eff.org/press/releases/hearing-wednesday-national- security-letters-violate-first-amendment)</comment>


The original sources of MS-DOS 1.25 and 2.0 - <AUTHOR> https://github.com/Microsoft/MS-DOS <comment><USER2> The README for 2.0 contains an interesting apology to OEMs:

> The user manual contains some significant errors. Most of these are due to > last minute changes to achieve a greater degree of compatibility with IBM's > implementation of MS-DOS (PC DOS). This includes the use of "\" instead of > "/" as the path separator, and "/" instead of "-" as the switch character. > For transporting of batch files across machines, Microsoft encourages the > use of "\" and "/" respectively in the U.S. market. (See DOSPATCH.TXT for > how you can overide this. The user guide explains how the end-user can > override this in CONFIG.SYS). Both the printer echo keys and insert mode > keys have now been made to toggle. The default prompt (this may also be > changed by the user with the PROMPT command) has been changed from "A:" to > "A>". We apologize for any inconveniences these changes may have caused your > technical publications staff.

So MS-DOS almost had Unix-style file separators and argument switches!

<comment><USER3> There's even an (undocumented?) int 21h function to get the switch character, if I remember correctly.

</comment></comment><comment><USER4> Microsoft, please release QuickBasic to the world

<comment><USER5> That'd be really cool. Upgrades to QuickBasic would come out pretty fast I'll bet.

In case it doesn't happen, I have to say FreeBASIC is pretty nice...I was happy with how easy it was to make a little simulation game and compile it. Also I haven't tried it out for very long, but Gambas seems pretty neat and does some kind of web app creation thing now too.

<comment><USER6> FreeBASIC is pretty cool, qb64 isn't bad either -and might be a shade closer to the original quickbasic? (I'm not sure as I don't know enough QB arcana to test).

[https://www.qb64.org/](https://www.qb64.org/)

<comment><USER7> There's also a guy from Finland that wrote his own QuickBasic compiler and is doing some pretty cool videos on YouTube under the handle Bisqwit, with some of the videos talking about things he wrote or prototyped using QuickBasic.

[https://bisqwit.iki.fi/source/qbc.html](https://bisqwit.iki.fi/source/qbc.html)

[https://youtu.be/TUa5HJUebEA](https://youtu.be/TUa5HJUebEA)

[https://youtu.be/8x9Ya4izFaE](https://youtu.be/8x9Ya4izFaE)

[https://youtu.be/ZwcFV3KrnQA](https://youtu.be/ZwcFV3KrnQA)

[https://youtu.be/5Da6ZyQJjE0](https://youtu.be/5Da6ZyQJjE0)

[https://www.youtube.com/playlist?list=PL41889A5E9CBD68CF](https://www.youtube.com/playlist?list=PL41889A5E9CBD68CF)

</comment></comment></comment></comment><comment><USER8> It's MIT licensed too!

[https://github.com/Microsoft/MS- DOS/blob/master/LICENSE.md](https://github.com/Microsoft/MS- DOS/blob/master/LICENSE.md)

I was kind of surprised about that!

<comment><USER6> It is pretty suprising, all things being equal. I'd suggest keeping a close eye on this issue: [https://github.com/Microsoft/MS- DOS/issues/2](https://github.com/Microsoft/MS-DOS/issues/2)

</comment></comment><comment><USER9> It looks like they set the commit dates to match the release dates: [https://github.com/Microsoft/MS- DOS/commits/master](https://github.com/Microsoft/MS-DOS/commits/master)

<comment><USER3> Interesting. More explanation: [https://hackernoon.com/how-to-hack-github- kind-of-12b08a46d0...](https://hackernoon.com/how-to-hack-github-kind- of-12b08a46d02e?gi=6c1136aeb6d5)

It looks like git uses the standard Unix epoch for its internal timestamp format, and not e.g. a format unable to represent dates before its creation, but that still means it can't really handle pre-Unix dates:

[https://stackoverflow.com/questions/21787872/is-it- possible-...](https://stackoverflow.com/questions/21787872/is-it-possible-to- set-a-git-commit-to-have-a-timestamp-prior-to-1970)

Edit: downvoters, care to explain what I'm wrong about?

<comment><USER10> I didn't downvote you, but what you say doesn't make much sense.

git is distributed and works offline, this means that nothing could prevent you from making commit with a "fake" date, you always can change time on your machine. So there's nothing really hackish in that, and that has nothing to do with format in which time stored in git internally. And you can have legitimate uses for "faking" commit date. I'd say repository above is an example of such a legitimate use.

<comment><USER11> The format Git uses determines the range of dates it can store. If it uses the normal Unix epoch system 0 means 1-1-1970 so you can't represent dates before that.

<comment><USER12> I thought unix time was a signed integer, so you can go negative all the way back to 1901:

      $ perl -e 'print gmtime(-2147483648).""'
      Fri Dec 13 20:45:52 1901

<comment><USER13> It's more a formality I think. Since recording of atomic time started in the early 1970s it's accepted that an atomic second is an actual second back as far as 1970. No assertion of accuracy is made beyond that. Of course otherwise you can negative offset as much as you like beyond that but because of physics and stuff it can't be treated with the same level of certainty or something.

</comment></comment></comment></comment></comment></comment><comment><USER14> Don't overlook the email by v1.25 (and v2.0?) author Tim Paterson:

[https://github.com/Microsoft/MS- DOS/blob/master/v1.25/Tim_Pa...](https://github.com/Microsoft/MS- DOS/blob/master/v1.25/Tim_Paterson_16Dec2013_email.txt)

... or the version history in the v2.0 MSHEAD.ASM file:

[https://github.com/Microsoft/MS- DOS/blob/master/v2.0/source/...](https://github.com/Microsoft/MS- DOS/blob/master/v2.0/source/MSHEAD.ASM)

EDIT: Found better version history

<comment><USER15> Apparently, Tim Paterson worked on MS-DOS up to v1.25 (completed March, 1982).

Source: [http://www.patersontech.com/dos/origins-of- dos.aspx](http://www.patersontech.com/dos/origins-of-dos.aspx)

</comment></comment><comment><USER16> Shocking to think this is where PCs got started. On my first encounters with MS-DOS I was underwhelmed, the Acorn BBC Micro came with better software and it was all in ROM. I could not believe that this was serious software.

<comment><USER13> If Cringley is to be believed, the original incarnation was called QDOS, Quick & Dirty DOS done up by some guy in the valley that didn't want to pay for CP/M. Gates licensed it outright for $50k cause he needed something to go to IBM with ...

</comment></comment><comment><USER17> Full assembly. Was this the case all the way up to 6.22 ?

<comment><USER18> I bet at least until the whole .com .exe stuff was sorted out. After .exe was created they finally got more than a single segment in a binary, so they probably we're using C by then for some things at least. I imagine all the .com files were ask even at 6.22 though, because of the 64kb limit of them

<comment><USER19> I'm pretty sure .EXE was supported from the first release.

<comment><USER18> Looks like you're probably right, [https://en.wikipedia.org/wiki/DOS_MZ_executable](https://en.wikipedia.org/wiki/DOS_MZ_executable)

There's at least support in 1.0, but the api changed in 2.0. Though I believe the few bits of software I've seen from that era, there were fewer .exes (I suspect for the same language distinction I postulated earlier).

</comment></comment></comment></comment><comment><USER20> Interesting, all sources of MS-DOS 1.25 is just 12K lines of code, including comments.

Today, this seems like a pretty small project, and most commercial apps are significantly bigger.

<comment><USER21> My beta web app probably has more source code than that..

That has me thinking though. I have always wanted to try OS dev but all the stuff I have read says it will take years to get a system that can print hello world but surely it can't take that long to write 12k lines.

<comment><USER22> An "OS" that just boots and prints hello world would be on the order of tens to hundreds of lines depending how fancy you want to be and how much you want to lean on legacy bios support still being a thing.

There are a lot of tutorials out there that'll walk you through quite a bit more than that in a weekend.

</comment></comment></comment><comment><USER23> Well it has a place, I suppose. For me: I wasted a lot of time and effort farting around with config.sys and autoexec.bat getting drivers to load etc.

Could I sue for lifetime wasted?

<comment><USER24> Messing with SET BLASTER (port 220 IRQ 5 DMA 1) to get sound to work in "Rise of the Triad" was probably the defining moment of my early PC misadventures. That and making a boot disk for Dark Forces, and labelling it "boot dick" by accident (thanks for kicking me in the nuts, mum)

<comment><USER25> Ludicrous gibs!

<comment><USER26> Dog mode

</comment></comment></comment></comment><comment><USER27> I'd like to see tiny 80x86 boards (about the size of the Pi Zero) that you could boot DOS on, with full access to GPIO/SERIAL/PARALLEL etc. I know arduino exists in this space, but for DOS lovers, little hobbyist boards like this would be great, and ideal for bootstrapping single purpose apps written in C.

<comment><USER28> There is the 86Duino borad, based on Vortex86EX SoC.

<comment><USER27> oooh those look interesting. Thanks!

</comment></comment></comment><comment><USER29> Wonder if and when we will get closer to seeing existing windows apps open sourced. It looks like they may be doing clean up of old codebases to release

<comment><USER3> ...or perhaps even Windows itself?

I'm a bit ambivalent about this (and all the "open sourcing" MS has been doing recently.) On the one hand, it's great to see source code. On the other hand, everything can be reverse-engineered anyway and it feels like this is a sign of a "shedding" (for lack of better term) MS --- one that doesn't see software as having intrinsic commercial value anymore, but instead is turning to services like Azure and stuffing telemetry in everything to eventually turn into another adware company for profit, while at the same time hiding that behind the "but we're open-source too" marketing.

<comment><USER30> I see Windows Kernel as a possible candidate. Or At least some sort of strategy based around having Open Kernel for Servers / Mobile, and expand .Net Toolset in Server Space as well as Gaming in Mobile.

<comment><USER6> I'd be pretty surprised. To be sure that there's no 3rd party crap in it they'd probably need to re-write it the way they rewrote their C# compiler which would be both pointless and difficult to justify (to put it mildly) from a business perspective.

</comment></comment></comment></comment><comment><USER31> Does anyone remember a particular DOS programming guide that dove deep into the internals, distributed as textfiles written by a single author on contract from (I believe) the US Navy?

</comment><comment><USER32> Why only 2.0, not 6.22?

<comment><USER33> I'd prefer 3.0 - because it was the baseline to DOS applications, it seems. EverythingTM runs on DOS 3.0.

(I'm using MS-DOS 5.0 on my 386, though.)

<comment><USER34> I'm with you there -- IIRC, the 3.x series was all about hard disks. I'd lean toward 3.31, though, personally as the "Everything(TM)" item since (I think) that was the version that shipped with FAT16 (had to hit up Wikipedia and this was the version that supported partitions over 32MB). I remember, as a kid, that we had to have 2 partitions on our drive because of the version of DOS not supporting partitions greater than that size and that this was a problem for us for a while (how long, not sure, I was young, could have been years but was probably months), so it seemed like it was a pain point that was overdue for where software was heading, even then[0].

It was also when I started to feel the age of the 8088 I was running it on and was the first version of an OS that I wrote something 'difficult' that I thought was 'really cool' using assembler. I was _very_ young, so _cool had a wildly different definition than it has today. What I wrote was a TSR (terminate and stay ready -- something that was almost, but not quite, entirely unlike a background app) that made a ball-like character bounce around the screen after a random number of minutes,_ really fast* for a second (just long enough for you to _maybe_ question what you saw)[1].

It was a horrible pain of C, some assembler, and -- of course the mess of pirated software that claimed to be something of a compiler and a development environment but I found most of them were designed to simply return indecipherable errors (or -- error codes -- sometimes literally just exit codes), it took me weeks, but it's the reason I stopped begging for a C64, Mac, Amiga or any of the other platforms that had far more fun things to do with them at the time.

[0] Some never forget being told '640K is more than you'll ever need' (yes, partial or misquote, but it's exactly what the guy who sold us that first 8088 told us) -- I'll never forget the _incredible controversy_ that happened when OS/2 2.1 came out and it was something like ~30MB installed! We had a _FULL_ height 350MB SCSI drive at the time (a cool $1,600 controller, cable, terminators, drive and all), so I was a little spoiled. I was still _always_ almost full _all the time_ but, hey, what can you do.

[1] I got the idea from a rumor I had heard about a software virus of the time that did something similar. Mine didn't spread -- it had to be edlin'ed into the AUTOEXEC.BAT. I named it something non-obvious since my dad was proficient enough to go snooping around (it may have even been something in the more l33t CONFIG.SYS).

<comment><USER35> It's been awhile but didn't TSR stand for _Terminate and Stay Resident_ rather than _Terminate and Stay Ready_?

Your comment brought back some great memories, thanks :)

<comment><USER34> "Resident" is correct, and I am not :).

Honestly, I think I've always referred to it as Terminate and Stay Ready; probably something I read in one of those old books that used to adorn the bookshelf of my parent's office.

Writing it brought back a lot of memories, as well - glad someone enjoyed it! It's amazing to think that we used to write programs in ways other than "I don't know how to do this" (performs google search) "I know how to do this now", but rather had to pour through books, forums (on dial-up BBSes and what qualified as equivalents in the early Internet days) and acquiring that little nugget of knowledge felt like it had so much more _value_ , even though the reality is that the value was the same, it just took a lot more _effort_.

</comment></comment></comment></comment></comment><comment><USER36> There is unlawful leaked MS-DOS 6.0 source code too.

</comment><comment><USER37> Does anyone remember ANSI bombs? One tricked 12 year old me and formatted my hard drive

<comment><USER38> Ah yes... Mapping space bar to "^Mformat c: /q /y^M". Those were the days...

</comment></comment><comment><USER39> Could you run this with any current virtual machine?

<comment><USER6> There's 86box, based on PCEM; [https://github.com/86Box/86Box/](https://github.com/86Box/86Box/) ...it has support for several PC/XT/AT models.

If you can get it onto a floppy image, I'm sure it would run it just fine.

<comment><USER27> > _If you can get it onto a floppy image, I 'm sure it would run it just > fine._

There's a bit of a catch-22 there. Technically, you need to be running DOS X.X to create a bootable floppy (real or image) of DOS X.X, as to make a disk bootable you have to type 'SYS A:' from the running DOS to write bootblock onto the floppy and copy over the current IO.SYS MSDOS.SYS and COMMAND.COM.

So, on say.. a modern machine, with no extra third party tools to create the empty bootable floppy image, you'd be hard pushed to do this, as the files in the Repo are just the files and not a floppy image.

<comment><USER40> It is even more complex than that. This source code (and the compiled binaries) does not contain the PC-specific DOS code, which were supposed to be written by the OEM (in PC case that probably means IBM). In order to build bootable DOS out of this you have to link SYSINIT.OBJ and SYSIMES.OBJ and your hardware interface code into binary (on PC the result of that is IBMIO.COM for PC-DOS and IO.SYS for MS-DOS for PC) and if you want to boot from floppy you also have to provide some kind of bootloader.

</comment></comment></comment></comment><comment><USER41> Universities and industry groups, esp. security folks, get full source copies of Windows and more... with big bear-trap, PMITAP NDA's. I have/had a NT5/Win2k source CD somewhere in my empire of junk.

</comment><comment><USER42> I have tons of nostalgia for DOS having first used it in 1992. However, as soon as I used Linux in 1994, it was instantly apparent how backward and hard to use DOS was compared to Unix-like systems. With hardware like Raspberry Pis, not sure why anyone would want to use DOS on x86 for embedded purposes today.</comment>


Could genetic algorithms help prevent future housing crises? - <AUTHOR> http://blog.wolfram.com/2009/08/24/could-mathematica-help-prevent-future-housing-crises/ <comment><USER2> What caused the housing crises was unparalleled greed, govt. free-market-is- everything ideology and political correctness.

The USA is going to be hammered for this for a long long time.</comment>


A pull request to remove credit for my own open source project - <AUTHOR> https://github.com/etewiah/property_web_builder/pull/74 <comment><AUTHOR> I got this pull request today and it really makes me wonder if U shouldn't just close down my open source project. For me its the equivalent of someone sticking a finger up at me after eating the free lunch I just gave them.....

<comment><USER2> I wonder if maybe this person just doesn't understand Git / GitHub and was just trying to remove the credit from their own deployment.

Still a dick move, but maybe not as bad as what it seems.

<comment><AUTHOR> Yeah, I hope its something like that because if he actually thinks the commit is a good idea then he really is taking the piss.</comment></comment></comment>


Five Buck Fatigue - <AUTHOR> https://underjord.io/five-buck-fatigue.html <comment><USER2> I'm very much in a "I don't care what it is, I need fewer subscriptions, not more." mode too.</comment>


Hiring Employee #1 - <AUTHOR> http://blog.asmartbear.com/startup-hiring-advice.html <comment><USER2> I know a decent number of people I would want to be my first hire, and I think they might be interested. The biggest mental hurdle for me is "How can I ensure that I can pay them every month?"

<comment><USER3> You simply need to set expectations according to the truth. If you have 6 months of their salary banked, tell them that. If you're uncertain you can pay them, tell them and hire people who are OK with that.

<comment><USER2> Haha yeah, that's probably the REAL hurdle. Banking 6 months salary as a solo consultant. Good excuse as any other to raise rates again :)

</comment></comment></comment><comment><USER4> My employee #1 was not the first or the second person I hired. I tried and failed a lot in finding the right person. I even made the biggest mistake of all of using a recruiter. What eventually worked for my company was someone straight out of college, with no previous experience, but that is smart and has the right small company culture.

This whole process was hard, but I learned a lot.I now have developers solve a small problem by writing code in a technology/language they don't master. If they know python, I give them a laptop with Visual Studio and tell them to solve the problem using .NET and C#, if they know Java and come from enterprise consulting, I give them a terminal window and python, if windows then linux, and so on. This gets them off their comfort zone and I can look for what I'm really looking: problem solving skills and being able to learn and pick up new things fast.

Another important thing is to be completely open about where your company stands: does it have money in the bank, does it have paying and happy customers, etc. I found that this scares away a lot of candidates, especially the ones coming from big companies, wanting to change their lives by working in a small company.

<comment><USER5> It's not just important that they pick up things fast. If you ask to do some task in Python, that would be done much faster in (say) C#, they should be able to point this out, instead of just following the recipe you gave them. Good judgment is important.

<comment><USER6> That is a hard judgment to make, unless you know both Python and C#. Any of the candidates are going to be able to do the task far quicker in the technology they already know.

</comment></comment></comment><comment><USER7> I usually use the criteria of "What does this person do in their spare time?" There should be two things that they should be doing:

1\. They should be coding all the time. Not just for their current job, but because they genuinely like it. They may not be able to write a red-black tree in your 5minute coding quiz, but if they are truly passionate about coding and technology they will bring a wealth of knowledge with them. More so, they will have lots of exposure to new technologies, ideas, and have good ties in the community.

2\. They should be passionate about the industry you are in. I would expect half of the Spotify team to be almost deaf by now, because they are listening to music all day long -- and loving it.

It's hard to find people that will fit both, but you should at least settle for the point 1. Especially now, with public code repositories like Github, it is easy to see the quality of code that most people can churn out and how passionate they are about engineering good solutions.

<comment><USER8> > They should be coding all the time

Seriously, this may make for great code-monkeys but very limited software developers. There are tons of things you can do to become a better developer that don't involve actual coding. Especially if your job is already mostly coding, for god's sake spend as much time as you can doing those other things.

I'm not interested in people who can write awesome code, but couldn't finish even a small development project unless somebody else holds their hand through every step of the way.

Totally agree with 2 though. Probably even more important than 1, because a mediocre programmer with a passion for the actual business can make a great product. An awesome programmer will just make great code. I prefer the former.

<comment><USER7> You're totally right. I think when I say "coding", I don't literally mean writing code. Coding requires different facets of creation: designing, testing, etc. I think another way to say point 1, is to say that the person should be passionate about technology, which I guess is kind of like point 2, but for tech.

And of course, you want someone with some breadth of experience and interests. I would venture that a well-rounded person has a lot more to offer just because he has a larger set of tools at her disposal that can be used to solve problems.

Finding that "special" someone is always such a challenge ;-)

</comment></comment></comment><comment><USER9> What do ppl think about the idea of hiring someone in their freshman/soph year in college, and grooming them, sort of like a "farm system" or minor leagues in baseball. The thinking is that the juniors/seniors probably have competitive internship offers already, and you're better off targeting people earlier. Sure they might be unreliable early on, but gradually they'll become loyal and great employees after 3-4 years.

Another option, though definitely not cheap is to find people that want to move to the USA, and give them a visa.

<comment><USER10> Like this idea and have tried it and continue to to do this at my startup. But for a startup, it can be challenging for a few reasons.

1\. We're already stretched thin so we generally need folks who can contribute quickly. If the person requires lots of oversight and guidance, that can take time which is already in short supply. That said, we've had some freshmen who put seniors and even experienced hires to shame. So this is clearly person- specific. If you're hungry, humble and happy and have some basic fundamentals down, we can usually make it work.

2\. We can train them up and then they go to big high paid job later. This is always a risk in any market, but an intern can learn a ton with us in a couple of years which makes them more marketable to the big boys. Of course, it is our responsibility to make them love us so much that they want to stay, but when leaving school with big student loans, parents/friends who might feel working with a known brand is better, it can be tough to turn down the big paycheck/brand name.

Despite the challenges, we continue to think the pros outweigh the cons and so will keep trying. We're probably a bit more selective than when we started, however, given some lessons we've learned along the way.

<comment><USER11> What are some of these lessons (if you don't mind sharing)?

</comment></comment></comment><comment><USER12> Not bad. I quite like the idea of screening applicants with essay questions however this brings two issues. First, I would be amazed if your response rate was as high as 10%, in fact I'd be shocked given the fact that the kind of people you are looking to hire probably aren't using Monster and craigslist in the first place to find work. Second, the point is almost counterintuitive. You said yourself that the best people are already in work and probably have a stable job. Most of those simply won't bother to jump through additional hoops when all they want is to speak to an actual human about the position.

Shameless Plug: I've written a pretty extensive post recently on making your start-up more appealing to potential hires which works nicely with your post: [http://voltsteve.blogspot.com/2011/10/why-should-i-join- your...](http://voltsteve.blogspot.com/2011/10/why-should-i-join-your-start- up.html)

</comment><comment><USER13> This seems fairly off. I think more likely is hiring someone you know or have heard of already, or has been referred to you, and the "interviews" wouldn't include essay questions, rather a series of drinks, coffees, meals to assess technical and personal fit. Employee #1's concern hopefully isn't ensuring that they get paid on time every month and will be willing to roll with the punches. That said paying someone late sucks.

<comment><USER3> You can't assess technical competence from coffees, only from writing code. You can't assess email communication skills from drinks, only from writing.

Like in the Matrix, you don't truly know someone until you fight them.

<comment><USER13> Certainly the right meetup over coffee would digress into laptops out battling over technical ideas and implementations or reading through some samples?

</comment></comment></comment><comment><USER14> Shouldn't it be "Hiring Employee #2" instead? When starting a business, you should always pay employee #1 (yourself) even if it is a small amount at first. Many businesses fail because the founders forgot this simple yet essential step.

<comment><USER15> Perhaps, but in every sense -- legally, tax-ably, and accounting-ly -- a founder is not an employee.

<comment><USER16> Depends on the business structure, right?

If it is a corporate form, then the first person you hire is likely to be either an employee if the founder is (in the sense of an officer) or not (in the sense of an officer).

</comment></comment></comment><comment><USER17> From the article:

       if during the interview she asks how often you do performance reviews,
       that means she doesn't understand the startup culture

This is really stupid. All bosses, from a two person shop to a twenty thousand person shop, should regularly be sitting down with their employees and communicating what that person has been doing well, not doing well, what the boss wants to change, etc. You don't have to be a hidebound corporation with 100k employees to benefit from being explicit about the manager communicating feedback and from setting aside time for this to explicitly happen. Not to mention that many founders are learning how to be a manager, and often are far from clear about their expectations. Making them explicit does nothing but help the relationship. See also Rands' opinion [1], [2]. Communication doesn't just happen; it's something that is made to happen.

Justintv had similar experiences about the benefits of being really clear what a manager wants [3]. Protip: employees don't read minds. He found that this was the typical project workflow:

       Vague problem definition: "Create an automated test suite for the website."

       Employee defines it in some way that we didn't actually have in mind: "Create
       an extensible, Selenium based framework for performing every action a user can
       on the site."

       Employee works on that for a while, sometimes months, without feedback: "I'm
       making great progress!"

       Manager checks on progress, has a "wtf" moment: "Wait, I just wanted something
       that pinged five URLs and checked for 500s."

       Massive micromanagement ensues: "OK, clearly you don't understand what we're
       doing; I'm going to have to take over."

       Massive employee disenchantment: "WTF just happened?"

[1] [http://www.randsinrepose.com/archives/2011/10/11/the_rands_t...](http://www.randsinrepose.com/archives/2011/10/11/the_rands_test.html)

[2] [http://www.randsinrepose.com/archives/2009/08/31/no_surprise...](http://www.randsinrepose.com/archives/2009/08/31/no_surprises.html)

[3] [http://www.businessinsider.com/three-signs-you-have-a- manage...](http://www.businessinsider.com/three-signs-you-have-a-management- problem-and-that-problem-might-be-you-2011-4?page=1)

<comment><USER18> Performance reviews aren't the same thing as feedback. Feedback and communication are essential; performance reviews are regimented checks that often completely fail to provide the needed feedback, because no one wants to appear to be doing a bad job when it comes time to talk salary.

For feedback to be effective is has to be mutual, constant, and constructive. Performance reviews are often none of these things.

<comment><USER19> _performance reviews are regimented checks that often completely fail to provide the needed feedback, because no one wants to appear to be doing a bad job when it comes time to talk salary._

There are enough companies decoupling performance and salary reviews (e.g. 6mos apart) that there are already well-established techniques for dealing with the problem you mention. Beyond that, my experience is that companies bad at communicating by means of performance reviews (i.e. they're late/irregular, or not substantive, or tied to salary) are bad at communicating in general, and inquiring about performance reviews can be seen as a leading indicator in an interview about how communicative about important stuff they are in general. Don't mistake loud offices/people with opinions about the business to be the same as managerial communication.</comment></comment></comment>


28 Startup Skills You Can't Live Without - <AUTHOR> http://blog.rockthepost.com/2012/10/28-startup-skills-you-cant-live-without/

<comment><USER2> This is a great list. I would like to add one to the list, which, I think, is specially crucial during the intial phase of a startup:

-> How to have a thick skin to handle negativity and persevere. It's very important to be able to filter out the noise and stay focused.

<comment><USER3> I would have to agree with you on this one.</comment></comment>


A Century Ago, Einstein's Theory of Relativity Changed Everything - <AUTHOR> http://www.nytimes.com/2015/11/24/science/a-century-ago-einsteins-theory-of-relativity-changed-everything.html <comment><USER2> And thanks to mass media it feels like only yesterday...

<comment><USER3> May be it could also be due to the equation being much smaller (E=MC squared) among other theories of Einstein. Its easy to display easy on the back ground, easy to remember.</comment></comment>


Show HN: NotebookJS - <AUTHOR> http://www.notebookjs.com <comment><USER2> This looks great. Nice to have an JS alternative to jupyter.

Looks like it's using D3, DataMaps[1], and KaTex[2] for visualizations.

[1] [https://datamaps.github.io/](https://datamaps.github.io/) [2] [https://khan.github.io/KaTeX/](https://khan.github.io/KaTeX/)

<comment><AUTHOR> it is! we plan to let Module creators upload their own external libraries as well very soon.

</comment></comment><comment><USER3> Didn't know about Datazar. I can't read the faq or zoom on the screenshots from my phone, but I wanted to know if I can pull data from Datazar to a Javascript app.

<comment><AUTHOR> yeah you can! you can stream data directly from there to your app, just a create a token and you're all done. you can also push JSON data to a file. your visualizations and analysis will update accordingly as well.

<comment><USER3> But if I publish my token in my Javascript code everybody will be able to modify my data!

<comment><AUTHOR> oh I thought you meant to an external app. yeah if you want to stream data to a Module, just call nb.dataset(_fileId_)[0] and it will save it in an object. no token needed.

[0] [https://docs.datazar.com/notebook/core/#dataset](https://docs.datazar.com/notebook/core/#dataset)

</comment></comment></comment></comment><comment><USER4> The site is beautiful. Product looks cool too.

<comment><AUTHOR> thank you! :)

</comment></comment><comment><USER5> only if it would be ClojureScript... :)

<comment><AUTHOR> one day...one day :)</comment></comment>


Neri Oxman Shows How Beautiful 3D Printing Can Be - <AUTHOR> http://singularityhub.com/2012/06/04/3d-printing-is-the-future-of-manufacturing-and-neri-oxman-shows-how-beautiful-it-can-be/ <comment><USER2> See also <http://Bathsheba.com> for 3D printed art in a similar style.</comment>


Dyalog APL v15.0 Free for Non-Commercial Use - <AUTHOR> http://www.dyalog.com/news/108/420/Dyalog-Ltd-Announces-Dyalog-Version-15-0.htm <comment><USER2> It's annoying that the "un-registered" version[0] (the one where you don't have to fill out a form) only runs on Windows. I wonder why. I'm not really sure what kind of danger Dyalog is trying to protect themselves from.

[0]: [http://www.dyalog.com/download- zone/unregistered.htm](http://www.dyalog.com/download-zone/unregistered.htm)

<comment><AUTHOR> It's a 32bit and from an old version. Perhaps they don't want to annoy their paying customers? In this way they get more information from you. I guess it's good for their marketing research. Hopefully they would conclude that it would be better to make the software more freely available.

I'm not sure how big the market is for them or related array language. Seeing J became essentially open source, and kdb+ released their 2nd grade 32bit for non-commercial use too, I guess the industry is shifting toward more consulting/training services.

</comment></comment><comment><USER3> So what's the trick to using APL if you don't have the keyboard? Do most people use the custom keyboard? What about with laptops? Is there some sort of mnemonic for what symbols correspond to what letters? Do people put stickers over their keycaps?

EDIT: Guys I mean literally the keyboard. Once it's software it's easy. I wanna know the best way to remember what key maps to what character.

<comment><USER4> > So what's the trick to using APL if you don't have the keyboard?

Snarky answer is to use J.

I have this hope that on-screen tablet keyboards will bring APL back. It's one of the few languages where you can actually be productive developing on a tablet or phablet because it requires so little typing. As well the idea of workspaces is something that would work well on modern phone OSes. Basically the same things that made APL a great choice for early personal computers (MCM/70 and IBM 5100 were both APL machines: [http://www.xnumber.com/xnumber/MCM_70_microcomputer.htm](http://www.xnumber.com/xnumber/MCM_70_microcomputer.htm) [https://en.wikipedia.org/wiki/IBM_5100](https://en.wikipedia.org/wiki/IBM_5100)) would make it work on phones.

<comment><USER5> Or q or k :-)

</comment></comment></comment><comment><USER6> As someone who took the dive and tried Dyalog APL I would recommend trying it out. While it may look difficult, and annoying to learn you will find the within a single coding session you can have a basic grasp of the language. Typing on the keyboard may seem annoying, but you will be typing very little. All of your programs will fit on one screen. Out of all of the current APL implementations Dyalog APL is the best one. It is worth trying just for the experience.

</comment><comment><USER7> Meta: Where's the "free for non-commercial use" license? I'm curious about the text.

If I did want to release a project as open source (not free software) under "free for non-commercial use" terms, what would be a recommended license? AFAIK none of the common open source licenses target this.

<comment><USER8> I'm not sure which distinction exactly you're drawing between free software and open source, but most open-source licenses don't aim to restrict how people _use_ the software, for many reasons.

One reason is that it's just harsh. "Free for non-commercial use" means that if someone builds on your software to make something successful, they can only succeed on your terms. Sure, that may be what you want, but it's not what users want if they're going to take the time to understand your code.

While such code may technically be open source, much like the "shared source" initiatives of large software companies, the code won't be able to participate in the larger open-source ecosystem. Would you expect someone else to contribute to the code? Why would they? They'd be enriching your IP but they wouldn't get any additional rights to the code, nor would they get revenues from commercial licenses. Unless you hire them as an employee.

Also, restrictions on how you use the software violate the Debian Free Software Guidelines. Indeed you indicated that you're not interested in "free software", but you shouldn't expect to find "common open source licenses" that violate the DFSG.

Restrictions on use tend to be more tolerated in creative works than they are in software, in which case the license you're looking for is Creative Commons By-NC-SA.

</comment></comment><comment><USER9> Did anybody analyze recently how effective and why is the set of primitives chosen in APL?

If Iverson wouldn't be constrained by ASCII and still knew what we know today, how he could design APL?

<comment><USER10> He already did: [https://en.wikipedia.org/wiki/J_(programming_language)](https://en.wikipedia.org/wiki/J_\(programming_language\))

 _The J programming language, developed in the early 1990s by Kenneth E. Iverson and Roger Hui,[4][5] is a synthesis of APL (also by Iverson) and the FP and FL function-level languages created by John Backus.[6]_

 _To avoid repeating the APL special-character problem, J uses only the basic ASCII character set, resorting to the use of the dot and colon as inflections[7] to form short words similar to digraphs._

<comment><USER9> Thanks. However, J was conceived in 1980-s, uses ASCII for ease of communications, not as the best set of symbols. In this sense APL was somewhat less constrained - symbols were new, even though some of them were typed on teletypes with some tricks.

Looks like in case of J a lot of consideration was given to what's relatively easy to do in terms of chosen set of symbols. The question is, if ASCII wouldn't be a requirement, what would be a modern set of primitives, efficient as the tool for thought. APL at the time was trying to extend - and improve - mathematical notation, no less...

<comment><AUTHOR> > The question is, if ASCII wouldn't be a requirement, what would be a modern > set of primitives, efficient as the tool for thought.

I love this question.

Moving from APL to J is really a step backward in terms of notation. With unicode standard flourishing, we might finally see something that can improve upon the mathematical notation we use and make instructing computers easier. I don't think anyone would be able to answer though… Perhaps one could extend APL symbols to cover all of the J primitives?

<comment><USER9> I'm trying to find out - is APL set of symbols looks justified today, even with Unicode capabilities?

If yes then Iverson created really well thought out set which stood the test of time and we can hope will continue to efficiently serve as a good notation - and might be may be extended. If not - then we have the question of what would be a good notation.

References to math notation, which developed over decades and centuries, are good - but sometimes look like not perfect. Iverson was trying to make it better - for example, put the notation in one line, get rid of operation priorities. Is that a success from today's point of view?

</comment></comment></comment></comment></comment><comment><USER11> Forgive my ignorance, but who is buying proprietary language interpreters/compilers these days?

What are some other successful examples of this? I remember ChezScheme became free recently.

<comment><USER12> MATLAB, Mathematica, Maple, Labview, IDL, wasn't there an article here that R just recently passed S+? Turns out scientists and engineers are still willing to pay for tools.

<comment><USER11> Oh yea. I actually have 3 of those installed since my university has free student licenses. I'd never have considered buying them, but maybe after several years of use, I can imagine my future employer paying for it.

I hate Labview with a passion(needed for data acquisition in labs), I barely use Mathematica, and I'd be fine with using Scipy over Matlab, but Matlab is actually nice for quickly doing some analysis and graphs.

<comment><USER13> Have you tried Octave?

</comment></comment></comment></comment><comment><USER14> This is a nice website by 1995 standards.

<comment><USER15> Actually, I think it's a very pretty site: it says what it needs to say, it has attractive colours, it uses my browser window sanely, it's not distracting. What's not to like? I wish that more websites were like that.

<comment><USER16> And it works great with NoScript. What a breath of fresh air from the SPA stuff I work around every day.</comment></comment></comment>


How Google Ventures instills design into the heart of its portfolio companies - <AUTHOR> http://thenextweb.com/google/2013/03/15/how-google-ventures-instills-design-into-the-heart-of-its-portfolio-companies/?utm_source=HackerNews&utm_medium=share%2Bbutton&utm_content=How%20Google%20Ventures%20instills%20design%20into%20the%20heart%20of%20its%20portfolio%20companies&utm_campaign=social%2Bmedia <comment><USER2> Memphis has a pretty cool "design and marketing help" VC-alike called A>M Ventures. They're the newish investment arm of a local advertising firm and they provide major help to early-stage companies that would otherwise be relying on their own amateur Photoshop skills.

Some of my favorites from their portfolio (n.b. - I know the founders and have worked with some of them):

\- <http://kufikia.com> \- Cohort-based dev skills courses with job placements

\- <http://paytopia.com> \- Cardless online payments

<comment><USER3> The am>ventures site is here: <http://amventures.co/>

We're really happy with the work they've done for us. For early stage startups, they're a great option.

</comment></comment><comment><USER4> "While this approach may not sound appealing to every startup out there, the design team is clearly a selling point for Google's VC arm, making it more attractive to promising early-stage startups."

Sure sounds appealing to me. :) This is a big differentiator for GV.

BTW great to see a feature on Ordr.in, I love that startup.

<comment><USER5> Would be interesting to see what companies (if any) wouldn't want this sort of service. Guessing later stage startups could push back.

<comment><USER6> Probably startups that don't want to outsource their design and user experience to a giant corporation that genuinely does not care about their users on an individual basis.

The idea-refining sounds invaluable, it really seems unfair to burden that with outsourced ui/ux.

<comment><USER5> Want to be clear, though, that Google Ventures tries to keep pretty separate from Google. Also, the better GV's portfolio companies do, the better GV does. My impression is that the design team actually cares.

</comment></comment></comment></comment><comment><USER7> I think the wording of the title is unfortunate, because "instill" sounds sort of pushy and directive. GV makes services like this are available (which is pretty awesome!).

Note: work for google - not GV - and speaking for myself.

<comment><USER5> Didn't mean that to be negative.

</comment></comment><comment><USER8> "Huh. Hmm. Put a horizontal bar across the top. That's ok - maybe another one. That feature sounds great - it's horizontal bar can go right under the Google plus's."

</comment><comment><USER9> I don't see how that process instills design in the company at all. It's just like hiring a design firm to redesign or evaluate the product.

<comment><USER5> Did you read it? The results = an unfinished mockup. A majority of this process is used to help teach design thinking, so companies can make the right design/usability decisions on their own.</comment></comment>


ManagedC: Memory safe execution of C on a JVM [pdf] - <AUTHOR> http://chrisseaton.com/plas15/safec.pdf <comment><USER2> It is an interesting implementation. Tl;dr: they took a C interpreter for Java (with unsafe memory management) and implemented fat pointers (Java object + offset) in the interpreter.

The paper claims the implementation obeys C99, but there seems to be a violation around pointer round-tripping. Specifically, they forbid all casts from integers to pointers.

      char a, *p;

      p = (char*)(uintptr_t)&a;

In most C implementations, this is perfectly valid. In the paper's, it breaks.

Anyway, very interesting.

<comment><USER3> They discuss this in section 3.2 of the paper. The C99 standard (in section 126.96.36.199) says that integers can be cast to pointers, but, except in the special case of the integer 0, "the result is implementation-defined, might not be correctly aligned, might not point to an entity of the referenced type, and might be a trap representation". This implementation chooses the last option: if you cast an integer to a pointer, you get a pointer as a result, but one that you can't successfully dereference.

<comment><USER4> Of course I read that, or else I would have no idea they broke pointer round- tripping.

I believe this violates C99 §22.214.171.124 (if the TruffleC language defines the uintptr_t type in stdint.h):

      The following type designates an unsigned integer type
      with the property that any valid pointer to void can be
      converted to this type, then converted back to pointer to
      void, and the result will compare equal to the original
      pointer:

        uintptr_t

If the TruffleC language does not define uintptr_t ("these types are optional"), then hey, that's fine. A lot of valid code won't compile, though.

<comment><AUTHOR> Is uintptr_t widely used? I don't recall ever seeing it before.

<comment> david-given It's really useful if you want a type to which you can cast _any_ (non-float) primitive value and know that you can cast it back to the same value you had before. I've used it as the cell type for a Forth interpreter, for example (where cells have to be able to represent addresses as well as integers). It's probably particularly not useful for general applications programming.

</comment></comment></comment></comment></comment><comment><USER5> I have only glossed over the paper (yet), but this raises some thoughts on C in general. Why/Where/How we use it. I could distinguish 5 distinct use cases for C:

      1. Legacy code
      2. Shared (closed) code
      3. Zero runtime dependency code
      4. Hardware control
      5. Resource limitations

This could be a good thing for (1.) - rewriting a project (most) in a safe language is just infeasible, yet this offers some guarantees/protection basically for free. Even if a tool (any tool) catches fire all over the place on first run because of a bug (in app code) it's still a good thing.

Sometimes we want to share some functionality (library), yet stay closed source. Or have an ability to take a file, drop it on a remote machine and expect it to run. This is what native binaries with a stable API are for. Yet calling foreign function in VM'd languages is often so awkward that we just end up reimplementing a lot of software instead of calling foreign function possibly shipped/managed at an OS level.

By hardware control I mean something like writing to 0xABAD1DEA and having data fly out of serial port or NIC change modes or something along those lines. I guess this is doable in managed languages by some built-in magic proxy object, but I'm not entirely sure if this does not start with "write hardware definition file and rebuild the VM". Just a thought.

5\. is the basic idea why I'm attempting to discuss this. Small MCUs are still general purpose computers, just very limited, and are rather good litmus tests - is it possible to cram a Hello World into ATtiny with 512 bytes of memory? Is it possible to run something on baremetal ARM Cortex M3/4 (no FPU, MPU/MMU)? No? Then it is by no means "general purpose" and we should thoroughly discuss limitations imposed by the technology.

Programming is a discipline just too diverse for a single individual to grasp and too rarely we step outside our boxen to see the whole world.

<comment><USER6> For legacy code a converter might be the better option. E.g.

[http://www.tangiblesoftwaresolutions.com/Product_Details/CPl...](http://www.tangiblesoftwaresolutions.com/Product_Details/CPlusPlus_to_Java_Converter_Details.html)

Yes, it's not perfect but at least debugger, instrumentation, ... will work against the module.

<comment><USER5> Well... If you just want to take old abandoned source and somehow run it - anything goes (IIRC, NumPy requires Fortran for MKL). I meant old projects that are still maintained at some level yet are large in scope and cannot be reimplemented incrementally, think OpenSSL.

If we are talking about e.g. servers, we can safely _assume_ pretty beefy x86-compatible hardware and discuss in the context of that. In my book C is the ultimate at general-purposeness and anything we attempt to do with C must be discussed in that light.

</comment></comment></comment><comment><USER7> I think that this work is a lot more thorough: [http://www.cl.cam.ac.uk/~dc552/papers/asplos15-memory- safe-c...](http://www.cl.cam.ac.uk/~dc552/papers/asplos15-memory-safe-c.pdf)

They go through and identify C programming idioms as they are reflected in real code, and design their new memory model in part around that. The rest of the work on CHERI is also very interesting.

</comment><comment><USER8> I don't get why they went with ManagedC when Managed C++ aka C++/CLI (which runs on CLR rather than JVM) existed for a decade.

<comment><AUTHOR> If you read the paper, ManagedC is doing something very different to Managed C++, despite the similarities in name. C++/CLI is a different language where you have to define garbage collected pointers manually. ManagedC is basically the same as C99, albeit a whole lot more strict about things that might work on other compilers whilst being technically undefined.

To be more specific, in ManagedC the C code is interpreted, profiled and then JIT compiled just like in Java, where the JIT compiler (Graal) can then do very aggressive profile guided optimisations like inlining huge amounts of code, and using the resulting compile graphs to eliminate the overheads introduced by the sanity checking. It can also do things like eliminate dispatch costs when using function pointers and the like, in the same way it's done for Java.

What's also super interesting about this approach is the language interop you get. ManagedC is based on a project called TruffleC, which doesn't have any of the security/safety checks. TruffleC was built to enable Ruby code that's also being compiled by the same compiler to call into Ruby C extensions intended for the MRI interpreter. What's really crazy about this work is, the compiler can merge the C and Ruby code together incredibly tightly, to the extent that running a mix of Ruby and C on this experimental JVM can be much faster than running the Ruby and C together on the original implementation. The JVM can actually optimise out all the interop costs of moving between the Ruby and C worlds, just using compiler optimisations.

</comment></comment><comment><USER9> At first glance I assumed they use a similar approach as how emscripten compiles C/C++ to JS, where the entire C-accessible memory heap is one big Javascript array object (which has the nice side-effect of basically switching off the garbage collector, unless you need to cross-over to the JS-side). But it looks like they are actually mapping granular C structs to JVM 'objects'.

There is (or was?) an emscripten-alternative called Duetto which had a somewhat similar 'granular' approach like the C-on-JVM described here, but it couldn't compete on performance and also needed a customized C/C++ dialect.

<comment> david-given I've done this --- see:

[http://cluecc.sourceforge.net/](http://cluecc.sourceforge.net/)

It compiles C89 C into Java, Javascript, Lua, Perl and Common Lisp. Pointers are represented as an array pointing at the object and an offset into the array, so sizeof(void * ) == 2 and sizeof(everything else) == 1. This allows efficient pointer arithmetic while still using one native allocation per object.

It relies heavily on C89 undefined behaviour. Alas, C99 adds (IIRC) a defined mapping from an object to bytes and vice versa, which means this approach won't work. Also, the compiler frontend I was using, sparse, had bugs where it would try to convert a pointer to an int, do arithmetic, and then convert back again. So it's not suitable for real work.

Performance was better than I was expecting it would run C on Java at 1/3 the speed of native. That's pretty good for a naive toy. Running C on LuaJIT was amazing; very nearly the same speed as native. (For a set of artificial, non- representative benchmarks.)

Java, Javascript and Lisp are all crippled by not having goto. goto allows you to express arbitrary basic block graphs, which C supports. Without it, I have to use a big switch statement inside a while loop --- JITs hate this. Emscripten gets around this by using algorithms to try and represent the basic block graph as much as possible with structured control flow statements, but this can't work in all situations, so it has to fall back to the explicit state machine if that doesn't work. Which is, of course, slow.

LuaJIT does support goto. When I converted from Lua 5.1 (with no goto) to LuaJIT, I estimated about a 30% speed improvement.

Languages without goto statements are _toys_ , dammit...

<comment><USER10> Common lisp does have a form of goto in the "go" operator within a tagbody. Was this not usable for your purposes? You needed a global goto?

[http://clhs.lisp.se/Body/s_go.htm#go](http://clhs.lisp.se/Body/s_go.htm#go)

<comment> david-given TBH I don't know Lisp - the code generator was donated. There isn't enough libc to run the benchmarks and I haven't really examined the code much. Maybe it does use go. If you're interested in having a look, feel free...

<comment><USER10> > Maybe it does use go.

I just took a look at your repository. In the lisp implementation each generated function is wrapped with a prog which provides a tagbody and then a label is emitted for each basic block and go is used to jump to the labels. So be sure to leave out lisp in your future lists of toy languages... :D

<comment> david-given Excellent news!

Normally at this point I'd ask if you were interested in fixing the libc for me, but frankly, it's not worth it --- clue's technology is pretty crappy. One day, in my copious free time, I'd like to retry the whole idea using a better compiler.

</comment></comment></comment></comment></comment></comment><comment><USER11> Do they allow the commonplace idiom of casting objects to void* and then back to the original type? (That is allowed by the standard)

And do they allow "overlay" casting where multiple structs are used to access the same memory region? This is used in the POSIX networking API for instance (and isn't that rare besides -- the alternatives is unions but that has the disadventage of closedness -- you can't add new variants).

</comment><comment><USER12> This uses garbage collection which requires a stop-the-world pause unless using something like Zing JVM. A STW in many (real-time) applications is why you would choose C/C++ in the first place.</comment>


As battery fires spark ongoing concerns, NFPA releases risk-addressing standards - <AUTHOR> https://www.utilitydive.com/news/APS-battery-fire-energy-storage-risks-McMicken-investigation/563058/ <comment><USER2> The actual document is here. [1] US$56. Here's a useful summary.[2]

 _" If an installation is outdoors, then it is either classified as remote or near exposures. If an installation is remote, it needs to be 100 feet or more away from any exposures such as other buildings, walkways, or combustible materials. If the installation is not a remote installation, then it is considered to be near exposures. Other acceptable outdoor installations that have specific requirements are rooftops, open parking garages, and standalone walk-in units such as shipping containers."_

 _" Three feet of clear space is required between every 50 KWh grouping of ESS, as well as between the 50 KWh groupings and the walls of the room."_

 _" A sprinkler system is required to be installed ... with a 0.3 gallons-per- minute-per-square-foot density over a 2,500-square-foot design area ... One of the major concerns in extinguishing an ESS fire is cooling the energy storage system down below the auto ignition temperature of the flammable gasses the ESS may discharge in a thermal runaway event. Water is an effective extinguishing agent for most ESS fires including lithium-ion battery ESS, and that is what the committee settled on for a requirement."_

So what they're requiring is that units be spaced out enough that one fire doesn't take out the whole installation, and the sprinklers can usually contain the fire to one unit. Tighter restrictions apply if there are "exposures", by which they mostly mean buildings with people in them.

Makes sense. There are similar spacing rules for above ground fuel storage tanks.

[1] [https://catalog.nfpa.org/NFPA-855-Standard-for-the- Installat...](https://catalog.nfpa.org/NFPA-855-Standard-for-the-Installation- of-Stationary-Energy-Storage-Systems-P20704.aspx)

[2] [https://www.nfpa.org/News-and-Research/Publications-and- medi...](https://www.nfpa.org/News-and-Research/Publications-and-media/NFPA- Journal/2019/May-June-2019/Features/Energy-Storage-Systems)

<comment><USER3> Why on earth would it cost $56 to read the document?!

<comment><USER4> Pretty common with industry norms and standard unfortunately...

<comment><USER5> I agree. It's done, ostensibly, to distribute the cost of creating and publishing the standard. This is not being done correctly, access should be generally available to safety standards for reasons of promoting safe practices.

No or very few individuals pay for personal access to standards, it's a business expense paid paid by you or your firm. Allowing non-profit use would not change their main source of revenue.</comment></comment></comment></comment>


Amazon RDS now supports PostgreSQL 9.4.1 - <AUTHOR> http://aws.amazon.com/about-aws/whats-new/2015/03/amazon-rds-for-postgresql-now-supports-94/

<comment><USER2> I was very unhappy to find that RDS does not support cross-region read replication for Postgres, only for MySQL. We had made a significant investment to migrate from MySQL to Postgres but are now having to back out a lot of changes, because we need that redundancy.

Postgres is widely acknowledged as the leading open source database. It's frustrating that it remains a second class citizen on AWS.

[https://forums.aws.amazon.com/message.jspa?messageID=604244](https://forums.aws.amazon.com/message.jspa?messageID=604244)

<comment><USER3> I definitely share your sentiment, but AWS is geared mostly towards developers, and mysql is the leading database in terms of users.. especially among the legacy development community. (those that did LAMP in the 00's and do not wish to relearn databases)

<comment><USER4> I'm not doubting you, but do you have any sources for user counts for different database types? I get the same sense, but I wonder what the numbers are really like.

<comment><USER3> one of the issues in open source is that the numbers are very hard to quantify.

I know, from personal experience that most large companies are using mysql, even if they use postgresql they're also using mysql for smaller things..

to give some examples the only company I ever worked in which used pgsql as a direct backing store and primary database still used mysql to manage it's internal documentation servers and caching systems (records used to keep track of what is cached inside of memcached).

simply due to the ubiquity of the tools developed around mysql and the notion that you will never have a hard time finding a person with mysql experience causes people to choose mysql when designing new things.

currently I'm getting a lot of force against postgresql adoption in my company, even though it makes complete sense for my project- the fact that "nobody understands it" and that "tooling exists behind mysql" is enough to keep the status-quo for a long time unless someone fights really hard (which I'm doing).

<comment><USER4> I'm just afraid the anecdotal evidence and the "conventional wisdom" of mysql being the defacto standard is perpetuating the myth and fighting against the adoption. My experience is more mixed - most of the large companies I have worked with have used either mssql or oracle (the idea that if you don't pay for it how can it be worth anything is very strong).

</comment></comment></comment></comment></comment><comment><AUTHOR> We've been waiting for JSONB support quite some months now, great that it finally arrived in AWS. Dumb question now: Anyone knows how to upgrade 9.3 machines?

<comment><USER5> Are you talking about RDS or your own 9.3 to 9.4 upgrade?

If the former, then unfortunately the only option is a database dump followed by creating a new RDS instance and then restoring.

As for the latter you can do an in place upgrade following the PG docs.

<comment><AUTHOR> So it's basically standstill? Create new instance, halt all processes, migrate the data, delete old one? Sounds sad, but if it's the only way to go, I'll go ahead. Anyone want to share experiences scriptingwise?

<comment><USER6> I imagine you could use one of the various streaming replication solutions to avoid the "halt" part. pure speculation on my part, however.

<comment><USER5> Alas you currently can't use RDS as either a target or source for Postgres streaming replication.

Right now the best you can do is a scheduled cutover. This isn't as bad as it sounds because you can provision the new instance, import the production data and test everything before final sync and cutover.

<comment><USER7> _This isn 't as bad as it sounds_

As someone who has done this multiple times in the past I have to disagree.

Yes, it is very much as bad as it sounds and a big pain point with Postgresql in general and RDS in particular.

For small databases it may be considered a mere nuisance. But when your pg_dump takes an hour to complete then the whole "final sync and cutover" becomes a real problem.

<comment><USER8> _> Yes, it is very much as bad as it sounds and a big pain point with Postgresql in general and RDS in particular._

this is pretty much a problem with RDS only. Postgres itself offers pg_upgrade which can do even huge databases (2 TB here) in seconds.

<comment><USER7> _pg_upgrade which can do even huge databases (2 TB here) in seconds._

That depends on various factors. Sometimes pg_upgrade has to copy all your data. In those cases and for 2T you'll be measuring the wait in hours, not seconds.

<comment><USER9> I am under the impression that the only cases where this happens are when upgrading certain custom data types related to full-text search from 8.3 to 9.x, which seems like a very narrow complaint. This definitely _used_ to be a serious general issue with PostgreSQL, however, but hasn't been in many years.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> JSONB is nice, but the inability to perform updates inside a JSON doc is major drawback.

<comment><USER11> I suppose PL/V8 ( which RDS has installed by default) would make it trivial to write a function to do this - you'd be able to do anything with JSON in postgres that you can in Node.js or the browser.</comment></comment>


How a Simple Hack Can Turn Numeric Google Profile URL Back to a Gmail Address - <AUTHOR> http://www.readwriteweb.com/archives/hacking_google_profile_gmail_email_addresses.php?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+readwriteweb+%28ReadWriteWeb%29&utm_content=Google+Reader <comment><USER2> You can use it to find Eric Schmidt's email:

<http://picasaweb.google.com/109938146389129062343>

I doubt it's his real one though

<comment><USER3> All I see now is:

 _We're sorry, but your computer or network may be sending automated queries. To protect our users, we can't process your request right now._

Maybe it was his real address.

</comment></comment><comment><USER4> If I understand this properly, it means that if you want to use Google Buzz, your Gmail address becomes public and you can't hide it.

Whereas on twitter, people can't find out your e-mail address. That's quite important because the whole point of twitter is to offer this semi-public presence without being bombarded by email spam.

<comment><USER5> No, if you use Picasa, people who have access to your history can find your gmail address.

<comment><USER6> Linked in the RWW article

[http://theharmonyguy.com/2010/02/12/using-google-buzz-can- ex...](http://theharmonyguy.com/2010/02/12/using-google-buzz-can-expose-your- gmail-address/)

        In my testing thus far, it matters little whether you've
        Picasa before – if you have a Gmail account, Picasa is also
        enabled on your account. And while individual Picasa albums
        have privacy controls, I have not found a way to block simply
        loading your Picasa home page.

</comment></comment></comment><comment><USER7> The use of numeric URL in Picasa has been blocked by google now. In either case, if you had your gmail address as an URL in Picasa you have been exposed to email harvesters all along, that's why there is an option to create any alias you like for Picasaweb.

</comment><comment><USER6> Over the years, I've experienced that Google's products/services are full of such security and privacy lapses. They have at times taken some serious and appreciated steps to promote security and privacy. But they do not appear to have a coherent and comprehensive policy or strategy for addressing such topics as a part of ongoing development and operations. Stuff goes into production (I don't care whether you call it beta) that has not been adequately vetted.

Rapid development and iteration have some nice benefits, but they are NOT excuses for oversights in security and privacy.

<comment><USER8> Google Groups actually leaks your IP and user-agent for what, 5 years now.</comment></comment>


School Cellphone Ban Spawns Thriving Niche Storage Market - <AUTHOR> http://mashable.com/2012/05/26/gadget-storage-trucks/ <comment><USER2> Hats off to the entrepreneurship here but the reason it's needed in the first place is a farce. Schools should get a grip rather than be happy their students get to fork out $22+ per month to work around their silly restrictions.

<comment><USER3> I understand what you are saying, but attention diversion is a _problem_ with teenagers, I can tell you. They have grasshopper minds even without shiny rectangles.

<comment><USER4> In my experience, if there's a kid sitting in high school who's not interested in the lesson then they'll either stare at the front of the room with their eyes glazed over or start fidget with something (usually phones or pencils), the former being the most popular choice since electronics tend to raise the ire of teachers. You are sadly misguided if you think that removing phones will turn previously disinterested students into enthusiastic participants. It certainly will make them angry at having to pay $1 per day for "phone parking", though.

<comment><USER3> "You are sadly misguided if you think that removing phones will turn previously disinterested students into enthusiastic participants."

Oh yes, we had lots of ways of loosing attention when I was a teenager _long_ before the invention of mobile phones.

With the phones, the disruption comes from outside in the form of messages, not from the student's own brain. The latter can be managed by changes of activity and movement round the space (plenary/group/present/plenary type lessons). The former disrupts even the interested students.

<comment><USER5> Interested students can just put their phones on silent.

For that matter... why don't schools let kids keep their phones on silent and in their lockers? Using your phone in class? Get yelled at. Throwing paper airplanes in class? Get yelled at.

This is not a hard or new problem.

<comment><USER3> Lockers? Consequent liability. Not in UK

<comment><USER5> They don't have lockers? I don't even...

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> Kids aren't even allow to bring phones to school and keep them hidden in pocket? wow... When I went to school you could use them at lunch. Is this starting to happen all over the US or just New York? I'm in Ohio, currently. In class you had to keep them in your pocket or purse and have the ringer off, else teacher would take it and hold it till the end of the day. Wow. Schools are starting to seem more and more like police states.

I would like to see schools embrace small gadgets, instead of banning them, some how. I mean they do have lots of educational value if you want to use it for that.

</comment><comment><USER7> Seems like a really neat solution to an (in hindsight) obvious problem. Makes me think of the guy with a camper-van full of PCs dedicated to form filling parked near the Chinese consulate in New York: [https://www.npr.org/blogs/money/2012/01/04/144636898/a-man-a...](https://www.npr.org/blogs/money/2012/01/04/144636898/a-man- a-van-a-surprising-business-plan)

I think in the prior example, they actually complained about the publicity they were getting because it clued in competitors, without significantly benefiting them, because their market was going to walk past the truck anyway.

</comment><comment><USER8> I experienced something similar near Yankee stadium.

They don't allow men to bring bags into the stadium. But they don't have a bag storage service (at least the last time I went). So random businesses around it provide bag checks for a nominal fee.

Funnily enough, they allow women to bring large bags and purses inside.

<comment><USER9> Has anyone tried to contest this rule as an illegal form of discrimination?

<comment><USER10> Men are the oppressor gender and therefore cannot be the victims of discrimination. Nice try, you dirty misogynist.

<comment><USER11> I seriously hope you are being sarcastic.

<comment><USER12> He clearly is.

</comment></comment></comment></comment></comment><comment><USER13> Still have doubts that schools in US are, essentially, jails?

<comment><USER14> Not jails, storage facilities for kids, cell phone storage is an auxiliary service.

</comment></comment><comment><USER3> Does anyone have references to the impact of banning electronics on school performance? There is a similar move in the UK.

I like the retail shop storage idea; there is usually a newsagent/sweetshop somewhere near most large secondary schools.

</comment><comment><USER15> Maybe there's also a market for lead-lined phone baggies that students can stash in the bottom of schoolbags.

(If schools are acting like the TSA...)

</comment><comment><USER16> they should just turn the classrooms into faraday cages. Problem solved and no storage required.

Back in my day we didn't have phones in class (they were too big and expensive). We still played up, did little work and achieved nothing :)

If the teachers gave a toss and were engaging, it would be a different story.

</comment><comment><USER17> Why on earth don't the schools run this service themselves? Instead of confiscating the phones, hold onto them in the same way the third-party companies do. They're always complaining how they don't have enough money.

</comment><comment><USER18> Schools that completely ban the possession of cell phones need to offer a way for students to store their phones during the day in the lobby of the school. They could just issue each student a tiny locker with a key.

I have multiple reasons for saying this. One reason of lesser importance (but perhaps more interesting) is: who's to say these trucks aren't copying the flash drives off smartphones?

I'm all for entrepreneurship but society has already decided that education is not up for a free market, so it's not worth haggling over tiny details like this.

<comment><USER19> Who's to say the guy watching the phones for the school isn't copying the flash drives off the smartphones? And honestly why would they? I doubt the contents of a teen's cell phone are very interesting and doing so would endager their business which they take seriously enough to have a 2 million dollar insurance policy on.

<comment><USER18> As I said, the security issue here is interesting to me as somewhat of a "hacker," but not really so important.

However, there definitely are ways to exploit this. For example, the person holding the phones could search for nude pictures, or material in text messages that could be used to blackmail the children (possibly the same thing, not necessarily).

I think having a bunch of "cell phone lockers" in a _very_ public area of a public school would guard against that kind of thing pretty effectively. It would take a conspiracy of school employees to pull it off and really not be worth it.</comment></comment></comment>


On the Road to Fedora Workstation 31 - <AUTHOR> https://blogs.gnome.org/uraeus/2019/06/24/on-the-road-to-fedora-workstation-31/ <comment><USER2> From the article:

>The reality is that X.org is basically maintained by us and thus once we stop paying attention to it there is unlikely to be any major new releases coming out and there might even be some bitrot setting in over time.

Well, at least it makes it clear how the wind blows these days.

<comment> yjftsjthsd-h Well... interesting if true. Also quite unfortunate, since I rely on xdotool and keynav in my daily workflow. I want to like wayland, but it's rather designed to intentionally break things I'm using.

</comment></comment><comment><USER3> I am one of the Fedora 29 users for whom the upgrade to Fedora 30 refuses to run because dependencies of some installed libraries in F29 cannot be obtained for F30. There was a report of this soon after Fedora 30 was released, and someone acknowledged the defect (related somehow to certain library incompatibilities) promptly and said a fix would be out in a few weeks. I don't think that the fix ever came out, but a somewhat inscrutable (to me) workaround was promulgated, which I have chosen not to attempt. Will there be a user-friendly way to upgrade Fedora 29 to Fedora 31 without a full re- install?

</comment><comment><USER4> All our users are running interactive sessions under X2Go (and it's far from ideal). Will this still work? Even worse than today? (I could be mistaken but the impression I get from Wayland appears to be a dramatic emphasis on the local desktop with a near-complete disregard of the remote scenario).

CONTEXT: heavy, expensive, licensed EDA tools imposes this usage model and there's really no way around it.

<comment><USER5> Quite the contrary.

I used to work on a proprietary remote display protocol and the remote X11 protocol is seen as an anti-pattern in that space. X11 requires draw operations to be applied in-order, so every dropped packet means stalling the client draw pipeline.

This is one major reason why other remote protocols use varied strategies that look very different.

Wayland, in many ways, accepts that reality and moves the network-portability away from the core protocol.

Besides, hardly anyone does draw operations on X11 without the Xshm extension now days, so in practice, many apps are not that network portable. The toolkits go through great effort to make it sort of work. Kinda. If you don't look too closely.

That said, you could create a system that supports transparency similar to the old design, but I'm not sure any active contributors are interested in doing so.

One major reason for that is that most applications on Linux take advantage of communication buses while also completely disregarding the idea of supporting multiple sessions by the same user at the same time. So to have an application work over the terminal, get a session (d-bus, seat, etc), and then collide with other apps in a second session by the user doesn't make a lot of sense if at the end of the day the user loses state, or worse, gets corrupted files.

</comment></comment><comment><USER6> Pipewire is very light on the why. And do not mention Gstreamer. Does it seek to replace it too ?

<comment><USER7> I'd be happy if Pipewire doesn't constantly burn CPU the way Pulseaudio likes to, even when no sound is playing. It always annoys me to see Pulseaudio in top, burning 5-10% of the CPU with thousands of hours of CPU time built up.

<comment><USER5> I've not seen this in the decade of running it on dozens of machines. So chances are there is a bug somewhere related to your hardware or mixer configuration.

<comment><USER7> Maybe, but nothing I've ever tried has worked and I'm not the only one:

[https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/20...](https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/207135)

[https://ubuntuforums.org/showthread.php?t=2215353](https://ubuntuforums.org/showthread.php?t=2215353)

<comment><USER8> It's practically one comment each year in the last five years, doesn't look like a widespread problem.

<comment><USER9> I've had the issue (Ubuntu with VM). I think I switched to ALSA, or just disabled sound. On Linux when I "fix" a problem I very rarely write a comment on a forum...</comment></comment></comment></comment></comment></comment>