Ask HN: Is there any reason to display "Copyright © 20xx" on websites? - <AUTHOR> A lot of websites, including some of my own, put that notice in the footer.<p>I do it just because everyone else does — but is there any actual advantage at all to doing so, or is it just "decorative"? <comment><USER2> Fences make great neighbors, and while you don't legally need a copyright notice in the US for most purposes, putting one on there is a cheap investment in preventing accidental casual infringement and lets you skip the "Whoops I didn't realize copying that would be infringing" stage of the "Please knock that off" conversation.

</comment><comment><USER3> There are some advantages to adding the copyright, but none of them are legal... sort of.

The way copyright law works isn't black and white - it's more like a harsh linear gradient where there is a lot of space of black and a lot of space of white, but a sliding scale between.

When you put the copyright explicitly on your site, you are making a statement - that the contents of the site are, indeed, unmistakably copyrighted and should not be reused without proper permissions (or at all, in most cases).

While you receive copyright implicitly by law in the US, the severity of possible legal action is partially dependent on what a judge says makes sense. For instance, one could easily (albeit ignorantly) make the accident that something on GitHub isn't copyrighted because GitHub hosts a ton of open source stuff. If the copyright is explicitly stated, for a person to copy it would portray a gross disregard, and lack of responsibility and due diligence.

So, yes, there are good reasons to place a copyright symbol, but it doesn't necessarily change your copyright status by law.

<comment><USER4> > For instance, one could easily (albeit ignorantly) make the accident that > something on GitHub isn't copyrighted because GitHub hosts a ton of open > source stuff.

"Open source" stuff is copyrighted. The only thing, in US law, that is not copyrighted is material that is either (a) not of the type of material subject to copyright, or (b) for which the copyright has expired, or (c) produced by the US government.

</comment></comment><comment><USER5> These days I see a lot of "Made with <3 in {{location}} " instead, so maybe its declining due to a lack of real use?

<comment><AUTHOR> In fact that's what I've been using for my recent projects (e.g. things made at hackathons) — not sure which message (if any) I'd stick in the footer of a proper new website.

<comment><USER5> I've been doing both, although in hindsight it would be better to stick to one. Personally, since the copyright has very little legal implications (from what I know), you might as well just do the "Made with <3 in..." thing IMHO.

</comment></comment></comment><comment><USER6> Why do you even want to reserve the copyright for your webpage's contents? Do you really care if people copy some of the text or source formatting of the site?

</comment><comment><USER7> I find it useful to know if the site is updated regularly.

<comment><USER8> The copyright year is generally when the work was first published. Even if the site is updated regularly the copyright notice should still stay the same. For example, I launched my website in 2009 and while it does get updated on a weekly basis, the copyright still says 2009.

<comment><USER9> I rate a sites age/last updated (And hence how useful it is) via the copyright, if it says 2009 I'll move on. I suspect may other people also do.

Unless you are in a strange place were there are legal issues, I'd keep it up to date, preferably with a dynamic year.

If you have legal issues, I'd add in a dynamic 'last updated' or range.

<comment><USER10> Are you serious?

<comment><USER11> I bet they are. I do it too, particularly if you're looking for something that has changed since a certain date. An explanation of a math technique probably hasn't changed since whenever it was posted, but if I'm looking for reviews on laptops, I don't want laptops from 2009.

I realize that date of publication of the particular article can be different from date of most recent publication, so I don't immediately throw out the site, but if it looks dormant I may leave and go to another site.

</comment></comment></comment></comment></comment><comment><USER12> If you put Copyright at the bottom of your website then it means no one will ever copy your content obviously.

:P

</comment><comment><USER13> Well first off, if you don't have a copyright (which it doesn't sound like you do) - no, there's no purpose. A copyright is actual legal material which you have to apply for, just like a patent ([http://www.copyright.gov/forms/](http://www.copyright.gov/forms/)). However whether this is worth it or not depends on the nature of what you're putting up online.

Now about the copyright symbol itself:

[http://inventors.about.com/od/copyrights/a/CopyrightNotice.h...](http://inventors.about.com/od/copyrights/a/CopyrightNotice.htm)

"A copyright notice or copyright symbol is an identifier placed on copies of the work to inform the world of copyright ownership. While use of a copyright notice was once required as a condition of copyright protection, it is now optional. Use of the copyright notice is the responsibility of the copyright owner and does not require advance permission from, or registration with the Copyright Office."

"... in the event that a work is infringed, if a proper notice of copyright appears on the published copy or copies to which a defendant in a copyright infringement suit had access, then no weight shall be given to such a defendant's defense based on innocent infringement."

<comment><USER14> you do not need to apply for a copyright. you apply for papers to make lawsuits easier. they provide you with documented and notarized dates and actions.

<comment><USER15> And more worthwhile. Having a registered copyright allows you to potentially collect punitive damages with a successful lawsuit rather than just the actual market value of the usage.</comment></comment></comment>


Show HN: HackerNews: With Privacy!* - <AUTHOR> https://hackernews.xyz <comment><USER2> Can you add a link to [https://github.com/adriel/awesome-hacker- news](https://github.com/adriel/awesome-hacker-news) ?

<comment><AUTHOR> Thanks, I've sent a PR.</comment></comment>


Ask HN: What's important to site administrators for flagged content? - <AUTHOR>

Created an alpha for a content-flagging system that lets any site have its users flag content. Useful for any site that has user-submitted content and would like a powerful moderation tool. Would like some feedback!<p>http://www.flagaroo.com <comment><AUTHOR> Clickable link:

<http://www.flagaroo.com></comment>


The new rules for reviewing media - <AUTHOR> http://kottke.org/10/03/the-new-rules-for-reviewing-media

<comment><AUTHOR> Something to consider: if Kottke really is right, and people are going to begin reviewing stuff according to form (over function) - then would that not make for an extraordinary startup opportunity? Current reviewing systems - <USER2> Amazon and elsewhere - aren't built to handle these kinds of reviews. And the product pages would be made a lot more helpful if there's a better way of filtering such information (i.e.: wait for the Kindle version, don't buy the hardcover; buy the audio book - it's got a sexy voice in it).</comment>


How I coded in 1985 - <AUTHOR> http://blog.jgc.org/2013/04/how-i-coded-in-1985.html <comment><USER3> That headline got me to thinking...

      Date:     Monday, April 29, 1985
      Age:      29
      Location: Santa Ana, California.
      Company:  electronics manufacturer
      setup:    dumb black & green 24x80 14" CRT terminal
      Hardware: Honeywell mini
      OS:       Honeywell proprietary
      DBMS:     Pick (Ultimate Flavor)
      Language: BASIC
      App:      Work Order Processing (I wrote from scratch.)

      Date:     Monday, April 29, 2013
      Age:      57
      Location: Miami, Florida
      Company:  aerospace manufacturer
      setup:    Windows PC, 19" & 32" flat screens monitors
      Hardware: who knows
      OS:       Unix
      DBMS:     Pick (Unidata flavor)
      Language: BASIC
      App:      Work Order Processing (I'm writing from scratch.)

That's right, everything I wrote in 1985 would compile and run perfectly in the environment I'm connected to in my other session right now. And everything I'm writing today would have also worked on that mini-computer back then. I wonder how many other programmers could make the same claim.

I have learned and continue to use many other client/server and web-based technologies since then but somehow, I always come back to "old faithful".

<comment><USER4> but isn't it questionable that you're (seemingly) writing the same stuff, from scratch, for 28 years now? shouldn't there be a work order processing standard solution for aerospace by now?

like an engineer re-inventing the process to build bricks anytime a new building is requested.

industry observation, not personal.

<comment><USER3> I'm not writing the same stuff. I've written over a thousand different custom applications _using the same technology_. That was my point. This environment is so tried and true and so effective, it still kicks ass after 28 years. Pretty amazing when you think about how much has changed.

 _shouldn't there be a work order processing standard solution for aerospace by now?_

I'm sure there is. Just like there are blog, website, & CMS standard solutions. And plenty of people using them. I never see them because those people would never call me. Like many other programmers here, I imagine, we only see the customers who need something custom, almost always for good reason.

<comment><USER5> +1 for Pick. I've met several people who were/are Pick devotees. Also heard stories about how Dick Pick was kind of crazy.

<comment><USER6> My mentor knew Dick, and I also heard stories!

<comment><USER7> A shameless plug for people wondering "what is this PICK thing?" I host <http://www.pickwiki.com>, in an effort to capture some of those fascinating (to me) stories. The guy that created it really was called Dick Pick.

I wouldn't choose PICK for a brand new project today, but as Ed says, there's life in the old dog yet...

</comment></comment></comment></comment></comment></comment><comment><USER8> This is neat stuff, but it also shows how far behind some schools can be in technology. Yes, I did the hex-keypad-assembler-in-your-head thing, but, by 1985 there were far better options. One word:

      Forth

Funny enough, I built an eleven processor parallel-ish computer in 1985 to control a large (three feet high) walking robot. That's in the days when you couldn't buy kits for this stuff. You had to design all of the mechanical bits, machine the parts, design the electronics, build the boards and then program it yourself.

The machine had eleven 6502's plus an additional one acting as the supervisor and comms link to a PC. The entire system was programmed in Forth, which I mostly rolled out from scratch. This included writing my own screen-based text editor. The PC ran APL.

The project was a bit more elaborate than that. As a very --very-- green college student I ended up presenting a paper on this project at an international ACM conference.

Once you bootstrap an embedded system with Forth the world changes. In '85 there were few reasons to slog it out using hand-coded assembler to automate a labeling machine. My guess is that he and/or his school did not have any exposure to the mounting Forth embedded community and so they ended-up doing it the hard way. That's still good. You learn a lot either way.

<comment><USER9> My experience so far is that my Forth is shorter, but my assembly has fewer bugs. Maybe this means that Forth wins for larger projects, because it's harder to read but easier to write?

<comment><USER8> Perhaps your last few words reveal the reason for the bugs? Forth --or any other language-- is hard to read only when someone doesn't know it or does not use it frequently enough. For example, I programmed in Lisp nearly every day for a couple of years. I could read Lisp without even thinking about it. That was fifteen years ago. Today I would struggle to make sense out of a non- trivial Lisp program for a couple of weeks.

If you use Forth as intended I can't see how you would introduce more bugs when compared to anything. Few languages are inherently buggy. Bugs can nearly always be traced to the programmer, not the language.

<comment><USER9> All bugs can be traced to the programmer, of course. I find Forth error-prone because it's untyped (not even dynamically typed) and you have parameter- passing errors, where you pass a parameter or get a return value from the wrong place. Traditionally, too, you don't have local variables, but I think that's not actually nearly as big a problem as it sounds.

That said, my last few words were exactly backward from what I meant to say. Harder to write than assembly, because you have to take more care to avoid stack-effect bugs and you don't have local variables; but easier to read, because your Forth isn't full of arbitrary noise about which register you're using for what.

<comment><USER8> You are not looking at Forth correctly. It isn't C, C++ or Java. It's a "raw" language that you should use to write a DSL. It's just above assembler yet many orders of magnitude faster to develop with.

Even with your comment backwards it makes little sense. I have developed in nearly every language between typing raw machine code with a hex keypad and Objective-C (not to moly that O-C is at the opposite end of the scale). I did years of Forth. Not one thing you are saying rings true. If you know a language you speak it. It's as simple as that.

<comment><USER9> Oh, I know that about the EDSL nature of Forth, and it's entirely possible that if I really knew Forth, my experience would be different.

On the other hand, if you were right that Forth is many orders of magnitude faster to develop with than assembler, we'd see people writing HTML5-compliant web browsers in Forth in a few hours. (I'm figuring: 100 person-years for e.g. Chromium, multiplied by ten for assembly, divided by six orders of magnitude (because five isn't "many") gives you about 8 hours.) So I suspect you're living in some kind of a fantasy world.

<comment><USER8> Nope. Wrong again. Writing a browser isn't the right fit for Forth. Could you? Sure. Should you? Nope.

Forth is great to develop with but comes with liabilities if used on the wrong project. I remember a product a friend of mine did using Forth. High end embedded system with custom hardware all selling for tens of thousands of dollars per unit. When he started to look into selling the business Forth became a liability. Nothing wrong with it. Te code worked well and was mostly bug-free. The company bidding to acquire his business did not do Forth and saw it as an impediment. They, like a million others, did C. Ultimately he sold the company for $16 million with a requirement to translate the code base to C under contract.

Today I use C for any time I need to do embedded work. Having a foundation in a diverse range of languages means that you tend to use a language like C as a toolset to create an efficient development environment through domain specific libraries, data structures and data representation.

I rarely find the need to get down to Forth these days. It made a lot of sense with 8 bit resource-restricted microprocessors. Today you can have a 16 or 32 bit embedded processor for a few bucks and have it run at 25, 50 or 100MHz. Different game.

<comment><USER9> I'm still skeptical about this "many orders of magnitude" nonsense. Even on an 8-bit resource-restricted microprocessor, what could you write with Forth in a day that would take half a century with a team of 60 people in assembly? Or what could you write with Forth in ten minutes that would take you 60 years in assembly? I think you're talking nonsense and being condescending to try to cover it up.

And if almost all projects are "the wrong project" for Forth (which seems to be what you're saying, although I don't agree with it) then does it make sense to compare it to a general-purpose language like assembly? You make it sound like a DSL like SQL, not like a framework for all DSLs.

<comment><USER8> You know. You are right. I don't know what I am talking about. Thanks for helping me sort that out. Good day.

<comment><USER9> I'm not accusing you of ignorance; I'm accusing you of talking nonsense, which is to say, writing a bunch of bullshit without regard to whether it's true or false. I'm sure you know perfectly well that you're talking nonsense, as does anybody else who's read this thread, and that's why you're responding with this kind of diversionary aggressive bluster.

But I find it disappointing, and I wish you'd engage the conversation at a rational level instead of bullshitting and sarcasm. It's a missed opportunity to share your knowledge — not with me, but with whoever else reads the thread in the future.

<comment><USER8> "I'm sure you know perfecly well that you are talking nonsense, as does anybody else who's reading this thread"

How do you expect me to answer something like that?

You don't know the language and are intent on having an argument with me about this?

When Forth is used correctly productivity gains become exponential (the limit being application dependent). So, yes, when used correctly you can go 10, 100 and even 1,000 times faster than assembler.

A good comparison would be to look at the productivity gains had when writing raw Python vs using a library such as SciPy. The productivity gains are orders of magnitude greater than the raw language. And, even raw python is orders of magnitude faster than writing assembler.

What I said was that [Forth] "It's just above assembler yet many orders of magnitude faster to develop with." and you seem to think this is nonsense. Well, you are wrong. What else do you want me to say. Go learn the language and we can have a conversation. Using it casually doesn't produce the same level of understanding you get from dedicated non-trivial usage. This is true of any language or technology.

I am not insulting or diminishing you. Perhaps you are taking it that way. Relax. It's OK to not know everything, I certainly don't and I've been designing electronics and writing software for a long time.

Here's a place to start:

<http://www.ultratechnology.com/forth.htm>

Here's a good Q&A:

<http://www.inventio.co.uk/forthvsc.htm>

If I have the time later tonight I might post a follow-up with an example of what development flow might be for, say, developing code for a multi-axis CNC machine.

<comment><USER8> Te key argument behind this thread centered around my assertion that Forth can be orders of magnitude faster than assembler. That means 10, 100, 1000 --or more-- times faster to code a solution in Forth than in assembler.

I haven't done a any serious work in Forth in about ten years, so coming up with an example for this thread would have consumed time I simply don't have right now.

The reality is that ANY language is orders of magnitude faster than assembler. The idea that this assertion is being challenged at all is, well, surprising.

I happen to be working on a project that, among other things, makes extensive use of nested state machines. The main state machine has 72 states and some of the children FSM's have up to a dozen states. Writing this in C it takes mere minutes to lay down a bug free structure for the execution of the entire FSM set. It should go without saying that doing the same in assembler would take far longer and result in a mess of code that would be difficult to maintain.

Assembler has its place. I have written device drivers, disk controllers, motor controllers, fast FIR filters, pulse/frequency/phase measurement and a myriad of other routines across a number of processors all in assembler. These days I'd venture to say the vast majority of embedded systems are done in C. Coding is faster, far more maintainable and embedded optimizing compilers do an excellent job of producing good, tight and fast machine code. As much as I love and enjoy Forth this is one of the reasons I rarely use it these days.

I still think it is important to learn about TIL's as it adds a layer of thinking outside the box one would not otherwise have.

<comment><USER9> I agree that learning about threaded interpretive languages is important, despite the fact you allude to that Forth compilers (at least those I'm familiar with) produce deeply suboptimal code.

I agree that writing in a high-level language is faster — quite aside from the availability of library functionality like hash tables and heaps and PNG decoders and whatnot, you have less code to write and to read, and less fiddly decisions about register assignment and memory allocation to make, possibly get wrong, and have to debug.

But that difference is a constant factor — it's not going to be even 1000, and it's never going to approach "many orders of magnitude", which was the nonsense claim I took most issue with. (Two or three isn't "many" in my vocabulary.) Typically I think it's about 10 to 30, which is nothing to sneeze at in the real world, but which would be insignificant compared to your absurd earlier claims.

You _can_ get a "many orders of magnitude" boost — rarely — from libraries or static checking. Neither of these is Forth's strong suit.

Nested state machines are actually an interesting case — often by far the most convenient way to write them is with one thread per state machine. C by itself doesn't give you the tools to do that predictably, because you can't tell how much stack space you're going to need — it depends on your compiler and compilation options; assembly and Forth do. So it's one of the rare things that might actually be easier to do in assembly than in C. (But if you have some memory to spare, maybe setcontext() is plenty good enough.)

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> It's kind of useful to write out code by hand, or at least pseudo-code...I'm not a neuroscientist but I wouldn't be surprised if it turns on a different part of the brain. Last week I was sitting in the park with nothing to do and I reflexively pulled out my iPod to play Sudoku on it. Since it was one of our first nice days I felt bad about that so I just wrote out the Sudoku grid on a pad of paper and solved it from there. It was surprisingly difficult, even though it was an easy puzzle (the iOS version highlights which minigrids on the main grid that a given number appears in for starters).

Anyway, anytime I think about what a pain in the ass writing, or even just typing out code can be, I refer to the chapter in iWoz in which, lacking development software at the time, he "wrote out the software [for Little Brick Out] with pen and paper and then hand assembled the instructions into 4096 bytes of raw machine code for the 6502"

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

<comment><USER11> I agree with you. I think the physical motion of writing is involved in the process, activating neurons that just flicking fingers doesn't.

Would be fascinating to see it in an fMRI.

<comment><USER12> There is a psychiatric condition known as 'graphomania' in which one has an obsessive compulsion to write, the content being secondary in importantce. So it's conceivable that such a structure in the brain exists and can become overstimulated.

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

</comment></comment></comment><comment><USER13> Brain debugger.

I honed mine early enough that the most I need from a program is a few Sprintf statements just to give the brain debugger some context when the application is dealing with external data or data transformation.

I personally find it hard to turn off the brain debugger and rely on software. Originally this was because you'd very much be used to the debugger being wrong. As in, "Ah, but in this case the debugger thinks X but Y is the case", and later just because the brain debugger had become so effective that not using it seemed like a lot of hard work for little extra gain.

How other programmers visualise or handle code in their brain, and how they put together new functionality in their head, is deeply fascinating. Even if you have self-awareness enough to grasp the basics of how you do it, you can be reasonably sure that each of us does it slightly differently.

<comment><USER14> I can often do that on code I've written or am intimately familiar with, but tons of the code I work on is code that someone else wrote and that I rarely interact with. As a result, I _love_ my debugger.

</comment></comment><comment><USER15> Let's put the code to text and test if it runs?

I've made a start, but it takes a little longer than I'd thought (handwriting is often hard to read). Let's do some crowdsourcing?

[https://docs.google.com/document/d/192TW6ghnmMFnVaNvIe98aqTG...](https://docs.google.com/document/d/192TW6ghnmMFnVaNvIe98aqTGkY6gkZF4CbzMaQPxOlo/edit?usp=sharing)

Edit (+12mins): I see lots of people viewing, but not a single edit over the past 10 minutes.

Edit (+60mins): One other anonymous user helped at last and _the document is complete_ , but didn't leave his username in the contributors list yet. Anyway, thanks!

Now the big question is how to run this. _If you have any idea how to run it, let us know!_

<comment><USER16> There are manuals and an emulator here: <http://www.floodgap.com/retrobits/kim-1/>

</comment></comment><comment><USER17> The mental debugger is definitely one of the tools I'm glad I developed early.

For me, it was by reverse engineering. I started cracking software and eventually moved on to white-hat black box security auditing, and that quickly taught me how to evaluate execution flow mentally.

I find that even though I'm writing high-level Ruby web apps now, my ability to rapidly follow code around in my head lets me debug more quickly and effectively than many of my co-workers.

I firmly recommend trying reverse-engineering for anyone who hasn't - it will forcibly provide a lot of the same metal execution mapping abilities while feeling more relevant than writing machine code or assembler out on a piece of paper. And once you learn the basics, everything transfers back up to higher- level languages pretty well (with the exception of mental hex arithmetic, which will still come in handy as soon as you segfault your high-level language's runtime). Plus, when reverse-engineering, you can't fall back or get frustrated and use a compiler - unless you have an IDA + HexRays license for some reason, you're stuck figuring things out yourself.

As a side-note, it's always fun watching my dad work - he's an oldschool mainframe guy and he'll sometimes solve common setup issues using JCL or REXX stuff with a modified date sometime in the late 1980s.

</comment><comment><USER18> This brings back a lot of memories ... Hand-compiling code for a COSMAC ELF (<http://www.cosmacelf.com/docs.htm>) and punching it into memory on a hex keyboard (the original had a switch for each bit and 4 push-buttons for load, run, etc).

By the time I was coding for 6502 and 8088 processors (still in assembly language - I was after all an embedded engineer), I had assemblers and an 80-column by 43-line text editor.

Aren't we spoiled today? I wouldn't want to go back, but I've also found that the low-level experience with machine code is something many "newer engineers" are missing ... it's an appreciation of the hardware that you can't get any other way.

<comment><USER19> Computer Engineering still offers this experience. It's the main reason I picked this major when I returned to school after many years as a programmer. Most of the graduates from here go on to software development. The low level experience makes them well suited to work on embedded systems, device drivers, and operating systems.

</comment></comment><comment><USER20> I did my bachelors (in India) in the mid-90s, and we all coded this way in our 8085 labs. Many of us even did final-year projects on similar-looking 8085 kits.

Given that such kits are still sold [1] in India, I guess quite a few engineering students still learn to code like that.

My bosses, though, had all worked on punched cards.

[1]: [http://www.dynalogindia.com/products/education- solutions/808...](http://www.dynalogindia.com/products/education- solutions/8085-microprocessor-262.html)

<comment><USER21> >>Given that such kits are still sold [1] in India, I guess quite a few engineering students still learn to code like that.

Did my Bachelors(in India) in 2010's, and yes even we coded this way in our 8085 labs!!! Nothing has changed. Talked to my cousin who is now in his 3rd semester, They to start out coding the same way. Its 2013 and NOTHING has changed.

</comment></comment><comment><USER22> Not to go all Yorkshire, but I used to _dream_ of having a KIM-1. My first computer — the best thing I could afford — was a Quest Super Elf [ <http://www.oldcomputermuseum.com/super_elf.html> ] with 256 bytes of RAM, and a processor on which a recursive subroutine call took 16 instructions.

On the other hand, by 1985 I was doing QA for a 64-bit Unix environment.

<comment><USER23> You're joking, this was a wonderful machine. Especially the CDP1802 processor with its ability to use any register as a PC. I've very nice memory with this chip.

<comment><USER22> In some ways it was nice. For those unfamiliar:

The 1802 had sixteen general purpose 16-bit registers. Any one of these could be selected as the program counter. In a tiny embedded system (which is what the part was meant for), you might choose to designate one as the 'normal' PC and reserve a few others for important subroutines, which could then be invoked with a one-byte 'SEP _n_ ' instruction. Similarly you could implement coroutines or simple task switching by switching the selected PC between a pair of registers.

On the other hand, there was no conventional call instruction. The SCRT ("Standard Call and Return Technique") for recursive or reentrant subroutines essentially involved defining (non-reentrant) coroutines to perform the 'recursive call' and 'recursive return' operations.

</comment></comment></comment><comment><USER24> I remember playing around with machine instructions on the 6502. I wouldn't call it hand assembly; it was more like copying and groping around. I probably wrote less than 200 lines in my life.

But what a neat feeling! There's something about putting in these numerical codes and seeing a graphical result that I haven't experienced since then. Yes, higher-level languages rock, but dang, this is coding _next to the metal_.

After learning a bit about logic gates and playing around with the theory, there was an incredible feeling of discovery. Somehow I had deciphered the code of computers, and was finally speaking their native language. This brought back great memories. Thank you.

<comment><USER25> I know that feeling. My undergrad CS course had a rigorous electronics component where we coded in ASM for the 8086. One of my fondest moments of that time was when I wrote a program that would split the terminal screen into two halves of different color, and display what you typed on one side and the inverse case on the other.

This could probably be done with less than 50 lines in python, but doing it in assembly, calling all those interrupt routines, making sure your registers contained all the right values, man, when it finally worked, it was the greatest feeling in the world!

<comment><USER24> Wasn't it? And for that moment, you could look out and imagine "Damn, I could code the whole freaking thing like this!"

Then you realize it would take around 30 years, but still -- it was doable. You finally figured out how it all worked. _You could make the computer do anything it was capable of doing_. There was no more mystery there.

Fun stuff.

<comment><USER9> Do you really think it would take 30 years? The NAND-To-Tetris kids do most of it in a semester, and they're starting at the level of individual gates.

I mean, Chuck Moore has been doing it for about 30 years, but he had a working top-to-bottom system after less than five years.

Here's what I think it would look like:

Week 0: build a working interactive Forth system that can compile itself, in machine code. This is assuming you already have hardware and a way to boot it into some code you wrote. If not, that could be a matter of minutes or of months.

Weeks 1-3: build an interactive high-level language interpreter on top of it. Say, JS.

Week 4: enough of TCP/IP to do HTTP GET.

Week 5: write a bitmap font editor and a minimal filesystem.

Weeks 6-8: parse HTML (more or less), lay it out with a simplified box model, and draw it to pixels on a canvas, using a pixel font.

Week 9: cookies, HTTP POST, XMLHttpRequest.

Week 10: a more elaborate filesystem, maybe based on Git.

Weeks 11-12: some more HTML5 features, maybe including WebGL.

Weeks 13-14: TLS.

This is sort of cheating because you're taking advantage of our previous 70 years of experience to figure out what's worth building, and you're likely to end up spending a fair bit of time going back and retrofitting stuff onto previous iterations — JIT compilation, say, and multitasking — but it still seems like rebuilding the personal computing environment ought to be more like a one-semester project than a 30-year project.

You could argue that you get a huge speedup by not writing stuff in assembly, and I agree, but I think that's only a constant factor. You could easily write assembly code that maps directly onto JS semantics:

            ;;; invoke getContext("2d") on the canvas object
            .data
        sgetContext: .asciz "getContext"
        s2d: .asciz "2d"
            .text
            mov $sgetContext, %eax
            call GetProp
            mov $s2d, %edx
            call InvokeMethod

That's more code to write and read, but only by a linear factor. So it might take you two semesters, or four, but not 60.

</comment></comment></comment></comment><comment><USER26> Dude wrote _in pen_. We are not worthy, brothers and sisters. We are not worthy.

<comment><USER27> As did most of my EE brethren in school in 2009. Trust me, writing code in pen does not a master programmer necessarily make.

<comment><USER28> Jokes aside, writing down something like OP's software in pen from scratch would require some degree of proficiency and confidence. I can still see some pencil around the paper, in any case :) (Not to diminish the achievement - <USER2> a young programmer, I'm always impressed when I see these things and I'd love to see more and more of them!)

</comment></comment></comment><comment><USER29> That's late for hand coding assembler (and very late for a KIM 1). Last time I did any hand assembly was 81/82 for a ZX81. Graduated to an Apple //e where I wrote my own assembler using the mini-assembler in the integer basic ROM and Apple Writer I as a text editor. By 1984 I had gotten my hands on the Apple ProDOS assembler so my bodged mini-assembler got put out to pasture.

Mind you I've just got an Atari 65XE from ebay today which I will now have to explain to my wife (I always thought the Atari graphics was neat and wanted to play with the display list stuff but never did so at the time)

</comment><comment><USER30> The comments made me go look for Compute! 168 issues available on archive.org: <http://archive.org/details/compute-magazine>

</comment><comment><USER31> That's really fantastic that he was able to save his work from 28 years ago. I really wish I had the foresight to do the same from only five years ago, though I expect the result would be less like unearthing buried treasure and more like finding what stinks in the fridge.

<comment><AUTHOR> I saved a lot of stuff: [http://blog.jgc.org/2009/08/in-which-i-switch- on-30-year-old...](http://blog.jgc.org/2009/08/in-which-i-switch-on-30-year- old.html)

<comment><USER32> I am just beginning to worry about this sort of thing (#) but what age were you in 1979/82 with your sharp computer, and I have assumed I will be trying to guide my son / daughter onto emulators (nand2tetris etc) rather than real physical machines - or are there real physical machines which are simple enough and have root on to be early hacking machines?

(#)<https://github.com/lifeisstillgood/importantexperiments4kids>

<comment><USER33> I gave my daughters TRS 80 model 100 computers for their tenth birthdays. It has a 8085 processor and really a quite powerful basic (the last software bill gates worked on, and its not bad) with a bit mapped display. They run for weeks on 4 Aa batteries and have a better keyboard than most modern laptops. here is an emulator available, but since they go for about $30 on eBay, I like having the real thing.

<comment><USER34> I bought a box of these recently and they are really great; I used to have TRS 80 III and 4 so when I saw I box (don't hit me) of model 100s for 10 euros I bought it. They're a very nice addition to my museum and batteries last forever. The box had 1 Sharp PC-1211 too. Talking about battery life :)

What always amuses me is that my computers from around 2000 are not working anymore (heck, most laptops I have from the past 10 years are not even booting anymore) while computers from my parents basement which are around 30 years old just work like they just came from the shop. Even the Philips computers from that time who had known capacitor issues in the power circuitry work like time didn't happen.

</comment></comment></comment></comment></comment><comment><USER35> I used an East German version of the KIM (LC80) for lab experiments. In 1999! Tying in code was slow and debugging even slower, but the hardware I/O was easy, no fuzzing around with RS232. Ahhh, good times.

</comment><comment><USER36> I spent several weeks during the Summer of '82 living in dorms and taking college courses at UCF. My suitemate, John, was writing Petman in machine code, on and for his PET 16. An enduring memory for me and one which reminds me that there are programmers who are 100 more productive than others - I was at the stage of typing in code from magazines.

</comment><comment><AUTHOR> Wow. I should really dig out more stuff from my box of old programs. This one blog post is at almost 100,000 page views.

</comment><comment><USER11> And this was just a small utility. Then think about things like the Apollo program being coded the same way (or more obliquely on punch cards).

There is a finite and limited amount of complexity this allows for. We've been given quite the catch-22: the ability to build increasingly complex system while needing to maintain those increasingly complex systems.

On whatever project you are currently working on, how much less code do you think you'd be writing if you had to hand write it? Where would the project be better for it and where would it be worse?

</comment><comment><USER37> This weekend for the ludum dare someone made an implementation of Pong on his C64, in a weird turn of events he had to resort to printing out screenshots of memory dumps, run those through an OCR. But the OCR was buggy and he had to check every byte by hand.

[http://www.ludumdare.com/compo/2013/04/29/ponkmortem/#more-2...](http://www.ludumdare.com/compo/2013/04/29/ponkmortem/#more-250547)

Reminded me a bit of this story..

</comment><comment><USER38> As a relatively new (5 or so years experience) programmer, 1985 sounds like hell.

<comment><USER39> Software development basically peaked in the mid 1980's.

Macintosh Common Lisp circa 1987: [http://basalgangster.macgui.com/RetroMacComputing/The_Long_V...](http://basalgangster.macgui.com/RetroMacComputing/The_Long_View/Entries/2013/2/17_Macintosh_Common_Lisp.html), specifically: [http://basalgangster.macgui.com/RetroMacComputing/The_Long_V...](http://basalgangster.macgui.com/RetroMacComputing/The_Long_View/Entries/2013/2/17_Macintosh_Common_Lisp_files/inspect%20and%20describe.jpg)

Firebug circa 2013: <http://getfirebug.com/logging>, specifically <http://getfirebug.com/img/logging/consoleDir.png>

<comment><USER40> In the 70s and 80s programmers were working on fixing the problems that programmers faced in the 70s and 80s: memory management, GOTO spaghetti, efficient assembly etc. In response we got heaps, garbage collectors, functional languages, virtual machines, compilers, debuggers, IDEs.

Now most programmers spend most of their time dealing with problems of persistence, networking, parallelism, security, and massive codebases. In response we are creating scripting languages with slightly different syntax, adding closures to Java, and arguing about vim vs emacs. We're so obsessed with solving the problems of the 80s, my way, that we've just gotten trapped there.

</comment></comment></comment><comment><USER41> I have fond memories of programming my "Arnesh" 68 K board around 1995. We used them in our microprocessor course, and since I had so little time in the lab, I bought my own board. After the class ended I would lend it to friends until it came back fried. One of these days I need to dig it out and try to repair it, now that I feel a little more secure with a soldering iron.

</comment><comment><USER42> Finally, some programming this old fart recognises. Why did it all get so complicated?

Yeah, I know. Rose tinted and all that.

<comment><USER43> > Why did it all get so complicated?

Two words: 'the web'.

Slightly longer: we're re-inventing the wheel through a very roundabout path, I think right now we've gone back in time to roughly the mainframe area, it won't be long before someone will invent the mini computer all over again only this time it will be a local cluster in a box. Next after that the PC, a 'personal cluster' with a few 100 nodes the size of the desktop machine you had last year.

<comment><USER44> I don't think it was the web. The pre-web applications with GUI clients running on PCs and servers on mainframes were already pretty complicated (remember Microsoft's ever-changing object APIs, or CORBA?). What made things increasingly complicated was the ever-growing power of computer and communication hardware, which made it possible to create larger and more complex systems. If you're limited by having to run your software on a machine with a total of 256K of memory (like the first machine I used Unix on in 1980), you just can't build something as complex as what you can build today on a cheap laptop.

<comment><USER43> We were building clusters of PCs in the 1980's using arcnet. Those were pretty large and complex systems, they used a very elegant message passing protocol. And that definitely wasn't the only game in town for large and complex systems (but it was one of the most productive ways of constructing those systems with a small team).

</comment></comment></comment></comment><comment><USER45> nice 'syntax highlighting' ;)

<comment><USER46> I was thinking the same thing. I, too, wrote many sheets of hand-coded 6502 assembly back then, but I didn't think to use a multi-colored pen.

</comment></comment><comment><USER47> I wrote code like this in 1997. First year in college, micro processing course. So I wrote a simulator for the 6800 chip, and an assembler. So I didn't have to wait every Saturday at 8:30am to run my code. The professor wasn't impressed at all when I showed him my program.

</comment><comment><USER48> This made a big wave of nostalgia wash over me, I learnt to write 6510 assembler on my C64.

</comment><comment><USER49> Articles like these make me realized I am completely spoiled. I am in no position to complain about debugging when modern technology afforded me a much easier time than 30-40 years ago.

</comment><comment><USER50> I had a KIM-1 in the late seventies and for several years I would run into other people who used one, but 1985 seems really late for programming on one of these. For me, the KIM-1 was my first experience with programming and a computer of any sort. It influenced my taste for low-level concepts, not only through x86 assembly programming for graphics in the 90s but much later in the lambda calculus and combinatory logic. I'm tickled that the KIM-1 is seeing such a resurgence of interest.

<comment><AUTHOR> It was late to be programming one but it was (a) what was available where I was and (b) it had good I/O for the interfacing.

<comment><USER43> But that FSK demodulator was incredibly finicky. More than one tape I recall I had to try to read a lot of times while tweaking the playback speed on the recorder!

</comment></comment></comment><comment><USER51> Oh, the pleasure of writing hex dumps into monitors....

</comment><comment><USER52> I was in high school in 1985 and our computer club built a Heathkit HERO-1, which had a 6808 processor and also had to be programmed through the hex keypad. After a few months of hand writing machine code and typing the opcodes into machine, I wrote a simple assembler on the Apple //e that would then download the assembled programs to the robot through the RS-232 interface. So much fun.

<comment><USER53> My dad had one of those. So cool, I enjoyed keying in "programs" on the head keypad to make it move and speak (I was around 9 or 10); I would have loved your tool (if I could get it for the Osbourne we had then...).

</comment></comment><comment><USER54> heh. i also programmed a stepper motor in ~1985 (after building the driver board). but it was z80-based (and it never ran smoothly - when i left i think they were going to try adding some noise to the timing, but that didn't sound likely to me - more likely i had a crossed wire in the hardware...). anyway, i am pretty sure i had an assembler (and this was working for a one-man company in the backwoods of n yorkshire). why were you hand assembling?

</comment><comment><USER55> one of the good things about a formal CS education (well, mine anyhow) is that they force you to do things like write in assembly. obviously there's far less immediate practical application these days, but the exercise is definitely valuable, and probably not something I would have done voluntarily. Actually, it feels like something I would have thought sounded cool, tried, and then given up on when it got annoying.

<comment><USER56> We had to make adders, flip-flops, etc (on paper, not physically) and those were used to build an ALU and (I think) a memory-switch bank.

It was very cool to know that when the world ends I can build a new computer, from scratch.

<comment><USER9> What are you going to make the logic devices from? I've speculated about this extensively in [http://lists.canonical.org/pipermail/kragen- tol/2010-June/00...](http://lists.canonical.org/pipermail/kragen- tol/2010-June/000919.html) but I still don't have a working scratch-built computer.

<comment><USER57> You can make transistors with some...hazardous components, but you may want to start with relays or tubes and resistors (which could, theoretically, just be varying lengths/guages of wire) and build NAND gates. It would be big, hot, noisy, slow, and a huge waste of your time, but there were computers before semiconductors.

<comment><USER58> For the curious: here's how you make your own tubes from glass, metal wire and metal sheets: <http://m.youtube.com/watch?v=EzyXMEpq4qw>.

</comment></comment></comment></comment></comment><comment><USER59> Best coding I do is with a pen and paper.

</comment><comment><USER60> That makes me wonder what we will think 30 years from now, when we look back at how we develop software today.

</comment><comment><USER61> Articles like this inspire awe and shame in me at the same time. Is there an emotion called Aweshame?

</comment><comment><USER62> "...typically I reach for the brain debugger before gdb".

Gdb, wow. So he'll still coding like in 1985.</comment>


Netflix packets being dropped every day because Verizon wants more money - <AUTHOR> http://arstechnica.com/information-technology/2014/02/netflix-packets-being-dropped-every-day-because-verizon-wants-more-money/ <comment><USER2> I really don't get it. Customer wants to use Netflix, buys a service from Verizon to get/access "what he/she wants". And Verizon wants to charge Netflix for that? Always a WTF moment for me.

<comment><USER3> Verizon doesn't care what customers want. Cellular is a cartel if ever there was one.

<comment><USER4> This is Verizon the FIOS/DSL company, not the cellular carrier. My understanding is that the VZW unit is barely related to the cabled connections.

Not that this makes them any better, of course.

</comment></comment></comment><comment><USER5> Correct me if I'm wrong, but isn't this solely Cogent's fault?

Settlement-free peering agreements tend to be fine as long as symmetrical traffic is sustained, and that's not the case at the moment, meaning Cogent are in breach of the agreement.

So... Cogent need to re-negotiate the peering agreement with Verizon, which is what Verizon is demanding, quite fairly?

<comment><USER6> One of the Ars comments pointed it out: Residential service is almost all asymmetric and heavy on the download side. The residents paid for plans to deliver data in certain advertised up and down rates. Why should Verizon get the resident's to pay for the pipes, and charge yet again to deliver data downstream just because it's a popular service.

Though there's a media undercurrent to treat peering disagreements separate from Net Neutrality, I think most users would differ.

<comment><USER5> That makes sense, thank you.</comment></comment></comment>


Craig Federighi and Greg Joswiak Discuss Apple Silicon, Lack of Boot Camp - <AUTHOR> https://daringfireball.net/thetalkshow/2020/06/24/ep-286 <comment><USER2> Oh, that's going to be bad.

I need to be able to run Docker on my developer laptop, and expect a lot of other developers using OS X do too. Upgrades are going to get uncomfortable if they don't have a better solution in the next year or two.</comment>


The Largest Unethical Medical Experiment in Human History - <AUTHOR> https://smartech.gatech.edu/handle/1853/62452 <comment><AUTHOR> Interesting old thread: [https://news.ycombinator.com/item?id=17967372](https://news.ycombinator.com/item?id=17967372)

</comment><comment><AUTHOR> I do not think 5G caused the corona virus BUT... EMF seems more dangerous than I thought.</comment>


Firefox Private Browsing vs. Chrome Incognito: Which Is Faster? - <AUTHOR> https://blog.mozilla.org/blog/2017/11/20/firefox-private-browsing-vs-chrome-incognito/ <comment><USER2> One of the interesting aspects about the recent Firefox Quantum launch, apart from the amazing product itself, is the marketing. It's been incredible to read the well written blog posts that appeal to a variety of audiences. Though most are focused on the tech behind Firefox, a few, like the linked post, appeal to a wider audience. Anecdotal, but the blog posts leading up to the launch got me excited enough to download and use the beta version of Firefox for the first time and it lived up to the marketing. I've tried switching to Firefox multiple times over the past few years, but I always ended up switching back to Chrome for the speed. It might be different this time.

What happened to the controversial cliqz program that they were testing? Last I checked, Mozilla did not respond to the privacy concerns of the integration.

<comment> lloyd-christmas > It's been incredible to read the well written blog posts that appeal to a > variety of audiences.

I enjoyed the read, but this is somewhat irrelevant unless a variety of people actually read it. I'm reasonably confident none of my friends read Mozilla's blog.

<comment><USER3> > I'm reasonably confident none of my friends read Mozilla's blog.

The point, though, is that they could. If you wanted to drop links to them with more details about _why_ the should be excited about Firefox again, Mozilla is actually producing those.

This is one of those things that only seems unimportant until people stop doing it. Then you find out it was actually a pretty big deal.

<comment><USER4> Mozilla has definitely done a good job so far.

If we do our part then everyone might be rewarded with a healthier ecosystem over the next months. (And "everyone " includes die hard Chrome users as well as people forced to use IE at work.)

Edit: what I mean is that all consumers generally benefits from healthy competition.

</comment></comment></comment></comment><comment><USER5> Remember that Chrome beat Explorer by being faster. Users care about that more than they care about privacy et al.

Now - Chrome is slower vs Firefox Quantum's new privacy because of the ad networks. The ad networks have had no incentive up until now to improve their shitty code.

If people start switching to Firefox and turning on privacy more to get faster browsing - they will lose the game entirely.

All that's needed is for a modest uptick in usage of this mode and for some ad networks to get scared. They spend some of the pile of money they swim in to not ruin everyone's browser experience and bam - we get a less crappy internet.

If they don't shape up - then we get a faster internet with better privacy. Even better.

<comment><USER6> Don't forget that Google advertises Chrome on the most popular website in the world google.com, as well as in a lot of it's products. Chrome also ships with Android, the most popular mobile operating system.

I assume these channels are a huge reason why people adopt it. I love the new Firefox and use it every day but, unfortunately, I don't think it will come close to Chrome's market share by just being slightly better.

<comment><USER7> Google even does scummy bundling of chrome with popular downloads. I don't understand how people don't have problem with that.

<comment><USER8> "Hey, I've noticed you have Google Calendar installed on your phone! You're missing a bunch of other crapware! Install it now!"

Never. Enable. Notifications. They're just product management spam.

</comment></comment></comment></comment><comment><USER9> I really want Firefox Quantum to be at least as good as Chrome. But when I tried watching some HTML5 videos, it started using a significant amount of CPU on my Mac and it did not stop.

My experience for 3 major browsers on MacOS as follows:

\- If you want noticeably longer battery life when on the travel.

1- Safari

2- Chrome/Firefox

\- If you want seamless browsing experience.

1- Chrome

2- Firefox

3- Safari

<comment><USER10> Quantum has been really good performance wise on most sites. It's most flagrant on the Stripe API docs, which are sluggish as hell on Chrome Linux and butter-smooth on Firefox: [https://stripe.com/docs/api](https://stripe.com/docs/api)

However, I have two major tab-management issues with Firefox which make it near-unusable for me:

1\. No support for "scroll wheel to switch tabs" (scroll on tabs to switch between them). This is a feature common to nearly all Linux software and Firefox removed it a few versions ago. Quantum killed "Tab Wheel Scroll" which reimplemented it.

2\. No support for multi-select tab management, which Chrome is amazing with. If you didn't know, in Chrome, you can ctrl+click and shift+click tabs to select multiple at once and close, move or snap all of them at once like in a file manager. Super useful.

<comment><USER11> > sluggish as hell on Chrome Linux and butter-smooth on Firefox: > [https://stripe.com/docs/api](https://stripe.com/docs/api)

Hi; I work on scrolling/rendering in Chrome. Thanks for bringing this to my attention, that is some super janky scrolling in Chrome >_<. I've filed [http://crbug.com/786991](http://crbug.com/786991) for us to look into it.

Some technical background (since this is HN after all); at a quick glance there are two things going wrong here in Chrome.

1\. We would normally want to 'composite' the scrolling region here, which means we paint the pixels only once into a saved layer and then just slide that up and down as you scroll. I believe that is not happening on the Stripe page because of the unusual way that they are doing the split-panel background. Looks like we're currently unable to tell that the background is an opaque color, so we can't apply sub-pixel font AA[0] - and on low DPI we will refuse to composite in that case.

2\. Chrome's repainting of this page is really slow. :(. Firefox Nightly is also repainting the page when you scroll (as far as I can tell), but they're definitely doing it much faster than Chrome!

So our goal will be to try and figure out how to composite this page, and if that's not possible then we'll have to dig into the slow painting.

Note: Because we composite more readily on high DPI devices (where sub-pixel font AA[0] doesn't matter), this site should scroll nice and fast on a high resolution display. This includes most new laptops, all (?) phones/tablets, etc.

[0]: [https://en.wikipedia.org/wiki/Subpixel_rendering](https://en.wikipedia.org/wiki/Subpixel_rendering)

<comment><USER10> Thanks a lot for the insight! Really cool to see a reply straight from the horse's mouth :)

> _Note: Because we composite more readily on high DPI devices (where sub- > pixel font AA[0] doesn 't matter), this site should scroll nice and fast on > a high resolution display. This includes most new laptops, all (?) > phones/tablets, etc._

Not the case for me. Touchscreen display on a UX asus laptop, 3.2k resolution on linux with intel card. Scrolling using the touchscreen is snappy, scrolling using the scroll wheel (synaptics emulation) is even worse than on my desktop.

<comment><USER12> I think it depends on what your DPI is set to. The resolution itself doesn't necessarily mean much, but typically 3k+ resolutions are accompanied with > 96dpi configurations.

</comment></comment></comment></comment></comment><comment><USER13> I'm really liking what Firefox is doing around Private Browsing and FF57 has brought me back to Firefox as my primary browser.

With the amount of tracking going on these days, a FF Private window is literally the only way I'll sign into either Facebook or Twitter. I wish they would also enable Tracking Protection and Do Not Track by default on non- Private browsing as well, but that was an easy enough change for me to make.

<comment><USER14> I know at least with Do Not Track, advertising companies were asserting that if a browser had activated it by default for the user, then the user showed no intent on blocking the tracking; it was a decision made for them by the browser, and thus couldn't be interpreted as the user's wish to not be tracked. Same argument can be made about Private Browsing and Tracking Protection.

Perhaps Firefox should display a "privacy start screen" the first few times the browser is launched after downloading it, explaining the features to the user, and allowing them to opt-in on their own decision?

For things like DNT or Tracking Protection, I imagine most common users do not know about these things so the usage rate is much lower than it "should be".

Fun fact: in Firefox you can actually turn Tracking Protection on to use it _all the time_ , not just when you're in Private Browsing mode: Options > Privacy & Security > Tracking Protection > Always

<comment><USER15> Using private browsing is definitely intentional, it's activated by the user and not a default setting; besides it's actively preventing tracking from taking place, it's not politely asking if advertisers would be so kind as not do what they exist to do as DNT was naively attempting.

</comment></comment></comment><comment><USER16> My only problem with Firefox these days is that extension overhaul completely screwed with how I browse, store & catalogue links & things I find. The fact things like the tab groups extension are broken (and, the fact that it was removed when it was a baked in feature years ago), is ridiculous. I see no reason why they can't add this feature back as part of the browser.

<comment><USER17> I'm on the same boat and, to be honest, it's making me think about _leaving_ Firefox. Looking at the number of forks that have appeared recently, I'm not the only one.

Let me explain: I've used Firefox since the beginning (and Navigator before that). I like Mozilla and I agree that most of the changes that they've done internally in quantum were kind of necessary (although many could have been handled better).

However, along the way, they've broken the way many people use Firefox and the only answer the frustrated users seem to get is "but it's fast".

They've changed the UI to be similar to Chrome, to the point where the reload button is not where it used to be. But it's fast.

They've broken the extensibility, which was (at least for me) the main reason to use Firefox instead of Chrome, Chromium or any of the others. You could do things in Firefox that the others couldn't even dream of. But it's fast.

While doing this, they've alienated plenty of plugin developers, people who loved the Firefox ecosystem, some of which have had to rewrite their plugins thrice already (with some being told to, essentially, "bugger off"). But it's fast.

As far as I can tell, it's using more resources in MacOS than the old version, at least the processor runs hotter and the fans kick in more often. I've had issues with the CPU use sky-rocketing, but I believe that has more to do with opening multiple tabs quickly rather than with one specific page. But it's fast.

Honestly, I haven't noticed any major changes in speed in Quantum (it's a bit snappier, that's it) and was happy enough with it's previous performance. IMHO what we've lost is not worth what we've gained.

I'd move to other browser, but which one? None of the main ones have the things I liked about Firefox and I don't really see most of the forks being able to keep up the pace. I guess that I'll stay, hoping that the things I love about Firefox will eventually come back.

<comment><USER18> Well, it's not just to be faster. 57 is also quite a bit more secure and extensions will break far less often in the future. It also means a lot less maintenance work for Mozilla.

It's mainly more secure by having most things sandboxed now. That requires Firefox to be executed in the new multiprocess architecture and for that they would have had to kill off at least those legacy extensions that are not multiprocess-compatible, which was essentially all of them as well.

Also, yes, multiprocess did also most definitely play into performance. But we're not talking about the difference between 56 to 57, it's rather the difference between 47 to 57. Because 48 already introduced multiprocess, even though as a user you were still perfectly capable of installing a multiprocess-incompatible extension, which then caused Firefox to drop out of multiprocess whenever that extension became active. A completely intransparent way for users to completely kill off their performance.

Lastly, you don't claim that what Mozilla did on a whole is wrong, but yeah, just to point it out anyways: They are somewhat throwing power users under the bus right now. They don't enjoy doing it (essentially all Mozilla devs just as well are Firefox power users), but they do want to save their market share in order to still have a word when it comes to web standards and the market share just isn't made out of power users.

Around 40% of Firefox users in Sep. 2015 did not have any extensions installed. Another sizeable chunk will have their ad blocker and nothing else. This release won't affect these users negatively at all. They'll just get the better performance and the better security.

The only thing I heard from my parents was my mum asking me, if it's normal that Firefox looks different now. Maybe there'll be some confusion with the new Library-button, but other than that, it's just yet another browser-UI. They know this.

</comment></comment></comment><comment><USER19> Firefox Quantum is really fast! And I love it :)

However when comparing private/incognito browsing, my main concern wouldn't be the speed, but privacy.

<comment><USER20> "Loads 3 seconds fewer tracking scripts" seems like a shoe-in for your privacy consideration.

<comment><USER21> I think the tracking scripts can have no upper limit to loading . Which means that it would make the page more snappier also.

</comment></comment></comment><comment><USER22> I find that Firefox/Firefox-Dev seems to be very VERY slow on my 4k setup. It works just fine when not connected to the 4K monitor, but when connected, sites take like 5x longer to properly fully load. I've tested it with the Debug stuff on, and it simply just shows render times being very very slow with nothing else. It also pegs the CPU 100% while loading.

There are no errors, but I notice a LOT of GC Pauses in the perf dump

Chromium works just fine on these sites.

<comment><USER23> If you've got a specific site that this reproduces on that would be helpful. If you can also provide the model of the monitor you're using and the version of your OS that would help us track it down. Thanks!

<comment><USER22> Not a specific site, just general slowness on all rendering.

This is with fully clean install and several attempts at cleaning profile. I notice it seems to get stuck on "waiting for site" and "Performing TLS Handshake", which is strange because im on a 100gbit line and I can get chrome to load those sites full speed just fine simultaneously.

X1 Carbon Fedora 26 Intel Core i7-6600U 16 GB RAM

Mesa DRI Intel(R) HD Graphics 520 (Skylake GT2)

Do you have a good place to send these profile dumps to?

<comment><USER24> > _... im on a 100gbit line ..._

How'd you get a 100 GbE NIC in that X1 Carbon!? :)

<comment><USER12> I imagine that's the upstream :)

My situation is the opposite: workstation with a 10gbe connection the the corporate lan but upstream is capped to 2gbe.

</comment></comment></comment></comment></comment><comment><USER25> Firefox's private browsing lets you restore closed tabs, unline Chrome, which is a small but noticable improvement for me.

<comment><USER26> Safari has this as well. I've taken to using private mode for just about everything, mostly because I click on so many random links to Amazon, and Amazon is so aggressive about trying to sell you things you've clicked while logged in.

<comment><USER25> Same here. More specifically, I keep my general browsing history , and YouTube history more relevant by opening random / "lol" content in a private tab.

That way the omnibar suggestions show me content that I'm more likely to revisit and doesn't get clogged up with random results I don't care about; and YouTube gives me more interesting recommendations.

</comment></comment></comment><comment><USER27> Personally I'd rather know which is more private/secure; speed for this use case is secondary.

<comment><USER28> Speed happens to be a byproduct of some of the security features being implemented in this scenario.

</comment></comment><comment><USER29> I just really wish _every private browsing window were entirely separate from the others_. It's odd when I log into something on private browsing, then open up another private window for another service but find the first one still logged in.

A marriage of private browsing + containers would also do the trick.

<comment><USER30> You could try one of the container management addons that simply spawn new containers as needed, e.g. containers on demand[0]. In principle the underlzing building blocks for containers and private browsing are orthogonal that can be used at the same time, i.e. a container in private browsing mode is yet another context that will have private browsing features (nothing written to disk) but is also separate from other private browsing tabs. But I'm not sure if that this is exposed through UI or APIs.

[0] [https://addons.mozilla.org/en-US/firefox/addon/containers- on...](https://addons.mozilla.org/en-US/firefox/addon/containers-on-the-go/)

</comment></comment><comment><USER31> I switched to Firefox for Mac and iOS completely the moment Quantum came out of beta, and I really want it to succeed.

However, I experience severe speed problems loading Google apps (drive, sheets, slides, inbox) along with occasional freezes and CPU spikes.

Additionally, I experience a bug on iOS where certain pages will only render partially and turn completely blank when I scroll down. Refresh doesn't help, which makes me open Chrome again to load the page.

Firefox is still my default browser as I'm still trying to convert myself, but it turns out I'm typing this message in Chrome again.

<comment><USER32> Apple doesn't allow anyone to use anything other than the system provided Webkit, so FF on iOS is just a wrapper for Webkit.

<comment><USER31> That makes sense. I didn't expect the whole quantum engine to be running on iOS, but I hoped hoped Firefox to be at least as be reliable on iOS as Chrome (also Webkit) or Safari.

</comment></comment></comment><comment><USER33> My only problem with Firefox is the annoying pinch to zoom on a trackpad (Macbook) - pinch to zoom is (and has been for many years) so much better in Safari and Chrome, it just hurts my brain to use it in Firefox. It's like going back in time 10 years... and zooming seems quite a basic feature to me.

Other than that though, Firefox is my favorite browser.

</comment><comment><USER34> i like firefox, but this article might as well show page load times with and without uBlock Origin or uMatrix in both browsers.

it's nice that private mode is more private and faster by default though.

</comment><comment><USER35> I know this isn't really the place for bug reports, but I'm having a very interesting issue with FF57+.

I work on a University campus, and when I'm on the Uni wifi (eduroam), google search does not work in FF. However, it works just fine in Chrome.

Super weird and I haven't been able to debug the problem.

<comment><USER36> Chrome uses its own integrated DNS client rather than relying on the host OS resolver, so your problem may lie with broken DNS settings for your wifi configuration. You can test it by running nslookup while specifying alternative name servers.

<comment><USER33> Exactly. This is also somewhat of a privacy issue, since Chrome sends all Dns requests for all websites you visit to Googles own dns servers, regardless of which Dns servers you have cofigured in your OS... :(

</comment></comment></comment><comment><USER37> Firefox in "Websites are faster when you don't load 44% of them" shocker

<comment><USER38> The nice thing about being a non-profit is that we can include a tracking blocker for that 44% right in the browser, without it being counter to our business interests.

<comment><USER39> Would you mind to expand your point of view and provide evidence? Are you perhaps referring to the cliqz experiment that was ran for less than 1% of german firefox downloads? Are you sure you are not blowing things out of proportion?

<comment><USER40> Germany has rather strict privacy laws, so it sounds like the worst pick for something like this.

They're also planning [ _] to send more detailed browsing history as telemetry, so there 's that.

[_] [https://groups.google.com/d/msg/mozilla.governance/81gMQeMEL...](https://groups.google.com/d/msg/mozilla.governance/81gMQeMEL0w/OVf_NL7yCgAJ)

</comment></comment></comment></comment><comment><USER41> Would the built-in tracking protection make anti-tracking add-ons such as uBlock Origin redundant? Looks like it's using Disconnect's list but I'm not sure how much this differs from uBlock.

<comment><USER42> I notice that if you enter incognito mode in chrome, while using ublock origin, the extension is disabled in the incognito window/session.

However, it's not obvious to me that the protections offered by incognito are a superset of the protections offered by UO and I wonder why this is desirable ?

Do I want incognito mode with UO running on it or is that unnecessary ?

<comment><USER43> When you install an extension in chrome it's by default set to be disabled in incognito mode (supposedly since some extensions don't respect privacy). From the extensions page you can easily set UO, or any other extensions for that matter, to remain enabled in incognito mode windows.

Last time I checked chrome does not by itself offer any tracking protection while in incognito mode (supposedly since this would make it easier to detect when a user _is_ in incognito mode). So you probably want UO enabled for that.

</comment></comment></comment><comment><USER44> I switched today to firefox and it really feels faster, but also I remembered how some things annoys me on Chrome, for example you can't modify new tab to remove everything on Chrome, so in my case, it makes me to click around more and procrastinate, as I see the sites there, also I never liked the Chrome dev tools, I know the general opinion is that are better, but felt to complicated for me and somehow slow, to busy.

</comment><comment><USER45> I want to report a typo: "If you'd like to take it up a notch and enable Tracing Protection" -> " _Tracking_ Protection"

<comment><USER20> Thank you! I reported your comment and they should have fixed it by now.

</comment></comment><comment><USER46> I use both daily and both are fine when it comes to speed. Where chrome shines over firefox quantum is in blocking ads. I use uBlock Origin on both and yet I see some sponsored ads on firefox while I see nothing on chrome. It's not a deal breaker but an occasional annoyance that I can live with.

</comment><comment><USER47> My issue is that I'm on a corporate firewall, and I can't even navigate to [https://google.com](https://google.com) on the new version of firefox, as it complains about the certificate. It won't even let me add an exception.

<comment><USER48> If you're behind a corporate firewall (and want to be mitm-ed by it), you should install their root CA instead of adding an exception for the invalid certificate.

</comment></comment><comment><USER49> Sure, it's faster if some scripts are blocked. Wait how fast it gets as soon as you add ublock Origin.

<comment><USER20> Ironically, content blocker extensions have historically been a common source of slowdowns while loading all pages.

<comment><USER50> That's been historically true for Adblock Plus. Has anyone benchmarked ublock as impacting the performance of Firefox?

<comment><USER51> [https://github.com/gorhill/uBlock#performance](https://github.com/gorhill/uBlock#performance)

It might be biased since it's from µblock developer.

<comment><USER52> Also really old. uBlock is fairly fast on the cosmetic blocking because it does a couple of things: parses selectors themselves instead of querying for all of them, and caches known selectors. It uses a mutation observer to check for new elements.

</comment></comment></comment></comment></comment><comment><USER53> I can't use the new Firefox until it works with the following addons: 1\. Lastpass 2\. Xmarks (for cross-browser bookmarks syncing) 3\. Adblock (or uBlock)

As far as I know, it works with all of these now except for Xmarks. I am impatiently waiting until then.

<comment><USER54> [https://addons.mozilla.org/en-US/firefox/addon/xmarks- sync/v...](https://addons.mozilla.org/en-US/firefox/addon/xmarks- sync/versions/beta)

Works, but very buggy with multiple sync sources, might be server-side, I've had trouble with failed syncs losing entire folders for a long time. I only use the Upload/Download functionality and make sure not to have conflicting syncs. The product has been on minimal life support for years, so can't expect much I guess. But remains the only solution I've seen that works cross- browser.

</comment></comment><comment><USER55> Firefox has a really good market in the mobile industry. I really wanted Firefox OS to catch up, but it didn't. I am still looking for privacy-focused OS alternative to Android, any suggestions?

<comment><USER29> > I am still looking for privacy-focused OS alternative to Android, any > suggestions?

[https://puri.sm/shop/librem-5/](https://puri.sm/shop/librem-5/)

</comment></comment><comment><USER56> This is why I use Firefox on Android - with the uBlock Origin add-on installed, it's really fast. There's no optimization like avoiding the needless work in the first place :)

</comment><comment><USER57> Can I overload the tracking filter with, say, easylist[1]?

[1] [https://easylist.to](https://easylist.to)

</comment><comment><USER58> What a dud website for it is not compatible with Firefox mobile on iPhone

<comment><USER38> What specific app, and what version of it, are you using?

</comment></comment><comment><USER59> They're both fast. Most people who use them don't really care if one saves them a a few seconds to a minute over a standard browsing period. They care about other features that aren't necessarily specific to the private aspect of it.

</comment><comment><USER60> If someone from Mozilla is reading this: I (and I suspect many other people who prefer to strictly segregate their "work" and "personal" data), would very much prefer if you implemented built-in profile switching a-la Chrome. This shouldn't even be that hard given that FF already supports profiles. This is, and has always been, an obstacle for me to seriously consider Firefox as my only browser.

<comment><USER61> You might be interested in Firefox Multi-Account Containers[1], an addon by Mozilla, announced in [https://medium.com/firefox-test-pilot/firefox- containers-are...](https://medium.com/firefox-test-pilot/firefox-containers- are-go-ed2e3533b6e3)

[1]: [https://addons.mozilla.org/en-US/firefox/addon/multi- account...](https://addons.mozilla.org/en-US/firefox/addon/multi-account- containers/)

<comment><USER60> I know about those, but they are almost the opposite of what I want to have: instead of completely separating the two worlds, they forcibly merge them in the same browser instance (and Sync account).

</comment></comment></comment><comment><USER62> If you care about privacy, you should not be on the internet.

<comment><USER63> You realize that there is a very wide spectrum between absolute privacy and no privacy at all?

</comment></comment><comment><USER64> Frustrates me to see techies running chrome. You guys should know better. Are you really willing to let google own everything just because chrome has this one tiny feature that you like?

</comment><comment><USER65> Is anyone else getting tired of Mozilla shilling how fast their new version of Firefox is? If it's really that good, let the product speak for itself.

<comment><USER66> Well, I don't blame them for promoting their product. Speed, however, is probably among the least important things when it comes to incognito mode. I would have appreciated it if they had spent more time figuring out how to reduce fingerprints.

<comment><USER38> We are. It's not quite polished yet, but check out privacy.resistFingerprinting (and privacy.firstparty.isolate) in about:config. This all dovetails with our work to upstream the relevant patches from the Tor Browser Bundle, which is also proceeding apace.

More info at [https://wiki.mozilla.org/Security/Fingerprinting](https://wiki.mozilla.org/Security/Fingerprinting)

<comment><USER67> > privacy.resistFingerprinting

Is there a reason that setting does so many different things?

I've been trying it for a few days but it's a real problem when I want some of those settings but not others. For example the protection against canvas image extraction needs work. It's stuck on 'ask' with constant popups, and once you pick yes/no on a domain it's impossible to see the permission or change it ever again. Until it forgets on browser restart and starts bugging you all over again.</comment></comment></comment></comment>


RISC versus CISC Wars in the PrePC and PC Eras - Part 1 - ARM Community - <AUTHOR> http://blogs.arm.com/software-enablement/375-risc-versus-cisc-wars-in-the-prepc-and-pc-eras-part-1/ <comment><USER2> There are few people today with the insight, hindsight, and foresight of David Patterson, author of this article. Nice find.</comment>


On Wearable Computing - <AUTHOR> http://bringel.github.com/blog/2013/01/16/on-wearable-computing/

<comment><USER2> > _The answer already exists. Chorded, handheld keyboards._

This answer has existed for over a decade; the fact that it hasn't come to pass means it's not the _right answer_. I had a Frogpad with my wearable, for example. Carrying around an extra piece of equipment is a pain in the ass.

I'll quote myself here:

> _Another device to carry in your pocket solely for input isn't going to > improve that, it's going to make that worse._

> _It's awkward to whip out a keypad to enter a new appointment or type a note > compared to writing it on a piece of paper. I think the only general > incentive to carry a dedicated input device around would be universal > applicability: that keyboard would have to be good for every device out > there, including ATMs._

The bit about automatic privacy and rights granting is interesting, but these have to be explicit social behaviors, not things your computers do behind your back.

I do agree with the driving bit: forcibly not letting people do something stupid is alright with me.

<comment><AUTHOR> A frogpad like keyboard isn't exactly what I was referring to. Maybe I should have clarified in the article, but I meant the kind that strap on to your hand. With advances in technology it could be easy to make that smaller and less obtrusive than they have been in the past. As someone who had a wearable I'd love to hear your thoughts on Glass etc.

<comment><USER2> Sorry, define, "strap to your hand?"

Like: <http://www.ikey.com/industries/military/ak-39.html>

Or like: <http://www.keyglove.net/>

Or something else?

Either way, variations have been around for over ten years, and the same problem remains: you're carrying around an extra thing solely for input. You can't wear it in every situation; with a suit, on the beach, in 110 degree weather, when it's raining, etc., and you can't use it for anything else but the rest of the device.

MP3 players didn't take off before the iPod because normal people don't like carrying around a bunch of doohickies, and so cell phones won out over MP3 players. People carried around an iPod along with their cell phone because it also served as fashion accessory and status symbol, until the iPhone finally made it unnecessary to have two devices. It's the only time in portable electronics history that normal people have willingly toted around multiple gizmos; traditionally, there's a one-gadget limit. I make this same argument six years ago here: <http://www.eyetap.org/wearables/wear- hard-06/2006494.html>

I posted a bunch in this other thread, if you're interested: <http://news.ycombinator.com/item?id=4993498></comment></comment></comment>


Are dolphins sufficiently self-aware to deserve more ethical treatment? - <AUTHOR> http://www.futurepundit.com/archives/006958.html <comment><USER2> Swimming with the dolphins (for about 15-20 minutes in an amusement park) has been one of the most awe-inspiring and cherished experiences in my life. I always knew dolphins are mammals, but the experience of seeing their features up close was still fascinating. They have eye lashes, and their eyes look very close to dog/human eyes and seem to have a spark of intelligence in them. In retrospect this is pretty obvious, but I still remember how amazed I was to see it up close.

One of the dolphins was a new mother - her newborn was confined to a small area in the corner of the pool. Every few minutes the mother would turn around to briefly glance if her newborn is ok.

They seem to really enjoy playing with people - they'd do tricks like swim up to you from the back and poke you in the butt to surprise you. Then they'd turn on their backs to let you rub their belly and after a while they'd rise above the water surface and touch your face with their nose. I asked the guide if they were taught to do this and she said one of the dolphins came up with the 'poking' trick and the other dolphins picked it up.

These are really fascinating creatures. I have no idea whether holding them in captivity should be considered unethical, but the idea of killing them for a commercial purpose (or even research) makes me feel extremely uneasy.

If you get the chance to swim with them, do take take the opportunity. It's worth the money many times over and will almost certainly change the way you think about these amazing creatures.

</comment><comment><USER3> Why does 'self aware[ness]' have any effect on ethical or humane treatment?

<comment><USER4> Here is a prior thread in which I asked essentially the same question, from which quite a lively discussion ensued: <http://news.ycombinator.com/item?id=1029406>.

On reflection, I think I see the legal angle here (which I did not in the prior thread). Activist groups have long looked for a hook by which to bring class actions against those whom they see as perpetrators of wrongs that they wish to stop. In this case, it is commercial tuna fishermen. However, the courts have denied them the right to sue on behalf of the dolphins (which are accidentally killed in the course of industrial tuna fishing) on grounds that dolphins aren't human beings and therefore do not have 'standing' to sue. This means that the activist groups also cannot bring class actions in the name of the dolphins. Of course, if the dolphins are 'self-aware,' then they arguably can be treated in a special way by the courts - as 'non-human humans' - and be given the right to sue. The research is being cast as disinterested science, but I believe it may be motivated by this extra-scientific goal and that is why it is routinely presented along with arguments for better ethical treatment of the dolphins. In essence, the bottom line will be this: better ethical treatment = enforceable legal rights (i.e., enforceable by activist groups suing tuna fisherman in federal court once a court recognizes their right to bring such suits on behalf of a 'self-aware' species that now should have 'standing' to sue).

As I have come to see this in such a light, I believe the science here may be authentic but it may equally be agenda-driven, potentially making its findings suspect. I leave that to those who understand the scientific issues (I do not) but it does need to be evaluated in light of this background motive and its implications.

<comment><USER5> Pure science is purely descriptive, it is not prescriptive. People often use science as justification for prescriptive action. But prescriptive action also always requires a categorization of outcomes as [good, bad]. Good vs. bad is an aesthetic decision that is not intrinsic to pure science.

<comment><USER6> Aesthetic? I think I see what you mean -- if Heisenberg had developed a nuclear bomb during the war, it would have had a significant impact on European landscape aesthetics.

<comment><USER5> correct. For most, such nuclear devestation would be extremely displeasing to envision. However this does not make it scientifically bad, and if you were a nazi you would probably use darwinism to justify it.

</comment></comment></comment></comment></comment><comment><USER7> Interesting, related question: when is a creature self-aware enough to be held to a different standard of behaviour than, say, a dog?

<comment><USER5> I don't think self-aware is a good metric. I would argue the economy is self- aware. I think a better metric of how evovled or human-like something's consciousness is would be capacity for analogical reasoning.

Humans are by far the best, by the great apes and dolphins can do it too.

A biologial metric that is more accurate than brain size is cortical folding. Again humans have the most, but bottlenose dolphins actually have more than early human ancestors.</comment></comment>


Do you think lawyers overcharge for their services? - <AUTHOR> For those who have ever retained the services of lawyers for their startups, do you think that those lawyers have overcharged or are overcharging you.<p>Is there a way to know when a lawyer is overcharging ? <comment><USER2> Depends on the lawyer.

I've met lawyers who charge $350 for a handshake.

I have met other lawyers who do a huge amount of work for a small amount of money in a context where I end up learning just how I don't know what I am doing and they do.

I have copied consulting contracts out of Nolo Press books and had the other party refuse to sign them.

I have had lawyers look at a contract and realize it didn't make any sense at all.

I worked at a startup which had a high concentration of ex-lawyers who wanted to get into startup life and some of them were highly effective at dealing with huge clients, in fact they carried the business on their shoulders.

</comment><comment><USER3> Depends on the law firm:

If they have a spacious reception area with marble floors, huge reception desk, luxuriously appointed meeting room in a high rise mid-town office block and 20+ well connected partners -- then probably.

If the lawyer has medium sized offices and lots of work in progress and a minimum of frills but not too shabby -- then most likely reasonable rates.

In any case, ask for references and follow them up. Firms tend to specialise and you may want to find one who has experience with comparable startups.

</comment><comment><USER4> I think it is like any profession, there are good and bad ones and there are some that provide lots of value and others that make it their mission to gouge every client for every penny. The biggest lesson I have about attorneys in general is same advice I give people when they go to the doctor. Don't just blindly trust what they tell you, challenge them, educate yourself on the issues and if they won't discuss it with you intelligently, find someone else.

In my personal experience I have found that when I find a good lawyer they are worth every penny they charge regardless of the rate. The best lawyer I ever had was a $450/hr partner in a smaller firm but he was spectacular and what he would bill me an hour for I had other lawyers in the past bill 1/2 day for, so his value was high but his quality was also stellar. On the face of it his original $5k retainer didn't feel like it was buying much, but after seeing how productive he was and how good he is, he's worth more than what he charges. He specializes in employment and contract employment law, nothing else, so a fairly narrow focus by many standards but still a big area IMO.

Other times I have been gouged. One I hired to provide me with pros/cons of specific business legal structures I was contemplating for asset protection and separation of risks. She came back to me after charging $1,000 with a 1 paragraph memo that told me to do whatever cause they would all be equal in protection. I challenged her but learned she just was a moron when it came to understanding risk mitigation and asset protection even though she advertised it and was recommended by another lawyer. When I took her memo and my requests to a firm that had more of a reputation they took ~4 hours and gave me back a 5 page memo of recommendation based on pros/cons and had I followed the original advice I could've put a ton of stuff at risk.

Just my 2 cents too, I don't think woman vs man, or old vs young makes a damn bit of difference overall. Experience does matter, but I wouldn't choose or disregard anyone over anything but bad recommendations or poor quality of work.

One last point, as you asked about overcharging which I gave you some personal experiences around value etc. But something else I have seen many firms charging monthly retainers in the multiple thousands of dollars for startups to have an attorney on call. I do not subscribe to this nor recommend it in general. Yes you need to retain a solid attorney and firm to get them familiar with your business and help setup the initial contracts etc. But there is no way you need a $3000/month retainer when just starting out like I have seen happening in the past few years. Same with accounting, you don't need a $3000 accountant retainer every month to book 30 transactions. You can hire a consulting book keeper to do that work and have an accounting firm review quarterly for a lot less money. A caveat, if you are negotiating enterprise deals or dealing with a highly regulated business then the attorney on a monthly may well be necessary early on, even before you have real revenue.</comment>