What a DEC-20 Cost in 1976 (2007) - <AUTHOR> http://dec20.blogspot.com/2007/11/heres-what-dec-20-cost-in-1976.html <comment><USER2> My first encounter with a DEC-20 was MACLISP for an AI class. Of course, the first thing you write is factorial, but I forgot the termination condition. Before I figured out why it was taking so long and send a brk, my CPU quota for the semester got consumed and TOPS kicked me off and locked me out. Luckily the dept secretary took pity and gave me some more time.

We also had APL for a numerical methods class on that system. Yes, we had some terminals with the special APL symbols; I think they were LA-36's.

[http://www.columbia.edu/cu/computinghistory/la36.html](http://www.columbia.edu/cu/computinghistory/la36.html)

<comment><USER3> Probably where the trick of adding a counter to loops and stuff to ensure termination came from. People going over their hardware budget back in the day.

<comment><USER4> A termination guarantee is still good practice.

<comment><USER3> I agree. Just wondered if that's where it originally came from. Could've been just from formal methods with difficulty of doing termination proofs.

<comment><USER4> My money would be on latency guarantees. If you add up the longest path through all your loops and one of them is a while(1) then you can no longer give any guarantees for any latency at all.

<comment><USER3> Interesting possibility.

</comment></comment></comment></comment></comment></comment><comment><USER5> I'd be interested to see something like this but rather than a straight cost comparison, an analysis of what it got you in the marketplace. If you had this kind of compute power in 1976, what could you do that your competitors could not, and what was the multiplier to the business. With computing ubiquitous now the hardware doesn't always provide you with a significant competitive advantage, but I can imagine in 1976 you could own an industry that way, and $300K may have seemed like a steal.

EDIT: The post might be something like: "Why we bought a DEC for 300K and never thought twice about it"

<comment><USER6> > what could you do that your competitors could not

Input customer orders, schedule production, track inventory, print shipping labels, do accounting, send invoices, and type memos... _all in one integrated system_.

And if you had multiple offices, they could each have one and they could exchange data throughout the day.

It was truly a revolution in productivity.

</comment></comment><comment><USER7> That is about the same price as the VAX 11/780 we bought in 1979 (serial number 13) to run CAD/CAM software. I remember the price was around $350K, which included three RM80 drives, a vacuum column 9-track tape drive and giant battery backup. We added third party memory to bring it up to 4MB and a 40 port Emulux serial interface. It was just a few years later that a 16Mhz i386 was as fast as this system.

<comment><USER8> _It was just a few years later that a 16Mhz i386 was as fast as this system._

Wouldn't that be more like 8 years later? 1986 for the 12MHz release (originally targeted at 16), add at least a year to get up in speed and out in people's hands. And didn't the VAX have a much faster disk system, and few i386's tape backup?

BTW, how reliable were your RM80s?

<comment><USER7> When you're having a good time a "few years" is pretty short. :-)

Our RM80's were trouble free from what I can remember. We had an air conditioned, electrostatic filtered clean room for our systems which also included some PDP11's and PDP11/40's with RL02's and RK07 disk drives. The room had very limited access and you had to wear booties. The only time we lost a drive is when one of the RK07's went crazy, slamming the heads against the hard stops causing the heads to crash onto the disk.

<comment><USER9> The company at which I was working purchased a second hand VAX 11/750 system around 1984 and a Digital engineer came in to help us re-commission it.

Everything went well until the RM05 (256MB) disk pack performed a random-seek confidence test; it was then that we discovered that its feet had not been screwed down to the floor and the whole unit started to breakdance around the computer room like a deranged washing machine. Two of us leapt at the unit and held it down until the test completed.

<comment><USER10> Break dancing humans and RAM. The 80s were awesome.

<comment><USER11> Nope, _Disk_ \- That 256MB was spinning platters. At the time you would kill for 256MB of RAM, I guess ;)

</comment></comment></comment></comment></comment></comment><comment><USER12> There's a quote I heard somewhere: "A given speed of computer is available from Cray in 1980 for $10,000,000, from Sun in 1990 for $100,000, from Dell in 2000 for $1000, and from Oxfam in 2010 for $10."

<comment><USER13> I feel like the thousand dollar Dell was actually profoundly more powerful.

<comment><USER14> Not really. It probably spent most of the CPU cycles waiting for IO and a little less time waiting for memory. Also, its SIMD units were probably limited in comparison with what Cray was doing 20 years prior.

As for the Sun, using SCSI disks and a decent OS more or less compensated for limitations similar to Dell's circa 2000 PC.

</comment></comment></comment><comment><USER15> That price included "Six months on-site resident software specialist"

</comment><comment><USER16> Loved how you could run your business with 2 x 100MB of hard drive space initially. That system though sounds similar to the ones we had at USC in the late 70's early 80's. The student CS program was taught using two of the named "JUGHEAD" and "ARCHIE" with a giant 120 port terminal multiplexer (which was basically a PDP-11/40 running a dedicated instance of RSX-11 doing nothing but connecting individual VT52's and VT100s.

</comment><comment><USER17> 36-bit processor, 25MHz clock, 128K system memory, 100MB drives, air- conditioned room...

Totally killed by a modern $5 Pi Zero.

If you took a Pi back in time no one would know what to do with it. Linux would be recognisable, Ethernet would be recognised by Xerox Parc and a few experts, and only at 10 MB/s - but USB, HDMI, SC cards, the SoC, and the web would all look like advanced alien technology.

<comment><USER18> A classic display of latency vs bandwidth. The DEC box wins on latency but the pi wins on bandwidth, for large enough tasks, anyway.

A 2040 was a PDP-10 with a 30 MHz KL processor running around 30 MIPS and TOPS-20 (the source of the "20" in the name) a quarter century ago.

30e6 * 60 * 24 * 365 * 25 = about 4 e 14 instructions.

I can't get a straight answer but hundreds of MIPS sounds reasonable for a pi zero.

4e14 / 500e6 / 60 / 24 / 365 = about a year and a half

So sometime in 2017 a pi zero would finally catch up to a DECSystem-2040 which had a quarter century head start. Of course the 2040 has been continuously producing intermediate results for the first 25 years of the "race" while the pi output no results at all having not being invented yet. Also after 27 or so years the pi will somewhat surpass the 2040.

Also the IO bandwidth and scalability of old mainframes usually puts newer hardware to shame. "My calculator has more power than a 1960s NASA mainframe that sent men to the moon" "Oh so you're saying you've been to Mars, then?"

On one hand, 4e14 instructions executed would have been enough to run entire civilizations, some years ago. On the other hand, its not enough to boot modern Windows, although despite the difficulty is none the less not accomplishing anything in the real world.

<comment><USER19> I don't think a PDP-10 does all that well on a bandwidth comparison with a modern system, I would expect something like a Cubietruck with SATA and Gigabit Ethernet to win fairly easily.

<comment><USER20> But ... the parent suggests a Pi wins on bandwidth.

<comment><USER9> Did any of the computing magazines of the era feature a free DEC-20 on the cover? Just wondering!

<comment><USER18> Sort of. About 30+ years ago the world was absolutely awash in Compuserve free/demo accounts, included in software boxes and probably magazines. Wish I could find an old 80micro magazine cover on archive.org to document this aspect of the past. People who lived thru it could verify that free compuserve accounts were the AOL floppy/CD of an older era.

Compuserve in say 1983 was a DEC service bureau moonlighting at night as a very expensive per hour super BBS system. Like $5/hr at 300 baud. And yes it was a network of PDP-10s as per the linked article (although I seem to remember KI processors not KL's)

<comment><USER21> 75460,1375

Why did you make me remember that!

We used compuserve to support our (retail, boxed Mac) software. Then we had to expand to AOL to cover "the outsiders". And then... Eternal September.

(Some day, "like us on Facebook" will be as obsolete as "AOL keyword BLAH", which you can still see at the ending credits of movies from the 90s. I don't recall a similar push for compuserve.)

</comment></comment></comment></comment></comment></comment></comment><comment><USER22> I remember that bare-bones Nova-1200 costed exactly 10 times more than Fiat-600 automobile in 1972 (70,000 and 7,000 Finnish markkas (1 Fmk was 3 USdollars) and with heavy import taxation).

I had both some years later. Both equally out-of-date. The car actually fell apart somewhat catastrophically on the road in 1982, because no rust-proofing.

</comment><comment><USER23> A quick search puts 350k in 1976USD at about 1.5m 2015USD.

</comment><comment><USER3> So, they want $300,000+ for a system and only offer a 90-day warranty? That's when you know it's going to be a piece of s __*. Haha.</comment>


It's Not About New Icons: What Jony Ive Needs to Do for Apple's iOS - <AUTHOR> http://www.wired.com/design/2013/05/what-jony-ive-needs-to-do-for-apple/

<comment><USER2> Is amazing how one can whip up article after article quote after quote with no facts</comment>


Hands-on with GitHub's New Text Editor Atom - <AUTHOR> http://scotch.io/bar-talk/hands-on-with-githubs-new-text-editor-atom

<comment><USER2> It looks like a neat editor, but it's a shame it's (as of yet) closed source. Especially in today's world of dozens of useful products springing up every few months and going inactive shortly thereafter. I'm not usually a religious FOSSer, but I think every editor that has gone OSS has benefited immensely from the move.

<comment><USER3> What are your thoughts on something like Sublime Text? That's a product which is highly praised by the community, yet remains closed source.

<comment><USER4> I suspect that, like textmate and unlike vim/emacs, it will be abandoned for the most part.</comment></comment></comment>


Show HN: Codassium - WebRTC-based video chat and code editor for interviews - <AUTHOR> http://codassium.com <comment><USER2> This is very awesome (I was talking with someone the day before last about how something like this should exist).

On a very different note: why is it that the default "tab" in so many of these online editors is just two spaces? It seems to be a thing in many online code based editors, and I don't know why. Is that a common convention for the languages that the authors of these in-browser-editors use? What's the deal? And why can't I change it to four spaces?

<comment><USER3> Well, I'll be that guy then: Why are people not using tabs instead of spaces?

Really: I couldn't care less about how much spaces my team mate is using for a tab. I just know: Indent by tab, and everyone can set their settings on their own and it looks always perfectly indented.

<comment><USER4> Relevant: <http://www.jwz.org/doc/tabs-vs-spaces.html>

tl;dr; Spaces are the correct technical choice due to interop issues with TAB.

<comment><USER5> Interop issues which, in real life, never actually surface as issues for anybody.

I'm personally in the camp that feels that spaces are logically inferior; A tab uses one character to represent some atomic idea that you intend to declare (an indent level). Replicating this intent with sequences of repeated spaces is on par with centering text on a web page by using

             Hello World!

instead of setting the text-align CSS style. (Just as that method prevents the browser from centering the text correctly according to the user's chosen viewport size, so using spaces for indentation prevents an editor from letting a user read code the way they would prefer to.)

Of course, if the project/platform you're working in has an established style guide or convention in place, go with that :)

<comment><USER3> Exactly that is what I think as well.

</comment></comment></comment></comment></comment><comment><USER6> Myself and some friends built a very similar tool during the LAUNCH hackathon. It's a shared code editor with some github integration for saving your work, and webrtc handling the video chat. Check it out, we'd love some feedback. <https://seshcode.com>

</comment><comment><USER7> I am somehow against people expecting me to write syntactical code at job interviews. I prefer to write pseudo code, explain my thought process. Being a guy who deals with various languages throughout the day makes it hard to code everything right when someone looking over my shoulder as I tend to google now and then to get right functions/methods of achieving something. Thats just me I guess.

<comment><USER8> You're not the only one. I've experienced many types of interviewing: skyping, verbally coding, online code editing, in-person whiteboard coding, homework/coding tests, programming language trivia, math brain teasers, etc. The funny thing is that even when getting all of the questions "correct," they haven't ever gotten me closer to a job offer than more traditional methods.

You can tell within the first 10 seconds of your first interaction with a company if they are actually interested in hiring you, or just window shopping. The conversation starts with the HR person/hiring manager talking up their company, asking about your experience and then essentially asking you how soon you can start.

In other words, if someone doesn't already have a good idea that they want to hire you based on your resume and experience, no amount of code circus is going to move the chains forward.

</comment></comment><comment><USER9> This look fantastic. One suggestion I would make is to have a chatbox incase both parties do not have a webcam.

<comment><USER10> Even if you have a webcam a chat is still useful to share links, etc that aren't code. I'm betting a lot of people would use comments in code as an ad- hoc chat.

<comment><AUTHOR> Totally agree with you. Wanted to get this out of the door - otherwise I tend to keep adding "one more feature".

<comment><USER10> You've got something really great so far. I'd start charging immediately :)

<comment><AUTHOR> Thank you! Mind if I emailed you to ask you some questions on that? :)

<comment><USER10> You are more than welcome to (email is my twitter handle in my profile at gmail). However, you should ask them here so everyone can benefit!

</comment></comment></comment></comment></comment></comment><comment><AUTHOR> First Show HN :) Any feedback greatly appreciated :)

