Show HN: X-spreadsheet – A JavaScript canvas spreadsheet for web - <AUTHOR> https://github.com/myliang/x-spreadsheet <comment><USER4> Awesome job so far! This is obviously a monumental undertaking, especially since the quality of spreadsheet software seems mostly correlated with volume of features. This project looks like a great start, with an extensible architecture that will allow the project to eventually attain that "volume of features." I think my favorite line of code is this one, from package.json:

> "dependencies": {}

:)

<comment><AUTHOR> thx

</comment></comment><comment><USER5> This is amazing and fast. I'm complaining about it actually being easily broken only because I really wished this worked well, so I could build on it. It crashed for me on literally the very first thing I tried. I opened up the demo page, typed in 4 numbers in a column (in positions a5,a6,a7,a8), then typed "=sum(a5:a8)" in position a9, hit enter, and the demo crashed (with canvas all messed up). There's a traceback in the console log that starts "Uncaught TypeError: Cannot read property 'render' of undefined at cell.js:146". I'm using Chrome 71. I refreshed and tried the same test and it crashed again. There is a test suite ([https://github.com/myliang/x-spreadsheet/tree/master/test](https://github.com/myliang/x-spreadsheet/tree/master/test)) but the files have mostly not been touched in four months. In any case, awesome work - please make it even better!

<comment><USER6> It looks like it's case sensitive. Worked for me with "=SUM(A5:A8)"

<comment><USER7> i was about to say the same thing...

to anyone else wondering: you can browse the available function with the button to the right. ( SUM, AVERAGE, MIN, MAX and CONCAT )

<comment><USER8> Wonder how much demand there will be for SUMPRODUCT

<comment><USER9> For anyone else wondering about that formula.

