High-Speed ES2015 - <AUTHOR> https://docs.google.com/presentation/d/1wiiZeRQp8-sXDB9xXBUAGbaQaWJC84M5RNxRyQuTmhk/edit#slide=id.p <comment><USER2> I am very surprised with the stuff shown in this talk. One would think that by using a more explicit syntax, the compiler/interpreter has more context to optimize and do things _faster_.

Looking at the destructuring example, it seems like part of the problem is that the new constructs are actually more general, since their semantics are defined in terms of iterators in order to support user defined types... I guess, on the other hand, this still allows for better overall system performance (e.g. one can now pass lazy-evaluated transformations instead of producting new arrays all the time when writing functional-style code.). An alternative would be to have sepparate syntax [a, b, c...] for arrays and (a, b, c...) for iterator based destructuring. There is the risk then that then everyone starts using the former syntax for the sake of premature optimization and we end up with over-restrictive API's that then disable the opportunities for lazy-evaluation and so on described before.

Definitely and interesting case. It would be nice to be able to read some of the discussion of the standardization process and see how these performance trade-offs where considered. Anyone has some pointers?

<comment><USER3> > _It would be nice to be able to read some of the discussion of the > standardization process and see how these performance trade-offs where > considered. Anyone has some pointers?_

There's the mailing list at [https://esdiscuss.org/](https://esdiscuss.org/)

More recently there's been more discussion around specific proposals in github repos under the tc39 org: [https://github.com/tc39](https://github.com/tc39)