<comment><USER11> Really enjoying the concept of this! A few friends of mine and I do JavaScript lessons over Google Hangout right now and this would be a much preferred alternative, although it doesn't seem to allow more than two people's cams at once.

I realize this is for interviews and there'd be no reason to have this unless you were potentially testing multiple candidates at once, but it would also be useful to us if we each had our own code environments that didn't interfere with the master source, but could be public or private to the others in the room. Just an idea. :)

<comment><AUTHOR> I agree with you. A private editor or the ability to have tabs will be useful. The learning part did cross my mind, but I wanted to focus on a specific use- case instead of diluting the message by pitching it as a general purpose tool.

 _although it doesn't seem to allow more than two people's cams at once._

More than 2 people works fine for me. Is anyone else facing this issue?

<comment><USER11> Interesting, I'm not sure what my deal is, maybe it's a firewall here at work. I was able to see the live editing going on in the box but the only cam preview was mine.

<comment><AUTHOR> It might also be because of the pounding that the server is taking currently, though it seems to be holding up fine. :) If you get a chance, please try some time later and let me know if it works then. Thanks.

</comment></comment></comment></comment></comment><comment><USER12> If you could combine this with runnable or something, in order to run tests, that would be great

</comment><comment><USER13> It occurs to me that this could actually be a very handy way to get help from more competent friends as I'm learning to code. I've had offers to review my code, but being able to do it live would be great. Great tool!

</comment><comment><USER14> Love the idea but just tried it with a buddy and we could share text but neither one of us saw the other one. We could however see ourselves.

<comment><AUTHOR> There might still be some quirks/bugs due to stuff like firewalls and anti- virus software. I'm hoping that this becomes more polished in the future versions of Chrome and Firefox.

</comment></comment><comment><USER15> What was used to build this? How are the languages being handled? And open source frameworks. I'm interested in the real time coding.

</comment><comment><USER16> This could also be a cool way to remote pair, no?

</comment><comment><USER17> Nice work Codassium. I helped with Seshcode. It's great to see other people building awesome coder tools too.

<comment><AUTHOR> Thanks :)

</comment></comment><comment><USER18> Anybody know the correct about:config tweaks required to try this in Firefox 20? Or is FF 21 required?

<comment><USER18> FF 21 update hit me and it works now.

</comment></comment><comment><USER19> Very very cool. First feature request: Support for Objective-C syntax highlighting :)

</comment><comment><USER20> Good job. WebRTC ftw. Anyone using it for recruiting?

</comment><comment><USER21> Any chance of PHP syntax highlighting being added?

<comment><AUTHOR> Noted. Will add it, thanks.

</comment></comment><comment><USER22> so is anyone going to attempt an in-browser skype-like clone with webrtc? i might do it if no one else does

</comment><comment><USER23> Nice!

</comment><comment><USER24> awesome!

</comment><comment><USER25> awesome</comment>


Trojan.Skimer.18 infects ATMs - <AUTHOR> http://news.drweb.com/show/?i=4167&lng=en&c=5#.UrC9v9hSLc8.twitter <comment><USER2> I'm still really surprised every time I see a windows-based ATM. Why would a full, general-purpose OS be included in those machines that need to do just under 10 operations?

I know it's easier to deal with it that way, but just to limit the exposed code, it could be based on something much more restricted. If it was small enough, it could even reboot / netboot itself between each operation to prevent any modifications being stored locally.

<comment><USER3> Most of the machines in service were older and running OS/2 which was an awesome system. Some major banks (BoA, Chase, WellsFargo, etc.) ran newer machines that had fancier features like check image recognition. Those meant a move to newer OSes but that was a limited case.

The actual reason OS/2 is gone and all these ATMS are running Windows is because of companies like NCR and Diebold lobbying the government to put new language in the Americans with Disabilities Act [1]. It required every ATM to be capable of text-to-speech translation which the older hardware and OS/2 systems were not capable of (most of the machines I was pulling had 133Mhz processors and less than 64MB of RAM). This meant 1) new hardware sales, 2) new software sales, and 3) selling custom ad campaigns to run on the shiny new color screens and new hardware.

The industry had been stagnant for awhile in hardware and software sales, the deadline of March 15, 2012 was a great shot in the arm for NCR and Diebold. Lest you think this really was about helping people with disabilities, the vast majority of ATMs that I 'upgraded' were drive-through units sitting on concrete pallets in bank parking lots too high or too inconveniently placed for anyone to use unless they were driving in a car. I did get some very positive feedback from the blind and their friends(who knew the IRS employs so many blind folk?) when I installed some of the walk-up units, but the large majority were drive-throughs.

[1] - [http://www.americanbanker.com/magazine/121_10/atm- accessibil...](http://www.americanbanker.com/magazine/121_10/atm- accessibility-ada-compliance-1042410-1.html)

<comment><USER4> Thank you for eliminating the last remnants of hope I had for our system of government. I know lots of people say that nothing is done without a monetary reason, but I still held out hope that at least some legislation was created with entirely benevolent reasons.

Bah.

<comment><USER5> Welcome to my world :)

I thought in the US, things might work differently though, but it seems just like "the grass is greener on the other side"

</comment></comment></comment></comment><comment><USER3> The screenshot shows APTRA which means this is an NCR machine. I've commented on threads here before about how freaking vulnerable and buggy many of the NCR machines are, since they are essentially running Windows XP and are infrequently manually patched with the monthly fixes. There's only three major lock types for the older machines and the internal cage has several PS/2 and USB drives open. There's a manufacturer admin password (one for APTRA Advance and one for APTRA Edge) that lets you get into XP and then you can do whatever you want.

</comment><comment><USER6> That's an incredibly bad job at blurring the sample. It's both visible through the blur.. and on the text view on the right.

