Which programming language is used for making Windows 10? - <AUTHOR> https://www.quora.com/Which-programming-language-is-used-for-making-Windows-10/answer/Axel-Rietschin?share=1 <comment><USER2> A project of such scale and longevity always seems to pique my interest. I bet there are some interesting historical artifacts in that codebase. Why is old code so fascinating?

Decades ago someone as insignificant as you wrote this code. I find it especially interesting to come across comments in code, which allow developers to express themselves outside the confines of the language. I feel like a historian in this context, analyzing this person's thoughts and state of mind. Perhaps the author included elements of emotion or humour. Who was this person? An insignificant developer, as I am -- did they ever become something of themselves?

I think the developer's story is rarely told, but it's a story worth telling!

<comment><USER3> I do actually think code archaeology may one day be a sub discipline of the field, perhaps in another hundred years.

<comment><USER4> In Vinge's "A Deepness in the Sky" [0] one of the characters is a Programmer- at-Arms, and one of his roles is essentially software archaeology - not for the fun of it, but to keep the deeply layered software of a starship functional.

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

<comment><USER5> This is a fantastic book. Software is written and rewritten over thousands of years, layer upon layer, powering interstellar vessels and their "automation". It makes you wonder what Windows will look like 100 years from now, if it's still around. Will it be easier to just write another layer on top or dig down into the original source and modify?

<comment><USER6> History seems to suggest that it will eventually get bogged down with too much junk but its too hard to rewrite and keep compatibility so eventually some fresh project without the legacy will be able to become the technically superior product and everyone will move over to that.

<comment><USER7> In theory, yes. In practice, either of two solutins will take hold: either the old system is put into a container on the new system or the application software itself obtains an emulation layer for the old system interface during the port. Either way, not a lot will be gained.

</comment></comment></comment></comment></comment></comment><comment><USER8> Back in the late '80s, my company had a program that included getting the Windows 3.0 source code. Looking through the code I had found the line "goto wearefucked;" and accompanying label further down. When we got the source for Windows 3.1 the first thing I did was check that file, but to my disappointment the label had been changed.

<comment><USER9> Yeah, well if you ever traced a Win95/98 app and stepped into the OS code, one of the internal system API's was called BOZOLIVESHERE.

