Inkscape 1.0 Release Candidate - <AUTHOR> https://inkscape.org/release/inkscape-1.0rc1/ <comment><USER2> Native MacOSX Support!! "Inkscape is now a first-rate native macOS application, and no longer requires XQuartz to operate. The minimum required operating system version is OS X El Capitan 10.11.

It has a standard Mac-style menu bar (rather than a menu bar within the window). Keyboard shortcuts now use the command (⌘) key rather than the control key. Retina display screen resolution is now supported. The build is now cleanly 64-bit, a prerequisite for macOS Catalina 10.15 and beyond. It comes bundled with Python 3 to power Inkscape extensions. "

<comment><USER3> Unfortunately, this native version is quite laggy compared to the previous XQuartz releases. I wonder how it compares with a Linux version in a VM; my previous experience suggests it may work better.

<comment><USER4> Yeah same issue here, much worse performance than the XQuartz releases. Dragging objects, especially arrows, is extremely laggy and awful. I've moved to Affinity Designer for now, which is better in almost every way except that unfortunately it is not easy at all to add LaTeX equations. Also the UI looks somehow feels less native macOS-like than the XQuartz versions, they're still not even using NSOpenPanel which is a huge pet peeve for me

<comment><AUTHOR> Apparently they're aware of it: [https://mastodon.art/@inkscape/103993588384088165](https://mastodon.art/@inkscape/103993588384088165)

> Yes. This is related to GTK and is holding the macOS release back while > Win/Linux graduate from beta. If you want to connect with the developers > they can be found at: > [https://chat.inkscape.org/channel/team](https://chat.inkscape.org/channel/team)

So if you want to help resolve it, perhaps check there :)

</comment></comment></comment></comment><comment><USER5> I'm really struggling with the multiple comments saying that inkscape has buggy UI or bad UX.

I used inkscape extensively about 5-6 years ago and had a really good experience. A couple of months ago I used the up to date version for some ad hoc work (designing a logo) to the same effect.

I think this is a great milestone for a great app. Thumbs up to the people making this possible!

<comment><USER6> Despite being amazing applications, Gimp and Inkscape receive these complaints a lot - and so did Blender until recently.

I think one category of complaints leveled against the UI/UX is these projects is that they are "fine". They are good enough to get real work done. And if you're fine with fine, then the objections seem needlessly nit-picky... and they are!

But these apps are for creative projects - you open them up to do creative work. It's certainly possible to do creative work in a "fine" environment, but it's a lot more enjoyable in an environment that sparks joy (tm).

The Blender transformation has been incredible: it went from "fine" to "sparks joy" despite the fact it's a massively complex behemoth. Sometimes I open Blender just because it makes me happy to see the UI. Open it up, extrude and scale a cube a bit, and close it. Ahh.

For me Aesprite (pixel editor), Ableton Live (music workstation), and Pico-8 (game maker) have the same feeling. It's just fun to work with the tool for _anything_... and double-y fun when you're working on something fun: it compounds the enjoyment.

When I first used Sketch when I was on Mac I had that feeling too. Going back to Inkscape after that was "fine". I really like Inkscape. It's my go-to vector editor, does everything I need, and I'm very grateful it exists. But I'd never open it up just to feel happy. I'd love to see it magically do a Blender.

<comment><USER7> >The Blender transformation has been incredible: it went from "fine" to "sparks joy" despite the fact it's a massively complex behemoth. Sometimes I open Blender just because it makes me happy to see the UI! Open it up, extrude and scale a cube a bit and close it. Ahh.

I usually reference Blender circa early 2000s as one of the worst UIs not intentionally designed to be bad I've encountered. I'd say it had steps more like "gah", "bleh", "usable", "ok", "fine." I haven't used it in awhile but I imagine its light-years ahead of what I recall.

GIMP as long as I can remember has been "ok." It lacked streamlined features available in Photoshop and most complaints for the UI were basically centered around "why isn't this Photoshop."

Unless there are significant workload improvements, no one likes to learn a new UI when ultimately they just want to get their current work done. Software is a tool for most people and UI designers should always keep that in mind before making drastic changes/"improvements."

<comment><USER8> If you're interested, the 2.80 release notes show the recentish UI redesign. Current version is 2.82 which looks much the same. [https://www.blender.org/download/releases/2-80/](https://www.blender.org/download/releases/2-80/)

The first shot compares it to 2.79, which is descended from the 2.50 redesign in 2009.

I just fired it up for the first time in a while (got a 3D printer!) and have had to relearn a bit, but I'm a fan overall.

Not shown in those screenshots, it now defaults to left-click selection! Significant muscle memory to retrain for that, but it's nice to have it match every other piece of software I've ever used.

</comment></comment></comment></comment><comment><USER9> Congrats!

Can anyone explain what led them to choose this release as 1.0, as opposed to any of the others from the past decade and a half?

Just curious if they always had a goal of meeting a certain featureset, level of reliability, cross-platform quality, etc., and now they did.

Or if it's pretty arbitrary, or something else.

Since there's no explanation on the page, and I can't find anything recent in their News section.

<comment><USER10> Move to Python3 and some breaking changes in the extension API along with other big changes like theming, proper high DPI support, 64 bit & native app on mac. Then the usual glut of use case feature improvements to boot.

</comment></comment><comment><USER11> Initial release was 16 years ago, long time coming.

What is Inkscape? "Inkscape is a free and open-source vector graphics editor. This software can be used to create or edit vector graphics such as illustrations, diagrams, line arts, charts, logos, icons and complex paintings. Inkscape's primary vector graphics format is Scalable Vector Graphics (SVG); however, many other formats can be imported and exported."