[http://st.drweb.com/static/news/20131216-trojan.skimer.18/1g...](http://st.drweb.com/static/news/20131216-trojan.skimer.18/1g.png)

<comment><USER7> Text view in code page 866:

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

<comment><USER6> I'd completely forgotten the name of it, thanks!

</comment></comment></comment><comment><USER8> Many countries with EMV standards implemented (Canada, European countries, Japan, etc.) will use chip over the mag stripe on the back. When this article refers to Track 2 data, it is referring to the magnetic stripe.

Of course, if your card has a mag stripe, it is still susceptible to this attack if you use it in an ATM which reads the track data and has the virus.

<comment><USER9> The malware reaches extremely deep into the ATM software to decrypt the PIN - it could easily also capture the data which the machine got from the chip.

<comment><USER8> You obviously don't understand how chip cards work.

Unlike mag-stripe, data elements are not accessible on the chip. The PIN check is performed on the chip card itself, and a PIN cryptogram returned for use in the online transaction. The PIN does not get decrypted at the ATM.

<comment><USER9> Actually I didn't know the details but had thought that would be the safest method to deal with the PIN. But I assumed you were talking about the equivalent of the "Track 2 data", i.e. issuer ID, account number, etc. Is that also kept away from the ATM?

As for the PIN - if the encryption happens in the chip card, how does it get from the PIN pad to the card in a way that cannot be intercepted?

And finally, what prevents compromised ATM software from displaying "please enter PIN now" while keeping the PIN pad int the direct mode used to enter the amount?

</comment></comment></comment></comment><comment><USER10> Personally, I consider this the real problem 'fire and forget' systems based on large complex code bases. The US Military invested a ton of money in the development of Ada to try to address some common issues (like you can verify the code still meets the specification).

</comment><comment><USER11> Why implement a card skimmer? It 'd be far more profitable to write a program which dumps the whole cash in the ATM upon insertion of a special card... saves the cloning costs.

<comment><USER12> That's an obvious way of stealing money, just by taking the cash. I'm assuming the serial numbers of the money in an ATM is noted, or known by the distributor, so proving a criminal used stolen money after the fact is not too hard to prove.

The operation of this trojan is much more subversive and discreet, whereby it waits and skims card details to be sold on to a third party (assumedly), and is then able to revert the ATM back to a factory state, so it's much more difficult to detect if there's an audit on the machine, or it breaks and sent for repair.

NOTE TO THE NSA/GCHQ: These are educated guesses, I'm not a thief/trojan writer etc

</comment></comment><comment><USER13> How can I tell if an ATM I'm about to use is vulnerable to this?</comment>


Show HN: Datagridxl.js – No-nonsense fast Excel-like data table library - <AUTHOR> https://datagridxl.com <comment><AUTHOR> Hello HN,

I'm Robbert, the creator of DataGridXL.js.

DataGridXL is a free (and commercial) editable data table library written in ES6.

My goal is to develop the most performant & user-friendly spreadsheet-like data table out there:

\- It has zero dependencies. You don't need any framework to use DataGridXL.

\- It is lightweight (~200kb) and easy to use. It does not even require messing with CSS.

\- It has its own Virtual DOM implementation to prevent DOM errors.

\- Developer friendly. Supports all modern web browsers

Please take a look at the performance demo ([https://www.datagridxl.com/demos/one-million- cells](https://www.datagridxl.com/demos/one-million-cells)) to see the difference with other data grids out there. And let us know if you have any suggestions.

Please let me know if you have any suggestions or comments!

<comment><USER2> How did you implement the scrolling such that it feels smooth/fast/native, but scrolls in one row/column steps (so you never see half a row)?

CSS Scroll Snap?

Nicely done.

<comment><AUTHOR> Thanks! I'd to write a proper "How It's Made" article about it in the future, but this is basically how it's done:

There is a blank DOM node "scrollArea" in front of all others that catches the native JS scroll event.

It then converts these scroll offsets (scrollTop and scrollLeft) to cell/viewport coordinates, by default 40px actual pixels per row/column.

So if the scrollArea has a scrollLeft of 40px and a scrollTop of 200px , an underlying DOM node that renders the cell values and column lines, will render at viewport position {x: 1, y: 5}.

The other important part that makes it snappy, is that a viewport of let's say 20 rows by 10 columns does not actually consist of 200 DOM nodes. Only columns are DOM nodes. The values inside a column are made to look like rows by CSS white-space property. So it only updates 10 DOM nodes when scrolling.

<comment><USER3> There is a bug that is caused directly by this whitespace hack. If you copy two lines of text and paste it to one cell, it displays as two cells and shifts the column content below the affected cell (if the affected cell is in the viewport)

<comment><AUTHOR> I am not sure if this is actually a bug, that will probably also happen when pasting those two lines to Excel or G. Sheets. Correct me if I'm wrong.

<comment><USER3> Yes, it is possible to paste cells in excel and shift cells below in Excel. But here the cells are shifted if the corrupted cell is visible and shift back if it's not. Definitely a bug.

<comment><AUTHOR> Ah I think I know what you mean now. I think you mean when you paste multi- line text inside the cell value editor! You're right, thanks for spotting it!

This does not happen when you paste when the editor is not open, am I correct?

<comment><USER3> Yes, exactly.

<comment><AUTHOR> Hi janci, just letting you know that the bug has been fixed. Thank you for spotting it!

The current solution that I came up with: replace \n with Return HTML-entity. Not sure if that is the best solution for you (or anybody else) but at least it prevents the unwanted shift of column contents.

Thanks again!

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER4> Another plug - [https://rowsncolumns.app](https://rowsncolumns.app)

It's a canvas based SpreadSheet. The Grid works with React and Konva - [https://konvajs.org/](https://konvajs.org/)

You can see the demo here - [https://rowsncolumns.app/demo](https://rowsncolumns.app/demo)

And a whole bunch of features and upcoming roadmap - [https://rowsncolumns.app/#features](https://rowsncolumns.app/#features)

We are launching formula support with Web Workers soon.

<comment><USER5> On mobile it _looks_ like a spreadsheet but seems entirely unresponsive to, for example, selecting a cell.

<comment><AUTHOR> For a moment I thought you were talking about DataGridXL, but your comment is on the canvas grid?

I actually made quite an effort to make DGXL work on touch screens. It's not there yet. It's basically read-only on touch for now, but you should have no problem selecting cells and copying values.

<comment><USER6> For me, DGXL on iOS lets me select and scroll beautifully, but I cannot actually edit (I guess because the cells aren't text fields, the device doesn't know to open the on screen keyboard). So it works very well for output but doesn't work for input.

<comment><AUTHOR> You're right, the editor does not open on touch screens in this version.

It's still possible to enable editing on touch screen, but it asks for a custom <input> element on the page that interacts with the grid, using methods setCellValues & getCellValues. It's certainly possible. Will put up a demo for it when I find the time.

<comment><USER6> I just saw you actually do say its readonly in your documentation: [https://www.datagridxl.com/docs/touchscreen- support](https://www.datagridxl.com/docs/touchscreen-support)

That solution would actually work perfectly well for me: tap a cell and an edit widget pops up.

</comment></comment></comment></comment></comment></comment><comment><USER7> How does that compare to [https://github.com/paulhodel/jexcel](https://github.com/paulhodel/jexcel) ?

<comment><USER8> jexcel is great, it has more features (sorting, formulas, colors, etc)... but those same features are not very performant with many (>1000) rows since each cell is a html table cell. datagridxl looks promising if you need to display lots of data. I'm a fan of any open source data grid library so I'm happy both exists.

<comment><USER9> are both open source? click the buy button on datgridxl.js, only 800 euros!!

<comment><USER10> jexcel still maintains an open source community edition [https://github.com/paulhodel/jexcel](https://github.com/paulhodel/jexcel) , no such thing exists for this project.

</comment></comment></comment></comment><comment><USER11> So from what I understand this works by displaying data on a JS canvas. How does that work for accessibility? Do screen-readers read the data as if it was an html table?

<comment><AUTHOR> Hi, it does not use canvas. It uses HTML. Sure, DGXL contains one or two canvas elements, but they're used for measuring strings length and drawing cell background colors.

The actual values are all in HTML. The benefit is that you can use CTRL+F and values are found and selected. You can zoom the page and text will remain crisp.

The values are not in a <table> tag however. <table> values are sorted y,x (rows first, columns second). DGXL sorts values x,y (columns first, rows second). I have to admit that I am not sure what that means for screen readers: I am not an accessibility-expert at this stage. What I do know is that HTML is better than canvas by default in this regard.

<comment><USER12> Unfortunately screen reader support isn't great at the moment, but using HTML instead of canvas is definitely going to make it easier for you to improve. I'd encourage you to download the free NVDA screen reader ([https://www.nvaccess.org/download/](https://www.nvaccess.org/download/)) and compare DataGridXL with Excel, or Google Sheets with screen reader support enabled (Tools > Accessibility settings). Announcing the column, row and cell content as you navigate the sheet with the keyboard would be a great start. Google Sheets does this by updating the content of a visually hidden ARIA live region ([https://developer.mozilla.org/en- US/docs/Web/Accessibility/A...](https://developer.mozilla.org/en- US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions)) as you navigate.

<comment><AUTHOR> That you for this valuable advice! I have to admit that I have never worked on accessibility before (apart from writing meaningful HTML). Will definitely look at improving screen reader support when I get to it.

</comment></comment></comment></comment><comment><USER13> It looks really great and the one million cells demo is impressive, but that price is way out of reach.

<comment><USER14> The price only includes support and the ability to remove branding. You can use it sans source code with branding for free.

</comment></comment><comment><USER15> Looks great. I couldn't see any way to sort by column - is that possible?

<comment><USER16> In the docs they precisely tell that this is not supported [https://www.datagridxl.com/docs/features- limits](https://www.datagridxl.com/docs/features-limits)

<comment><AUTHOR> Hi, you're right. At this time it's not supported, but we're working on it. Probably next week. The other features are still a definite "no" for now :-)

<comment><USER15> Thanks for the update!

<comment><AUTHOR> You're welcome! Did you see the demo? It has sorting now: [https://www.datagridxl.com/demos/sorting- columns](https://www.datagridxl.com/demos/sorting-columns)

<comment><USER15> Yes - that's perfect. So fast and smooth. I have a small side project on the cards that could use this, but unfortunately wouldn't be a paying customer though.

Cheers.

<comment><AUTHOR> That's alright, no worries :-) Curious to know what you'll be making. Feel free to send me us an update at email@example.com

</comment></comment></comment></comment></comment></comment></comment><comment><AUTHOR> Hello everyone,

Not sure if anyone is still reading this thread. Just wanted to express that I am very grateful for all the positive responses that we got in this thread and by e-mail.

Also, good news: We just released a new minor version today that adds the much requested Sort Feature to the grid: [https://www.datagridxl.com/demos/sorting- columns](https://www.datagridxl.com/demos/sorting-columns).

</comment><comment><USER17> Nice. I read a CSV file with one mutli-line column in the last field with no problem, but when I copied the data, refreshed the page, and copied to empty grid, now the multi-line field incorrectly was split to the next line.

<comment><AUTHOR> Hi! Thanks for sharing the issue. Mind sharing the CSV file and steps, so I can attempt to fix the issue? firstname.lastname@example.com.

</comment></comment><comment><USER18> Shameless plug! [https://ellx.io/](https://ellx.io/) is a programmable spreadsheet with extended JavaScript for formulas (plus operator overloading and automatic async resolution)

</comment><comment><USER19> Awesome! Clean design + nice UX. I would have used it in my previous project.

<comment><AUTHOR> Thanks! It would have been a great FIT for your project. Much appreciated Vandermark! ;-)

</comment></comment><comment><USER20> Nice man. Dutch Design.

Can't wait for features / extensions!

<comment><AUTHOR> Thanks! What features would you like to see implemented?

<comment><USER20> Probably a plugin system for datatype => renders/editors. ex: (numbers, datepickers, select, checkboxes, etc.)

<comment><AUTHOR> Ah, that's something I would very much like to implement. Probably only in '21... More pressing stuff first.

Until then, have a look at Jexcel, it implements numerous pickers/editors (not all of them mobile-friendly I believe).

</comment></comment></comment></comment><comment><USER21> Doesn't work for me in chrome.... because it seems to break with Ad Blockers... that could be a real killer for you.

<comment><USER22> I'm not having the same experience (using uBlock Origin)

<comment><USER21> Ok, disabled it and I still get a big blank blob where the grid should be... looks like the js load keeps failing. oh well.

<comment><AUTHOR> Really? What browser + OS are you on?

</comment></comment></comment></comment><comment><USER23> The features of a commercial grid that I'm currently using:

* incremental updates, inserts, deletes

* nested grids

* formula based coloring of cells

* column based filtering

<comment><AUTHOR> Hi. Can you explain what you mean by "incremental updates"?

Regarding other bullet points:

* Nested Grids: no * Formulas: no / not anytime soon * Column based filtering: not on top of the list, but definitely doable.

<comment><USER23> Hi, for an example, check out how the devxtreme datagrid uses a datasource object to manipulate the data in the grid in real time. Which means, instead of loading all the data into the grid before it is rendered at the time of declaration, the data can be appended, updated or deleted as it streams from a backend.

<comment><USER24> My issue with most grids (and charting libraries for that matter) is that the API is push based (ie they all have some kind of API like setData, etc), instead of pull based (where the grid utilizes an adapter model with simple functions like getRowCount, getColumnCount, getData(row, column) and you can build subclasses that adapt to any data model you have). This means that it's really difficult to implement highly performant grids that support changing data, more data than can fit in the current viewport, etc. It also makes it difficult to share large datasets between different views - ie a chart and table both showing the same data, or two tables showing different sections of the same dataset, without multiple copies of the data in memory.

<comment><AUTHOR> Not 100% sure what you mean, but it sounds like a "server-side first" approach (if that word exists). As grid & chart libs are always built by (front-end) Javascript experts, you'll always see a front-end first approach.

However, have a look at this Codepen example: [https://codepen.io/datagridxl/pen/XWXGGGq?editors=0010](https://codepen.io/datagridxl/pen/XWXGGGq?editors=0010). It combines amCharts and DataGridXL. Update any value in the grid and see the chart adjust. Quite snappy right?

</comment></comment></comment></comment></comment><comment><USER25> Beautiful work. Will be using

<comment><AUTHOR> Thanks kevas, I appreciate it!

</comment></comment><comment><USER26> How does this compare to ag-grid?

Https://ag-grid.com

<comment><AUTHOR> Ag-grid has a lot more features. Very mature, big team I'd guess. However, Ag- grid does not offer quick Excel-like editing. If you're looking for this type of editing, don't bet on Ag-grid.

</comment></comment><comment><USER27> Please improve the screen reader support

<comment><AUTHOR> Thanks, I have seen this suggestion a couple of times now in this thread. Will have to study it, as right now I am a non-expert when it comes to screen readers. Will make an effort to seriously improve this aspect!

</comment></comment><comment><USER28> Who are you targeting with 800 euro?

<comment><AUTHOR> Do you think it's too little or too much? This is my first commercial product. I have looked at other professional grids like Handsontable & Ag-Grid and have decided to choose a similar price, just to have some reference.

There will always be people that find it too expensive or that find it too cheap.

Even though the product looks like a simple <table> tag; the reality is that I spent 2 years working on it. (I am almost embarrassed to admit it.)

Let's say an employee of your company (or perhaps yourself) is a much better programmer than myself. He/she could perhaps build a similar data table in perhaps 6 months, including all these features that don't meet the eye: keyboard controls, context menus, touch events, virtual DOM implementation, clipboard support on all browsers and devices...

That would cost an employer perhaps 6 months worth of programmer salary, which is, depending on where you are, at least $10,000+.

Then 800 euros is not such a bad deal, I believe. At the same time, I hope it's affordable for solo makers as well.

How would you price the product?

<comment><USER6> Handsontable has a lot more features, though. Maybe your unique selling points are enough, I don't know, just on paper handsontable appears to provide a lot more for the price. I'm not suggesting you change it, just something to be aware of for your marketing.

For me, personally, handsontable was too expensive too though (I'm just one guy self funding my project) so ended up going with an open source table component instead.

<comment><AUTHOR> It all depends on what somebody is looking for: a sortable data table for presentation, a table (structure) editor, a spreadsheet, a data grid? All these things look very similar, but they require different approaches really.

You'll always lose on one of the other. Ag-Grid and DataTables are perfect for presentation, not so much for Excel-like editing. Handsontable & Jexcel try to implement all features of Excel, at the cost of performance & bugs.

I have to make sure that in my marketing I make very clear that my product won't be able to do X,Y and Z, but it's the best at A,B and C. To prevent disappointed buyers.

I hope I am doing that with my Features & Limits page: [https://www.datagridxl.com/docs/features- limits](https://www.datagridxl.com/docs/features-limits). (Column sorting will be implemented soon by the way. Ignore what the page says.)

I am thinking to add some interactive comparison pages like: DataGridXL vs Handsontable, DataGridXL vs Ag-Grid, DataGridXL vs DataTables, etc... to really show & describe the differences between the products.

Anyway, you're always welcome to use the free version. It only requires that you keep the branding link visible, which might not be too bad for your app

<comment><USER6> > You'll always lose on one of the other.

Absolutely agree and the open source alternatives tend to do one or two things only (while HoT, DGXL etc seem to offer a lot more in a single package), so for me, it came down to deciding what exactly do I need and if I need something else, maybe I need to use a different one for that.

> I have to make sure that in my marketing

I don't think you need to do too much over what you already have. Maybe put a bit more emphasis on why the "Reliable" part matters. The little blurb on your page about not messing up the DOM isn't really selling it to me, I just looked at it and thought "yeah ok whatever", but this and performance seem to be two of your main distinguishing factors, so I'd lean on them more. Focus on what makes DGXL special. That's just me though.

> Anyway, you're always welcome to use the free version.

I may give it a try. For my main use case, I think the branding is a bit too in-your-face (it would look out of place inside the rest of my web app -- maybe you can provide multiple styles to pick from, just thinking out loud), but overall it looks great so its definitely getting bookmarked.

In any case, great work!

<comment><AUTHOR> Thanks for your feedback, really appreciate it! I think you're right that the "Reliable" feature might not tell the user much.

Perhaps I need to show GIFs of other products to show the numerous ways these products get messy. Anyway, just an idea. Will think about it more, very good point.

You're allowed to adjust the color & type of the branding link, as long as it remains visible :-)

<comment><USER6> Ah, great, I will try it out when I get time! Thanks.

</comment></comment></comment></comment></comment></comment></comment><comment> w-ll oh man javascript devs are looking at what winform devs have been getting away with for years...

on top of the unimpressive feature set and price, they really dont have a good remote support... like Im just gonna send a json object with nearly 100 million rows.</comment>


Groovy SQL – an easy way to database scripting - <AUTHOR> http://www.schibsted.pl/2015/06/groovy-sql-an-easy-way-to-database-scripting/

<comment><USER2> Groovy makes a good scripting language for Java, like Bash does for Linux, and this article gives a good example of such use. When people try to build systems in Groovy, as has been promoted by the Groovy backers especially since v 2.0, they run into trouble, as they would if they tried to write a system using Bash.</comment>


Show HN: Comparing text with Resin - <AUTHOR> https://gist.github.com/kreeben/13faea4b3e68dad6c9a50006a3b4675a <comment><AUTHOR> Is anyone interested in having a discussion about NLP? The gist is my solution to a problem someone emailed me about the other day: how can I compare one audio clip to another and determine their similarity with regards to pronunciation and syntax, using Resin? My answer was that a syntactic comparison could be done with Resin if you first converted the audio clips to two pieces of text which you then compared to each other using the Resin search framework. Like I've done in the gist.

My question: what is state-of-the-art for comparing two audio clips syntactically?

Encoding pronunciation would mean encoding all words in their spoken form. Perfectly doable.

And do you have any feedback about how I performed the text comparison? Are you curious about the comparison technique?

[0] [https://Github.com/kreeben/resin](https://Github.com/kreeben/resin)</comment>


Blender for Hackers – 3D modeling is just like using VIM - <AUTHOR> https://learntemail.sam.today/blog/blender-for-hackers-3d-modeling-is-just-like-using-vim/ <comment><USER3> Blender is a nice project. But a 3D modeler that is a bit easier to learn, and deserves a bit more attention imo, is Wings 3D [1]. It might excite some part of the audience here that it is written in Erlang. Internally it uses the winged-edge data structure [2], something that is also worth a read if that doesn't ring a bell.

[1]: [http://www.wings3d.com/](http://www.wings3d.com/) [2]: [https://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/model/win...](https://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/model/winged-e.html)

<comment><USER4> > Blender is a nice project

Sorry, but Blender is an amazing project. Its single-handedly the best graphics software the FOSS community has produced by a long shot, and can compete with the likes of 3DS Max and Maya which are owned by the 3D powerhouse monopoly Autodesk. For me, its up there with the likes of linux and maybe libreoffice in terms of quality alternatives for otherwise software monopolies.

Anyway, I've used Blender quite a bit for games and animation and it never ceases to impress. So their devs deserve a huge applause IMO. Also, for those of you who think I'm exaggerating about Blender's quality just check out these links:

1\. [http://www.blenderguru.com/articles/24-photorealistic- blende...](http://www.blenderguru.com/articles/24-photorealistic-blender- renders/)

2\. [http://archive.blender.org/features- gallery/gallery/index.ht...](http://archive.blender.org/features- gallery/gallery/index.html)

3\. [https://www.youtube.com/watch?feature=player_embedded&v=R6Ml...](https://www.youtube.com/watch?feature=player_embedded&v=R6MlUcmOul8)

4\. [http://archive.blender.org/features-gallery/blender-open- pro...](http://archive.blender.org/features-gallery/blender-open- projects/index.html)

<comment> ben-schaaf Weirdly its also the best video editor that I've used on linux. Only issues I've ever had with it on that front is that rendering is awfully slow.

<comment><USER5> Haha, KDENLive has caught up with it in my opinion but yeah for years Blender was definitely the best video editor (after some configuration).

</comment></comment></comment></comment><comment><USER6> I've always been wary about learning Blender, since historically it's been written off by large swaths of the 3D community. However, every once and a while you see some truly fantastic work created with it.

The most recent that comes to mind is the _Factorio_ team's use of Blender:

[https://www.factorio.com/blog/post/fff-146](https://www.factorio.com/blog/post/fff-146)

They have a fairly complex art pipeline that relies on Blender, and they continue to use it despite having had strong sales for some time now. A vote of confidence if I ever saw one.

<comment><USER7> Historically it had a horrible interface and the devs denied that it mattered. Then they finally listened, completely revamped it, and much of the argument against Blender was instantly gone.

That isn't to say its interface is perfect. But it actually _is_ perfectly fine now.

My experience: The original interface was something that I learned, used for a bit, then I stopped using it for a while. When I came back, I found I had to completely re-learn even the easiest bits, despite it not changing at all. This happened multiple times.

With the new interface, I learned it once and every time I've gone back, I've remembered basically everything I needed to use.

You'll find holdouts that still hate on it, but they do it blindly and often based on the old UI, instead of its current state.

<comment><USER8> I'll second that, except I liked the first interface. It was horrific to get used to, especially as there were basically no docs and I had no idea how to do this 3D stuff, but once I got used to "one hand on keyboard and one hand on mouse" it was great. And by great I mean I had fun.

Then I didn't touch it for a few years, came back, and realized I had no idea how to use it again. But this time there were docs and the interface made sense. There's a lot to even like about it now!

</comment></comment></comment><comment><USER9> Yes, Blender is a lot like using VIM. The hotkey chart is about ten pages long, and it's very keyboard oriented. Most modern 3D programs are more mouse- oriented, but not Blender.

At the other extreme is Autodesk Inventor. Unless you're typing in a numeric dimension, you seldom touch the keyboard.

<comment><USER10> on the other hand, [http://www.openscad.org/](http://www.openscad.org/) is kinda nice...for simple things :)

<comment><USER11> I'm working on a replacement for OpenScad for Blender. It can already create hierarchies of parented objects, set up boolean operators and set materials. And everything "stays" Blender data, so the subcomponents can be animated/simulated as usual.

<comment><USER12> Is it a public project? I would love to follow along with that.

<comment><USER11> It will be part of my "Vraag" library, which is sort of a higher-level Blender API inspired by JQuery: [https://github.com/akloster/blender- vraag](https://github.com/akloster/blender-vraag)

But I haven't pushed "Vraag Construct" yet. Maybe in a week or so.

<comment><USER11> I just pushed a version with the construction functionality.

</comment></comment></comment></comment></comment></comment><comment><USER13> IMO (as an architect), Blender shines on animations and "non-euclidean shapes" but if you only want to model "euclidean shapes" use Sketchup. Sketchup is for 3D what Ruby is for programming: most 'professionals' despise it, all amateurs and the remaining 'professionals' love it.

However, if you seek the power and speed of a CLI, use Autocad, an Emacs for CAD. Scripting (traditionally) is done with AutoLisp a cousin of ELisp.

<comment><USER14> Fun fact - Sketchup has always used Ruby as it's extension language.

</comment></comment><comment><USER15> About the uncool mouse comment - I have a Logitech MX Master that I'm in love with now, which has the scroll quality of a gaming mouse without the garish looks. It's wireless (boo hiss - yes but it's rechargeable through a micro usb cable so even if you would leave it plugged in all the time it would work like a wired mouse. In practice I just leave the cable laying about and only plug it in for a few hours once every month or so) and the scroll wheel can be switched between 'discrete' and 'continuous' mode with a button just below itself. This turned out to be the greatest thing since sliced bread.

I also like the ergonomics a lot. It has a bunch of other buttons too but I never use those. If you're in the market for a new mouse, check it out.

<comment><USER16> It's also important to note that "Gamer Mouse" != "Gamer Mouse".

His picture is of a Razer mouse, which is a line of mice that are VERY light. So light in fact that for my last Razer mouse i had to rig up a system to keep the cable elevated, as the weight of the cable was bigger than the weight of the mouse, causing it to lift the mouse when the bulk of it hung off the edge of my desk. Logitech mice on the other hand tend to be really heavy and stay on the desk no matter what, but even come with extra weights if necessary. (Also to adjust balancing.)

I'd suggest to try out both types of mice if you're gonna buy one, as either will feel better to certain kind of people. (I'm fairly strong, so Logitech's heft is a must for me.)

<comment><USER17> Since my first mouse connected to a computer with a separate keyboard (an Atari Falcon) I have been using this trick: 1\. Connect keyboard with cable to computer. 2\. Connect mouse, make sure cable comes up close to keyboard cable. 3\. Use the cable binder that came with either mouse or keyboard and twist it around both keyboard and mouse cable so the mouse has plenty of movement space but not too much so it drags the mouse down again.

This saves on wear of the cable and lowers the resistance for dragging mouse towards you and out from keyboard. Very important for your wrist and mouse arm.

</comment></comment></comment><comment><USER18> Finally an article that makes me feel confident enough to actually try using blender. In the past I have tried a number of tutorials, but the problem was they all went way too deep in the subject matter, so I was feeling overwhelmed. This one seems to give you just enough information to get going; looks like I will give it another try.

<comment><USER19> A few years before it was open-sourced, I became interested in 3D modeling, using 3D Studio Max at school. When I looked for free-ish software, I found Blender. It had about 1/10 of the options back then, and a bunch of features were locked up behind a license key, but it was small enough to fit on a floppy. So I downloaded it at school, took it home...and was flummoxed without any access to tutorials. I got about as far as this tutorial did through experimentation.

A few years later, I picked it up again when I had a more convenient internet connection. Learning it through tutorials was a lot like learning a new programming language. Find some that cover the basic interface, then the intermediate interface, then stumble through the advanced tuts for whichever feature you think would be useful to know how to use.

It's a great piece of software, and it feels nice to use once you've developed the muscle memory. The comparison to vim is somewhat apt, but that only really hit me when someone else mentioned it in a post a few months ago.

</comment></comment><comment><USER20> Mmmm I have been loving learning blender over the past few years. TBH its what first got me into coding python and has also through teaching myself python from it, helped me through my first unit of python at uni. The functionality of the program astounds me... every month I learn about something new you can do with blender! You can make games with it, render 3d scenes for architectural purposes and even use it as a complex video editor/movie maker/special effects maker.

These days I have been working on a basic FPS rig with blender that I want to use for a generic 4-player split screen pc shooter...as I just really miss these style games on the PC and my tv has been a HTPC for the last 4 years and there are very few split screen shooters/fighting games available.

<comment><USER21> As for the split screen, I really enjoyed Serious Sam. You might want to check it out ;)

<comment><USER20> The Serious Sam series is essentially my go-to for PC split screen shooter at the moment, I really enjoy the old Unreal Tournament feel to the weapons and control system. That and a few emulated console titles tho is all I have really found.

</comment></comment></comment><comment><USER22> This was the 'click point' that made Blender's interface finally make sense to me, back in version 2.2 or whatever it was. Since then when trying to teach Blender to friends, the first thing I say is "it's vim for polygons."

The newer and more advanced features seem to have become a lot more GUI- focused (and that GUI isn't always the most streamlined or easy to discover) but basic mesh editing is great.

</comment><comment><USER23> Artists at my work still use 3ds max. Despite it crashing every 5 minutes, being slow, having less features, costing infinitely more, having zero support, terrible documentation, compatibility issues... I could go on. I show them blender and they immediately don't like it because the shortcuts are different.

<comment><USER24> I've read 3ds max 9 (2006) documentation. It's the best software documentation I've read in all my life. It covers everything from basic to really advanced. I don't know how the documentation is today.

Less features? The only thing I can think of are the advanced topology surfaces that rhino has. I'd argue most people don't need or want those.

What I REALLY dislike about max is the subscription model. It encourages piracy in all but the wealthiest nations worldwide.

But the biggest downside of all is being windows only.

<comment><USER25> >the biggest downside of all is being windows only.

I like how nobody ever complains about software that's OSX only, but if something is windows only then HOLY SHIT CALL OUT THE FUCKING CAVALRY

<comment><USER26> People love Linux, BSD and macOS/OS X in ways they've never loved Windows, that's why.

Most people _tolerate_ Windows. Many are waiting for the day they can get rid of it completely except for this annoying list of Windows-only applications they can't live without.

</comment></comment></comment></comment><comment><USER27> Blender can be used with a two button mouse comfortably. This part is wrong.:

"Now for an important prerequisite: a mouse with an easy to use middle button."

You don't need a mouse with a middle button.

Just go to user preferences, "File" menu, "Use preferences..." item, "Input tab", set radio button "Emulate three button mouse" on, Click button "Save user settings" in the bottom.

Now alt+ left button will map to the same action as the middle button.

</comment><comment><USER28> I started using Blender in 2000. Cheatsheets with hot-keys did not exist, tutorials could still be counted and YouTube had not been invented yet. All I got was a short introduction by Ton Roosendaal. So, you might assume I had a horrible user experience, but it was quite the opposite. Learning Blender in 2000 was like a game of discovery, randomly trying key-combinations and new techniques, followed by sharing them on IRC,

</comment><comment><USER29> Blender has inverted left and right mouse buttons by default which I think isn't like vim but just a very bad UX decision that's not being changed now since the old user base probably adapted.

<comment><USER30> Is it possible to switch the button behavior? Certainly you can do it in the OS (mouse settings for left-handed folks), but I wonder if there is some kind of plug-in specifically for Blender?

<comment><USER31> Yes, no plugin required. In fact, because this appears to be such a showstopping issue for many users, the option is right there on the Blender splash screen: there is an "Interaction" dropdown that can be set to "3dsmax" or "Maya".

</comment></comment></comment><comment><USER32> If you'd like to do 3D modeling with actual vim, you can do it in the venerable raytracer POVRAY: [http://www.f-lohmueller.de/pov_tut/basic/povtuto3.htm](http://www.f-lohmueller.de/pov_tut/basic/povtuto3.htm)

<comment><USER27> While POVRAY has nice features... Really, computer graphics is an ecosystem. And parts that don't really fit that ecosystem are not that helpful in the long run.

Blender's used in actual production, which means lots of tiny things that people doing production work might like to have, have been implemented there.

If one wants to code ones graphics then Blender can serve that need just fine - it has an extensive Python API. Leanrning which will serve one much better than learning the obscure POVRAY script.

Don't guide beginners to POVRAY, please. It will only hurt them in the end. This is just from an ecological perspective.

<comment><USER33> Well, it depends on what kind of beginners you are talking about. POVRAY for learning computer graphics programming is great actually. Like, learning POVRAY and then jumping ship to OpenGL code or something.

Besides, it's not like the parent post mentioned anything about beginners, just how to do stuff with vim, which matches the title of the article

<comment><USER27> I'm speaking from the point of view of opportunity costs.

For learning computer graphics _programming_ through ray tracing something like Peter Shirleys "Raytracing in one weekend" and then onwards to Pharr, Jakob and Humphreys "Physically based rendering" would be a much better learning path. OpenGL and real time graphics are another beast entirely and to learn those well you must preferably work in the industry for a while (mainly because it's a fairly deep topic and you need professional level enthusiasm to progress much).

For hobbyist programmers Unity is a much better platform to get familiar with real time rendering than just taking the Red Book. I tried the Red Book route long time ago without much other domain understanding of computer graphics - not really the best way to move forward.

And yeah, I _was_ familiar wirh Povray at that point and frankly - <USER2> knowledge did not help me much.

<comment><USER33> Well, my college (not a fancy one mind you) was actually using povray to get people started on opengl circa 2000. Don't know if it was the best method but it worked. As for OpenGL itself, back then the best resource I remember were the NeHe tutorials

</comment></comment></comment></comment></comment><comment><USER34> Blender and Freecad[0] let the user interact via a python shell. I haven't tried to script Blender, with Freecad it's easy to start making things that auto-scale with a var (wall thickness for example). The two are not that comparable otherwise, Blender is light-years ahead but it's CAD roots are new- ish. CAELinux[1] has all the cool stuff bundled.

[0] [http://www.freecadweb.org/](http://www.freecadweb.org/)

[1] [http://caelinux.com/CMS/](http://caelinux.com/CMS/)

<comment> semi-extrinsic I have done some Python scripting in Blender, and it is very nice, but definitely a second-class citizen to the GUI. E.g. you have to insert window focus changes in your script (so that the right window has mouse focus) for certain commands to work. Also, the documentation is not very good IIRC. (This was about two years ago, so the latter point may have improved.)

<comment><USER11> "Operators" are a very strange thing in Blender. They serve multiple functions in a Frankenstein sort of way: UI Binding, Binding between C and Python and a framework for asynchronous tasks. I even implemented an asyncio loop in Blender using a polling operator...

When scripting from Python, you should almost always avoid operators, except if it is not possible to access this functionality (In the Video Sequence Editor ...). And of course the documentation never tells you what context you actually need. Besides having a ton of parameters in the definition, operators essentially take the entire state of the Blender process as a parameter passing mechanism.

</comment></comment></comment><comment><USER35> I learnt Blender using the following 2 resources: 1\. Book: Beginning Blender [1]. Using this book I learnt enough Blender to make stand-in models and animations for prototyping my game. 2\. This video resource: Mastering Blender Vol 1 & 2 [2], is a brilliant resource if anyone really wants to master the Blender fundamentals.

I am pretty sure just learning from the Blender video resource [2] will also suffice, but just listing my journey. The thing is just like Vim (as most are referring to it here) and I am a Vim user, Blender has a learning curve but sticking to it and gradually advancing to doing more complex stuff makes sense. But I don't know if this curve is true of other modeling software as well.

Plus the fact that python scripting lets you do your own stuff is even more fun. In the course of my game, and using Blender's rigify, I had more weight influences which would cause SceneKit to animate on the CPU. Just writing a simple python script [3] did the trick.

I think like other proprietary tools in the industry, which have deep roots in the asset pipelines, probably makes Blender a non-starter. But if someone is an indie developer and wants to use a 3D software; Blender is a great choice. For the game I am working on [4], even if it succeeds, we will stick to the Blender asset pipeline. In fact we have made the rigs such that it is also compatible with Unity's MecAnim.

The only downside is if you are planning to become a 3D artist, Blender may not be the right choice. Heck, even wanting to work as a 3D graphics engineer in the games/movie industry requires you have to knowledge of the proprietary tools, at least as per my current job search results. If someone has a similar experience vis a vis Blender and the 3D software engineer requirements, or even better if is part of the industry and can throw some light on this, will be great.

Overall, I believe Blender is very powerful and worth learning.

[1][https://www.amazon.com/Beginning-Blender-Source-Modeling- Ani...](https://www.amazon.com/Beginning-Blender-Source-Modeling- Animation/dp/1430231262) [2][http://www.cgmasters.net/training-dvds/master- it/](http://www.cgmasters.net/training-dvds/master-it/) [3][https://gist.github.com/dmsurti/aa3411a82e12aaaee564a17bb493...](https://gist.github.com/dmsurti/aa3411a82e12aaaee564a17bb493f162) [4][http://www.isongames.com](http://www.isongames.com)

</comment><comment><USER36> Blender is also a neat program to just create and edit videos.

I wanted to be able to put together a video, so I made an introduction for my D&D friends for our next adventure.

First time I used video or sound editing, but it worked out fine, because I found a really good instruction video series. That usually makes all the difference.

[https://www.youtube.com/user/MikeycalDOTcom/playlists](https://www.youtube.com/user/MikeycalDOTcom/playlists)

</comment><comment><USER37> It feels like the author's claim that 3D modeling is just like using VIM could be generalized to "any application that has keyboard shortcuts can resemble VIM in that the keyboard can be used to do things in the application". It seems like there's some overlap in Blender's keyboard shortcuts and VIM's key bindings, but the bit about using a mouse seems like a pretty big departure from VIM usage.

<comment><USER38> Another kind of, sort of, similarity between vim and Blender is that vim has different editor modes (normal mode, visual mode, insert mode and so on) and Blender also has a kind of different modes (object mode, edit mode and others), though I think the modes in Blender relate more to the mouse cursor and not so much to the keyboard.

</comment></comment><comment><USER39> Blender is to 3D modeling what Gimp is to image editing what Darktable is to photo editing. Painful. My biggest grip with blender is the non-standard custom GUI that they just refuse to update. I know Blender predates toolkits such as GTK/Qt but seriously, they've had plenty of time to "fix this".

Bonus: Try to draw a line in GIMP (without first going to google). Have fun! (;

<comment><USER40> The analogy to VIM is, in this respect, quite a good one.

That said, Blender's GUI has been updated dramatically over the last 5 years. It is still quite painful ("discoverability" does not seem to be a concept they've become acquainted with), but in fact it's far better than it used to be. I'd made occasional attempts to acquaint myself with Blender starting in the late 90s and had invariably failed; tried again a few years ago and after a few days of pain I was being incredibly productive with it.

<comment><USER41> Discoverability? It's much better than VIM's at least. (That used to not be the case.)

Most features can be found in Menus. Every clickable UI element has a tool tip if you hover.

With your mouse over the 3d port, hit the spacebar and fuzzy search for commands.

Most times there's a menu option there's a hotkey listed to the right... or you can right click a menu item and "Assign hot key."

You can also right click things and click "Online Documentation" for documentation on it.

Granted, I don't see an easy way to discover that "TAB" is for switching between edit and world mode when an object is selected... though you can switch modes in the "Object Mode" drop down 3d port menu. there's not a tool tip for it. ...and probably other things. It would be helpful if a better getting started guide/beginner walk through (like this introduction.) could be found in the splash screen and help menu easier.

</comment></comment></comment><comment><USER42> I used Blender/Cycles also for the case to render in Game and Application images in high quality. I wrote therefor a Python Export/Importer.

Here is an example: [https://virtual- mannequin.eu/img/Full/AnomalyFull.jpg](https://virtual- mannequin.eu/img/Full/AnomalyFull.jpg)

</comment><comment><USER43> I've been considering picking up Blender for a few months and this just tipped me toward committing. As a long time vim lover, this is a great way to get people excited.

</comment><comment><USER44> I hoped this was more about doing everything in scripting which I am trying to learn. For me, when I use the mouse, things go wrong. While in my brain I have a good spatial view, however, somehow the coordination to the (for me!) awkward 3d representation all those 3d packages have, does not work at all.

</comment><comment><USER45> If you can't get used to the mouse controls you can customize them pretty easily.

File > User Preferences > Input > then you can choose Blender, Maya, 3Dsmax

There are lots of other options on that Input dialog, too.

</comment><comment><USER46> I'm still stuck on 2.49b because I can't find anything in the 2.5+ interface :/

<comment><USER26> Get over it. Seriously. 3D can be a shitshow of UI nonsense but the way things got reorganized is signifiantly more coherent and understandable.</comment></comment>


Icon Fonts are Awesome - <AUTHOR> http://css-tricks.com/examples/IconFont/ <comment><USER2> A big warning for anyone trying this out, don't use it in places where exact placement is required. Browsers (and operating systems) render fonts VERY differently. Just changing the cleartype-settings in windows can make the text placement completely off. Especially after a few letters as the error propagates the more characters you accumulate over one row. Might not be an issue if you only place one letter/icon, which is probably the use case here, but keep this in mind.

<comment><USER3> This is, I think, the biggest issue with abusing fonts in this way. As a workaround, icon fonts are excellent—but they are still undeniably a workaround. Unfortunately, SVG is the closest we have, and isn't a viable solution either, for reasons other commenters have thoroughly addressed. I do have (what I think is) a better idea in mind, but I'm not sure how it would ever get adopted.

<comment><USER4> > they are still undeniably a workaround.

They are a "workaround" with long history: Windows 95 shipped Marlett for exactly this purpose of using fonts as well-supported vector graphics formats.

<comment><USER3> Oh, absolutely. It's just a dealbreaker for me personally that fonts are monochromatic, single-layer, and difficult to position in web pages with precision and consistency. If those aren't concerns, then icon fonts are a perfectly useful tool.

</comment></comment></comment></comment><comment><USER5> Why arent people using SVG for this sort of thing? Isnt that HTML5's vector graphics format?

I supose if you're using icons w/ the express purpose of using them with in- line text, then this would be Ideal... but just seems like a weird hack, when there is SVG available...

The author of this website claims to simply be ignorant of SVG at the bottom? whats up with that?

Why is using a font "hack" better than using the intended container for vector graphics?

I guess web design has always sorta been about pushing the bounderies of browser quirks, but I kinda thought we were moving away from that. You would think the intended use of vector graphics would be designed to be just as good if not better than using a font to do the same thing.

<comment><USER4> > Why arent people using SVG for this sort of thing? Isnt that HTML5's vector > graphics format?

1\. SVG is slow, text layout engines (therefore fonts) are fast

2\. SVG support is pretty terrible (not available on Android < 3, IE <= 8 and that's for support at all, inline-svg-in-HTML is even rarer and it's even easier to hit shitty implementation bugs), fonts are very well supported

3\. I don't think you can use SVG in pure CSS, so you need markup, not so with fonts (theoretically you can use SVG as background, practically I'm sure it works half the time best)

4\. You can't hint SVG, so it does not scale well from big to small resolutions

5\. Mixing SVG and HTML text is absolutely awful, mixing text in an iconic font and actual text is much easier

6\. Iconic fonts are trivially "sprited" (bundle all the icons in a single font file), this is more complex in SVG

7\. Changing the color of an iconic font to match a new or alternative layout takes all of a single CSS property, likewise to change font (therefore the style of all the iconset) (this assumes the iconsets use the same characters as hooks for equivalent symbols).

> You would think the intended use of vector graphics would be designed to be > just as good if not better than using a font to do the same thing.

You would, wouldn't you? But it turns out fonts are very, very good vector formats for (physical) rendering sizes.

<comment><USER6> Isn't the argument more that SVG sucks, rather than that there is anything fundamentally wrong with vector graphics?

<comment><USER7> I don't think you've used svg before. It definitely does not suck.

<comment><USER6> No, I defiantly have, and it does. For a standard 13 years in the making, the number of decent FULL FEATURED implementations is minuscule. Stuff that mostly works likes Inkscape tends to use it's own dialect and not fully support all the features.

<comment><USER7> I agree with you that browser support sucks. the technology itself is _really_ cool though. Scriptable, heirarchy based vectors. What's not to like?

</comment></comment></comment></comment></comment></comment><comment><USER8> You will have to download an entire font even if you are only using a few arrows. May not be prohibitive, but it should be kept in mind.

<comment><USER9> You can create a subset of that font to serve if only using a few icons. I've done that with Scribophile thought I can't recall right now what utility I used to do that.

<comment><USER10> Expert > subsetting > custom subsetting > single characters

<http://www.fontsquirrel.com/fontface/generator>

</comment></comment></comment><comment><USER11> For a comprehensive list of the best icon fonts around have a look at simurai's list at <http://www.delicious.com/stacks/view/SC3hpq>

</comment><comment><USER12> I am worried by this trend towards using a custom typeface to store icons. Firstly, whilst it looks great in the giant preview pages linked to on HN, these icons often look terrible at smaller sizes / without anti-aliasing. Secondly, whilst they're undoubtedly efficient when you're going to use a lot of them in various sizes, I question whether that's still true compared to an optimised PNG sprite (which coincidentally can solve the first problem too).

<comment><USER13> _these icons often look terrible at smaller sizes / without anti-aliasing._

Not to forget Windows too. Many font-face embedded fonts look hideous with Windows' text rendering, alas.

</comment></comment><comment><USER14> As always, use the right tool for the job. I've had some luck using icons fonts, but it's by no means a complete solution.

Something i would like to see though: ligature support in browsers. That would enable the creation of named icons in the font. so "right-arrow" would literally be a "right arrow".

</comment><comment><USER15> Quick side note: I hit the "fancy view source" button on the bottom right and I thought it was pretty cool. Hoped it was a draggable bookmarklet, it's not, anyone have a favorite kick ass view source bookmarklet?

</comment><comment><USER16> Your icon can only use one color.

<comment><USER17> I would think so, too, but how then, can Mac OS X and iOS 5 show emoji in color? <http://www.apple.com/macosx/whats-new/features.html#text>: "A color emoji font in Unicode 6.0 lets you display emoticons"

<comment><USER18> They hack PNGs into the font itself. More info at <http://typophile.com/node/83760#comment-470876>

<comment><USER17> Thanks for the pointer. A hack, indeed.

</comment></comment></comment></comment><comment><USER19> No, they are not. At least not yet ➜ <http://drp.so/058604> (16px).

</comment><comment><USER20> I used icon fonts on MSH, came out perfect. <http://myschoolholidays.com/Wilsden-Primary-School-8639>

</comment><comment><USER21> This is minor, but fonts also have sub-pixel rendering.

</comment><comment><USER22> I would like to see a way for browsers to specify the width/height of an image, so that the server can return an appropriate file.

</comment><comment><USER23> Can you use an overhead text-shadow to give them a different color border? ie.

        text-shadow: 0 0 5px #0000ff;

</comment><comment><USER24> Rabble rabble rabble!

</comment><comment><USER25> I'm really in favor of an html5 canvas based icon system.

      <canvas width=50 height=50 class="icon icon-check">

Icon-check then calls a JavaScript function which draws the icon to the canvas. The icon files end up being javascript files which can be gzipped along with other assets.

</comment><comment><USER26> Everytime I visit css-tricks I am more and more impressed by the quality of literally everything on the site.</comment>


Data Driven Rethinkdb Clojure Library - <AUTHOR> http://z.caudate.me/one-love-an-inspired-rethink/?utm_source=dlvr.it&utm_medium=twitter <comment><USER2> Very cool! I love Rethink and I am glad it's making its way to more languages.</comment>


Mysterious data transfer fees on Mongo Atlas shocks a developer - <AUTHOR> https://forums.meteor.com/t/my-experience-with-mongodb-atlas-high-data-transfer-usage/37772/8 <comment><USER2> why would you link to a post from 2017 to an advertisement to a provider?</comment>


Mystic coolness - <AUTHOR> https://www.the-tls.co.uk/articles/public/history-coolness-markovits/ <comment><USER2> There's a really interesting blog post that discusses an unusual mid 19th century use of the word "cool": [http://therumpus.net/2011/06/there-is-a-head- rolling-over-th...](http://therumpus.net/2011/06/there-is-a-head-rolling-over- the-platform-the-strange-case-of-george-lippard%E2%80%99s-the-quaker-city/)

</comment><comment><USER3> I've recently been enjoying a series of word-history videos on the YouTube "alliterative" channel. They're very detailed: [https://www.youtube.com/user/Alliterative](https://www.youtube.com/user/Alliterative) so if you like this kind of article check those videos out. Although, I have to admit to a certain sadness that comes with being reminded that there's no "correct English," and given enough years the language I speak will be considered archaic or worse.</comment>


Beware Developers: App Removed From App Store At Request of Competition - <AUTHOR> http://www.app-vault.com/blog/app-removed-from-app-store-at-request-of-competition/

<comment><USER2> I really don't understand why Apple would decide to do this. It would seem to make more sense for Apple to tell the complainant to sue the competitor directly and get a court order to remove the app from the store.

<comment><USER3> This is one of the big problems with the App store. If you develop for it, you are really at the mercy of Apple's decision process with regard to who can sell what in their store. It is their store, so they get to decide, but we as software developers need to decide if it is worth the risk for the potential reward you could see from having an app in their store. I personally am not developing for the app store because I do not like the decisions that I have seen Apple make.

<comment><USER4> _This is one of the big problems with the App store. If you develop for it, you are really at the mercy of Apple's decision process_

"Decision process?" I think you're _really_ at the mercy of some mid-level manager or some clueless flunky.

If they have a "decision process" I would _love_ to see the documentation they have on it, and the notes from this one!

</comment></comment></comment><comment><USER5> The side-by-side screenshots <http://img190.imageshack.us/img190/8122/comparisondw.jpg> don't really help their cause. It does indeed look like they took another app and made a screen by screen rip-off of it. It's even been bitten by the same ugly bug that that bit the original.

Copy or not, I don't think Apple should remove them though.

<comment><USER6> It doesn't really matter if they made a copy of it - they didn't steal the code . They copied functionality ok, they may have done that but it's like : Let's pull OpenOffice because they copied MSOffice . It's ridiculous .

They definitely shouldn't have removed them.

<comment><USER7> This isn't a court of law, it's a court of What Apple Says Goes. Their garden, their rules.

I find it very easy to understand why Apple doesn't want to allow a culture of crappy rip-offs to take root. Basic quality control.

<comment><USER8> From what I saw of the screenshots, AppVault (removed) looked wayyy better. That's not a crappy rip-off, that's competition that is outdoing the predecessor. Facebook was a "rip-off" of MySpace yet society (mostly) has moved past MySpace.

</comment></comment></comment></comment><comment><USER9> I got the feeling that there's more to this issue than that has been posted in blogpost. I'd prefer to hear AppBox's side of the story before making a judgement.

For example, having the "same graphics, layouts" with " with different color" may be not just copying an idea, it migth mean copying the expression of the idea as well. Being loud != being right.

<comment><USER10> AppBox doesn't even mention which of their "copyrights" has been infringed, and when looking at the side by side comparison screenshot, and reading their complaint - I get the feeling they are acting like kids.

</comment></comment><comment><USER11> This is really getting a bit out of hand.

I request Bing be taken down because it's too similar to Google.

<comment><USER12> For that matter I request Google be taken down for being to much like altavista

<comment><USER13> I was about to say _I want Altavista taken down for being too much like Altavista_ but then thought the joke may not be understood except by old timers.

<comment><USER14> I'm so glad you _didn't_ post it anyway...

<comment><USER3> I remember some directory pages on Mosaic back in the days that seem very similar to a lot of pages on the web now. Maybe they need to take down all the web servers and replace with static html. :)

<comment><USER4> All these pages with the angle brackets -- I think I did some of that a dozen years ago. Where's the number for my lawyer?

</comment></comment></comment></comment></comment></comment><comment><USER15> One note: Copyright law is a bit broader than the blog thinks. It's entirely possible to create a derivative work even though the assets and code are 100% newly created.

That said, this is clearly not an infringing case. While the functionality is largely similar (although never really the same), the actual execution seems to be hugely different to me. Apple clearly just wants to avoid litigation.

<comment><USER10> I am not American, so I need to ask - why would Apple be worried about litigation? I don't see how a widget shop can be sued for selling a product when there is a dispute between two widget manufacturers.

<comment><USER16> Because apparently they (Apple) took sides by ejecting one manufacturer. This might even be a _conspiracy_.

And more generally, because here in America there is little downside risk in filing a lawsuit.

<comment><USER10> Thanks, but as I understand it, the reason they ejected one of the apps was because they were possibly afraid of getting sued - which seems strange to me.</comment></comment></comment></comment>


Show HN: AngularJS responsive room search engine - <AUTHOR> http://kangaroom.co.uk/

<comment><USER2> I like it a lot. It would be useful to be able to shrink/hide the "Results" pane so as to be able to view the map almost full-screen; at certain window sizes, the Results pane takes up nearly 50% of the screen.

I will soon be flat-hunting, and I'll definitely give Kangaroom a try.

Edit: it's also nice to see something UK-specific for once :)

</comment><comment><AUTHOR> I'm the author - just thought I'd see what HN's thoughts and feedback are. It's a fully responsive, retina-capable, AngularJS web application.

<comment><USER3> Did you use angular seed or did you create your own structure?

</comment></comment><comment><USER4> Beautiful, is this UK specific? I tried Chicago, IL to no avail ;}

<comment><AUTHOR> Yes, it's UK specific... for now!</comment></comment>


Ask HN: Is this copyright infringement? - <AUTHOR>

Let's say I build a node-webkit browser based app which pulls content down from various public sites to display into a new dashboard.
Maybe it's financial data (stock quotes), maybe it's real estate, maybe news, or RSS feeds, whatever.
There are public APIs, designed to be pulled by a browser, where  anyone running the software would be sending requests to whatever services.
To me, my guess is it shouldn't be infringement because the user is operating the software to access public interfaces. The user should be able to decide how to view content which you make available to the user. <comment><USER2> _To me, my guess is it shouldn 't be infringement because the user is operating the software to access public interfaces._

You will find this distinction nowhere in the laws of the United States.

 _The user should be able to decide how to view content which you make available to the user._

The laws of the United States, broadly speaking, make copyright holders able to make decisions of how to exploit their copyrights. That is what puts the "right" in copyright. "I feel like this would be more convenient for me" does not establish a copyright exception. There's some gray areas here for e.g. format shifting, but the model you're outlining is simply wholesale copyright violation. You would be unwise to pursue it. If you do pursue it, you will eventually be told to stop. After you fail to stop, should one or more copyright holders attempt to use the legal process to enforce their copyrights, you will lose.

<comment><AUTHOR> Let me give an example -- I wrote some code to scrape real estate listings, populate my own DB, and a front-end to rank properties and track changes. It polls the listings and lets me know when things change.

At this point it's just code I wrote for my own use. I can't see how that's copyright infringement, but even if it were, it's just me organizing data on my own machine. There's no distribution, there's no commercial element. I could achieve a similar result pinning printouts to a bulletin board.

Now, let's say tomorrow I open up a Github repo and post the code under an MIT license... Someone wants to download and run it, they can. The program doesn't serve any content to anyone else, there's no P2P going on here. There's no sharing, or inducement to share.

<comment><USER3> Merely populating your DB was infringement of their copyright. So is "just you organizing data on your own machine". Making copies, and making derivative works (transforming the work in some way), are both exclusive rights held by the author of a work. Distribution is _another_ of those rights, and infringing _any_ of the rights is illegal. You do not need to distribute anything, or induce distribution, to be infringing someone's copyright.

The Copyright Act isn't terribly long or complex, and there are many good summaries of it online if anything's confusing. You might want to read it. Ignorance of the law is not a defense should you be sued.

<comment><AUTHOR> I think it's quite a bit more complicated and nuanced.

For example, derivative works and transformative works are totally different beasts, so using the words as synonyms, and then saying this stuff isn't complex, I think is itself a good counterpoint.

If you're interested, take a look at the article I linked on Personal Use and Copyright Exhaustion.

</comment></comment></comment></comment><comment><USER4> IP lawyer here. Don't rely on the following as legal advice about your specific situation, but in _U.S. law_ :

1\. The odds are that _contract law_ is at least as much of a problem as copyright law. Check the terms of service of the various sites that you access; they probably prohibit doing what you're doing.

(It's another question whether any given site's terms of service would apply to your access of the site if you didn't click on something like "I agree" at some point [1].)

2\. There's no copyright in facts or data per se, but there _can_ be a copyright in "original" selection and arrangement of facts and/or data. [2]

3\. Copying and/or distributing copies of someone else's original content -- such as news write-ups or images -- is very definitely a problem under copyright law.

4\. A content provider doesn't need to include a copyright notice to be able to get copyright protection.

5\. Some content providers have tried to claim IP-like rights under the "hot news" doctrine; it's unclear to what extent such claims are viable. [3]

6\. Conceivably one or more of the sites you access could claim that you infringe their trademark rights if you included their trademarks in your dashboard or in your marketing.

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

[2] [http://en.wikipedia.org/wiki/Feist_v._Rural](http://en.wikipedia.org/wiki/Feist_v._Rural)

[3] [http://cyber.law.harvard.edu/people/tfisher/IP/2011_Barclays...](http://cyber.law.harvard.edu/people/tfisher/IP/2011_Barclays_Abridged.pdf)

<comment><AUTHOR> Thanks very much for your comment.

I agree that contract law is definitely involved. I think Terms of Service are an agreement between the end-user and the site/service, not the software developer and the site. Google isn't agreeing to the ToS of every site someone visits using Chrome. Similarly, and end-user can probably use 'curl' to violate many sites' ToS, but that's not curl's problem.

I did find this article "Copyright Exhaustion and the Personal Use Dilemma" [1] somewhat informative, although it doesn't really address my particular use case, because the content the users of my software would be accessing is not purchased, but being provided for free under some Terms of Use.

E.g. "To the extent a copy owner reproduces or adapts her copy in order to enable a personal use, exhaustion insulates her from liablity." But it seems like this is a very gray area of copyright law.

Digging back into the specific example, Redfin Terms of Use state:

       You will not copy, redistribute, or retransmit any of the information provided
       except in connection with your consideration of the purchase or sale of an
       individual property.

So providing software which enables end users to collect and organize _specific_ listing information from Redfin (not a site crawler), for that user's own personal use, stored on that user's own machine... I think would actually fall within the Redfin ToS.

Another way to think about it, it's analogous to extending the 'Bookmark' functionality of a web browser to better organize and monitor your bookmarks for changes. Does 'Bookmarking' a webpage become copyright infringement if the bookmarking software supports...

      Mashups / co-mingling the content of related bookmarks
      Identifying diffs since the last time you visited
      Background polling of the bookmark with a notification when it changes
      Integrated "Bookmarklet" functionality which changes *how the content is displayed*

[1] - [http://www.minnesotalawreview.org/wp- content/uploads/2012/11...](http://www.minnesotalawreview.org/wp- content/uploads/2012/11/Perzanowski_Schultz_MLR.pdf)

<comment><USER4> > _I think Terms of Service are an agreement between the end-user and the site > /service, not the software developer and the site._

Don't be too sure about that -- the software developer usually _is_ an end- user to at least some extent, if for no other reason than to ascertain how to scrape the site, and might very well be bound by the ToS. (Check out the link I provided about browse-wrap agreements.)

> _Google isn 't agreeing to the ToS of every site someone visits using > Chrome._

No, but you might be inducing someone else's infringement, which could make you just as liable.

You really need to talk to a good copyright lawyer about this. (Not me -- unfortunately I'm committed to other projects.)

</comment></comment></comment><comment><AUTHOR> However, the alternate argument is, how much control should the publisher have over the full manor in which that content is displayed to the end user? I guess, this is what robots.txt is all about.

But where's the line to call something "robot"? A script run by a user, for their own use, I don't think it's bound by robots.txt. Does it matter who wrote the script?

<comment><USER5> robots.txt is nothing more than a way of politely asking the world not to recursively crawl through links on a site. It has no connection to whether someone is allowed to access the data or what they're allowed to do with it.

</comment></comment><comment><USER6> You can't void copyright - the owner of the data still owns it, no matter how they release it. Even for a work that you put in the public domain, you still own the copyright to it - you're simply giving everybody an unrestricted license to use it. By putting data on a publicly available website (or webservice) you are not giving up any copyright protections.

It sounds like in this case the copyright belongs to the owner of the API you are querying. They are licensing their data to the consumers of their API, under the terms of service on that API. if you violate their TOS, you're violating their copyright.

</comment><comment><USER7> Check the terms of use of each of the APIs.

</comment><comment><USER8> Well, why don't you infringe the copyrights and then tell us how it goes?</comment>


Where's the best place to post your resume? - <AUTHOR> ...if you want to get a serious web developer job, and are sick of being spammed by recruiters about silly code monkey jobs (using Access and VB macros etc.)<p>Preferably a site that employers in the valley or bay area check. <comment><USER2> Update your LinkedIn profile. Seriously. Don't post to Dice/Monster etc. About 2 months ago I updated mine and started sending positive reviews to coworkers and friends and got some in return. I've been contacted by a handful of good recruiters and several companies directly.

<comment><USER3> Really? Linkedin job postings never worked for me. Craigslist is much better. It's just my opinion though.

<comment><USER2> craigslist is of course a great place. I've gotten many jobs there over the years. In reference to the op though, in terms of resumes I've been pleasantly surprised at how good LinkedIn has been working out in my current search.

</comment></comment></comment><comment><USER4> The best idea for a serious web developer is to make a great web resume. That's what I did when I was tired of my last job and it landed me a really awesome job. You can take a look over here : stevengilligan.me and if you search online for "html5 resume" or "interactive resume" you will find tons of examples. Making it in web when you're a web developer shows some of your skills, which normal resumes (like LinkedIn and the like) doesn't do.

Edit : Of course, employers won't really "find" your resume online because they normally search on website that are made for job hunting, so you need to make sure to post the link to your web resume on your LinkedIn profile and other profiles so that employers can find it.

<comment><AUTHOR> Yeah, but the problem is how to get it in front of people.

<comment><USER4> I have edited my answer for this. You need to make sure your web resume is accessible from all of your online profiles that employers might stumble upon. LinkedIn, Facebook, Twitter, GitHub, whatever you think employers will check about you, make sure that the first thing they see if the url to your web resume.

</comment></comment></comment><comment><USER5> I'll be damned if I know, you tell me!</comment>