[https://devblogs.microsoft.com/oldnewthing/20031015-00/?p=42...](https://devblogs.microsoft.com/oldnewthing/20031015-00/?p=42163)

</comment></comment><comment><USER10> This post is kind of dramatic. Windows is much more than a simple kernel: it is a collection of drivers, tools, a desktop envinroment, a network stack, user base applications (like Paint), etc, etc.

If you compare it to the entire Ubuntu project, you will se a project of similar dimensions.

<comment><USER11> I don't know about Ubuntu specifically but some distro's do ship sources with their installation media and it usually fits on 1 DVD.

When I say "sources" I am talking about kernel, user land and desktop applications too.

However that would be compressed tarballs and doesn't include git history - the latter being where I suspect most of the disk space is being used in that screen shot.

<comment><USER12> You're off by a magnitude.

[https://cdimage.debian.org/mirror/cdimage/archive/9.7.0/sour...](https://cdimage.debian.org/mirror/cdimage/archive/9.7.0/source/iso- dvd/)

Source code compresses quite well, so uncompressed, this may be somewhere between 200-250 GiB.

<comment><USER11> My benchmark was SuSE, which was 1 DVD's worth. However your post now has me wondering if that didn't contain the complete sources either - just sources for server components. That said, those 12 DVDs likely cover way more than the Windows sources would. eg multiple different image editors, LibreOffice (would Windows sources include the sources for MS Office as well?) several different databases (MariaDB, PostgreSQL, Redis, etc). So even that might not be a fair comparison either?

Unfortunately without access to that source directory all of this is all just going to be speculation anyway.

I did also make the point about compression too by the way :)

<comment><USER12> Right. Probably it's not at the level of full debian archive, but those 500GB probably include all kinds of weird services and windows tools and programs most users never run or have a use for.

<comment><USER11> Oh I'd guarantee it would. And the vast majority of those libraries will exist for backwards compatibility too. Much like with the CLI user land on Linux (GNU coreutils et al).

I think the real proof of the pudding is the footprint of a default desktop in Windows vs Ubuntu+. There was a time when Windows would literally consume one order of magnitude more disk space than Linux after a fresh install however I think things have since converged in the middle somewhat.

Going back on topic though, that looked a dev directory for Windows so would likely have contained a .git directory too. That would easily balloon the disk space used by any (mature) project's source.

\+ I know you were talking about Debian, but I'm going with Ubuntu now because it's more of a desktop orientated distro and frankly it works better in Windows favour anyway due to it installing more software by default than Debian would.

</comment></comment></comment></comment></comment></comment><comment><USER13> > You can spend a year (seriously) just drilling down the source tree, more > than a half million folders containing the code for every component making > up the OS workstation and server products and all their editions, tools, and > associated developement kits, and see what's in there, read the file names > and try to figure out what does what.

This makes me really want to know how they manage to document everything to make such a huge project easy to work with.

<comment><USER14> Usually when you're working on the scale of operating systems, you have people focusing on particular areas e.g. kernel teams, networking teams, graphics teams etc and you also have their corresponding test teams. So no one person usually even has understanding of the entire source code.

<comment><USER15> Not even Dave Cutler? I thought he single-handedly wrote the first version of the kernel. At least that is the legend:

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

Lots of great stories about him. One is recounted here:

[https://capitalandgrowth.org/articles/930/xbox-co-founder- my...](https://capitalandgrowth.org/articles/930/xbox-co-founder-my-life-in- games-seattle-hacker-ne.html)

<comment><USER16> The kernel is a pretty small part of the operating system. Development of Windows NT started in 1989[1], when RAM sizes of PCs were measured in MB, not GB, so there wasn't room for a lot of bloat. (NT 3.1 could run on a machine with 12 MB of RAM.[2]) Also, it wasn't the first kernel Cutler wrote. While Cutler is undoubtedly a brilliant programmer, I doubt he could keep the details of all the other parts of the system (graphics, etc.) in his head at once.

Other well known kernels were also written by very small teams. The first Unix kernel was written by two people and the first Linux kernel was written by one person.

[1] [https://en.wikipedia.org/wiki/Windows_NT#Development](https://en.wikipedia.org/wiki/Windows_NT#Development)

[2] [https://en.wikipedia.org/wiki/Windows_NT#Hardware_requiremen...](https://en.wikipedia.org/wiki/Windows_NT#Hardware_requirements)

<comment><USER17> > so there wasn't room for a lot of bloat

That's not how NT was seen at the time. It was quite bloated relative to other PC OSs. Of course modern OS features required a bit more overhead than the crazy world of windows 3.0.

<comment><USER16> I guess I should have said "a lot of bloat by today's standards"...

My first experience with NT was NT 3.51 on a 32 MB machine. If I remember well, it didn't feel much slower than Windows 3.1. But finally having a PC operating system that didn't crash all the time really made development much more pleasant and productive.

<comment><USER18> 32MB was a lot of memory back then. Typical machines at the time had 8. 16 was extravagant.

<comment><USER19> A lot of affordable machines a few years old even had 4M. I remember my dad upgraded from 4 to 8 and from Win3.11 to Win95. The computer had maybe 1 or 2 years, hardly more. It was around 1500€ (well, it was 10000 FRF at the time) when bought, with a 14" screen.

32M was insane, probably out of reach of all but rich homes.

Only a few years later (1 or 2) a classmate told us he had a computer with 128M. That sounded so ridiculous that we thought he was a mythomaniac or something. Turns out his dad was able to get a powerful workstation from work, and the first time we visited him we saw that mythical beast, and our mind were blown.

And right now the private working set of my start menu process is 27M...

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER20> Anybody interested in the history of NT should read _Showstopper!: The Breakneck Race to Create Windows NT and the Next Generation at Microsoft_

It focuses on Dave Cutler, the father of NT

<comment> pickle-wizard I read that book a few years ago. I've read several books about various computers projects and I usually leave with a wish that I could have worked on that project. After reading Showstopper, my main thought was, thank $deity I didn't work on that project.

I think it is because in the book Dave Cutler comes off as an asshole.

</comment></comment><comment><USER21> There was Prolog in the network stack configuration system. At least there was way back when.

<comment><USER22> "The Microsoft NT 4.0 kernel network driver contained a small Prolog interpreter to help puzzle out network interface cards"

Using Prolog in Windows NT Network Configuration

[http://web.archive.org/web/20040603192757/research.microsoft...](http://web.archive.org/web/20040603192757/research.microsoft.com/research/dtg/davidhov/pap.htm)

</comment></comment><comment><USER23> 500 GB strikes me as quite small. The entire Git repository (it sounds like Microsoft uses Git internally) must be a whole heck of a lot larger than this if there are over 60,000 commits every few weeks.

Still, it's a mammoth project, which makes it all the more impressive that it works (most of the time).

<comment><USER24> Keep in mind that to manage the insane scale, Microsoft internally hides git behind a custom virtual file system:

[https://vfsforgit.org/](https://vfsforgit.org/)

[https://github.com/Microsoft/VFSForGit](https://github.com/Microsoft/VFSForGit)

<comment><USER25> Whoa, they actually changed its name from GVFS (which clashed with GNOME)? I didn't expect that. Cool!

</comment></comment></comment><comment><USER26> The real question is: is it compiled with the same msvc compiler that ships in the SDK? If so, they don't even use C99. C89 all the way. That especially means no variable declaration anywhere in the function body.

<comment><USER27> While MSVC doesn't have full C99 support, MSVC supported most of the features that shipped in C99 that make it much less painful to develop in C quite a number of years before C99 support formally landed in other compilers. MS will probably never support full C99 because the demand isn't there, but it's certainly not ANSI C you are expected to write.

<comment><USER28> MSVC support C11 because it a prerequisite for C++17. The limits are you need to compile in C++, so the very few changes/incompatibilities between C and C++ always bend to the C++ choices. The preprocessor isn't what people used to have in C99 so some macro still not portable.

<comment><USER27> To the best of my knowledge (i.e. not updated since C++14), C++ is no longer a strict superset of C as of C99, and there are C99 features that are not available in C++, so I'm not sure that's the case. But plenty of overlap, for sure.

Here's a community wiki answer on SO: [https://stackoverflow.com/posts/47526708/revisions](https://stackoverflow.com/posts/47526708/revisions)

Extracted portion of relevance:

        > The following C99 features are not supported by C++:
        >
        > * restricted pointers
        > * variable length arrays
        > * flexible array members
        > * static and type qualifiers in parameter array declarators
        > * compound literals
        > * designated initializers

</comment></comment></comment></comment><comment><USER29> I'm actually surprised they use GIT internally. I would have thought they have their own custom VCS. It says a lot about the success of GIT.

<comment><USER30> They used to have their own VCS, but moved away fairly recently, 1-2-3 years ago

<comment><USER31> > They used to have their own VCS, but moved away fairly recently, 1-2-3 years > ago

TFS? [https://en.wikipedia.org/wiki/Team_Foundation_Server](https://en.wikipedia.org/wiki/Team_Foundation_Server)

<comment><USER30> no, as a sister comment of this mentioned, i think it was based on perforce, they didn't use TFS for this internal project AFAIK

</comment></comment></comment></comment><comment><USER32> Does anyone happen to know how the Windows shell (CShell?) is built? Winforms? WPF? UWP?

<comment><USER27> None of the above. It's GDI and the widgets are most similar to those available via MFC (this talking about the classic she'll, so Metro/UWP aside).

<comment><USER33> It always infuriated me that MS usually wasn't using the tools they gave to developers for their own stuff. I think it has got a little better in the last years. Now they seem to be using UWP to some degree. But before that they didn't use Winforms or MFC. WPF only for VS 2010 and up.

<comment><USER34> If you've ever used any other applications written in pure Win32 you would know why --- the efficiency difference is enormous. They did start using more managed code in the system starting with Vista, which resulted in all the complaints about it being slow and bloated. I suspect there's been even more of it added since then, because the Win10 explorer.exe on a recent quad-core i7 system with an SSD still manages to respond more slowly to actions like opening a folder than XP's on a 15-year-old PC with a regular HDD...

<comment><USER33> "If you've ever used any other applications written in pure Win32 you would know why"

I have written pure Win32 and I know that...

</comment></comment></comment></comment></comment><comment><USER35> [https://www.wired.com/2014/03/msdos-source- code/](https://www.wired.com/2014/03/msdos-source-code/)

</comment><comment><USER36> remember the MinWin project ? [https://en.wikipedia.org/wiki/MinWin](https://en.wikipedia.org/wiki/MinWin)

I wonder if it helped shrinking the code base too

<comment><USER17> Minwin was about moving code around. By necessity it required even more code to support the indirection and compatibility of programs expecting code in specific DLLs.

</comment></comment><comment><USER37> Makes me wonder if there exists an OS that is truly written from scratch designed for only modern hardware and devoid of all backward compatibility and bloat (like the JS frameworks ditching support for msie).

It would be certainty a very interested side project I guess.

<comment><USER38> Well, TempleOS (by the late Terry Davis) was designed from scratch to support only multicore x86-64 CPUs: [https://en.wikipedia.org/wiki/TempleOS](https://en.wikipedia.org/wiki/TempleOS)

</comment></comment><comment><USER39> (serious) how do I become a kernel engineer coming from a background of javascript and swift?

<comment><USER40> Learn C and how operating systems work.

</comment></comment><comment><USER41> That's a little surprising. I would have figured that outside the kernel/drivers, it'd be all C++.

<comment><USER32> I'd have expected much more to be in C#.

<comment><USER42> There's no reason to write OS components in a language that will inherently give you a performance hit before you do any real work.

<comment><USER43> Sure, unsafe all the way.

As note, Midori did power part of Bing during its existence.

And Microsoft security is now advising to move new development into a mix of C#, Rust and constrained C++ (Core Guidelines).

<comment><USER42> Unsafe sounds like a really bad word, but unsafe usually also means performant. I know that's not always the case, but usually. Rust falls in the exception to that rule category, for the most part, while C# does not. Also, the people typically working on these codebases, like Linux, are very senior developers and have code reviews being done by other very senior people. So while they definitely have had a lot of bugs related to security in the language, we don't have any examples of other languages implementing something anywhere near this size that didn't have as many bugs.

<comment><USER43> According to Google's security team 68% of exploits in Linux are due to memory corruption. Source, their keynote at Linux Kernel Summit 2018.

Check DoD security assement of Multics versus UNIX regarding ease of security exploits, and how using PL/I prevented the large majority of them. On the mobile now, the document is accessible at the Multics history site.

Or any deployment of High Integrity Computing OSes for that matter.

<comment><USER42> You could also say freebsd has far, far fewer memory corruption bugs. Is that the language, the small user base, or something else?

</comment></comment></comment></comment></comment></comment></comment><comment><USER44> > Windows 10 is the same (evolved) code base as the code base of Windows 8.x, > 7, Vista, XP, 2000, and NT

Err....it's been NT all along.

<comment><USER45> They're referencing way back when (before 2000) when it was just NT with a version number

</comment></comment><comment><USER46> > You can spend a year (seriously) just drilling down the source tree, more > than a half million folders

I would be more inclined to switch to Windows if its source tree were _smaller_.

My guess is that a big reason I prefer MacOS over Windows is that Apple has been much more willing to drop support for legacy hardware and old applications to keep the source code more manageable.

<comment><USER47> Oh come on. Be honest. I can tell just from the tone of this post that you'd _never_ switch to Windows.

<comment><USER46> That's not true.

It is difficult for humans to estimate how they spend their time, but my guess is that I've spent at least 35 hours recently exploring Windows 10: Changing various settings, installing software, asking Windows-specific questions of Google Search.

And I'm writing this on Windows. (Except for the Windows-specific questions, I'm not counting web use in the estimated 35 hours because of course the web mostly works the same way across the desktop OSes.)

I think computer users vary drastically in how much they value predictability in the software-based systems (or "environments") they use, and that I value predictability much more than the average user does.

I realize that it is unreasonable to hope never to be surprised at the response the system makes to an action of mine. But my response to being surprised is to try to understand how I could correctly predict similar responses in the future. For example, I might try to understand the reasoning of the designer of the part of the system in question. Or I might search for ways that I might have misinterpreted the situation. And I don't like it when I never reach an understanding of the surprising response.

Its source code's having half a million folders is a sign that Windows will never stop surprising me, which, all other things being equal, makes me less hopeful that spending time getting to know Windows will pay off for me.

 _Life_ of course will never stop surprising me. But to have any hope of getting anywhere in life or achieving any goal whatsoever, my brain must be sufficiently reliable and predictable. I see my computer as an extension of my brain that helps my brain be more reliable in the ways that will help me to succeed.

If you see your computer or the web site you are interacting with as a potential friend with agency of its own, then I can see where you might be offended by my original comment. I see computers and web sites as tools. Levers, if you will.

<comment><USER42> Windows 10 with WSL has enough Ubuntu features built in now that there's really no reason to use a Mac, since the "it has a Unix shell" comment doesn't work anymore. Your choices for applications are much larger on Windows.

<comment> pickle-wizard With the new ConPTY they also one of fix my last gripes about Windows. That the console sucks.

With all the changes that Microsoft is making lately I really wonder how long until Windows becomes free as in beer. With their revenue from services growing, they don't need the Windows licensing revenue as much. Making Windows free would also allow them to making Windows cloud servers cheaper. Allowing them to grow the ecosystem.

<comment><USER47> I switched from Apple to Windows 10 when Apple stopped offering decent "Pro" platforms. I need NVIDIA cards for the CUDA number crunching I do. (The Mac faithful say "b.b.but you can run an Nvidia externally over Thunderbolt." Ha!)

I even used to be an Apple employee.

Windows 10 is just fine. With a tiny amount of care to choose hardware that is all "happy path" (I run dual Intel Xeons, with a SuperMicro MoBo, and now dual Nvidia 2080 Ti for scientific processing), everything works fine. (Also, don't run third-party virus scanners. Just use what's built in to Windows!)

And things that don't quite work right on Macs, like 30-bit color, etc, work great.

I run Linux and FreeBSD in VMs. I don't use WSL much, I just build many things on Windows under Powershell if I don't need Centos or FreeBSD. I find that a lot of FOSS stuff works great on Linux and native Windows and not so well on MacOS because of "non-standard" choices about directory locations, etc.

It's best to give up your prejudices and give Windows 10 a try. Microsoft really did solve almost everything.

<comment> pickle-wizard My $dayjob gave us all Macs for workstations. Which is fine and dandy, but I spend all day in an RDP session as my job is automating Windows. Honestly Windows is fine and is getting better. I'm running the Windows 10 Insiders Preview so sometimes things get a little funky but still it pretty much just works.</comment></comment></comment></comment></comment></comment></comment>


C++ Dataflow/Pipelines Made Awesome - <AUTHOR> https://github.com/RaftLib/RaftLib <comment><USER2> Sweet. Looks like you can make thousands of asynchronous kernels and it doesn't kill perf (ran testsuite with qthreads..had to build that, looks like a threading library from Sandia national labs). Pretty cool. Seems like far better oversubscription handling than TBB or OpenMP.

</comment><comment><USER3> Cool to see this project again. I looked at it awhile back, and used it for a few small projects. Looks like the dev has been up to a lot of work in the interim. Any idea how long before we'll see a full beta release (assuming dev reads this?).</comment>


Ask HN: What are your thoughts on reposting? - <AUTHOR> I write in a data blog a decent amount, and really think readers here would like some of the posts and find them interesting. It's just so tough and decently lucky to get a post upvoted in the first 15 minutes or it gets lost.<p>Don't worry, not trying to get publicity for what I wrote here, just wondering if trying to repost an article a few weeks later would be reasonable and not looked down upon. <comment><USER2> From: [https://news.ycombinator.com/newsfaq.html](https://news.ycombinator.com/newsfaq.html)

> _Are reposts ok?_

> _If a story has had significant attention in the last year or so, we kill > reposts as duplicates. If not, a small number of reposts is ok._

> _Please don 't delete and repost the same story, though. Accounts that do > that eventually lose submission privileges._</comment>


Mobile outdoor augmented reality - <AUTHOR> http://www.tinmith.net/

<comment><USER2> I can imagine a sci-fi plot in the not too distant future where augmented reality becomes a part of daily life, so much so that instead of buying pretty things, people just buy basic objects in real world and upload hi-res skins for their objects that others can see. Instead of buying a $200 lamp, I can just buy a $10 one and upload the corresponding skin to aug-real network. When my friends visit my home, they can choose to see the real-life version of the aug version. Most people will end up just defaulting to aug version because it's so much prettier. This is no different than Myspace profiles and extending them to the real-world.

<comment><USER3> Gibson's Virtual Light and his more recent works feature something along those lines.

In Spook Country, people create virtual sculptures that exist at a specific point in space that you can go see. It's "there", but you can't see it unless you're hooked into the right part of the network that feeds the information to you.</comment></comment>


Bret Easton Ellis, the Art of Fiction No. 216 - <AUTHOR> http://www.theparisreview.org/interviews/6127/the-art-of-fiction-no-216-bret-easton-ellis <comment><USER2> I used to have a book of Paris Review interviews from the 60s or earlier. Hemingway, Faulkner, TS Elliot, Graeme Green... Really great stuff.

<comment><USER3> I just subscribed to the feed

</comment></comment><comment><USER4> (2012)

</comment><comment><USER3> Good interview</comment>


Choosing a Programming Language - <AUTHOR> http://the-world-is.com/blog/

<comment><USER2> There is no single best language. Instead, what you get from any sufficiently good programming language is a series of tradeoffs. Haskell, for example, provides the benefits of pure functions (lazy evaluation, composable memory transactions, ability to reason about code) but in so doing it takes away your ability to arbitrarily mutate state and perform IO. That's a tradeoff. Python provides a clean, easily readable syntax that leverages whitespace. But you can't define multi-line lambdas. That's a tradeoff. Most of the languages on the author's list use garbage collection, yet another trade off.

Importantly, it is nigh on impossible to understand the pros and cons of these tradeoffs unless you learn the language first. So get a dart board out and pick a language at random. Learn it well enough to find things you don't like about it. Then learn another language that fixes the problems you had with the first and figure out what you don't like about _that language._ And so on.

Also, be aware that this process will never, ever end. Because there is no single best language.

Except Haskell ;)

<comment><USER3> > it takes away your ability to arbitrarily mutate state and perform IO

No. Haskell requires that you declare where IO is allowed (via the type). Once you assert that you admit mutable state (ST) or arbtirary IO (IO), then you are free to use them.

<comment><USER4> In fairness, Haskell makes it more awkward to deal in mutable state and arbitrary IO. Like how not using goto in a more mainstream language makes it more awkward to have arbitrary control flow. Debugging is annoying when I can't stick a println or puts in any arbitrary function. (The solution of course is to have small functions and print them. If your Haskell function is over 20 lines long you're probably doing it wrong.)

Of course, Haskell also means if your program compiles, 90% of the time it runs fine. I love that about it. (Unit tests are still required for the things the compiler can't catch, but its a major win regardless)

<comment><USER3> > Debugging is annoying when I can't stick a println

You might not know about Debug.Trace? [http://www.haskell.org/ghc/docs/latest/html/libraries/base/D...](http://www.haskell.org/ghc/docs/latest/html/libraries/base/Debug- Trace.html#v:trace)

<comment><USER4> Thanks very much! Thats just what I wanted :)

</comment></comment></comment></comment></comment><comment><USER5> Analysis paralysis!

The computer is a machine. It understands one language. Everything else is sugar on top. The language you should choose is the one that exists at the right level of abstraction for the problem you're trying to solve. That's a very academic way of saying, "choose the right tool for the job."

Personally I'm of the opinion that you can get really far knowing C and Common Lisp. They represent two fundamentally different models of computation and all of the other languages (save the Smalltalk offshoots and obscure ones I haven't had the pleasure of experimenting with yet) are essentially sub-sets of functionality from one or both of these two languages.

It's too easy to get caught up in the "feature creep," of all of the languages available today. Some will claim "immutability by default," is a feature. It's not. Any sufficiently sophisticated evaluator of a language can stratify a program into a process capable of emulating a machine that can treat all memory as "immutable by default." It's important to remember that often these languages are created to solve a specific problem and then evolve over time to become more general. It is best, in my experience, to just go straight to the source and work down to what you need.

<comment><USER6> > Personally I'm of the opinion that you can get really far knowing C and > Common Lisp.

Yup. I advocate a fast running & low level language like C plus a quick to get started with lots of libraries language like Python.

At the end of the day, unless pure algorithms are the deliverables (and it may very well be), it is really about the libraries and ecosystem. In the majority of cases, it is simplest to re-use code someone already wrote. Who cares if this language compiles to assembler and is super functional and does all kinds of fancy tricks, can it read from Postgres or talk to RabbitMQ? Does it have an easy way to parse JSON or generate uuid's, or do I have to now spend time writing db drivers, json parsers before even starting on the real problem?

<comment><USER7> I agree that it's enough to know well one low level (or medium level) language and one high level language. For me, I decided a while ago that the two languages will be Java and Javascript. It was an easy decision since I use those languages at work, they both have healthy and growing ecosystems, and active communities.

</comment></comment></comment><comment><USER8> The graphics in this are not very helpful, inconsistent and in some cases wrong. Your 3-d size/cpu/memory was impossible to read, there was no origin.

Secondly, the intended uses and paradigms were wrong. Lisp can do object- oriented programming with the CLOS and I'm pretty sure C++ was designed to be a general purpose language. In the intended uses, you have so many categories that are one off or very similar to others: what's the difference between web, web application and client-side?

Also, the graphics were not sharp and looked hazy. And the languages choices were not consistent, you have Clojure on some of them but not others. And in general, benchmarks don't mean anything without context.

This article has very little insight and has quite bad presentation.

<comment><USER9> Another wrong issue in the article is that Haskell was not created with the intent of it being a general purpose programming language.

</comment></comment><comment><USER10> I don't understand these questions:

 _"Is optimization of speed premature while productivity languishes?"; "Are semantic elegance and lexical simplicity just means by which to further our productive capacity?"_

The flowery language is confusing me. Is there any real content here? I've never heard anyone talk about programming languages like this. Writing like this just makes it harder to understand and seems like putting on airs

</comment><comment><USER11> The grids comparing language features are mostly incorrect, generally towards a stereotype that's common but incorrect, or very dated.

</comment><comment><USER12> C not for applications? (or LISP for that matter) A little bias showing there.

<comment> muuh-gnu Not only bias, but obviously pure ignorance too, at least with respect to Lisp. In his table, Lisp seems to be unsuitable both for meta programming and multiple dispatch, which always have been touted as Lisp's major features.

<comment><USER13> It's apparently not aspect-oriented, either.

The article is full of wrong information, wrong logic, and wrong conclusions. I feel embarrassed for the author, who must have spent a lot of time to produce something that is an intellectual net loss for anyone who reads it.

</comment></comment></comment><comment><USER14> I write Python & Objective-C most of the day, used to work for several years in a PHP/JS shop and have to code in Ruby and/or C from time to time. I recently felt the urge to learn a new language which is distinctly different from what I know so that I can learn new things. I considered Erlang, Common Lisp, Clojure, Go, Haskell, Scala and Elixir. I plan to use it for server side web development and if possible for command line scripting (where I currently oftentimes use Python). After much back and forth I ended up having to decided between Clojure, Erlang or Scala. I then went with Scala because it seemed to offer the best of both worlds: It has a good actor library with Akka, it has macro support, it is functional, it offers good OOP support (to ease the transition for me), and as a boon it also allows to develop for Android, something I may want to tackle in the future. So far I'm really happy. The only downsides are that the REPL starts up pretty slow (I'm used to Python, which starts up way faster), and package installation (especially of Java packages) confuses me at times. I still may want to go to Clojure or Common Lisp from here, but right now I'm happy with my choice.

<comment><USER15> > Scala... REPL starts up pretty slow.

I wonder if your setup is faulty. My Scala REPL takes a couple of seconds to start. Admittedly longer than Python's, but not enough to worry about it. I'm on an old clunker laptop too.

Also, you may be interested in this course on Functional Programming in Scala run by Martin Odersky himself. It started last week. <https://www.coursera.org/course/progfun>

<comment><USER16> I'd say that this sounds pretty too slow, too. My REPL starts in less than a second.

</comment></comment></comment><comment><USER17> I tried to take the quiz but the app the OP built it in on FB kept asking over and over and over for permissions I wasn't willing to give it. :(

</comment><comment><USER18> I suspect like a lot of people who came late to programming my choice was initially dictated by simple pragmatic concerns:

What can I learn quickly? ...that has a fairly simple forgiving syntax ...that has a ton of online help and resources ...that I can get a prototype product out simply with ...etc - I think it's a not atypical set of concerns.

For me, because of all the online help and community and ease of getting something useful working quickly I landed on ruby, at first using rails.

My analysis may have been simpler than the OP but as I learned more I was able to understand more of what I needed, where my choices were good, where not. I was able to pick up other tools and languages as my interest was piqued.

So no one choice is right for everyone but this approach worked for me, but more than anything the key is to drop the analysis and learn SOMETHING ...once you start it's easier to pick up more.

</comment><comment><USER19> The RedMonk chart measures language popularity by activity on GitHub and StackOverflow. Top business languages Cobol, Transact-SQL, and PL/SQL aren't included at all in the 84 languages listed so the popularity measurement criteria is flawed.

The Redmonk measurement also seems to be gamed because the second cluster in the chart includes some languages with backers who are heavily promoting the popularity of the language, including using Stack Overflow as their primary documentation effort and creating numerous shell projects on Github.

</comment><comment><USER20> Seriously how many people here write programs to solve k-means or n-body problems? Who fucking cares how many lines of code it takes to write k-means, and who fucking cares how long it takes to execute or how much memory it consumes.

Most of us write software that moves bits from an API or DB to a screen. If we're lucky we translate a couple of those values to a color or something.

Why are benchmarks so focused on code no one writes? How many successful YC companies aren't CRUD apps?

Type the problem you have into google, write your stuff in the language that has the most concise stackoverflow answers on how to solve that problem.

<comment><USER21> If you are in the games industry, you solve n-body problems all the time. If it's a multiplayer game, you work with distributed n-body problems. Even if all you did was a CRUD app, if you truly became successful, memory footprint and CPU usage will matter. The 300x slowdown from Ruby _will_ sting. But for everybody else, you're right. None of this is relevant, in the same way that a 5000 hp car engine isn't useful to anybody but Batman.

Personally, I am very fortunate to __not __think about nothing but CRUD apps all the time. Working with games, all the fun things like sort speed, path finding, etc are real world problems :)

<comment><USER20> And how many games programmers are thinking.. hmm... should I write my physics engine in ruby?

<comment><USER21> Zero, but other languages like Haxe, Actionscript, Javascript, and the like are becoming more relevant as higher quality browser games become more prominent.

</comment></comment></comment></comment><comment><USER22> The graphs seem to imply that functionality wise C# is the best choice.... I don't know much about languages but if that's true I wonder why it's not taught more often in schools, most classes I've seen are either for java or c++, and then assembly and matlab

<comment><USER23> The case could be made that universities teaching Java are already catering too much to industry. For my part, I would vastly prefer working with a lisp, ML or other esoteric language while in school. There's no shortage of time afterwards to work with more pragmatic languages & frameworks.

edit : not meant to imply that Lisp or Ocaml are not "pragmatic", just that the likelihood of working with them as a professional developer are substantially lower than Java / C# or Ruby / Python.

<comment><USER24> Why does it have to be limited to a single language at all? Exposure to multiple languages should be the norm.

</comment></comment></comment><comment><USER25> How does a non-programmer write a guide to programming languages that has any value? Full of errors and misinformation gleaned from far too many hours reading websites and far too few hours writing code.

</comment><comment><USER26> I'm pretty curious as to how the author came up with the answers in that quiz.</comment>


Human skin cells transformed directly into motor neurons - <AUTHOR> https://medicalxpress.com/news/2017-09-human-skin-cells-motor-neurons.html <comment><USER3> wait for the third party confirmation of their results.

papers with findings exactly like this one have been found to be complete and total fabrications numerous times over the last few years.

<comment><USER4> Im of the opposite opinion. Other groups have shown more extreme conversions. For example, one group has shown conversion of skin into eggs cells.

<comment><USER5> OP is right. This is state-of-the-art experimental science. Needs to be confirmed before opening the champagne bottle.

</comment></comment></comment><comment><USER6> "Avoiding the stem cell phase eliminates ethical concerns raised when producing what are called pluripotent stem cells, which are similar to embryonic stem cells in their ability to become all adult cell types."

Wait... what??? Why is this even remotely a concern?

<comment><USER7> The concern is that embryonic stem cells (ESCs) are known to form tumors (teratomas) when transplanted subcutaneously in mice; induced pluripotent stem cells (iPSCs), which are generated by reprogramming ordinary cells into ESC- like pluripotent cells, also form teratomas. This creates challenges for a lot of proposed cell transplantation protocols because pushing pluripotent cells to differentiate into a mature cell type (such as motor neurons) is not 100% efficient, and the transplantation of even a small number of residual pluripotent cells could lead to tumorigenesis. The direct reprogramming method described in this article bypasses the pluripotency step, which could make it safer for clinical use.

<comment><USER8> That doesn't seem like an ethical issue.

<comment><USER9> Can't ethically perform trials on humans if you can accidentally and easily give them cancer.

<comment><USER10> Or maybe also people who have religious views about stem cell research?

<comment><USER11> >religious views about stem cell[s]

I find this hilarious. Not knocking your comment or anything, just fairly sure religious texts didn't say 'thou shall not induce artificial stem cell growth'

<comment><USER12> > Not knocking your comment or anything, just fairly sure religious texts > didn't say 'thou shall not induce artificial stem cell growth'

Well many religious texts disallow altering your body in any way - <USER2> Witnesses, for example, even prohibit blood transfusions, and in Islam it's haram (a sin) to have tattoos.

Pretty certain this would also prohibit doing experimental stuff with stem cells.

<comment><USER13> serious question: is tattoos being haram open to interpretation? i know the bible for example can be seen an conflicting itself in many places.

<comment><USER12> I'm neither Muslim nor an Imam, but apparently a majority of Muslims seems to believe it: [https://www.thoughtco.com/tattoos-in- islam-2004393](https://www.thoughtco.com/tattoos-in-islam-2004393)

<comment><USER13> thanks.</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment>


JayData - A JavaScript Library To Access/Manipulate Online/Offline Data  Sources - <AUTHOR> http://jaydata.org/ <comment><AUTHOR> via: [http://www.functionn.in/2012/12/jaydata-javascript- library-t...](http://www.functionn.in/2012/12/jaydata-javascript-library-to- access.html)

From what it seems, JayData is a cross-provider, cross-layer JavaScript data access wrapper for sources like WebSQL, SQLite, IndexedDB, HTML5 localStorage, MongoDB, OData, Facebook or YQL.

Developers want to provide a uniform API to use those services. Will indeed be useful for mobile and web app, esp . for seamless switching between various storage mediums.</comment>


Show HN: One Dollar Feedback - <AUTHOR> https://feedbacktoaster.com/?ref=hn <comment><USER2> I haven't decided if it really matters to me (if it would really affect the decision to purchase a review), but one thing I was looking for on the page was the background/qualifications/experience/etc. of the reviewer(s). Again I want to emphasize that I don't even know yet if I really care. It could be a five-year-old doing the reviews and maybe I'd still purchase. In fact that could be a good option!

I like that you have actual reviews that you did at the bottom. It means that exposure of some kind is included in the price of the service, which you may want to emphasize as a free perk.

For the 20 eyes and 40 eyes option, it would especially be nice if you could guarantee that the "eyes" are from lots of different cultures, backgrounds, ages, professions, etc., and not just a circle of friends or something. Or kinda the opposite actually, that the eyes are from people in an industry/culture/segment/whatever relevant to the website being reviewed. Maybe have further options here for "eye type". :)

Anyway cool idea. I especially like that you have actual video review samples on the page.

<comment><USER3> You know I could let my dog look at your page and see if he barks :)

I haven't thought about the variety of the 40 eyes reviewers yet, I was still concerned to get all the people together but yesterday I got a lot of new reviewers on board. I offer the reviewers two options, they can give an anonymous review if they feel the need for it (so they can give their best roast) but they are supposed to link a social media account to their review so people can follow up with them. That would be a way how you could see how diverse the crowd was and if they all have a technical background or so.

In the next release I plan to offer a better interface to explore the many- eyes-reviews and for new reviewers to join the review process.

</comment></comment><comment><AUTHOR> Hi everyone!

Since my service is all about feedback, don't hesitate to leave some harsh feedback here :)

</comment><comment><USER4> This needs more reviewers.</comment>


The robotics revolution is here, and it's changing how we live - <AUTHOR> https://www.nationalgeographic.com/magazine/2020/09/the-robot-revolution-has-arrived-feature/ <comment><USER2> "If it works, it's a machine. If it doesn't work, it's a Robot" \- Kane Hsieh, Root VC

<comment><USER3> I prefer Buckbee's Law: "The value of a robot is proportional to the degree it does not look like a robot."

<comment><USER4> Japan would like a word with you.

<comment><USER5> _Captain Bryant toka, me ni omae-yo._

</comment></comment></comment></comment><comment><USER6> Can we please change the title of this post? "And it's changing how we live" is not only click bait, it's not even in the original article.

<comment><USER7> Understand your annoyance but _" it's changing how we live"_ is in the raw HTML source tag _< title>_. It may have been the most convenient text (e.g. maybe default title in RSS reader) to copy paste into the submission form. From browser's view source:

      <title>The robotics revolution is here, and it's changing how we live</title>

</comment></comment><comment><USER8> I've recently got a roborock vacuum, and it's actually been life changing. I have a number of pets, and not having to vacuum 3x a week or so has been incredible. I had a roomba when I was a kid and it sucked (or not I suppose). The roborock has lidar and it's super meticulous.

<comment><USER9> What model have you got? I've been looking and it a seems robot vacs have finally started to be _good_.

So looking to make a purchase between now and Christmas-ish.

<comment><USER10> Not GP; I have a Roborock S5.

But it hasn't run yet. I have yet to get around to rooting it to avoid privacy issues.

[https://www.iot-tests.org/2019/02/from-the-land-of-smiles- xi...](https://www.iot-tests.org/2019/02/from-the-land-of-smiles-xiaomi- roborock-s55/)

On the upside, apparently once it is rooted and dustcloud installed it is apparently even more responsive as it pretty much stores the database on itself.

[https://github.com/dgiese/dustcloud](https://github.com/dgiese/dustcloud)

As usual, disclaimers apply, YMMV etc etc.

</comment></comment></comment><comment><USER11> Robots are still very much special-purpose devices, so I would call them just machines, like a dishwashing machine.

The moment they become more versatile we can call them robots. E.g. when the same machine can bake an egg, do the dishes, and vacuum the floor.

<comment><USER12> I use robots in my day job for industrial automation. $12k to 60k, SCARA or 6-axis robot arms, from Fanuc, ABB, Epson, Denso etc.

We call them "robots" and not just "machines" or "actuators" like the rest of the equipment because, in comparison with the rest of the industrial LEGO with which they interact, they are incredibly versatile.

They're not sci-fi "Do what I mean" versatile, no, but if the requirements change (or are likely to change) then they're probably going to be your easiest path to accommodate those changes, without buying new parts. Sure, you can, say, design in a shim pack to precisely set the travel of a pneumatic cylinder (to make one of six degrees of freedom able to be changed), but with a robot you just bolt the fixture down to the concrete at woodworker precision and let the robot programmer (sigh...) accomodate any tolerance you may need to take up.

</comment></comment><comment><USER13> This feels like a Wired article from 2003.

<comment><USER14> "If you're like most people, you've never met a robot" is a very odd opener. I have seen a roomba? And ridden in a car with autopilot? And outside the tech bubble, I'd expect that nearly all factory workers have "met" a robot by this point.

</comment></comment><comment><USER15> If relationships with China go further south, I've been wondering/worrying if that might eventually (and sadly) affect the supply of cheap components to young, developing 'makers', many of whom ultimatately tend to end up in this line of industry after years of tinkering.

The knock-on effect could be huge in the future.

<comment><USER16> I've worried about this too, but it is a two way street. China's industry can't stop supplying these components to manufacturers without taking a hit. The extra supply that feeds Makers won't go away unless the production itself goes away. In spite of all their efforts, this is still Capitalism, and there are still willing buyers.

<comment><USER17> The Chinese government is boneheaded enough to do something like that, definitely. It would of course be a bad idea in the long run as production would simply move.

</comment></comment></comment><comment><USER18> We also have things like this where a drip coffee machine would do exactly the same thing: [https://images.wsj.net/im-223921?width=1280&size=1.33333333](https://images.wsj.net/im-223921?width=1280&size=1.33333333)

<comment><USER19> If it cleans up that would be a pretty nice pour over station.

</comment></comment><comment><USER20> If the robotics revolution is here, why is productivity growth so low? American factories underwent dramatic automation during the 1950s and 1960s, and productivity growth was very high at that time. Maybe that was the real robotics revolution?

<comment><USER21> It's all so new, and far from being fully deployed, to be seen in economical averages.

<comment><USER20> Then why use the word "here"? Your point is that this is something that is still nascent -- maybe we will see results in a few years. It is not "here" yet.

<comment><USER22> Because people who want to risk a little for some interesting gains should be doing it now, not when it's in the averages. It gets in the averages years after all the purchases, setup, customization and consulting is done.

<comment><USER20> Then why use the word "here"? Your point is that this is something that is still nascent -- maybe we will see results in a few years. It is not "here" yet.

<comment><USER22> It was not my point, but I think our definitions of 'here' differ. I don't need to wait until everyone has it to consider it 'here'. I consider it here when I can start doing it.

</comment></comment></comment></comment></comment></comment><comment><USER23> Every example they give is a demo, not a production system.

<comment><USER24> A few they mention are production systems at fairly high volume. The floor scrubbers from Brain Corp and shelf scanners from Bossa Nova are running in hundreds of Walmart stores, and the delivery robots from Starship are running in dozens of cities.

<comment><USER23> I've seen the Starship robots rolling around, always with a human watcher following along.

</comment></comment></comment><comment><USER25> The meaning of the expression 'to be here' when applied to a technology has changed in recent years. consider the sentences:

The robotics revolution is here.

Self-driving cars are already here.

The expression 'to be here' no longer has any specific meaning.

</comment><comment><USER26> I like robots but bullshit.

There is no Robotics revolution and won't be until the Paradoxes are broken. We have toys until then.

</comment><comment><USER27> Is a vendo machine considered robot?

<comment><USER28> Only if you need to make your word quota for the week.</comment></comment>


Rules Engine or Event Collaboration - <AUTHOR> http://uglylispcode.wordpress.com/2009/01/09/rules-engine-or-event-collaboration/

<comment><AUTHOR> There are still some outstanding questions. They comprise these list of items:

1\. Limit set of rules and events. 2\. Reduce cyclic triggering of rules and events. 3\. Testing. 4\. Tools. 5\. Utilization of system as soon as possible. 6\. Abstraction.</comment>


We're creating an app to help create a perfect resume in minutes. Any feedback? - <AUTHOR> https://www.kickresume.com <comment><USER2> Looks like Kickresume has been in process for a couple of years. I'm curious about the story of its evolution.</comment>


Architecture of a Database System (2007) [pdf] - <AUTHOR> http://db.cs.berkeley.edu/papers/fntdb07-architecture.pdf <comment><USER2> A great deeper resource is the readings in databases collection (redbook) - [http://www.redbook.io/](http://www.redbook.io/)

<comment><USER3> The previous edition is a great read: [http://pages.cs.wisc.edu/~nil/764/](http://pages.cs.wisc.edu/~nil/764/)

(Haven't read the new one... YMMV)

</comment></comment><comment><USER4> Also relevant:

[http://www.bailis.org/blog/how-to-make-fossils-productive- ag...](http://www.bailis.org/blog/how-to-make-fossils-productive-again/)

Choice quote from there: > Kill the reference architecture and rethink our conception of "database." The article titled "Architecture of Database System" should be considered harmful. If a system doesn't have a buffer pool, it can still be a database, and, in fact, I'd prefer not to read any more papers on "databases" that have buffer pools. Instead, I'd prefer you shock me with your radical, new (and useful!) conception of a data management platform.

<comment><USER5> Yes. And this paper by Stonebreaker et al was the catalyst for that kind of thinking: [http://www.vldb.org/conf/2007/papers/industrial/p1150-stoneb...](http://www.vldb.org/conf/2007/papers/industrial/p1150-stonebraker.pdf) and his presentation: [https://youtu.be/DJFKl_5JTnA](https://youtu.be/DJFKl_5JTnA)

Also, see this blog post: [http://www.dbms2.com/2008/02/18/mike-stonebraker- calls-for-t...](http://www.dbms2.com/2008/02/18/mike-stonebraker-calls-for- the-complete-destruction-of-the-old-dbms-order/)

<comment><USER6> I wonder how this would compare to things like IMS. It's one of few non- relational databases quite widely used for OLTP, and it has a reputation of (possibly) being really fast.

</comment></comment></comment><comment><USER7> The CMU Advanced Database Systems lectures are also really good: [https://www.youtube.com/playlist?list=PLSE8ODhjZXjYplQRUlrgQ...](https://www.youtube.com/playlist?list=PLSE8ODhjZXjYplQRUlrgQKwIAV3es0U6t)

</comment><comment><USER8> If you are interested in the life of a query but in a modern distributed database, this blog post from my colleague at Fauna illustrates the data flow of a global transactional database [https://blog.fauna.com/the-life-of-a- faunadb-query](https://blog.fauna.com/the-life-of-a-faunadb-query)

<comment><USER9> do you happen to know how those nifty ASCII diagrams were created?

<comment><USER10> I would recommend Monodraw: [https://monodraw.helftone.com](https://monodraw.helftone.com)</comment></comment></comment>


Hatchful – Create stunning logos in seconds - <AUTHOR> https://hatchful.shopify.com/ <comment><USER2> I feel like some of the comments here are neglecting the fact that the average designer (as with all things) is mediocre, just as the average book isn't a great read, the average logo isn't iconic.

Nor does the average plumbing business or doctor's office need a "corporate identity" including from scratch typefaces from a foundry, etc.

Maybe if they hired someone the result would be better, but it's also possible it would be worse. Does it really matter, anyway, it's a logo, not a critical safety system, the success a business hardly hinges on its logo starting out.

</comment><comment><USER3> I wonder if logo generators such as Hatchful could have designed a better logo for the Library of Congress than Pentagram did recently?

[https://www.underconsideration.com/brandnew/archives/new_log...](https://www.underconsideration.com/brandnew/archives/new_logo_and_identity_for_library_of_congress_by_pentagram.php)

<comment><USER4> "Library Library of Congress"

<comment><USER3> Also "Libr Library of Congress ary"!

</comment></comment></comment><comment><USER5> A few of these are nice enough, but not "stunning". You really do need to pay a talented human for that, currently.

I'm a little concerned that automated creative services like this are encouraging a race to the bottom, a morass of bland identikit brands.

This is similar to the problem faced by music recommendation services: they don't surprise you, and most people like the occasional surprise.

Designers must be irritated and worried by logo design automation. They already have to scrape around for gigs, and find their work hugely undervalued.

<comment><USER6> These automated logos are good for businesses that are just starting out. Once they're profitable, they're more able to invest their branding, and pay good money for good designers.

<comment><USER7> That's very good insight: like so many things you can start out successfully with something simple and expand/rebuild it later.

Frankly I'd worry about a company that invested a lot on its logo early. NeXT did and while they had other successes (cough OS X) the company itself didn't make it.

</comment></comment></comment><comment><USER8> Interesting; I can see this having value as an idea generator. I have an app in progress that will need a logo eventually. I've got a couple of thoughts sketched out, but don't really like any of them so far. I just ran through this tool a couple of times and got three good starting points that I could tweak and, I think, be pretty happy with.

</comment><comment><USER9> I've been looking for a tool like that for a while for a small open source project. Most of the other logo generators I've found only give you a single file and then you're on your own.

This one generates an archive with a few interesting alternatives like a favicon or a transparent background version. For someone not versed into graphic design this is helpful.

</comment><comment><USER10> A proper logo is certainly a good start, but you need a well thought through Corporate Identity if you want to continue with your website. Think about the colors, the fonts etc. This must all match the logo or it looks strange. I use the color tool from Adobe [0] a lot to figure out matching colors.

[0] [https://color.adobe.com/create/color- wheel](https://color.adobe.com/create/color-wheel)

</comment><comment><USER11> Hatchful has potential. Most of the better ones are paid though, such as LogoMaker[1] which was acquired by Deluxe and Taylor Brands[2] which landed a $15 million series B.

[1] [https://secure.logomaker.com/logomakerv3/](https://secure.logomaker.com/logomakerv3/)

[2] [https://www.tailorbrands.com/lp-home](https://www.tailorbrands.com/lp- home)

</comment><comment><USER6> Looks like this was launched 10 months ago or so?

I was wondering if shopify had acquired logojoy.com but it looks like this is their own take on it.

</comment><comment><USER12> Well they are not "stunning", but pretty nice for a dev who does not want to pad a designer for a small project or blog.

<comment><USER13> Wrong!

I am getting tired of this meme that people who can code - 'devs' \- can't pick up a pen and design a logo. It is a practically xenophobic assertion.

The 'dev' type might admit to dwelling in their mother's basement, they might admit to having hygiene issues but the stereotype 'dev' type would never admit to using 'Shopify'. 'Shopify' is designed for people that are not developers. It's a hosted platform with all the 'dev' potential of mySpace or Duplo Lego. It is not what a true 'dev' wants.

So this logo maker is not for a 'dev' audience. It is for people that have a new business they want to get online. Not a 'small project' or a 'blog', but an ecommerce effort that hopefully makes money. For this audience they may want to involve a 'professional designer' at some stage, but, starting out, without the business realised, this tool makes it easy for them to get a placeholder, something to work with.

A business has to be built before someone else can take a look at it and design the logo that is the distillation of the many things that go into that business. During this phase a placeholder is fine.

<comment><USER14> You are overreacting. I agree with the OP. I am a dev. I've designed a few websites before and can find my way around Photoshop or Illustrator. But I would rather just use this tool and generate a logo in 10mins for my side project. Definitely useful.</comment></comment></comment>


"The Dirty Little Secrets of Search" – Additional Information - <AUTHOR> http://cocaman.ch/wp/2011/02/the-dirty-little-secrets-of-search-additional-information/

<comment><USER2> IMHO the problem is Google's reliance on the pagerank algorithm. Prohibiting automatic back-linking is fighting the symptom, instead of coming up with a cure.</comment>


Australia's first electric aircraft has begun test flights - <AUTHOR> http://www.abc.net.au/news/2018-01-04/first-electric-plane-passenger-flights-in-australia-to-rottnest/9304424 <comment><USER2> Article gives you the idea that it would be taking pax to Rottnest Island (a popular tourist destination) but it's only registered as a 'recreational' so the only ppl going to Rottnest would be pilots themselves or a non-paying pax.

Payload is 200kg so that is basically two people and one suitcase.

30 minutes reserve might be enough for short hops but I've just finished reading various articles written over the years by Richard Collins (who writes a lot about safety) and he states that he _always_ had a hard rule of a one hour reserve.

Still, the operating costs are crazy cheap. If they made a plane that had 3 hours range (2 hrs flying, 1 hr reserve) at 100+ knots with more payload, I'd be interested.

<comment><USER3> Tesla is driving (heh) battery energy density up.

<comment><USER4> Not really, also while Tesla does work on batteries it's more Panasonic which makes he batteries for Tesla, LG chem and the likes that actually work on that.

<comment><USER3> Tesla drives down cost via scale, it is driving energy density for downstream segments: EVs, drones, e-planes, et al.

<comment><USER4> It doesn't work like that there are more "denser" batteries than what Tesla uses, their density isn't that impressive while they benefit from it its not something they are driving.

P.S. Drones use LiPo batteries.

<comment><USER3> They're driving down mass-market LiIon specific energy cost ($ per Wh/kg) via Gigafactory. No?

<comment><USER4> They are reducing the cost of Wh/Kg maybe but they are not necessarily increasing the Wh/Kg ratio Tesla isn't pushing for super high density.

The cost isn't the issue here it's the weight a Tesla battery pack is heavy as fuck and Tesla really hasn't worked that much on reducing its actual weight because there are easier paths to make a car lighter.

Drones use LiPos because at these scales LiIon isn't viable.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> I wonder if there'd be an increase or loss of carbon footprint compared to gas, when most of electricity produced in Australia is from coal?

<comment><USER6> Coal power plants are roughly as efficient as an internal combustion engine (around 40%) and considering the power transmission losses, charging losses, electric engine inefficiencies and so on, any electric vehicle has worse overall efficiency than the equivalent gas vehicle. Electric vehicles only make sense from a pollution reduction point of view if the power is generated from renewable sources.

<comment><USER7> Typical coal power plants have practical electric efficiency 40% but total energy efficiency is 60-70%, because they produce electricity and _useful heat_.

Also 40% is a theoretical (lab) value for a non turbocharged diesel engine - in practice most engines are operated out of their optimal range, they are turbocharged (a turbo increases power output at the cost of decreasing compression ratio and thermal efficiency), there are losses in the transmission, hence efficiency is much lower than 40%.

BTW, in lab, a coal plant with a steam turbine can achieve over 50% electric efficiency (some reports say even 60% is possible). They are too expensive to be used on large scale, though.

<comment><USER8> How is the useful heat used? I know some places have central heating, so the hot water is just piped throughout the city, but if not that, what would they do with it?

<comment><USER9> The term that the original poster didn't include is "Cogeneration" [0]. Another use case would be desalination in areas without an adequate supply of freshwater.

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

<comment><USER8> Ya, I get that, it just doesn't seem to be always the case that you'd find something to do with the heat, especially given proximity of the coal plant to places that could use it. It wouldn't seem to work well for Australia, at first glance (no serious heating needs, no desalination plants).

</comment></comment></comment></comment></comment></comment><comment><USER10> Funny remark about it being silent. In the text they mention that it's silent when it's gliding. Well, duh... in the video they say it's just silent.

If you look up a video on youtube, you'll hear that the propeller still cause a lot of noise. So it's only more silent from the ground.

</comment><comment><USER11> I look forward to the day when solar panels are efficient enough that an aircraft can appreciably recharge its batteries while gliding.

<comment><USER12> I looked for a figure and found this suggestion for sunny days: 800W/m².

If the plane uses 20kW while flying, this would mean you'd need 25m² of 100% efficiency solar panels to fly without draining the battery.

10.5m wing span, depth uncertain but looks to be under a metre, and we're not even halfway there. The fuselage isn't suitable for a solar array. The tail, maybe a bit.

Verdict: ignoring solar panel mass and fragility, you could probably already design something that would get you another five minutes during your hour of powered flight time, but I think you'd have to change things up a lot to increase it much beyond that.

I think if you were trying to do such a thing seriously, you'd try to increase wing and body top surface area.

Note that the plane can regenerate 2–5kW while gliding, making the propeller act as a windmill. (Source: [https://www.avweb.com/videos/Video-Pipistrel- Alpha-Electro-A...](https://www.avweb.com/videos/Video-Pipistrel-Alpha- Electro-Aero-2015-223855-1.html), [https://www.avweb.com/videos/Video-Flying- Pipistrels-Electri...](https://www.avweb.com/videos/Video-Flying-Pipistrels- Electric-Airplane-224345-1.html). Other interesting details in those too.)

<comment><USER11> Some numbers from the conventional-engine version: [http://pipistrel- usa.com/models/alpha-trainer-tech.html](http://pipistrel-usa.com/models/alpha- trainer-tech.html)

The wing area for this aircraft is 9.29m^2, and the glide ratio is 17:1 at 74mph. Let's say you fly for an hour and then glide through a descent of 12,000 feet (ceiling is 18,000 at max weight). That gives you about 90 minutes of solar absorption time.

Assume we only fly at noon on clear sunny days to get 1kW/m^2 of solar energy (nice round number). That's 13.9kWh of incident energy on the wings. If we can capture that at 25% efficiency -- today's best commercial cells are around here, although about twice the efficiency has been achieved by researchers -- it's 10.5 minutes of additional powered flight, or about 3 minutes of climb. (I think that 3 minutes of climb yields an added 3660 ft of altitude or 11 minutes of glide.)

4kW from propeller generation during the glide phase yields another 6 minutes of powered flight.

I agree with your conclusion for this particular aircraft's geometry; it's not enough to sustain flight indefinitely. Still, other solar aircraft have demonstrated that sustained solar flight of manned aircraft is possible, and one such aircraft, Solar Impulse 2, has even circumnavigated the globe (albeit interrupted by a few stops along the way).

<comment><USER12> That all sounds about right, except for the generation part (see below) which is but a minor factor anyway.

Indefinite solar-powered flight is understandably not a goal of Pipistrel for this craft; it will be interesting once it gets to the point where it's a more commercially feasible design goal.

I love how you rounded up to 1kW/m² to get a nice round number, then multiplied by 13.9!

It's worth noting on the propeller generation point that it's going to be more efficient not to use it if you're trying to maximise range: it will diminish your glide ratio; it's mostly for when you actively want to go _down_ , and might as well retrieve and store most of the lost kinetic energy. If the Trainer gets 17:1, I'd expect the Electro would get roughly that 17:1 if merely idling, but lower if regenerating; I don't care to speculate on the numbers—I'm not a pilot or an electric car expert and it'll take me too long to calculate the actual energy rates involved. But physics more or less decrees that it can't regenerate more power than it will take to regain the additional lost altitude. (I say only "more or less" because of things like gravity assist manoeuvres, which are fascinating but not applicable to craft like this.)

I was rather sloppy in the way I brought the regeneration up in my earlier comment. It was true, but not relevant because of this last paragraph. I didn't think it through when I mentioned it at first.

<comment><USER11> Agreed. It is probably too generous to assume the ideal glide ratio and simultaneously assume generation via the prop.

Depends on a lot of stuff though. It's not a question of energy creation -- the energy of the system includes energy in the air. Generally freewheeling generates more drag than a stationary propeller (google "ESC brake vs freewheel" to see what R/C hobbyists have to say about this). However, you may have an unusual situation where maintaining the ideal glide velocity requires braking, and in such a case it is presumably more efficient to brake via the propeller.

Suffice it to say that even in the ideal case, this particular aircraft would have trouble maintaining flight via solar power, but other aircraft are proving that this is a viable possibility.

</comment></comment></comment></comment></comment><comment><USER13> Are there denser ways to store electrical energy? Hydrogen fuel cells maybe?

Seems like you need something much lighter than lithium-ion batteries to even begin to fill the role of passenger planes.

<comment><USER14> Hydrogen fuel cells would also make refuelling much faster. In the video they claimed an hour recharge time for the small plane. While you can get more parallelism as you add more batteries it still seems like making it much faster would be beneficial.

<comment><USER15> Probably not as much as you'd think, though.

Cars powered by compressed natural gas take longer to fill than gasoline- powered ones[1]. I can't find it right now, but Edmunds did a long-term test of a natural gas Honda Civic. One of the persistent complaints was long fill times at public high-pressure stations. Natural gas has about 4x the energy density of Hydrogen, so the problem becomes even worse.

<comment><USER8> Ya, that explains the huge lineups to fill up natural gas vehicles in Thailand. They have plenty of gas, but the infrastructure needed to distribute it is tricky.

</comment></comment></comment></comment><comment><USER16> "Australia's first electric passenger plane takes to the skies"

Well, one passenger, more like a sports plane than an airliner. Still very awesome :D

<comment><USER17> Very cool, right? I had a brain fart when I read the title on the front page thinking it was a self-driving electric plane, for some odd reason, and my heart skipped a beat.

>It costs about $3 an hour to run the plane's engine, one-tenth the cost of a fuel engine.

This sounds really great and at only €65,000 ($78196.30USD) it sounds like a steal that will scale nicely once it can carry the 5+ passengers it intends to. Someone in the comments mentioned it also sounds like a great idea because there will be many less moving parts. The plane also switches to more of a glider-mode once I imagine it's at altitude. A silent ride sounds kind of peaceful when I think of the drone of a normal plane.

<comment><USER12> Where's the €65,000 number coming from? I found [http://www.flypipistrel.com/price-lists/PIPISTREL-ALPHA- ELEC...](http://www.flypipistrel.com/price-lists/PIPISTREL-ALPHA- ELECTRO-12-2017.pdf) which suggests €159,000.

That datasheet also says 700 cycles to 75% battery capacity, rather than the "about 1,000" of this article.

The $3/hour figure doesn't seem to me to match the other numbers, either: 60kW for takeoff and 20kW for cruising; let's ignore takeoff (it's rounding error) and just call it 20kW. 20kWh for $3? At residential rates, 20kWh will cost more like $5. But I don't know what commercial rates are for electricity; maybe they do get power that much cheaper than residential persons.

<comment><USER18> Price of electricity varies greatly depending on where you are. My residential rate is about $0.13/kWh, so completely consistent with the article.

<comment><USER12> Interesting. I was going off my experience in Victoria, combined with quick searching for Perth which showed about the same rates, then subtracting the appropriate N% for paying on time (a pricing model that I wish was illegal—expressing it as penalties for overdue payments would make life much easier) which generally gets it down to 20–25¢/kWh. 13¢/kWh is _much_ lower than I've ever seen in Australia, not that I've looked all over the country.

</comment></comment></comment></comment></comment><comment><USER19> This is really exciting. I wonder if batteries will ever be able to power a 50 passenger aircraft, without having to extend the wings out too much to fit more batteries/lift for the extra weight.

I can't see the 15 hour, 400 passenger flight planes going with batteries in our lifetimes but it's cool to see things starting to go that way.

</comment><comment><USER20> An interesting idea, my question is how high can you fly before temperatures lower the efficiency of the batteries? Let us assume a pressurized battery compartment to eliminate the air pressure issues, anyone familiar with the energy costs to keep cargo areas relatively stable? That might be equivalent for a battery compartment.

<comment><USER21> Well on pressurized aircraft the cargo areas are generally inside the pressure vessel so temperatures will be similar to the passenger areas. Also the batteries will be producing heat when in use, so I would imagine cooling would be a bigger issue, especially when the plane is baking in the sun at the airport for the whole day in the summer.

</comment></comment><comment><USER22> The plane is a Pipistrel Alpha Electro [0]. Designed and built entirely in Slovenia. Kind of a weird/misleading article as it presents the plane as Australian.

[0] [http://www.pipistrel.si/plane/alpha- electro/overview](http://www.pipistrel.si/plane/alpha-electro/overview)

<comment><USER23> Additionally I'm not sure I would call a 2 seater, a "passenger plane".

<comment><USER24> Then what would you call the person in the second seat, who isn't flying the plane?

<comment><USER22> >Then what would you call the person in the second seat, who isn't flying the plane?

Instructor. These are designed pretty much exclusively as LSA trainers.

<comment><USER25> Touring motor gliders are often sold to couples that want to travel together. I've known people who own/fly: Dimona H36 and Taifun 17E. I have a family member who recently purchased a TL Sting S4 (a microlight) for similar purposes.

<comment><USER26> Not this one. Pipistrel brings their planes to EAA Oshkosh every year and their internal combustion planes are marketed as touring motor gliders. But the electric Alpha Electro is just touted as a training plane because its range is so short.

<comment><USER21> I don't see how practical it is as a trainer though. At least when I was learning, those planes wouldn't get much if any downtime. You will still need more time to charge than it does to just throw some avgas in the plane. Also it would be impossible to do some parts of your flight training in this plane because of its tiny endurance.</comment></comment></comment></comment></comment></comment></comment>


Cops Kill Because We Gave Them the Legal Framework to Do It - <AUTHOR> https://www.theamericanconservative.com/articles/cops-kill-because-we-gave-them-the-legal-framework-to-do-it/ <comment><USER2> "Rather than burning and looting, protesters should turn their ire on lawmakers and judges who facilitate police immunity."

Let's see...

Lawmakers make it hard to register to vote, remove polling places, and make districts such that minority voices (party or ethnic or race) are minimized.

Our national executive branch is conducting a propaganda campaign against making voting easier.

Lawyers cost a lot of money. The people that cops kill don't have a lot of money, typically.

This is one of those dumb "you should work within a system that makes it practically impossible to work within the system" things.</comment>