Show HN: Find people who don't follow you back on Instagram - mr-karan http://insta-notfollow.herokuapp.com/ <comment><AUTHOR> Tried to log-in:

{"code": 400, "error_type": "OAuthException", "error_message": "Invalid scope field(s): follower_list"}

</comment><comment> mr-karan A Web app made in Flask which helps you find people on Instagram whom you follow but they don't follow you back.

Suggestions welcome</comment>


Show HN: PWA Timer for V60 Coffee - <AUTHOR> https://v60.timvdalen.nl/ <comment><USER2> Nice one :) Will give it a go tomorrow morning. On holiday at the moment though and I always bring the v60 but never the kettle. I always need to forage for something that can pour slowly and consistently!

<comment><AUTHOR> Let me know if it works for you! You can tap the water display to set different amounts of coffee/water.

Since this is mostly just a personal thing I opted for hidden features to keep the interface simple instead of more discoverability.</comment></comment>


Sibyl: A System for Large Scale Machine Learning at Google - <AUTHOR> https://www.youtube.com/watch?v=3SaZ5UAQrQM

<comment><AUTHOR> The talk is about the system's design decisions, not about ML. Bits I found interesting:

* Tushar Chandra believes soon ML primitives will be available to application developers just like nowadays distributed and db primitives are becoming available in a standard way

* There was an early design decision for Sibyl not to be build on top of a custom distributed system solution but instead to rely on existing primitives such as MapReduce and GFS.

* 100B+ training examples with 100s features per example, use cases with 50TB of data

* Because logging all the features of each examples can make the logs grow extremely fast and because some features might be experimentally used and come and go, the logs would contain only the example id and then before training the model, the data will be inner joined with the example database/GFS

* Examples were stored as columns (partition by features, each file containing 1 feature for many examples) instead of the more common approach of partitioning per row where you store all features of a batch of examples in the same file. This had great benefits in terms of faster feature transformations, less data to be read because some features were less useful than others, and better compression of the data. Further feature compression achieved by finding all unique feature values and mapping them to numbers in a Huffman encoding way. Total compression achieved was 3-5 times

Towards the end, the talk contains some use cases with big numbers (throughput per core, for e.g.) worth checking out</comment>


Handcalcs: Automatically render Latex equations from Python math code - <AUTHOR> https://github.com/connorferster/handcalcs <comment><USER2> This is very useful. My use case is that I often write python simulations of designs and/or as cost analysis simulations, but I also often want to put these conclusions into white papers. This is an excellent way to de-duplicate the work of getting the python simulation code and the latex code both correct, and as a bonus, they can share a single place to change.

I'd love to be able to inline this code into my org documents, and have it display the latex output, but that might be asking for too much magic. (As in, not sure if the magic is worth the incantation.)

<comment><USER3> > share a single place

I particularly like the idea of feeling reassured that whatever I publish for humans also passed a test-suite.

</comment></comment><comment><USER4> This is fantastic! The best use case I can think of is to verify your python formulas are correct. It is much easier to read math notation than code.

<comment><USER5> > It is much easier to read math notation than code.

I agree.

And for _writing_ , the difference is even bigger than for reading. Thus, what we need is the reverse tool, that translates our beautiful formulas into the damned code!

<comment><USER6> The problem isn't translation, it's input. Keyboard is designed for serial 1-dimensional input, formulas are nested trees. The approaches I've seen are:

\- OCR a handwritten formula (unreliable but the most convenient)

\- make the user write serialized code and show it as formula (basically this submission, but also latex etc. - misses the point)