[https://exceljet.net/excel-functions/excel-sumproduct- functi...](https://exceljet.net/excel-functions/excel-sumproduct-function)

All I can say is, I am grateful I don't have to deal with other people's spreadsheets.

 _My_ jam is programming languages and SQL, not obscure formulas and weird constructs made from surprising ways of using them.

</comment></comment></comment></comment></comment><comment><USER10> AFAIK (and in evidence in this case) you can't use the normal "find in page" (control-f) when using canvas. Consistency in functions like find is one of the greatest things about the browser, this approach removes it. Probably (!) an implementation will add its own find, which may be better or worse, but as browsers are best thought of as universal information vehicles, it won't automatically fit into accessibility and extension schemes.

<comment><USER9> You'll basically have to reimplement Ctrl+F yourself regardless of whether you are using canvas or not because if you have say a spreadsheet with fifteen thousand columns and fourty million rows of data then I doubt any browser would be able to handle having all of those elements in the DOM at once. So I don't think that is a compelling argument against canvas.

<comment><USER10> That's true, but I hope people would hesitate before using this for spreadsheets that don't require virtual rendering.

<comment><USER11> Good luck finding a full-featured browser grid product that doesn't do virtual rendering. They all have to, even Google Sheets.

<comment><USER12> I remember in a little personal experiment I did you could just set content- editable:true on a table and then add a couple buttons with some js to do things like add rows etc. and you got a decent mini spreadsheet-like UI. Formulas wouldn't work without something special obviously but I remember being surprised with how much was implemented in the browser.

One very neat thing about this approach is that read-only access works without javascript

</comment></comment></comment></comment></comment><comment><USER13> I think a description of why canvas was used would be nice in the README. My (probably naive) view is that browsers are pretty good at table-ish layouts so it'd be great to know why canvas was chosen.

<comment><USER14> > _My (probably naive) view is that browsers are pretty good at table-ish > layouts so it'd be great to know why canvas was chosen._

The browser certainly makes this convenient... until you have more than a few thousand cells. At some point even just having the whole table loaded into the DOM is too layout and memory intensive (except on servo, sometimes).

When you try, then, to work around those limitations, continuing to use the DOM for it becomes impractical. This gets especially difficult with a spreadsheet, where row and column size is user defined, and thus a scroll offset is a sum of all of those sizes.

I've done this several times, so I eventually settled on a bucketed, run- length encoded cache of row and column sizes, but keeping this data structure current was a mess. The mess further escalated since eventually I worked on an application where the row and column sizes could change in a different chunk with a network update, and that would need to be reconciled somehow.

<comment><USER15> Tables are also extremely performant in internet explorer, where table rendering is gpu accelerated.

<comment><USER14> Yes, if you can determine the natural height of every preceding row, the position of the next cell is a vector reduction of the previous heights. You still run in to memory limitations though (unless they've produced some incredible magical compaction scheme which can extract hidden classes from DOM structures, which I can't imagine happened without my knowing it since last I looked at tables in IE [spring 2017]).

</comment></comment></comment></comment><comment><USER16> This looks really good - the speed of rendering of the default sheet was surprising and pleasant.

Is there a reason you switched from the earlier version in TypeScript[1] to this version in JavaScript?

[1] [https://github.com/myliang/xspreadsheet](https://github.com/myliang/xspreadsheet)

<comment><AUTHOR> Reduce dependency on development processes

</comment></comment><comment><USER17> The speed of the rendering is amazing compared especially to e.g. google sheets. I just informally timed both and gsheets was rendered and editable in 4 seconds whereas this took 0.2 seconds.

However nearly every native UI interaction seems kinda broken. Even entering a value on Firefox doesn't work well. The first letter typed is entered into the cell but then every subsequent letter triggers firefox's fine-in-page (which also doesn't work as others have pointed out). Similarly copy/paste doesn't work, and the context menu (right-click) closes immediately. Maybe it works better in Chrome.

I wonder if there's a case to be made for a hybrid rendering/ui approach here. Rendering could be handled by canvas but native elements swapped in when actual text-editing is invoked?

Cool little demo in any case. I liked some of the simple but effective spreadsheet evaluation code.

</comment><comment><USER18> The canvas fonts are fuzzy? Stock OSX and Chrome, 4k display @ 3200 scaled

edit: [https://github.com/myliang/x-spreadsheet/issues/5](https://github.com/myliang/x-spreadsheet/issues/5)

<comment> c-smile By nature of <canvas>, it uses grayscale antialiasing of text

Here (MS Edge, Windows, High-DPI screen):

[http://cloud.sciter.com/index.php/s/fcTbout1oQqwIJg](http://cloud.sciter.com/index.php/s/fcTbout1oQqwIJg)

You see how different text rendering in normal DOM rendering (text "Normal") and the text inside canvas.

Grayscale AA text looks blurred. Grayscale AA works only for relatively large font sizes, for standard UI text sizes it is highly non-desirable.

<comment><USER19> Although canvas does do grayscale anti-aliasing, this particular app is blurry because the canvas is being rendered at a lower resolution than your screen. To make it crisp, the author would have to set the canvas' javascript canvas.width property to be twice the canvas' css canvas.style.width property.

<comment> c-smile Yes, oversampling will reduce blurriness but it will be there anyway. ClearType is there for the purpose.

Yet all that with the price of memory and CPU consumption - number of pixels to rasterize on 192 PPI monitor is four times of the one with "standard" 96 PPI.

<comment><USER20> It's not oversampling, it's native sampling. On high DPI displays browsers automatically apply a zoom to the page, so the canvas ends up being a smaller size that gets blown up. You have to detect this and create the canvas bigger to begin with to counteract this.

</comment></comment></comment></comment></comment><comment><USER21> Nice! Would be interested in how this compares to e.g. handsontable[1]. What do you think of audreyt's ethercalc[2] myliang?

[1] [https://github.com/handsontable/handsontable](https://github.com/handsontable/handsontable)

[2] [https://github.com/audreyt/ethercalc](https://github.com/audreyt/ethercalc)

<comment><AUTHOR> 1 canvas performance is higher than dom rendering 2 easy to write code

<comment><USER22> Formula calculation speed.

I am interested in talking, as I work on ethercalc.

The big issue I have seen is formula calculation speed. I understand render speed is also an issue. I don't know your use case, but the use cases I see tend to have formulas. It is hard to makes formulas fast enough with JS.

The main speed problems with ethercalc are loading the data from the server and calculating the formulas. I did strip down the code to remove these problems to make web apps work.

Web apps as simple as spreadsheets. My aim is to make it easy to add a UI to a spreadsheet. Spreadsheets often have a UI bottle neck. I have seen many spreadsheets that would be much more valuable to business if it had a UI, as more people could use it. So I added UI formulas to ethercalc [http://sheet.cellmaster.com.au/examples](http://sheet.cellmaster.com.au/examples)

Eddy.

</comment></comment></comment><comment><USER23> This strongly goes against the best practices for Canvas:

[https://www.w3.org/TR/2dcontext/#best- practices](https://www.w3.org/TR/2dcontext/#best-practices)

<comment><USER24> Yes, but it may be worth effort. See for example this editor: [http://evanw.github.io/sky/](http://evanw.github.io/sky/) and paste there even tens of thousands long text. It will work super smooth, like Sublime Text does. If only browsers provided low level APIs for text, font calculations and accessbility (what they already support internally), those kind of editors would make a lot of sense.

<comment><USER25> Sublime Text actually use the "same" * rendering engine (Skia) that is used by browsers (Chrome et.al) for the canvas. So there is no excuse for web based editors to be slow ;)

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

</comment></comment></comment><comment><USER26> It's neat and fast. I do think that you should consider implementing a few more common excel shortcuts, to make it really seamless to an advanced excel user. For instance:

\- CTRL ARROWS: to move on the grid to the next populated cell

\- F2: edit the first cell of the selected range

\- CTR ENTER: applies the content of the first cell of the selected range to the whole range (after you pressed F2 to edit it)

\- when edit mode, pressing down arrow should leave edit mode and move to the cell below

\- CTR *: select area

\- SHIFT SPACE / CTR SPACE: to select a row / column

</comment><comment><USER27> I've theorized for a while about what it would look like to try and build a generic, app-focused layout engine on Canvas. The DOM gives you lots of things for free and has a long history of backward-compatibility, but both of those things come with huge costs in terms of performance and (to a degree) complexity. The fact that the DOM a) is stateful and b) was originally designed for documents, not apps, causes lots of challenges when what you want to build are apps. The entire reason React exists is to try and force the stateful DOM back into a functional paradigm.

I'd be very curious to learn how generic this project's layout system is.

<comment><USER28> What you describe is similar to what the flutter developers are trying to achieve with their web port 'Hummingbird'. Flutter is currently almost entirely aimed at mobile apps, but it would be wonderful to be able to share UI code between apps and web frontend, with a consistent layout model.

This post is a good read: [https://medium.com/flutter-io/hummingbird-building- flutter-f...](https://medium.com/flutter-io/hummingbird-building-flutter-for- the-web-e687c2a023a8)

</comment></comment><comment><USER29> Here's a canvas datagrid that I've come across in case anyone is interested in the genre:

[https://tonygermaneri.github.io/canvas- datagrid/](https://tonygermaneri.github.io/canvas-datagrid/)

<comment><USER4> Related note, I would warn people to stay away from this one, which I've hacked around in production for the past year: [https://github.com/adazzle/react-data-grid](https://github.com/adazzle/react- data-grid)

It's a very solid project, also based on canvas, and works (mostly) as advertised, but there are some strange procedures around repo maintenance and releases, and it's a _massive_ dependency bundle. Docs can also out of date or missing information. If you don't require much customization and intend to release it as an internal tool, it will suit your purposes. But anything beyond that, I would look elsewhere. Nothing against adazzle, it's just an old repo and they inherited quite a bit of technical debt.

</comment></comment><comment><USER30> This is amazing! I'm doing a deep dive into the code now to see how the extensibility is done.

Some folks here might be interested in Stencila Sheets too ([https://stenci.la/blog/2017-08-features-stencila- sheets/](https://stenci.la/blog/2017-08-features-stencila-sheets/), [https://stenci.la/blog/introducing- sheets/](https://stenci.la/blog/introducing-sheets/)), [https://github.com/stencila/stencila/tree/develop/src/sheet](https://github.com/stencila/stencila/tree/develop/src/sheet). It's a web-based spreadsheets where cells can execute other programming languages, such as R or Python.

Disclaimer: I know the authors. Even so, it's very interesting tech.

<comment><USER31> What's happening with Stencila? I only found it recently, and it looks like a potentially fantastic project, but development seems to have slowed right down.

<comment><USER32> Hi yoz, Stencila dev here. Thank for your interest. We're definitely still around!

Development of the frontend has indeed slowed down while we focus on more lower-level "backend" tools for research reproduciblity (e.g. [https://github.com/stencila/dockter](https://github.com/stencila/dockter)).

But were currently recruiting for a frontend designer and an engineer. So will be definitely be getting back to the interfaces soon!

</comment></comment></comment><comment><USER33> alt: [https://ethercalc.net/](https://ethercalc.net/)

[https://github.com/audreyt/ethercalc](https://github.com/audreyt/ethercalc)

[https://github.com/audreyt/ethercalc/blob/master/LICENSE.txt](https://github.com/audreyt/ethercalc/blob/master/LICENSE.txt) cpal

[http://livescript.net/](http://livescript.net/) ^CoffeeScript

<comment><USER22> UI formulas - to build web apps [http://sheet.cellmaster.com.au/examples](http://sheet.cellmaster.com.au/examples)

I added these :)

</comment></comment><comment><USER34> First time I login in 5 years just to say GOOD EFFING JOB!

</comment><comment><USER35> This is really interesting! I've hoped of a scenegraph based web in the past, all rendered in a canvas (indexing can be done by serving a simplified html representation by checking the user agent). I think the most challenging part is text rendering, but some people have done some work in this area ([https://github.com/astiopin/webgl_fonts](https://github.com/astiopin/webgl_fonts)). Also, we may need some sort of API to trigger keyboard showing on mobile device. Anyway, congratulations!

</comment><comment><USER20> In firefox entering a value in a cell for the first time works, but after that any time you enter a value in a cell it will duplicate the character.

</comment><comment><USER36> Fun concept, but the cell text is blurry to the point of being a distraction for me, unfortunately. Is this a side effect of rendering to a canvas?

<comment><USER37> I've often seen this solved by drawing a canvas at at least 2x the viewable size and then using css to force it to be smaller. This is because of retina displays. Very much like images these days. It is often a very easy thing to solve.

<comment><USER38> The browser has a global for the DPR. If you multiply the reported dimensions by this value and keep the canvas stretched to 100% it should look crisp on any screen.

[https://developer.mozilla.org/en- US/docs/Web/API/Window/devi...](https://developer.mozilla.org/en- US/docs/Web/API/Window/devicePixelRatio)

</comment></comment></comment><comment><USER39> [http://mesh-spreadsheet.com/](http://mesh-spreadsheet.com/)

</comment><comment><USER40> Nice work! The UI is really good. In my one of the projects, I was looking for excel kind of functionality - and would like to give it a try. But the biggest value IMO excel offers is ability to define formulas. Is there any plans of adding that functionality?

<comment><AUTHOR> will add more formulas in the future

</comment></comment><comment><USER38> The cells need to have some kind of hover styling. Without it the demo feels non-interactive.

<comment><USER41> I'm not sure I've ever seen hover styling in any spreadsheet app, whether native or online. I think it would detract from the user's focus.

This certainly feels interactive when I interact with it like I would any other spreadsheet. Are you unable to select cells and/or type in them?

<comment><USER38> I think part of the problem was the canvas is being rendered below native resolution on a retinal display, so the blurry upscaling made it look like a screenshot.

None of the spreadsheet apps I tested have hover styling, but that seems like a violation of basic UX principles. Cells are the primary element of interaction, so I would expect some visual indicator to communicate interactivity (even if it is just the cursor changing).

</comment></comment></comment><comment><USER42> Looks very nice. Couple of nitpicks: 1\. Tooltips go into a flicker loop when you hover over the tooltip arrow ( the triangle hanging off of the tooltip box ). 2\. Dropdowns should close when you click a second time on the dropdown toggle.

<comment><AUTHOR> thx

</comment></comment><comment><USER43> Reminds me a bit of [https://github.com/SheetJS/js- xlsx](https://github.com/SheetJS/js-xlsx)

</comment><comment><USER44> Very slick. Looks incredibly similar to google sheets.

<comment><AUTHOR> yes

</comment></comment><comment><USER45> This looks amazing (as everyone else said). Hope this remains somewhat stable so I/we can build on top of it. 5 stars.

</comment><comment><USER46> I really like this and I can see the potential, but I certainly miss being able to type directly into the cell as opposed to double-clicking on it first. F2 should also enable editing and toggle between Edit and Enter modes.

It's hard to spend more than a few seconds on the demo when my very first interaction with it hits a major roadblock like that.

<comment><AUTHOR> input a-z1-9 to edit or F2 or double-clicking

</comment></comment><comment><USER47> It's abbreviated as "XSS", lol

</comment><comment><USER48> Can this do multiple row per cell? I tried alt + enter and it didn't work.

</comment><comment><USER49> If you're looking for a simple, light and highly customizable Spreadsheet for the web checkout React Spreadsheet ([https://www.npmjs.com/package/react- spreadsheet](https://www.npmjs.com/package/react-spreadsheet)).

</comment><comment><USER50> scrolling is weird. looks like the canvas is bigger than the window. So when scrolling both the native document/window scrolling is happing and the custom build scrolling of the canvas itself.

</comment><comment><USER51> Breaks easily, to reproduce bug: Put =B1 in A1 and =A1 in B1.

<comment><USER52> or just B1=B1

</comment></comment><comment><USER53> Let's render iframes in spreadsheet cells, and only display a selected element of the page in the iframe. We'll build interfaces that help us deal with information accross webpages and websites in no time!

</comment><comment><USER54> X Spread Sheet

XSS

probably not the best abbreviation

<comment><USER55> I have literally never seen spreadsheet abbreviated as SS. Spreadsheet is one word. Your comment comes off as trying too hard to be negative. Try some actual constructive feedback why don't ya?

<comment><USER56> >> I have literally never seen spreadsheet abbreviated as SS.

I thought it was pretty common. I guess it depends on the environment you work in.

<comment><AUTHOR> How should the spreadsheet be abbreviated ? 's' first letter

</comment></comment></comment></comment><comment><USER57> no web assembly used. If there is for the underlying calculation engine then it will be perfect.

</comment><comment><USER58> Holy cow this is INCREDIBLE. Thank you.

~ sincerely, super critical HN person. Mind blown.

</comment><comment><USER59> Was ready to open it and mock the results of a poor technological choice but it's actually quite nice!

</comment><comment> c-smile Well, <canvas> is not the best tool for doing such things.

<canvas> by its definition is essentially an <img> with its content (pixmap) modifiable from script side.

Better solution would be for browser to support immediate mode drawing. Like in my sciter ([https://sciter.com](https://sciter.com)) where you can define immediate mode painting methods (Element.paintBackground|Content|Foreground|Outline):

        var elGrid = …

        elGrid.paintBackground = function(gfx) {
          for(var r in ROWS )
            gfx.hline(0,r * cellh, width);
          for(var c in COLS )
            gfx.vline(c * cellw, 0, height);
        }

That paintBackground callback is invoked as a part of WM_PAINT window handler and with the same Graphics that window uses for rendering the DOM - <USER2> intermediate bitmaps.

Such model requires slightly different Graphics architecture than what is used by browsers. At least Path, Brush and TextLayout classes need to be added in order all that to work effectively.

Or to redefine all that on top of WebGL but that will be weird - <USER3> already have all 2D primitives (Direct2D, Skia, Cairo) implemented natively.</comment>


The Really Simple Way to Get Work Done - <AUTHOR> http://zenhabits.net/simple-work

<comment><USER2> GTD for the lazy.

<comment><USER3> Scrum for the average human.</comment></comment>


Using external APIs to improve search - <AUTHOR> http://www.gabrielweinberg.com/blog/2011/01/using-external-apis-to-improve-search.html

<comment><USER2> @Gabriel: How long do you think this will be a sustainable approach to powering Web search? What I mean is, after a certain amount of traffic will you be able to continue using all these external APIs or do you expect that in the future you will have to augment some or all of this data with something in-house like moving to full-scale Web crawls?

<comment><USER3> It is quite sustainable. These APIs are central to the business models of the companies and they should generally scale up as needed. For example, SeatGeek already powers WSJ and Yahoo Sports.

<comment><USER2> Good to know. What are your plans for crawling in the future? Do you think that you will eventually move to crawling as a primary source of result data, and if so, is that time drawing near or do you plan on continuing along the current path for some time?

<comment><USER3> We never stopped crawling; we just scaled it back for specific purposes, mainly now for spam detection and zero-click info. For the foreseeable future this status quo works well because we can concentrate on our value-ads.

</comment></comment></comment></comment><comment><USER4> Thanks for that post, I didn't know Qwerly, that might come handy.

I wonder how DuckDuckGo decides which API to query. Gabriel, could you shed some light on this?

<comment><USER3> Generally we have some kind of entity detection, be it a list or some regex or something more fuzzy. For example, check out the WolframAlpha stuff: <http://weinbergalpha.com/>

<comment><USER5> That's great. What's your algorithm for deciding which zero-click info to display when there seem to be multiple options?

For example, I notice that <http://duckduckgo.com/?q=fathers+day+2011> doesn't show a WolframAlpha result, but an Amazon result for me.

<comment><USER3> There is a precedence list that can be tweaked per query, and Amazon is at the bottom, so that is a bug :). In some cases, multiple things are called and the first to answer gets the spot.

Edit: bug fixed.

</comment></comment></comment></comment><comment><USER6> Gabriel, do you have any stats on proportion of zero click clicks (so probably page views where they don't click any results + clickthroughs from zeroclicks) vs use of standard search?

<comment><USER3> I do not, sorry.</comment></comment>


Gonorrhea Acquires Piece of Human DNA  - <AUTHOR> http://www.northwestern.edu/newscenter/stories/2011/02/gonorrhea-human-dna.html <comment><USER2> When reading the headline, the first thing that came to mind was Oracle's acquisition of Sun ;)

</comment><comment><USER3> I admittedly just skimmed the article, but I thought that it was well established that bacteria can acquire genetic material from other cells that they consume. Why is it surprising that human genetic material can be acquired this way too?

<comment><USER4> I think it has been well known that bacteria can share DNA between each other. But I think the fact they can take DNA from an eukaryote is new.

</comment></comment><comment><USER5> Cool! I also was amazed when I first learned that the human genome contains an archeology of ancient viruses whose DNA we incorporated over the millennia.

<http://en.wikipedia.org/wiki/Endogenous_retrovirus>

</comment><comment><USER6> Looks like the original, open access, paper can be found here:

<http://mbio.asm.org/content/2/1/e00005-11.full>

I'd guess the obvious first question is, is this a sequencing artifact? I wouldn't like to judge, but it looks like they are alive to the possibility (different isolates etc.)

</comment><comment><USER7> Interesting. It's known that viruses and transducing phages can incorporate host DNA into their genomes.

And of course, going the opposite direction at a metalevel, one theory of the origin of eukaryotic mitochondria is that it is of bacterial origin (an idea proposed by, among others, Lynn Margulis, who was married to Carl Sagan)...

<http://en.wikipedia.org/wiki/Endosymbiotic_theory>

...and leads to the following provocative idea: "According to Margulis and Dorion Sagan, 'Life did not take over the globe by combat, but by networking' (i.e., by cooperation).

All life is a tapestry.

<comment><USER8> It's not really a hypothesis anymore. Mitochondria have their own DNA so we can put them on a phylogeny. The closest living relatives to mitochondria are <http://en.wikipedia.org/wiki/Alphaproteobacteria>

Similarly, plastids are most closely related to cyanobacteria.

</comment></comment><comment><USER9> at which valuation?</comment>


Show HN: Android habit app - point system that reflects how habit building works - <AUTHOR> https://play.google.com/store/apps/details?id=com.infixapp&hl=en <comment><USER2> I added smoking to this list and it gave me 5 points :(

<comment><AUTHOR> The app is meant to track habits that you want to do. So in your case I would put in "don't smoke."</comment></comment>


Monitor Stack Overflow Activity Directly into Slack - <AUTHOR> https://medium.com/@picsoung/monitor-stack-overflow-activity-directly-into-slack-dc778913490f <comment><AUTHOR> This is a code tour of a purely serverless stack including Lambda and FaunaDB.</comment>


The truth about Unix: The user interface is horrid (1981) [pdf] - <AUTHOR> http://www.ceri.memphis.edu/people/smalley/ESCI7205F2009/misc_files/The_truth_about_Unix_cleaned.pdf <comment><USER2> This is a specific critique about the usability of the Unix shell, and I think most of this is still valid. The inside jokes (less is more) and overloaded meanings of command names is still an issue today, for example. Some of the visibility has improved by various means, but overall there is still a fair amount of 'black box' that takes arcane knowledge to peek in to.

Naming is one area I appreciated Microsoft's approach in Powershell. They have command names with a Verb-Noun structure, and full clear words, sometimes quite long. Then, after establishing clear canonical forms for the commands, they add a few well chosen aliases for short invocation and memorization.

Of all the critiques though, the Cognitive Engineering objection, that the system is not well designed to be used by human capacities, is still true across many platforms, especially in esoteric areas like the command line.

Also interestingly, I am guessing that this is the same Donald A. Norman of 'The Design Of Everyday Things'. It's fascinating to see these ideas in flight in 1981.

How do we address these things? How does one "redesign Unix" today?

<comment><USER3> _> ...Powershell. They have command names..._

Except that PowerShell commands, 'cmdlets', are really just .NET classes that run within PowerShell, like Ruby and Python classes, none of which are the same as working with GNU or BSD utilities and other executables in POSIX shells. That PowerShell's interface obfuscates its true nature is a huge violation of honest design, a massive violation of what's described in "Design of Everyday Things," leads to false comparisons, and misleads people into thinking it is providing the same functionality as working with executables in POSIX shells when it's actually providing chaining functionality like that in other scripting languages.

<comment><USER4> > Except that PowerShell commands, 'cmdlets', are really just .NET classes > that run within PowerShell, like Ruby and Python classes, none of which are > the same as working with GNU or BSD utilities and other executables in POSIX > shells.

That's categorically incorrect and shows a lack of knowledge of both Powershell and .Net classes. But instead of me showing you that you're wrong, let me teach you how to prove to yourself that you're wrong.

Open up Powershell, type in

         ( get-command get-date ).dll

This will find the dll on your system for the get-date cmdlet, but any will do ( C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.PowerShell.Commands.Utility on my box). Now spin up ILSpy or any .Net decompiler.

Let's look at the GetDateCommand class. That's a 400 line class, which according to you, shouldn't exist (as cmdlets are "really just .Net classes"). In fact this entire DLL shouldn't exist.

But GetDateCommand is one of PS's simplest commands since it wraps DateTime (in CorLib), so "wait! See!" you say. But what you need to understand is that Powershell is built on top of .Net, .Net is effectively Powershell cmdlet's "kernel" so just like UNIX commands communicate with the actual kernel, cmdlets are going to leverage functionality in their "kernel" (.Net whenever possible).

My point is, that no, Powershell cmdlets are NOT just .Net classes. However you CAN use .Net classes directly in Powershell. For example:

         [System.DateTime]::Now

<comment><USER3> _> cmdlets are NOT just .Net classes_

Yes they are.

The fact that you (and others I've seen here and elsewhere) continue to believe otherwise further demonstrates how deceptive PowerShell's design is.

What's interesting is that the cmdlet documentation is very clear:

 _" Cmdlets differ from commands in other command-shell environments in the following ways:_

 _" Cmdlets are instances of .NET Framework classes; they are not stand-alone executables...._

" _Cmdlets do not generally do their own parsing, error presentation, or output formatting. Parsing, error presentation, and output formatting are handled by the Windows PowerShell runtime._ "

[https://msdn.microsoft.com/en- us/library/ms714395%28v=vs.85%...](https://msdn.microsoft.com/en- us/library/ms714395%28v=vs.85%29.aspx)

<comment><USER4> > Yes they are.

I literally just spoon fed you exactly how to go look for yourself about how cmdlets work and how they're distinct from the .Net classes they represent. I honestly don't know what more I can do.

> The fact that you (and others I've seen here and elsewhere) continue to > believe otherwise further demonstrates how deceptive PowerShell's design is.

You realise I understand how Powershell works top to bottom, right? Where are they "deceiving me?" You can yourself can go learn about Powershell's artitecture (you have the tools, I've given them to you, and you clearly have access to the documentation).

> What's interesting is that the cmdlet documentation is very clear:

Wait is your biggest issue that cmdlets are held within DLLs of classes instead of standalone binaries? Because based on the snippets you posted I can only assume that is what your issue is.

Wait, but hold on, how many internal commands do most UNIX shells have? Dozens? Hundreds? Here's a list of them for bash: [http://www.gnu.org/software/bash/manual/html_node/Bash- Built...](http://www.gnu.org/software/bash/manual/html_node/Bash- Builtins.html)

So why one rule for UNIX and another for Powershell? Why does it matter that you can store multiple commands (cmdlets) inside of a single DLL?

<comment><USER5> I'm only passingly familiar with PowerShell but really, it's Microsoft, in the bloody documentation, that _literally_ states precisely that cmdlets are instances of .NET Framework classes:

"Cmdlets differ from commands in other command-shell environments in the following ways:

 __Cmdlets are instances of .NET Framework classes __; they are not stand- alone executables.

[https://msdn.microsoft.com/en- us/library/ms714395%28v=vs.85%...](https://msdn.microsoft.com/en- us/library/ms714395%28v=vs.85%29.aspx)

We can have an ontological debate about how an instance of an-object-as-a- concept is different from an instance of an-object-as-memory-content but I think that's best left to amateur philosophers.

</comment></comment></comment></comment></comment></comment><comment><USER6> I saw the majority of his complaints as basically "it's too hard/unfamiliar", a sentiment which I don't really agree with as I've noticed the steepness of learning curve of various software tends to be correlated with how powerful it is - those who give up early might not see that.

Inconsistent command names shouldn't be a difficulty - shell commands are like any other language, whose vocabulary is quickly learned with repeated use.

 _The manual doesn 't bother warning against this either, although it does warn of another, related infelicity: "Beware of 'cat a b > a' and 'cat b a > a', which destroy the input files before reading them."_

I'd consider it generous to see a mention of shell redirection in cat's manual, since that's done before it ever gets executed; in general, interactions between commands can't be exhaustively documented because they are numerous, and Unix assumes you can put two and two together.

..or maybe I'm just old and accustomed to it, after having used various OSs over the years, but that's sort of the point: Thanks to this "lowest-common- denominator" type of interface design, ease-of-use seems to have massively replaced learning, dissuading and distancing users from having control of their machines at a time when such control is becoming increasingly important.

<comment><USER7> The result of `cat a b > a` couldn't possibly be the result that the user intends, so it seems like poor design by definition. I can see how it would be tricky to handle it properly, but I do think it's possible to handle it properly without compromising the expressiveness of the shell.

<comment><USER8> In modern bash, this case is already protected with the "noclobber" option (enabled with "set -C" or "set -o noclobber"). It is described in the "REDIRECTION" section of bash(1), subsection "Redirecting Output".

It fails ">" redirections with an error message when it would clobber an existing file (you probably wanted to append to the file wiht ">>"). If you really intended this behavior, the new redirection operator '>|' has the old behavior.

        $ set -o noclobber
        $ echo foo > bar
        $ cat bar
        foo
        $ cat bar > bar
        bash: bar: cannot overwrite existing file
        $ echo baz > bar
        bash: bar: cannot overwrite existing file
        $ echo baz >| bar
        $ cat bar
        baz

edit: fixed typo

<comment><USER9> That's a nice feature, but it should definitely be turned on as a default rather than hidden behind an option.

<comment><USER8> That would break a very large number of existing scripts that depend on being able to replace a file with a traditional ">" redirection.

You can set it as the default for your own interactive shell if you want by adding

        set -o noclobber

to your ~/.bashrc file. It is probably a good idea to add it _after_ the line that check if it is being used non-interactively, which probably looks something like this

        if [[ $- != *i* ]] ; then
            # Shell is non-interactive
            return
        fi
        # add interactive-shell-only settings here

While you're editing .bashrc, you may want to also add these options that are available in modern bash that I find make the experience a lot nicer.

        # support new glob patterns like !(foo|bar|...)
        # for example, this move everything EXCPET the .h files
        #     mv !(*.h) /some/dir/
        shopt -s extglob

        # support ** in globs to match zero-or-more-recursive-directories
        shopt -s globstar

        # if you're annoyed at having to type "nohup" to prevent
        # programs from closing when you close the shell window
        shopt -u huponexit

<comment><USER9> Right, it definitely would break a lot of existing scripts, so I understand why its not a default. The thing is though, that really proves the argument that some parts of Unix have a bad out of the box user experience! I personally love Unix and find it amazingly powerful, but I've made the same mistakes as everyone and killed entire boxes, and really with some simple UX changes that could be fixed in the bulk of cases.

Edit: I forgot to add, thanks for the detailed answer!

</comment></comment></comment></comment></comment></comment><comment><USER10> I remember this rant! I was chuckling about how superior Tenex (and later TOPS-20) was from UNIX and the article in Datamation really spoke to me. No esc command completion, no typing a '?' and seeing all the possible completions, no ^T to give you an update on what your process was currently doing. UNIX totally sucks at all of that.

Of course once you have trained your fingers you don't think about it any more. I missed that the first time around. This author does too of course, and so did a huge part of the industry. So many things were written with all sorts of discoverable features and helper stuff and the truth was that a lot of them can't get out of your way once your fingers know what to type! You can get so far and then you hit a wall, you have to walk through the "feature" that is no longer useful to you as an experienced user, because there is no way to get rid of it.

That is when you start to appreciate the minimal design. And loathe the very things that this article holds up as grand design truths. That is the secret of the success of the simple shell syntax.

<comment><USER11> One of the features of the command line ftp client is that (most of) its internal commands are full words; but as long as they remain unambiguous, you can abbreviate them as much as you want. Why more systems don't adopt this approach, I don't understand.

<comment><USER10> The down side of this is that later adding a command which forces another letter to be typed breaks previous scripts and finger memory.

<comment><USER11> It's an inconvenience, but it's hardly an exotic situation. If it breaks backwards compatibility just save it for a major version release. It wouldn't even do the wrong thing, just complain about a certain command being ambiguous, and you'd have to fix it.

</comment></comment></comment></comment><comment><USER12> Trivia: _cat_ is actually an abbreviation of _catenate_ , a lesser used (now) synonym for concatenate.

Unix is of course horrible for beginning users but if you think you can do better (as in fixing the problems without doing collateral damage) you are _probably_ wrong.

Another aside: The UNIX Hater's Handbook should be read by every Unix sysadmin and programmer.

<comment><USER13> The problem with the UNIX Hater's Handbook is that it's 10% spot-on observations about real problems with Unix(-type) systems, and 90% pointless whining and regurgitating of ancient tribal positions. Unfortunately a lot of the people posting complaints were playing to the crowd more than anything else.

Great idea for a mailing list ("let off some steam! complain to like-minded souls!"), maybe not such a good idea for a book...

<comment><USER14> The linked article in question is the same thing. The author complains it won't run on his PDP-11.

I beg you, however, to reconsider "not such a good idea for a book." It is a _perfect_ idea for a book. It is precisely the kind of information that we're going to lose when Google shuts down Groups, or when the last fidonet archive goes offline. Books like the Unix Hater's Handbook are the only historical context we have for the rise of UNIX, and the death of TWENEX and the LispM.

</comment></comment></comment><comment> vezzy-fnord cat(1)'s versatility is mostly a side effect of the essential nature of file descriptors, which I believe is good.

Criticisms of command, standard library and FHS naming are evidently quite ancient. I have little sympathy for them, given that other mainstream systems are usually worse. However, one can see GoboLinux and NixOS for alternative takes. I also will grant that creat(2) is embarrassing.

Modern versions of rm(1) (or at least GNU rm and I believe Solaris rm, as well) have a default policy of refusing certain glob patterns without explicit approval so as to prevent user error. I do not favor this much in principle, but this criticism is now dated. That you aren't asked if you're sure every time you do an operation that is potentially dangerous (which can be so many things) can be seen as a good thing.

Configuring your shell isn't particularly elegant, though understanding general distinctions like sessions isn't all that difficult.

ed(1) is seldom used these days, obviously. The functionality of fgrep(1) and egrep(1) have largely been merged into more monolithic grep(1) implementations, though the former two remain as aliases.

Overall, modern Unix-like UIs are actually pretty good as far as these things go. It could be much better, but whenever people try to fix things they're quite ironically met with resistance from people too conformant to the status quo, and the better ways are inevitably relegated to either academic curiosities or cult/heterodox practices that are espoused by a loyal few.

On the other hand, whenever a new solution _does_ make it, it's rarely truly better because it's also based on some paradigm that is relatively well ingrained in the computing popular culture. When someone criticizes the FHS these days, it's almost always a concealed way of saying "Why isn't this like the directory structure of Windows or OS X?", rather than any interest in having the most ergonomic solution.

</comment><comment><USER15> As a cautionary note, this article isn't really about anything people are using today. "Unix" doesn't today mean anything very similar to what it meant in 1981. The Commodore PET, Apple II and MS-DOS 1.10 of that time did not have great user interfaces either. And a lot has happened since then.

</comment><comment><USER16> Unix is the worst operating system. Except for all the others.

<comment><USER17> what is the most effective program for hacking..

</comment></comment><comment><USER18> This reminds me of that great essay by Neal Stephenson called "In the Beginning was the Command Line".[1] In it, he compares Unix to an industrial strength screwdriver called the "Hole Hawg".

"But I never blamed the Hole Hawg; I blamed myself. The Hole Hawg is dangerous because it does exactly what you tell it to. It is not bound by the physical limitations that are inherent in a cheap drill, and neither is it limited by safety interlocks that might be built into a homeowner's product by a liability-conscious manufacturer. The danger lies not in the machine itself but in the user's failure to envision the full consequences of the instructions he gives to it."

[1] [http://www.cryptonomicon.com/command.zip](http://www.cryptonomicon.com/command.zip)

<comment><USER19> Plain text version [http://garote.bdmonkeys.net/commandline/index.html](http://garote.bdmonkeys.net/commandline/index.html)

</comment></comment><comment><USER20> > [Casual users] are apt to expect more intelligence from the system than the > designer knows is there.

A million-fold increase in processing power later, and this is still one of the biggest problems for novice programmers or others just starting to look under the hood.

</comment><comment><USER21> Looks like a predecessor of "The Unix-haters'andbook":

[http://web.mit.edu/~simsong/www/ugh.pdf](http://web.mit.edu/~simsong/www/ugh.pdf)

Actually, I learned a lot about Unix when I read this in the 1980's.

</comment><comment><USER22> The reality is Unix isn't easy to get started in, but there are lots of resources once you know how to find them.

I learned by having a close friend and co-worker guide me through the early stages of using Unix, eventually I knew how to find solutions to my own problems (it was more a matter of where to look and some basic terminology).

The different flavours of Unix make this a bit of a double edge sword in that while solutions are similar on most platforms, finding the location of config files and different ways to install packages is often well explained but not always for the platform you're working with.

</comment><comment><USER12> Contribute to _libexplain_ if you want to help. Created by the late Peter Miller.

[http://libexplain.sourceforge.net/](http://libexplain.sourceforge.net/)

</comment><comment><USER23> And still today cut uses -d for deliminator and awk uses -F (and they better not change this otherwise many of my scripts will break)...

Is there a logic behind how unix utilities' options work? Other than backwards compatibility.

</comment><comment><USER24> Question: If you had to redesign Unix from scratch(ignoring hardware limitations), how would you do it?

Personally, I feel an ELisp like approach would be much better as a way for interacting with computers.

</comment><comment><USER25> I just find it funny that the favicon is the old Sun Microsystems logo.

<comment><USER26> You see quite a few of those around the old corners of the web.

</comment></comment><comment><USER27> $ cp foo /real/long/path/name/to/destination/ /real/long/path/name/to/destination/: no such file or directory

Why doesn't it tell me which component was wrong?

<comment><USER28> What version of cp is this?

Because I get this:

        $ cp foo /real/long/path/name/to/destination/ /real/long/path/name/to/destination/
        cp: target '/real/long/path/name/to/destination/' is not a directory

With this version:

        $ cp --version
        cp (GNU coreutils) 8.21
        ...

<comment><USER29> They complained that it doesn't show

        cp: target '/real/' is not a directory</comment></comment></comment>


Show HN: Wovyn, physical world sensors for developers - <AUTHOR> http://www.kickstarter.com/projects/1004464718/wovyn-weaving-your-internet-of-things/

<comment><USER2> Oh, hai :)

After thinking about home automation on an on-and-off basis for several years, I have concluded that the only thing that's needed is automation of electrical sockets. Being able to flip a physical switch and/or check its current state from an iPhone covers good 90% of automation needs. The 9.9% is a thermostat, a temperature sensor and a flood sensor for basement. The remaining 0.1% is exotic stuff to measure the magnetic field flow and a wind speed in a bathroom.

And I am convinced that the first company to produce a no-nonsense WiFi- enabled drop-in replacements for conventional wall switches, junction boxes and sockets will wipe the competition clean.

Ahem... now, back to your regular programming of raising $1M off geeks who get all excited about a random sensor having its own Twitter feed :)

<comment><USER3> Getting an SMS if one of my doors opened during the day might be nice.

Drop in on light switches would be huge... But how do you manage drop in? If the consumer has to actually replace the switch with a "smart" switch, that's DOA (requires wiring, messing with the breaker box, etc).

<comment><USER2> > _Getting an SMS if one of my doors opened during the day might be nice._

And what will you do in response? :)

> _that's DOA_

I don't know what DOA is, but replacing a light switch is the same whether it comes from the Home Depot or from a home automation start-up.

<comment><USER3> If I got an SMS that my front door was opened in the middle of the day, I'd call my wife to see if she went home early. If she didn't, I'd call my neighbors and/or the cops.

My point on light switches is that (unlike outlets, which could just have a pass-through unit) they require someone actually un-attach and re-attach wires, which many/most home owners aren't super comfortable with. Even if they are, it's a meaningful time investment in comparison.

</comment></comment></comment></comment><comment><USER4> How are these little startups dealing with the FCC regulation of consumer products that are classified "intentional radiators"? I'd really like to get back into this so this is a question I really would like to find an answer to.

The last time I looked into adding wireless to a device we were building, I was advised that any little nit that burps a frequency above 9Khz intentionally should expect an 8 week $30,000 trip through independent testing and regulation purgatory to get an FCC ID # and permission to sell to the general public. Not doing so and selling anyway was serious federal crime territory.

Granted this was years ago, but nowadays it seems that every other technical kickstarter is a whole bag full of different (which would be different models) "ninja boxes"(1) that tweet wireless data. How are they clearing (or sidestepping) this regulatory hurdle?

(1) A real product, virtually identical [http://www.kickstarter.com/projects/ninja/ninja-blocks- conne...](http://www.kickstarter.com/projects/ninja/ninja-blocks-connect-your- world-with-the-web). Funded huge.

<comment><USER5> The easiest way to do this is to utilize RF modules that have already been certified ... so then you don't have to go through that part. :-)

<comment><USER4> Thanks. That's a good answer. I don't think anything like this was cost effective in the early 2000's.

A quick google turned up this: [http://search.digikey.com/us/en/products/MRF24J40MA-I%2FRM/M...](http://search.digikey.com/us/en/products/MRF24J40MA-I%2FRM/MRF24J40MA-I%2FRM- ND/1867972)

A module from Microchip that looks relatively easy for someone who already monkeys with micros to add low speed wireless to a project for about $8/unit. Very Nice.

I am inspired.

</comment></comment></comment><comment> X-Istence This reminds me of another Kickstarter that has already come and gone and are now in production Twine:

[http://www.kickstarter.com/projects/supermechanical/twine- li...](http://www.kickstarter.com/projects/supermechanical/twine-listen-to- your-world-talk-to-the-internet)

<comment><USER6> I'm sure I've seen 5 or 6 of essentially this same thing on kickstarter over the last couple weeks. It seems to be a popular idea, but until the price drops enough for them to be disposable I don't really see the point.

</comment></comment><comment><USER7> I actually work as a programmer for home automation gear. You'd be surprised the extent to which (non-geeky) people want to control their homes. You'd also be surprised at the crazy number of automation startups.

This one looks pretty interesting, but so few actually go anywhere at all.

</comment><comment><USER8> As someone already mentioned here, these guys are just reselling someone else's sensor ..

I know this because I'm building something as well with the exact same one! Here's a pic of mine and theirs side by side: [http://desmond.imageshack.us/Himg37/scaled.php?server=37&...](http://desmond.imageshack.us/Himg37/scaled.php?server=37&filename=wovyn.png&res=landing)

<comment><USER4> "We also have our board designs complete, and have already been through several initial board revisions. Once funded we'll submit our boards to production..."

They claim to have some board designs of their own (I guess in addition to the off the shelf sensors). They should emphasize what they're bringing to the table that's new and exciting and not spend quite so much time describing the hardware you can already buy elsewhere.

<comment><USER5> We _do_ have our own boards in our gateways. Yes, in our initial platform release we are in OEM partnerships with several companies - one of them Monnit for the sensor modules.

Although you can go purchase the Monnit sensors themselves, our IP is in the multiprotocol sensor/control gateway/router technology, and eliminating the need for software developers to understand the lower levels of hardware operation.

</comment></comment></comment><comment><USER9> I love tech as much as the next person but I think the Internet of Things is just going too far. I've read tech news on a daily basis for years and years and I find it all really interesting, to a point, and that point is coming.

I don't like GPS, ebooks, smartphones or even video games, though I love a good Apple laptop and I love keeping up with the news. The fact that I even stopped learning my friend's phone numbers by heart was the tipping point. A seemingly small change, sure, but it reflects a wider tendency. We are slowly replacing our memory with computer memory. There have been articles, books and many comments on this effect but I get the feeling that 'new and shiny' is too attractive to most and I worry about there being no choice in the near future. I hope the losing side, in the end, is not the same side that, from the start, yearned for everything to be 'smart'.

</comment><comment><USER10> How are these sensors different from these ones on this site: <http://www.monnit.com/products/> I think is the same amount of money and I can get them faster.

<comment><USER5> Monnit is our first OEM partner on the sensors, but our core focus in the sensor/control integration aspect. If you want to do your own low-level development for these specific sensors for a vertical solution, you could. We're providing a much broader solution and doing a lot of the software implementation work for you.

As for the ship date, Kickstarter is working hard to ensure that we give dates (that we are pushing to beat) that are realistic and do not slip like some projects have.

</comment></comment><comment><USER11> Interesting. Looks similar to the (successfully Kickstarter-funded) Ninja Blocks: <http://ninjablocks.com/blocks/>

</comment><comment><USER12> Is there no communication between all the individuals working on the 'internet of things' ?

I mean this hardly is an exotic problem and you'd be wise to use standards.

<comment><USER5> This is _exactly_ what we are doing with Wovyn. The issue is that there are numerous standards being used, and we're implementing a wide range of protocols to support the key platforms people are wanting to integrate with. This is exactly the space our IP exists in.

</comment></comment><comment><USER13> This is really cool. I'll definitely be chipping in. A world of streaming data is a world full of fun data analysis!

</comment><comment><USER14> That's extremely cool. And also extremely creepy :-)

</comment><comment><USER15> How is this different/better than Arduino + xBee?</comment>


Announcing artichio, the safe collaborative platform for busy researchers - <AUTHOR> https://artich.io/?pk_campaign=hn-wd-20151007 <comment><USER2> Awesome!</comment>


Telemarketing call from the future - <AUTHOR> http://www.theatlantic.com/technology/archive/2013/12/the-only-thing-weirder-than-a-telemarketing-robot/282282/

<comment><USER2> Gotta wonder how hard it is for a robot to 'translate' an offshore worker's speech in real time into a sexy female of the target's culture/region/ethnicity. Probably too laggy LOL.</comment>


Korea jury reaches split decision, Apple guilty of infringing 2 Samsung patents - <AUTHOR> http://thenextweb.com/apple/2012/08/24/samsung-scores-victory-south-korea-court-rules-apple-infringed-patents/

<comment><USER2> Curious that they decide this now, near the time of the verdict for the US thing. The way human psychology works, I think this will sway jurors against Samsung, because they don't like dictations by obscure remote countries.

<comment><USER3> So South Korea is an "obscure remote country?" Wow.

<comment><USER2> As Nirvana says, this was meant as figurative for how I imagine our brains will pick this up. Basically "who are these people that they want to tell us the law?".

</comment></comment></comment><comment><USER4> Should have ruled that each CEO gets to kick the other in the 'nards, alternating until they quit this nonsense.

Oh, well. There still hope the US jury found the 'nard kicking check box on page 256 of the jury verdit form.

</comment><comment><USER5> The very idea that you can patent 'Bounce back' tells me that the patent system is broken.

<comment><USER6> Why ? It is distinctive, unique and definitely non-intuitive. We have had scrollable lists on the desktop for decades and not once has anyone designed the entire scrollview bounce back when you reached the top/bottom.

It's also not the only way to implement this concept as the newer Samsungs, LGs and HTCs all have their own version of it.

<comment><USER7> 1\. The desktop isn't the same. Bouncing is helpful to combat overscrolling, which isn't a problem on the desktop. That's why you haven't seen it. (On a desktop you have to actually click the scrollbar, or use your finger on the mousewheel - both of which make it pretty obvious that you've reached the limit of the container).

2\. Real world things bounce. Copying the way something works in the real world and emulating that in software and sticking an Apple logo on it is not inventing something. That's just... building things.

3\. I don't mean to misrepresent the first part of your argument, but "it's a good idea" doesn't cut it for patenting consumer software / hardware. There are real criteria (mentioned by others) that this doesn't meet.

Changing topic slightly, how is a jury supposed to decide "non obvious to a person skilled in the art", anyway? Does the jury consist only of hardware engineers? Because that would be the only way it would be fair. I can no more wonder what would be obvious or not to a doctor, teacher, lawyer, fireman etc. as they could wonder what would be obvious to an engineer.

<comment><USER8> I downvoted you, and so I feel compelled to explain.

To your first point: On the desktop there are three ways to scroll: the scrollbar, the mousewheel, the trackpad. Of those three, only the scrollbar makes it obvious when you've reached the end of a document. Also, it's not all that different – Apple has brought the same bounce-back behavior to the desktop when scrolling with a trackpad.

To your second point: _Some_ real world things bounce. Balls bounce, and rubber bands do in a sense too. Documents don't. They aren't emulating real- world behavior at all.

Whether the patents are good/valid is up to a whole other set of (apparently very arbitrary) rules. But the points you make to refute taligent's are very weak.

</comment></comment></comment></comment><comment><USER9> The article says a three-judge panel ruled on the decision, not a jury.

</comment><comment><USER10> Looks like Apple's monopoly in Korea is coming to an end. Samsung will be thrilled.

<comment><USER11> _What?_ Apple's monopoly in Korea? What on earth are you talking about?

<comment><USER10> _sigh_

</comment></comment></comment><comment><USER6> It does appear that the patents that Apple is guilty of infringing are actually standards essential (FRAND) which does not bode well for anyone.

<comment><USER12> Of course FRAND doesn't mean you can use patents without a license, it means that they have to be offered for licensing under FRAND terms. Presumably you are supposed to go to court if you believe you aren't being offered FRAND terms, Apple just went ahead with no licence at all.

<comment><USER13> The chips that used the patents were licensed.</comment></comment></comment>


Analyse Asia 31: The Asymco Trilogy Wit Horace Dediu Part 1 - <AUTHOR> http://analyse.asia/2015/05/19/episode-31-the-asymco-trilogy-with-horace-dediu-part-1-new-market-disruption/ <comment><AUTHOR> Synopsis: Horace Dediu, current fellow of the Clayton Christensen Institute and founder of Asymco.com joined us for an epic and insightful discussion focusing on few key interesting topics: (a) new market disruption theories, (b) Apple in China and the luxury market and (c) the Japanese automotive industry and how it shapes up against disruption from Tesla, Uber and Apple. In the first of the trilogy, Horace discussed the origins of Asymco.com and also why he has used Apple as the lens to understand innovation and technology disruption. We also traced back to other Apple-like companies in the past such as Sony in Asia, and look at how Apple and Pixar has displayed a different kind of "DNA" against innovative companies in the past. Last but not least, we discussed the evolution and future of Google and where it might lead them to.</comment>


Show HN: Pull-to-action gestures for angular - <AUTHOR> https://github.com/FDIM/ng-pull <comment><AUTHOR> Feedback is more than welcome!</comment>


Ask HN: As a Software Engineer how can I help in colonizing mars? - <AUTHOR> I've always been fascinated with space exploration but have no clue how as a Software Engineer can I contribute to this.<p>I'm not American. <comment><USER2> 1\. Work for SpaceX

2\. Work for NASA

3\. Work for your local space agency or aeronautics concern

4\. Amass a large amount of money through software engineering and donate / invest

5\. Amass a large amount of money through software engineering and create your own colony initiative

<comment><AUTHOR> Working for SpaceX is the dream but I don't have a Green card nor am I in America.

</comment></comment><comment><USER3> There aren't any serious efforts to colonize Mars, and I don't think there's any special need for software developers. Your options to be involved even tangentially are pretty slim. If you want to be associated, your only serious options are a national space agency (NASA, ESA, or one of the few other spacefaring nations), or the few commercial space companies, with SpaceX being the only one that's expressed any interest in Mars.

I've indirectly worked for NASA a few times, through university-run, NASA- funded programs (Mars rovers and orbiters, and some other planetary missions). It's interesting work, and I felt like I was contributing in a small way. I'd encourage anyone with an interest to get involved in that way. I can't say I felt like I was important at all, but it was more rewarding than working on Wall Street (except financially).

<comment><AUTHOR> I should have been clear. I am not overly attached to Mars, I just want to help in space exploration and space colonization seems like a fine idea but again what you suggested are probably the only options.

</comment></comment><comment><USER4> Get involved in the Mars Colony competition 2019 discussed here a few days ago: [https://news.ycombinator.com/item?id=18305464](https://news.ycombinator.com/item?id=18305464)

<comment><AUTHOR> That seems fairly interesting.

</comment></comment><comment><USER5> My question would be...why exactly would you want to help do this? Um, have you not seen what we've done to earth? Why would you want to help spread our human-ness to Mars?

I'm always so confused by people who want us to go to Mars ( _cough_ Elon Musk), like that's suddenly going to make humans not do human ish. Like Mars is going to make us suddenly not racist. Like Mars is suddenly going to make us start giving a damn about our environment and fellow man. It's kind've laughable honestly.

<comment><USER6> I don't think there is a hope in hell that we can achieve it. Just look at how much effort it took to get to the moon, colonising Mars is an infinitely more difficult problem.

<comment><AUTHOR> They were on the moon in 9 years and we have had fifty years since. Peter Thiel, would call the lunar mission a part of our "Deterministic Optimisim". If you assume humans keep progressing,after a certain point we should be able to colonize different plants. Its not about if its about when.

</comment></comment></comment><comment><USER7> I think the most realistic avenue to take would be using your software eng skills to assist interest groups that are focussed on increasing funding for the sciences / space exploration.

I bet they have terrible websites, difficulties getting content to people etc. Also Im sure there are plenty of opportunities to create tools / games that encourage public interest in space exploration.

</comment><comment><USER8> Figure out an unsolved problem required for colonizing mars and work on it. Build a startup, have billions of dollars exit then redirect all your money towards the unsolved problems.

</comment><comment><USER9> Run simulations.

</comment><comment><USER10> Why bother colonizing Mars at all? The place is worse than a dump.

Even the moon would be a better choice, this century at least. The cloud tops of Venus are heavenly, by comparison. Even asteroids have more appeal.

Antarctica or northern Greenland would be overwhelmingly more pleasant than any of those. Likewise the ocean floor, on any continental shelf. Texas.

<comment><USER11> _> Why bother colonizing Mars at all? The place is worse than a dump._

Well, to play devil's advocate, if you know that there's likely to be a WWIII (or other catastrophe) that wipes out all life, establishing a sustaining base on Mars is the best way to ensure the return of human civilization.[1]

[1] The whole talk is worth a listen, but he talks specifically about this starting at 7:20: [https://youtu.be/B-Osn1gMNtw](https://youtu.be/B-Osn1gMNtw)

<comment><USER12> If a WWIII were to happen would we want to ensure the return of human civilization?</comment></comment></comment>


FuXi: Becoming a Full-fledged Logical Reasoning System - <AUTHOR> http://copia.ogbuji.net/blog/2007-09-09/fuxi-becoming-full-logical-reasoning-system

<comment><USER2> I'd rather use prolog.</comment>


Some Crows Hit on Dead Companions - <AUTHOR> https://www.scientificamerican.com/podcast/episode/some-crows-hit-on-dead-companions/ <comment><USER2> There's no business like crow business</comment>


15 Quick Changes That Add Hours of Battery Life to Your Mac - <AUTHOR> https://medium.com/@coolant/15-quick-changes-that-add-hours-of-battery-life-to-your-mac-9089c325c1f7 <comment><USER2> Not really new things, I think I get a longer battery life when I avoid scrolling with the trackpad (you can see a higher cpu usage in the activity monitor when scrolling) but to be honest I never really measured it scientifically.</comment>


Experiment HN: If you end up with anything interesting, post the link - <AUTHOR> http://en.wikipedia.org/wiki/Special:Random <comment><USER2> [http://en.wikipedia.org/wiki/United_States_v._11_1/4_Dozen_P...](http://en.wikipedia.org/wiki/United_States_v._11_1/4_Dozen_Packages_of_Articles_Labeled_in_Part_Mrs._Moffat%E2%80%99s_Shoo- Fly_Powders_for_Drunkenness)

<comment><USER3> This makes me wonder what the longest Wikipedia article title is...

<comment><USER4> [http://en.wikipedia.org/wiki/Wikipedia:Wikipedia_records#Art...](http://en.wikipedia.org/wiki/Wikipedia:Wikipedia_records#Article_with_longest_title)

</comment></comment></comment><comment><USER5> [http://en.wikipedia.org/wiki/Nitinol_60](http://en.wikipedia.org/wiki/Nitinol_60)

"NiTiNOL 60, or 60 NiTiNOL, is a Nickel Titanium alloy (nominally Ni-40wt% Ti) discovered in the late 1950s by the U. S. Naval Ordnance Laboratory (hence the "NOL" portion of the name NiTiNOL). Depending upon the heat treat history, 60 NiTiNOL has the ability to exhibit either superelastic properties in the hardened state or shape memory characteristics in the softened state."

</comment><comment><USER6> Wow, what are the chances?

[http://en.wikipedia.org/wiki/Hacker_News](http://en.wikipedia.org/wiki/Hacker_News)

<comment><USER7> I'd say 1 in 4,515,321 [0]

[0] [http://en.wikipedia.org/wiki/Wikipedia:Size_of_Wikipedia](http://en.wikipedia.org/wiki/Wikipedia:Size_of_Wikipedia)

<comment><USER8> Increased by a factor because many of us clicked the Random link.

<comment><USER9> Or they could have cheated.

</comment></comment></comment></comment><comment><USER10> I learned not a whole lot happened in Spain in the year 2000.

[http://en.wikipedia.org/wiki/2000_in_Spain](http://en.wikipedia.org/wiki/2000_in_Spain)

</comment><comment><USER11> What do you think is the world's most valuable company?

[http://en.wikipedia.org/wiki/Saudi_Aramco](http://en.wikipedia.org/wiki/Saudi_Aramco)

<comment><USER12> Is Saudi Aramco even a company? What defines and separates companies from governments at that point?

<comment><USER13> It is unclear in that article where the Saudi Arabian government paid a fair market value in 1980 for ownership of the rest of the company?

</comment></comment></comment><comment><USER14> See also: [https://en.wikipedia.org/wiki/Special:RandomInCategory/Good_...](https://en.wikipedia.org/wiki/Special:RandomInCategory/Good_articles)

</comment><comment><USER15> [http://en.wikipedia.org/wiki/Antimony](http://en.wikipedia.org/wiki/Antimony)

Reportedly we are going to run out as early as 2020, definitely before 2030.

<comment><USER16> That reminds me of this timeline on when we're going to exhaust certain natural resources (which has antimony running out at 2020):

[http://www.bbc.com/future/story/20120618-global-resources- st...](http://www.bbc.com/future/story/20120618-global-resources-stock-check)

A bit of a downer, but interesting to think about.

<comment><USER17> Why all the hubbub about rain forests then?? Running out of phosphorus would be scary!

<comment><USER18> Denial.

Breaking bad news gently.

"Save the rain forests" has (for most first-world residents not presently part of #OccupyRainForest) a concerned-but-distant feel about it. It raises consciousness without doing too much to cause mental anguish.

Spend some time thinking about how things can fail (not uncommon for tech types, particularly on the ops side), and you start realizing there are a large number of paths to that destination. Some more probable than others.

For complex systems in general, the problem isn't the stuff you've got lots of -- yes, you can fit the human population into the state of Texas with a reasonable amount of breathing space (about 1025 ft^2 -- 32 feet square) -- but what _constrains_ you -- Leibig's Law of the Minimum:

[https://en.wikipedia.org/wiki/Liebig%27s_law_of_the_minimum](https://en.wikipedia.org/wiki/Liebig%27s_law_of_the_minimum)

Turns out there are a lot of things humans (and civilization) depend on which are in fairly short order: energy, environmental sink capacity, topsoil, phosphorus, freshwater, and a whole slew of critical industrial minerals for starters.

And it's kind of a downer to think about it.

But ignoring problems doesn't make them go away.

How close is the tipping point? Good question.

I've been playing with some geometric grown and consumption calculations:

[http://consumptiongrowth101.com/RunningTheNumbers.pdf](http://consumptiongrowth101.com/RunningTheNumbers.pdf)

Turns out that if you take the numbers for oil consumption from BP's Annual Review for 2013 and plug them in, oil at present reserves, rates of growth, and consumption, runs out cold in 2048. What that _actually_ means is that the rate of delivery is going to start getting choked much sooner, and it's peaked as of 2005 with a bit of a bumpy plateau since. Oil fuels 95% of all transporation, which in Richard Heinberg's eloquent turn of phrase is the heart of commerce.

I could go on about oil exploration capex (Steve Kopits), fracking well depletion rates, and a slew of other stuff, but you probably don't want to hear about it.

You're welcome to visit [http://reddit.com/r/dredmorbius](http://reddit.com/r/dredmorbius) if you like though.

</comment></comment></comment></comment><comment><USER19> [http://en.wikipedia.org/wiki/Emirates_Feline_Federation](http://en.wikipedia.org/wiki/Emirates_Feline_Federation)

</comment><comment><USER20> [http://en.wikipedia.org/wiki/Erin_Hoffman](http://en.wikipedia.org/wiki/Erin_Hoffman)

</comment><comment><USER21> We have came a long way when it comes to the chemicals we spray on plants to keep the bugs at bay.

This quite toxic mixture is said "to have burned the trees and the grass around the trees":

[http://en.wikipedia.org/wiki/Paris_Green](http://en.wikipedia.org/wiki/Paris_Green)

Then, to a less toxic substance, with lead and arsenic in it:

[http://en.wikipedia.org/wiki/Lead_hydrogen_arsenate](http://en.wikipedia.org/wiki/Lead_hydrogen_arsenate)

Can you imagine having an apple sprayed with anything more deadly?

Well, we moved onto DDT...

Sadly my 'Wikipedia' history was mostly littered with things I had looked up as a result of something posted on HN. The only other stand out entry was the page regarding 'G G Allin' \- definitely interesting but totally not HN!!!

</comment><comment><USER22> [http://en.wikipedia.org/wiki/Hip_and_buttock_padding](http://en.wikipedia.org/wiki/Hip_and_buttock_padding)

I did not know that.

<comment><USER23> > It is used to increase the apparent size of the hips and buttocks to > resemble those of a female. The padding is intended to improve the person's > chance of passing as female by altering their apparent waist-hip ratio and > shoulder-hip ratio.

</comment></comment><comment><USER24> [https://en.wikipedia.org/wiki/Ringhals_Nuclear_Power_Plant](https://en.wikipedia.org/wiki/Ringhals_Nuclear_Power_Plant)

Huh, apparently this plant generates 1/5 of the power of Sweden. I wonder what happens when such an important plant gets shut down temporarily? What would happen to the power infrastructure of the country if this plant melted down, is there some sort of redundancy? I know nothing about Sweden's electricity infrastructure, but would love to read more about it. Anybody got any links or knowledge?

I think this sort of post is perfect for HN. I hope the special:random page becomes a weekly occurrence and promotes a lot of wonderful discussion.

<comment><USER25> I believe that Europe has a fairly interconnected grid, [http://en.wikipedia.org/wiki/Synchronous_grid_of_Continental...](http://en.wikipedia.org/wiki/Synchronous_grid_of_Continental_Europe) Also, although the plant is 20% of the energy generated in Switzerland, it is not necessarily 20% of the power generation capacity, and is most likely much less than 20% of the generation capacity of Switzerland. Generation Capacity being the amount of KW that can be generated at a time.

<comment><USER26> [http://www.swedennotswitzerland.com/](http://www.swedennotswitzerland.com/)

</comment></comment></comment><comment><USER27> Everything on Wikipedia is interesting to someone... what I'm interested in the most right now is what the purpose of this "experiment" was and how it ended up infiltrating the front page.

Instructions unclear: post the link to comments or as a new link?

</comment><comment><USER28> [http://en.wikipedia.org/wiki/Davide_Cesare](http://en.wikipedia.org/wiki/Davide_Cesare)

"Davide Cesare, also known as Dax (1977 - March 16, 2003) was an Italian anti- fascist activist from Rozzano (Milano), who was stabbed to death by two far- right activists in Milan, the night of March 16, 2003. Cesare was brought to the hospital but died in the ambulance. Immediately after his death, members of his group tried to enter the hospital but were blocked by the police. This resulted in new riots with several people being injured, damage to police cars, and the emergency department suspending all activities for the whole night."

</comment><comment><USER29> [https://en.wikipedia.org/wiki/Bedug](https://en.wikipedia.org/wiki/Bedug)

It's a large drum suspended from a rack and played with a padded mallet, used in gamelan music (see photo).

</comment><comment><USER3> WW1 flying ace, Oxford Ph.D, author and professor of medieval history

[http://en.wikipedia.org/wiki/Sydney_MacGillvary_Brown](http://en.wikipedia.org/wiki/Sydney_MacGillvary_Brown)

<comment><USER12> Interesting that he was American but served in the RFC (predecessor to the RAF). I didn't know that you could do that. It seems that back then nationality was a looser concept? We didn't yet have the closed border regime that we have now across the first world. But there had to be limits, especially given the war. Inquiring minds want to know...

<comment><USER30> i've heard of many the european that served in another european army. maybe it's just the u.s. that's missing out.

</comment></comment></comment><comment><USER28> [http://en.wikipedia.org/wiki/Quantum_Care_Limited](http://en.wikipedia.org/wiki/Quantum_Care_Limited)

No, not as interesting as the "Quantum" may lead you to think...

"Quantum Care Limited is a company based in Welwyn Garden City, England, that runs both residential and nursing care homes (see residential care home and nursing care home). The company's head office is 4 Silver Court, Watchmead, Welwyn Garden City, Hertfordshire, England AL7 1TS. Quantum Care runs twenty- eight care homes, all but two in Hertfordshire."

</comment><comment><USER31> [http://en.wikipedia.org/wiki/Victor_Amadeus_of_Anhalt- Bernbu...](http://en.wikipedia.org/wiki/Victor_Amadeus_of_Anhalt-Bernburg- Schaumburg-Hoym)

Victor Amadeus of Anhalt-Bernburg-Schaumburg-Hoym (Schaumburg, 21 May 1744 – 2 May 1790), was a German prince of the House of Ascania from the Anhalt- Bernburg branch through the sub-branch of Anhalt-Bernburg-Schaumburg-Hoym and a Russian General under the service of Empress Catherine II the Great.

</comment><comment><USER32> [http://en.wikipedia.org/wiki/Varied_carpet_beetle](http://en.wikipedia.org/wiki/Varied_carpet_beetle)

Insect that can damage insect collections.

</comment><comment><USER33> [http://en.wikipedia.org/wiki/Office_of_Censorship](http://en.wikipedia.org/wiki/Office_of_Censorship)

</comment><comment><USER34> [http://en.wikipedia.org/wiki/Sikhs_in_World_Wars](http://en.wikipedia.org/wiki/Sikhs_in_World_Wars)

</comment><comment><USER35> [http://en.wikipedia.org/wiki/Heptadecagon](http://en.wikipedia.org/wiki/Heptadecagon)

check out the animation

</comment><comment><USER9> Very first thing I got is somewhat interesting: [https://en.wikipedia.org/wiki/Avoidance_response](https://en.wikipedia.org/wiki/Avoidance_response)

Most interesting: [https://en.wikipedia.org/wiki/1934_in_organized_crime](https://en.wikipedia.org/wiki/1934_in_organized_crime)

</comment><comment><USER36> [http://en.wikipedia.org/wiki/Sabbir_Rahman](http://en.wikipedia.org/wiki/Sabbir_Rahman)

I got both the smallest Wikipedia page I've ever seen, and the one with worst "words I understand" to "words that make me go 'huh?'" ratio I've come across.

</comment><comment><USER37> [http://en.wikipedia.org/wiki/Chicle](http://en.wikipedia.org/wiki/Chicle)

The only US company to still make gum using chicle is [http://www.gleegum.com/](http://www.gleegum.com/), most now use a cheaper synthetic rubber substitute.

</comment><comment><USER38> I'd say this one's kind of interesting by being arguably the most boring thing I could imagine: [http://en.wikipedia.org/wiki/Stacie_Orrico_discography](http://en.wikipedia.org/wiki/Stacie_Orrico_discography)

</comment><comment><USER39> Are we crowdsourcing boredom now?

<comment><USER40> Isn't that what Reddit is for?

<comment><USER41> [http://www.reddit.com/r/random/](http://www.reddit.com/r/random/)

</comment></comment></comment><comment><USER42> [https://en.wikipedia.org/wiki/S%C3%BCnd%C3%BC,_Absheron](https://en.wikipedia.org/wiki/S%C3%BCnd%C3%BC,_Absheron)

Only interesting in how uninteresting it is. Only one true sentence on the page.

</comment><comment><USER43> [https://en.wikipedia.org/wiki/Specific_leaf_area](https://en.wikipedia.org/wiki/Specific_leaf_area)

"Specific leaf area is defined as the ratio of leaf area to dry mass."

</comment><comment><USER44> Here's a curious one: [https://en.wikipedia.org/wiki/Cooking_with_alcohol](https://en.wikipedia.org/wiki/Cooking_with_alcohol)

</comment><comment><USER45> [http://en.wikipedia.org/wiki/Luther_Blissett_%28nom_de_plume...](http://en.wikipedia.org/wiki/Luther_Blissett_%28nom_de_plume%29)

</comment><comment><USER46> [http://en.wikipedia.org/wiki/American_Ride_(Willie_Nile_albu...](http://en.wikipedia.org/wiki/American_Ride_\(Willie_Nile_album\))

</comment><comment><USER47> [http://en.wikipedia.org/wiki/Roeweriella](http://en.wikipedia.org/wiki/Roeweriella)

Interesting part is me being from Bosnia & Herzegovina...

</comment><comment><USER48> First click was very interesting: [http://en.wikipedia.org/wiki/John_Wallis](http://en.wikipedia.org/wiki/John_Wallis)

</comment><comment><USER47> [http://en.wikipedia.org/wiki/Longitude_of_vernal_equinox](http://en.wikipedia.org/wiki/Longitude_of_vernal_equinox)

</comment><comment><USER49> [http://en.wikipedia.org/wiki/Great_Hippocampus_Question](http://en.wikipedia.org/wiki/Great_Hippocampus_Question)

</comment><comment><USER50> Please re-title this post as "Eygurande-et-Gardedeuil", as per the HN guidelines (non-editorialized titles, taken from the linked content itself).

<comment><USER51> So you got [http://en.wikipedia.org/wiki/Eygurande-et- Gardedeuil](http://en.wikipedia.org/wiki/Eygurande-et-Gardedeuil) as the random link huh ?

</comment></comment><comment><USER52> [http://en.wikipedia.org/wiki/Paraliparis_membranaceus](http://en.wikipedia.org/wiki/Paraliparis_membranaceus)

</comment><comment><USER53> [http://en.wikipedia.org/wiki/Art_of_Disney_Animation](http://en.wikipedia.org/wiki/Art_of_Disney_Animation)

</comment><comment><USER54> Treasure of Villena.

[http://en.wikipedia.org/wiki/Treasure_of_Villena](http://en.wikipedia.org/wiki/Treasure_of_Villena)

</comment><comment><USER55> [http://en.m.wikipedia.org/wiki/Bonded_warehouse](http://en.m.wikipedia.org/wiki/Bonded_warehouse)

</comment><comment><USER56> [http://en.wikipedia.org/wiki/Iris_recognition](http://en.wikipedia.org/wiki/Iris_recognition)

</comment><comment><USER57> [https://en.wikipedia.org/wiki/Blue_only_mode](https://en.wikipedia.org/wiki/Blue_only_mode)

</comment><comment><USER58> [http://en.wikipedia.org/wiki/The_Fatal_Eggs](http://en.wikipedia.org/wiki/The_Fatal_Eggs)

</comment><comment><USER59> [http://en.wikipedia.org/wiki/Image_Theatre](http://en.wikipedia.org/wiki/Image_Theatre)

</comment><comment><USER60> [https://en.wikipedia.org/wiki/2010_TK7](https://en.wikipedia.org/wiki/2010_TK7)

</comment><comment><USER61> [http://en.wikipedia.org/wiki/Special:Random](http://en.wikipedia.org/wiki/Special:Random)

Wow!

</comment><comment><USER62> [http://en.wikipedia.org/wiki/LSD_art](http://en.wikipedia.org/wiki/LSD_art)

</comment><comment><USER63> [http://en.wikipedia.org/wiki/IMUSE](http://en.wikipedia.org/wiki/IMUSE)

</comment><comment><USER64> [http://en.wikipedia.org/wiki/Pern](http://en.wikipedia.org/wiki/Pern)

</comment><comment><USER65> An app for that.

[http://studiomarch.com/endless/](http://studiomarch.com/endless/)</comment>


Ask HN: Where do you get your design inspiration? - <AUTHOR>

What blogs, websites, and designers influence your style?  Let's not just limit this to web design but also include mobile, desktop (and maybe even interior?) design.
I'll start it off with the obvious: http://www.smashingmagazine.com
I also love the design of many indie Mac software developers.  ripitapp.com & realmacsoftware.com/littlesnapper are two examples. <comment><USER2> I usually leave LittleSnapper running in the background, and take a screenshot when I come across a design that I like, so my LS library is usually where I go first. The collection is pretty eclectic, so it would be tough to categorize to a specific blog / website / designer. The most recent entry is of the Versions website (www.versionsapp.com) - like Sam, I'm partial to many indie Mac software designs.

I also tend to browse Ffffound.com on a frequent basis.

</comment><comment><USER3> <http://delicious.com/popular/inspiration>

</comment><comment><USER4> I get some inspiration from package design: <http://www.thedieline.com>

</comment><comment> A-Merchant <http://www.viget.com/inspire>

</comment><comment><USER5> <http://commandshift3.com>

</comment><comment><USER6> <http://webcreme.com></comment>


Ask HN: How do you stop people from trying to call you? - <AUTHOR>

I just hate it when people are trying to lure me into giving them a call or skype'ing them. Has anyone figured out a way on how to avoid that?<p>My friends and family are already conditioned to text me in one way or another. But how do you guys do it with people in the typical "calling" age (i.e.30+). For example I am currently sending out PhD proposals and am getting quite frequently from potential advisors a response along a "looks interesting, call me" variation. <comment><USER2> Having launched a company with no voice conversations with developers, everything strictly over skype chat, can empathize. Voice conversations can be time consuming and not properly indexed for future use like email and chat typically is.

That being said, it's a tough challenge to want to change other people. Some strategy I typically go with:

If I feel that the person can digest it and you am in drivers seat (ie. lawyers, vendors) I typically say: "if you think it's necessary we can jump on a phone call but don't want to waste time here, and am looking for your thoughts on x,y,z"

If it's someone that I am wanting something from and they are a high profile individual will go with:

"I know you are extremely busy and last thing I want to do is take to much of it, what I was simply hoping for was a,b,c..."

Some people though, will never be able to break out of voice conversations and if you really want to work with them you will need to sacrifice.

And in some situations voice will bring you additional results you never thought of and will be happy you did so.

<comment><AUTHOR> Great to hear that one can have success without that evil telephone thingy! These are some great suggestions for reframing the situation. Thank you very much and I will most certainly reuse them :)

</comment></comment><comment><USER3> If it's the situation that someone needs something from you, I think you're within your rights to limit the "conversation" to whatever medium you're most comfortable with (e.g. I myself prefer e-mail for most communications). But if it's a situation where you need something from them (e.g. sponsorship from a potential PhD advisor) you may have to just suck it up and place the call.

You don't mention why you're averse to phone calls. If talking on the phone (especially with strangers) makes you anxious, maybe it would help to write down notes in advance about potential topics of conversation, and have those in front of you before you make the call.

<comment><AUTHOR> I never became comfortable talking to people without getting a visual perspective. Whenever I write something, I can put some effort in constructing a narrative and reworking it until I am somewhat okay with it. But I find it incredibly hard to "wing" a conversation without getting any visual feedback. It is less of an issue in these situation where I don't care about the outcomes or if it is just some repetitive thing. But creating a first impression via telephone is just something that I find extremely unsettling.

<comment><USER3> I understand. Best of luck.</comment></comment></comment>


Predict future by running 2.5M correlations in sec with GDELT and BigQuery - <AUTHOR> http://googlecloudplatform.blogspot.com/2014/08/correlating-patterns-of-world-history-with-bigquery.html

<comment><USER2> The title of this submission is misleading and isn't supported by the linked article. No one is suggesting that this work will lead to meaningful predictions. Correlations are not cause-effect relationships.</comment>


Pregnancy Due Date Calculator - <AUTHOR> When is your baby due? How big is your baby this week? Use seotoolsrack.com Pregnancy Due Date Calculator to estimate your baby's due date based on the first day of your last period, the date you conceived and other methods. Your health care provider uses the number of weeks since your last menstrual period to describe how far along you are in your pregnancy. <comment><USER2> A friend of mine once made a competition, where we should guess the due date of his first born (many month before the event). I did the sensible thing and call up the biggest hospital in my country, talked to the head maternity doctor, explained the situation for her and asked what she would guess. She laughed and said the in the 30 years she had the job no one ever asked her this (the competition thing). She said that for since it was going to be a first born, her guess would be 2 weeks after the date my friend was suggested by his doctor. The child was born 1 week before the due date. So she was off by 3 weeks. So not an easy task to make a accurate Due Date Calculator it seems

</comment><comment><AUTHOR> [https://www.seotoolsrack.com/pregnancy-due-date- calculator](https://www.seotoolsrack.com/pregnancy-due-date-calculator)</comment>