OTP 23 - <AUTHOR> http://www.erlang.org/news/140 <comment><USER3> I'm currently learning erlang/elixir and I'm really enjoying the language constructs.

I had originally taken a Programming Language Paradigms class in college with racket, and I really didn't appreciate functional ideas(i.e. syntax is my excuse). I'm now a really big fan of functional language idioms.

Anyone interested should try the futurelearn class, [https://www.futurelearn.com/courses/functional- programming-e...](https://www.futurelearn.com/courses/functional-programming- erlang).

<comment><USER4> I never understood why people rave so much about functional programming wrt Erlang/Elixir, when its functional programming is clearly only a means to an end (fast and safe message passing requires immutable data, which requires FP) and not a driving design goal in its own right.

I mean, unlike in typical hard FP languages like Haskell or Elm, mutable state is _rampant_ in your average Elixir app, it's just spread out across many (global singleton) little processes. Only inside a process you're doing "true" FP but given how small the average process is in scope, in practice the only real big difference is that you can't to an `i++` style for loop. Oh no!

But once you leave the process boundary, and often even before it, all bets are off. The amount of Elixir forum messages I've read that go "you can't do X at that point, because Y hasn't completed yet" is nuts.

Eg you can't broadcast in a phoenix channel `join` because the channel hasn't been fully initialized yet. So you send yourself an :after_join message and do the broadcast in there. I don't know about you but to me this feels a lot more like C++ than like Haskell.

Or consider the library module Agent which is _exactly identical_ in semantics to a global singleton variable in an OO/imperative language. It's just a blob of data that you can get or set.

Now, I don't think any of these are disadvantages. I did mostly C# and JavaScript before Elixir, so I'm used to the occasional mutable state flying around.

But I'll never understand that people like Elixir _for being FP_. You just get such a small subset of the usual advantages of FP that it feels like an implementation detail. There's lots of advantages, but freedom from thinking about state isn't one of them.

<comment><USER5> If you look closely enough at Haskell, you'll realize that it also can have a lot of mutable state. Haskell just puts state into various monads and STM to make its functions pure. You can even spawn numerous isolated threads, all with their own state, and have them communicate with one another like you do in Elixir. It does provide a lot of structure and guarantees compared to your standard imperative language, but I assure you mutable state is still there.

To be clear, the Elm model of putting everything into a big tree and and transforming that at every user input is very unusual among even FP languages, and is not the model typically used in Haskell. This might be what you are thinking of.

Edit: I also want to point out that Elixir processes can be registered globally to act as singletons, but by default you can spawn any number of agents or other processes at runtime, meaning they are not singletons.

<comment><USER6> Actor frameworks with message passing, just like direct mutation, don't compose.

On Haskell, yes, you can just work off a thread and write shared buffers. But you are better off using STM or Async (these are a bit like futures), which compose, and you can write pipelines out of them.

<comment><USER7> Everything that you pointed out can be achieved in Elixir, quite easily too. If I understood you correctly.

Not sure what you mean by "actor frameworks don't compose"?

<comment><USER8> Actor frameworks don't compose, because actors are an atomic compute unit. You can't really take a horse actor and a bird actor and turn them into a pegasus actor. There are non-trivial interactions between message handling logic that would prevent such a thing with some fairly trivial-to-generate breaking cases.

Maybe composition for compositions' sake isn't that important?

<comment><USER7> > _Maybe composition for compositions ' sake isn't that important?_

Definitely. I was about to ask "but when did you actually need to compose actors and how does that even make sense?" \-- and while I am sure there are people who would find a scenario I feel that would still be tarrying on minutiae.

Obviously the actor model is not a panacea. But for my commercial work Elixir -- and thus Erlang's OTP -- has been a true blessing. There aren't many commercial scenarios where OTP is a very poor fit. They do exist but I'd dare saying they are no more than 10-15% of everything you can stumble upon out there.

<comment><USER8> Yep I love Elixir too. Just, you know, I try to only sip the kool-aid.

<comment><USER7> Well, I am just now arguing with people in another thread that nobody claims that Elixir is an end-all be-all.

It's quite sad how fiercely the average HN audience is attacking people who are trying to show an alternative way of doing things.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> [https://twitter.com/elixirlang/status/1260556559165292544](https://twitter.com/elixirlang/status/1260556559165292544)

> Elixir v1.10.3 is fully compatible with Erlang/OTP 23.0 - so up to date > Elixir users are ready to give it a try!

<comment><USER10> I'm curious what the short and long-term performance implications are for Elixir with OTP 23. Has anyone offered up opinions or benchmarks?

</comment></comment><comment><USER11> See also: [http://blog.erlang.org/OTP-23-Highlights/](http://blog.erlang.org/OTP-23-Highlights/)

</comment><comment><USER12> Not mentioned in the link above but something super cool with this release is that

> CPU quotas are now taken into account when deciding the default number of > online schedulers. > Thus, automatically making Erlang a good citizen in > container environments where quotas are applied, such as docker with the > --cpus flag.

Super happy about this!

</comment><comment><USER13> Couple of times when somebody posted an OTP erlang update I had no clue what I was reading. Then I came back to HN and somebody broke down why some things are really useful/changed and it was mind blowing.

Can some erlanger explain why you are excited about certain things from the update?

<comment><USER10> Erlang may be the sturgeon of the software world. It has survived since the Triassic and yet is somehow prized for specific use cases and discerning tastes.

It is nowhere near as ancient as sharks, nor as vicious, but it employs some new physiology, and can survive just as long.

But that was a very different world and it sticks out like an outsider, when really it's been there the whole time.

(sorry, this analogy got away from me a bit).

<comment><USER14> the story I like to use is -- "imagine a world where java never happened, where servers were abstracted into HA clusters automatically by your programming language, and where horizontal scaling was automatic and free"

<comment><USER15> I usually blame nodejs. It came around and pushed out what little traction Erlang was gaining in the late 00s.

</comment></comment></comment></comment><comment><USER16> Looking at the changelog I don't see what the current situation with erl_interface is. I've been working on some `erl_interface` code using C [2] and Nim [1], and the headers warn that older `erl_interface` headers would be deprecated in OTP 23. All the release note highlights mention is a new `erl_call` program.

Anyone know about the status / rational for the `erl_interface.h` API?

1: 1: [https://github.com/elcritch/einode/](https://github.com/elcritch/einode/) 2: [https://github.com/elcritch/einode/tree/master/tests/c-nodes...](https://github.com/elcritch/einode/tree/master/tests/c-nodes- example)

<comment><USER17> Much of the erl_interface functionality prefixed with erl_ names has been deprecated since OTP 22 and has been removed. The API has shifted to newer ei_ prefixed functions. I believe there are some new deprecations in place as well which you can find the longer form release notes.

erl_interface itself is not going away but it is evolving with the BEAM VM. Deprecation warnings should be checked when compiling code on each major release to avoid surprises as features are usually deprecated for one release and then removed in the next release each year. The erl_interface documentation should be up to date with regards to new APIs and might be worth browsing again to get an idea of the what changes look like.

<comment><USER16> Thanks! That's good info. The hardest part was that in OTP 22 the examples given used many of the deprecated erl_* apis. I was able to update the C examples (see the second link) to use non-deprecated ei_* api calls. Mostly small changes and a bit better buffer management. Though, I don't like the lack of buffer length check in even the newer ei_encode_* functions. :/ I added a 24 byte padding guessing most single item encodes are less than that, and then check variable length items for size. Still hard to use safely without a buffer overrun. I'll take a look and see what else may have changed. It's exciting seeing all the continual beam improvements!

</comment></comment></comment><comment><USER18> > Support for SSL 3.0 is completely removed.

Yay! We need to actively and in a strong forceful manner remove broken security products.

</comment><comment><USER19> Though I am not working with Erlang or Elixir right now I am so pleased that this is seeing improvements. I had as much fun learning Elixir as I did learning Ruby ages ago. It's just a fun language with great construct!

<comment><USER20> I've wanted to work with Elixir for 5 years now. I attempted to go through The Pragmatic Programmer's Elixir textbook and couldn't make it through. This comment applies solely to me, I feel I didn't have the aptitude to pick up functional programming (and that's coming from someone who graduated in CS from a T3, had years of experience, and starting med school next month).

<comment><USER21> Since it's already been five years, it might be worth considering Erlang instead of Elixr. I'd recommend _Programming Erlang: Software for a Concurrent World_. It was written by Joe Armstrong who designed Erlang and "sold" it internally across Ericsson to people who were not programmers. They were people who were using Erlang to solve some other problem.

The paradigm of Erlang is message passing. The primary idiom is logic programming (like Prolog). Functional programming is related to logic programming. Between message passing, logic programming, and simple primitives for concurrency; Erlang programs tend to look a little strange. But it all hangs together in a way that has been field tested for thirty years. Erlang is a language that was engineered for use by engineers for solving engineering problems.

Elixr is mostly a way of avoiding learning Erlang and making the Beam VM popular. It is a procedural programming abstraction layer. For me, Elixr's abstractions generate an impedance mismatch and Erlang's syntax better expresses the engineering mechanisms of concurrent systems and logic programming. YMMV.

<comment><USER22> I've tried learning both and Erlang seems to be less magical and more consistent. That said, I wouldn't dare to start an important project in either language for the fear of getting stuck somewhere along the way. With Go, there are no such concerns, even though the language itself is by far less elegant.

<comment><USER7> A valid concern but you should have in mind that ElixirForum is one of the friendliest and most helpful programming communities that you will find out there. And that's not coming from me or Elixir veterans but from a ton of newbies, regularly.

</comment></comment></comment></comment></comment><comment><USER23> The use of prior matches in guards is super useful for parsing TLV style payloads where you first match on a size/length field and then match on the value itself as that number of octets. Does anyone have any insight into how / when similar support will make its way into Elixir?

<comment><USER8> I think it's already there?

        Erlang/OTP 22
        Interactive Elixir (1.10.3)

        defmodule Test do
          def matchme(value) do
           x = :foo
           %{^x => bar} = value
           IO.puts(bar)
          end
        end

        > Test.matchme(%{foo: "bar"})
        bar
        :ok

<comment><USER23> My goodness, you're right (well, your example isn't, but the feature I'm talking about has been present since at least 1.8 (the earliest install I have handy):

      > <<len::8, val::binary-size(len)>> = <<3>> <> "abc"
        <<3, 97, 98, 99>>
      > val
        "abc"

I don't know how I'd missed that.

(Your example demonstrates 'pinning' which has been a thing since always I think).

<comment><USER24> Your example is not what EEP-52 adds. The code that didn't used to compile before Erlang 23 is when the `size` attribute of a match-segment requires an expression (i.e. math) to be resolved.

One common use-case, is where a payload's prefix-length field encodes the number of bytes of payload _minus one_. You'll see this in many protocols as an optimization: if the payload is always at least one byte, then one byte of payload can be represented as a length of 0, allowing up to 256 bytes of payload rather than 255.

Here's an example of how the new syntax would be used for that, from the EEP-52 proposal ([http://erlang.org/eeps/eep-0052.html](http://erlang.org/eeps/eep-0052.html)):

        example1(<<Size:8, Payload:(Size+1)/binary, Rest/binary>>) ->
           {Payload,Rest}.

Before v23, you'd have to do this instead:

        example1(<<Size:8, Rest0:binary>>) ->
          PayloadSz = Size + 1,
          <<Payload:PayloadSz/binary, Rest1:binary>> = Rest0,
          {Payload, Rest1}.

Besides the reduction in code, I _believe_ that the old code has an optimization fence (the math expression) that the new code doesn't—you get more optimized code out of the newer expression, because BEAM's runtime loader gets a bigger contiguous chunk of bitstring ops to specialize across.

Oh, _and_ since the newer code is all in a head-clause, if it fails on matching Payload, it'll move on to attempting to match on the next head- clause, rather than generating a badmatch error. Just like if you produce an error in a head clause's guard clause expression.

\-----

On a separate note, despite this example being simple, you can actually do arbitrarily-complex things:

        example2(<<HeaderSize:8, BodyChunkSize:8, BodyNumChunks:8,
                   Payload:(HeaderSize + (BodyNumChunks * BodyChunkLen))/binary,Rest/binary>>) ->
           {Payload,Rest}.

</comment></comment></comment></comment><comment><USER25> I would love it so much that someone took the time to correctly evaluate the pros and cons of OTP vs the current stacks we see those days (stateless services deployed and configured with kubernetes, with an event-bus backbone for service 2 service communication).

I've always wanted to try OTP for a real world project (simply because it looks more elegant and has less parts), and now may be the time, but i'm so scared of discovering huge pitfalls down the road that are better solved by more recent techs..

<comment><USER26> I think I understand your concern as the foundation is arguably old. But as someone actively following Erlang and Elixir the sentiment feels absurd. Elixir is very recent, very modern and Erlang/OTP has a very strong track record.

There are drawbacks of course but having worked with Python, PHP and JS. I haven't seen any real drawbacks. I wouldn't choose it for minimal overhead or the fastest compute maybe..

Edit: typo

<comment><USER25> Are you "following" or are you actually using it in production for a real service ?

I'm asking, because to my knowledge, the only "huge number of users" recent success story is whatsapp, and after having viewed all the talks about their stack and experience, it seems that the team was so extremely talented that they probably would have made something good with any tech.

<comment><USER27> Discord uses Elixir heavily. But if you are scaling to 10s of millions of concurrent users, you're going to need those types of skills no matter the language.

</comment></comment></comment></comment><comment><USER28> A few random questions.. hopefully a person more knowledgable in the topic can help me out:

\- from what I understand Akka (Scala) heavily borrows from Erlang/OTP - <USER2> this correct? What would be the biggest similarities/differences?

\- to what extent OTP is unique to Erlang and to what extent it can be implemented in another language?

\- any articles/materials out there showing the most valuable bits of OTP applied in JavaScript/NodeJS?

</comment><comment><USER29> I must admit, I have been watching erlang for a while trying to decide when to hop in, and I have increasingly come to the conclusion that I will not be learning erlang as such, although I will be buying the books and reading them, but I will be learning gleam, which is erlang with types.

I'm too used to the safety that rust or F# gives at compile time to give that up.

</comment><comment><USER30> Nice to see default TLS 1.3 support. Though it looks like the use_srtp extension for DTLS is still being worked on.

</comment><comment><USER31> Does cloud-based serverless computing compete with or complement Erland/Elixir? As a dotNetCore developer who writes a lot of Lambda and Azure function code I am trying to understand how OTP relates to these paradigms or if they are apples and oranges.

<comment><USER32> I've been out of the Erlang world for a few years now, but it doesn't seem like a great fit for serverless. The VM has a non-trivial overhead, and the language (and VM) design is optimized for long-running, high availability services.

<comment><USER33> I would say it's mostly that nobody optimized it (perhaps yet) for that environment. There's generally nothing inherently slow in the VM boot sequence - it's just that this was not a priority, so it's slow. There are some attributes suggesting it could be a good fit for that environment, for example, the VM is generally very small - you can get a full system in ~20MB - and that again wasn't something that was heavily optimized.

<comment><USER34> There was Erlang on Xen using LingVM awhile back.

</comment></comment></comment></comment><comment><USER35> Breaks all of our Erlang bindings (which use erl_interface) ...

<comment><USER14> bummer. What specifically?

<comment><USER35> libguestfs is the main project we have with erlang bindings.

</comment></comment></comment><comment><USER36> What's the latest on BEAMJIT progress?</comment>


Is Microsoft reneging on its OOXML standards promise?  Possibly not... - <AUTHOR> http://www.zdnet.co.uk/blogs/500-words-into-the-future-10014052/is-microsoft-reneging-on-its-ooxml-standards-promise-10015489/

<comment><USER2> I think if you read through this somewhat embarrassing apologia, you'll find the answer to the title question is actually "yes" but you have to get through a lot of bluster and logical fallacies including potshots at the competition and smearing of the chairman of the standards committee that approved OOXML to get there.

(And where did the _Possibly not..._ in the title come from? I can't see it in the original)</comment>


White House proposes sweeping federal IT reforms - <AUTHOR> http://radar.oreilly.com/2010/12/white-house-proposes-sweeping.html

<comment><USER2> From the article:

 _One of the most crucial IT reforms proposed by Kundra relates to startups. Kundra said the administration wants to make it easier for federal government to work with the small, agile technology companies that are constantly iterating._</comment>


My name is Ivan and I want to make the best photo editor - <AUTHOR> https://blog.photopea.com/creating-photopea.html <comment><USER2> It's an interesting project, but I'd never rely on it without some idea of what the goals are. Why isn't it open source? What's the business model? Will you charge me $1000 in two years, once I become dependent? Will it stay online in two years? Etc.

There's a certain transparency lacking.

It's fine to say "It's free for now, and will be $0.50 per month once mature" or "We plan to make it free for open images and charge $5,000 for proprietary use" or whatever. Or "We'll support it by doing machine learning to find naked images and pay for it by hosing a porn web site." Or "I'm developing this until I can sell it to the highest bidder."

But there needs to be some answer as to what the goal or business model is.

<comment><USER3> "..make designers less dependent on their software (if it suddenly stops working, you should still have a chance to use your files somehow)..."(source=link) Makes your "..Will you charge me $1000 in two years, once I become dependent?.." invalid

<comment><USER4> I don't think it does. Words are words.

<comment><USER3> doesn't it? I don't understand edit: ignore the 1000$ part. what i mean is that one focus of the product is to make designer less dependent because there won't be a new file format for example. but cpks was talking about the danger of becoming dependent. thats what i didn't get

</comment></comment></comment></comment><comment><USER5> Almost 400 bugs closed. That shows real discipline and love for your product. You can be proud of yourself!

</comment><comment> mark-r I am continually amazed by what's possible in a web browser these days. I'm also amazed by what a single person can accomplish. That said, this failed my first test: [https://www.drupal.org/node/1480428](https://www.drupal.org/node/1480428)

<comment><USER6> Do I have something wrong with my eyes? The first pic looks closer to the original.

Chrome on a mbp.

<comment> mark-r Maybe the mbp does some scaling that makes the original look wrong? The alternating black and white lines making up parts of the letters are supposed to cancel out to approximately the gray used in the rest of the background. It's a very clever demonstration of gamma correction.

</comment></comment></comment><comment><USER7> Link to the actual product: [https://www.photopea.com/](https://www.photopea.com/) Nice photo editor. Cool that you can edit photoshop files online.

<comment><USER8> More importantly, you can edit Sketch files while not using macOS

<comment><USER9> You can already do that with Figma (which I highly recommend).

</comment></comment></comment><comment><USER6> This is absolutely amazing. Too many times I'm looking to do simple things and don't have photoshop, the fact that I just opened this up and instantly felt at home and could do complex operations without even thinking is honestly revolutionary.

Every other online editor is a challenge to find, learn and use, and by the time you have spent 15-20 minutes you realize that you can't do what you want and need to get a local copy of photoshop anyways.

This is so far ahead of commercial competition in usability and speed I am astounded. Excellent work, I'm excited for where this takes you.

</comment><comment><USER10> This is impressive, I'm going to start using this. I know that the wish list must be long, but I'd really like to see things that i CANT do in other editors, such as PS;

(1) PS (the version i have anyhow) does not support PNG8 with 8bit alpha. This annoys me a LOT because i have to use another program to generate these from PNG24 for all my web work. why doesn't PS support this format?? PP to have this please!

(2) Sometimes i want to quickly add some markup to an image. arrows, callouts, etc. This is a PITA with PS because it's just TOO complicated. A "simple editing" page would be cool.

(3) I do a lot of work with APNG (animated PNG) now, which appear to work in most browsers. most editors won't touch APNG. PP will load and generates each frame as a layer. would be nice to see the frame boxes and edit/move them, then recombine. would save a TON of work with APNG authoring.

(4) edit JPG/PNG metadata please.

blue sky stuff: i "waste" a lot of time in PS extracting items from images. I know this is HARD, but any help here would be a massive boost and worthy of payment. same goes for "unblurring" as alternative to sharpening. i know this is technically impossible, but it might be possible to help fix camera shake a LITTLE BIT, knowing it's shake and not just random blur, etc.

my 2c, but good luck with it!

<comment><AUTHOR> Hi,

(1) Photopea supports ALL PNG images. It can export palletted PNGs with 8 bit alpha (which PS can not for some reason).

(2) Custom Shape tool can do it in Photopea.

(3) Photopea can load APNG (or GIF) and save it back to APNG (or GIF). I.e. you can use PP for editing animations. See more here: [https://www.photopea.com/learn/animations](https://www.photopea.com/learn/animations)

You can suggest and discuss new features here: [https://github.com/photopea/photopea/issues](https://github.com/photopea/photopea/issues)

</comment></comment><comment><USER11> Would be good for Photoshop to have some competition. But beware the patent minefield, my son!

<comment><USER12> Photoshop has at least real competition on macOS. Affinity Photo and Pixelmator are fantastic, no-subscription alternatives to Photoshop.

<comment><USER13> The pixelmator pro move was a real dick move, though

<comment><USER14> You think? I bought the normal Pixelmator for a few dollars years ago and still receive updates and features. I don't mind them branching out and trying something new, the normal pixelmator is still top notch

</comment></comment></comment></comment><comment><USER15> Is this open source? If not, I'm having trouble in seeing the point of using this when GIMP exists.

<comment><USER16> It can be better and have a better interface.

</comment></comment><comment><USER17> Images can get rather big, I would prefer not to be uploading/downloading big images to the interwebs, it just makes sense to have it all local for Photoshop type work.

For this reason I would like to see a version of Photopea that is open source and can be installed 'docker style' on one's local machine. This would complement the online version.

Right now, as things stand, I am not ready to move to an online image editor, the local file access is important and without it I am not going to invest time learning a new tool.

I am mightily impressed though, incredible effort and from my few minutes with it, I think you have something very polished for a first reveal. I am fairly sure the UX is better than Gimp - the often criticised Gimp!

<comment><AUTHOR> There is no upload or download in Photopea, it runs completely inside a browser. After Photopea.com is loaded, you can disconnect from the internet and keep using it, open and save your local files. The web platform is just for the easy distribution and updates (so nobody uses outdated versions).

The UI of PP is very similar to Photoshop and other programs, so should not be supposed to learn anything new.

<comment><USER18> Have you considered using appcache or service workers to allow it to launch while offline?

</comment></comment></comment><comment><USER19> Are we at the point when browser-based photo editors can be suitable for advanced or professional use for something like this to succeed? I don't think we are or will be anytime soon. This limits its target audience to novice users, but they don't really need Photoshop in the browser, but something much simpler and more approachable. Maybe novice users should be a direction to consider.

<comment><USER20> Why wouldn't we be? I can't think of anything that you can do in Photoshop that you couldn't do with Canvas or WebGL. Add in WASM and it might even perform better than the native photoshop app.

<comment><USER21> I think you are underestimating how resource intensive advanced editing with Photoshop is. I think you can get a lot of basic stuff into the browser but then you'll probably hit a wall.

<comment><USER22> Resource intensive stuff can be done server side, possibly resulting in better performance than most desktops. We do that for some tasks on [https://clara.io](https://clara.io), a 3D editor.

<comment><USER21> Getting the data to the server is difficult when you work with several 1 GB files. It's OK to do cool stuff in the browser but I think the professional use cases for Photoshop are better met by native applications written in the fastest language available.

<comment><USER22> And in some use cases it's far easier to deal with 1GB files in the cloud than it is on your desktop. Generate it there, process it there, and then deliver it from there.

</comment></comment></comment></comment></comment></comment><comment><USER23> Ivan, I'm from Inmagine Group. We own Pixlr.com and Vectr.com. Ping me, keen to talk. email@example.com

</comment><comment><USER24> I used Photopea extensively for a project last month. It's amazing the see the developer post to hackernews.

My review: Amazing product for the amateur that occasionally dabbles in doing some photoshop. I used photopea to extract assets from psd that I had to code out an for which the designer had forgotten to send me the properly exported assets. I found it a bit slow to load large .psd's, but I tried a few online and offline tools that claim to work seamlessly with .psds and photopea was by far the best. And most seamless.

Thanks for the great work Ivan!

</comment><comment><USER25> I finally used Photopea this morning and I'm blown away. It's like full photoshop in the browser. It's much more useable (for someone coming from a photoshop background) than Gimp and actually outperforms it at some tasks. I spent an hour downloading a trial of Photoshop Elements and I'm just going to delete it - this does everything I need. It even handles Layer masks!

</comment><comment><USER25> > works on every device

Doesn't work on my windows phone, but I didn't expect it to. Looking forward to trying it out tomorrow on the laptop, I literally just spent an hour downloading a trial of PhotoShop elements 2018 just to splice two photos. I would much rather use a browser and not have 5gb (!) of Adobe bloat on my SSD

</comment><comment><USER26> It says it runs on every device. I am on an iPhone, and it complains that there's not enough RAM for an operation -- gradient on the default new document.

It wants 1640 MB I think.

That's the only thing, otherwise it's great :)

</comment><comment><USER27> that's actually a really good tool. I've been looking for ages for a simple web based tool to do simple editing and couldn't find a decent one. I think this is an option i'll explore

</comment><comment><USER28> I'm looking for a way to do non-destructive curves/levels. Without that, it's not a photoshop killer.

</comment><comment><USER29> Actually I used that as Linux alternative to Photoshop. I've used Chrome to export it as stand-alone app.

</comment><comment><USER30> Is it possible to use a custom TTF font for text?

<comment><AUTHOR> Yes, you can open your own fonts using File - Open. See the last part of [https://www.photopea.com/learn/text- layers](https://www.photopea.com/learn/text-layers)

</comment></comment><comment><USER31> looks amazing! mind giving some insight about the stack you used to build this?

<comment><AUTHOR> Thanks! I write my code in Notepad++, then I merge all files into one file pp.js and minify it with SQZR.js (my owm minifier, performs the same thing as Closure Compiler, but is about 50x faster).

The result is here: [https://www.photopea.com/code/pp.js](https://www.photopea.com/code/pp.js)

<comment><USER32> Off topic but why Notepad++?

<comment><AUTHOR> I accidentally installed it a long time ago, got used to it and did not feel any need to change until then.

I could use a simpler text editor, but I quite enjoy syntax highlighting, having multiple files open at once, and Find and Replace tool.

</comment></comment></comment></comment><comment><USER33> Brings Pixel32 to mind.

<comment><USER34> What happened to it?

<comment><USER35> No news since 2009:

[http://www.kanzelsberger.com/pixel/](http://www.kanzelsberger.com/pixel/)

</comment></comment></comment><comment><USER36> it took me a while to notice the screenshot was the Photopea UI, not Photoshop's UI. This software is playing with fire (legally speaking)

<comment><USER37> Just looking at it, it appears to me like the layer visibility icon is the exact same icon.

This is more than playing with fire.

<comment><USER38> The tool panel is pretty much identical in its entirety. Layout, which tools go where, icons, etc.

Edit: Seriously, guys, it is, I'm not sure why I'm being downvoted:

[http://otms.wikispaces.com/file/view/PS_tools_Wiley_Media.jp...](http://otms.wikispaces.com/file/view/PS_tools_Wiley_Media.jpg/469004108/PS_tools_Wiley_Media.jpg)

</comment></comment></comment><comment><USER39> >In terms of complexity, it can be placed next to Adobe Photoshop or GNU GIMP.

This must be a joke.

<comment><USER40> Have you actually checked the link? This seems to be a reasonable advanced clone of photoshop in JS; all the basic stuff that you would expect to be there seems to work. Pretty impressive stuff considering its one guy.

<comment><USER41> > all the basic stuff that you would expect to be there seems to work.

Basic stuff is there, yes. But compare it even with a GIMP is a joke.

<comment><USER42> > But compare it even with a GIMP is a joke.

How?

<comment><USER41> I guess there is nobody from 163 people who starred subj on GH who works professionally with photopea. So it's a fun and joke, no more.</comment></comment></comment></comment></comment>


Heartbleed Bug: Public urged to reset all passwords - <AUTHOR> http://www.bbc.co.uk/news/technology-26954540 <comment><USER2> Which is worse?

a) Leaving your password unchanged on a site because it is still vulnerable.

b) Changing your password on a site that is still vulnerable.

<comment><USER3> I think that depends on your password management policies. If you are using a unique password for every site, change them all now and then change the ones that were vulnerable again after they are patched. If you are like many people and reuse passwords, you should not change that password to be one you use at a patched site.</comment></comment>


YDN: Yahoo Developer Network - <AUTHOR> http://developer.yahoo.com/everything.html <comment><AUTHOR> I am always looking for some API and can't seem to find it. This is a nice collection of all that yahoo has to offer.</comment>


Hillary Clinton's startup tax - <AUTHOR> https://fee.org/articles/clintons-startup-tax-will-crush-new-businesses/ <comment><USER2> It's not a "startup tax". It's a tax on investment income. The capital gains tax break is (supposedly) designed to encourage investment by reducing the tax on income derived from "long term" investments (< 1yr). Currently there is so much investment money available that investors can't find places to invest it all. I'm not sure they need more incentive to invest esp. not at the expense of other taxpayers. When we're awash in cheap oil, does it make sense to give tax breaks to oil companies to "encourage" them to look for more oil?

It's a basic question of fairness: do the Peter Thiels of the world deserve to pay a lower percentage of their income in taxes than the engineers that work for them?

<comment><USER2> Typo: "< 1yr" should be "> 1yr"

</comment></comment><comment><USER3> I'm not sure I buy the premise that a few percentage points tax difference in short term angel investments in Silicon Valley will have any effect. For one, angels are aiming for a relatively rare 5-10X (or more) return, so a few percent of 10X is still nothing. Most of these investments are losers. That's just how VC/angel works. Second, I don't think these types of companies really employ anyone. For example, Twitter employs fewer than 4,000 people.

<comment><USER4> Its not a few percentage points - Regular income tax rates are almost double the capital gain rates

</comment></comment><comment><USER5> Capital gains taxes apply to most investments. Does this author really believe the wealthy will just put their money under the matress instead of putting it to work?

<comment><USER6> Sadly, ideology often defeats reason

</comment></comment><comment><USER6> In which the author informs reality that it is incorrect: "Even a slight change in the risk-return balance — say, the 3.8% which Obamacare quietly laid on top of the current capital-gains — kills companies, as investors and entrepreneurs see the potential upside finally shaved past the tipping point."</comment>


Ask HN: how to get revenue from my site - <AUTHOR>

I'm the guy behind pentesterlab.com. This site offers free exercises to learn web security (an ISO with a vulnerable web application and a PDF with the course). I'd like to get revenue out of it to pay for all the time I spend building each exercise and maybe be able to spend more time on it. I enjoy doing it a lot and building each exercise can be super challenging but having some reward will help stay motivated.
I started as something similar to Peepcode in December 2011 and was charging around $12 per exercise but I made it free after 8 months during which I sold around 6 exercises (to 3 people). However, I don't want to go back to this after making it free. Being free makes it available to a lot of people and it's something I won't change now (I actually wish I had start with free exercises).
I offer commercial license to use the exercises to run training with not much success so far (even if it's pretty cheap $990). I have around 130 visitors/day on average and up to 4000 when an exercise is released (the average value is 2500). I tweeted about sponsoring but I didn't get any reply so far.
And now I'd like to see if HN has a better idea or what I'm doing wrong... or maybe it's just not something that can be done and I should just accept to do it for the fun of it. <comment><USER2> I personally would advise charging money for it. You're providing a valuable resource. Experiment with different price points.

You said you sold only 6 exercises to 3 people. And yet you have 130 people a day. Assuming very healthy conversion rates (say, 0.5%), you need roughly 2000 visitors before you sell 1 item. In short, you need to ramp up your traffic. You can do this organically, or you can buy ads.

You clearly do have an audience however, given your ability to get up to 4000 visitors per day when an exercise is released.

So what to do? Put what I just said to a test: charge for your next exercise. You should get at least 1 sale. From then on, experiment with your price points.

I think you have everything in place, you just need to test things and ramp up traffic. Calculating backwards, you roughly need about 100k people visiting before you can conclude whether charging money works for you as a business model.

Of course you can start with a much lower expected conv rate, and probably should

TL;DR I think you quit too early

</comment><comment><USER3> You're effectively asking, "How do I get money without asking for it?". You can't. There is no secret, so stop looking for it.

Web security is a huge and growing pain for loads of people - loads of people _with money_. You are teaching incredibly valuable skills to people, who can sell those skills to people with money.

If you get over your hangup of selling, there's no dearth of places or ways to sell and distribute good content. A small list off the top of my head:

1\. Write to people you know personally or even just online - asking if they are interested in learning what you teach, or if they know anyone else who might be. It works.

2\. Udemy

3\. Write a good blog post on security every week and post it here.

4\. Build an email list with a weekly web security newsletter.

5\. Go on security podcasts to discuss the latest security goofups on major sites. If there aren't any security podcasts, start one.

</comment><comment><USER4> Your landing page sucks, and your packaging sucks. This type of product sells a lot. I know because I sell one like it. So re-do those two things. And stop using the standard bootstrap look. It looks really bad. Buy a good heme for a couple of bucks.

<comment><USER5> Specifically, why not open with a question that addresses the problem that people want solved?

"Are you certain that your _SQL/TomcatInstance/RailsApp_ is secure?"

Then you can either branch off into teaching them how bad the problem is (e.g. "YOUR STUFF WILL EVENTUALLY BE HACKED FOR CERTAIN!") ala patio11, or tell them how you're going to help them.

<comment><USER4> Well, the problem is that he doesn't have any type of structured sales path in the page. Its all cobbled up together. To sell something you have to make sure the path to purchase is clear. You also need to get people on that path right from the start. I'd say that giving away the stuff for free right on the page where you want to sell it is just a bad idea. You are conditioning people to not pay for your valuabe product.

</comment></comment></comment><comment><USER6> What about inviting other people to contribute to creating courses? They will hopefully promo the course for you in exchange for a cut I guess... that should start to bring in more traffic the more people you involve.

</comment><comment><USER7> I think your website is amazing, and I am starting to follow your exercises already. I don't think anyone gives this kind of information for free. You need to rethink your marketing strategy</comment>


Is Information in the Brain Represented in Continuous or Discrete Form? - <AUTHOR> https://arxiv.org/abs/1805.01631 <comment><USER2> _Rushton (1961) concluded that the neural signaling of a typical human myelinated nerve fiber spanning, say, between a finger and the spinal cord cannot employ a continuous representation due to the presence of noise. Despite these seminal works, computational models based on continuous representation dominate present day neuroscience literature – for example, continuous attractor networks (Eliasmith, 2005; Wang, 2009)._

Sure, we know from basic information theory that any noisy system is inherently discrete. However, depending on the magnitude of the noise, I don't see why we should not describe models in terms of continuous variables.

As an analogy, consider the average numerical computer program. We often derive the underlying math in terms of real-valued vector spaces. However, when implementing the program on a computer system, all variables are ultimately discrete. A reason for not thinking about our problems in terms of discrete objects is that math just tends to get incredibly complicated as soon as objects are discrete; and that the computational substrate is fine-grained enough (in most cases).

Similarly, if noise limits the effective resolution of individual signals or representations in the brain to 5 bits (number taken from the paper), that (in my opinion) still does not mean that we should stop describing computational neuroscience models in continuous spaces -- at least not, if they are validated with the empirically measured amount of noise; which is exactly what Eliasmith's lab (cited above) does (full disclosure: I'm one of his students). Furthermore, as soon as you code information in populations of neurons, the noise on individual connections becomes less important; one could argue that whenever the brain needs precise computations, it dedicates more neural resources to that problem; then, the noise will "average out".

<comment><USER3> >I don't see why we should not describe models in terms of continuous variables.

You're being way too polite in your wording, as your next paragraph states, every field that uses computers has done it since the computers were invented. Allow me to push it further: AFAIC almost all hand calculated math is discrete. The numbers you can write on a page are countable, in fact finite, so all _actually calculated_ math is "discrete" in some sense. No one every really touches the full continuum of R other than abstractly: real calculations whenever you truncate pi or sqrt(2), or generally calculate with a fixed set of digits, you are doing _discrete_math_. So yes, Q is dense in R which helps, and you could write out more digits if you really wanted to, but even then, people restrict themselves to small, finite subsets of Q and even resorting to using things like logarithms/order of magnitude to keep that set as small as possible since our brains can't take all the hairiness. But still, that set is large enough to still do the things we care about anyway.

However, when people want to think _abstractly_ rather than explicitly (calculating), it's easier to take the limit as the gaps go to zero and deal with clean, C^\infty functions. I mean, that's literally what people mean (at least how my experimental physicist brain thinks it does) when they say analysis/calculus is about approximations. I deal with plasma in the hot, nonquantum limit so my ions and electrons are in fact discrete particles. Whenever I calculate an electric field or a magnetic field for the distribution, I ignore the fact that there will be noise on the scale of individual particles and replace that noisy function with a clean smooth function, which tends to be a good approximation. In fact, this is how almost every classical physics problem is solved, you ignore the structure on the particle level and pretend it is "continuous". Same with materials engineering, and so on.

<comment><USER4> Forgive my ignorance, but isn't it true that we don't know what elementary particles are made of? In other words, doesn't it appear that matter is both continuous and discrete, and that we could concievably find particles that comprise elementary particles... and so on? Is there a name for this paradox?

<comment><USER3> I mean, the standard model says they are fundamental, although there are theories that they may be "made up" of other things like in string theory, although those theories have (imo) struggled to compare to experiment or demand experiments that are infeasible today. Regarding "continuous and discrete", quantum mechanically, electrons aren't definitein space, you might be referring to that. In plasma physics we sit above the quantum limit (neglecting p and x variance or more correctly, the variances' product well exceed \hbar), so we treat them discretely, so in a sense, as all classical physics is, it's an approximation too.

My point is that even in classical physics, I usually don't care about fluctuations on small scales which will be noisy, so on top of the classical approximation I make _another_ approximation where I replace a noisy function with a smoother function that well approximates the noisy one. Smoothing out the noise is an important tool for theoretical understanding (as OP's student pointed out here), but it's important to remember it's just an approximation.

EDIT: re the other replier. Another example is I treat ions as "fundamental" too, as we don't reach energies and conditions where their constituent nuclei matter, only ionization.

</comment></comment></comment></comment><comment><USER5> It frustrates me that the engineering community has so little recollection of its own history that it doesn't even contextualise /this/ question as one of the founding problematics of its own specialism, and our cybernetic age in general. The question of whether the brain functions discreetly ('digitally') or continuously ('analogue') was one of the three main debates at the Macy Meetings in the 1940s. [0]

For example Warren McCulloch and Walter Pitts effectively staked their careers on the brain being a fully digital network, as a computer. But John Von Neumann was more cautious, arguing that the digital function of the brain rested on a chemical, analogue foundation, and that it was unclear whether messages were coded in a digital or analogue way. Julian Bigelow argued that mathematicians and physicists preferred to ignore the biological structure of neurons and identify them with their digital operation.

This debate strikes at the heart of the debate between the difference between analogue and digital, and in my opinion it's a philosophical, not just physiological, problem.

[0] For anyone interested in this history I'd highly recommend Ronald R. Kline's work, especially The Cybernetic Moment (p 46-47)

<comment><USER6> Interestingly the DNA structure was discovered in the 1950s. In what ways could it have shaped that discussion?

<comment><USER5> Historically speaking, I'm not sure, but I'd imagine the same debate would be had there too. This isn't just an epistemological question, but the product of multiple scientific revolutions (the return of atomism in the late 19C, quantum mechanics, neurophysiology, cybernetics...), so, to take a Kuhnian position, the innovations of the 1950s especially are well within the same epistemological regime.

</comment></comment></comment><comment><USER7> An interesting statement here:

'One answer, as outlined by VanRullen and Koch (2003), is that continuous representation "cannot satisfactorily account for a large body of psychophysical data". For example, 1 cent does not typically have much value to most people. However, a person may decide to buy a product if priced at $1.99 – yet, refuse to buy the same product if priced 1 cent higher at $2.00. Such an abrupt (or step) change in the brain's purchasing decision cannot be modeled using a continuous representation despite extensive attempts to do so (Basu, 1997).'

The tacit assumption made here seems to be that our concept of number is hard- coded into our brains at the physical signal level, and so that when we think of the number 2, some part of our brain generates a physical signal that has the quantity of 2 (absent that assumption, why would one think that this experiment tells us anything about how signals are physically encoded in the brain?)

AFAIK, it is generally thought that our concept of numbers is at a more abstract, symbol-manipulation level (especially when, as in this example, fractions are involved.) It seems to me that this paradox (which looks like a variant of the sorites paradox, e.g. what is the minimum size of a heap of sand?) is resolved if we consider peoples' tendency to disregard the pennies in a monetary amount.

Caveat / mea culpa: I have not read the papers referenced in the quote.

<comment><USER8> It's really surprising to me that people still fall for the $1.99 trick. When I see any price I instantly round it up to the nearest dollar, hundred, thousand, etc. It makes comparisons so much easier!

<comment><USER9> I bet you don't. In the sense that if you were under extreme surveillance and someone analyzed all your purchasing decisions there would be a detectable difference in your behavior based on the "99 cent trick".

It's a pretty well known cognitive bias to overestimate ones resistance to cognitive biases.

</comment></comment></comment><comment><USER10> > we show that information cannot be communicated reliably between neurons > using a continuous representation

It seems like this doesn't take into account spiking frequencies (where the frequency is a continuous variable), nor the potential for signals with different average magnitudes (even if each signal is inconsistent due to the presence of noise) to have a statistically significant effect over many iterations.

<comment><USER7> In my view, there seems to be some confusion in the paper between 'discrete' and 'digital': "Furthermore, in the present work, the terms continuous and analog are treated as equivalent in an engineering sense, _as are the terms discrete and digital._ ' [my emphasis]. A similar conflation is seen in several of the quotes from other work in the introduction of the paper.

I think there is a distinction between 'discrete', where the signal is encoded as a non-continuous physical property, and 'digital', which adds the concept of place value to discreteness. This distinction is relevant, for example, where the authors contrast the ability of digital recordings to resist the degradation that analog recordings suffer from. That resistance, however, depends quite substantially on error-correcting codes, for which place-value matters.

</comment></comment><comment><USER11> My intuition is that it's represented ultimately in a discrete form, but in a symbolically-compressible way, such that continuities can be represented extremely cleanly.

Let's take a contrived example. You know that if you press on the gas pedal of the car, the car moves forward. You also know that if you press hard, it jerks. Your brain doesn't represent all the intermediate states between light and hard pressing, it instead represents the continuity between the two symbolically.

We use these continuity representations at speed to do things in the real world, and breaks in those continuities really trip us up, and force us to slow down until a new representation of the continuity can be formed. When it happens to me, it almost feels like I'm "repacking" the information back into my brain.

But if you meditate on how you learn things, one can come to the conclusion that all knowledge 'feels' the same way in mind. For me, this knowledge is discrete, I've even been able to articulate some 'operations' that one can apply directly onto conceptual units.

If you think about it, an "intuitive" understanding of something means precisely this, you understand the system in whole without having to think hard about what it's doing in parts. Outputs are mapped cleanly to inputs in mind.

<comment><USER12> I very much disagree with most of your examples. Most people don't seem to have a good sense for how associative memories work. The brain is so good at lying to us that we think we have all these discrete pieces of knowledge, but the reality from my studies is less reliable. When we 'learn' something, what's happening is that a bunch of neurons are being stimulated by inputs from all over your body. What ends up happening is you end up getting a neuronal pattern, that is largely repeatable given similar enough inputs (it's why we can roughly see images someone is looking at with fmri brain scans). But there is a problem when we 'learn' something, in that if we are in a different context and many of our sensory inputs are significantly different then we may be completely unable to recall the thing we learned, or be unable to apply that knowledge because not enough of the neurons fired to 'pattern match' our knowledge. What this means, is that if we want an instuitive understanding of something we probably need to have a lot of concrete examples to pull from, in as many different contexts as we can.

To get back to your gas pedal example. I'm fairly positive that the brain needs to map as many of the degrees of hardness of pressing to percieved acceleration as possible to get a good intuition as to the necessary force to achieve a given acceleration. And it's even 'worse' than you realize, because your brain also need to map out pedal depression vs environment (hills and turns effect acceleration), and depression vs car load. And, if you want to be a really good driver, collecting all this data in different cars.

Now we humans seem to have the ability to abstract away this underlying machinery to some degree, largely thanks to the wiring of our neo cortex, so after the age of 5 you can start to interpolate where unknown data points might lie on some spectrum given a few reference data points. But even then it won't be intuitive until we've done the exercise many times with different data.

<comment><USER11> I think when dealing with physical modeling of this sort, obviously we're going to need lots of examples to get a full enough picture of reality. I play ping-pong, so I have to be really cognizant of this, as my mind has to pattern match the way the ball works hundreds of times in a game.

But if I truly had to see the pattern on every single angle, every single type of spin, every different paddle, every different table, every different room, then the sheer combinatorial complexity would make ping pong impossible to improve at. Talking about and coming up with insights on better play would also be impossible.

It's relatively easy to break the symbolic continuities that the brain stores with new types of inputs. That doesn't mean those symbolic continuities don't actually exist and that the brain will constantly seek them out.

</comment></comment></comment><comment><USER13> I don't understand the argument here. Obviously you need some sort of amplification process to avoid noise. But there are amplifying processes that don't follow the "discrete" Shannon model. Like, I'm pretty sure neurons themselves are an example -- they maintain a stable voltage (even with noise) until they depolarize and spike. The process of depolarization is fundamentally analog, integrating together all the synaptic inputs (and anything else that affects the voltage in the cell). It can't be modeled using a sequence of discrete symbols, but it's also stable over time in the presence of noise.

<comment><USER14> >It can't be modeled using a sequence of discrete symbols, but it's also stable over time in the presence of noise.

Did you mean can be?

When you learned to be integrate continuous functions, I'm certain you learned to do it while scratching sequences of discrete symbols onto paper.

<comment><USER13> Using discrete symbols to describe a continuous model is different than using a discrete model. In this case, the paper is arguing that a particular discrete model based on sequences of discrete symbols (Shannon information theory) applies to the problem, not an arbitrary model including things like integrals.

</comment></comment></comment><comment><USER15> I have a feeling, based on years of reading peer reviewed material, that the brain can store quantum information or something mathematically similar. Go ahead and down vote me all the way to the loony bin if you'd like... Or read this article: [https://www.quantamagazine.org/a-new-spin-on-the-quantum- bra...](https://www.quantamagazine.org/a-new-spin-on-the-quantum- brain-20161102/)

There have also been empirically successful applications of quantum theoretical ideas to cognitive studies:

[https://en.m.wikipedia.org/wiki/Quantum_cognition?wprov=sfla...](https://en.m.wikipedia.org/wiki/Quantum_cognition?wprov=sfla1)

So while I appreciate that the article is taking into account the plausibility of "both" possibilities, it strikes me to be an uncannily "classical" question.

<comment><USER16> Computers can store structures designed to be mathematically similar to quantum information too (see [0] for example). It doesn't mean that computers can efficiently perform quantum computations. If there's evidence that humans can efficiently solve problems in BQP [1] complexity class, like cracking RSA encryption, I'd like to hear it.

[0] [http://quantum-studio.net/](http://quantum-studio.net/) [1] [https://en.wikipedia.org/wiki/BQP](https://en.wikipedia.org/wiki/BQP)

<comment><USER15> I don't know of an example from BQP, but 3d protein folding is NP-complete and humans have outperformed computers at protein folding. Although I don't know how you'd even directly compare humans and computers. I suppose that's a big part of what this article is grappling with.

The interesting thing to me is not if humans can solve exactly the same problems as quantum computers with lots of qubits (Quantum computers are not the identical to all of quantum theory!) The interesting question to me is if humans can hold and pass around irreducibly probabilistic states without collapsing them.

<comment><USER16> Contemplation of brain cloning and consciousness creates a feeling of paradox, then no-cloning theorem comes to mind. Right?

<comment><USER16> If it is indeed your line of reasoning, I don't understand how it is supposed to work. If the quantum state doesn't influence macroscopic behavior, then it's useless. If it does, then it will collapse.

<comment><USER15> I was being unclear. I'm wondering if the brain might hold probabilistic states for extended ("macroscopic") periods of time so that they can be observed/collapsed later, but not immediately.

</comment></comment></comment></comment></comment></comment><comment><USER17> This topic is admittedly way over my head, but the analogy that comes to mind for me is audio recording and transmission. Back in the day, it was done with entirely analog systems, yet FM radio produced an intelligible output despite being bathed in a sea of noise.

Granted, after enough transcriptions, or if stored over a long enough period, the signal would begin to get washed out... kind of like the information in my brain.

<comment><USER18> That analogy doesn't work. Radio is not in a sea of noise due to frequency. Or I should say that unless there are other sources on a particular frequency, noise will not affect communication.

</comment></comment><comment><USER19> It seems we are using terms meant for manufactured items that probably don't apply to the brain. Neurons do what neurons do, regardless of the label. You can model them (in sufficient approximation) using both analog and digital means. If forced to classify neurons with "analog versus digital", I'd say they resemble our analog machinery more than our digital machines. A cup of coffee may change the "calculations" our brain makes, which is not a typical feature of our digital machines (unless they have what we'd call a defect).

</comment><comment><USER20> Probably discrete, but a related question is what constitutes the discrete element? Science just discovered that it's not just neuron synapses as previously believed. Recent discoveries with snails show that reflexive 'memories' are transferrable from one snail to another via injection, so our synapse only model was likely incomplete for at least simpler organisms: [https://www.cnn.com/2018/05/17/health/snail-memory-rna- scien...](https://www.cnn.com/2018/05/17/health/snail-memory-rna-science- study-trnd/index.html)

</comment><comment><USER21> Is there any abstraction of Deep Learning on discrete domains? Using discrete calculus from Concrete Mathematics perhaps? Or better a mixed discrete/continuous one? I guess optimization there would be killer...

<comment><USER22> There are many different ways to represent discrete domains in deep learning. One example is entity embeddings such as word2vec which turns a finite list of entities (words in word2vec) into a number of continuous variables.

<comment><USER21> I know. Though if you want to represent complex DAGs or do some inner combinatorics, it doesn't generalize that well. DeepWalk and its variations are only for toy-sized graphs.

</comment></comment></comment><comment><USER23> > signifies a major demarcation from the current understanding of the brain's > physiology

There s always been a debate if the brain uses a (discrete) spike code or a more analog rate code.

Then there 's also this paper that found 26 levels of synapse strengths in total [https://elifesciences.org/articles/10778](https://elifesciences.org/articles/10778)

</comment><comment><USER24> continuity is not a set property, but a function property, a function can satisfy the continuity condition.

sets can satisy a dense-ness property

</comment><comment><USER25> This posits a very mechanistic view of human cognition, assuming that the emergent parts of our thoughts can we reduced to discrete or continuous numbers. Thoughts, information, knowledge are probably both continuous and discrete at the same time. Cognition is a biologically emergent process, not a number manipulation exercise.

To that end Shannon's theory of information needs an overhaul.

</comment><comment><USER26> It's always continuous. We get better similarity measurements with floating points.

<comment><USER27> Floating point numbers are not continuous.

<comment><USER28> Yeah, that is important to recognize, but floating point numbers could obviously sample continuous measurements with less loss than integers.

<comment><USER29> Only if the measurements span several orders of magnitude and you want to keep the relative error low. Otherwise you'd be better off with fixed-point numbers, which are spread out more evenly (about half of the IEEE floats are less than 1 in magnitude).

And if you don't limit yourself to linear mappings, you can probably do even better with a non-uniform integer encoding.

</comment></comment></comment></comment><comment><USER30> Is there uberhaupt anything in the physical universe that's continuous ?

</comment><comment> bra-ket Why a paper on information processing in the brain doesn't mention grid cells [http://www.scholarpedia.org/article/Grid_cells](http://www.scholarpedia.org/article/Grid_cells)

</comment><comment><USER31> No. (Betteridge's law of headlines)

<comment><USER32> Clever.</comment></comment>


GitKraken Pricing Clarification - <AUTHOR> https://blog.axosoft.com/2016/10/07/gitkraken-pricing-clarification/ <comment><USER2> I feel particularly burned by the GitKraken price inversion, because I'd advocated it as a good free tool to help the windows-bound see git in an idiom they found natural. As a free tool it seemed a brilliant marketing ploy, a loss leader to their family of products, an opportunity to convince a potential customer of their design chops. It even made it worth loading their web page. (full-screen background animations? Really?)

I feel baited, switched, and played. Oh, well.

<comment><USER3> It's free for personal use and very inexpensive for commercial use. Comments like yours baffle me. I don't understand how either hobbyists or professionals are hurt by the current pricing. There is no lock-in or anything like that, you still have the option to go back to the command line interface. No harm done.

<comment><USER2> So, I work in a University environment, where software purchase of all sorts is tightly budget constrained. The difference between "free" and "gotta ask my Director for a budget line" is huge, especially for what is essentially a promotional acquisition.

I was advocating it as a free window for the VC-unwashed into this strange and fabulous thing called 'Git'. When it became no-longer-free, I felt that my advocacy had been transmuted into shilling. My claim was turned into an untruth.

I'm content to be judged oversensitive, and I wouldn't have brought it up, but I was happy to whine when the story came by. :)

</comment></comment></comment><comment><USER4> I downloaded and signed up for Git Kraken about a year ago. Good tool, that I use from time to time alongside the command line for Git. I especially like their branch visualisation.

I am a little concerned though, because I thought that I had a 'free for life' licence as per their original promotional campaign. Does this now mean that future upgrades will remove functionality or lock down the software if I don't upgrade to the Pro version? I am a one man software house (so I fit the first requirement for an 'always free version') but I have been in business for over 2 decades now, which negates the second part.

If this is the case, then I have other choice but to move back to SourceTree for a free GUI client for Git. I am not that tied to Git Kraken that it precludes me from moving back to pure command line or SourceTree. There is also no 'lock in' for software that is basically a wrapper around a command line system that doesn't really add anything extra to the functionality.

<comment><AUTHOR> My understanding is that the terms and conditions you agreed to initially still stand, but if you upgrade you'll have to agree to a new set.

<comment><USER2> Automatic updates are essentially routine now, to get "important security updates" if for no other reason. In that setting, I think your line of reasoning is nearly irrelevant. "Never upgrade again, and never be able to install on another machine" doesn't have much functional similarity to "Lifetime license for the software"

</comment></comment></comment><comment><USER5> I can't get upset about the company figuring out a viable pricing model and to me the effect of the change in terms on users is a byproduct of taking a dependency on Gitkraken versus the tradeoffs for a dependency on an alternative.

From a business standpoint, I think the pricing model should probably just be to charge everyone. It avoids the moral hazard of monetizing the free binary blob using the Oracle JVM on Windows model, eliminates non-paying users, and the distraction of pursuing the free-sample dope peddler's model as a part of the pipeline.

For a product like Gitkraken, the dope peddler model seems unlikely to generate a lot of good viable leads in the funnel. To convert a non-commercial user to a commercial user, the user has to switch to a commercial context and be in a position to strongly influence use _and_ purchase decisions _and_ be a bit evangelical about Gitkraken. To me, a commercial/non-commercial licensing model is a bit at odds with creating that level of good will.

In other words, dual licensing closed source code along commercial/non- commercial lines seems to work against the psychological zeitgeist in the programming world.</comment>


Scala Vs Clojure – Let's get down to business - <AUTHOR> http://blog.bestinclass.dk/index.php/2009/09/scala-vs-clojure-lets-get-down-to-business/ <comment><USER2> This is an entirely superficial comparison. There is none of "this is how the language affects how you design your software" and there is plenty of "oh, here's a quicksort, big and scary. And looking at the table at the top: "object oriented", "statically typed." Is that all the author has to say? You could substitute C# in place of Scala and get the same point-by-point comparison.

What the author completely misses is Scala's entire type system. The evil genius monster of a type system. I can't think of any reason why I'd want to use Scala other than the type system -- oh, sure, anonymous functions -- and the fact that not a word is said about traits or type constructors as type parameters or existential types or things that use the word "implicit" is depressing. Scala is not so much object oriented as it is the best strictly evaluated form of Haskell that lives comfortably in the Java ecosystem, that, hey, happens to have classes and traits.

And I think it fails to do justice to the good parts of Clojure, too.

Also, the benchmark, computing factorial(5000), is nonsense, since it's really measuring the performance of the BigInt implementation.

Also, not surprisingly, the one demonstration of the power of macros is the typical body-wrapping kind that might as well be a higher order function.

<comment><USER3> I don't think he misses the type system but rather argues that it isn't useful. You may disagree but that's a different matter.

Also, I don't know much about Haskell but isn't any "pure" functional language based on immutability and doesn't Java/scala OO essentially assume mutability as per the article?

<comment><USER2> He doesn't actually argue that the type system isn't useful. He assumes it derisively. You can take the entire review and replace Scala with C#. What does that tell you?

Scala encourages immutability. See case classes, for example. Or if ( ) ... else ... expressions. Stuff is designed to return values rather than be actions that set values. Even try ... catch ... finally blocks are expressions that return values. Being OO has nothing to do with mutability/immutability.

<comment><USER4> > Being OO has nothing to do with mutability/immutability

It does if you are using OO to represent state - which most OO programmers do. For things like UI stateful code is often the simpler solution. However for large, large swaths of a program using stateful objects is a complexity bog.

The real question here is whether programmers will bring their stateful OO habits and recreate them in Scala.

When I was first learning Clojure I started by creating an object system. And then I realized I was entirely missing the point as well as going against the grain of the language- functional programming is palpable in Clojure's design.

If an object maintains state you can't generally view it as an immutable value- that's another benefit to Clojure's approach. You generally design your program around the idea value -> function -> new value (_not_ same object with a different internal state). The transparency of this is quite enlightening.

In anycase, I don't know enough about Scala to make an informed opinion, but whether Scala's decision to meet OO programming sensibilities halfway is a liability remains to be seen.

<comment><USER5> I do OOP extensively, and I rarely allow methods to mutate the object. Whenever I have an "is => 'rw'" declaration in my code, it is always immediately followed by a comment along the lines of "XXX: hack". I always feel bad, because it is rarely the right solution.

Even when my data structures are completely immutable, I don't consider myself to be doing "functional programming". I consider it "avoiding stupid bugs".

(As an aside, when using an object database, I am a bit more liberal. You shouldn't need to rewrite every object in the system when a user changes his password, after all. This does come at a cost, though; there is no way to "go back in time" and find an old object graph. There is the current one, and that's it; hope you didn't mess it up...)

</comment></comment></comment></comment></comment><comment><USER6> python vs clojure (twice), scala vs clojure, can we stop posting this trash, please ?

<http://news.ycombinator.com/item?id=890697>

This guy doesn't have the first inkling of how to benchmark something and he doesn't know how to make a non-fanboy comparison between two sets of anything, especially if one of the anythings is clojure.

I'm sure clojure is a great language but this is not the way to do it.

<comment><USER7> I agree!

</comment></comment><comment><USER8> From a guy that lately programs only in clojure for my own projects : Could you please stop upvoting lau articles. They are troll bait down to every sentences.

I mean the guy made a point by saying _Static typing is good for people who can't remember the order of function arguments_. Isn't it enough to understand ?

This article is a joke. The guy has a bias so obvious the eifel tower is small in comparison.

</comment><comment><USER9> Not a comparison of languages; a comparison of language concepts using Scala and Clojure. And language concepts are subjective - use case, user world-view. We learn more about the author than either language.

</comment><comment><USER10> another language comparison, again?

<comment><USER11> Actually this one is kind of refreshing: neutral. As well gives a little peek into Scala for people who do not know it (like me)...

<comment><USER12> I did not think it was neutral. While the code comparisons and one benchmark come about similarly, his characterizations of Scala seem biased to me.

<comment><USER13> Very biased. I've read some pro clojure stuff from the author before.

I can't understand the point in spending time slagging off another open source project that simply has a different point of view.

They're all tools built to solve a problem. Maybe you can't find a use for a 5 headed hammer, but the person who created it found one.

</comment></comment></comment></comment><comment><USER14> The nice thing of course is that you could use BOTH languages in the same code base with full interaction between them.

</comment><comment><USER15> No mention of libraries (yes, they both can use Java's libraries, but some native ones would be useful).

And therefore, no mention of the document of said libraries (which I'm now convinced is crucial).

</comment><comment><USER16> "One guy asked me 'Havent you ever passed arguments in the wrong order and expected a different return than what you got ?" and I'll be honest: No, I haven't. But for people who have a hard time getting arguments order and return types right, this system is a great help. So it has it's place, I must say."

Trolololo.</comment>


What's The Secret Behind Diapers.com Success? A Kiva Robot Warehouse - <AUTHOR> http://singularityhub.com/2010/06/10/whats-the-secret-behind-diapers-com-success-a-kiva-robot-warehouse-video/ <comment><USER2> I am always reminded of what John Smart said in one of his lectures some years back.

America lost 2 million jobs to the Chinese. But guess who the Chinese lost 15 million jobs to... the robots.

<comment><USER3> ... and _I_ am reminded of what a friend of mine who worked in a warehouse said to me a while ago:

"This is the most idiotic job on the planet. Someday they'll have robots to do this."

<comment><USER4> Hah. I have this poster in my home office:

<http://www.despair.com/motivation.html>

It reads "if a pretty poster and a cute saying are all it takes to motivate you, you probably have a very easy job. The kind robots will be doing soon."

</comment></comment></comment><comment><USER5> SeeGrid does something similar, but without having to modify the warehouse at all:

<http://www.seegrid.com/>

It was started by CMU Roboticist and futurist Hans Moravec, as the culmination of his life's work to date.

</comment><comment><USER6> how much of the work force will automation eventually render permanently unemployed? i'm not a luddite - i think this is inevitable and there's no point resisting it. but some of the consequences might be worth thinking through.

<comment><USER7> It's only because of our crazy and short-term way of looking at things that this is even considered a problem.

People losing their jobs because robots replace menial warehouse jobs is a good thing. They can move onto doing more worthwhile tasks.

<comment><USER8> What happens when robots can do more worthwhile tasks than a wide swath of humanity? This point doesn't seem very far away. There are tons of jobs that don't require creativity, and those don't seem long for this world.

<comment><USER9> Presumably if robots ever become that productive there will be no need for most people to work, since the robots will produce plenty of goods for everyone. Jobs are not an end unto themselves. Work is required to consume only because of scarcity. In the world you're imagining, that won't exist for most of the things people need to live. So it will be provided for free.

<comment><USER8> Somebody will own those robots and their output. Either robot owners will have to give away goods, or the government will have to forcibly redistribute it for your conclusion to hold. I actually don't think either of those are very unlikely, but it's still going to be a major change that makes the current political discourse about "socialism" seem quite trivial.

<comment><USER10> I'm worried about the population always growing to match (or exceed) whatever the robots (+human) output can be.

</comment></comment></comment></comment></comment></comment><comment><USER11> Since this is basically what Piggly Wiggly brought to the world of grocery retail in 1916, but with the customers replaced by robots (tee-hee), I wonder how long it will be before robots do the moving around of products at a supermarket near you?

Whether I shop at a warehouse store, or I go to the big department store and or supermarket chain stores that are all evolving into the same kind of 150,000+ sq. ft. 'everything' store (i.e. warehouse stores with better product packaging and shinier floors), I can see that retailers are already doing warehouse-sized volume in cities all over the planet.

</comment><comment><USER12> Wait, they _fly_ airplanes full of diapers to the West Coast!? I wonder what quantity of jet fuel exhaust gets spewed into the atmosphere, just so you can get diapers _the next day_. Even with the increased per-worker efficiency, is the overall environmental impact worse or better than cloth systems, or simply getting them from the corner store?

<comment><USER13> Cloth diapers are worse for the environment compared to disposable, no matter how you get it.

(Disposable uses landfill space of which we have unlimited quantities, but cloth uses water which is in short supply. Also cloth uses more energy.)

But it's easy to tell if this method is better or worse for the environment: You have to pay for jet fuel, or truck fuel, or whatever. All forms of energy cost about the same. If it's cheaper to get it delivered via next day air, then it must have used less energy.

<comment><USER14> Do you have some more information on this? Our first will arrive within the next 2 weeks and this sounds really interesting.

<comment><USER13> Oh, this is a massive debate, and more emotional than rational. "But cloth should be better! It just seems like it should be better!"

Wikipedia is probably as good an introduction as any: <http://en.wikipedia.org/wiki/Cloth_diaper#Debate>

Also, cloth diapers cause more rashes. (Unless there is an allergy to the disposable one, in which case it causes more.)

<comment><USER15> >cloth diapers cause more rashes.

I'd heard the contrary (we use both cloth and compostable disposables), any citations?

I can see how those using strong washing detergents could have problems, we use ecover and haven't had nappy rash problems (anecdotal I know).

<comment><USER13> Yes, here: <http://emedicine.medscape.com/article/801222-overview>

</comment></comment></comment></comment></comment></comment><comment><USER16> Can you imagine working in that warehouse? A never-ending series of tasks brought to you by a being that never stops, sleeps or wants to know what you're doing at the weekend. A job that requires no intelligence and is endlessly monotonous. That is a vision of hell. I think they have solved one problem but created a dozen others.

</comment><comment><USER17> I want all my non-perishables delivered this way. Let's get the robots to pack a more complex box.

<comment><USER18> Amazon.com has food.

[http://www.amazon.com/grocery-breakfast-foods-snacks- organic...](http://www.amazon.com/grocery-breakfast-foods-snacks- organic/b?ie=UTF8&node=16310101)

It's a killer deal when combined with Amazon Prime (free 2-day shipping).

<comment><USER19> Also check out Amazon Subscribe & Save:

[http://www.amazon.com/gp/subscribe-and- save/details/index.ht...](http://www.amazon.com/gp/subscribe-and- save/details/index.html)

</comment></comment></comment><comment><USER20> Where can I find out more about the algorithms they use? Multi-agent systems? Any suggestions?

</comment><comment><USER21> afaik, amazon does not use this kind of tech, at least for most of the shipments. does anyone know why? not ready for amazon-scale operations?

</comment><comment><USER22> What I can't believe is this company won't ship anything to Alaska or Hawaii. I don't understand how companies think that is acceptable.

<comment><USER23> It's significantly less reliable, more expensive, and of extremely limited benefit to ship things to relatively unpopulated states in the middle of the ocean, or across two international borders into the Arctic. People are of course free to live in those places, but they're not free to demand the rest of the world to accommodate their decision.

<comment><USER22> I would completely agree if companies had to setup their own shipping infrastructures to ship to these places; but they don't. Companies like FedEx, UPS, etc, already do this for you and they already ship to places like Alaska and Hawaii. Just charge the customer the extra shipping they are charged by the shipper and let it be at that.

<comment><USER24> Alternatively, make it illegal to only offer shipping to the lower 48, so that the fringe states don't end up in the third world.

This (I believe) is what the UK does with Northern Ireland.

</comment></comment></comment></comment><comment><USER25> babies

babies _and_ robots

 _and_ organic search with a great domain name

</comment><comment><USER26> Whoa. I wonder when we will see completely robotic warehouses.

<comment><USER27> I believe the US Mint operates one.</comment></comment>


Stupid Legal Threats: You Can't Write About Me Because of Your Blog's Name - <AUTHOR> http://www.popehat.com/2013/04/23/today-in-unusually-stupid-legal-threats-you-cant-write-about-me-because-of-your-blogs-name/

<comment><USER2> I certainly don't agree with the way the doc has chosen to handle this, but I sympathize to a degree. There's no shortage of ignorance about how the Internet works among otherwise educated people.

Also, the author seems a bit disingenuous.

>The web site in question is Retraction Watch. I recently discussed other foolish threats made against them, and discussed their mission: offering a _"window on the scientific process"_ by which scientific articles are criticized, retracted, or modified."

The full statement is _"Tracking retractions as a window into the scientific process"_. This is a 2200+ word post, seems unlikely those three words had to be clipped in the interest of brevity.

>He's acted like an angry blustering oaf who is pathologically intolerant of criticism. Ask yourself — how much do you trust the work of a scientist who threatens to sue for true reports of peer review of his work? Would you feel comfortable ingesting a drug developed by a chemist who threatens criminal charges against someone who reports — truly and accurately — that other scientists have raised questions about his conclusions? Would you hire a consultant who makes foolish public legal threats without first acquiring any grasp whatsoever of the applicable law? Would you invest in a pharmaceutical company whose Chief Scientific Officer utters civil and criminal threats against reports of scientific dissent?

That seems unnecessarily nasty.

<comment><USER3> > That seems unnecessarily nasty.

Being unnecessarily nasty to and making fun of people who make misguided legal threats is par for the course for popehat. It's fun to read, but in my opinion not really laudable.

</comment></comment><comment><USER4> Chances are that he's thinking in a civil law mindset, seeing as he's from Argentina. Some other countries have far stricter laws on defamation than the US. Indeed, I actually think US laws are a bit too weak, resulting things like exploitation of mugshots for commercial profit and so on.

<comment><USER5> >resulting things like exploitation of mugshots for commercial profit and so on.

What? I personally think all defamation laws are bs, but regardless, what is wrong with publishing mugshots?

<comment><USER4> Ask someone who's been arrested in error.

<comment><USER6> Okay, I'll bite: can someone who's been arrested in error tell me what's wrong with publishing mugshots?

<comment><USER4> Suppose you were arrested in error. Would you want your mugshot floating around the internet forever?

Indeed, suppose you were arrested with cause, but for some minor crime. Same question.

<comment><USER7> Let's make this a real example. [http://www.thesmokinggun.com/mugshots/celebrity/business/bil...](http://www.thesmokinggun.com/mugshots/celebrity/business/bill- gates) shows a mugshot of someone who later became famous. It was taken after a minor traffic infraction, the details of which are long forgotten.

Over the years this picture has provided many, including me, with repeated minor amusement. If I featured in a similar mugshot and it afforded someone else with amusement, well turnabout is fair play.

There is no such mugshot of me, but I would not think it a big deal if there was. And I doubt that Bill Gates worries himself about the fact that that is out there.

By contrast if my right to free speech could be shut down just because Bill Gates does not like that particular picture, then what other speech could he shut down because he, or some other influential person, disliked it? I heartily agree that free speech is often abused. But when you open the door to shutting down speech, there is a short road from there to a loss of democracy. That would scare me.

Consider this well. The USA is messy, but has been a democracy for hundreds of years and few are concerned that it is about to become a dictatorship. By contrast Brazilian democracy is younger than me, and it is by no means certain that I won't survive long enough to see another military dictatorship there.

<comment><USER8> Now imagine the mugshot isn't for a minor traffic offence, but is for a rape or child abuse offence; and that the person photographed was released without charge and never prosecuted.

That mugshot now becomes a severe problem for you, risking your employment, and even your life.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> One wonders if Dr. Fernandez is now similarly concerned with his name being associated with popes and/or hats.

<comment><USER10> Oh, dear. I hope no one thinks he's a hacker now.

</comment></comment><comment><USER11> I guess this is what happens when you get angry and threaten someone who knows better than to be scared.

I wonder what the author would have done if the initial email had been a plead, especially if only to make the article say something like "NOT A RETRACTION" in the title.

If it had been me I would have responded much more kindly to a plead than to a threat.

<comment><USER12> Plea. :)

<comment><USER11> nouns and verbs, so much fun. Thanks.

</comment></comment></comment><comment><USER13> A quote: "Among the doctrines that defeat Dr. Fernandez' theory are these: truth is an absolute defense to defamation."

Would that it were so. In the U.S., where these events took place, there is a legal principle called "false light", in which truthful remarks can still lead to a judgment against a defendant on the ground that the truths were selected in such a way as to cast the plaintiff in a false light.

<https://en.wikipedia.org/wiki/False_light>

<comment><USER14> You are missing a BIG part of that tort: "made with actual malice." You cant be sued for accidental false light, you have to purposely cast a false light on facts with malicious intent.

"Truth is always an absolute defense against a defamation suit in the United States."

-Your favorite source (<https://en.wikipedia.org/wiki/United_States_defamation_law>)

<comment><USER13> > You cant be sued for accidental false light, you have to purposely cast a > false light on facts with malicious intent.

It's more accurate to say that the plaintiff has to substantiate malicious intent in court. Whether there is actual malice is more a matter of philosophy than law. Since the standard in civil court is preponderance, making that showing isn't as difficult as it might be in a criminal court.

Then there's the issue of whether the plaintiff is, or can be portrayed as, a public figure -- that changes everything.

</comment></comment></comment><comment><USER15> The blog post is an ad hominem attack.

I think the researcher mixed up who is connected to what site; but over all he is right: his paper has not been retracted (yet and possibly won't be).

Should he sue or threaten to sue about it ? Probably not; at least not until he can show damages.

Threatening the Streisand effect is pure trolling - If you defend yourself you're guilty ?

</comment><comment><USER16> Another classic example of the Streisand Effect. If he really wanted something changed or the fact that it wasn't a retraction more visible, he could of emailed the owner of the blog and politely asked if there was a compromise that could be reached.

</comment><comment><USER10> This is like suing because someone did a profile on you and published it on Yahoo.

<comment><USER17> This is like suing because someone did a profile on you and published it on Rapist Watch.

If that had happened, I doubt there would be many saying, "Well, they never accused me of being a rapist, so I guess it's OK."

<comment><USER10> It really depends on what is said. Rapist watch can profile people who watch for rapists too.

</comment></comment></comment><comment><USER18> Not really the case here because the article specifically calls out what happened, but it can't really be the case that the name of the blog or site should play NO role in determining defamation, right?

If I run a blog called "Murderer Watch: Keeping an Eye on Murderers and Things" and I post "Bob Jones is 34 and lives in Atlanta, GA," that can't be totally okay just because those are all factual statements, right?

</comment><comment><USER19> That's OK, he has lawdingo. :-)</comment>


Probiotics shouldn't be treated as a food supplement, according to a new study - <AUTHOR> https://www.businessinsider.com/probiotics-arent-food-supplements-could-have-harmful-risks-2018-8 <comment><AUTHOR> lactic acid brain fog

<comment><USER2> Brain fogginess, gas and bloating: a link between SIBO, probiotics and metabolic acidosis [https://www.nature.com/articles/s41424-018-0030-7](https://www.nature.com/articles/s41424-018-0030-7)</comment></comment>


Show HN: Write blog in Emacs with hexo/org-page - <AUTHOR> https://github.com/CodeFalling/blog-admin <comment><USER2> What does the generated blog look like?

<comment><USER3> Looks like it uses [https://github.com/kelvinh/org- page](https://github.com/kelvinh/org-page)

You can see an example and more info there

<comment><USER4> From the link above, here is a site generated by org-page: [http://kelvinh.github.io](http://kelvinh.github.io)</comment></comment></comment>