And Rick Waldron takes TC39 meeting notes in this repo: [https://github.com/rwaldron/tc39-notes](https://github.com/rwaldron/tc39-notes)

</comment></comment><comment><USER4> "We want you to help us! [...] Ideas for real ES2015 performance test suite."

* Take a language that compiles to JS, with the option to target either ES5.1 features or ES2015 features. For example, Scala.js.

* Take a macro-benchmark suite, or an application with measurable performance metrics, written in that language. For example, [https://github.com/sjrd/scalajs-benchmarks](https://github.com/sjrd/scalajs-benchmarks)

* Run the benchmarks when targeting ES5.1 (default in Scala.js) versus ES2015 (with `scalaJSOutputMode := OutputMode.ECMAScript6`)

* Enjoy the slowdown :-p

I did that 1.5 years ago when I was developing Strong Mode support for Scala.js (now defunct). Results were awful at the time: [https://groups.google.com/d/msg/strengthen- js/Bfa_HPhVbiY/yM...](https://groups.google.com/d/msg/strengthen- js/Bfa_HPhVbiY/yM40rvnoP9kJ) They probably have improved since then; I should redo the benchmarks one of these days.

<comment><USER5> Why is Scala.js "now defunct"? Any source?

<comment><USER6> sjrd is the author of Scala.js, he meant that strong mode support is now defunct, not Scala.js. Scala.js is doing great!

</comment></comment></comment><comment><USER7> As much as these speed improvements to Node are awesome, and the team have been doing a great job...

How is only a 1.2x speed regression acceptable? For... Syntactic sugar? [0]

[0] [https://docs.google.com/presentation/d/1wiiZeRQp8-sXDB9xXBUA...](https://docs.google.com/presentation/d/1wiiZeRQp8-sXDB9xXBUAGbaQaWJC84M5RNxRyQuTmhk/preview#slide=id.g1b84aeb97c_0_2)

<comment><USER8> It is explained on the previous slide. It _looks like_ syntactic sugar, but it is actually a much more complex feature that involves iterators (which potentially requires several function calls if it is a user-defined iterator).

And even with optimizations that detect when it is a well-known fundamental iterator (like an Array), you still have to pay for the detection (after all, you might have an eval that calls this function with a non-Array, and Array can be monkey-patched).

<comment><USER9> JS semantics are garbage both for writing code and for optimizations - and all new ES standards just keep piling on top instead of fixing it for fear of breaking backcompat. WASM with GC can't come soon enough.

<comment><USER10> And yet JS is faster than most other dynamic languages. Pretty good garbage if you ask me.

<comment><USER11> That is not a sign of the quality of the language though. It is more a sign of how much money went into making a poor quality language perform well. Compare the speed of JS JIT VMs to Lua JIT VMs considering the investment respectively for example.

<comment><USER12> M$ and Google tried to undermine JS with their own languages (VisualBasic and Dart) but failed. Why such rich companies cannot make a better language?

<comment><USER13> It's not about language quality, it's about barriers to entry. You not only have to be "better" than JS (which I guess means some combination of performant and pleasing to code), but you have to do so to such a degree that it's worth losing access to/reimplementing the existing libraries, not to mention getting multiple browsers to implement AND getting everyone to install the newer versions of said browsers (not as bad as it was, but still an issue).

I currently do JS for a living, and I don't hate it, but most of the reasons to DO javascript coding have nothing to do with quality of language and instead have to do with how unlikely a viable competitor is to come about anytime soon.

<comment><USER12> Of course, I know that. But companies are rich. They both have their own _major_ browsers. They can just pay to Mozilla and Apple (two remaining major browsers) to support their language(s). Libraries are not a problem for .Net, Go, Swift, Rust.

So why M$ and Google cannot beat poor javascript?

<comment><USER14> What's money going to do? Unless you're suggesting they bribe millions of developers to switch.

Some things can't be solved by throwing money at them.

<comment><USER12> All four companies have success with their own programming languages, which is not an easy task to do. Some of them are also succeed with their own OSes too, which is even harder. They CAN replace JS if they push a language strong enough. They cannot do that because replacement languages are worse than JS.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> Any videos of this presentation would love to see them.

</comment><comment><USER16> Tangential: the number of anonymous viewers (hovering around 50) is an amusing juxtaposition with the small "Proprietary" in the bottom-right corner of all the slides.</comment>


Show HN: Wiby – Search engine for lightweight, unbloated, old school websites - <AUTHOR> https://wiby.me <comment><AUTHOR> Couple extra bits of info:

I made this for two reasons:

1, I am kind of bored of the current web, I think its too commercialized, full of click bait, and bloated cookie-cutter pages.

2, I'm nostalgic for the magic of the early web and I wanted to see if I could recapture some of that.

The index is still pretty small, it's not meant to answer specific technical questions like Google can, it's more of an escape. Hopefully you will get relevant search results, and this will improve as the index grows.

Lastly if you happen to know any lightweight websites, feel free to submit them. Thanks for checking it out :)

</comment><comment><USER2> It's cool, I really like the "Surprise Me" feature. I feel like that's better than the search, which as you said is sort of half-baked (understandable!)

I didn't know what to search for so I used that feature. It would be cool if you implemented a stumbleupon interface and framed the content with another "surprise me again" link at the top.</comment>


Capturing James Baldwin's Legacy Onscreen - <AUTHOR> http://www.newyorker.com/magazine/2017/02/13/capturing-james-baldwins-legacy-onscreen <comment><USER4> A James Baldwin article making it to the front page on HN. I'm impressed. I saw a documentary about him released during the late 80s / early 90s and I found it informative. I immediately got a bunch of his books afterwards. But I'm finding it difficult deciding which ones to attack first due to his vast body of work.

<comment><USER5> I've been wanting to diving into my first Baldwin book, but looking at the reviews on Amazon has made be indecisive. I'd certainly like to hear recommendations from people here.

<comment><USER6> Another Country - <USER2>

Fire Next Time - <USER3>

You can't go wrong with JB. One of the most beautiful authors in history. His description of humanity - and inhumanity of many in the US - is without parallel, and worthy even more noawadays with the increasing deportation of "undesirable" people like fathers and mothers who are here legally but are brown.

</comment></comment></comment><comment><USER7> Baldwin is the only person i've ever seen who truly conveys what it's like to be black in American society. Not just talking about the material reasons but actually conveying the experiential nature of it.</comment>


Silicon Valley Just Ain't What It Used To Be—And That's a Good Thing - <AUTHOR> http://techcrunch.com/2010/09/26/silicon-valley/ <comment><USER2> Again and again, the things that fundamentally change our lives and our culture looked like toys when they first started. That doesn't mean every toy is worthy of our attention, but people in tech should know better than anyone that you simply can't tell which toys will be important.

When the radio transmission was in wide use, radio as we know it today (as a music box) didn't exist. When it was proposed, a potential investor asked of the inventor:

"The wireless music box has no imaginable commercial value. Who would pay for a message sent to nobody in particular?"

Fast forward a couple years later, the inventor of the radio music box said of the television:

"While theoretically and technically television may be feasible, commercially and financially I consider it an impossibility, a development of which we need waste little time dreaming."

So it is with software and hardware, and now social. If you're interested, I've written about it before: [http://iamwil.posterous.com/who-would-pay-for- a-message-sent...](http://iamwil.posterous.com/who-would-pay-for-a-message- sent-to-nobody-in)

<comment><USER3> There are plenty of examples of the opposite though.

The creator said the Segway would change the world and it certainly hasn't.

I think people pull up these tales too often, those stories are famous because they are the _exception_ , not the rule.

</comment></comment><comment><USER4> Everyone is so defensive that no one is really listening to what the author is saying. He's saying that SV used to be about driving innovation, not making money. Facebook, Twitter, and Zynga are all silly companies that won't be around in 10 years, and none make changes in improving our productivity. We don't do more with less because of these companies. The opposite, they provide us with entertainment. That's great, but it's not the core value that SV was founded on and it's not what's going to last.

<comment><USER5> You're wrong and I'm happy to bet against you.

Proof points: 1\. Tencent QQ is a Chinese social network for games. It's essentially Facebook+Zynga combined. Many of the top games on Facebook are ports of popular Chinese games, e.g., the farming genre. Tencent has been around for 12 years and did over $1Bn in revenue in 2009, representing a 61% increase in profits.

2\. Over 500MM people use Facebook every month. That demand doesn't just disappear. The only way Facebook is going to lose is if someone comes along and gives people something better to do with their time.

3\. Facebook has their pick of engineering talent in Silicon Valley. If you're an engineer looking ad a mid-sized startup, Facebook is the best place to work, hands down. Look at their open source projects (e.g., Cassandra.). How about their PHP compiler? Or their numerous patches to memcache? It's clearly an engineering-driven company.

4\. Just because you think something is frivolous doesn't mean it isn't valuable. Was Atari frivolous? Electronic Arts? EA, obviously, is still around and immensely profitable. Moreover, the same VC that backed those companies also backed Apple, Oracle, and NVIDIA.

There are plenty of startups working on problems lower on the stack. One can innovate at any level -- why is Minecraft any less valuable than a video game that pushes the limits of modern 3D algorithms?

Was Facebook less innovative than PayPal? Oracle?

Personally, I think the attitude you show in your response is a defense mechanism. You feel like you're somehow "above" Facebook and therefore their success isn't valid.

<comment><USER6> At 1400 employees and four international headquarters, is Facebook really considered a mid-sized startup? To me that phrase evokes a few dozen people who took a sublet last year....

</comment></comment></comment><comment><USER3> "Twitter is building a realtime communications platform that is exponentially more complex than, say, the telephone system (which is a one-to-one system, as opposed to many-to-many)"

Talk about not having a clue.

So writing a software program is "exponentially" harder than developing a working telephone, running a system of wires, inventing a way to switch calls automatically, the entire touch tone system, running cables under the ocean etc etc etc. Not to mention the telephone industry came up with some of the best inventions in computing - they weren't doing that for their own fun, it was useful because telephones were HARD.

Is Twitter hard? Yea, it has some good tech behind making it scale, but the _basic_ functionality is pretty simple.

</comment><comment><USER7> Most of the companies like Zynga and Foursquare are get rich quick schemes powered by snake oil.

They talk about changing life and solving world's problems.. yada.. yada.. BS!

When was the last time any of such silly companies helped you with your real life, I am not talking about a virtual fantasy farm.

Cloud Computing and iPhone are among the few useful innovations from Silicon Valley in recent times. Even products like Basecamp, Zoho suite and Google Apps are great.

*Hint hint, A bubble is in the making.

<comment><USER8> ICEBERG STRAIGHT AHEAD!

I hope people start to see the bigger picture when their virtual farms fail and their check-in mania subsides...

The 21st century is primetime for humans to step up and finally solve problems that have plagued our progress for centuries and here we have the masses switching from coach potatoes to facebook zombies...

</comment></comment><comment><USER9> The problem with this article is the focus on the most visible companies that generate the most revenue or grow the most quickly. There are significant innovations pioneered by silicon valley companies that demonstrate remarkable long term value. I'm also going to use Silicon Valley broadly to mean internet startups because the valley is now more of a culture and group of people than a region. Additionally, I'm choosing technically challenging problems instead of difficult execution challenges or marketing challenges (SMB SaaS companies, local advertising aggregators).

1\. Media delivery shift: Netflix, OnLive, Pandora are now distributing previously physical media in ways that will disrupt their respective industries. Blockbuster is now bankrupt.

2\. Communication: Skype is now the largest long distance carrier in the world. It's Scandinavian, yes, but give me some leeway!

3\. Information processing: Palantir manipulates huge data sets for financial institutions and the government.

4\. Financial markets: SecondMarket and TheReceivables Exchange are creating markets in previously illiquid markets.

5\. Medical innovation: there are tens of companies working on EMR systems and building business intelligence applications for hospitals to increase quality of care while reducing costs

6\. Big Data: Hadoop and other NOSQL databases have been built in the past 10 years to enable massive computation on commodity hardware. Not to mention the three storage companies that just sold for $1B+ each in the past 2 months.

7\. Energy: Solar panels, fuel generating algae, carbon sequestration: Innovation is happening here in the valley using the techniques and science developed for semi-conductor fabrication and novel ways of processing.

The most recognizable startups may not be innovative in the sense the author is describing, but it's clear to me from an investment point of view that there is more innovation across more industries occurring today than ever before. And this innovation has just as much potential to dramatically impact lives as did the semiconductor.

@ttunguz</comment>


Making open source data more available - <AUTHOR> https://github.com/blog/2201-making-open-source-data-more-available <comment><USER2> The GitHub Archive dataset was updated as well. Example BigQuery to get the Top Repositories from 2015-2016 YTD, by the number of Stars given during that time:

       SELECT repo.id, repo.name, COUNT(*) as num_stars
       FROM TABLE_DATE_RANGE([githubarchive:day.], TIMESTAMP('2015-01-01'), TIMESTAMP('2016-12-31'))
       WHERE type = "WatchEvent"
       GROUP BY repo.id, repo.name
       ORDER BY num_stars DESC
       LIMIT 1000

Which results in this output: [https://docs.google.com/spreadsheets/d/16yDS2wDdDOTxjVsjGvWm...](https://docs.google.com/spreadsheets/d/16yDS2wDdDOTxjVsjGvWmpHVsOIU65wLEjXFHDtDeKU4/edit?usp=sharing)

Since the query only hits 3 columns, it only uses 15.4GB of data (out of a 1TB allowance)

More information on the GitHub Archive changes: [https://medium.com/@hoffa/github-archive-fully-updated- notic...](https://medium.com/@hoffa/github-archive-fully-updated-notice-some- breaking-changes-64e7e7cd0967)

<comment><USER3> Github Easter Egg hunt query:

        SELECT
          CONCAT("https://github.com/",repo_name,"/blob/master/",path) AS file_url,
        FROM
          [bigquery-public-data:github_repos.files]
        WHERE
          id IN (SELECT id FROM [bigquery-public-data:github_repos.contents]
          WHERE NOT binary AND LOWER(content) CONTAINS 'easter egg')
          and path not like "%.csv"
        GROUP BY 1
        LIMIT 1000

36s elapsed, 1.79 TB (so not free). Using github_repos.sample_files and github_repos.sample_contents only costs 31 GB (free) but not as many easter eggs :)

<comment><USER4> Just looked at their pricing. ~$9 query right there.

[https://cloud.google.com/bigquery/pricing](https://cloud.google.com/bigquery/pricing)

<comment><USER3> Good point. Here's the results if anyone wants them:

[https://raw.githubusercontent.com/bduerst/GithubEasterEgg/ma...](https://raw.githubusercontent.com/bduerst/GithubEasterEgg/master/EasterEggs.csv)

</comment></comment></comment></comment><comment><USER5> Please note if you are wondering where your project is, we only archived to bigquery open source projects. So add an open source license for reals?

<comment><USER6> Out of curiosity, how do you automatically(/programatically) "detect" that a project (repo) is open source? The presence of a _LICENSE_ file that contains the text of the BSD|GPL|MIT|... license?

<comment><USER7> GitHub licenses API

[https://developer.github.com/v3/licenses/](https://developer.github.com/v3/licenses/)

</comment></comment></comment><comment><USER7> I'm compiling all links and tips I can find at:

\- [https://medium.com/@hoffa/github-on-bigquery-analyze-all- the...](https://medium.com/@hoffa/github-on-bigquery-analyze-all-the- code-b3576fd2b150)

The Changelog also invited us to record podcast with Arfon Smith (GitHub), Will Curran (Google), and me (Google) - [https://changelog.com/209/](https://changelog.com/209/)

Happy to answer any questions!

</comment><comment><USER8> Here's the announcement from Google

[http://google-opensource.blogspot.com/2016/06/github-on- bigq...](http://google-opensource.blogspot.com/2016/06/github-on-bigquery- analyze-all-code.html)

</comment><comment><USER9> FWIW, the author (Arfon Smith) had a recent Microsoft Research talk on github and open collaboration for the scientific community: [https://www.youtube.com/watch?v=7XOuJFwy270](https://www.youtube.com/watch?v=7XOuJFwy270)

</comment><comment><USER10> This is super cool. If you want to benefit from this info in your workflow now, we have analyzed some of this same data at Sourcegraph, and you can see (e.g.) all the repos that call http.NewRequest in Go ([https://sourcegraph.com/github.com/golang/go/-/info/GoPackag...](https://sourcegraph.com/github.com/golang/go/-/info/GoPackage/net/http/-/NewRequest?refs=all)) or lots of usages of Joda-Time DataTime in Java ([https://sourcegraph.com/github.com/JodaOrg/joda- time/-/info/...](https://sourcegraph.com/github.com/JodaOrg/joda- time/-/info/JavaArtifact/joda-time/joda- time/-/org/joda/time/DateTime:type?refs=all)). You can search for functions/types/etc. on Sourcegraph to cross-reference them globally. We're working on an API to provide this information to anyone else who wants it; email me at firstname.lastname@example.com if you are interested in using it.

</comment><comment><USER11> Top emacs packages required on github repos [https://kozikow.wordpress.com/2016/06/29/top-emacs- packages-...](https://kozikow.wordpress.com/2016/06/29/top-emacs-packages- used-in-github-repos/)

</comment><comment><USER12> I made an interface to some of this which can be used for finding a single user's contributions over time: [https://githubcontributions.io](https://githubcontributions.io)

</comment><comment><USER11> sample_contents only lists contents of 10% sample of all files. Scanning the full data set may be hard for people new to big query. I managed to query the full data set in [https://kozikow.wordpress.com/2016/06/29/top-emacs- packages-...](https://kozikow.wordpress.com/2016/06/29/top-emacs-packages- used-in-github-repos/) . "Resources exceeded during query execution" are especially hard to debug as may mean many things that could have caused Big query to go out of memory.

Some big query tricks to make it work:

      - TOP/COUNT is faster and more memory efficient than GROUP BY/ORDER
      - Filtering data prior to join in sub-query reduces memory usage.
      - Regexps and globs are expensive. Use LEFT/RIGHT as a faster version.
      - Avoid reading all files to get around 1TB freebie scan limit. Only access file contents after filtering some paths.

</comment><comment><USER13> I'm curious how frequently this will be updated. It'd be nice to set up weekly/monthly queries which show updated information.

<comment><USER7> Weekly for now (fingers crossed)

</comment></comment><comment><USER14> I created open source webservice which serves data in json format: [http://getjson.info](http://getjson.info)

Hope you will find it useful

</comment><comment><USER15> Is there a way to get all Ask HN posts from the HN dataset?

<comment><USER2> Something along the lines of:

       SELECT id, title
       FROM [bigquery-public-data:hacker_news.full_201510]
       WHERE title CONTAINS "Ask HN" AND url=""
       LIMIT 1000

Output: [https://docs.google.com/spreadsheets/d/12HZ2DqkR_nl380bpxM0B...](https://docs.google.com/spreadsheets/d/12HZ2DqkR_nl380bpxM0BLgfVfwCzb3l7hBSFKjlPDuw/edit?usp=sharing)

</comment></comment><comment><USER16> [https://scholar.google.com/scholar?hl=en&q=github&btnG=&as_s...](https://scholar.google.com/scholar?hl=en&q=github&btnG=&as_sdt=1%2C32&as_sdtp=)

People take their time "studying" everything these days, isn't it?

I can't imagine how would that be if the State wasn't paying them to do that.</comment>


Show HN: BoundIt CAPTCHA: highlight objects in photos to prove you're human - <AUTHOR> http://www.boundit.co <comment><USER2> I was a robot four times out of five. This sheds a new light on my existence.

On a serious tone, apart from a cool showcase of technology, do we REALLY need this? CAPTCHAs are the bane of everyone's internet time. Sometimes it works, sometimes it doesn't, sometimes I have to write strange unicode letters, when it fails I have to go back and re-input everything in the form,... And more importantly, the persons it's supposed to prevent from abusing a service are not likely to be stopped by these childish "anti-bot measures".

<comment><USER3> Ditto :( I was almost embarrassed to post!

</comment></comment><comment><USER4> I have a background in breaking and designing CAPTCHAs at Microsoft Research; how is this un-OCRable?

If you're finding the objects automatically, you can write an algorithm to do that. If you're doing it manually, your corpus isn't going to be big enough, and I can just pay people to enumerate them.

Plus, for all of the examples I see on your page, you can just find objects of interest, which is fairly trivial, and that's probably going to be what you're looking for.

<comment><AUTHOR> Hey Tyler,

You're right about certain images having easily distinguished objects-of- interest. In the future, running a routine to weed those easy ones out will stop any being solvable by bots. And also, as with any other captcha, paying other humans to validate themselves for you will always be an issue.

We validate users' inputs against a pool of manually-entered data. Because we collect a pair of annotations for each submission, one is used to verify the user, and the other is collected against an un-annotated image. As annotations are collected for new images, they are synthesized to expand the pool of annotated images.

<comment><USER5> What he said was that if you manually preparing the images then the number of different images will be low enough that he can pay other people to solve the complete set - a one off cost.

</comment></comment></comment><comment><USER6> A few issues,

1\. Not going to work for those with sight impairments. 2\. Not going to work on mobile (in current form). 3\. Its not any harder to break in an automated way then most other CAPTCHA's

I hate CAPTCHA's. With a passion. I even write automated CAPTCHA decoders for fun [http://wausita.com/captcha/](http://wausita.com/captcha/)

If there is one thing the world does not need its another CAPTCHA. If you have something to protect all the CAPTCHA's in the world are not going to stop those who want to exploit it. They can be automated or outsourced (easily and for peanuts). CAPTCHA's should only be considered suitable for keeping random spam bots off your site, and even then adding a honeypot field is a safer bet.

If you are being targeted a CAPTCHA is next to useless.

<comment><USER7> It appears to work just fine in Mobile Safari for me. I just dragged to draw the box and it worked quite well.

</comment></comment><comment><USER8> More importantly than the technical issues, CAPTCHA completion is already big business. Where the common scripts are known to fail, malware developers just feed the CAPTCHAs over to call centres in Africa or somewhere else cheap.

Everyone wants CAPTCHAs that minimise the annoyance to end users, and that are hard for a machine to crack. But the above business model means that, as a service designer, you either need to accept some degree of CAPTCHA fail, or somehow not annoy your valid users whilst also make solving them take unprofitably long for a remote worker to do.

<comment><USER9> Yeah this.

SEO/internet marketers who want to go create a bunch of spammy backlinks through user profiles / blog comments on forum sites and blogs (anything that allows account creation and user generated content) to target affiliate marketing sites they own have pretty great automated tools to do this that integrate with the commercial captcha solving services.

The captcha solving aspect is around $1 - $1.50 per 1000.

You can't really prevent this and it really doesn't matter how effective the captcha is because outsourcing the human required to solve it is so ridiculously cheap.

</comment></comment><comment><USER10> For everyone who seems to be getting false negatives, it's because you're tracing a space too large.

I was initially getting robot returns, but it seems to have a higher tolerance for not binding the entire target, rather than trying to get the entire thing and having non-target space in the enclosure.

With that out of the way...this isn't safe. Interesting idea, but not safe. All that's needed is an algorithm that finds the object existing in both images. This is trivial with your current setup because size doesn't matter, recognizing two clocks is pretty easy even if one takes up a full picture and the other takes up a corner.

Some possibilities, and problems with each:

1\. If you try a more rigorous system, where there's two pictures full of images in both, then you might have a better chance. But you'll still be giving text instructions to specify _which_ image is the one you need to trace, and this can be automated as stated above. As soon as you state the word of the image, it's going to be algorithm-able, unless you make the image so blurry or incomprehensible as to fool both machines _and_ humans, which defeats the purpose.

2\. You could specify nothing, and instead tell the human to trace two matching objects. Regardless of whether or not there's more than one matching set, you can still automate this and pass with a machine.

I think this is an interesting, and perhaps capable idea, but it's far away from having any practical or secure utility.

</comment><comment><USER11> Isn't object recognition in a not-distorted environment relatively easy? Click-and-drag is something UI automation does all the time, so that's not the hard part, either.

A couple more thoughts: This requires a huge, human-written database (or it requires an algorithm ... and, oh wait, we already decided that if an algorithm can do it, then it's not really worth of being a captcha)

Also, a few of the images, especially the coffee mug ones, look like they could be solved by selecting the whole image.

<comment><AUTHOR> That's a good point, but we are a long way away from an automated general object recognition system. This discounts occasional outliers such as obvious objects which take up the whole page, or ones that are clearly visible against a gradient-less background (both of which can be pruned).

Currently, we are validating inputs from a human written database, which is continuously being expanded with new user inputs and new images. One image is used for validation, and the other is used for expanding the pool.

<comment><USER12> An attacker might not even need to use object recognition.

The 'noun' (beerbottle, golfcart) is always in the same place in the DOM (so, easily targetable as text) The urls for each image appear to be constant as well. I also discovered the element with the token and the structure of the POST requests to get the pair of images as well as to send data. It might be possible to just bruteforce it with a little scripting, to send random boxes based on the size of the images and when I get "success" back, I know to associate those boxes with those image urls.

I assume I can't simply replace the images with ones I want (that would be insane) but I might be able to just bruteforce it with calls to the api until I get images I know. I would suggest that rather than exposing the actual image urls, you serve them up with obfuscated urls (though I personally wouldn't even want them to be publically accessible anyway.)

Also, maybe add a bit of good old fashioned cruft to the images themselves, to throw off attempts at storing their hashes. Maybe rotate or flip them now and then, change the colors, add random lines, filters, etc (basically what happens with text captchas.)

Just some random ideas.

</comment></comment></comment><comment><USER13> I think the site/service is pretty slick and well-made. It worked well for me -- I'd be curious to see what kinds of boxes these people failing were drawing (or whether it's just a browser issue for them or something).

These comments are all pretty negative, and I think the criticisms are mostly valid, but I don't think you've made a bad product (though it may need some tweaking, and captchas may be on their way out now for the reasons others have posted).

I just know that I've felt awful before when receiving similar comments to these others, and I would have liked someone to remind me: you made something pretty good, and it wasn't a stupid idea.

</comment><comment><USER14> You might consider using photos that have more than the target object in them. It is easy as heck for a computer to determine the bounds of an object in a photo, and increasingly easy for it to know what that object is. It's certainly no challenge to a bot to determine the bounds of the "coffeemug" when it is the only object in the photo.

Also, CAPTCHA of any sort just sucks. As a user, I only will bother with a site that uses CAPTCHA if it is providing something I absolutely must have. If it's something I may or may not use, and I'm presented with a CAPTCHA (of any kind), I leave.

</comment><comment><USER15> I think the cats vs dogs ones were a bit more entertaining.

Why is it that computers can drive cars on a highway, but they can't discern a human from a Nigerian spam bot?

The whole necessity should be embarrassing to programmers w/ access to a powerful server.

If they put CAPTCHA's on the Xcode Build command, the whole problem would be solved within the week.

Eat your own dogfood, developers.

</comment><comment><USER8> Four out of five attempts... I'm a robot.

I tried a couple more, with slightly better success, however one of those times I saw the same image in both panels.

And then, it broke rather oddly: [http://i.imgur.com/LwYtKe2.png](http://i.imgur.com/LwYtKe2.png) (time approximately 00:45 BST, firefox 21.0, Win7)

<comment><USER8> (in case it's unclear, several screen grabs of the same single prompt at various scroll positions)

</comment></comment><comment><USER16> I like the idea but the whole thing about reCaptcha is that we are helping as well, and that is really compiling.. BUT maybe if u can add advertising pictures in the captcha that payoff the blogger/developer you can get more acceptance ..

</comment><comment><USER17> CAPTCHAs were broken a long time ago when spammers hired real people to enter their values instead of relying on bots. In short, testing to see if the visitor is a human is protecting against spamming tactics from 2008.

</comment><comment><USER18> I've failed 1/5\. I thought I had it right though.. I must be dumb

<comment><USER19> People always told me I was a bit robot-like, but this confirmed it for me.

</comment></comment><comment><USER20> Not sure if this is quite ready for primetime. I failed 4 out of 5 tries to prove I was human. The only one I passed was the wall clock pictures.

Edit: I'm using Chrome 27.0.1453.110 under Ubuntu.

</comment><comment><USER21> It's a neat idea, and a good implementation at this point, but I don't like the idea of moving towards human-verification methods that won't work for the sight-impaired.

</comment><comment><USER22> Nit-picking your copy:

Going from 10-14 seconds to 5-7 seconds per Turing Test isn't a 100% improvement, it's a 50% improvement. A 100% improvement would mean each run took 0 seconds.

</comment><comment><USER23> I drew the box in the middle of the picture, despite what actual photo is (75% width / height of the original photo), 2 out of 15 times of trial, I get passed.

</comment><comment><USER24> Doesn't seem to be working for me, I can't draw any boxes.

(I'm using Chrome 29 on a Chromebook.)

</comment><comment><USER25> Every time I tried it said I was a robot. My ex boyfriend was right!

</comment><comment><USER26> glad to see I'm not the only person failing here.

Seems like a good idea, but I'm pretty sure no one will ever user a captcha that repeatedly fails human input (even worse than reCAPTCHA).

</comment><comment><USER27> Google's object recognition could already beat this, no?

</comment><comment><USER28> this is cool - thanks for sharing. However - re-captcha is beautiful b/c it helps digitize goog books.

</comment><comment><USER29> failed quite often. really struggled with coffeemug.</comment>


Ask HN: What are you watching on TV to relax and unwind? - <AUTHOR> I'm watching Space Force. It scratches an itch. After thinking almost all day, I believe that watching a show/series where I don't have to think about the plot lets me just chill and wind down. <comment><USER2> These days where everyone is emotionally high. Deliberately avoiding anything that reflects today's state of affairs: 1\. Amazon: The Boys, The Feed, Upload, Catastrophe, The Widow, Tom Clancy's Jack Ryan, The Newsroom, Homecoming 2\. NBC: Zoey's Playlist <\--GREAT to unwind emotionally. 3\. CDW: The 100 4\. ABC: The 4400 5\. Netflix: Mars (only 1 season, 2nd season looks and feels like current gov state of affairs whereby the 1st season was more Mars adventure)

So much crap going on, just trying to avoid anything that reflects today's idiot run gov/policy makers. But admittedly, slowly finding it hard to avoid since every show plot always seems to come full circle to why things gets F __*d up in the first place. Netflix ' Mars is a perfect example where 2nd season they brought in more gov/policy/corp injustice and made it unwatchable.

If you really need to get away...mentally, found Zoey's Playlist quite touching... like sobbed in every episode it was so emotionally releasing. I was forced watch bc my wife won the night's remote control.

Bottomline: repeating what I've said above, just avoid anything that has gov/policy/corruption/corp.

</comment><comment><USER3> Space Force was okay, but I really hope it improves in Season 2. I had just finished The Office before it so was really itching to see more stuff by Steve Carrell.

These days watching Gilmore Girls. I totally agree with watching chills shows to unwind, feels good.

</comment><comment><USER4> Currently watching the sitcom "Community" which I missed the first time around. Good stuff.</comment>


Show HN: Launch a bunch of macOS apps from the menu bar just in 1 click - <AUTHOR> https://www.producthunt.com/posts/workspacepro <comment><USER2> This actually looks good, but I wonder if it can eg open an app with a specific project/directory/file (to have a workspace per project)..

<comment><AUTHOR> This feature is in the new update plan. I'll publish this feature in the next updates. :)

<comment><USER2> Great to hear. Any chance you'll make the app available via MAS?

Edit: and.. for my eyeballs sake, Dark Mode?

<comment><AUTHOR> Dark mode also will be available in the next updates soonly. MAS, for now, is not among my plans, but in the future may be :)

</comment></comment></comment></comment><comment><USER3> Direct link [https://workspaceproapp.com/](https://workspaceproapp.com/)</comment>


DuckDB – An embeddable SQL database like SQLite, but supports Postgres features - <AUTHOR> https://duckdb.org/ <comment><USER3> I spent a while looking at this today. It's really interesting.

It's not based on SQLite at all (except for borrowing the SQLite shell implementation) but it looks very much like SQLite, in particular:

\- It's designed to work as an embedded library, eliminating the network overhead you usually get when talking to a database

\- Each database is a single file on disk

\- It ships as an "amalgamation" build - a single giant C++ file (SQLite is a single giant C file)

Impressively, if you run "pip install duckdb" it Just Works - you can then "import duckdb" and start using it, with an interface that looks very similar to the sqlite3 module that ships with Python.

The key reason this exists is that it's a column store, with vectorized operations across columns - making it ideal for analytical workloads. This blog entry has some benchmarks that illustrate how well it works in that regard: [https://uwekorn.com/2019/10/19/taking-duckdb-for-a- spin.html](https://uwekorn.com/2019/10/19/taking-duckdb-for-a-spin.html)

It's also backed up by some strong computer science. It's by the academic researchers behind MonetDB and includes implementations of a bunch of interesting papers: [https://duckdb.org/docs/why_duckdb#standing-on-the- shoulders...](https://duckdb.org/docs/why_duckdb#standing-on-the-shoulders-of- giants)

It's a really interesting piece of software, and unlike many other "new databases" it feels like it fills a very genuine gap in my toolbox.

<comment><USER4> If everything you said is accurate, somebody should make another pitch for WebSQL ( [https://en.wikipedia.org/wiki/Web_SQL_Database](https://en.wikipedia.org/wiki/Web_SQL_Database) ) with a custom version of DuckDb!

Every browser maker was interested in implementing it but the W3C couldn't go ahead with it because everyone chose to implement it using SQLite, where as W3C required more than one db back-end implementation to move forward.

<comment><USER5> Having sqlite included in all browsers with standard bindings would have been great.

<comment><USER6> It would! But it would also be a security nightmare. Exploit SQLite and you could use it in Safari, Chrome and Firefox - everybody could be affected.

<comment><USER7> How would that be different from someone editing something in window.localStorage?

<comment><USER6> If that's all you need, it wouldn't make sense to include SQLite in the browser. If you're going to include a relational database you might as well use it

</comment></comment></comment></comment></comment></comment><comment><USER8> I really wish _ALL_ software project / framework / libary could follow the lead here. Instead of your marketing page telling me how world changing awesome tech you have, which really is a _consumer_ marketing strategy. Just do it like DuckDB,

When to use DuckDB ; When to _not_ use DuckDB

<comment><USER9> We should make a list of technology that does this, because I know Clickhouse also has a reasonably detailed page on when to use it and when to not use it and why. Postgres also has a very nice "do and donts" wiki page.

<comment><USER10> Postgres "do and donts": [https://wiki.postgresql.org/wiki/Don%27t_Do_This](https://wiki.postgresql.org/wiki/Don%27t_Do_This)

</comment></comment></comment><comment><USER11> First of all, really neat project.

There's an issue with the Installation section of the web page, though. Running Chrome on Linux, it says "System detected: Linux", which is right. But under "CLI", it offers me a download of duckdb_cli-osx-amd64.zip.

Just in case it was just the zip file name that's wrong, I downloaded it, but the duckdb binary inside is a "Mach-O 64-bit x86_64 executable" according to the file command.

The correct file is available if I click on Other Installations ([https://duckdb.org/docs/installation/](https://duckdb.org/docs/installation/)).

Also, if I try it on running Firefox on Linux, it says "System detected: UNIX" and gives me the OS X download.

<comment><USER12> Thanks for reporting that! We will have a look at fixing it :)

<comment><USER13> FWIW I got the same issue on Android, though offering me the "correct" link wouldn't do me much good either :)

</comment></comment></comment><comment><USER14> I was hoping from the title that it aims for postgres SQL compatibility, but I can't find it explicitly mentioned in the docs. This really makes me think I really want something like sqlite://memory which completely disregards speed or even persistence. Instead you could say for example "open an in-memory database that behaves like postgres 9" and run your tests against it. With typical fixtures of 10 or so rows, you wouldn't even need a query plans - <USER2> naive filte+copy over whole tables for most operations.

Currently I'm using [https://pypi.org/project/testing.postgresql/](https://pypi.org/project/testing.postgresql/) which spawns a temporary server per each test suite, which has quite a lot of overhead.

<comment><USER15> Man, I've wanted the "compatible SQL engine with only RAM storage" for testing for YEARS. Closest I got was some shenanigans with MSSQL's LocalDB.

<comment><USER16> I use docker to spin up new postgresql DBs on the fly

<comment><USER17> Same here, and I run the same set of migrations that run in production. To he clear, this is only done once per test session, not for individual tests, and the tests are written in such a way that they don't interfere with each other.

The overhead is actually pretty small, less than 10s. I'd saw too much for unit tests, but we'll within the tolerable range for integration/functional tests. Compared with the time I'd spend hacking together some brittle and unrealistic in-memory alternative, I much prefer to use a real database.

</comment></comment></comment></comment><comment><USER18> Cool project. Really appreciate the "When to use DuckDB" and "When to not use DuckDB" sections.

Anyone using this in production? Also, any benchmarks vs. other DBs?

<comment><USER19> I work at a Fortune 100 company and we have this in production for our self- service analytics platform as a part of our data transformation web service. Each web request can do multiple pandas transformations, or spin up it's own DuckDB or SQLite db and execute arbitrary SQL transformations. It fits our use case like a glove and is super fast to/from Pandas.

</comment></comment><comment><USER20> 3-month old HN thread [1] with good information from the authors and others.

"An embeddable column store for data science" (Pandas and dbplyer) would have been a good description at that time but the addition of JDBC/Java support expands the use cases.

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

</comment><comment><USER21> I think the title chosen by the poster misses the mark a bit, the main point seems to be that it's an OLAP DB optimised for analytics.

</comment><comment><USER22> The performance of DuckDB's predecessor, MonetDBLite, was/is stellar. DuckDB, when I tried in 6 months ago, was a bit behind in terms of csv parsing or aggregation by groups and didn't seem much faster than regular sqlite so I didn't really jump at it. Does anyone here know if the performance improved since then and how it compares to MonetDBLite?

<comment><USER12> We are currently actively working on performance optimization, and have recently finished implementing parallelization. Expect more performance improvements soon :)

</comment></comment><comment><USER23> This is slightly offtopic but do you guys have any good guides/best conventions how to save timeseries data to sqlite/similar? I'm no DB expert so struggling with this. I'm having a dynamic number of measurements that usually have the same timestamp. So one table for timestamp_id, signal_id and value?

</comment><comment><USER24> What would be the recommended way to migrate data from SQLite and DuckDB? Should I dump SQL from SQLite and load in DuckDB? Or use Parquet, or CSV export/import? I think those interested in the tagline "like SQLite but more features" might be interested in a quick howto/guide like that.

</comment><comment><USER25> This talk they did with a database research group at CMU may be of interest as well. [https://youtu.be/PFUZlNQIndo](https://youtu.be/PFUZlNQIndo)

</comment><comment><USER26> A suggestion for the web site: It would be good to mention the license more prominently. I had to click through to Github to find out what it was, and I believe this information would matter to more people than just me.

<comment><USER26> Correction: As CRConrad, whose comment was inexplicably downvoted, pointed out, the MIT License IS mentioned on the front page (And the Wayback Machine proves it was mentioned before the HN post).

</comment></comment><comment><USER27> Very cool project! Seems basically to be a column store and stores everything in a single file.

That reminds me of LMBD, which is similar in some ways, except bring a key/value store. Very highly recommend checking it out too to see what embeddable DB makes sense for your project.

[http://www.lmdb.tech/doc/](http://www.lmdb.tech/doc/)

</comment><comment><USER28> What is it that makes a database an OLAP database rather than a generic relational database?

Expressed otherwise: why would I choose DuckDB over SQLite, or SQLite over DuckDB?

<comment><USER9> OLAP databases can/are still Relational databases. The difference is that they're optimised for different workloads.

SQLite/MySQL/Postgres/MSSQL etc are all OLTP databases whose primary operation is based around operations on single (or few) rows.

OLAP databases like ClickHouse/DuckDB, Monet, Redshift, etc are optimised for operating on columns and performing operations like bulk aggregations, group- bys, pivots, etc on a large subsets or whole tables.

If I was recording user purchases/transactions: SQLite.

If I was aggregating and analysing a batch of data on a machine: DuckDB.

I read an interesting engineering blog from Spotify(?) where in their data pipeline instead of passing around CSV's or rows of JSON, passed around SQLite databases: DuckDB would probably be a good fit there.

<comment><USER28> I gather that there may be some differences in functionality offered, but that it's probably not much. So I presume performance is the biggest area of difference. In that regard: how big _are_ the differences in performance for each category's representative workloads?

<comment><USER19> Before the latest optimization, and only using 1 core, vs. SQLite we were seeing 133x performance on a basic group by or join, and about 4x for a pretty complex query. It was roughly even to Pandas in performance, but it can scale to larger than memory data and now it can use multiple cores! As an example, I could build views from 2 Pandas DataFrames with 2 columns and 1 million rows each, join them, and return the 1 million row dataset back to Pandas in 2 seconds vs. 40 seconds with SQLite/SQLAlchemy... Pretty sweet. DuckDB is going to be even faster now I bet!

<comment><USER28> How about the other way? When will SQLite perform better than DuckDB?

<comment><USER9> If your workload is lots of singular INSERT or UPDATE's.

</comment></comment></comment></comment></comment></comment><comment><USER29> Please think twice before choosing an embeddable database for hostable software. I see so many open-source projects that get hampered own the line because they chose sqlite and there's now a SPoF that would require a significant rewrite to eliminate - especially as sqlite depending on configuration either corrupts or becomes extremely slow when stored on distributed/network file systems. I assume this goes for duckdb as well.

Embeddable databases absolutely have legit use-cases, but I see them being used for projects where it'd have saved so much trouble to use a proper ORM (perhaps with sqlite support!) from the beginning.

<comment><USER30> Not sure where an ORM would help in this case. If anything, it might get in the way sometimes (in terms of performance), as some queries might not be well optimised.

But yeah, people shouldn't just "follow the hype". They should always ask why would use this and not that.

<comment><USER31> I think ORM might have been brought up because in many embedded DBs there is some level of language native bindings that eliminate the need for an ORM. A couple of examples that come to mind would be mnesia (KV store rather than SQL but still an example) or some of the SQLite providers for c# which give you their own mini orm (that you will have to refactor if you change out dbs instead of using sqlite with an orm from the get go)

My preference for ORMs is still on the 'give me a SQL DSL and map my objects' side. Let me use SQL as SQL, give me convenience in interfacing with the DB. Complex features like object tracking tend to be nice up front but require extra diligence down the line to avoid pitfalls, and tend to be risky from a standpoint of composability.

Sorry. Almost went on an ORM rant there.

</comment></comment></comment><comment><USER32> Can multiple separate clients access the same single-file database at the same time?

<comment><USER33> One of the DuckDB authors here. The answer is yes, but only in read-only mode at the same time.

<comment><USER32> What about one single client writing and multiple clients in read-only mode? Any problems with storing the file on network storage? Basically, how far can you push it before it is better to just use PostgreSQL?

</comment></comment></comment><comment><USER34> Sorry for my perhaps stupid question,

has anyone tried this with ESP32/Arduino? I would need an anlytical DB for an hiking application (Temperatur/Pressure data etc.)

<comment><USER35> Ooh, this sounds like a fun use-case but a power loss sounds super painful.

<comment><USER34> Would also store on MicroSD.

<comment><USER36> That's part of the problem. Power loss during SD card write will, more likely than not, cause corruption - FAT file systems do not have journaling.

<comment><USER34> Well yes. But then it's just hiking not emergency services, SD cards also do break, so I would need dual slot etc.

</comment></comment></comment></comment></comment><comment><USER37> Strict typing has been the one big feature missing from SQLite, that this presumably brings.

<comment><USER38> Foreign keys enabled by default or by configuration setting would be another big feature missing from SQLite3, but I couldn't find any mention of foreign keys in DuckDB's documentation.

<comment><USER39> SQLite has foreign keys, but they are disabled by default for backwards- compatibility reasons. [https://sqlite.org/foreignkeys.html](https://sqlite.org/foreignkeys.html)

<comment><USER38> And it's not possible to enable them by default - there is no existing configuration setting to override that design choice. They hope to include the feature in SQLite4, as I understand it.

<comment><USER40> SQLite 4 was killed off in favor of just bringing a few changes to SQLite 3 iteratively.

[https://www.sqlite.org/src4/doc/trunk/www/index.wiki](https://www.sqlite.org/src4/doc/trunk/www/index.wiki)

</comment></comment></comment></comment></comment><comment><USER41> Simple, embedded database deserve more attention, especially those with native language support, e.g. map,filter,reduce methods on wrapped data that behave similar to javascript array; and support to nested data structure (like auto join and normalize).

(I made one using Proxy API, called ref-db. The cons is it require manual indexing to speed up lookup by non-primary key)

</comment><comment><USER42> Say I want to fix logistic Regression. Can I do that in database? Or have to extract it out as a dataframe? Cna I stream the data?

<comment><USER43> If you want to do linear regression aggregations with any DB, one thing you can do is store the coifficents and then aggregate them on request. You sacrafice some accuracy for speed.

<comment><USER42> Model fitting. How to do?

<comment><USER44> Stochastic gradient descent.

</comment></comment></comment></comment><comment><USER45> I love/hate it when I see pieces of software come out that would solve problems I had 10 or 15 years ago and had imperfect solutions for. This would have been great for a software project for call centre analytics I was employed to work on back in the mid-2000s. I believe I used HSQL (embedded Java DB) but it was really not the right tool. At the time I looked at MonetDB but its architecture wasn't right for what I was doing. This would have fit the niche perfectly.

This is really neat. Wish I had a problem I could use it for now.

<comment><USER46> I used embedded firebird for a couple projects in the early/mid 2000's myself. Wish it were a bit more popular.

</comment></comment><comment><USER47> So I tried a simple query in the live demo and it seems that the WHERE clause isn't filtering anything. Am I missing something?

      SELECT * FROM part WHERE p_size = 7;

<comment><USER12> Looks like a bug, likely related to an optimizer since adding count(*) does produce the correct result. I will have a better look after the weekend. The demo runs a relatively old version so it's possible it has already been fixed in the meantime. Thanks for the report!

</comment></comment><comment><USER48> I was discussing with a coworker what would be the best option, embbbedabble or service for a database runnning for a Windows GUI app.

My bet was on embeddable, so SQLite, is that the right choice?

It seeems a nightmarish scenario to have 500 postgres instances running on client machines and being accessible from the internet albeit with security enabled and such...

am i right?

<comment><USER49> Countless mobile apps use SQLite.

<comment><USER48> In this case though I'm talking of a COBOL backend very old windows app.

We want to move data from COBOL files to a database, we're making our own migration tools/scripts in python (In order to mainly rename weird name table/column names to sanish ones), and we can target any SQL flavour/database we want to insert that data at.. the question is what's the better call here...

SQLite seems pretty good enough, at least until we can move our whole app to a more web-friendly environment at which point something like postgres might make more sense? but that could take a couple years... (we're a small team/company in a very specific niche/locale)

<comment><USER31> SQLite works well for app files. Bentley uses it for all sorts of stuff and I had way fewer corrupt files in their format than Autodesks. :)

Do note that sqlite itself doesn't have the kindest handling of date/times, you are at the mercy of your data provider (unless you are going native) Especially when timezones are involved.

If it's running on windows machines you could consider Sql Server LocalDB (runs in user mode, i believe you are allowed to distribute as such in an app). But it doesn't sound like that would make sense from what I've read for your case and tech stack.

Sqlite is a good start because even if you are wrong, it should be pretty dang easy to migrate to whatever is right. :)

<comment><USER48> First of all thank you for all this info.

Actually SQL Server was one of the other contendents, but I disregard it due to it not being open source and having some hard caps in the free license (I think it's 10GB)...

But, I didn't knew about SQLserver local db, so we will look into that!

</comment></comment></comment></comment></comment><comment><USER50> How does duckdb compare to aws athena or spectrum? Both services offer sql directly on parquet files. I guess you would say duckdb is not distributed but if you create one on time when the user needs to run the sql on the parquet you'd be in a similar use case?

</comment><comment><USER51> So could the DuckDB, Postgresql combination function in a manner analogous to Firebird which has both embedded and server modes. I'd find that really exciting

</comment><comment><USER52> I will definitely look at using this for some personal projects. The R API is greatly appreciated. Thanks for alerting me to it.

</comment><comment><USER53> Can we create a view over multiple parquet files?

<comment><USER12> Yes, totally possible. You can use UNION ALL to merge them together. We are also working on globbing support for the Parquet reader that should be released next week [1].

[1] [https://github.com/cwida/duckdb/issues/773](https://github.com/cwida/duckdb/issues/773)

</comment></comment><comment><USER54> Really want to use this for EDA. I hope it has support for client apps like DBeaver or something

</comment><comment><USER55> Any GUI Client to explore data?

<comment><USER56> Web or desktop?

</comment></comment><comment><USER51> This sounds great. I wonder if there are plans for an ODBC driver at any point?

</comment><comment><USER57> Amazing work!

It was asking a lot, but still :-( that JSONB and range datatypes are missing.

</comment><comment><USER58> Good name.

</comment><comment><USER59> Kudos, much needed. Neat documentation. Would love to try with JS APIs.

</comment><comment><USER60> Can someone recommend whats the best way to connect to a memory DuckDB instance from php(php_fpm) and get return in usable format?

E.g. would be used for offline statistical analysis

Alterntively, any way to export cli sql results as csv?

</comment><comment><USER61> Is this backward compatible with SQLite?

<comment><USER24> The on-disk format is different it seems. But there is an implementation of the SQLite C API for interacting with the database. So it depends on which level / what purpose you want compatibility.

</comment></comment><comment><USER62> Just curious about these Do you think embeddable databases are common in car navigation systems

</comment><comment><USER63> This sounds like a solution I'd use. Embedded. Simplifies simple sites.</comment>


Show HN: Computerunlocked.com - <AUTHOR>

I built this 'rapid customization resource' for windows computers (like...for example your co-workers who might leave their computer unlocked from time to time) so you can show them, very quickly with a single javascript file you download and run a few of the cool settings they can change on their PC. With April 1st coming up I thought I'd share with the HN community<p>http://computerunlocked.com <comment><USER2> clickable: <http://computerunlocked.com>

</comment><comment><USER3> Yes, HN has lots of trouble figuring out how to set their desktop background and their browser homepage.

<comment><AUTHOR> Yeah, but how quickly can you do it? It is a 'rapid' customization resource. Plus I'm planning to add custom word dictionaries, profile pictures etc in the future.</comment></comment>


Brokerage Hit by Swiss Shock Gets $300M from Jefferies Owner Leucadia - <AUTHOR> http://www.businessweek.com/news/2015-01-16/fxcm-gets-300-million-bailout-from-leucadia-after-swiss-shock <comment><USER2> The Swiss have taken a lot of blow back for the damage this has done to all sorts of businesses and individuals, from big banks to brokerages to mortgage holders in Hungary, but they had no great alternative.

Once it became clear the ECB was about to take the reins off when it comes to QE, the Euro was guaranteed to sink substantially, leaving the Swiss forced to foot the bill on a pegged hole that would be theoretically infinite (only theoretically). At the very least, the Swiss National Bank was going to partake in a mult-billion dollar losing effort - for no good reason - to try to keep the Franc capped against the Euro, while facing off against one of the most powerful central banks in the world. The only question then would be how much the Swiss would lose between now and capitulation later.

<comment><USER3> If they really had no great alternative, and the chain of reasoning was that clear, then traders would have anticipated it and it wouldn't have caused any major problems.

Since it was widely unexpected and people did lose piles of money, I expect there were other likely alternatives and perhaps your analysis may be suffering from a bit of post-hoc rationalization.

<comment><USER4> You can't just assume a free market discounting future events. The SNB was pegging the currency at an artificial fixed rate v. the euro. Which is of course the opposite of a free market and preventing the price from reflecting the expectation of the market.

So, traders start to anticipate a revaluation and buy francs. The SNB has to print and sell francs to maintain the peg. The SNB becomes aware that it is in an untenable position and will have to print a multiple of Swiss GDP worth of francs and effectively prop up the euro.

They have nothing but bad choices: buy an unlimited quantity of euros right in the face of QE; re-peg at a higher rate or against a different currency, but have an arrow painted on their back that the new rate may not hold; or float.

So, they float. Now the traders at retail brokers like FXCM who got hurt weren't necessarily net short on balance. The problem is FXCM allowed 50-1 leverage. Say you have accounts with $40m of equity taking $2b of short exposure to swiss franc, and foolishly going long a high yielding currency to pick up carry. And you could have 10x or any number of accounts correctly anticipating and going long francs.

Now, the franc jumps 20% without any opportunity to cover shorts. On 50-1 leverage the $40m equity accounts with $2b exposure $400m, or 10x their equity. A client has a $10k brokerage account and loses $100k, the broker can't recover that from them in most cases. The people who anticipated and were on the right side of the trade make out like bandits. But the broker still has to cover for all the losers so they are SOL.

TL; DR - Going from an artificial peg to a free market rate, you can't say that the artificial peg discounted all future events. Obviously the rate needed to adjust to do so. And even if a lot of traders correctly anticipated, FXCM foolishly put themselves in the position of having to cover those who didn't.

</comment></comment></comment><comment><USER5> The article suggested that some of the brokerages may not seek repayments from their clients that owe them money. Why is that? I assume the contracts they sign are iron clad, is it just that the losses are so large that their clients couldn't repay it?

<comment><USER6> Consumer contracts (vs business ones) are rarely "iron clad". The idea you can go to someone and say ok you know you were doing some gambling with a stake you paid me, well you lost and now I want $200k is not going to go down well.</comment></comment>


Wysiwtfftwomg - <AUTHOR> http://www.markboulton.co.uk/journal/wysiwtfftwomg <comment><USER3> I'm pretty sure that what people want when they ask for WYSIWYG is live editing -- they don't want a "compile" step in their editing process, it's a gigantic productivity sink.

The actual act of editing something by trying to manipulate its output representation is usually painful, which is why WYSIWYG sucks for anything but demos to people who buy software but don't have to use it. The one thing it does get right is live editing, but you don't have to do WYSIWYG to get live editing -- you can just have a splitscreen with a sane, editable, logical representation on one side and an instant preview on the other.

<comment><USER4> I think the point is that "preview" is broken concept too.

The text you are writing will be read on smartphones, tables, PCs, and TV. It will have different layouts, e.g. depending on screen size. Which one do you want to preview?

<comment><USER3> All of them? I don't think there's a way around that, including expecting the people writing your copy to operate in the abstract realm of responsive CSS or whatever.

There's no way around thinking about your use-cases and you're not going to convince designers to not want to see what the end product actually looks like.

<comment><USER5> I'm not sure I agree on your last point; some of the younger, less print-bound designers I've worked with have a good understanding of the difference between presentation and semantics, and have been often enough annoyed by sites which look just dandy at 1920x1080, but are unusable on a phone, to have a burning desire not to produce more of the same.

Stipulating that point, though, perhaps the solution is to keep designers at a higher level of granularity -- to have them produce designs for "large screen", "small screen", "mobile", "print", &c., including general ideas of how body text shall appear, but leave the more granular detail to someone who's not so much wedded to pixel-perfection, but instead understands that the same content will necessarily look different when differently rendered, and who can understand and accommodate those differences to produce a result that works well across all of them.

</comment></comment></comment></comment><comment> DanI-S I suspect many people create their content in Word because they have learned the hard way that sometimes, when you click "Submit", the page goes blank and you lose all your work.

<comment><USER6> Lazarus [1] solves this problem. It auto-saves what you fill into forms, and allows you to go recover previous versions. You can right-click on any input, pick a saved copy, and restore.

Firefox: [https://addons.mozilla.org/En-us/firefox/addon/lazarus- form-...](https://addons.mozilla.org/En-us/firefox/addon/lazarus-form- recovery/)

Chrome: [https://chrome.google.com/webstore/detail/lazarus-form- recov...](https://chrome.google.com/webstore/detail/lazarus-form- recovery/loljledaigphbcpfhfmgopdkppkifgno?hl=en)

Safari: [http://getlazarus.com/download](http://getlazarus.com/download)

<comment><USER7> Doesn't seem to work for WYSIWYG fields in Chrome:

ALSO NOTE: Lazarus 3 doesn't save WYSIWYG editors yet, this is due to a Chrome bug ([http://code.google.com/p/chromium/issues/detail?id=20773](http://code.google.com/p/chromium/issues/detail?id=20773)) which prevents us from accessing the iframe that is used to display the editor. There's little I can do until this bug is fixed, sorry.

</comment></comment></comment><comment><USER8> This was a bit difficult to follow, but if it says what I think it says, markdown is a step in the right direction for device-agnostic content. With markdown, the content creator is not responsible for design and layout - <USER2> is handled independently by a designer, or several designers, with different designs for different outputs (desktop, mobile, pdf, ePub, etc). One major upside to markdown is that it can be written in any text editor on any device - from desktop software (notepad) to forms in a browser. Another upside is uniformity - with multiple writers collaborating on content, or if a specific style should be followed, there's little to no possibility for deviation - just write some '##' for headers and '-' for lists and the output always looks uniform.

The problem is that there is a learning curve to markdown, and while it's a small learning curve, it's still a hurdle. Toolbars and pseudo-WYSIWYG editors that output markdown are good baby steps. Fortunately, it's becoming more commonplace and picking up steam outside of developers with integration on sites like Reddit.

<comment><USER9> There is really no more difficulty in learning Markdown than there is difficulty in learning how to avoid all the baffling, un-undo-able ways that most rich text boxes can completely stuff up the formatting of your content, to the point where you simply have to wipe it all out and start over.

<comment><USER10> Objectively, Markdown isn't hard to learn, but people don't really want to learn anything, they just want to look for the button. Discoverability is, for most people, an important advantage of GUIs over most interpretation-of- freeform-text interfaces (like command lines and programming or formatting languages).

</comment></comment></comment><comment><USER11> I think the solution for content creators and content managers is not to copy and paste from full fledged word processors like MS Word, LibreOffice, and Apple Pages. Write plain text documents in Notepad (Win), TextEdit (OS X), or whatever plain text editor their BSD or GNU/Linux distribution offers. If they want to add styling, have them use Markdown or Textile and have a CMS that parses it.

For small sites, I use Textpattern. Contributors can write content in plain text with Textile tags (if they choose to do so).

For larger sites, I use Drupal. Contributors can write content in plain text with Textile or Markdown tags (if they choose to do so).

That way, the brand gudelines are upheld and contributors don't have to think about styling too much (and if they want to disrupt, they can't).

<comment><USER12> > If they want to add styling

The problem for a lot of users is the disconnect between a logical style (the actual boldness of the text) and _representations_ of that style. If you haven't learned to handle this kind of abstract symbolism, plain text markup formats just don't make sense to you. Your brain instead registers it as a combination of "this editor doesn't have bold for some reason" and "the computer garbled my copy and made parts of it bold for some reason" without ever drawing the connection between one and the other.

This is only really an issue in places where abstract thought is seen as an innate ability which can only be tested for and not _taught_ to people. Unfortunately this includes the US.

<comment><USER11> I read your comment several times. I don't understand the distinction you're making. I feel dumb. Could you explain it in another way? I'm sure your comment has value, I just don't understand it.

In languages like Markdown and Textile, one doesn't need to worry about presentation, it's all about semantics.

<comment><USER12> The distinction I'm alluding to is simply "the map is not the territory." In other words, in the same way that you can have something which represents a tiger without actually _being_ a tiger (eg. the word "tiger") you can have something which represents "the boldness of this text" without literally being the boldness of that text. The double asterisk notation in Markdown, and the <b> tag in HTML, are _symbols_ for the boldness of the text they annotate.

What I'm saying is that untrained users have trouble with the idea, fundamental to markup languages, that some text can represent attributes of other text. To such users, an asterisk means "the text has an asterisk in it." They cannot reinterpret asterisks as markup without relearning the way they look at text itself. They're used to having the territory laid out in front of them, and all of a sudden you're handing them one map and asking them to write another, _but they don 't know what a map is._

</comment></comment></comment></comment><comment><USER13> Once we go beyond plain text editing, WYSIWYG becomes quite useful. E.g. even a simple table looks ugly in wiki[1]/markdown[2] format, and manually aligning columns with pipe characters is painful and time consuming. Then there are images, charts, TOCs, footnotes, and many more content types that cannot be intuitively represented in plain text.

[1]: [http://en.wikipedia.org/wiki/Help:Table/Introduction_to_tabl...](http://en.wikipedia.org/wiki/Help:Table/Introduction_to_tables)

[2]: [https://github.com/adam-p/markdown-here/wiki/Markdown- Cheats...](https://github.com/adam-p/markdown-here/wiki/Markdown- Cheatsheet#wiki-tables)

<comment><USER14> It doesn't have to be plain-text. It just needs to be structured, _unlike_ a WYSIWYG editor. Recently I discovered a library called Sir Trevor JS[1] and thinking about adding a table block to it.

[1]: [http://madebymany.github.io/sir-trevor- js/](http://madebymany.github.io/sir-trevor-js/)

<comment><USER15> We're working on a way of allowing designers to deploy arbitrarily structured, editable content with a truly wysiwyg editor: [http://www.decalcms.com/tour/](http://www.decalcms.com/tour/) what do you think?

<comment><USER14> I've seen and even worked with some examples of this approach earlier. It works well when you have definitive templates that all the content would fit but you return to the step 1 when you need a flexible white box for the user to fill.

<comment><USER15> There's actually a way to just include arbitrary HTML (but it's not shown in the quick initial demo).

If you put your email in at the end you get access to a full demo that shows you all the features of the full CMS. Thanks for checking it out!

</comment></comment></comment></comment></comment><comment><USER16> There seems to me that there is a solution to this on the web and perhaps elsewhere (scientific publishing comes to mind for me).

We need to segregate data from presentation. More importantly we need to give users a choice in how their data is presented instead of forcing a particular design or presentation of the content on them.

If a user can choose how they want to read an article (tablet? desktop with lines of text that run the full width of the screen? phone? terminal window?) we should let them and give them options. There is no best way to present data because users are not all the same robotic machine, some prefer one format some prefer another. There is no universal best.

Why can't I read HN's content using reddit's design? Maybe I can and I haven't tried. My point is that most of the content we consume on the internet is text, pictures and video. I hate the youtube interface. Why the hell can't someone write a better one and then I view youtube's data that way?

Dissociate the front end from the backend. Send all the interface designers off to design frontends for any website that with a certain kind of data. Let the user pick which frontends they want for which website and then the website can send the data. Compensate the the frontend designer by giving them a portion of the revenue or something, or have users pay a little bit for frontends on an app store or something, or have websites pay the designer of the most effective frontend to use it as the default for users who don't bother to choose their own frontend(smarter people than me can figure out how to monetize this).

Am I insane to think that for a huge portion of the content on the web data and presentation can be completely segregated? Text is text, pictures are pictures, figures in papers are figures. Sure, a data person might insist that their data must be presented in a certain way, but isn't that just saying "fuck the user I'm and artist?"

What would it take for a system like this to become reality? (in scientific publishing what it would take is publishers releaseing the raw xml versions of the paper--which they already have--and it would make stuff like citations a thousand million times easier to deal with)

<comment><USER17> _We need to segregate data from presentation._

Sorry, but I don't buy that. The very best presentation is almost always customised to the material it conveys.

We try to separate content and presentation as a compromise, partly because it's too labour-intensive to craft a bespoke presentation for every little job, and partly to separate skill sets because someone can be a great author but suck at design. But it's still a compromise, and someone who both knows their material and knows design will often be able to create a more effective presentation of that material than they could if they were constrained to some pre-determined, standardised box of presentation tools.

By the same principle, it's not necessarily an advantage to let someone viewing that content customise the design arbitrarily, because it's almost axiomatic that such a person isn't yet an expert on the material. They don't know which ideas are the important ones that the author wants to build on, or which relationships in the data are the most enlightening ones to explore. A well made presentation, created by or in collaboration with a subject matter expert, can direct the viewer through the material in a more considered way.

To me, it makes no more sense to use a medium where the viewer has to make presentation choices than it does to send them a few spreadsheets of raw data and let them write their own content or plot their own charts.

<comment><USER16> Let me rephrase my original statement. We need to segregate data from a single format/layout.

I do not think the analogy to spreadsheets applies here. There are (at least) thousands of perspectives on/presentations of scientific data that are completely meaningless. In that case the perspective and presentation matters (though the sharing the original data opens up the opportunity for others to find new perspectives as well, though at the moment they do need to 'plot their own charts')

That said, once the author has chosen the perspective that perspective will be conveyed via some medium. At that point the data should be able to stand on its own. I used the word presentation, but 'layout' is probably closer to what I meant. If we take my use of presentation literally then we agree and this is why someone posting slides for a talk without also posting the talk is a terrible idea.

With regard to expertise, I would argue that everyone is an expert on what format/layout they find easier to use (sort of like why we let people move their windows around in a window manager instead of forcing them all full screen, re: tablets are major offenders here). I'm not talking about letting people change the words here or put the legend for figure 1 with the data for figure 3.

</comment></comment></comment><comment><USER18> I clicked on this link due to the simply awesome title, but realized the author had a great point. When asking "how does this look" what we really mean is "is this rendering the way I want". He posits that to properly answer this question, you must ask "on what", but my feeling is that you need to split the question into textual formatting (which can stay the same on all devices) and layout (which might be adjusted for the device).

In the old days (yes ... I'm old), we used WordStar on CP/M and we were careful to use our limited formatting features to maximize the impact of our words. We had bold, underline and (sometimes) even italics. When we composed our text, we assumed we'd use 55 of the 66 lines on the paper, and 75-80 characters across the page (depending on margins). We did this because that's what a 12 CPI typewriter would do. If we moved to a different printer, it might not be able to produce the exact same document, but with a few exceptions, we could live with the changes to the line wrapping and simply print it.

The problem introduced to printing when laser printers arrived (yes ... you could do cheesy images on dot-matrix printers) was that we now had to flow around images, account for multiple text sizes and pitches. As the web matured, we never quite completely separated the text formatting from the layout. My recommendation is that you focus on the formatting of your text when writing. Let the designer figure out how the layout needs to change when "responsive design calls".

</comment><comment><USER19> Inline editing makes perfect sense if the only thing you ever publish to or plan to publish to is the web.

Many large organizations do more than that. Apps, feeds, radio, print, eBooks. There's more than just the web.

Inline editing privileges one of these over the other, which can be a misnomer. Making editing on the web is great, but we need to be careful that our tools aren't too closely coupled to web display where inappropriate.

</comment><comment><USER20> I used to be a developer for some technical websites (publishing articles, blogs, newsletters, that sort of thing), mainly around SQL Server and .NET. Almost all of the authors used Microsoft Word, the main value being familiarity and using Track Changes. I came to appreciate Track Changes when I wrote or edited the occasional article, and I can't imagine it would be easy to find a replacement for the functionality that would work smoothly enough to justify convincing all the authors and editors to switch. Fortunately, the authors and editors were pretty good about using the house style in Word, meaning that the articles were semantically marked up. I wrote a converter that did a pretty good job of generating clean HTML from the source Word, mainly by mapping Word styles to the corresponding pieces of HTML.

One of the more interesting challenges was the mismatch between the structure of Word docx files and HTML. Whereas HTML has plenty of nesting, docx files have a comparatively flat structure. For instance, suppose you want a nested list of depth 2 that looks like this:

        * Outer
            * Inner

One way a docx (XML) file can represent this is a paragraph element with the style "Bullet1" (and the text "Outer"), followed by a paragraph element with the style "Bullet2" (and the text "Inner"). The two elements are completely separate, and you have to infer that they're part of the same list, and that the second bullet is the child of the first. Once you've done that, you can generate the corresponding HTML, which has the inner list as a child of the outer list element.

If anybody's interested, I wrote a Word to HTML converter for node.js using the same ideas: [https://github.com/mwilliamson/mammoth.js](https://github.com/mwilliamson/mammoth.js)

</comment><comment><USER21> As someone trying to solve the problem of Word to CMS copy/pasting, this is sadly what the majority of people do. As someone trying build build responsive websites I see people adding a bunch of spaces to center align instead of using the "center align" functionality this kills me.

I don't know the right solution, I've tried just about every editor and nothing seems to stop the Word to CMS copy/paste issue. Maybe the solution is to build a Word plugin to publish to CMS that cleans up the content as it publishes?

<comment><USER14> That's actually not a bad idea at all. Word Plugin API, I assume (I don't even use Word, let alone making plugins for it), may give you the structure with the content and all you have to do would be just splitting that information to put into the right fields.

I'm actually thinking about giving this a go (I guess I need to purchase a Word license at first).

<comment><USER22> The point is that people have a hard enough time using the existing features in Word and other WYSIWYG editors which allow for structured documents. Once an enterprising individual decides to depart from your template using tabs and spaces you will be helpless again.

</comment></comment></comment><comment><USER23> This issue is been one I've been thinking about a lot lately—at least from the writer's perspective.

The office I work in is a very heavy copy-driven office, with multiple publications and multiple clients. You can tell how old a Web-based client is based on the way it handles copy flow. The oldest one relies on Microsoft Word; my program relies on a workflow using Markdown and Editorially—one I've advocated for elsewhere. The reason the older program is sticking with Word is not because the writers and web editors prefer it; rather, the copy editor prefers Word because of its track-changes functionality. It "just works" for them.

But ultimately, it's causing major issues for the web editors, because they have to put in a lot of extra work to add in links and formatting. It's a waste of everyone's time to deal with extra workflow with a product designed for a medium many people are no longer even writing for. Which is why I've made an effort to find alternatives to Word for our Web properties.

We need to write flexibly in the internet age; Word complicates and adds extra steps to a medium where good ideas need to be organized, quickly. I don't want my writers to have to worry about extra steps or formatting—I want them to write good stories.

That's why I use Markdown. It's why I sell my co-workers on writing in Mou and editing in Editorially. We do not have to stand for an outdated system. We can improve it, step by step.

We no longer need to print or typeset our content. We need to start acting like there's nothing standing in our way besides good writing and editing.

<comment><USER8> Would love to talk to you about a project I'm working on. It's similar to Editorially, so as an Editorially user I'd appreciate your thoughts and feedback on the direction I'm headed. Can I email you?

<comment><USER23> Sure — I have an email address listed on my blog, [http://shortformblog.com/](http://shortformblog.com/). I check it regularly. Thanks!

</comment></comment></comment><comment><USER24> One of my least favorite things about markdown:

          There are three spaces * for content people – not creators,
          because not all content people create loads of content. Some just
          manage it – push it from here to there. Those places are:

       1. A space for writing. For writing and structuring.
       2. A space for management. For adding meta data, workflow,
          configuration and managing roles and people.
       3. The website space. Basically your website. A place where
          you begin the access user journey. Or preview your content.
          Generally the starting points for lots of little
          administration tasks.

See how the numbers sit outside the left margin? Or worse you've styled paragraphs and MD has chosen that your list elements need to be wrapped in p /p pairs and suddenly your bullets or numbers are sitting all alone while your paragraphs race over to the right margin.

I've beat upon the perl code a bit but tracking down the 'paragraphify' bit is stuck in a regex pulling stuff apart. In my custom version I attach a different style to paragraphs in lists than ones in the document. This helps but there are still edge cases that are very annoying.

<comment><USER25> Hanging bullets/numerals have nothing to do with markdown, they're a typographic choice and in my opinion look better than the indented style that you normally get by default.

In fact, the author of the post has previously written a hugely popular series about typography that specifically mentions this choice: [http://www.markboulton.co.uk/journal/five-simple-steps-to- be...](http://www.markboulton.co.uk/journal/five-simple-steps-to-better- typography-part-2)

<comment><USER24> Thanks for the link, I stand corrected that the OP wants that behavior in his output. To be honest that is so far out of my expectation for that typographic choice that I never once considered it a 'desired feature.' So there ya go.

</comment></comment></comment><comment><USER26> Maybe we just need to wait this one out? The problem is due to the fact that the current batch of content creators/managers learned text entry on word processors, but that must be changing. I'm guessing word processors had to shake of the legacy of the typewriter. Now we need to slowly shake off the legacy of the desktop word processor.

<comment><USER27> How are kids currently writing their documents? I suspect Microsoft Word will be with us for a very long time.

</comment></comment><comment><USER28> The problem with WYSIWYG is that it solves the wrong problem. Sure, what you see is what you are going to see, but that's irrelevant. What you care about is being able to change what you see. And that is tied up with all sorts of invisible context that you can't see.

Good interfaces tend to be based around the principle of least surprise. But in a typical WYSIWYG editor it is commonplace to be in a situation where you don't know what will be produced when you press a key or press enter. The purpose of tools is to bring complex problems under control. To make a bridge between the underlying problem space and a set of controls that are intuitive for a user. WYSIWYG does a poor job of doing that.

<comment><USER15> This is exactly the problem we're solving at [http://www.decalcms.com/tour/](http://www.decalcms.com/tour/) what do you think?

<comment><USER29> It's the fourth comment of you referring your cms tour. This looks like spam to me.

<comment><USER15> Seven, actually.

</comment></comment></comment></comment><comment><USER30> I couldn't even tell what argument the author was trying to make. The post seemed to be complaining about people using Word to write content. Then later on suggesting a CMS should be discrete applications. Isn't Word a discrete application?

<comment><USER31> The argument is that Word isn't a discrete application, it's trying to do everything, and teaching people that they can do anything.

</comment></comment><comment><USER32> Pseudo-WYSIWYG is enough in most use cases: the user doesn't actually want a pixel-perfect view of the final rendering - he just wants familiar graphical hints of his document's structure.

<comment><USER33> It depends on the user. In my experience, older users (55+) are particularly incensed when there's any inconsistency between what's visible in the editor and the outputted page (e.g. "I've been trying for hours, but I can't get the 'e' in this line to line up with the 'h' in the line above it!").

</comment></comment><comment><USER34> I used to edit books, and had the privilege of working with a few well known authors, people whose names you'd know if you follow fiction.

One of these fellows spent his personal money to get three copies of his book laid out, in three different fonts. The look of the book was that important to him.

Am I supposed to lecture him that he should be thinking about "logical structure" not appearance? That I know what books are about more than he does?

<comment><USER11> I believe you're confusing a few different stages in the book creation process. Also, the submission you're responding to was about web publishing, not print.

I publish printed books for a living. I've been involved in the design, editing, and marketing of printed books for 20 years.

Unless the person you speak of self-publishes, he doesn't pay anything for the lay-out of the book. If he does self-publish, and he has retained someone to make it into a half-decent book, then yes, that person should advise him about logical structure and appearance (depending on what that person is paid to do.) And yes, hopefully, the person he pays to help him does know more than him about creating books and shouldn't be afraid to give his professional opinion.

Remember, a manuscript does not a book make. Experienced authors know this and value publishers.

<comment><USER34> I respect your experience in publishing, but I think it misses my point. It may be that you work with different genres. My point was that for many authors, particularly authors on the high end of the fiction market, appearance _does_ matter to them. These people love books, not just the words but the physical feel and appearance. They have opinions about the physical form their book takes. Are they wrong?

I've helped a few authors get set up with their own websites, and the same concerns translated. They cared very much about how the site appeared, and had intelligent opinions about why that was the case. They weren't web ingenues -- they'd been reading other author blogs for years. Why would their concern with the appearance of the written word change when that word was online?

I can't name names, but these authors were far from self-publishing. They had substantial contracts from major houses. Their books were all covered in the NYTRB. The publisher of course paid for _one_ lay-out of the book, but it was not customary to cover three. That's why the author used his personal funds -- for the extra two lay-outs.

<comment><USER10> No one's saying authors shouldn't care about the appearance of their book, they're saying it should be decoupled from the production of the manuscript. You can productively worry about the appearance _after_ you get the "nice list of words, with chapters" aspect of the manuscript down; that's the logical structure, and, obviously, the hard part. The point is that you don't need a perfect WYSIWYG editor for the manuscript.

</comment></comment></comment></comment><comment><USER35> a dynamically structured <form> is much faster for content people to work with than contenteditable crap.

our flow is like:

* does content have more than X number of words? * yes: prompt if the content has to be promoted as special "tweet" like feature * is the content tagged as Y and Z , or A, or B and C? * yes: prompt for other ways to promote the content. * does the content include video? * yes: prompt if the content needs to be featured in video playlists in a section page. * is it also tagged as D? should it be promoted in another section's hot-play list? * ...

our content people start with simple form asking for title, author, tags, and content (html). the content is parsed to see if any of our media (image, video, audio) is embedded. if our games are included... etc. And depending on the title, tags, author, content new input fields are injected dynamically.

order of dynamic fields are carefully chosen so that workflow is optimal.

we initially went with contenteditable blocks (or components). that failed miserably: database became complicated. We ended up building something similar to DOM tree in database.

start with a simple form. analyze user input. dynamically add/remove more fields.

</comment><comment><USER36> I'm yet to find the right way to have clients "buy in" to the concept of limited wysiwig functionality, as it can be hard to explain what they're gaining in return without long-ish term exposure to the underlying technologies. Maybe an open-source document would be handy to help us get the key points across to "content peoeple"?

<comment><USER37> In my experience there's no silver bullet way to sell it, but there are some ways that work depending on who your audience is.

If the audience is management, the gain is _control._ "You just spent umpty million dollars redesigning your visual identity, you don't want some low- level copy jockey deciding to throw all that out and publish a page on your site entirely in Comic Sans, right?"

If the audience is the people who actually have to use the software, the gain is _simplicity._ "Look at this editing window from your current system. It has four toolbars, with fifteen buttons on each one! Do you really know what all those buttons do? Do you really want to be responsible to your boss if you hit the wrong one and screw something up? Now look at this _other_ editing window. Isn't it clean? Doesn't it look easy to use?"

</comment></comment><comment><USER38> Here's a serious question: what exactly is a "content person" when they clearly don't create content? According to the article, they push data from A to B.

Surely _that_ is the problem? Wouldn't the truly disruptive question be "How do I automate those who push content from point A to point B"?

</comment><comment><USER39> Responsive Design is what eBooks had since the first ePub spec. The ability of the user to control all aspects -- typeface, type size, line spacing, justification on/off.

With the advent of the iPad, we've a surge towards fixed layout.

Go figure.

</comment><comment><USER15> This is precisely the problem we're solving with [http://www.decalcms.com/](http://www.decalcms.com/) ... I'd love to hear your feedback!

<comment><USER40> You want some feedback? STFU! This is the fourth time you've pimped your project on this page. Give it a rest.

</comment></comment><comment><USER41> um... can anyone here define "WYSIWTFFTWOMG"? What You See Is What The Fuck For The Win Oh My God ... is the closest I can come and it makes no sense.</comment>


Start Fund: No big deal. Business as usual. - <AUTHOR> http://informationarbitrage.com/post/3007820135/start-fund-no-big-deal-business-as-usual

<comment><USER2> DST's last stage investments in Facebook, Groupon, etc has influenced the VC world to emulate, and in the same way this 150k blanket Start Fund will probably influence angel investing in the same way. With a bunch of IPOs coming this year and next, what will these VCs and angels do with all the realized gains? DST will have billions to spend. They will look actively and aggressively to spend. As long as there are hits like Facebook, Groupon, LinkedIn, etc, that will drive valuations higher and feed the inflation more. I wouldn't say we're in a bubble yet. Maybe the beginning. More like rising inflation for now.</comment>