\- force the user to design the formula tree with some graphical editor and fill it with values and identifiers later (office suites do this and it's such a pain to constantly switch between keyboard and mouse)

<comment><USER7> When you write formulas by hand, don't you write them in serial format i.e. symbol by symbol? The advantage of hand is that you can often write the symbols in whatever order you want, while latex has pretty much a canonical order.

Eg. by hand, you can write down the denominator of a fraction before the numerator. While latex require numerator before denominator.

<comment><USER6> You filled the numerator and want to switch to denominator - how do you specify that with keyboard? You could use TAB or something, but that denominator could be nested in 10 levels of other stuff so you probably use mouse or jump for 5 seconds randomly until you get to the right place.

The problem is that you have to jump which "by hand" is natural (start writing slightly lower) while with keyboard requires switching to mouse and back or remembering shortcuts and modeling the tree structure of your formula in your head to know where the shortcut will jump.

Same with introducing new levels of nesting.

That's why I prefer just writing code for formulas over graphical editors.

<comment><USER5> this is exactly the purpose of vim, dude

<comment><USER6> I haven't seen tree-edit mode in vim, I've seen it in emacs for clojure (it was called paredit or sth like that) and I've tried to learn it but couldn't get used to it in a few days. Maybe it would work better for formulas.

<comment><USER5> There are a lot of "fancy" packages tailored to latex and formulas like vim- latexsuite, that set up place holders that you can navigate around and whatnot.

But even without all that, a very basic thing that you can do is move around the matching pairs of braces (and brackets, and other paired things) using %

If you do not want to move, but only see where the matching brace is, you can "set showmatch" and it will flash the matching brace when your cursor passes through the other one. This is really helpful for writing nested formulas (although a better strategy is to add a lot of newlines and whitespace so that the structure of your formulas is clear).

<comment><USER6> Even mcedit shows matching braces, that's not tree editing :) That would be editor showing a formula in graphic form and allowing you to jump around on it and add/move around nested parts of it with shortcuts.

<comment><USER5> The show matching braces thing is not essential. But, barring the visual formula, %-navigation through braces _is_ tree navigation.

<comment><USER6> But if you have serialized code tree navigation isn't needed, the whole point was to make it graphical.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> In case people would like similar functionality in the Julia programming language, there is also a package for that:

[https://github.com/korsbo/Latexify.jl](https://github.com/korsbo/Latexify.jl)

<comment><USER9> And on the off chance you want to use the array language J instead, I wrote and used JtoLaTeX ([https://github.com/mlochbaum/JtoLaTeX](https://github.com/mlochbaum/JtoLaTeX)) throughout college for physics and math papers and even a master's thesis. It can display or calculate formulas, and embed plots.

<comment><USER10> This is lovely

</comment></comment></comment><comment><USER11> This seems super-useful! Really interesting library that I earmarked for use next time I'm doing something math-heavy.

Quick note about the site: the animated GIFs are not helpful. A static screenshot would let me see the result and give me time to understand what's going on. As it is, they jump back to an unrendered Jupiter cell almost immediately, and the animation is just typing; not really showing anything useful.

</comment><comment><USER12> This seems like a pretty helpful educational tool — you could sprinkle it in a project's documentation to help clarify the exact formulas being used.

I could also imagine people using this if they aren't that comfortable with LaTeX and want an easier way to write it. They could just write out their formulas with Python, call @handcalc() to get the string output, then post it in their tex documents.

<comment><USER13> Maybe, but if you can do Python I cannot imagine you not being able to do LaTeX. The equations are the easy part.

<comment><USER14> It's still one more thing to learn. There are lots of things I _could_ do that aren't on my priority list.

</comment></comment></comment><comment><USER15> Sagemath with %display latex does practically the same thing, and it's much more powerful symbolic execution engine. Works with matrices too.

</comment><comment><USER16> going the other way LaTeX -> code: [https://github.com/sympy/sympy/issues/5418](https://github.com/sympy/sympy/issues/5418)

</comment><comment><USER17> Will it render my matrices/vectors? I suppose since Python doesn't have static typing that is unlikely.

I've been using sage math a lot and the latex generation is really solid. It only renders greek letters correctly if you type them out though, it won't transform unicode greek letters to the correct latex equivalent. Though maybe XeTeX would solve this problem? I'm not sure.

<comment><USER18> If it puts the Unicode character into the Tex source, verbatim, XeTeX is the way to go (or Luatex or Context, I believe): at this point I almost never use vanilla LaTeX

</comment></comment><comment><USER19> Is this a kind of open source version of Mathematica's traditional form? [https://reference.wolfram.com/language/ref/TraditionalForm.h...](https://reference.wolfram.com/language/ref/TraditionalForm.html)

</comment><comment><USER20> As I see on the demo, it evaluates the expression itself. There is a ton of possibilities to misinterpret the domain of operations involved. Moreover, how should we control the details to which it should unwind the undergoing calculations?

That way of work seems a bit too optimistic to me.

<comment><USER21> Jupyter, and ultimately Python, evaluates the expressions. handcalcs just displays the resulting information with variable values from the Python locals dict.

</comment></comment><comment><USER22> There's also [https://github.com/google/latexify_py](https://github.com/google/latexify_py) out there. Handcalcs seems to have a more extensive readme at least. Does anyone have a comparison?

</comment><comment><USER23> If only you had created this sooner, I could have saved so much time writing up lab reports for my physics courses. I attempted something similar with Excel sheets and some bash scripts, but the effort involved took more time than just writing the lab report by hand.

</comment><comment><USER24> I know it's off topic but there is no bigger cheat code in high school than knowing Latex. In no other way can you get an additional free 5% on every paper with virtually no additional time input past the initial investment.

<comment><USER25> An easier way to achieve the same thing is to use Pandoc :)

</comment></comment><comment><USER26> Pretty cool but I think SymPy is more practical w.r.t. to formula transformations and rendering is as good in Jupyter notebooks. If it only had as good pattern matching and substitution rules as Mathematica...

<comment><USER21> Sympy is for solving an original solution. handcalcs is for plugging numbers into formulas. Next major milestone is integrating sympy with handcalcs so it is easy to transition from the sympy steps to the calculation steps.

</comment></comment><comment><USER27> That it can do units too makes this a possible replacement for MathCAD!

<comment><USER21> That is my hope! At least for more typical arithmetic.

</comment></comment><comment><USER28> I was hoping to see it detect loops that sum something and translate it into sigma notation but that's ambitious... Very cool, regardless - I'll be using this a lot!

<comment><USER29> I could see that working with a direct `sum` invocation.

<comment><USER21> That's the current plan.

</comment></comment></comment><comment><USER30> This is really neat. I'm sure high school teachers with a little programming experience might enjoy setting this up with Google colab in Algebra and Calculus classes.

</comment><comment><USER31> The %%tex directive to convert Python to LaTex looks useful. Does anyone know whether there is a similar way to output the Python code in C++ syntax?

<comment><USER32> This can be done by 'unparsing' the python AST. We do this in the DaCe project: [https://github.com/spcl/dace/blob/900cac070c4b083653c672e225...](https://github.com/spcl/dace/blob/900cac070c4b083653c672e2250c07fd32d1e0dd/dace/codegen/cppunparse.py#L156)

</comment></comment><comment><USER33> I feel like a latex language editor is easier.

<comment><USER21> But it doesn't do the calculation for you. handcalcs is about performing calculations and having it automatically show your work.

</comment></comment><comment><USER34> This is what I needed when I was writing my undergrad thesis. Would have saved me hours of time. Alas.

</comment><comment><USER35> almost related but is there a project allowing editing of a .rst doc to be real time transformed into Html / latex via sphinx - I guess it's not too hard but the faffing about with servers seems like it would be nice if someone had already solved it

</comment><comment><USER36> weird, I was looking for this exact concept (except for Javascript code) literally right before checking whats new on HN.

This looks great. Its super useful for when you need to perform calculations and also keep a saved record of it (like structural engineering calcs)

</comment><comment><USER37> All the more reason to move to a declarative style of programming.</comment>


What People Cured of Blindness See - <AUTHOR> http://www.newyorker.com/tech/elements/people-cured-blindness-see

<comment><USER2> This is rather more interesting from a machine learning point of view than philosophy. For instance, it seems a blind person does know about space from touch, but cannot innately identify space from visual information. What can we infer about the way our brains process sensory information from this fact?

<comment><USER3> There's an interesting account here: [http://www.richardgregory.org/papers/recovery_blind/recovery...](http://www.richardgregory.org/papers/recovery_blind/recovery- from-early-blindness.doc) which contains the following passage about a man who recovered his sight:

"In view of his depressed state, we felt it best not to undertake formal tests. We did, however, ascertain that he was able to find his way about without the use of his eyes, and that he could detect the presence of houses and doors by the echoes from his footsteps. He was still fascinated by mirrors, and he still noted improvement in his ability to see. In particular, he said that he noted more and more the blemishes in things, and would examine small irregularities and marks in paint work or wood. Quite recently he had been struck by how objects changed their shape when he walked round them. He would look at a lamp post, walk round it, stand studying it from a different aspect, and wonder why it looked different and yet the same."

I think the last line is interesting. There is a conflict between the spatial reconstruction and the optical appearance.

<comment><USER4> This reminds me of trying to localize yourself using a very narrow field of vision, where you see things but it's hard to paint the picture of the environment

(It may even be possible that the person has some kind of shortsightedness, I didn't see the article)

<comment><USER3> Yes. In fact there is a tradition in art theory of making a distinction between close vision (involving movement of the eye across a surface) and distant vision (in which the whole scene can be taken in at once).

It's actually a fascinating bit of intellectual history, though I am not sure whether it counts as objective scientific knowledge.

It started with the sculptor Adolf von Hildebrand and was developed by Alois Riegl into the notions of "haptic" and "optical" vision. Wolfflin then expanded that distinction into five polarities (linear vs painterly, plane vs recession, closed vs open, multiplicity vs unity, clarity vs complexity). In mathematical terms haptic seeing is concerned purely with manifold surfaces whereas the optical can also represent non-manifold geometry.

Even more significance was later hung on that structure by the philosophers Walter Benjamin and Deleuze and Guattari. In particular the haptic is associated with surface, with smooth spaces of the mechanical, of trajectories and motion, while the optical is associated with volume, with striated spaces of the organic, of hierarchy and stasis. "parametric" vs. "implicit" if you like.

It's a bit of a philosophical rabbit hole!

<comment><USER5> Ooooh. I never knew that there was this model of these different types of vision! I am a congenitally blind person who can (occasionally) find a way to make myself see a tiny bit better, and a lot of what I do is allow my eyes to wander up and down different surfaces. I basically pretend that they are fingertips. I am much less good at the other types of vision, but I've played around with them a bit; it's like I am hurling my body through space. I can't access the New Yorker article but I suspect my experience is different because I have always felt sighted even though I've never had vision. I really suck at being a blind person and thus am incredibly motivated to figure out how sight works, because I can already tell that I'm a visual learner (and an artist) and sight makes so much intrinsic sense to me.

</comment></comment></comment></comment></comment><comment><USER6> I don't understand why this article so entirely avoided an extremely important factor - the youth of those being cured. If you give sight to a 3 year old or a 10 year old or even a teenager, their chances of developing normal sight are good. If you give it to someone after puberty, their chances drop quickly, getting worse the older the brain is. Neuroplasticity never goes away entirely (as was believed before), but it is still radically reduced compared to during childhood and especially adolescence.

<comment><USER5> I do think that's true, but if you're like me and never identified with blindness or fully adapted to it, I think your potential for sight restoration is still good. (I'm 28).

</comment></comment><comment><USER7> I don't think these experiments answer the philosophical question. The philosophers were assuming that the blind would have perfect vision once they were restored. But it turns out that the brain needs a long period to learn how to see. During that learning period the brain will slowly learn how to see roundness. A better, though unethical, experiment would be to somehow prevent a restored sight person from seeing any spherical objects for a long period and then show them a spherical object.

<comment><USER8> I can't see anything unethical in that, it's just highly impractical (which is why it might be difficult/expensive to find test subjects).

But my guess is that there isn't actually any "spherical" vs. "non-spherical" distinction at the level of processing that is (presumably) untrained in blind people, but rather some more general recognition of sharpness of objects' edges of which spheres are just an extreme case, and _that_ would be pretty much impossible to control for, as you'd need the test subject to live in a "uniform sharpness environment", which would have to include their own body's shape(s) ...

<comment><USER9> > I can't see anything unethical in that

Really?

"We're going to give you sight but not let you see anything round for 2 years. So we need to keep you in this cage unless you are blind folded."

Yeah. No ethical issues here ...

<comment><USER8> Please explain why it would be unethical to do that with someone who agrees to it for a payment of 10 Mio. USD and with the option to leave at any time with only partial payment. And while you are at it, please also explain why testing of new drugs with unknown effects on human subjects is not unethical (or is it according to your opinion?).

<comment><USER10> They couldn't possibly consent to such when they have no idea what they are actually giving up. If someone who was previously able to see then went blind was given the same choice, then they would have a basis from which to value sight and make an informed decision of consent; however, I don't think a person who has never seen before can possibly give valid consent to such an experiment.

<comment><USER11> That's a strange way to put it.

Suppose I'm deadly allergic to all fish and fish-tasting foods. Now someone comes up with a way to cure that, so I can eat fish for the first time. And then they say, "actually, we'd like to see what happens if someone first tastes salmon several years after they first taste haddock", and they offer me a lot of money not to eat salmon for two years. Can I consent to that, even though I don't know what I'm giving up with salmon? What about if I started with no taste at all?

(N.B. This isn't meant to be a knock-down argument against your position. I disagree with your position, and this is _an_ argument against it, but it's not my true rejection. My true rejection is along the lines of "you have no right to tell people what they can and can't agree to", but I don't care to get into that.)

<comment><USER12> "You have no right to tell people what they can and can't agree to"

I know you said you don't care to get into this, but I'm honestly curious; where do you draw the line (if at all) on that position? Because the concept of enforcing an inability to consent to things is the basis behind minimum wage laws, age-of-consent, the unenforcibility of draconic EULAs and non- compete clauses, and probably some other laws that I can't think of which are wholly designed to protect people from being able to make terrible choices that hurt not only themselves, but the rest of society by validating that choice as a potential option.

I'm not trying to slag on you and I recognize that you don't want this to turn into a debate where everybody shouts at you, and that's probably what's going to happen if you respond; I'm just curious about the boundaries of your position.

<comment><USER11> A fair question.

I try not to be dogmatic. Sometimes, bad decisions have externalities that justify forbidding them. I don't think that's the case in this particular instance. To briefly address your other examples-

Minimum wage: in this case, I think the economic factors probably outweigh the freedom-of-contract principle. (I'm on the fence about what the economic factors actually support.)

Age of consent: I think there's a meaningful sense in which children are not "people" for the purpose of entering contracts.

EULAs and non-competes: I haven't spent much time thinking about this. Off the top of my head, I feel like these should be enforceable, but not as currently implemented. Like, suppose before I let you buy my software I get you to mail in a signed form saying that you have read the EULA and agree to its terms. Then I think I should be able to enforce the EULA against you.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> I recently read Robert J Sawyer's "WWW Trilogy", in which the main character has her blindness cured via technology [not a spoiler; reader knows this going into the first book].

The main character's acclimation to and approach to sight throughout the trilogy was interesting, and I recommend in view of this article.</comment>


MIT Startup Bootcamp [Livestream] - <AUTHOR> http://startupbootcamp.mit.edu/?

<comment><USER2> Gah! Only an hour left - does anyone know if/when these talks will be posted online?

<comment><USER3> They will be posted to: <http://youtube.com/startupbootcamp> at some point.

<comment><USER2> Awesome, thanks - very lazy question!

</comment></comment></comment><comment><USER4> I m on a start up weekend event in Germany at You is now 24. Its really great fun and loved the presentations. But the people on the bill here are from leading global sites. One way ticket for me to Sillicon Valley i think

</comment><comment><USER5> Hasn't this event just ended, or am I calculating timezones wrong?

<comment><USER6> At the time of my comment, it's 2:48 PM at MIT so it has a couple hours left.

<comment><USER5> Thanks, it seems that I was having video issues AND calculated timezone wrong.</comment></comment></comment>


XML fever (2008) - <AUTHOR> http://queue.acm.org/detail.cfm?id=1466454 <comment><USER2> Now in 2015 we have XML prejudice and aversion where people trash XML as the worse possible format. As with many things it has its strength and weaknesses a couple of them being that a parser exists for almost all programming languages and the syntax of XML is probably the most widely understood (given so many people know HTML). And while XML is complicated there are far more complicated formats (YAML).

What we have today is format creation fever. Particularly in configuration languages. Hucon, TOML, YAML, JSON, sort of JSON formats (HJSON or whatever it is).

<comment><USER3> It's just because XML is a bad choice. It's a standard for creating markup languages, but use in HTML failed because it's more verbose and doesn't cope at all with user errors.

For data serialisation it's just insane. The only reason to use XML to serialize your non markup data is that it's a web technology and you have parsers everywhere. Mapping data back and forward between your data structures and the XML representation is a huge pain in the ass, as there's no natural mapping. For some formats like SVG you basically have to keep data as a DOM in your program.

> And while XML is complicated there are far more complicated formats (YAML).

While the Syntax of YAML certainly is more complicated, totally I would say that it's less complicated without all the XPath, Namespaces etc. you additionally need. YAML maps fairly direct to data structures of programs and the complexity is there to get human readability and edit ability. Something XML doesn't have when used for general data.

> TOML

Is basically just a specification of the largely unspecified INI format, which is older than XML. This is just a format for human editable configuration files, for which we have experience that XML really really sucks.

> JSON

Very simple data format that maps directly to data structures of all common programming languages. The fact that JSON beat XML where XML is at home, in the web shows pretty clearly that JSON is the better format for data serialisation.

TL;DR: Use the correct format for the use case. XML is for markup, not serialisation. JSON is for serialisation, YAML is a better readable JSON e.g. if you mainly use the data for debugging, INI(/toml) is for configuration files.

<comment><USER2> While I think we are on the same page (I did say XML has strength and weaknesses) I think XML is undervalued for a configuration language particularly if the configuration language is to be modified by another application or script.

The reason a markup language like XML is actually sort of useful for a configuration is that spacing and comments can be preserved on modification. That is if I modify the XML manually and then modify it with a script (assuming the script is written correctly) I can preserve my formatting and my comments. As far as I understand such is not the case with many formats (I suppose YAML would be the exception albeit I'm not sure if it preserves white space other than the required whitespace).

I have actually had this use come up. I had 20 or so Maven POM files that I had to modify/refactor. It was fairly easy to do because it was XML all while preserving the formatting and comments.

With the exception of massively complex configuration (aka Ansible) I really don't think most users (particularly non-techy) care that XML is slightly more verbose than YAML. Particularly since configuration is not modified that often and again its like HTML (although HTML is a failure technology wise it is ubiquitous).

As for serialization... XML is bad... I can't come up with any devils advocation for that.

</comment></comment></comment><comment><USER4> "one of the most troubling XML problems that is often experienced when encountering schemas generated from UML models"

To be fair I think pretty much _any_ kind of output generated from a UML model typically has serious problems (code, databases schemas, XSDs, documentation).

</comment><comment><USER5> I'm sure others who have been around longer remember other examples, but in my life I have never before or since witnessed a media blitz for a "technical" standard as the coming out party for XML in the '90s. Almost overnight the book shelves, magazines (yes those were both things back then), and even TV news proclaimed the dawn of the new age. A wave incoherent mass insanity swept the industry with the promise that this sometimes white space sensitive text data format with all the deliberate under and over specifications that are hallmark traits of design by committee was literally going to solve every problem in software engineering, enterprise IT, and of course investing in the dot com dumpster fire (pre first collapse). The emperor never had any clothes. Disk space, network capacity, cpu time, sanity, dignity - mattered not. No problem could not be solved better with XML. Dissension was heretical.

Any one else remember that?

<comment><USER6> To this date I feel frustrated when I have to deal with a few pages of XML that could easily be a few lines of json. Then again, enterprises love it, so I can't complain too often or loud.

Still, I often refer to it as XMHell and if you speak it fast enough, only the truly wise will understand and acknowledge it with a smile and a nod.

<comment><USER7> "a few pages of XML that could easily be a few lines of json"

There is no sane way that you could represent "pages of XML" in "a few lines of JSON". Maybe the point you're trying to make is that you need just a handful of key:value pairs but whatever generates your config sees fit to do incredibly deep nesting...but that would be an issue with your application, not XML.

<comment><USER6> _> There is no sane way that you could represent_

I think you're wrong, namely because of arrays. Can you tell me how you'd represent [1, 2, 3, 4] in xml?

If you think this example is contrived, please compare the dependency sections of a clojure project.clj vs that of a Java pom.xml

</comment></comment></comment></comment><comment><USER8> "No connection between RDF and XML" is definitely not true.

(1) RDF uses the XSD types for literals, and (2) you can turn an XML document very directly into an RDF graph with interconnected nodes.

Once you have done that you can go to "plain" RDF with simple production rules instead of insanely complex XSLT. That is, 250 lines of XSLT goes down to 10 lines worth of rules.

</comment><comment><USER9> I feel like there is a similar condition, JSON fever.

<comment><USER10> I am a JSON apologetic that uses JSON for _all_ serialization except when performance is critical. I am all ears for why I am wrong on this.

<comment><USER11> No-one said you're wrong. Maybe that's one of the symptoms of said fever. ;)

</comment></comment></comment><comment><USER12> I spent several years working with the Marklogic[0] document database before NoSQL was cool and before I had even heard the term. It was incredibly freeing working with arbitrary XML documents and fragments. As a benefit we were able to transform data into HTML markup with a simple XSLT transformation.

You could create multiple views on the same data by just adding some logic to your XSLT or creating a new XSLT

Queries are(or were at least, it's been many years) built in Xquery which is a simple, functional language that I found much easier to grok than SQL.

Since XML is just a tree and both XSLT and Xquery work on the trees quite well, advanced searching, sorting and relationship graphs came almost for free. I would gladly work with that stack, or something like it, again.

[http://www.marklogic.com/](http://www.marklogic.com/)

<comment><USER13> > a simple XSLT transformation.

You don't see those words together too often.

</comment></comment><comment><USER14> "XML is like violence. If it isn't solving your problems, then you aren't using enough of it."

</comment><comment><USER15> I inherited an application from a person who was apparently taken with XML. The app's data and output was kept in his own home-brewed XML format with hand written output and parser functions.

His understanding of XML was as follows: Put whatever you want between '<' '>'. It certainly beats reading the w3c docs. Needless to say, I rewrote the application from scratch.

<comment><USER16> > His understanding of XML was as follows: Put whatever you want between '<' > '>'.

Well, in all fairness, somebody with _that_ attitude would give any serialization/data format a bad name. While I am not a fan of XML, you cannot blame that one on it.

</comment></comment><comment><USER17> XML can have a defined schema to validate data against. Does JSON have anything similarly defined as part of the language? It seems like an afterthought. Does anyone use it in practice?

<comment><USER4> JSON Schema seems to work pretty well - I've used it in Python applications:

[http://json-schema.org/](http://json-schema.org/)

I don't think there are any fancy graphical editors as there are for XSDs - but that's probably not a bad thing as I suspect if things are getting so complex that a graphical editor makes sense then you've probably allowed things to get too complex anyway.

</comment></comment><comment><USER18> If you're looking to describe document structure in a markup language, especially where mixed content is involved (think think running text, not database results), XML is great.</comment>


Pple Needs to Do More to Keep Porn off iPhones, Watchdog Group Says - <AUTHOR> http://www.foxnews.com/scitech/2010/04/27/apple-iphones-porno-apps-stimulating-opposition-parents/

<comment><AUTHOR> What? What?!? Hey, PTC (socially conservative Parents Television Council) is your marketing and recruiting efforts that weak that you have to ride the gravy train of higher-than-the-usual iPhone media buzz to put out this statement?

Here is a crazy idea... DON'T let your children have iPhones OR take personal accountability and monitor your children. Oh, wait, I get it. If you did that, then you wouldn't have a "council" anymore--you sly devil's you.

But, I really like this one "The group has publicly demanded that Apple stop providing porn to children -- and clean up its act."

I'm sorry, I missed the part where Apple and similar companies' products market this as a toy or for children. Should they start selling these in sealed plastic bags with a choking hazard warning in size 18 font written repeatedly all over it like a McDonald's drive-thru toy also?</comment>


Ask HN: How feasible are manufacturing startups? - <AUTHOR> I have a harebrained idea about a heavy construction startup utilizing electric engines as opposed to diesel, along with some other differences to the heavy hitters of CAT & Komatsu.<p>I however am a software engineer who knows little to nothing about manufacturing at scale and the details that go along with it. It seems like everyday I hear about a startup that is purely software, and the ones that involve hardware of some sort are usually in the IoT space. Is this because manufacturing startups are simply not feasible due to cost? What other factors limit makers and tinkerers from bringing their ideas to market? <comment><USER2> Why do you think the existing players don't use electric engines already?

(Also it seems to me that the amount of money needed to get started in this field would be "immense", versus "a few hundred thou to rent an office and pay a couple salaries for a year").</comment>


Color Credulity - <AUTHOR> http://jasonfager.com/1018-color-credulity/

<comment><USER2> Cool, I just wrote a blog post trying to give Credulity too, but from a different angle. I think the app could be something huge, especially with the people and amazing tech they have, as you say.

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

<comment><AUTHOR> That is an interesting use case, but I don't know if it's enough to make the case for the company. Given that you can pretty effectively address that problem via Facebook or Flickr today, I don't know that someone would put $41M into a company that came to them speaking primarily to solve that problem.</comment></comment>


50 things that are being killed by the internet - <AUTHOR> http://www.telegraph.co.uk/technology/6133903/50-things-that-are-being-killed-by-the-internet.html <comment><USER2> Crap article. Loose thinking and loose writing.

Examples:

 _5) Punctuality_

 _Before mobile phones, people actually had to keep their appointments and turn up to the pub on time. Texting friends to warn them of your tardiness five minutes before you are due to meet has become one of throwaway rudenesses of the connected age._

Texting is not "the internet".

 _The ubiquity of free, hard-core pornography on the web has put an end to one of the most dreaded rights of passage for teenage boys – buying dirty magazines._

A right of passage is an agreement that someone has the right to pass through a certain area of land (usually to get to their own land). A rite of passage is a ritual. The author no doubt meant the latter.

 _10) Watches_

 _Scrabbling around in your pocket to dig out a phone may not be as elegant as glancing at a watch, but it saves splashing out on two gadgets._

Again, phones != internet. Phones had clocks on them long before they had web access.

This could have been a moderately interesting article, but unfortunately it was just gimmicky hot air.

</comment><comment><USER3> These are my 5 favorites (#s 3,11,34,40 & 46), simply because they have all been killed just because current web companies for some reason seem to not be able to get the model right when it comes to distributing online music. Napster was the last company to really stick it to the major lables, and as Pandora has just been proven to, they were hit with the infamous FCC regulations. We can fix these issues with a different model and the distribution of power.

3) Listening to an album all the way through The single is one of the unlikely beneficiaries of the internet – a development which can be looked at in two ways. There's no longer any need to endure eight tracks of filler for a couple of decent tunes, but will "album albums" like Radiohead's Amnesiac get the widespread hearing they deserve?

11) Music stores In a world where people don't want to pay anything for music, charging them £16.99 for 12 songs in a flimsy plastic case is no business model.

34) Mainstream media The Seattle Post-Intelligencer and Rocky Mountain News in the US have already folded, and the UK's Observer may follow. Free news and the migration of advertising to the web threaten the basic business models of almost all media organisations.

40) Undiscovered artists Posting paintings to deviantART and Flickr – or poems to writebuzz – could not be easier. So now the garret-dwellers have no excuses.

46) Staggered product/film releases Companies are becoming increasingly draconian in their anti-piracy measure, but are finally beginning to appreciate that forcing British consumers to wait six months to hand over their money is not a smart business plan.

</comment><comment><USER4> This list is terrible for its omissions. The most important:

* Local bank branches, thanks to Direct Banking (e.g. HSBC Direct, ING Direct)

* Local realtors, thanks to the likes of <http://redfin.com>

* Local and Community colleges, thanks to the likes of <http://straighterline.com>

* Credit cards and Banks as the sole distributor of unsecured credit, thanks to the likes of <http://prosper.com>

And so on...

<comment><USER5> Some of those things are interesting, but they're hardly very influential at this point.

Are there fewer local bank branches today as compared with 10 years ago? Maybe (though I'd like to see the data), but is it due to online banking or just industry consolidation?

Are there fewer realtors? Almost certainly, but it's also almost certainly all about the real estate bubble popping, and virtually nothing to do with Redfin.

Are local and community colleges being killed by straighterline.com? Ummm...no. Maybe someday, but not now. College attendance is actually probably up as compared with 10 years ago.

Prosper.com and other P2P lenders are interesting, but 99.9% of people have never heard of them and still rely on credit cards and banks for unsecured credit, so they're hardly _killing_ anything.

</comment></comment><comment><USER6> 51) My Lawn

All of these kids on it are trampling the grass.</comment>


Alexander Calder's 113th Birthday; Google Logo (Moving mobile w/ shadow) - <AUTHOR> http://www.google.com/#q=Alexander+Calder&ct=calder11&oi=ddle&bav=on.2,or.r_gc.r_pw.&fp=d4254cc904f96be6&biw=1440&bih=815

<comment><AUTHOR> Interesting scripting for today's Google main site logo. :)</comment>


Show HN: Email Verification Tool - <AUTHOR> http://email-checker.net/?ref=hn

<comment><USER2> Hi,

Very nice tool. Do you have any plans to publish this as an API? That would be really useful.

Thanks

<comment><AUTHOR> yeah! I'll be launching an API soon. (in a week or two)</comment></comment>


About page review - <AUTHOR> http://www.mockuptiger.com/about

<comment><AUTHOR> I am about to launch the beta and just extended the about page . Do you think it is ok for an about page? Please share your thoughts</comment>


A Web Developer Goes Native (with Android) - <AUTHOR> http://intridea.com/2010/9/13/a-web-developer-goes-native-with-android

<comment><USER2> _I know that it's the go-to solution for small, simple storage, but why on earth do mobile platforms have schema-driven data stores by default?_

There are a few other easy ways to store data[1] on Android. For example, you could use SharedPreferences for lightweight data. You could write anything that implements the Serializable interface to a file on internal or external storage. I don't know much about Redis, but if all you want to do is persist a key-value store, create a HashMap in your app and write to and read from disk.

You can do something similar with an NSDictionary or NSArray in iOS. [2]

[1] [http://developer.android.com/guide/topics/data/data- storage....](http://developer.android.com/guide/topics/data/data-storage.html) [2] [http://developer.apple.com/library/mac/#documentation/Cocoa/...](http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/Reference/Reference.html) (see initWithContentsOfFile: and writeToFile:atomically:)

<comment><USER3> I am aware of SharedPreferences, and serialization is certainly an option, but ultimately these don't solve the main problem I've experienced. Serialization requires a lot of manual work and it may not scale particularly well for middle-weight and up. I just think that the kinds of data stored in mobile applications lend themselves more to some of the various NoSQL patterns than something like SQLite.

<comment><USER4> Can't you treat SQLite as a key-value store? Create a table with two columns: key and value. Blobs can be pretty big.

Seems to me that a relational DB can easily impersonate a hash, but not vice versa.

</comment></comment></comment><comment><USER5> _Since I'm ultimately more interested in ideas and solving the big-picture puzzles of applications than the low-level implementation details, web is still the place to be for me (for now)._

I'm not sure how to respond to this, but it strikes me as incredibly naive.

<comment><USER3> How so? Web frameworks offer the luxury of interpreted, high level languages and frameworks that abstract away many of the implementation details and let a developer concentrate on the bigger picture. I think mobile will get there someday, too, but it's not there yet.

</comment></comment><comment><USER6> Wondering why Redis isn't the default builtin storage on Android is just a non-engineer question, and the only blemish in a fairly accurate article.

<comment><USER3> I don't mean specifically Redis, the in-memory key-value store. Obviously mobile has huge restrictions on memory that would make this difficult and unwieldy. I mean more the approach of Redis than the implementation. Storing simple data structures in a quickly retrievable format without the need for up-front configuration and schema creation.

<comment><USER6> Every Unix has shipped with dbm since 1979. Since then you have BerkeleyDB, and most recently there has been TokyoCabinet.

However, Sqlite is clean, fast, small, well tested and just plain solid. Android standardized on it for in-device relational store because more applications can benefit from it. If it's not good enough for your purposes, you have the whole gamut of Java serialization libraries to chose from.

<comment><USER7> "Android standardized on it for in-device relational store because more applications can benefit from it."

They also have to supply some SQL store in order to support HTML5 databases. SQLite then is a natural choice; it has a compatible license, is small enough for mobile use, and is solid. Since it is solid, it makes sense to include it in the public API.</comment></comment></comment></comment>


The alarm clock design in iOS is broken - <AUTHOR> http://twentysomethings.co/hey-apple-can-you-please-fix-the-alarm-clock-design/ <comment><USER2> Solution: when creating the alarm, you can toggle snooze off for that alarm and then the CTA on the lock screen is "STOP".

</comment><comment><USER3> "When the alarm goes off a second time, you're likely at an even deeper" Unless someone is so tired that they fall back into REM within 9 minutes I doubt the snooze alarm is worse than being woken from a deep slumber.</comment>


DuckDuckGo slams Google following EU antitrust decision - <AUTHOR> https://www.theverge.com/2018/7/20/17595612/google-antitrust-eu-duckduckgo-chrome <comment><USER2> The duck.com thing is definitely shitty and needs a solution, but they should be (in both cases, Android and Chrome) able to do whatever they want with their software as long as they don't hurt anyone, and I mean actually hurt, not win over in business competition with their superior resources, services, planning, management, marketing and software - winning over your competitors is the whole point of business and is what we call "business risk" to the other side; are we _really_ using the government to reduce business risk of a competing party and saying it's OK and desirable?

No one has (or should have) right to tell Google how should they color their house. Chrome is there to help with using Google products, that's it, why should they support their competitors for free? Everyone is free to download Firefox and you can even use it to use (free!) Google services. You can even use their source code to build your competing browser. We should be thankful.

I know I will be downvoted. Sad. The respect for private property is totally gone. It'd be nice to have a discussion, but I guess it's easier to downvote than to say "yes, it's OK to demand huge amounts of money at [implicit] gunpoint just for winning in business with a product, not unlike the one I'm making, that never hurt anyone".

Think of yourself, you're making a product and someone comes and says "hey, you need to support your competition, and also pay this huge fine even though you did nothing wrong except for fulfilling your legal duties to your shareholders". Tell me: Are you pointing your CRM SaaS customers to Salesforce? I guess not.

A local company in the Czech Republic (Seznam.cz) has a browser that is dozens of times more uncompetitive. Why aren't they fined? Because they're not as successful? Are we really going to punish businessmen for success? What happened to the "everyone is treated equally" principle?

Why aren't craft breweries fined for selling only their beer and no Pilsner?

P.S. duckduckgo.com is my main search engine.</comment>


Gen: General-purpose probabilistic programming model with programmable inference - <AUTHOR> https://dl.acm.org/citation.cfm?id=3314221.3314642 <comment><USER2> [https://news.ycombinator.com/item?id=20301352](https://news.ycombinator.com/item?id=20301352)

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

</comment><comment><USER3> OT (kind of): Do any of these recent Probabalistic Languages support utility maximisation? The only one I've found so far is IBAL ([http://hopl.info/showlanguage.prx?exp=7766&language=IBAL](http://hopl.info/showlanguage.prx?exp=7766&language=IBAL)) which seems to have died.

</comment><comment><USER4> This really showcases Julia's power. This is a DSL built on top of Julia, written in pure Julia. So, a Julia package ;) [https://github.com/probcomp/Gen](https://github.com/probcomp/Gen)

</comment><comment><AUTHOR> Would this language be comparable to a package like JAGS?

<comment><USER5> JAGS defined the optimizers you're allowed to use for you. Its MCMC algorithm is what you get. For simple problems, that works, but in many complex cases you might want have to tweak things to make them work. For example, you may want to make it explore the space more easily at first, and then fix to a few discrete variables to find the max of some variables, then jiggle all a little bit in that area. The authors of Gen were really keen about this ability to tweak when I talked to them, and it's a core capability of Gen. They showed cases which wouldn't converge in other systems because they were lacking this ability to take user input. This is probably the biggest change from previous iterations like JAGS, Stan, PyMC3, Turing.jl, etc.

And then the dynamic compiler mode uses AD to work with Julia packages, so you can easily set it up to do Bayesian inference on neural (Flux.jl) partial differential equations with high order adaptive implicit integrators with DifferentialEquations.jl, which is why I am starting to use this library :). At the same time, there is also a static compiled sublanguage of Gen which is extremely fast (but cannot use arbitrary Julia packages of course).</comment></comment>


The "When Can I Use" Web Widget - <AUTHOR> http://andismith.github.io/caniuse-widget/ <comment><USER2> The widget is a great idea and looks really nice. Well done!

</comment><comment><USER3> Nice!</comment>


Show HN: Snappy Checkout – Stripe Checkout with full-featured dashboard, admin - <AUTHOR> https://www.snappycheckout.com <comment><AUTHOR> Since March 2013, I've been working on building a payment system to sell products for my business. It started out as a modified version of Stripe Checkout. And, from there, I bolted on a full-featured back-end to manage the checkout and collected payments.

I named my payment system "Snappy Checkout". Here's an example of how I use it on one of my websites:

[https://www.snappycheckout.com/pay?E13DZ319DJ1SJCNDH2JDP1](https://www.snappycheckout.com/pay?E13DZ319DJ1SJCNDH2JDP1)

After adding a few lines of JavaScript, the checkout can also be launched directly from any website that uses HTTPS.

Here are some differences from other checkouts I've used:

\- Both Stripe and PayPal payments can be accepted. I prefer Stripe over PayPal (API-wise), but I didn't want to switch soley to Stripe because a lot of people still like paying with PayPal.

\- When a payment is received, a number of checks are run to determine if it's possibly fraudulent. I'm using the term "possibly" because it's hard to programatically determine a payment is fraudulent at 100% accuracy. So far though, I've found Snappy Checkout's detection to be accurate when scanning payments that I've received.

\- If selling digital products, files are stored in your own Dropbox account. I suppose there could be pluses and minuses here. But, I prefer to allow people to control their own files.

\- Snappy Checkout offers a variety of payments -- including one-time payments, discounted payments, subscriptions, subscriptions with a trial period prior to the first payment, and the option to split a payment over several months.

\- Both Stripe and PayPal payments can be viewed, searched, and refunded from the Snappy Checkout dashboard.

\- The cost is 2.9% + 80¢ per sale. Most people are charging a percentage of the sale price on top of the credit card processing fee.

I think others will find this can work for their business too. What do you think?

<comment><USER3> Whoa, this looks pretty fantastic to me. Have you thought about integrating with Shopify? It has a lot of trouble with recurring payments, and Chargify is a pain to use and adds an additional $60/month charge on top of the Shopify fees (it is still worth it, but Shopify having simpler recurring payments would be amazing). This looks like exactly what I was looking for about a year ago when I add recurring payments to my store.

EDIT: After signing up, I see integrating with Shopify isn't even necessary. Do you plan to compete with them? Or potentially be a feature to work with them?

<comment><AUTHOR> Isn't Shopify mostly targeting people who want to sell multiple items via a shopping cart and/or host their product website at Shopify?

<comment><USER3> It's targeting people who want to be able to put together a store very simply and quickly (at least that is why I used it). It definitely has a weakness on recurring payments (pretty much the only thing Volusion does better, in my opinion), but other than that it is pretty fantastic in terms of connectability and ease.

</comment></comment></comment></comment><comment><USER4> Really nice to see some innovation in this space. I have used a particular provider since 2006 and eventually ripped out 98.5% of their system to replace with my own, but am familiar with the offerings you're competing with. Most are _godawful_. They're largely bubblegummed-together, the reporting is atrocious, they're virtually unusable by the (surprisingly) non-technical people who have to work with them, they have UXes which actively discourage customers' customers from spending money (!), etc etc.

I would not be surprised if the market eventually pushed you into handling fulfillment, by the way. For many of the early adopters in this space that's as simple as "proxy a download link and send two emails" but it's a really important part of the puzzle for them.

<comment><AUTHOR> Snappy Checkout does have an API (just some basic calls right now) & webhooks that can help with digital fulfillment. For my own business, a webhook notifies me of a new sale and I use the Snappy Checkout API to verify that the sale is legit -- which basically allows me to verify that the paid price matches the expected product price.

If you meant non digital fulfillment, I don't know much about that. I'm interested in improving Snappy Checkout to help in that area if at all possible.

<comment><USER5> If you're going to start adding features, you might want to add a feature request page to help prioritize them. I sell desktop software and the most requested features in that space would probably be license key fulfillment, discount codes, product bundling, and interfacing with CD fulfillment services.

<comment><AUTHOR> License key fulfillment can be done now using the Snappy Checkout API & webhooks. This process is undocumented right now... but, I'm working on it. In the meantime, I can help anyone get it going via email.

</comment></comment></comment></comment><comment><USER6> Am I the only one who thinks 50 cents per transaction (in addition to the Stripe/Paypal) fees is still an awful lot?

For the typical $5/mo SaaS subscription, that's a full 10% just to pay for your checkout system (not including the payment system).

That said, our team is likely not Snappy Checkout's audience as we're devs who can integrate Stripe/Paypal ourselves.

<comment><USER7> I'm not sold on this product yet, for other reasons, but the transaction fees are very compelling to me.

 _For the typical $5 /mo SaaS subscription_

This is the problem. Typical Saas subscriptions are significantly more than $5/month, at least if you want to stay in business. $50/month (as a starting tier) is more normal and could actually be sustainable.

If you're charging only $5/month for your SaaS, then you will be unlikely to have enough margins to pay for any external services (and possibly your rent).

For reference, Gumroad charges .30 + 5%. So on a $50/month subscription that's going to be $2.80, whereas with Snappy Checkout its only going to be $1.95. More importantly, as you charge more (e.g., $200/month), the gap would widen even further.

We currently process about $3k/month through Gumroad and e-Junkie, so we're just about at the point where it makes sense to look at other options. If we can move to something like this as opposed to rolling our own, I'm very interested.

<comment><USER6> We could argue about what's a "typical" SaaS monthly fee, but I'm pretty sure your $50/mo is for the SMB/Enterprise space where my $5/mo is for consumer.

<comment><USER7> As you say, I see SaaS as primarily a B2B product. I have trouble naming successful B2C SaaS products, outside of perhaps Dropbox (although I still think Dropbox is primarily B2B, at least in terms of revenue).

But we probably agree on this: if you charge $5/month, this product is not for you. If you charge $50/month, the fees are negligible.

</comment></comment></comment></comment><comment><USER8> It's great, the functionality is good and the price is fair.

I could only see USD hardcoded as the currency, though, and there is the old euro VAT problem -- businesses in Europe need to be able to charge customers VAT depending on where the goods will be delivered and what type of goods they are. It's all pretty complicated stuff, but without it a checkout system is useless to most Europeans :(

It has always seemed to me that anyone who can build a checkout that handles VAT properly would have the whole of Europe beating a path to their door.

<comment><USER9> "It has always seemed to me that anyone who can build a checkout that handles VAT properly would have the whole of Europe beating a path to their door."

Totally agree with this!

</comment></comment><comment><USER10> This looks really nice. We are looking for something to integrate into [http://Clara.io](http://Clara.io) (our online 3D modeling + rendering tool) so we can start accepting payments. We are looking at Stripe of course, but things on top of stripe that make life easier are always welcome.

Q: Can I migrate from this to something else (stripe.com directly) if it proves to be insufficient or it doesn't have longevity? How much of the customer information is locked in this versus stripe?

Q2: On a separate question, how easily can I move my subscribers away from Stripe.com for whatever reason? Will I need them to re-enter in their payment data? That would be killer for us.

Q3: How do other websites handle this these types of issues of potentially switching payment systems?

<comment><AUTHOR> Let me know if there is anything preventing you from using Snappy Checkout. It does a lot right now, but I'm willing to make it better if it won't work for your business is-is.

<comment><USER10> I did ask three questions via an edit. I suspect you missed because I only added them after the fact. We are seriously looking at Snappy Checkout.

<comment><AUTHOR> I did miss them. Sorry :(

A: When accepting Stripe payments via Snappy Checkout, all of your customer data is still available in Stripe. If you left Snappy Checkout to use something else, the only thing that would not work is subscriptions. I don't use Stripe's system for subscriptions -- that is all handled in Snappy Checkout. And, if it really proves to be insufficient, I'd like to make it work for you if possible.

A2: Snappy Checkout creates customers in Stripe's system. So, you could still charge existing customers if you found another 3rd party system that allowed that. I don't think it's possible to charge existing customers from Stripe's admin right now.

A3: Good question. I'm not sure though -- a possible import process maybe? I suppose that would be tough since Stripe/PayPal hold all of the credit card data. My goal is certainly not to push people away when a roadblock is encountered. I'd like to make Snappy Checkout work for anyone.

Correction: For existing Stripe customers, you can create new charges/subscriptions from the Stripe admin.

<comment><USER11> > I don't think it's possible to charge existing customers from Stripe's admin > right now.

I don't think this is correct. Stripe (and the Stripe Admin UI) gives you enormous power to charge/upgrade/downgrade/enroll existing customers.

I'm curious, why did you choose to implement your own subscriptions, instead of utilizing Stripe's? This is a much more appealing option if its a clean integration that simply leverages all of Stripe's features (MoonClerk does this well).

<comment><AUTHOR> Stripe did not offer subscriptions when I built that feature in Snappy Checkout.

</comment></comment></comment></comment></comment></comment><comment><USER12> Hmm. I really like this, and I'm definitely going to use it when I finish my service. However, I have two small problems and one large problem with it:

\- It's impossible to go back and select another payment option once you click one of them.

\- You can't style your payment dialog. (This may be a good thing [consistency], but I think it'd be nice to be able to add custom CSS to the pricing dialog.)

My large problem is that the price is crazy; your 50 cent per transaction fee means that for all transactions under $7 you collect more in fees than Stripe does. With a $5 payment - very common for services such as the one I'll release soon - I'm paying 20% to you. With a $1 payment, I pay a prohibitive 83% in fees. That's a really large cut compared to using the Stripe API directly, and I think that for anyone looking to increase their profits it's a no-brainer to cut Snappy Checkout out of the equation.

To give a personal example, my service will be primarily receiving $5 payments. For the first 1000 payments or so, I'll probably stick with Snappy - the $500 I give up isn't worth the time I would've spent rolling my own solution. However, as soon as I can see that there's a clear market for my product, I'll roll my own with Stripe - I clearly wouldn't want to give up 20% to payment processing alone.

Meanwhile, Frank is selling antique vases on Facebook for $1.5k each, and he pays 50 cents a transaction to you.

However, if you were to switch to a flat fee + a percentage (say 1.5% and 15 cents), as Stripe does, you would probably retain my business for a lot longer. Suddenly, I pay a 4.5% cut to you as opposed to a 10% cut, which is quite reasonable. At the same time, Frank the antique vase seller doesn't really care about a 1.5% fee: a win-win situation.

tl;dr I recommend that you change to a percentage of the total sales: sellers of cheap items will use your service and sellers of expensive items won't care. There's a reason why Stripe, Visa, and every other payment processor everywhere ever does this.

<comment><AUTHOR> It seems someone loses either way. Charge a flat fee and small transactions are more expensive. Charge a percentage and large transactions are more expensive. I suppose you could do some combination of both, but that would make the pricing more complicated to understand.

I don't know about everyone else, but I would care if I was being charged X% to sell a $200 item -- even more so if there were options to pay a flat fee.

<comment><USER12> There's a reason why every other payment processor I can name and probably hundreds I can't name charge a percentage - it strikes a balance between fairness for large and small payments. Almost no company I can think of would blink at a 0.25% fee - a sign your fees are too low. Meanwhile, nobody would want to pay 80% of a $1 purchase in fees. I really encourage you to rethink your fee model. Visa, Stripe, Mastercard, etc. all use a percentage. There's a reason why almost every payment fee in the last 50 years has used a percentage - because it works.

Personally, I just discovered Gumroad and I'll probably be using that instead. With them I pay 10% of a $5 transaction in fees. With Snappy I pay 20%. It's a no-brainer.

Finally, I don't think a flat fee plus a percent is too hard to understand. Stripe and Gumroad use it, and probably many more but I can't think of them.

[edit] I just found out I can't use recurring subscriptions with PayPal. I'm going with Gumroad. That said, you have a really nice looking product and I'd love to use it, but 20% in fees is ridiculous.

<comment><AUTHOR> Every other payment processor charges a percentage -- agreed. So, it seems people have no choice right now. They are going to pay a percentage no matter where they go.

I'm open to pricing suggestions. I was just trying to do what I thought was reasonable.

If you (or anyone else) want to work out some kind of X% for less expensive transactions, then send me an email and we can work something out. I'm willing to discuss matching whatever Gumroad or anyone offering similar checkout products is charging.

</comment></comment></comment></comment><comment><USER13> Love innovation in this area and will play with this a bit. HNers interested in this might find happiness with Snipcart ([https://snipcart.com/](https://snipcart.com/))

</comment><comment><USER14> This is one of the better looking implementations of "checkout on top of stripe" that I've seen (I've seen a lot).

I'm not sure of your target market but the best advice I can give is to make a WordPress plugin to go with this. Website integration (easy for us, I know) is probably daunting for most people. That's why SquareSpace is so attractive–it's all built in. But if you went after the WordPress market with this, it could be huge.

<comment><AUTHOR> Thanks for the suggestion! I'll look into it.

</comment></comment><comment><USER15> From a purely usability point of view I don't see the advantage of having the choice of payment (credit card via stripe vs. paypal) be offered after the user clicks on the payment button.

The more efficient option is to show pay with credit card and pay with paypal right off the bat.

This implementation means the user clicks PAY, then is shown a modal window and from there clicks, paypal and is then redirected to paypal.

Instead the user could click pay with paypal from the payment page and be taken to paypal with the unnecessary intermediary step.

Same goes for credit card payment: click pay with credit card and the modal window opens up and they enter cc details.

I know, it is just one click or interaction but still, this is the stuff that UX cares about!

This is especially true for check out processes. If you aren't extremely critical of your check out process from a UX/UI view you're leaving lots of easy money on the table.

The implementation is nice and I don't mean to offend but I just don't understand what benefit it can offer. Especially when it has this usability failing outlined above

:/

</comment><comment><USER6> Apart from Paypal support, what does Snappycheckout provide over just using Stripe directly? And for the extras it does offer, are those likely features on Stripe's roadmap? Just trying to wrap my mind around your service.

<comment><AUTHOR> It allows people to setup a checkout without knowing how to use the Stripe API. And, for those that do know how, not everyone wants to invest the time to do so.

I don't think most of what Snappy Checkout does is on Stripe's roadmap. Unless they are planning on building a full-featured checkout system.

</comment></comment><comment><USER16> I've been waiting for stripe + paypal, as half my payments come from paypal, stripe is such a simple checkout process, and needed one admin for both. Fantastic!

Questions:

1) Will metered billing on subscription services be supported?

2) Not sure if this is feasible, but any plans to allow PayPal payments through PayPal Payments Pro, so they fill in their details in the form on our site instead of being redirected to PayPal?

Thanks!

<comment><AUTHOR> I'm in the same boat -- the payments I collect for my products are split pretty evenly between Stripe & PayPal.

Answers:

1) As in being able to change the subscription price each month? Snappy Checkout does allow you to manually change the subscription price. But, I suppose making that change via the API would be the better way to go. If you're interested in digging into this some more, please send me an email with some more details on how you envision this working.

2) I've thought about this, but haven't tried it yet. If I could integrate it into the checkout window, then I agree it would offer the best flow. And, there is always the question of how many people are using PayPal Payments Pro and have the need for something like Snappy Checkout.

</comment></comment><comment><USER17> This looks great. I've already signed up as I've been looking for a replacement for Gumroad for awhile now. Their UI just isn't suited to physical subscriptions. This looks much better.

Found an error: My login date under sessions is "Sat, Dec 30, 1899 @"

Feature request: product variants ie. shirt sizes, phone types, colors, etc.

<comment><AUTHOR> Thanks... and noted. Custom checkout fields are on my to-do list.

</comment></comment><comment><USER18> Mike, I signed up and the admin area looks great. I don't see any info/docs on how to actually sell product though. I'm currently using SpaceBox.io for hosted checkout. Do you offer something similar or do I have to host the checkout page on my site?

<comment><AUTHOR> After adding a product in the "Products" section of the admin, click the link icon to the right of your product to see the available linking options. You can add a link to your website or link your customers to your checkout at snappycheckout.com.

</comment></comment><comment><USER19> I love the pricing - only 50¢ on top of Stripe/PayPal fees.

From the quick look, digital download protection based on IP address and storing files in Dropbox? That makes me uncomfortable and I see tons of potential issues here.

Also what does automatic fraudulent payment detection involves?

<comment><AUTHOR> What kind of issues do you see with the downloads?

My system keeps track of failed payment attempts (e.g. a declined credit card OR invalid card code). When a successful payment is made, I look through the history of failed payments to look for patterns that can determine a possible fraudulent transaction. An example of a pattern would be an IP address that tried to use X number of credit cards over the past X hours.

</comment></comment><comment><USER20> The messaging on the site reiterates that you can accept payments and sell product any time "day or night". Is this a problem with existing solutions? Or is this geared towards people who currently have a fully manual fulfillment process?

<comment><AUTHOR> It is a problem if you have a manual fulfillment process. But, not too important if you're currently using a checkout system elsewhere.

</comment></comment><comment><USER21> Could it do things like offer a yearly subscription with a starting price of $x and a recurring price of $y? Basically, like an ongoing maintenance - <USER2> the product at $x and then pay $y for yearly upgrades/support.

<comment><AUTHOR> No. But, I could add this type of payment option.

This would only work if paying with Stripe though. When paying with Stripe, I create a Stripe customer via their API. So, I can come back later and charge that customer again whenever.

Edit: With some manual work, you could really do this as-is right now. After a subscription is created in Snappy Checkout, you can edit the subscription price, next payment date, or customer's name/email. This certainly would not be a good temporary workaround if you're selling these subscriptions like hotcakes right now though :)

</comment></comment><comment><USER22> Any concerns about naming? My first reaction was to think this was a new offering from Snappy [https://besnappy.com/](https://besnappy.com/)

<comment><AUTHOR> I'm not concerned about it... if this was directed toward me. I guess it could become a problem if I release a product named Snappy Support though.

</comment></comment><comment><USER23> Helium ([https://gethelium.com](https://gethelium.com)) is less expensive for items priced less than $25, since they charge 2% rather than $0.50.

</comment><comment><USER24> Is there a way to embed a picture within a payment link?

My friend could use this because her 'digital storefront' is literally Facebook and there's no way for her to sell things.

<comment><AUTHOR> Are you referring to selling digital photos? If so, you can sell any kind of file with Snappy Checkout.

<comment><USER24> This would be an image of a physical good.

For her: take product image > apply price > put on Facebook; For user: see product image > click link to buy > purchase

<comment><AUTHOR> That would be possible. Just link the Facebook image to the link that points to the checkout at snappycheckout.com.

<comment><USER24> Cool thanks!

</comment></comment></comment></comment></comment><comment><USER25> Interesting choice of an IE preview for the home page. Is it by accident or is this something online stores are looking to validate in terms of features? (IE compatibility)

<comment><AUTHOR> I would think anyone who has an online store would want their checkout to work in all web browsers. IE just happens to have a pretty plain looking window that works best for screenshots where the window is not important :)

</comment></comment><comment><USER26> Great job! I'll definitely be giving this a shot!

Quick question, though... Do you use Stripe's Connect API for the 50 cent transaction fee you're taking (application_fee)?

<comment><AUTHOR> No. The fee is charged at the beginning of the month. So, for all payments received in April, you'll be charged 50 cents per payment on May 1st.

I thought of using Stripe's API to remove the 50 cents right away, but that's not possible since it wouldn't work for PayPal payments.

<comment><USER26> I just see it as removing a layer of complexity... I don't really care for having PayPal functionality, and not having to worry about the monthly fee paid to you makes it easier on me and you. You get paid quickly, and I don't have to account for another fee. The 50 cents just becomes part of COGS.

<comment><AUTHOR> Makes sense. I'm all for making things easier. There is no reason why I could not charge the 50 cents for Stripe charges immediately. And, then come back and charge 50 cents for any PayPal transactions (if any) at the end of the month.

</comment></comment></comment></comment><comment><USER27> Looks awesome. A great checkout experience is always a delight to use. Even Amazon's feels kind of clunky if you have to enter credit card information.

</comment><comment><USER28> Great job Mike. I think you could be on to something really huge here. Will have to try out in depth when I'm not on my phone. :)

<comment><AUTHOR> Thanks for checking it out. Let me know if I can help in any way.

<comment><USER29> One question I had was "what is my customer's experience?"

You went into great detail about what features it had that would be convienent for me as an owner, and there seemed to be a hint at some of the customer features, but what is their online shopping experience like? Do they have search, navigation, categories, pictures, images, reviews, etc?

I feel as though you are only explaining the benefits of using it for half of the equation. Does this assume that you've already "sold" your product and you are not truly an online retailer? Or a simple product company?

What target "check-out" scenarios does this cover? Maybe that's why the customer story is absent.

<comment><AUTHOR> Good questions. Snappy Checkout is not a shopping cart. It'll only work in situations where a purchase involves buying a single product (e.g. an eBook).

Reviews, pictures, etc. are things that fall outside of the scope of Snappy Checkout.

<comment><USER29> So this is an integration SDK for credit card processing?

</comment></comment></comment></comment></comment><comment><USER30> But a Stripe account is still required..that means its US only (or limited countries where stripe is available), correct?

<comment><AUTHOR> You can use Stripe only, PayPal only, or Stripe + PayPal. When using PayPal only, you cannot collect subscription payments -- due to the limitations of the way I'm using PayPal.

Snappy Checkout shows prices in USD no matter which of the 3 above pricing options you choose. So, it is currently limited in that way.

</comment></comment><comment><USER31> It looks like there are some encoding problems. (Chrome, Mac OS)

"Straight-forward pricing. You only pay 2.9% + 80� per sale*"

<comment><AUTHOR> Thanks! I'll fix it.

</comment></comment><comment><USER32> Do you have ability to import data from a previous provider to allow reporting history to stay intact?

<comment><AUTHOR> Not at the moment. It should be possible to do though if that data can be retrieved in some common format -- like CSV.

</comment></comment><comment><USER33> Kind of off-topic, but if I want to start selling software as an individual - should I form an LLC?

<comment><USER34> LLC protects your personal finances and is always a good idea once you reach the stage of a 'serious business' that might be sued by its customers. [e.g. $1000 or more MRR]

</comment></comment><comment><USER35> What's with the horrid markup (tables and inline CSS) on that page??

<comment><AUTHOR> Always be shipping :)

</comment></comment><comment><USER36> Love it, but when are you expecting to publish documentation?

<comment><AUTHOR> I'm working on it. Please send me an email if you need help with anything in the meantime.

</comment></comment><comment><USER37> few questions

how does this differ from stripe? does it charge extra on top of stripe? What is the justification for the price increase? I don't see what else this offers besides stripe does. For me, I focus on subscriptions.

What is the template being used on the website and where can I get it?

<comment><USER38> I think it's meant for non-coders who don't feel comfortable using Stripe directly... similar to Gumroad, Selluno, Sellfy, etc.

<comment><AUTHOR> Right! And for those people who do not want to spend the time coding/maintaining their own system.</comment></comment></comment>


Image: the Pixar render farm in 1995. Half of an iPhone - <AUTHOR> https://mobile.twitter.com/BenedictEvans/status/766822192197738496 <comment><USER2> tweet is from 2016 referencing the iPhone 6 with 2 billion transistors (Pixar had very roughly 1 billion total in its render farm).

Current iPhone X: 4.3 billion transistors.[1] So two years later it's now more than 4x the Pixar compute that did "Toy Story." Amazing!

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

</comment><comment><USER3> Heh - one day I aspire to be burned by having John Carmack drop in on a comment thread of mine to point out I'm wrong: "I don't see any reason why an iPhone couldn't run renderman and render ToyStory." ;-)</comment>


Nokia 9 PureView Now Available: A Flagship with a 5+1-Camera Array - <AUTHOR> https://www.anandtech.com/show/14131/nokia-9-pureview-now-available-a-flagship-with-6camera-array <comment><USER2> This pureview-camera is designed by [https://light.co](https://light.co) who bagged $121m [0] in Series D funding lead by SoftBank a year back to develop what they call 'software-defined cameras' (SDN/IDN/NFV equivalent of the computer networking world, I guess). We might see more of these.

Here's a talk from co-founder Rajiv Laroia on their first camera, L16: [https://spot.light.co/the-l16-under-the- hood/](https://spot.light.co/the-l16-under-the-hood/) ( [https://youtu.be/vKmC9xWHhM4](https://youtu.be/vKmC9xWHhM4) )

The fancy camera aside, I'd have tough time recommending a Nokia device after they were caught sending user-data to servers in China: [https://news.ycombinator.com/item?id=19449824](https://news.ycombinator.com/item?id=19449824) but then again almost all major android phone manufacturers are Chinese...

[0] [https://angel.co/light](https://angel.co/light)

<comment><USER3> I almost bought a Nokia phone, but after I found out their Android One phones have a bunch of Chinese made services running on them I figured I might as well buy a Chinese phone with better specs for the money and went with Xiaomi.

<comment><USER4> The phone which send data to Chinese servers, were using firmware/software version only used in Chinese market. There were some faulty phones in wrong market where the firmware was using the "chinese version."

<comment><USER3> Yes, but as far as I know all Nokia phones have services from evenwell running.

[https://www.reddit.com/r/Nokia/comments/actk7z/android_one_p...](https://www.reddit.com/r/Nokia/comments/actk7z/android_one_phones_has_the_evenwell_services/)

</comment></comment></comment></comment><comment><USER5> am i the only one that is reminded by the "multi-blade razor wars", when gillette and wilkinson got into a "mine has more blades" competition? [https://www.independent.co.uk/news/uk/this-britain/the- knive...](https://www.independent.co.uk/news/uk/this-britain/the-knives-are- out-in-the-razor-wars-6107113.html)

>> Gillette has historically called the shots in this razor war. It enjoys a huge worldwide sales advantage over Schick/Wilkinson Sword, which is now based in St Louis. With several lawsuits and countersuits constantly on the go, the companies can fairly be said truly to hate one another - especially since Gillette was unnerved in 2003 by Wilkinson Sword's brilliant and somewhat insolent introduction of the Quattro, a four-blade beast of a razor, which captured Gillette's jealously-guarded "most blades" title and has held on to it for the past three years.

<comment><USER6> If you think that is crazy look back to the Nokia 1020 that had a 41 MP camera and PureView back when most phones had like 8 MP. It took some awesome photos and several of my friends were very satisfied with the phone.

<comment><USER7> AAWP just did a PureView comparison, very interesting that the older Nokias actually beat the new Nokia 9 PureView

[http://allaboutwindowsphone.com/features/item/23435_Imaging_...](http://allaboutwindowsphone.com/features/item/23435_Imaging_showdown_Nokia_808_Sym.php)

<comment><USER8> Sounds like maybe I ought to pull the old 1020 out of my museum. One error in that article, though... it _is_ possible to turn off the downsampling to 5MP.

</comment></comment></comment></comment><comment><USER9> [https://www.zdnet.com/article/nokia-firmware-blunder-sent- so...](https://www.zdnet.com/article/nokia-firmware-blunder-sent-some-user- data-to-china/)

<comment><USER10> It was bad screw up and PR hit, but it was not intentional.

<comment><USER11> I just hope it doesn't continue to happen, I would love to see Nokia not fail. Unfortunately bad PR like this will be uttered for years to come, some geeks are not very forgiving. We see it with Microsoft still, despite their many contributions to open source, and their openness compared to Oracle.

Otherwise I will have to stick to Motorola for my next phone, I love that Nokia and Motorola make more minimal phones. If Google would bring back Nexus as a way for manufacturers to release phones that are fully stock android, that would be great, or some sort of similar line of phones. Otherwise I'm leaning towards iPhone with all the stupid Android scandals, especially if one of the Moto phones is found to have a similar problem, enough is enough.

</comment></comment></comment><comment><USER12> I've tried one and the quality of the camera(s) is indeed excellent. The phone can do some neat tricks, like changing the focus of a photo after it has been taken. However, it feels kind of slow: RAW photos need to be post-processed before you can tinker with them and this can take a while, specially if you have taken several pics at the same time.

</comment><comment><USER13> Abysmal battery (in 2019) and chinese ad spyware in supposedly pure Android drop this phone to the bottom of competition. If it had rumored 4150mAh battery and clean system I would buy it immediately.

</comment><comment><USER14> The UK site offers a free screen replacement... does that mean the screens need replacing straight out of factory?

[https://www.nokia.com/phones/en_gb/nokia-9-pureview/#recomme...](https://www.nokia.com/phones/en_gb/nokia-9-pureview/#recommended- phones)

"6) The offer will be open to any customers who has purchased Nokia 9 PureView from the Nokia mobile online shop between 24.02.2019 and 30.04.2019 and are residents of Austria, Belgium, Denmark, Finland, France, Germany, Italy, Ireland, Luxemburg, Netherlands, Poland, Portugal, Spain, Sweden or UK. The offer is valid until the stock lasts. Coverage period of the screen replacement is only valid for ninety (90) days after date of delivery of the phone. The customer must be aged 18+ and agree to the promotion rules to participate. Redeeming the Service may require a valid proof of purchase such as order confirmation from Nokia online store, or receipt or invoice from authorized Nokia reseller, showing the date of purchase of the eligible Nokia phone. Instructions on how to redeem your free screen replacement and full Terms & Conditions can be found here. Your personal data will be used according to HMD Global Privacy Policy."

<comment><USER14> Or is this in lieu of the free earbuds they used to offer before?

</comment></comment><comment><USER8> A PureView phone with no dedicated two-stage camera button? I thought these folks were former Nokia engineers!

</comment><comment><USER15> > No 3.5 mm jack

Oh well

<comment><USER16> I personally didn't find the lack of 3.5 mm jack to be as big of an issue as I thought it will be. I just attached the USB-C-to-3.5mm adapter that came in the box to the headphone cable and forgot about it.

<comment><USER17> Do you know if these converters are device specific or can I plug them into any USB-C port on any computer and have sound come out of my headphones.

<comment><USER18> Some phones support _audio accessory mode_ , which is a way to reserve some pins for analog audio signals. In this case, you only need a passive adapter. There's no reason why desktop or laptops computers couldn't support it, too, but if they do, it's rare. So such an adapter is unlikely to work with a computer, and may not work with all phones.

The alternative is an active device, with its own DAC and amplifier. This is more likely to work with all your devices; I'm pretty sure I could connect my desktop computer's external USB headphone amp to my android phone and it'd just work.

Details: [https://www.soundguys.com/usb-audio- explained-18563/](https://www.soundguys.com/usb-audio-explained-18563/) [https://www.androidcentral.com/usb-c- audio](https://www.androidcentral.com/usb-c-audio)

</comment></comment></comment></comment><comment><USER19> [https://en.wikipedia.org/wiki/Trypophobia](https://en.wikipedia.org/wiki/Trypophobia)

<comment><USER20> Very fascinating. Now I know why the Light-Camera [1] looks just plain ugly to me. The Nokia-Phone is a little better, but also non-pleasant at least.

[1] [https://light.co/camera](https://light.co/camera)

<comment><USER21> That camera does look really ugly. Like it's got chicken pox. I wonder how they expect to sell well, with it _looking like that_.

</comment></comment></comment><comment> jo-wol Is it sending data to Chinese servers?

<comment><USER22> No. That was one particular model (the 7) that accidentally got Chinese-market software loaded onto all the phones, not just the ones required by law to have it. A software update corrected the issue since.

Your caution is warranted and laudable. In terms of traffic, this is not a stop sign, but a proceed cautiously sign.

</comment></comment><comment><USER23> 2 × 12 MP RGB, f/1.8, 1/2.9", 1.25µm

3 × 12 MP BW, f/1.8, 1/2.9", 1.25µm

1 × TOF depth sensor

1 × dual-LED/dual-tone flash

Zeiss Optics

Who is this phone even for? If you're that into cameras wouldn't you go buy... a camera?

<comment><USER24> The very best camera is the one you have on hand when opportunity for taking a shot arises. Good luck lugging a DSLR 24/7.

<comment><USER25> Cheap phone + Ricoh GR

</comment></comment></comment><comment><USER26> Does this one also report all your activity to China like the 7+ was exposed doing?[1]

That I even have to ask this question about _a Nokia phone_ is just mind blowing and utterly telling about the appalling state of digital privacy in general.

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

<comment><USER27> Don't want to shill too much for nokia (or HTE), but it was fixed, and since it affected only one phone out of their line up I believe them, it wasn't intentional. Edit: typos

<comment><USER26> Something like that doesn't happen _by accident_ though. Someone had to write that code. For some configurations, markets or customers this was _intentional behavior_.

Maybe it wasn't meant for everyone. This time. But if Nokia let it slip once, I see no reason not to be skeptical of future models.

They lost my trust. Now they'll have to re-earn it.

<comment><USER28> Yes, that code was written for the model meant to be sold in China. I can completely understand how it might have accidentally been bundled onto a non- Chinese model.</comment></comment></comment></comment>