SOURCE: [https://en.m.wikipedia.org/wiki/Inkscape](https://en.m.wikipedia.org/wiki/Inkscape)

Adobe Illustrator, is Inkscape's main non-open-source pay-to-use competition and is 33 years old:

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

——————

Use both, they're both great products depending on your needs.

<comment><USER12> Elaborate on differences? When do you use which?

<comment><USER11> Adobe is much easier to learn & use and works well with Adobe's other 30-50 products depending on what is being done. Professionals tend to use it, so if you need to work with others, likely the best choice.

Inkscape is free, open-source, and not cloud based — and is less user friendly, has a much higher learning curve. GIMP, which is comparable to Photoshop, works okay with Inkscape, but is not comparable to the ways Adobe's products work together.

Personally, I enjoy using Inkscape because I value the freedom it provides. Including knowing that if I create an digital asset with it and backup the build used it create it (OS, Inkscape, etc) - very likely I'll be able to edit the file as it was when I created it; same is not likely true for Adobe products, especially over long time periods.

Highly recommend if you're using either that you also understand the SVG file format and stick to it as much as possible.

If you have any additional more specific questions, happy to try and answer them. Love vector based graphics.

<comment><USER13> Why wouldn't Inkscape work with other tools/people as well, it uses SVG after all.

<comment><USER11> SVG is a specification, how it's rendered and what's supported vary from application to application, version to version, etc. Personally, seen some very nasty bugs related to moving from one rendering engine to another. If you're working with professionals, I assure you few if any would want the additional over head of a teammate using another tool.

Beyond that, as I mentioned, GIMP is not comparable to Photoshop. If you're going to be using Photoshop with vector based digital assets, not aware of any reasonable justification not to use Adobe's vector application over Inkscape.

Beyond that, Adobe's asset management and workflow management applications don't compare to anything that's available to anything that's available within Inkscape.

If you're aware of any counter claims, would welcome any more specific thoughts you have on topic.

</comment></comment></comment></comment></comment><comment><USER14> I found the 1.0 beta unusable on Windows and filed [https://gitlab.com/inkscape/inbox/issues/879](https://gitlab.com/inkscape/inbox/issues/879), which seems to have been completely ignored.

I find the 1.0 release candidate also completely unusable, and have filed [https://gitlab.com/inkscape/inbox/issues/2307](https://gitlab.com/inkscape/inbox/issues/2307). It looks like just now it might finally be getting some attention. (I _did_ deliberately express my opinions much more strongly than the first time.)

But until multiple critical issues are fixed, I _can't_ use this, and must stay on the 0.92 series.

<comment><USER15> > I think dropping all this feedback in one place is probably better for > triage than me opening lots of individual bugs

You presumably know better than this. The standard, decades-old advice for submitting issues and bug reports is the opposite -- one problem per issue submission, so discussion and triaging individual issues is possible.

With most community-supported open source projects, casual drive-by braindumps are likely to be ignored. Reduce the friction to the developer as much as possible.

<comment><USER14> There comes a point when _so much_ is broken or in need of changes, especially when most of it's essentially in one _area_ (in this case, the win32 GTK theme it's using) that that traditional wisdom (which I normally follow) ceases to be true. I know that were I developing on such a thing I would genuinely prefer one big report _to begin with_ than a large number of tiny bug reports. I might or might not then split it up, depending on how much effort things would be. In this case, I think that _most_ of the issues could be fixed (or mitigated) by one person modifying the theme stylesheet, fairly quickly. Then there are some things that I simply don't know whether they're the same underlying thing or not, and splitting them out if they're the same root cause is a nuisance when you're a developer—you just end up needing to coalesce them again.

<comment><USER16> Considering that the small group of developers are all volunteers, I think you owe it to them to write your bug report in a way that is actually usable by them. One way would be creating one bigger issue with your suspected root cause (the win32 GTK theme) and a long, enumerated list of the specific issues, their reproduction, etc. (including screenshots). Ideally, each item on the list links to a new issue that follows the standard model for bug reports. Reacting as strongly as you did in the issue thread will definitely not get anything fixed.

Please consider the human and, here, the limited resources of the developers.

</comment></comment></comment></comment><comment><USER17> The problem with Inkscape, as well as other open source gui apps, is that there's nobody to lead a holistic UX QA process, and so they're full of enough bugs, edge cases, and general UX fail, that it's a chore to use the app, and you're constantly worried that you'll hit something big enough that you can't complete your work. I've had this happen often enough with libreoffice that I've stopped using it.

<comment><USER18> I really hate this statement. You're asserting that because the project doesn't have somebody in a dedicated role they have bugs, unspecified issues, and subjective "problems". Not only is it a logical fallacy, it asserts nebulous "faults" that can't be addressed because they're so ill defined.

None of what you're asserting is true of Inkscape. I've been using it for 10 years and while the UI/UX isn't familiar, there's nothing wrong with it. It isn't chock full of bugs or "edge case" (whatever the hell that means) and like all UI/UX it has rough edges AND that's no different from any other sufficiently complex Application.

Does it follow Adobe's UI/UX paradigm? No. Is that bad? No. If you started out using an Adobe competitor in the 90s then you might be familiar with alternatives, that's where I started and I can't stand the UI/UX in Adobe products to this day.

<comment><USER19> It feels like it wasn't designed, but _grew._

<comment><USER18> That's the nature of most mature sufficiently complex software. They don't start out as a set of user requirements cleanly laid out that are developed in a straight shot waterfall process.

Instead they grow organically over time and are a reflection not just how things are implemented but also of when they were implemented.

<comment><USER20> The difference is it with software that has product management, it can grow and shrink. Features can be dropped, deprecated, or re-worked into a more appropriate presentation. With OSS it seems like everything is additive, since you have no idea what users are using what features.

The blender 2.50 release was awful for me, since it broke so many of my workflows, but the UI absolutely needed a revamp, and I have incredible respect for the team throwing so much away to make something better.

I wish more open source software would delete more things in order to provide a better or more thought out user experience.

I'll also note that telling users that their sub-par user experience doesn't mean that the application has bad UX is foolish. That's what user experience is. And it's not a unique position; look at the comments here. The number one complaint is UX. These people ARE the users. I can't imagine more direct feedback than that.

</comment></comment></comment></comment></comment><comment><USER21> There are some awesome things in here (taken from [https://wiki.inkscape.org/wiki/index.php/Release_notes/1.0](https://wiki.inkscape.org/wiki/index.php/Release_notes/1.0), thanks Vinnl), here are my highlights:

\- HiDPI support

\- Touch pad and touch screen pinch to zoom (YES!!!)

\- The canvas can be rotated and flipped (probably great for hand drawing, would be way more useful if possible by touch)

\- GTK 3

\- Pressure sensitive pencil

\- Interactivity for UI mockups

\- Autosave is on by default

\- Plotter extension automatically converts things to paths

\- Unified raster tracing

\- Better Mac OS integration

While the UI has apparently been polished a whole bunch, I think most of my other comment moaning about it still applies - and that's really sad, especially when you want to market this as a mile stone release everyone should try. You'll still end up turning off a lot of people, I'm afraid.

<comment><USER22> "Pressure sensitive pencil"

I assume this was only missing in the MacOS version, because I used a wacom tablet with inkscape already 10 years ago.

<comment><USER23> Pressure sensitivity was only working on the caligraphy tool, not on the pencil! This is an huge improvement - The rendering of the pencil tool is way faster for me and i suppose pencil lines are plain paths with an strokeWith, so the resulting svg would have way less complextion on the path data, i guess. Not checked yet. :- )

<comment><USER22> Oh, that is good news!

</comment></comment></comment></comment><comment><AUTHOR> Release notes are being drafted here: [https://wiki.inkscape.org/wiki/index.php/Release_notes/1.0](https://wiki.inkscape.org/wiki/index.php/Release_notes/1.0)

<comment><USER24> > Inkscape now supports HiDPI (high resolution) screens natively. :D

<comment><USER25> .. and now mostly unusable on 1280x800 screens.

</comment></comment></comment><comment><USER26> Inkscape helped me bring several projects to life, thank you to all devs. The last boardgame I released was completely designed with the previous version of Inkscape

</comment><comment><USER27> >Windows Smartscreen blocked...

Thanks Microsoft... At least you can override this. Would be helpful tho if you actually "smartly" "screened" stuff instead of resorting to the "this file is new/unknown and thus potentially dangerous" metric.

<comment><USER21> It detected the virus called "Open Source".

</comment></comment><comment><USER28> We used Inkscape for a print asset in 2010. At the time it really struggled with:

a) Lots of layers, large resolution b) Rendering accurate printable colors after calibration

After many long nights we gave up and redid it in Illustrator. Inkscape is a fantastic product though, so it was extremely disappointing.

Does anyone know if these features have improved since?

<comment><USER29> I recently had a major struggle with it's inability to export to CMYK. I eventually found a way to get my graphics into CMYK by exporting to PDF plus an assortment or ad-hoc scripts for conversion. That seems like a real deal- breaker for most professional print applications. I still love Inkscape though.

<comment><USER30> Inability to export to CMYK seems like a huge drawback for the printing industry. RGB colours cannot be represented correctly in print. Being able to work in and export to CMYK is pretty much necessary for any kind of professional printing work.

</comment></comment></comment><comment><USER31> Congratulations to the team on the release.

I was reflecting on the Open Source UI debate recently because I was helping a family member do some document layout stuff in Scribus. Certainly these tools can have a daunting UI but the existence of these free alternatives (Blender, GIMP, Scribus, Inkscape, etc) is so important, especially as the existing tools in these ecosystems move towards an even more unaffordable subscription pricing model.

The ability for people without access to either pirated copies or student subscriptions to start playing around with, for example, Blender as a way to get started in 3D modelling, is a huge benefit to the world.

And it was ultimately easier to do what we needed in Scribus than in Word so I think there's an extent to which we have Stockholm syndrome for existing UI.

</comment><comment><USER32> This is quite exciting! I have started using Inkscape to draw diagrams for use with LaTeX a few years ago and I like it a lot. (There is an option to export PDF+LaTeX with allows you inline code.) For more precise stuff which requires programmatic handling (e.g. algorithm visualisations) I can just write out an initial SVG and edit that by hand afterwards. Maybe now is a good time to look into some customisation options, it seems there are lots of them with the 1.0 update.

</comment><comment><USER33> This release was discussed 6 months ago: [https://news.ycombinator.com/item?id=21001969](https://news.ycombinator.com/item?id=21001969).

For discussion purposes, moving from Beta to RC doesn't make a new topic, i.e. the discussion tends to be substantially the same.

Edit: Even when a project goes from one version to another, there's rarely anything new in the thread about the new version, because the comments are nearly always about the project in general [1]. For example, in the present case, you'll find a few comments about XQuartz being removed (something which sounds like a major new development), but the vast majority are just about Inkscape in general. There's nothing wrong with that, but we need to limit the number of times it happens, or HN's front page would mostly be discussing the same projects over and over. Obviously there are exceptions in unusual cases, but when it's the same project, with the same version, going through two different statuses (like Beta to RC or actual release), you will be hard pressed to find the slightest difference in the threads.

That makes this post a duplicate by HN's rule (see [2]). I won't bury this one, but when this comes up again in a few weeks, let's not have a third thread.

Nothing against this project, of course. It's just that front page space is the scarcest resource HN has [3].

[1] [https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...](https://hn.algolia.com/?dateRange=all&page=0&prefix=false&query=by%3Adang%20%22project%20in%20general%22&sort=byDate&type=comment)

[2] [https://news.ycombinator.com/newsfaq.html](https://news.ycombinator.com/newsfaq.html)

[3] [https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...](https://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=by%3Adang%20scarce&sort=byDate&type=comment)

<comment><USER25> You linked discussion of _`v1.0-beta1`_ , but actual discussion is about _`v1.0-rc1`_.

<comment><USER33> That's the point. For the purposes of HN threads, there's no difference.

[https://news.ycombinator.com/item?id=22445850](https://news.ycombinator.com/item?id=22445850)

<comment><USER34> Sigh! This kinda micromanaging herds doesn't work, you are wasting your time :(

<comment><USER33> I wish you were right, because it would be a lot less work. But herd dynamics alone don't produce anything like HN's front page. HN is actively curated and always has been. The site is a set of feedback loops between the elements of its system: community, software, and moderation.

If upvotes alone were deciding everything, the front page would consist of the few hottest topics repeated over and over, plus the indignation and sensation du jour. [https://hn.algolia.com/?dateRange=all&page=0&prefix=false&so...](https://hn.algolia.com/?dateRange=all&page=0&prefix=false&sort=byDate&type=comment&query=%22upvotes%20alone%22%20by:dang)

The reason why unregulated hivemind behavior composes to a dumb and unstable outcome is not that the people contributing are dumb. It's that they're only using a small part of their attention. If everyone here would deeply reflect before upvoting, flagging, posting, etc., about whether that action making the site more interesting in the long run, we'd get different results. But people don't put that level of attention into what they're doing here, nor should they—it's a lot of work, and everyone has more important things to worry about. What that means, though, is that the hivemind is mostly acting reflexively rather than reflectively ([https://hn.algolia.com/?dateRange=all&page=0&prefix=true&sor...](https://hn.algolia.com/?dateRange=all&page=0&prefix=true&sort=byDate&type=comment&query=reflective%20reflex%20by:dang)), which is bad for a site like this.

The solution is to have a small number of users (i.e. the mods) specialize in worrying about that, i.e. putting full attention into the site as a whole, and reflecting on it and regulating it (or helping it self-regulate) at that level. Then you get complex feedback loops between the big system (the community: large population, sporadic attention) and the little system (the moderators: tiny population, focused attention), which makes the site more unpredictable and interesting. Edit: software is also a critical part of this.

<comment><USER34> To have paid staff manually micro-regulating like this isn't what I call a solution. You're simply prodding the herd with a stick, and your message is virtually drowning amongst the other ones.

You cannot be imperative, top-down to a community and expect that to work.

"For discussion purposes, moving from Beta to RC doesn't make a new topic" <\-- kinda trying to convince

"For the purposes of HN threads, there's no difference" <\-- almost resorting to authority

That tone and kind of discourse is ... unfortunate.

It's similar to the Wikipedia principle, don't say something is amazing, explain WHY it's amazing. Then you will perhaps convince 10s or 100s of people that will not enforce your rules but perhaps convince other members of the same. I just hope your rule is right :)

In other words, a community cannot be sustained by being regulated by privileged people, poking them here and there. A community needs to regulate itself and their individuals need to grow themselves.

By the way, such a (humble) message would be worthy of being colored in a distinct way to give it more priority.

But given the abysmal lack of development (and also the current state of features, ew) on the HN site, I doubt that such a feature would ever emerge. In fact, the only thing that makes HN worth visiting is its users. The website itself is horrific.

</comment></comment></comment></comment></comment></comment><comment><USER35> I've been learning to use this just recently, as part of considering purchasing this pen plotter from the Evil Mad Scientist, [https://shop.evilmadscientist.com/productsmenu/846](https://shop.evilmadscientist.com/productsmenu/846)

I had no idea it is also actively maintained and reaching stable, I hope vector graphics make a big comeback in many more construction-art kind of ways than just mobile apps or webverts.

</comment><comment><USER36> PSA, you can use Inkscape to edit text in (some) PDF's.

Just note (as it says when you import it) to use the internal importer as otherwise you won't have editable text.

Saved me a bunch of work already.

[https://twitter.com/gnyman/status/1243103422313836544](https://twitter.com/gnyman/status/1243103422313836544)

</comment><comment><USER37> Downloads: [https://inkscape.org/release/1.0rc1/platforms/](https://inkscape.org/release/1.0rc1/platforms/)

On Linux, it was easy to test:

Grab it via [https://inkscape.org/gallery/item/18047/Inkscape-09960d6-x86...](https://inkscape.org/gallery/item/18047/Inkscape-09960d6-x86_64.AppImage).

        wget https://inkscape.org/gallery/item/18047/Inkscape-09960d6-x86_64.AppImage

        chmod +x Inkscape-09960d6-x86_64.AppImage

        ./Inkscape-09960d6-x86_64.AppImage

They finally updated the UX. Though the only thing I notice is my theme sticks better (could be a matter having gtkrc set locally)

Anything related to inkscape and gimp being powered up and having the functionality of Illustrator and Photoshop (without the bloat and background services) is very openly welcomed.

The stuff that I use something like inkspace for (Pen tool, SVGs) and Photoshop (very very basic photo editing, resizing, exporting) doesn't need a huge hulking application.

That's not to mention:

\- Blender for 3D: [https://www.blender.org/](https://www.blender.org/)

\- Inkscape, Gimp, and Blender, are all scriptable in two ways (headless) and extensions in-app (headless, in app):

Inkspace: [https://wiki.inkscape.org/wiki/index.php/Using_the_Command_L...](https://wiki.inkscape.org/wiki/index.php/Using_the_Command_Line), [https://inkscape.org/develop/extensions/](https://inkscape.org/develop/extensions/),

Gimp: [https://www.gimp.org/tutorials/Basic_Batch/](https://www.gimp.org/tutorials/Basic_Batch/), [https://wiki.gimp.org/wiki/Extensions](https://wiki.gimp.org/wiki/Extensions)

Blender: [https://docs.blender.org/manual/en/dev/advanced/command_line...](https://docs.blender.org/manual/en/dev/advanced/command_line/render.html), [https://docs.blender.org/manual/en/dev/advanced/scripting/in...](https://docs.blender.org/manual/en/dev/advanced/scripting/index.html)

What drives the development of these apps? I'd guess Adobe making the applications heavier/bulkier over years, and pushing a cloud model where an app tries to become a bigger part of daily life than 9/10 people want it to be.

My guess is most Illustrator users like the app, but don't want a daemon running in the tray 24-7. And why invest in saving files in Adobe when there's solutions that work for all files, (and it may require a local network filesystems for sizes that big, cloud won't be practical)

<comment><USER38> The UX or the UI?

<comment><USER37> The UI toolkit (and for me, the theme, but possibly that's just due to gtkrc settings)

I can't go back to edit at this point.

</comment></comment></comment><comment><USER39> I am an incredibly huge fan of Inkscape and the monumental efforts put forth by the developers of this amazing piece of software. I cannot do half of the things I've done in Inkscape that I've tried to do in Visio.

</comment><comment><USER21> Are the tons of glitches and incoherent UI fixed? I recently tried Inkscape again (on arch, so I assume a relatively recent version) and it was still pretty bad (although better than a few years ago) :s

Snapping is a nightmare. Layers are kind of hard to work with. Elements don't keep their ratio by default. The way the canvas border works by default makes no sense. The UI is just not sensibly arranged in many places.

Since they talk about crashes I hope at least the spontantous crashes while copy/pasting are gone now. A nice bonus would be touchpad zooming (at least moving around now works smoothly).

It's still the best FOSS vector editor out there, but 1.0 is a big release. I hope it now has the polish it deserves.

<comment><USER40> Inkscape snapping had always worked well for me. I love the fine-grained control available on the snapping panel. I do find the layering / grouping controls confusing.

</comment></comment><comment><USER41> > The user interface has been changed to utilise a more recent version of GTK+ > (GTK+ 3)

with GTK 4 just around the corner

</comment><comment><USER42> Even with elimination of XQuartz, there is still little rationale to use Inkscape, if you are actually trying to be productive towards a result.

Just pick up Affinity Designer.. One time purchase... awesome UX, on par with Illustrator. For simpler, quicker result, Keynote has awesome diagram tools.

<comment><USER43> Except if you use Linux are care about freedom :-P

<comment><USER42> ahaha "muh freedom!"

</comment></comment></comment><comment><USER44> Great news. Our company's logo was entirely designed in inkscape

</comment><comment><USER45> Performance on complex vector graphics is abysmal with Inkscape :(

</comment><comment><USER46> Important milestone for important application.</comment>


Tesla Model 3 Hits Production - <AUTHOR> https://mobile.nytimes.com/2017/07/03/business/tesla-model-3-elon-musk.html?action=click&module=Discovery&pgtype=Homepage <comment><USER2> There is no way on god's earth that Tesla can ramp up production like that. I suspect the first cars that they sell will roll off the VP tools and not off the main lines anyway. With a lack of product maturation the quality of the first cars will be appalling too.

I'd bet that the guys at the coal face are wanting to kill their PR people right now for making promises that they know will get broken.

Disclosure: work in the automotive industry designing high volume production lines and planning vehicle launches.

<comment><USER3> I'm reminded a little of how the Blackberry board supposedly watched the iPhone announcement and insisted it was fake, as there was "no way" someone could build and profitably sell a phone with that feature-set.

Tesla might not do what they're promising. Hell, they _probably_ won't do what they're promising. But pronouncing something impossible on the basis of industry experience can be a dangerous thing. Some things are considered unthinkable and impossible only until someone finds a way to do them, after which they are retroactively declared obvious and inevitable.

Certainly, Tesla seem to have the right ideas: Electric cars are inherently simpler, mechanically speaking, than gasoline cars, and they're leveraging this further by reducing the options and variability on the Model 3 to the absolute minimum. They also hired Peter Hochholdinger from Audi as VP of production, and he is pursuing a pretty extreme form of Industry 4.0[1] — with everything in their production process being instrumented, automated and designed for easy replacement.[2]

[1] [https://en.wikipedia.org/wiki/Industry_4.0](https://en.wikipedia.org/wiki/Industry_4.0) [2] [http://www.mljournal- digital.com/meleadershipjournal/october...](http://www.mljournal- digital.com/meleadershipjournal/october_2016?pg=1#pg1)

<comment><USER4> If electric cars are so simple, why is the Tesla Model S so unreliable?

[https://www.truedelta.com/Tesla- Model-S/reliability-1095](https://www.truedelta.com/Tesla- Model-S/reliability-1095)

Conversely, the Toyota Prius is one of the most reliable cars. Yet it is mechanically complex with both an internal combustion engine _and_ an electric motor, plus a CVT. So clearly engineering skill and manufacturing quality are bigger factors than the drive train.

<comment><USER5> How unreliable are ICEs these days - maybe its just me, but I've never had an engine problem in nearly 20 years of owning cars. Electrical problems, suspension problems, drainage problems - had all of them but never had a problem with the actual engine.

<comment><USER6> What is a drainage problem?

<comment><USER5> I had a Passat a few years back and it had a design flaw where the tray that holds the battery has drain holes that can get blocked and if they do it overflows into the interior of the car.

I used to park my car under trees that dropped leaves which blocked the battery compartment drainage holes and as I am in Scotland it can get quite wet. Ended up with car filled with 1" of water.... Interior of car had to be stripped, dried out and put back in by the dealer.

<comment><USER7> I'm always tempted to test drive stylish German cars but I swear 90% of the maintenance horror stories I've heard in the last 15 years have involved a German car.

<comment><USER8> VW in particular has a pretty poor reputation for long term reliability (also see Consumer Reports et al). The stories I hear about American cars, by contrast, tend to be poor reliability soon after purchase (followed by solid long term reliability)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Not that it means much, but I saw a semi trailer full of new Model 3 on I-80 heading east near Des Moines Iowa today. All of them were black and still had factory wrap on the panels.

<comment><USER10> Model 3 or Model S? I suspect you mean Model S.

<comment><USER9> The front ends were covered by plastic wrap but I am certain they were Model 3 by the shape of the headlights and the overall length of the car. I regret that I didn't get a picture.

I assume they are press cars.

<comment><USER10> That is quite interesting. I didn't think they made anywhere near that many beta Model 3s to be shipping them like that.

</comment></comment></comment></comment><comment><USER11> Previous discussion: [https://news.ycombinator.com/item?id=14688616](https://news.ycombinator.com/item?id=14688616)

<comment><AUTHOR> Thanks. Didn't see that post yesterday before posting this one.

</comment></comment><comment><USER12> So is it likely (or even possible) that TSLA really is the most shorted stock on Earth? I've seen this tossed around repeatedly, although perhaps it's just a rumor.

On the other hand,

> Tesla said that it's now "rare" for a new Model X to have "initial quality > problems." [1]

doesn't sound very pretty.

[1] [http://www.cnbc.com/2017/07/03/tesla- delivers-22000-vehicles...](http://www.cnbc.com/2017/07/03/tesla- delivers-22000-vehicles-in-q2-2017.html)

<comment><USER13> Tying novel ideas in a mass road vehicle is a very, very bad idea. If these ideas include supply chain and QC shortcuts, it pretty much guarantees failure. I applaud Tesla for "making EV sexy" and pushing existing OEMs, but unless Musk gets his ego in check and starts tackling the boring (no pun intended) problems instead of trying to promote himself as autonomous driving messiah, I don't see the first batch of mass produced 3s as having a high chance of being acceptable.

<comment><USER14> Why do you think they don't know about "boring" problems? They've been producing cars for years, it's their third model... Also, Musk isn't promoting himself as autonomous driving messiah, but as Mars colonization messiah :)

<comment><USER15> Model 3 is the fourth model. Roadster, S, X, 3. Unless you're counting S and X as one, since they share the same platform.

<comment><USER14> Yes, you're right it's 3rd or 4th model depending on the way you count, main point still is it's not the first model :)

</comment></comment></comment></comment></comment><comment><USER16> I wonder if Tesla is worried that this new model might cannibalize its more expensive, more profitable model S?

Also, I should think that the level of automation required to produce a mass market car on the scale necessary to be profitable would be insane... And I bet Toyota, GM and all the others have patents on many, if not all of these production automation technologies.

<comment><USER17> > I wonder if Tesla is worried that this new model might cannibalize its more > expensive, more profitable model S?

Obligatory "If you don't cannibalise yourself, someone else will" Steve Jobs quote! I see them aimed at different markets though; I could never justify buying a Model S, but a Model 3 is definitely feasible (especially in the UK where petrol prices are high).

<comment><USER18> We only buy cars second hand (I think we paid €11k for our Prius), so I'm afraid we've got to wait a bit longer.

</comment></comment></comment><comment><USER19> HOV lanes in Bay Area will get so crowded...

<comment><USER20> Assuming they're not now. 8-9 AM work-days it seems that the HOV lane is only marginally faster. Going back from Mountain View to San Jose at 4-5 is equally as bad with traffic grinding to a halt near the Montegue Express exit in any lane.

It's kind of ridiculous actually because even if you're in a 4 person carpool its pretty horrific.

<comment><USER21> That's California for you:

The people who use the lanes, by and large, don't need them[1], and simultaneously, California subsidizes and encourages electric car driving while having, by far, the absolute worst electrical infrastructure in the country, with no _real_ plan to improve it[2]

Don't worry, somehow, they are saving the environment in all this, despite the fact that most cars these days probably put out less emissions than a family that ate too many beans.

[1] They are pretty much rich people lanes. None of the very large number of day laborers, etc, could afford an electric car (and there are no electric trucks they could use), but also probably spend significantly more away from their families than people who do use them.

[2] Yes, the math says that if everyone in california drove an electric car, we'd be in trouble. Even if they only charge off peak. The same is even more true of the US, I did the math out in an earlier HN post, IIRC it comes out to something ridiculous like double or triple all current residential electric usage on a yearly basis.

<comment><USER22> > Don't worry, somehow, they are saving the environment in all this, despite > the fact that most cars these days probably put out less emissions than a > family that ate too many beans.

First, this comparison is wrong. Cars generate roughly 5,000 liters of of CO2 per gallon. A human passes about one liter of gas per day, maybe two.

But even if you were right, what's the point of this comparison? We can eliminate the CO2 emissions from cars, but we can't do that to people, and we really need to cut these emissions a lot, or the earth will cook.

[https://ollilaasanen.wordpress.com/2011/10/08/humans-cows- me...](https://ollilaasanen.wordpress.com/2011/10/08/humans-cows-methane-and- global-warming/) Humans pass 1L per day

[https://www.epa.gov/greenvehicles/greenhouse-gas- emissions-t...](https://www.epa.gov/greenvehicles/greenhouse-gas-emissions- typical-passenger-vehicle-0) Cars generate ~9kg CO2/gallon

[http://www.aqua-calc.com/calculate/volume-to- weight/substanc...](http://www.aqua-calc.com/calculate/volume-to- weight/substance/carbon-blank-dioxide) CO2 is 1.8 grams per liter

<comment><USER23> Furthermore, human CO2 emissions come from plants as part of the normal carbon cycle - they're not an ecological problem. It's carbon-from-the-ground that's a problem.

<comment><USER24> CO2 is fungible.

<comment><USER25> Yes, but surface-level biology is pretty much carbon neutral. All of the carbon you exhale to the atmosphere comes from the food you eat, which gets its carbon from the atmosphere via photosynthesis.

Obviously there are edge cases, but by and large Global Warming is happening because we're pulling carbon out of the ground and putting it in the sky.

<comment><USER26> The catch is, modern agriculture isn't limited to "surface-level biology."

> _All of the carbon you exhale to the atmosphere comes from the food you eat, > which gets its carbon from the atmosphere via photosynthesis._

This is true, but also misleading. When you include the nitrous oxide, methane, diesel fuel, and loss of soil carbon, agriculture is actually net CO2e positive.

>Agriculture, Forestry, and Other Land Use (24% of 2010 global greenhouse gas emissions): Greenhouse gas emissions from this sector come mostly from agriculture (cultivation of crops and livestock) and deforestation. This estimate does not include the CO2 that ecosystems remove from the atmosphere by sequestering carbon in biomass, dead organic matter, and soils, _which offset approximately 20% of emissions from this sector._

So in other words, globally our agriculture emits 5 units of CO2e for every 1 unit sequestered by photosynthesis.

[https://www.epa.gov/ghgemissions/global-greenhouse-gas- emiss...](https://www.epa.gov/ghgemissions/global-greenhouse-gas-emissions- data)

[https://www.eia.gov/environment/emissions/ghg_report/ghg_nit...](https://www.eia.gov/environment/emissions/ghg_report/ghg_nitrous.php)

When you include the entire supply chain from field-to-fork (agriculture, transport, refrigeration, processing, preparation) the general rule of thumb is that 10 kilocalories of fossil fuel energy go into making 1 kilocalorie of food.

[https://blogs.scientificamerican.com/plugged- in/10-calories-...](https://blogs.scientificamerican.com/plugged- in/10-calories-in-1-calorie-out-the-energy-we-spend-on-food/)

<comment><USER25> Great information here. This is well understood on my end. I just wanted to make a quick point because the topic was on food consumption and I don't think many people ever truly connect the dots between carbon atoms in the atmosphere -> carbon atoms in their salad -> carbon atoms in their breath (atmosphere).

<comment><USER26> Indeed, and I should have been clear that I was elaborating on your excellent post, not suggesting any error/omission/ignorance on your part. My intent was to comment on the _idea_ ("if you just consider this one fact, it could be misleading"), not to say anything negative about you personally. My apologies that it came across that way.

So no worries, and no criticism intended. After all, how could anyone say _everything_ that's possibly relevant in one comment? And more to the point, why in hell would anyone want to? :)

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER27> Any fellow reservation holders have an idea of when to start expecting our units to roll out? I'm told the #'s are not sequential and correspond to regions instead...

<comment><USER28> [https://teslanomics.co/model-3-delivery- estimator](https://teslanomics.co/model-3-delivery-estimator)

And accompanying YouTube video: [https://www.youtube.com/watch?v=BcgvAYKro10&t=1648s](https://www.youtube.com/watch?v=BcgvAYKro10&t=1648s)

<comment><USER29> An extra month delay if you are an existing tesla owner?

<comment><USER30> You get it faster if you're already an owner.

<comment><USER29> Yep, I clearly got my Yes/No around the wrong way....

</comment></comment></comment></comment></comment><comment><USER31> I've heard you're not supposed to buy these cars, but lease them somehow. The article mentions the buying price, but what about leasing?

</comment><comment><USER32> The last time I felt like this was with Fiskar.

Here's hoping they are successful and safe too!

</comment><comment><USER33> How long do the batteries last? I've heard replacement batteries will be $20,000.

<comment><USER34> According to Tesla [0], 8 years is the minimum expected lifetime. After that point the battery will still work just fine, but the capacity can drop below 80% of total.

[0]: [https://www.tesla.com/blog/infinite-mile- warranty](https://www.tesla.com/blog/infinite-mile-warranty)

</comment></comment><comment><USER35> Finally! Thanks for sharing.</comment>


How to choose between the new Apple TV and Google's new Chromecast - <AUTHOR> http://www.networkworld.com/article/3012975/mobile-wireless/review-google-chromecast-apple-tv.html <comment><AUTHOR> Setting up and using the new Apple TV 4th generation gave me a chance to test and compare it to Google's Chromecast. Google and Apple are the TV streaming leaders, with Chromecast capturing 35% of last quarter's shipments and Apple TV grabbing 20%, according to Strategy Analytics.

Though they are designed to do the same thing, these devices are very different.</comment>


Latest Blu-ray copy protection cracked - <AUTHOR> http://www.electronista.com/articles/08/03/20/bd.protection.cracked/

<comment><USER2> All SlySoft claims to be able to do is break a single BD+ program. There are an infinite number of BD+ programs; BD+ is itself a VM. SlySoft's own press release acknowledges disks they can't "yet" crack, and concedes that future titles will likely set them back to the drawing board.

That dynamic, if sustainable, is a major "victory" for DRM.

</comment><comment><USER3> It's only a matter of time before we're cracking Blu-Ray Discs like we did DVDs.</comment>


Design of a low-level C++ template SIMD library [pdf] - <AUTHOR> https://www.ti.uni-bielefeld.de/downloads/publications/templateSIMD.pdf <comment><USER2> This would deserve an upvote if the code was legally usable.

Since it's not too easy to spot, the paper refers to [http://www.ti.uni- bielefeld.de/html/people/moeller/tsimd_war...](http://www.ti.uni- bielefeld.de/html/people/moeller/tsimd_warpingsimd.html) and that page has a "Software Download" section with a custom license that has significant arbitrary restrictions:

* "agrees not to transfer [...] to other individuals"

* "agrees not to use the software [...] where property of humans [is] endangered"

* etc.

I.e. this "contribution" would only be relevant if was usable under a really _free_ license, e.g. one of: [https://www.gnu.org/licenses/license- list.html#SoftwareLicen...](https://www.gnu.org/licenses/license- list.html#SoftwareLicenses)

<comment><USER3> It is "legally usable". Just not under your pet requirements.

<comment><USER4> Don't know what you mean by "pet requirements", but this restriction:

> (3) The software and the databases will only be used for the licensee's own > scientific study, scientific research, or academic teaching. Use for > commercial or business purposes is not permitted. [...]

is quite limiting.

<comment><USER3> Yes, it is. Still, it is usable in those cases.

</comment></comment></comment></comment><comment><USER5> I've had success using C vector extensions in GCC and Clang [0]. With a simple typedef, you get a portable SIMD vector type and basic arithmetic operators working. It's compatible with platform-specific intrinsics (SSE, NEON, etc), check out this small example with some basic arithmetic and a few uses of intrinsics with it and what kind of compiler output it produces [1] (warning: I'm pretty sure the rcp/rsqrt/sqrt functions are wrong, this was just an experiment).

Here's the gist of it:

        typedef float vec4f __attribute__((vector_size(4 * sizeof(float))));
        vec4f a = { 1.0, 2.0, 3.0, 4.0 }, b = { 5.0, 6.0, 7.0, 8.0 };
        vec4f c = (2.0 * a) + (a + b * b);  // with -ffast-math, this will emit a fused multiply-and-add (FMA)

Note: if you look inside the intrinsics headers (xmmintrin.h, arm_neon.h, etc) supplied by GCC, you'll find that it uses these internally. E.g. _mm_add_ps(a, b) is defined as a+b.

I work with basic 3d math and physics, so I don't need that much and just having 4-wide vectors is good enough for me.

I've also found out that you can use vector widths that are not available in the target machine. E.g. 4 x double vectors work fine even without 256 bit registers, the compiler will split the vector and use two 128 bit registers and emit two instructions. This might also work for using 16 x float vectors for 4x4 matrices.

Some C++ overloading magic would be useful for naming things (e.g. no need for dot4f vs dot4d).

I've been trying to get some time to write an article about the ins and outs of using vector extensions, but haven't got there yet. Some effort would also be required to put together a decent library of basic arithmetic (dot, cross, quaternion product, matrix product & inverse, etc) as well as basic libm functions (sin, cos, log, exp). I haven't had the time to put together a comprehensive (and well tested) collection of these nor have I found any open source library that would do.

[0] [https://gcc.gnu.org/onlinedocs/gcc/Vector- Extensions.html](https://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html) [1] [https://godbolt.org/g/N9VvXZ](https://godbolt.org/g/N9VvXZ)

</comment><comment><USER6> We've used libsimdcpp to good effect: [https://github.com/p12tic/libsimdpp](https://github.com/p12tic/libsimdpp)

"libsimdpp is a portable header-only zero-overhead C++ low level SIMD library." Not yet sure how it compares to the linked library.

<comment><USER7> Do you find it's easier to write code with that than rely on autovec?

<comment><USER5> You can't rely on autovectorization because it's a really brittle optimization that only works at the best of times, and generally only with simple loops.

For anything more complex, you need to write SIMD code explicitly. Getting good performance requires writing code where the full width of the registers is used. If the compiler falls back to using scalar arithmetic, it tends to pollute the surrounding code with register spilling when registers are required for scalar arithmetic (ie. only the 1st component of the xmm0 register is used).

Writing SIMD code is quite a bit of effort if you need to get it working well.

<comment><USER8> You can also not rely on things like tailcall optimization to automatically happen. That is why you usually annotate the function with @tailrec in Scala for example. The annotation doesn't do anything by itself. The compiler will just show an error/warning if the function is not optimized with a tail call.

Autovectorised SIMD code would probably need something like an "AUTOVEC" annotation at every single line to be effective which defeats the purpose of autovectorisation in the first place.

<comment> Const-me > Autovectorised SIMD code would probably need something like an "AUTOVEC" > annotation

If you only need SIMD for stream processing, autovectorisation is OK.

Only there're multiple autovectorizers in C. The default one is indeed very fragile. But the one in OpenMP 4 is better: [http://www.hpctoday.com/hpc- labs/explicit-vector-programming...](http://www.hpctoday.com/hpc- labs/explicit-vector-programming-with-openmp-4-0-simd-extensions/)

But even that OMP 4 is very limited.

One reason is many SSE operations don't map to C: approximate math (rcpps, rsqrtps), composite operations (FMA, AES), and saturated math (there're dozens instruction for manipulating 8 and 16 bit numbers with saturation, i.e. on over/underflow the numbers don't wrap around by stripping highest byte[s] but stay at the min/max 8/16 bit value).

Another reason is some SSE instructions operate horizontally (phminposuw, pmaddubsw, psadbw, dpps), or are advanced swizzle instructions (shufps, pshufb, pshuflw, pshufhw, pslldq), both are very hard to autogenerate from these #pragma omp simd loops.

</comment></comment></comment></comment></comment><comment><USER7> It's not C++ but worth mention ISPC:

[https://ispc.github.io](https://ispc.github.io)

which extends C with data parallel constructs. Notably it can generate generic wide code as long as the implementation of different intrinsic dis provided.

</comment><comment><USER9> also worth mentioning here is Vc - portable, zero-overhead C++ types for explicitly data-parallel programming [https://github.com/VcDevel/Vc/](https://github.com/VcDevel/Vc/) ([http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2017/p021...](http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2017/p0214r7.pdf)).

<comment><USER10> Vc also looks rather more conventional in terms of license and distribution method (3-clause BSD and github respectively).

Custom licenses are a headache and I always wonder whether the academics who promulgate them wonder why no-one uses their software.

</comment></comment><comment><USER11> I recommend Agner Fog's Vector Class Library instead

[http://www.agner.org/optimize/vectorclass.pdf](http://www.agner.org/optimize/vectorclass.pdf)

<comment><USER12> I agree, although I get some (perhaps benign?) warnings with gcc 7.2.

</comment></comment><comment><USER7> Another interesting one

[https://bitbucket.org/eschnett/vecmathlib/src](https://bitbucket.org/eschnett/vecmathlib/src)

Also includes implementation of functions like sin cos

</comment><comment><USER13> Would be nice if authors compared to some of the existing linear algebra packages with SIMD support like Eigen[1] which I've found to be very useful and easy to use. Header only includes, additional functionality and cache sensitive algorithms in addition to SIMD.

[1] [http://eigen.tuxfamily.org/index.php?title=Main_Page](http://eigen.tuxfamily.org/index.php?title=Main_Page)

<comment><USER14> What kind of comparison are you looking for? Both libraries offer different levels of abstractions and functionality altogether. The paper linked here offers abstractions over the registers/intrinsics themselves and Eigen offers abstractions at the array and matrix level, plus all the built in algorithms/etc. Eigen is the type of library that might utilize a library like the one linked to implement functionality/algorithms. Maybe you want to know whats going on under the hood of Eigen?

[https://eigen.tuxfamily.org/dox/TopicInsideEigenExample.html](https://eigen.tuxfamily.org/dox/TopicInsideEigenExample.html)

</comment></comment><comment><USER15> Almost any game studio, company, etc. would have several of these... and github would have many there, like [https://github.com/google/dimsum](https://github.com/google/dimsum)

<comment> Const-me Even some individuals do: [https://github.com/Const- me/VectorMath](https://github.com/Const-me/VectorMath)

</comment></comment><comment><USER16> Sadly this punts on a number of things that are too important: masking and gather/scatter. I tried doing this in Syrah [1] many years ago (oh LRBni) and realized that the masking for NEON, AVX2 and LRBni were all annoyingly different (particularly for mixed precision, like say floats and doubles). Now that Skylake is actually available en masse nearly 10 years later, I should probably clean this up and do a proper AVX-512 specialization.

[1] [https://github.com/boulos/syrah](https://github.com/boulos/syrah)

<comment><USER17> Unfortunately, Skylake doesn't include AVX-512, only the recently released Skylake-X, which is available on server chips and a handful of high end consumer parts.

</comment></comment><comment><USER18> there is also xsimd, which is a pretty cool reimplementation of a lot of Boost.SIMD!

[https://github.com/QuantStack/xsimd](https://github.com/QuantStack/xsimd)

</comment><comment><USER19> Watch [https://www.youtube.com/watch?v=GzZ-8bHsD5s](https://www.youtube.com/watch?v=GzZ-8bHsD5s) to learn how risc-v does simd, without hardcoding vector lengths or needing peeling loops.

</comment><comment><USER20> work in progress that uses Nim macros to make a nice SIMD library:

[https://github.com/jackmott/nim_simd](https://github.com/jackmott/nim_simd)</comment>


Going Overboard:  Keep IT or Dump it? - <AUTHOR> http://genehughson.wordpress.com/2013/05/24/going-overboard/

<comment><USER2> A tale of outsourced IT

I worked for a startup recently that used an outside company for IT. At first a company in another timezone was used and they had weak desktop support. We got a local company to our office to take over and they were very good at level one support issues like "how do I log into email"? And "my laptop won't turn on". But other issues they were not so good at. And much worse: there was no real planning or management. A non-technical manager was forced to be the liaison with the IT company. It was embarrassing to see employees struggle with easily solvable issues. It may have saved money, but it was a big hit on the engineers morale. They also went from using 95% Apple tech to a mix of MS Windows, Linux, and OS X. Employees started using MS Office (trial version bundled with laptop) despite the company being standardized on google docs and gmail. Others could not read their powerpoints. Former employees were allowed to keep thousands of dollars in Adobe software because no one was managing licenses.</comment>


Matrix Calculus for Deep Learning - <AUTHOR> http://parrt.cs.usfca.edu/doc/matrix-calculus/index.html <comment><AUTHOR> Jeremy here. Here to answer any questions or comments that you have.

But more importantly - I need to mention that Terence Parr did nearly all the work on this. He shared my passion for making something that anyone could read on any device to such an extent that he ended up creating a new tool for generating fast, mobile-friendly math-heavy texts: [https://github.com/parrt/bookish](https://github.com/parrt/bookish) . (We tried Katex, Mathjax, and pretty much everything else but nothing rendered everything properly).

I've never found anything that introduces the necessary matrix calculus for deep learning clearly, correctly, and accessibly - so I'm happy that this now exists.

<comment><USER2> Typographic advice: the body text has very long lines in a desktop browser, which makes it a bit slow and tiring to read. I'd say the ideal is somewhere between 1/2 and 2/3 this length. I'd recommend keeping the same width on screen but bumping the font size up by 30%.

As an extra minor nit, italicizing functions like _sin_ , etc. is also somewhat unconventional in mathematical typesetting.

<comment><USER3> I agree that the font should be bigger. I need to learn more CSS in order to switch between font sizes per platform. The font of the text is easy but all of the images were generated from latex using a specific font size. I need to scale the in-line equation images as the font size bumps up.

<comment><USER4> the magic incantation here is probably media queries

@media (max-width: 768px) {

        p {

         font-size: 1rem;
        }
    }

<comment><USER3> We have to also adjust the image sizes for the in-line equations. That's what I need to figure out :)

</comment></comment></comment></comment></comment><comment><USER5> If you're looking at this with the intention of getting started in Deep Learning and feeling overwhelmed by the math then Andrew Ng offers a great course on Coursera that goes over all of the formulas needed to calculate the forward propagation, loss computation, backward propagation, and gradient descent. Highly recommend it for anyone interested in breaking into the field of machine learning.

<comment><USER6> It is also all free on youtube: [https://www.youtube.com/watch?v=UzxYlbK2c7E](https://www.youtube.com/watch?v=UzxYlbK2c7E)

<comment><USER7> They also have it all on Stanford's site with some other information and course materials.

[https://see.stanford.edu/Course/CS229](https://see.stanford.edu/Course/CS229)

</comment></comment></comment><comment><USER8> Thanks for this. Was taking Andrew Ng's course but the way he glosses over the calculus and then expects the student to understand the implications at end of lecture was a turn off so I dropped it. I hated the feeling I wasn't learning, just memorizing solutions.

<comment><AUTHOR> You might prefer the approach at [http://course.fast.ai](http://course.fast.ai) \- all the concepts are taught with code, instead of math, and understanding is developed by running experiments.

<comment><USER9> I did both and found fast.ai so much easier to understand for someone without a background in math, like me.

</comment></comment></comment><comment><USER10> Fortunately there is a website now capable of doing matrix calculus! [http://www.matrixcalculus.org](http://www.matrixcalculus.org)

Mathematica doesn't seem to be able to do matrix calculus, which surprised me quite a bit.

<comment><USER11> Mathematica can absolutely do all of this! D[ matrix ,x] ... or things like this:

f[x_,y_] := x^2 + Sin[y]

vars={x,y};

Table[ D[f[x,y],var1, var2], {var1,vars}, {var2,vars}] // MatrixForm

<comment><USER12> But how do you compute the derivative of x' _A_ x in Mathematica (x being a vector and A being a matrix)? What you have pointed out is only scalar derivatives, if I am not mistaken here.

<comment><USER11> Like this, perhaps?

A = {{1,2},{3,4}}

vec = {x^2, x^3}

D[vec.A.vec, x]

Or perhaps like this, again the table of derivatives:

xvec = {x1,x2}

Table[ D[xvec.A.xvec,x] ,{x,xvec}]

(all untested... one typo caught...)

<comment><USER10> Mathematica can definitely compute the derivatives if you fix the size of the matrix. This isn't very useful if you're trying to compute the derivative of an expression with arbitrary sized matrices.

<comment><USER11> You can do general matrices too, what do you have in mind?

aa[x_] = {{1, 2}, {3, 4}} x

bb[x_] = {x^2, x^3}

D[ a[x].b[x] , x, x] (* for any suitable tensors *)

% /. {a -> aa, b -> bb}

</comment></comment></comment></comment></comment></comment><comment><USER13> Wow, this is really a great resource. I wish it had been available a few years back when I took the free online version of CS231n. The hardest part (for me, anyway) was the long-forgotten Calculus needed for backprop. Especially as applied to matrices. I struggled at the time to find accessible explanations of many of the matrix operations, and you seem to have it all laid out here. Thank you.

</comment><comment><USER14> Thanks so much for this. I have no interest in deep learning (at the moment) but I was working through some papers about the Lucas Kanade tracker and this paper explains some of the underlying math in just the right amount of detail. The authors usually show the beginning and end point and just say something like "using the chain rule" we arrive at ... It took me a while to understand what they were saying and this paper helps a lot.

The math is super easy but keeping all the notation s and conventions in my head is hard, I've never seen it laid out this nicely before. Thanks!

<comment><USER3> Hiya. That's funny because it's exactly what caused us to write this article. Jeremy and I were working on an automatic differentiation tool and couldn't find any description of the appropriate matrix calculus that explained the steps. Everything is just providing the solution without the intervening steps. We decided to write it down so we never have to figure out the notation again. haha

</comment></comment><comment><USER15> Matrix calculus is a bit screwy when you realize that there are two possible notations to represent matrix derivatives (numerator vs. denominator layout; numerator layout is used in this guide). Plus, the notation is not very "speaking" for doing calculations unless you commit to memory some basic results.. which is why, as a physicist, I would recommend working in tensor calculus notation during calculations, and translating back to matrix notation for writing the results.

<comment><USER3> I was also surprised when I saw that there was no standard notation for Jacobian matrices. We use the numerator notation in the article, but point out that there are papers that use the denominator notation. I think I remember from engineering school that we used numerator notation so we stuck with that.

<comment><USER11> This is what index notation is good for, and I encourage everyone to learn it. Jacobians are dx_a/dx_b, two indices, and clearly b belongs to the derivative. Whether it's rows or columns is an implementation detail of how you're storing these numbers.

Index notation also seems natural for programming: an element A[i,j] or a slice Z[3,4,:] are precisely this.

</comment></comment></comment><comment><USER16> So are we turning machine learning into a Euclidean distance calculation [with] many dimensions, with different weights for each dimension?

That's... not that sexy. But at least it makes sense to anyone with an undergrad degree in CS or math, which is something neural networks never accomplished.

</comment><comment><USER17> >For functions of a single parameter, /partial operator/ is equivalent to /full derivative operator/ (for sufficiently smooth functions).

Are you pulling my leg here, or do I need to scrap my understanding of calculus?

If they exist, how could they not be equivalent?

</comment><comment><USER18> In school, I didn't make it much past basic calculus/algebra. As a self-taught programmer (my highest level of education is a high-school diploma), I seriously wish I could go back and put more effort into math. I love looking at these types of topics, but I have absolutely no clue what I'm looking at.

If anyone can recommend any books, courses, or any other material that starts from high-school level math, and gradually increases in complexity, I would love to look at it.

Cheers :)

<comment><USER19> I would start by watching the Linear Algebra and Calculus videos by 3Blue1Brown. This will give you an intuitive understanding of both.

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

[https://www.youtube.com/playlist?list=PLZHQObOWTQDMsr9K-rj53...](https://www.youtube.com/playlist?list=PLZHQObOWTQDMsr9K-rj53DwVRMYO3t5Yr)

<comment><USER18> Thank you!

</comment></comment></comment><comment><USER20> Thanks for this great contribution.

I would like to be able to read the math in DL papers. (sorry I'm asking for something that it's too broad)

1) How much does this document cover the notations in those papers. 2) When I read a paper and if I am not sure what the math means, does that mean that I did not grok the subject yet, or the math presented in that paper goes beyond the math given in this Matrix Calculus document (assuming I studied well this document).

<comment><USER21> While matrix derivatives are important, there is also a lot of other math in DL papers. In particular, a lot of the probability side concerns expectations, KL divergences, entropy, etc., which are all defined in terms of integrals or sums. You need undergraduate-level probability background.

<comment><AUTHOR> The first 5 chapters of the Goodfellow deep learning book are a great resource for understanding the probability, linear algebra, optimization, and information theory you need to digest deep learning papers.

</comment></comment></comment><comment><USER22> Like, did we ever get this much math on a regular basis back a few years ago on HN? It's exciting to see how math is seeping into engineering culture.

</comment><comment><USER4> Fantastic content, thankyou.

If I could make one request it would be a bit of margin/padding on the left of the body text. Would make it more readable on mobile.

</comment><comment><USER23> Beautifully straightforward - going to be referring to this for quick refreshers

</comment><comment><USER24> Bookmarked, this is a very nice reference I will need to read in greater depth.

</comment><comment><USER25> Reading this shows me just how little I know about advanced mathematics.

</comment><comment><USER26> So great! Thanks Terence and Jeremy!

</comment><comment><USER27> The book "Matrix Differential Calculus with Applications in Statistics and Econometrics, 3rd Edition" by Magnus and Neudecker, is available at [http://www.janmagnus.nl/misc/mdc2007-3rdedition](http://www.janmagnus.nl/misc/mdc2007-3rdedition) (468 pages).</comment>


AI revives in-memory processors - <AUTHOR> https://www.eetimes.com/document.asp?doc_id=1333238 <comment><USER2> David Patterson (who else) experimented with the idea almost 20 years ago. Idea was to put CPU into SRAM, remove caches and connect to the rest of the world with fast serial interfaces.

[http://iram.cs.berkeley.edu/](http://iram.cs.berkeley.edu/)

I'm guessing that mixing CMOS and SRAM into same process is hard to do in large scale.

<comment><USER3> SRAM can be CMOS.

<comment><USER2> Of course, I had a brain fart.

I meant mixing CMOS and DRAM.

<comment><USER3> Ah, now I get it. I was wondering whether you meant to write that. Thank you for clearing that up!

</comment></comment></comment></comment><comment><USER4> _aims to compute neural-network jobs inside a flash memory array, working in the analog domain to slash power consumption._

That's a bit more than just locating the processor inside the memory array.

<comment><USER5> An in memory processor is not simply a processor in a memory array. It's more like a processor based on cellular automata where each memory cell also performs computation.

<comment><USER4> Not sure how state machines / cellular automata tie in to analog processing. Am I missing something, or is the article mixing things up?

<comment><USER6> My thinking is that analog signals are a more natural and effective processing medium for hardware neural nets. The "memory" component of the chip might be constant signals representing the weight of each (initial) connection in the network, which amplifies the down-stream signal.

Contrast this with digital circuits where the amplification of each transistor is a high/low signal from an upstream transistor which represents a 0/1, making it a switch.

</comment></comment></comment></comment><comment><USER7> Whatever happened to that tech that Micron was working on? Automata processors or something.

</comment><comment><USER8> Sounds exciting and uncertain.

Questions: How close would this be to a drop-in replacement for a GPU? How close could this sort of chip be to a general purpose SIMD[1] processor?

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

<comment><USER9> Currently, PIM(Processing In Memory) has no reasonable programming model. Hardware people don't seem to understand that without programming model, hardware capability will remain unused. As long as this is not solved, PIM will continue to fail.

The most reasonable one I have seen is Ambit from Microsoft Research. Ambit looks nice for its proposed workloads, but it is still unclear how it can be extended to more general computation.

[https://www.microsoft.com/en- us/research/publication/ambit-m...](https://www.microsoft.com/en- us/research/publication/ambit-memory-accelerator-bulk-bitwise-operations- using-commodity-dram-technology/)

<comment><USER10> I think there is. Verilog and VHDL. A lot of "normal" programmers would hesitate to call that "reasonable", I guesss, but if the shoe fits...

<comment><USER9> Well, joe_the_user asked for "drop-in replacement" for GPU or SIMD. Verilog and VHDL are definitely not.

<comment><USER8> That's true but I'm also curious about what we would wind-up with with in- memory processors.

Is it possible that the now-defunct Micron Automaton Processor would be an example of the kind of model one would wind-up with?

It is still supposedly being studies here:

[https://engineering.virginia.edu/center-automata- processing-...](https://engineering.virginia.edu/center-automata-processing- cap)

</comment></comment></comment></comment></comment><comment><USER11> we had Ram based cellular automata for ~10 years now, didnt go anywhere

[http://www.micronautomata.com/research](http://www.micronautomata.com/research)

<comment><USER12> Now we have a much more lucrative application for them.

</comment></comment><comment><USER13> There is a no discernible distinction between memory and computing elements in nervous systems.

<comment><USER14> extraordinary claims require more than zero evidence

<comment><USER15> Neuroscience 101.</comment></comment></comment>


Upcoming Let's Encrypt intermediate changes - <AUTHOR> https://community.letsencrypt.org/t/upcoming-intermediate-changes/13106 <comment><AUTHOR> If you are issuing and building up your certificates manually (e.g., using acme-tiny), use the latest intermediate otherwise Firefox and Android will be unhappy.</comment>


Adobe roadmap for the Flash runtimes - <AUTHOR> http://www.adobe.com/devnet/flashplatform/whitepapers/roadmap.html

<comment><USER2> It is funny to see how every Adobe announcement about Flash keeps mentioning their "commitment to the platform", when they in recent times have:

1\. Dropped Adobe AIR support on desktop Linux ("focusing on Android & embedded", was it?)

2\. Dropped Adobe Flash Player support on Android (not focusing on Android anymore?)

3\. Dropped Adobe Flash Player support on Linux (except in Google Chrome)

and here they announce that they're also no longer trying to support the "rich motion graphics" use case.

<comment><USER3> I would say that's their response to what the market is telling them what they want and don't want, of which the market has been quite vocal about the past couple of years. Flash has been slowly evolving into something other than a web browser plugin for years, we're just now reaching that cutoff point. The fun will be if the platform can survive as something other than a web browser plugin.

<comment><USER2> It _did_ evolve into something other than a web browser plugin; Adobe AIR was launched (with Flex) as a complete solution for writing cross-platform desktop applications.

By cutting Adobe AIR for Linux out as a surprise move, they did not exactly build developer confidence in their ability to provide long-term development platforms worth investing in.

Further, by claiming "commitment" in every press release while simultaneously discontinuing more and more of the platform itself, it's getting harder and harder to believe anything they say anymore.

</comment></comment></comment><comment><USER4> Interesting. So there will be another 3 version with the following features:

Keyboard input support in full-screen mode

Improved audio support for working with low-latency audio

Ability to progressively stream textures for Stage 3D content

LZMA compression support for ByteArray

Frame label events

ActionScript workers (enables concurrent ActionScript execution on separate threads)

Support for advanced profiling

Support for more hardware-accelerated video cards (from 2005/2006) in order to expand availability of hardware accelerated content

Improved ActionScript performance when targeting Apple iOS (What the??? iOS???)

Performance index API to inform about performance capabilities of current environment

Release outside mouse event API

Refactoring and modernizing the current core Flash runtime code base

Work on the ActionScript Virtual Machine

Updates to the ActionScript language

Doesn't seem like there will be anything new that can not be currently albeit less efficiently.

<comment><USER5> >ActionScript workers (enables concurrent ActionScript execution on separate threads)

Ha! Been asking for this feature for the last 2 years. Now it's just 3 releases away. What's that like...2 more years?

<comment><USER6> They switched the Flash runtimes to a quarterly release schedule semi- recently. As mentioned in the roadmap document, the release that will include workers is coming in the second half of 2012. Maybe as early as six months from now, if you assume that 11.2 is coming very soon.

</comment></comment></comment><comment><USER7> It would be really interesting if Adobe made the Flash Platform available for the mainstream console market and tied it in (or preferably made it optional) with a game store where people can buy and developers can sell games for these consoles.

<comment><USER8> They shut down the AIR marketplace [http://www.adobe.com/devnet/air/articles/air_marketplace_faq...](http://www.adobe.com/devnet/air/articles/air_marketplace_faq.html) but it is worth trying again.

<comment><USER7> Never even knew that existed!

The problem with the Flash runtime and building applications on it is that UI's created on the Flash runtime get very, what's a good word?, sticky?

Look at Balsamiq Mockups. Weird scroll bars (not OS native) and the UI just isn't as smooth as native OS counterparts. Would you want to browse Amazon that was build as a big Flash app? Of course, no one does.

However, it's seems that Adobe has finally found a niche with the Flash runtime, games.

Disclaimer: Since 2001 and 2010 I was a full time Flash platform/Actionscript developer.</comment></comment></comment>


Discord does not allow 3rd party clients - <AUTHOR> https://www.reddit.com/r/discordapp/comments/8tukek/ripcord_unofficial_native_discord_client_no/e1toruy/?context=8&depth=9 <comment><USER2> Throwing your lot in with Discord, Slack, Skype, etc - is a huge mistake. They serve their own interests, not yours. Use open platforms and open protocols or you will _inevitably_ regret it. Your incentives and Discord's incentives are misaligned.

<comment> polski-g Yep. Use MatterMost self-hosted at worst, or something simple like OpenFire/XMPP

<comment><USER3> The problem is that neither of those really seem to fill the shoes of Discord for us. In Discord I can do text chats, voice chat, can post gifs, and can even screen share. It also does all of that with no requirements for hardware or setup on my part.

<comment><USER4> Yeah that's the issue with most self-hosted solutions. Pretty invariably they're either a pain to setup, require someone to provide an always on server (either in their house or pay someone else to host), or are hideous/missing major features. Discord does well because it requires pretty much zero setup on my part to have a place where me and my friends can chat while playing games!

Personally availability was always a major issue to me when it came to older self hosted solutions, with Discord I don't have to worry if group B has someone willing to bother hosting because it's always there hosted on Discord's servers and if something happened we don't suddenly lose our hub and chat.

</comment></comment></comment></comment><comment><USER5> The Discord client may be open source, but Discord can apply whatever terms of service they like to their server.

So just set up your own server using their open source server software, which surely they must have released under the AGPL, because they weren't just using "open source" as a buzzword.

...Yeah. The client software being open source is irrelevant if it relies on a single proprietary server. Choose open standards instead, or AGPL'd server software.

<comment><USER6> > he client software being open source is irrelevant if it relies on a single > proprietary server.

At least you can make sure it doesn't send information it isn't supposed to send to that server - say, audio when you weren't intending, or screenshots.

It's not good enough for server independence, but it is way better than closed everything.

<comment><USER5> That's a good point.

</comment></comment></comment><comment><USER7> The reason for this should be obvious - discord has no profit model right now and wants to make sure they can monetize down the road.

I've heard them say they may introduce premium features that require payment. If you make a client that can replicate these features (like custom emojis or whatever), they might lose money.

<comment><AUTHOR> They already have Discord Turbo. I agree that it's likely because their profit model is on shaky grounds, which makes me wonder: why do it in the first place?

What other avenues do that have for monetization? Could they potentially be collecting user data, chat logs, or voice recordings to potentially monetize off of down the road? Might they decide to start automatically injecting targeted ad content into chat sessions?

<comment><USER8> As with most of these "lose money now, make money later" startups, I think Discord's longterm goal is to get bought out.

I don't see any way they can turn a profit. If they charge for hosting servers, they'll lose a large number of servers (people will just consolidate). If they charge for quality, users will start leaving for the oldguard services (Teamspeak/Mumble).

Persistent text chat is definitely a plus, but all it would take is for one of the slack clones to have a mumble client built in for there to be a free/easy alternative. Or people to just go back to a groupme/whatsapp and a voice service.

</comment></comment></comment><comment><USER9> Non-electron client would certainly be a big winner for Discord. They should hire the guy and rewrite their memory-hogging app.

</comment><comment><AUTHOR> Just mirroring the thread here in case the Discord Inc. overlords decide they don't like the bad PR.

Title: Ripcord - unofficial _native_ Discord client. No Electron, no rounded userpics (Staff reply) >> This sounds like a good way of getting your account banned, or am I mistaken about the API rules? > You are not mistaken. We do not support 3rd party clients, and they are not allowed per our ToS/API ToS. (Staff Reply)

This is honestly unacceptable.

On this page here: [https://discordapp.com/open- source](https://discordapp.com/open-source)

You claim that "Discord  Open Source". If this were true, than Discord Inc. would recognize that not all Open Source developers run x86_64 machines, and of those that do, not all of them use glibc as their system standard C library.

The fact that both Discord's standalone desktop application (which uses Electron; a resource hog on its own) and the in-browser version of the app are both massive resource hogs prevents those who are not well off and do not have modern computer equipment from using the service.

Additionally, Discord's web application fails to successfully function in most Linux web browsers that I've found. This includes Firefox ESR and Otter on x86_64 using musl libc. Text chat hardly works in Firefox, as the entire interface goes blank and acts like it's refreshing on a fairly regular basis; the login page doesn't even load in Otter. To even think that voice chat would function under these circumstances is a straight up joke; and sure enough, voice chat fails to function for reasons OTHER than the one stated above on both ALSA-only AND PulseAudio configurations: I cannot get it to detect my microphone (granted, Firefox's terrible, or rather, complete lack of an audio configuration interface is probably more to blame here)

The fact that Discord Inc. is threatening to ban users who use 3rd party clients just adds insult to injury. If Discord Inc. is really not willing to provide open and portable solutions to use their service to their users, they should at least allow 3rd parties to offer such solutions. The entire stance of "YOU MUST USE OUR CLIENT" makes me have one of two thoughts: 1. Discord Inc. is embedding Information Gathering code into their own clients, and wants to make sure that they can collect and sell information on ALL of their users; 2. Discord Inc. is not confident in the reliability and robustness of their server infrastructure, and therefore wants to limit which applications hit their _public_ API's.

Long story short, what I'm seeing here is a complete lack of customer obsession; it really seems like Discord Inc. doesn't actually care about their users.

<comment><USER10> You don't have to use Discord.

<comment><USER11> ...Unless you want to talk to all of the friends who refuse to use other services.

<comment><USER12> Then use their client. Its a free service, what are you complaining about.

<comment><USER13> I want to complain about their privacy policy

</comment></comment></comment></comment></comment><comment><USER14> I've been using userscripts and stylesheets with browser plugins to tweak their webapp.

<comment><AUTHOR> I wonder if this is also disallowed by their ToS.

<comment><USER15> Most likely, but who honestly cares about a ToS?

<comment><USER16> People who don't want to get banned due to breach of ToS (since that would cause them to lose contact with friends).

</comment></comment></comment></comment><comment><USER17> RIP bitlbee-discord :(

</comment><comment><USER18> The only reason I'm not using discord is exactly because they have no native client but this electron crap

<comment><USER19> I've gone back to IRC and created some Signal groups. Slack, Discord, and all of these new chat applications are frankly abominations.

</comment></comment><comment><USER20> Of some note: some Rust core teams have already moved, piecemeal, official core team discussions to Discord, and are trying to get this done in a broad way:

[https://internals.rust-lang.org/t/exploring-new- communicatio...](https://internals.rust-lang.org/t/exploring-new- communication-channels/7859/74)

<comment><USER21> It is essentially slack with voice chat.</comment></comment>


My secrets to a productive week - <AUTHOR> https://nathanbarry.com/secrets-productive-week/ <comment><USER2> Forest - $1.99 USD on the App Store

Streaks - $4.99 USD on the App Store</comment>


Is There an Artificial God? (1998) - <AUTHOR> http://www.biota.org/people/douglasadams/ <comment><USER2> This was an excellent speech that was perfect reading for a Sunday afternoon. Thanks for posting!

Put simply, the argument is that religion may be a kind of emergent evolutionary phenomena that has a collective value that we may not yet completely understand, but that nevertheless fills some vital role in a way superior to any of our conscious attempts. Basically, despite the universe emerging from bottom-up processes rather than top-down, there may still be a legitimate coordinating role at the top that we subconsciously fill with our artificial gods.

It's a longish piece of writing, but I highly recommend reading the full text.

<comment><USER3> Reposting a comment from a similar discussion here...

Religion might just be the precursor to Science; a sapient species trying to make sense of their world and consciousness, plugging the holes in their understanding with whatever means currently at their disposal.

Unless they're born with complete and accurate knowledge about everything in the universe, I think all intelligent life out there is going to have a religion or some form of superstition at some point in their civilization.

Hive-mind intelligences or strictly hierarchical biologies (e.g. queens/workers/drones) may not need concepts like morals or Law or guidance for social conduct, but they may still invent stopgap explanations on their way to understanding mortality and the weather and stars and such.

EDIT: "Religion" in this sense need not necessarily involve the concept of deities either. There are major religions in our own world that do not place a focus on higher beings.

<comment><USER4> This is my personal belief as well. The evolution of monotheism appears to be a boon for scientific thought: it sets up the idea that the rules are the same everywhere.

</comment></comment></comment><comment><USER5> While sitting on the fence of this whole question, it simply astounds me that most religious people don't have an answer to this (IMHO) very obvious question/problem with the popular God conception:

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

Again, not making a criticism, just an observation that I find oft unanswered

<comment><USER6> The problem of evil is difficult to answer in an emotionally satisfying way to someone who is hurting. Why did God let _this_ evil happen?

Dispassionately, though, the broader problem begs the question. If humanity is jut a product of time and chance, then evil is as much an illusion as any gods are.

But, that being said, some theists see evil as the absence of good. Murder, natural disasters, etc. all result when God leaves the world to its own devices.

To some degree a "good" answer to this question is very reliant on emotional and aesthetic components, so it's extremely fair to call it a hard question to answer.

<comment><USER7> I wouldn't say it's begging the question. Of course evil is an illusion in an atheistic viewpoint. The "problem of evil" is strictly an attempt to show a contradiction in the theist position.

As a Christian, my own answer (in short) is that true "good" requires that people can choose to either do good or evil. The only alternative is a pretty clockwork. This requires accepting a broader definition of "good" for you to accept that God is both good and accepts this tradeoff, but it's not a contradiction. It's just an emotionally significant consequence of believing God exists.

<comment><USER8> > As a Christian, my own answer (in short) is that true "good" requires that > people can choose to either do good or evil. The only alternative is a > pretty clockwork.

This doesn't really address the problem. If god is omnipotent and created the universe, he could have made things so that evil is simply physically impossible, with no contradiction of free will, in the same way that I am physically unable to flap my arms and fly to the moon, and yet I still have free will. The fact that he didn't means he's either not omnipotent or not omnibenevolent (a contradiction for those who ascribe both properties to god). The onus would have to be on the theist to show how "no-evil" somehow logically contradicts free will; and it must be a truly _logical contradiction_ if it is to be any constraint on omnipotence.

<comment><USER7> I don't think you get to say "just design a universe such that X" without actually producing one. In this context, that's a circular argument, since the possibility of such a universe is precisely what we're debating. And lots of things that look reasonable turn out to have inconsistencies buried deep inside. If you're not familiar with computability, "write a program that figures out if another program will run forever" sounds possible at first. You can make specific counterexamples to my argument, but just saying "it must be possible" illuminates nothing.

Anyway, I'll try to do better. Basically, in a universe in which "evil" is physically impossible, you may have "free will" in some sense to choose which good, but you cannot choose _whether to do good_ , because all possible choices are "good". It's specifically _freedom to choose good or evil_ that's the key ingredient in "good" being a meaningful concept, or at least it's consistent to so assume. You're back to the pretty clockwork.

I don't know if it's possible to construct a bulletproof argument here. Shaky foundations are an occupational hazard of metaphysics, for both sides. Saying "well, he's God so he should be able to figure it out" works just as well as "he's God and couldn't do it, ergo it's inconsistent". The best we can do is show our positions are consistent under some set of assumptions.

<comment><USER6> The halting problem! Great point. I'll have to remember to bring that up next time theology comes up in a geeky context.

</comment></comment></comment></comment></comment></comment><comment><USER9> Even as a Christian, I am still open to the possibility that religion may be an artificial construct. One important purpose it may serve is to motivate individuals to advance social welfare (and be happy while doing so) when we would otherwise only have reason to be selfish. (Never mind for now that this presupposes that there is an objective "social good" that exists in the first place).

However, for religion to work, we can't be aware that it is artificial -- otherwise we'd stop following it. So we do have to believe wholeheartedly, aside from occasional philosophizing of existential questions.

Yet, the existence of an unmoved mover is still an alternative explanation. At this point, the line between artificial and supernatural is indeed blurred.

<comment><USER10> How can you believe the story and the purpose of something wholeheartedly when its premise is scientifically untrue?

Religion is an artifact of one of the most ancient forms of control. Today, it is an institution used to espouse the morals of the elite.

There is no evidence that bad people will be punished when they die. There is no evidence that the good will be rewarded. The universe is ambivalent to the karmic relations we see from our perspective. Karma can be common sense (you do good, good will follow), but in speaking to the spirit, karma has placated humanity into believing that mother nature or god is at the controls.

It is time to abandon the belief in the soul, the spirit, and eternity, and unless evidence presents itself otherwise, embrace the temporal reality before us.

<comment><USER9> I'm a scientist (coincidentally, an empirical one) but I still don't believe that all truth can be discovered scientifically -- that is, through repeatable data collection and experimentation. You can't prove or disprove the existence of God by doing experiments.

Your worldview seems to be pretty close to Scientism ([https://en.wikipedia.org/wiki/Scientism](https://en.wikipedia.org/wiki/Scientism)), which I think some would consider a religion in itself.

Sure, the problem of evil is an objection to religion, but follow your premise to its logical conclusion and good/evil doesn't exist at all. There is really no reason to want the world to be a better place, preserve the planet, and so on. Is that really a world you want to live in?

> Religion is an artifact of one of the most ancient forms of control. Today, > it is an institution used to espouse the morals of the elite.

Do you think so? At least in the United States, religion is generally seen as the domain of the less educated and impoverished, not the elite. Today, you and I are free to determine our own definitions of morality.

> There is no evidence that bad people will be punished when they die. There > is no evidence that the good will be rewarded.

Sure there is evidence. It's just historical and relational. It's not something that can be tested through the scientific method.

<comment><USER10> > I still don't believe that all truth can be discovered scientifically -- > that is, through repeatable data collection and experimentation. You can't > prove or disprove the existence of God by doing experiments.

You can't disprove or prove god because it is a non-falsifiable concept. There are an infinite number of things that will never be able to be proven by Science because by nature of concept, they are immune to experiment.

What are we to believe of something that cannot be disproved? I think groups of people have leveraged this inability to know the truth as a cure for the universal anxiety of permanent death, and as a vector of population-scale control. When you take into account the bias humanity has over its own death, you have to scrutinize worldviews that aggrandize consciousness as a permanent, if not ethereal entity. The evidence before us shows consciousness being entirely contained in the life and death of the body. When evidence presents itself otherwise... then can we start to muse about an afterlife.

</comment></comment></comment></comment><comment><USER11> He mentions "The fabric of reality" by David Deutsch. It's a very good book (IMO) and not primarily about multiple universes so don't let that put you off if you think it's rubbish. He does a really good job outlining Popper's theory of science as explanation. Also one thing he notes is that it is really extraordinary that the universe gave rise to something that can understand it. We are the universe looking at itself and understanding it at a more and more fundamental level as time goes on.

</comment><comment><USER12> When an entity's power level gets cranked up to god-level, is there a meaningful distinction between "supernatural" and "artificial" in this case?

<comment><USER13> I'm going to choose to be literal. Artificial is defined as "being made by humans". God is defined as "the one supreme being, the maker and creator of the universe".

The only way you could have an artificial deity is if human-kind were gods themselves.

P.S. thinking of these things in terms of video game powerups is something I find sort of amusing. I can only imagine what Chun-Li vs Jesus would look like.

<comment><USER14> Let there be light!

[http://multivax.com/last_question.html](http://multivax.com/last_question.html)

<comment><USER15> I constantly read this piece and talk to people about it. It is quite the experience to see their eyes open up when they realize that there might be a hint of a possibility of such scenario being real. Us being the result of some other intelligent specie flipping the switch ON. Thanks for posting it.

</comment></comment></comment></comment><comment><USER16> If God created us, then who created God?

<comment><USER17> In at least some religions, [part of] the definition of God is that he is the uncaused cause. Thomas Aquinas spends a lot of ink talking about this (there's a more accessible explanation at [http://www.peterkreeft.com/topics/first- cause.htm](http://www.peterkreeft.com/topics/first-cause.htm), but I'm pretty sure you can find the originals on the Internet).

<comment><USER4> Just because God can't imagine an existence outside herself doesn't mean it doesn't exist. She assumes she is the original cause but is unable to test the hypothesis.

<comment><USER6> In other words, what if an all-knowing being doesn't really know everything?

Or are you inventing a new Creator who is merely almost omniscient for rhetorical purposes? To what end?</comment></comment></comment></comment>