Neural Networks in JavaScript with Deeplearn.js - <AUTHOR> https://www.robinwieruch.de/neural-networks-deeplearnjs-javascript/ <comment><USER2> I was going to write a cynical complaint about how it's hardly useful without GPU support... but it's using WebGL to hit the GPU. Of course. And it's probably a million times easier than trying install a TensorFlow stack locally on your desktop.

<comment><USER3> It's super sad to me, that the only convenient cross platform way to do deep learning is a hack on top of JS.

<comment><USER4> Folks are downvoting this, but they must clearly have drowned themselves in kool-aid.

You want fast matrix multiplication? Pretend you're doing texture shading in a language primarily used for dynamic web frontends!

<comment><USER3> Yeah I don't see how I stepped on any toes. Deep learning libraries have always been a pain in the ass to install. And only support some OSes and GPUs. There's nothing wrong with JS or webgl, but it seems an incredibly inelegant choice for this.

<comment><USER5> pip install tensorflow is pretty darn easy....

Granted it doesn't have AMD support, I'm fairly confident even the CPUs can out perform the javascript library.

<comment><USER3> I wasn't aware it worked at all on Windows now, that's cool. Doesn't seem very simple to install though. This is the installation guide for just one of the prerequisites: [http://docs.nvidia.com/cuda/cuda-installation-guide- microsof...](http://docs.nvidia.com/cuda/cuda-installation-guide-microsoft- windows/) And as you mention, only Nvidia.

<comment><USER6> Cuda and cuDNN; good times :) Not cross platform, but nvidia does supply a bunch of packages now for different OS's to get that stuff installed.

</comment></comment></comment></comment></comment></comment></comment><comment><AUTHOR> OP here: Please checkout the GitHub repository of the Neural Network in JS too [0].

Would love to see some exciting discussions around machine learning in JS. I am exploring the topic heavily at the moment and I am keen to apply/write/educate/learn more about it.

\- [0] [https://github.com/javascript-machine-learning/color- accessi...](https://github.com/javascript-machine-learning/color- accessibility-neural-network-deeplearnjs)

</comment><comment><USER7> If you are looking for it (like I was), here's a direct link to the deeplearn.js project: [https://deeplearnjs.org/](https://deeplearnjs.org/)

</comment><comment><USER8> This webcam demo with live updating visualization of the different network layers is extraordinary: [https://deeplearnjs.org/demos/imagenet/](https://deeplearnjs.org/demos/imagenet/)

<comment><USER9> I dunno, it says I have the highest probability of being a shower cap or a bandaid.

I personally like this one the best (also uses deeplearn.js): [https://teachablemachine.withgoogle.com/](https://teachablemachine.withgoogle.com/)

</comment></comment><comment><USER10> I would also recommend Synaptic.js [http://caza.la/synaptic/](http://caza.la/synaptic/) It's easy to get started with, very good for learning the basics of NNs very quickly.

</comment><comment><USER11> I hope web pages don't grow to hundreds of megabytes just because they have a Neural Network embedded.

<comment><USER12> I do.

I also hope internet bandwidth grows to the point where hundreds of megabytes takes milliseconds to download, and that computer memory increases until hundreds of megabytes is trivial, and that the economics of ISPs mean I get truly unlimited data without incurring charges, but when all that happens I definitely do hope we're utilising technology in ways that includes embedding complex neural networks in webpages as a normal, typical thing we do.

That particular future will be _awesome_.

<comment><USER11> Resources don't grow to the infinite, there are physics limits to everything. Be aware of that. You can see the perfect example in CPUs, now we are adding cores but peak speed In a single core don't grow very much in new generations as they did few years ago. With the web it is going to be similar at some point (even the TCP protocol has some limits that forbid to reach top speed with current connections for small transfers).

<comment><USER12> The theoretical maximum speed of 5G wireless is 10,000Mbps with a 1ms latency - a 300MB file would download in 251ms. That's _current_ technology being tested in the field at the moment. Real phones will use it in a couple of years. We won't get that speed, but we'll get quite close in major cities. Today's flagship desktop computers have 16GB of RAM, but there's no particular reason why they can't have 10 times that much. Servers already do. Phones have 4GB, but again they could have much more. CPU speeds are fast, but a neural networks run on GPUs which are considerably faster for that task (remember this isn't training the network, it's just running one you've downloaded).

This is what's actually happening right now. This is the _near_ future.

<comment><USER11> I am going to just forget all the countries that are still on GSM. Let's say we have 5G right now.

1) The theoretical speed is one thing, the real one is another one.

2) There is more than one node connected to the network

3) TCP needs some package interchange to increase the window size

4) Latency with the server where the page is hosted is not going to be 1ms, you are lucky if it is around 20ms.

5) Serves have more RAM because they use better CPUs, it means they are more expensive.

6) Who connects to websites nowadays? Mobile is the way to go now (It means slower CPUs, less RAM, less power consumption, etc)

7) Why are you going to transfer a complete netural network instead of sending the data to the server. The data is going to be smaller than the network and you avoid the risk of someone cloning the neural network for their web site.

8) There are no useful applications in web sites for neural networks. It is a non sense for me (please probe me wrong and show me an use case where it makes sense)

<comment><USER12> _7) Why are you going to transfer a complete netural network instead of sending the data to the server._

Privacy is one reason I can think of. By running the trained network locally I can benefit from it without sharing all my data with the company serving it.

Data size is another reason. If I want to categorize 50GB of images using a 300MB model it makes a lot more sense to download the model than upload the data.

 _8) There are no useful applications in web sites for neural networks._

I admit that I haven't got a clue how these things will be useful. If I did then I'd have started a business to implement it already. My lack of insight isn't a good reason to suggest they'll never be useful though.

<comment><USER11> > Data size is another reason. If I want to categorize 50GB of images using a > 300MB model it makes a lot more sense to download the model than upload the > data.

The faster the network is the more reasons you have to upload your data. The time to process an image in the cloud is going to be virtually 0 with small latency as the resources in the cloud are huge compared with what you can have at home.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> How does it compare to regular Python DL frameworks?

<comment><USER7> This explanation from a Google blogpost helped me:

The API mimics the structure of TensorFlow and NumPy, with a delayed execution model for training (like TensorFlow), and an immediate execution model for inference (like NumPy). We have also implemented versions of some of the most commonly-used TensorFlow operations. With the release of deeplearn.js, we will be providing tools to export weights from TensorFlow checkpoints, which will allow authors to import them into web pages for deeplearn.js inference.

[https://research.googleblog.com/2017/08/harness-power-of- mac...](https://research.googleblog.com/2017/08/harness-power-of-machine- learning-in.html)

<comment><USER14> What is so appealing about a delayed execution model? Why can't we just perform tensor math as in numpy, and let the library figure out the fastest way to do it behind the scenes? I think the whole "graph" approach is making things needlessly complicated.

<comment><USER15> That would be nice for experimentation but for production use cases knowing the whole graph unlocks a number of optimizations.

<comment><USER16> This is a meme that keeps getting repeated, and I don't know why. Tensorflow, for example, despite several years of development, does basically little to no graph optimizations and for tons of tasks ends up much slower than PyTorch / Chainer / DyNet (Tensorflow _is_ developing a "JIT compiler" but it is still in alpha).

It goes without saying that a framework that does define-by-run _also_ knows the whole graph.</comment></comment></comment></comment></comment>


Kottke.org memberships - <AUTHOR> http://kottke.org/16/11/kottkeorg-memberships <comment><AUTHOR> _" The site currently has two main sources of revenue: advertising via The Deck & the We Work Remotely job board and affiliate income from Amazon & iTunes. In an effort to diversify revenue, I've tried several things — RSS sponsorships, sponsored posts for Kickstarter projects, consulting for startups, and speaking — and none of them have stuck."_

Content producers are trying to figure out how to pay for what they do. Clickbait, re-posts of articles, listicles, vacuous, sensational content are the result of the current ad-based market. Hopefully content providers can figure out viable ways of producing quality content. It's nice to see insight into Kottke's thoughts on accepting memberships.</comment>


SpaceX Starship Update Live Stream - <AUTHOR> https://www.youtube.com/watch?v=sOpMrVnjYeY <comment><AUTHOR> Some first shared teaser tweets by Elon Musk with some incredible photos.

[https://twitter.com/elonmusk/status/1177662806117584896](https://twitter.com/elonmusk/status/1177662806117584896)

[https://twitter.com/elonmusk/status/1177314408604680192](https://twitter.com/elonmusk/status/1177314408604680192)</comment>


Google's Response to Facebook: Maka-Maka - <AUTHOR> http://www.techcrunch.com/2007/10/29/googles-response-to-facebook-maka-maka/ <comment><USER2> Privacy issues aside, this would be awesome. If I'm reading this properly, this isn't just Orkut 2.0 -- it's essentially building a "social networking" API for every part of Google. I dunno about you, but an app that integrates with GMail somehow sounds more useful than your typical Facebook app.

</comment><comment><USER3> As scary as it may seem to some of us, I can't wait to see it come to fruition.

</comment><comment><USER4> "Google already has so much data on you, depending on how many Google apps you already use."

Call me a little old school, but I think like my Paulie in Goodfellas. He didn't want anyone hearing what he said and he didn't want anyone hearing what was said to him.

I use Google for search and Yahoo for apps. Imagine any one entity knowing who I am AND what I search for. Ewwww.

<comment><USER5> You could always just search through a proxy. Am I missing something?

<comment><AUTHOR> If you're logged in to (for example) gmail in one tab, and then you search in another tab, google knows who you are via a cookie. You would have to both search through a proxy and suppress the cookie.

<comment><USER6> I always log in, check my mail, and log out...

</comment></comment></comment></comment><comment><USER7> Social networking is but an AOL paradigm. Yahoo and Google and Microsoft all have the elements of a social networking but chose not to pursue it, or half- assed it over the year, but I have more faith in Google being able to pull it off and succeeding than the other companies or even Facebook. But then again, the point of Facebook was never to care about social networking, they aspire to be an advertising powerhouse.

<comment><USER8> The point of Facebook was always to care about social networking, and they still haven't public announced an aspiration to be an advertising powerhouse.

<comment><USER7> That's ridiculous, they care about "social graphs". If I'm not somebody's friend I can't view their profile. I don't meet people on Facebook like I do with any other service or in real life, I simply establish an alternative identity and throw all my pictures and mundane details into it.

As for their aspirations of being in advertising not being announced? And?

<comment><USER8> You're arguing semantics mostly. The bottom line is, Facebook is doing a piss poor job of being an advertising marketplace, and a pretty good job of being a social network.

<comment><USER9> I think this is going to change very soon. They're close to unveiling a targeted ad system. As smart as AdSense is (targeting ads to content of a page), targeting them to the specific preferences of a user is even more compelling.

<comment><USER8> I hope you're right, and I hope it's awesome. My best guess, however, is even if they've got such a system, it's sure to be immature and hence not very compelling. Facebook doesn't have near the advertising talent Google does, so I wouldn't be so quick to compare their so-far-nonexistent ad system to the behemoth that is AdSense.

<comment><USER9> I wasn't necessarily saying that it would be an AdSense killer, just that it could be an equally interesting take on targeted ads. I definitely agree that it'll take time.</comment></comment></comment></comment></comment></comment></comment>


The "Secret" Awfulness of Saudi Arabia - <AUTHOR> http://www.gatestoneinstitute.org/6722/saudi-awfulness <comment><USER2> That poor British grandfather. 350 lashes for being caught with wine - I'd think that would kill a person.

</comment><comment><USER3> i had never heard of this organization until this post, but i would imagine it has quite some influence--as evidenced by their Board of Governors, which is like a Mt Olympus of senior activists--eg, Alan Dershowitz, Carolyn Cox, Daniel Finkelstein

</comment><comment><USER4> they sound like an ideal candidate to chair the UN Human Rights council</comment>


Growing Information Systems and Crystals - <AUTHOR> https://riskfirst.org/complexity/Crystals-And-Code <comment><USER2> Main takeaway here is this:

> Information Systems are super-useful for hardening and regularising > processes so that they follow standards, run more quickly, cheaply and > smoothly and take expensive, error-prone humans out-of-the-loop. The > downside is that IS's are fragile in the face of change.

Author's view is that this is because of the way they grow and evolve, but to me it seems like it's part of the nature of software.

AI shows promise in getting computers to behave more flexibly and naturally, and show "graceful degradation".

I wonder if these techniques should/will ever be applied effectively to get us out of the mess we're in now.

My view is that they'll probably just add to the complexity and make things worse</comment>


Ask HN: Node or Python back end? - rachel-ftw I'm starting a project and my team is debating what type of backend to use. The question is what kind of environment: python/flask or node/js?  It's a CMS that will incorporate machine learning in the future. Front end is in React, postgres database.
Ultimately we're seeking a decoupled and flexible architecture. This is one of the first technical projects I'm in a quasi-leader on and I want to make a well reasoned decision.
After research, ultimately either will work. We don't anticipate scaling beyond 10k users for the first few years, so huge loads aren't such a problem. Pros and cons as I see them:
NODE - PRO: That's what I know and can work faster in node. Getting a working product asap would provide a huge benefit at the beginning of the project.
- PRO: I know senior folks who can contract in that environment, so I could get help from great engineers. - CON: Node can be complicated. The environment will have to interact with machine learning which will most likely necessitate additional complexity.
PYTHON - PRO: There's a senior person on my team that know's python better, though their primary role in the company isn't as a developer. They'd be available to consult on engineering issues, but it would be difficult for them to lend their expertise in Node. - PRO: Potentially easier integrations with machine learning. - CON: I don't know python, so there's going to be additional ramp up time to a functional product. There might also be additional problems I don't foresee because I don't have experience here. I don't mind learning a new language, it'll just be slower/wonkier at the beginning.
I'm maybe being a bit vague, but after research I'm landing somewhere in the middle and these are the thoughts I'm weighing. Do you have any insights that would tip the scales drastically? What would you do? <comment><AUTHOR> I think if you keep the web server and UI parts in nodejs + react and the ML parts in python, you'll be high flying.

This might also be worth reading: [https://www.quora.com/Why-doesnt-anyone- recommend-JavaScript...](https://www.quora.com/Why-doesnt-anyone-recommend- JavaScript-Node-js-as-a-language-for-machine-learning-or-data-analysis)

<comment> rachel-ftw Great link, thanks for sharing @Can_Not</comment></comment>


Which Programming Language Is Best for Beginner Coders? An Opinionated Answer - <AUTHOR> https://medium.com/first-step-coding-blog/what-programming-language-is-best-for-beginner-coders-an-opinionated-answer-64ef83b1f28a#.o80c7pe42 <comment><USER2> This kind of assumes that the person wants to do web.

<comment><AUTHOR> That's a fair point. I should add another path for if the person knows they want to work on mobile apps. Otherwise, I'd still offer all the same advice though.</comment></comment>


Bash One-Liners Explained, Part V: Navigating around - <AUTHOR> http://www.catonmat.net/blog/bash-one-liners-explained-part-five/ <comment><USER2> This is a great guide. Especially awesome for me was: 26\. Change input mode to vi

$ set -o vi This command changes the key bindings to vi's. If vi's your favorite editor, you'll love this. I'll cover the vi mode in more details in the next part of the article.

I'd love to find a cheat sheet for vi bash usage (and also an indicator for which editing mode I'm in).

<comment><USER3> I'm a huge vi(m) fan, but still use Emacs-style readline. When editing code in vim, I tend to make several edits each time I'm in edit mode. When at the terminal, all I'll need is "go to front" or "search backwards". And which is easier: Esc+Shift-6+i or C-a? Esc+Shift-/ or C-r? I'm in no way an Emacs ninja, but it's not too hard to memorize the ten or so most common commands. Added bonus: they work in OS X and Qt textfields. Other added bonus: they work out of the box in terminals you haven't configured yourself.

<comment><USER4> I like vi-mode in my shell primarily for j/k to navigate through history (arrow keys just _always_ suck imho, and C-r to search backwards in history is just overkill most of the time) and 'c[motion]', which is what I almost exclusively find myself using to correct things I messed up ('d[motion]' pops up less frequently). 99% of the time those are 99% of the things I use; for that set of features I think the vi sequences are definitely have the advantage.

<comment><USER5> The Emacs next-line and previous-line bindings C-n and C-p also work well for history navigation.

</comment></comment></comment></comment><comment><USER6> Instead of searching through history, you can add this to your .inputrc

      "\e[B": history-search-forward
      "\e[A": history-search-backward

And this to your .bash_proflie

      export HISTCONTROL=erasedups
      export HISTSIZE=100000
      shopt -s histappend

Now the up/down arrow keys auto search and complete backwards/forwards based on what's written. If the line is empty, it behaves as normal.

This is also pretty neat, in your .bash_proflie:

      bind '"\t":menu-complete'

Enables cyclic tab completion

These are the first things I do when I'm on another terminal.

<comment><USER7> Cool, thanks for the cyclic tab. That was a new one for me.

I've been using the remap of the up/down arrow for a while too, and it is crazily useful indeed. It's the first thing I do on a new terminal. That, together with adjusting PS1 and setting up my common aliases.

</comment></comment><comment><USER8> "Bash uses the readline library for input editing. The readline library supports emacs style key bindings[...]"

Been using Emacs for a year and I didn't know this. O_o

<comment><USER9> Are you using a Mac? Because if you are, those Emacs motion key bindings work in almost all text input fields in all apps.

<comment><USER8> I'm on a Mac about once or twice a week at work. Thanks for the heads-up!

</comment></comment></comment><comment><USER10> My biggest complaint is that the semantics of CTRL-w and ALT-b are different. CTRL-w goes to the last space, and ALT-b goes to the nearest non-letter. Why did they define word in two different ways for the two different commands? I would kill for a non-deleting version of CTRL-w; if I have a long path in a command-line I want to be able to move to the previous parameter, not just the previous path element.

<comment><USER11> Alt+Backspace deletes to the last non-letter.

To go to the previous space, Ctrl+R SPACE works for me.

<comment><USER10> Ctrl+R SPACE seems like it's a bit iffy for some cases, especially since I use Ctrl+R so frequently for history searches. Using it instinctively (like I use Ctrl+W) wreaks all kinds of havoc; if I do something like Ctrl+R python to get a previously run command, then hit Ctrl+R SPACE, then it moves to the previous commandline that contains python instead of staying where I am and moving back a word. Still, something to explore -- I can probably find a way to use this.

</comment></comment></comment><comment><USER12> The author notes that there is no meta key anymore [1], however you can often setup your terminal emulator to use another key as the meta key.

In iTerm [2] I have the left alt/option key setup as meta, so things like meta-b are much easier to type then Esc-b.

[1] "You'll often see Meta+b but there is no such key on the keyboards anymore." [2] Profiles -> Keys "Left option acts as meta"

</comment><comment><USER13> If you find yourself using these keyboard shortcuts frequently, you can save yourself some pinky fatigue by remapping caps lock to ctrl.

<comment><USER14> Doing this was a big part in saving my left hand from RSI. I can't emphasize enough how awesome it is to have ctrl bound to caps lock.

<comment><USER15> Yes! It's the first thing I do when I get a new system these days.

In OSX you can set it up in keyboard preferences and in Windows I use Autohotkey.

Working on a keyboard with a regular Caps Lock key feels very strange after all this time.

</comment></comment></comment><comment><USER16> I knew most of these, but I learned about Ctrl-# (for commenting a command), and Ctrl-x+Ctrl-u (or Ctrl-/) for undoing changes.

One shortcut that used often is Ctrl-o. When you have a few commands in your history that you want to repeat in that seqeunce, search for the first command in the group, optionally edit it if you want, and press Ctrl-o instead of the ENTER key.

After this command is executed, the next command in the history is presented to you. Press Ctrl-o again to continue the sequence, or press ENTER once you reached the last command in the sequence.

If you want skip a command in the sequence, instead of Ctrl-o just press Ctrl-n (or down-arrow) to get the next one in sequence.

</comment><comment><USER17> Some awesome ones he did not mention:

Control-q: push-line-or-edit -- this saves the current command without executing it, allows you to run another command, then puts back the saved command for you to edit/run.

Esc-A: accept-and-hold -- execute command and maintain cursor position, so you can edit command and re-run.

Esc-' : quote-line -- escapes the single quotes in a line.

Old Vim user here, who has used emacs mode since moving from ksh to bash for about 8-10 years. Recently, switched back to vi mode, however, I have mapped Ctrl-A, Ctrl-E and a few more so i can use them in vi mode too. e.g.

        bindkey "^A" beginning-of-line

</comment><comment><USER18> This seems to be written by someone who has no deep experience. For example, Ctrl-u does only delete the whole line, if the cursor stands at the end of that line, on my system (Ubuntu) this command generally deletes the characters left from the cursor. What's missing, is the complement to this command, which deletes the characters under and right from the cursor, namely Ctrl-k. Everybody who regularly uses Ctrl-u should know that.

</comment><comment><USER19> The manual:

[http://cnswww.cns.cwru.edu/php/chet/readline/rluserman.html#...](http://cnswww.cns.cwru.edu/php/chet/readline/rluserman.html#SEC2)

edit:

oh, this is the first time I've seen this: there is a vi mode for bash [http://cnswww.cns.cwru.edu/php/chet/readline/rluserman.html#...](http://cnswww.cns.cwru.edu/php/chet/readline/rluserman.html#SEC22)

</comment><comment><USER20> Mostly common (to me), but there's a few good ones in there! ^x^e could be my new favorite!</comment>


Advanced SQL Server Man-In-the-Middle Attacks - <AUTHOR> http://blog.blindspotsecurity.com/2017/12/advanced-sql-server-mitm-attacks.html <comment><USER2> I must be jaded, but isn't this obvious? If you don't validate certs you're vulnerable to MITM. If you don't mandate encrpytion on your client, you're vulnerable to downgrade attacks.

It would be nice if the common driver libraries supported key pinning in the connection string.</comment>


RMS regrets not accepting LLVM into GCC during 2005 - <AUTHOR> https://lists.gnu.org/archive/html/emacs-devel/2015-02/msg00594.html <comment><USER2> It's almost like refusing to be connected to the internet and consequently being an entire day behind important conversations-in-progress could have some sort of downside.

<comment><USER3> It's almost like being so fixated on the "free", to the point that you don't consider the "software", could have negative consequences for free software.

</comment></comment><comment><USER4> David Kastrup has a very insightful comment in that discussion, well worth reading [1].

He quotes a speaker he heard at an "IT for startups" talk he found himself at. The speaker talked about the importance of contingency plans for when things go wrong, but also said "the worst mistake a manager can commit is to be unprepared catering for the eventuality of success".

Kastrup then notes:

        So we worked on making GCC a bad choice for
        proprietary vendors.  What do they do?  They manage
        to unite an industry-spanning coalition of different
        parties including academia into creating a free
        software compiler framework.  Free to the degree
        that we could just take it, slap the GPL on it and
        distribute our own version of it (assuming we were
        prepared to dealing with pissing everybody off in
        the process).

        So what's our reaction to our and GCC's role in
        causing a large-scale industry cooperation creating
        a free compiler framework?

        Panic.  We are not prepared to deal with people
        doing on their own terms what we have fought to
        happen for decades.  So now we try to fight those in
        our midst who want to make use of what we have
        fought for.

        And since LLVM is relicensable as GPL if anybody
        bothered to, the only effective means to "fight"
        LLVM is by necessity effective in fighting GPLed
        software in just the same manner.

        It seems sort of pointless to be fighting our spoils
        because they were given to us in the wrong kind of
        ceremony.

[1] [https://lists.gnu.org/archive/html/emacs- devel/2015-02/msg00...](https://lists.gnu.org/archive/html/emacs- devel/2015-02/msg00516.html)

</comment><comment><USER5> The rest of the thread linked to gets into the intentional lack of modularity in GCC. Lots of open source, not-really-for-profit projects are benefits from LLVM in general: Julia, Numba (numerical JIT compiler for Python), Xdress (C++ wrapper generator for Python)...probably many others. Even apart from licensing issues (wanting to stay BSD-compatible), they could not have built on top of GCC.

LLVM offers pluggability and modularity. You can use whatever you want from the compiler in a very flexible way; use it only to parse C headers, or use it only for code generation at run-time.

GCC is the opposite: Modularity and pluggability has been explicitly prevented because GCC maintainers fear that a pluggable and modular GCC would enable people to "take the edge off the GPL".

I guess there is no way around this. For instance, if GCC was to merge the gcc-xml fork which allows you to parse C headers and get the syntax tree as XML back, then somebody could "abuse" that to create a proprietary compiler that uses the GCC parsers.

(OK, there is some modularity in GCC now, as I remember a student project in Cython that plugged into GCC using command line flags injecting a shared library in order to parse C/C++ headers; I'm not sure exactly what the status quo is. But it's certainly a very different world from LLVM.)

</comment><comment><USER6> Title implies he knew about the offer.

      > If I had seen it back then, I would not have had the benefit of
      > hindsight, but it would clearly have been a real possibility.

Also, they are talking about a patch to GCC to make it use the LLVM optimizer backend, and not LLVM itself. Reading comprehension, anyone?

[https://gcc.gnu.org/ml/gcc/2005-11/msg00888.html](https://gcc.gnu.org/ml/gcc/2005-11/msg00888.html)

</comment><comment><USER7> Being a day behind does not explain why he missed it though. He should just have becoming aware of it one day later. I'm puzzled.

<comment><USER3> He missed the proposal within the context of the current conversation. He is actually responding to an email earlier in the thread that linked the original email from 2005[0].

RMS does't use an Internet browser so he fetches pages and recieves them in email. He received the html file a day after he had already written his response that he self quotes[1].

He wrote the linked email before he replied without actually having viewed the link of the 2005 email. Therefore, he was unaware of its contents.

It makes little sense out of context.

[0] [https://lists.gnu.org/archive/html/emacs- devel/2015-02/msg00...](https://lists.gnu.org/archive/html/emacs- devel/2015-02/msg00468.html)

[1] [https://lists.gnu.org/archive/html/emacs- devel/2015-02/msg00...](https://lists.gnu.org/archive/html/emacs- devel/2015-02/msg00485.html)

</comment></comment><comment><USER8> Nope. Richard wanted GCC to remain monolithic to prevent certain commercial activities. LLVM is modular with many reusable components which was unacceptable to RMS. Of course he'd rather have a GPLed modular compiler than a free but non-GPL modular compiler, but I don't think he believed they'd get as far as they did and that's why he didn't accept the offer.

<comment><USER9> I think creating walled gardens and artificial barriers is always a mistake. This is the perfect example. Intentionally crippling a GNU project is absurd.

<comment><USER8> >> I think creating walled gardens and artificial barriers is always a mistake. This is the perfect example. Intentionally crippling a GNU project is absurd.

I agree, and I'm sad to see it happened with the flagship software of the GNU project.

<comment><USER9> Indeed, I think that as much as I love GNU and sympathize with most of Stallman's POVs, he got it wrong here.

Crippling GCC just to prevent some undesirable use cases at the expense of slowing down his own community is not the way to go. LLVM has made many amazing things possible.

</comment></comment></comment></comment><comment><USER10> RMS is becoming ever more irrelevant with time.

In the same way BSD software has been ever more present, free software is still going strong, not in the way he likes, though.

<comment><USER11> He is becoming more and more relevant. I remember reading this at the turn of the century:

[https://www.gnu.org/philosophy/right-to- read.html](https://www.gnu.org/philosophy/right-to-read.html)

And remember thinking _yeah right, what a nonsense, no one would accept this_. Although it's written slightly overdramatic, here we are, many people are reading DRMed books that cannot be shared. We are renting our DRMed movies and music online. Soon there will be a day where young kids don't even realize you could borrow a movie, book, or album from a friend.

Say about RMS what you want, but he has a tendency to predict problems 10-20 years ahead.

<comment> nappy-doo Everytime I read a book on my kindle, I think about this essay. In my mind, I look at it like this:

My income now so vastly exceeds the income I had in 2000, that the marginal cost of a book is so small, and not actually having to warehouse the book is worth the cost to me. Additionally, I believe we'll be moving to models more like what Disney has implemented with its movies (where you can buy it once, and watch it anywhere) is what will happen with most/all media.

<comment><USER8> >> Additionally, I believe we'll be moving to models more like what Disney has implemented with its movies (where you can buy it once, and watch it anywhere) is what will happen with most/all media.

Can you lend it to a friend? I don't believe that "watch it anywhere" part.

</comment></comment></comment></comment><comment><USER12> >oh well

I guess he is being realistic, it does no good to beg and ask. I hope little Richard isn't sad though :(</comment>


How I Interview - <AUTHOR> http://rkoutnik.com/articles/How-I-Interview.html <comment><USER2> Refreshing; kept nodding my head, in agreement, as I went along. Thanks.</comment>


Well-Kept Gardens Die By Pacifism - <AUTHOR> http://lesswrong.com/lw/c1/wellkept_gardens_die_by_pacifism/ <comment><USER2> As a permaculture fan, I say well kept gardens die by being too homogeneous and rigidly ordered, rather than alive, organic, and vital. Layer plants in space and time and select them appropriately, and you can leave them unattended for months on end.

Well-layered gardens (like food forests but also my own flower gardens which _never_ get weeded) also better support their members as each plant fills functions which help the other plants.

We need well-layered on-line communities, ones where each layer supports all others in an interdependent web. In such a community, trolls just simply don't show up. There is no room for them. As the permaculturists say, all of life's problems can be solved in a garden.

Lest you doubt my bit about troll-free communities, six years in, I have yet to have to take action against trolls in the LedgerSMB community. I have also never seen trolls on the PostgreSQL email lists.

<comment><USER3> I'm confused - tightly focused groups with high entry requirements may be able to get away with less moderation, but how would you create something more general-purpose, like HN?

<comment><USER2> I think the question isn't general-purpose but "what is the purpose?"

If the purpose is collective economic advancement through developing awesome software, all you have to do is support new members of the community in getting going.

If the purpose is having fun, spirited debates, then this becomes harder. However the same rules apply. These are:

1) Stratify the community so not everyone has an equal voice in everything.

2) Every strata has an obligation to help every other strata stay civil and grow the community and norms together.

</comment></comment></comment><comment><USER4> In FIDO.net the problems were largely solved, and they remained solved for a long time. It worked like this:

1\. Each forum has a list of rules. Not reading rules -> penalty. Breaking the rules -> penalty.

2\. Each forum forum has a FAQ. Asking a question from FAQ -> penalty. Unless you can show you read FAQ and there is still something to be discussed.

3\. Each forum has regularly updated off-topic list. Bringing up a topic from this list -> penalty. Moderator keeps the offtopics up to date, adding/removing things as needed to maintain calm.

4\. Arguing with moderator or comoderators in public -> penalty. All arguments should go into private messages.

5\. Telling others what they can and cannot say (usurping moderator's power) -> penalty. All complains should go into private mail.

6\. Moderator is usually elected (if public forum) or self-appointed (if he owns the forum). The former can be impeached. The latter can be ignored by creating an alternative forum.

7\. Moderator appoints co-moderators. If comoderators misbehave, moderator alone can overrule.

8\. Penalties accumulate, yielding bannination.

The system worked well because bannination was real - most people on FIDO had real identities. No reason one can't do the same with facebook logins now.

<comment><USER5> FidoNet was network governed by a group petty, power-hungry and insecure moderators posing as lords of the manor. It was really, really sad. It worked well in the sense a prison colony could work well. It's a good thing that the whole thing has pretty much died and replaced by the much bigger and more diverse Web.

<comment><USER4> In my corner of the FIDO moderators were harsh but just. I find it that generally people appreciate tyranny when it leads to excellent result where it matters, in this case quality discussion on various topics.

</comment></comment></comment><comment><USER6> downvoting is just as much a problem with fools as well. A good downvote is when a post/comment is abusive or pointless. A bad downvote is when the voter disagrees with the opinion expressed. Mention Microsoft on slashdot you'll get downvoted, period. Mention VisualBasic on any tech forum you'll get downvotes regardless of the point you're trying to make.

Eventually you learn to stop trying to present alternative points of view and just go with the flow or leave because the "fools" are now in charge of the downvoting.

<comment><USER7> _A good downvote is when a post/comment is abusive or pointless. A bad downvote is when the voter disagrees with the opinion expressed._

At least 1568 days ago, the site founder pg was of a different opinion. He wrote,

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

"I think it's ok to use the up and down arrows to express agreement. Obviously the uparrows aren't only for applauding politeness, so it seems reasonable that the downarrows aren't only for booing rudeness.

"It only becomes abuse when people resort to karma bombing: downvoting a lot of comments by one user without reading them in order to subtract maximum karma. Fortunately we now have several levels of software to protect against that."

My own analysis of the issue is that if I receive a downvote, I'm curious about why I received it. I understand that not everyone shares all of my opinions, but perhaps if one of my comments is downvoted, I can learn something about how to express my opinions so that they are allowed to stand, without people feeling they have to go out of their way to vote them down. Any time I have a comment with negative karma (which is a rare occurrence), I look back on what I said, and think about what I can learn from the other comments in the same thread and how I might express myself better the next time. I try to learn from the people who disagree with me as well as from the people who agree with me.

<comment><USER8> Thank you for quoting the comment more fully. I've seen it paraphrased too succinctly as "pg says downvotes can mean disagree."

Although pg hasn't implemented a change to this effect, I believe he would agree that -- "people feeling they have to go out of their way to vote them down" -- implies a downvote should be more work than an upvote.

I think a downvote should require a response to the parent comment that:

1\. contains at least 15 English words, excluding quoted phrases

2\. quotes at least min(25% of entire comment, 5 consecutive words) of the parent comment

3\. meets current downvote requirements (karma and downvote bombing protections spring to mind immediately)

For the sake of argument, such a "required downvote comment" could contribute almost nothing -- but it would still reduce downvotes. An example of a really bad downvote comment on this comment might be:

      > a change to this effect

      This is HN, not reddit. Um, did you read the article? I down voted you.

The 15 English word requirement sort of requires some sort of explanation. Does anyone think this would help?

<comment><USER9> I think this is an actively bad idea. If I had to reply to a comment, explaining why the comment is bad, then the most likely scenario is that the writer replies, arguing with me, and I reply, and now the thread is full of a bunch of bullshit that nobody wants to read. Multiply this by ten per post.

If the downvote reason was only visible to the writer, then I could go for that. But it's ridiculous to make a rule that drives people to have huge off- topic flamewars in the middle of a comments section.

<comment><USER8> Agreed, and good suggestion.

Make the downvote reason only visible to the writer, and do not allow the writer to reply to the downvote reason - the system already heavily favors upvotes over downvotes, so that writers can just shrug off the downvotes.

The main thrust of my suggestion is to make downvoting even harder.

</comment></comment></comment></comment></comment><comment><USER10> I'm new here.

In my opinion HN has the most advanced online community control system that I know. For example I cannot downvote. That's great. I didn't contribute enough to have that previlege yet, I'm still adapting to community standards. I don't want my mistakes to weaken the community standards, the same standards that made me want to join. If the core members don't think I'm contributing I agree that they should have the power to weaken me. Some control in one website is not censorship. It WAS MY CHOICE to join this community, I didn't create it. If I'm not happy at any moment I'm free to go. I'm just being banned from a community, I'm not being banned from internet, that would be censorship. There are still thousands of other communities to belong or even start a new one.

This is different from censorship in one country. There you have right to belong cause you borned there, it WASN'T YOUR CHOICE to join. You are already a core member. You have the same rights as everybody else to establish the standards. You need a place to exist.

edit: I think we can use this "logic" to analyze immigration problem.

</comment><comment><USER11> I would give this 50 up votes if I possibly could, mostly because it struck very close to home.

I've been in a leadership role in a couple of smallish online communities that, on further reflection, died just because of what this article is talking about. Fear of doing anything because of not wanting to be labeled another mod abusing their powers, or what have you. I've been members of communities that died or were damaged due to outright mod abuse - figure the converse is better, right? Death through inaction and allowance is better than death through action and disallowance, right? Intent doesn't even begin to enter into it.. _right?_

Not so sure anymore.

So like most things in life, it's a balancing act. As a commenter on the article said, 9 times out of 10, your guess that a comment is crap, will be correct. Don't start second guessing yourself. You probably have a very finely tuned crap sensor.

<comment><USER2> If you have a couple people in a leadership role that you share power with, you can make sure everyone acts together and that sticky situations are discussed beforehand. That helps manage both the impression of abuse of power and issues in application.

</comment></comment><comment><USER12> >It's just one fool, and if we can't tolerate just one fool, well, we must not be very tolerant.

Repeat after me:

      100 times I've sworn this oath:
      100 years I'd rather languish in a dungeon,
      100 mountains I'd rather grind to dust,
      If only I don't have to make a fool to see the truth.
      – Bakhvalan Machmud

Now, the problem arises when that fool is you.

<comment><USER13> That kind of attitude leads to not being able to take any sort of challenging by anyone who you label fool or inferior, be it by smarts, knowledge, experience or other things.

<comment><USER12> The quote is a translation as far as I know. (The only reference to it I can find is in a book translated from Russian about Russia.) So subtle nuances are likely missing.

To me at least; "to make" a fool to see the truth implies that you will try and try until you succeed. This approach is ineffective because a large portion of people are never satisfied. (See: Pretty much any Internet drama or argument.) And if you adopt the attitude of winning every argument, you will almost inevitably flood communication channels with your discourse. (See: Any HN thread where the whole page is a few outlying comments and a majority in a threaded argument about a topic. Or a forum thread that goes on for pages where people argue about something.) Such discourse also costs you time to participate in and prevents you from doing more useful work. (Before writing this comment I could have _sworn_ that Newton wrote a letter to this effect explaining why he stopped publishing his works. But I couldn't source it (I spent around 20 minutes trying.) so I decided that if it exists including this comment will likely make it appear from the depths of the Internet, if it doesn't it doesn't.) There comes a point where the best way to resolve an argument is to either cut it short or not have it.

EDIT: A large portion of this is how one defines the word "fool" if everyone who disagrees with you is a fool in your mind by default, then I doubt you're going to listen to anyone who expresses disagreement. Regardless of weather or not you engage them in conversation.

People as a general rule don't let the people they consider fools change their mind. Unless by proxy when they learn from their actions.

</comment></comment></comment><comment><USER14> The problem is you might identify as "fool" someone who simply doesn't agree with you or the established groupthink. Re-read the first few paragraphs and replace the word "fool" with "person who doesn't agree with you" -- now it says something very different.

<comment><USER15> Now replace fool with dragon. Says something different again. Whoa!

Good mods can tell the difference between people who have other views and idiots. If the moderators in your community of choice can't, you should probably choose another community. But your equivocation between silencing other viewpoints and eliminating unhealthy voices is not useful.

<comment><USER14> I upvoted you before you added the second paragraph because I thought your joke was funny. "But your equivocation between silencing other viewpoints and eliminating unhealthy voices is not useful." Why not? I was making the point that it's often not easy to tell the difference.

<comment><USER15> I mean, the body of the blog post you're responding to is claiming a) that it is, and b) that even when it isn't, you can just leave a poorly modded community. In the face of that, I don't find "replace-the-word" rhetoric very compelling.

<comment><USER16> What are the factors that would make it compelling?

<comment><USER15> If it were shown that even in good communities with solid mods, a primary use of moderating power was to silence dissent.

For example, in this community, anti-startup articles get posted occasionally. I'd expect to see far more dead comments from people who post agreement with such articles. But I browse with showdead on, and I see no such thing.

Basically, the rhetoric needs to line up with the evidence at hand. If it doesn't, it's unsound.

<comment><USER16> Speaking of moderating power, it appears I've been down-modded for asking a clarifying question out of genuine curiosity.

<comment><USER15> 'twasn't me. That being said, whoever downmodded you probably felt it should be obvious.

<comment><USER16> It was more obvious, re-reading the parent post and noting the phrase, "In the face of that." My reading of your comment without absorbing the phrase's implications prompted the question.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> Is it just me, or does this _reek_ of elitism?

 _...into this garden comes a fool...Then another fool joins, and the two fools begin talking to each other, and at that point some of the old members, those with the highest standards and the best opportunities elsewhere, leave..._

It reads to me like the fool is somehow intrinsically, immutably subhuman compared to the "knowledgeable and interested folk". It's as if we weren't all once not knowledgeable, as if the non-knowledgeable fool can never become knowledgeable. I'd say that compared to a disinterested fool, a non- knowledgeable fool who's interested and is attracted to this garden of "high quality speech" is easier to fix.

The conclusion seems to go against everything Less Wrong is about. It reads to me like, "biases? Nah, I bet nine times out of ten you're not biased at all. Downvote away!"

<comment><USER18> So what if it is elitism?

Elitism is a great thing provided that the elites become elites not by reason of birth, but because they are the most skilled or knowledgeable.

You don't have an issue with elitism when it comes to doctors, do you?

No forum I know of has lasted long enough to a second generation of users.

</comment></comment><comment><USER19> The large number of people willing to take Brian Hamacheck's word (without response or evidence) on the "who's here" versus "who's near me" dispute seems relevant to me. The number of people offering to donate is even more disturbing.

<comment><USER20> What's even more disturbing is reading the comments of the arrest section on local newspapers. 95% of the people commenting seem to make up these elaborate fantasy scenarios of what happened in their heads and then decide people's guilt or innocence based on that.

<comment><USER16> Welcome to the human condition. Evidently, the human imagination predicts well in the context of small family groups in the wilderness. Have a society with enough complexity to merit laws, and the imagination isn't so finely tuned.

<comment><USER21> What makes you think it works on small family groups? All we can conclude from ev-psych is that making stuff up didn't cost the imaginers much reproductive success personally - we have no idea what it did to the actual victims having stories made up about them.

<comment><USER16> I suspect that in small family groups in the wilderness, much more of our imaginings concern the environment and non-human agency, and fewer concern the actions of the group.

</comment></comment></comment></comment></comment><comment><USER22> That is also the reason why /r/askscience is one of the better subreddits:

<http://imgur.com/JGqhf.png>

<comment><USER23> For those of us unfamiliar with reddit and /r/askscience in particular can you elaborate?

<comment><USER24> Posts in reddit are partitioned into "subreddits". Each submission is made to one subreddit, though multiple submissions can be made to spread items to different communities. Each subreddit is essentially like Hacker News, a list of ranked links with comments all flavoured by some common theme. The front page of reddit aggregates posts from your preferred subreddits (or a default list of popular subs for users who aren't logged in).

/r/askscience is a subreddit in which users can ask real scientists questions about science. It's a less-structured StackOverflow, essentially. Submissions are somewhat moderated, comments are more heavily moderated. Top-level comments are not allowed to be jokes, and offending comments are removed. On- topic jokes in other places are allowed, but too much joking around in a thread will often lead to all of the comments in the thread being removed. Deleted comments are replaced by "Comment removed" tombstones, and seeing whole trees of these tombstones is a decent reminder to stay on-topic.

The CSS of the subreddit also encourages the community to maintain their standards. When upvoting, downvoting, commenting etc, users are reminded what those actions represent in the community. There is also an informal hierarchy of posters, with experts' comments being identified with short descriptions of their specialisations. The posts of these users are given more weight by the community, but the posters are held to somewhat higher standards.

</comment></comment></comment><comment><USER16> This is a two-edged sword. Also keep in mind, "Who watches the Watchmen?" The power to ban can also be used to turn a group into a personal fief. As in many things, the optimum path is a middle one. Checks and balances are needed.

Sometimes the ban hammer is wielded by those with troll ethics.

<comment><USER25> The article addresses this. Basically, it's better to risk the small chance of an abusive mod than the large chance of a gradual decay.

</comment></comment><comment> n-ion That's one way to look at it... Another is just the phenomena of fads. No matter how well-kept the garden of slashdot/digg/reddit/HN they all have a time horizon. Just enjoy it while it lasts.

<comment><USER26> We all have the desire to analyze the things in our life (groups of friends, clubs, companies, communities) that have died. I do it all the time. I wonder what happened to community "x" that I was a part of and really enjoyed and miss. You look around at your neighborhood or city and see permanence and figure your community must have had something wrong with it.

Of course, the barriers to entry and exit for an online community are very low. People change, the time they have available changes, their interests change, whatever. They exit the community as easily as they entered it. Soon the community dies. Your town or neighborhood isn't so easily left or entered so the stakes are much higher.

Sometimes communities just get old and people leave. Pretty soon they're gone.

</comment></comment><comment><USER27> Ironically LessWrong is going through a phase of struggling with increasingly meddlesome trolls, without terribly much moderation in evidence.

<comment><USER19> A community is going through exactly what he was warning about? That's not irony.

<comment><USER27> Not just any community; the community the author was trying to establish by writing this essay (along with the others). That's tragic irony.

<comment><USER28> It perhaps also fulfills that story-role, yes. Nonetheless, it shouldn't be contrary to your expectations, if you apply a little wisdom.

I find in my own case that the things which bug me about others are things which deeply bug me about myself. Whenever I find my heart beating a little harder and my brow a little furrowed, I try to relax, and take a deep breath, and see what it is within _me_ which _resonates_ so strongly against the error that I have seen. I am normally quite patient with error, and this usually causes my impatience.

Personally, I feel this "what is wrong with _me_ " redirection is a much deeper lesson than the fact that harsh moderation can help keep a community together. First off, it is a discipline which can help keep _us_ together, as opposed to the communities we moderate. And second, because the original lesson comes embedded in a much deeper truth, which Eliezer doesn't seem to acknowledge. I would like to spend a moment on this:

The deeper truth is that _love is transformative_ , that to love is to change both yourself and your beloved. The original post just notes that if a moderator isn't moderating, they aren't loving their community. True enough. It is important, however, to understand that transformation is not _sufficient_ for love: that we all know people who do use their authority too far.

Well-kept gardens don't die due to pacifism. That's stupid -- if they did, then they weren't "well-kept". But they die because they don't get the love that they need. It doesn't matter how much you pull the weeds if you forget to water the roots and fertilise the soil.

To any of you who wish to know whether they love their job, I will simply add the poignant questions: when did you last transform it? And when did it last transform you?

</comment></comment></comment></comment><comment><USER29> The tension between maintaining the original quality and growing the size of the community by several orders of magnitude is, in my opinion, an unsolvable problem.

No amount of arrow-clicking, ignore list or banning can solve this.

The easiest way to control the quality of the community is to control its growth. Pay-wall, invites, etc. will all be vastly more useful than after-the- fact approaches.

When the barbarians are in the walls, you've already lost.

</comment><comment><USER30> Things just haven't been the same since September '93.

</comment><comment><USER31> Interestingly, the story strikes as a completely opposite of 4chan.org/sci/ where among army of trolls many intellectuals for many years discuss interesting ideas.

Maybe it's the community size, maybe it's new technology (comment voting, bans and such) but I have a hunch that fools are not a problem.

<comment><USER32> Does 4chan.org/sci/ have comment voting? If not, I cannot make sense out of your comment.

EDIT: replaced period with question mark in my first sentence.

<comment><USER31> Maybe it's due to 4chan's huge community size that fools are not a problem as they seem in smaller communities. Additionally, there is a whole slew of tools to identify (and punish) fools such as karma, comment voting, etc which perhaps weren't as widely available in the past.

4chan has mods who routinely remove child-porn and other questionable, non- related material. <http://www.4chan.org/faq#whomod>

</comment></comment></comment><comment><USER33> > It was once a well-kept garden of intelligent discussion .... But into this > garden comes a fool [quoted from the original article]

Assuming this isn't a community of those who come out of the womb enlightened, aren't most of us living in some state of foolishness?

I suppose it might be possible to sustain a community by continuously attracting new enlightened individuals, but wouldn't it be more practical to do what most societies do and teach (at least some of) the fools until they aren't fools any longer?

</comment><comment><USER34> These little localised gardens, their upvotes and downvotes have lost the ancient pure glory of USENET and the killfile.

"This means all your question, comments, or pleas for help will go unheard... or, even worse, answered by idiots."

</comment><comment><USER35> I think he meant that unkempt gardens die. Well-kept gardens are curated or moderated.

</comment><comment><USER23> The only online community I can think of that this does not apply to is advogato.

</comment><comment><USER36> Clay Shirky's "A Group is Its Own Worst Enemy" is also a very good read on the matter:

<http://www.shirky.com/writings/group_enemy.html></comment>


German vaccine firm denies report of US takeover bid - <AUTHOR> https://www.mercurynews.com/2020/03/16/german-vaccine-firm-denies-report-of-us-takeover-bid/ <comment><USER2> Here's part of my HN comment from yesterday's article about this, which I feel is worth repeating here:

\---

An excerpt from [that previous article]:

> Welt am Sonntag also quoted an unidentified German government source as > saying Trump was trying to secure the scientists' work exclusively, and > would do anything to get a vaccine for the United States, "but only for the > United States."

Some of the questions you want to ask when you see an article quote like this:

\- Who is this unnamed source, exactly?

\- Is the article accurately representing what they said?

\- In particular: does it accurately represent their intended meaning, in context?

\- Does that person speak for the German government? Or is this one government employee's opinion?

\- If a German company moves its research labs into the USA, but remains a German company - like the article says - wouldn't that make it impossible for them to hide the secret formula for a vaccine?

\- Why would the USA (or any country) even try to keep a vaccine formula secret, in the face of a global pandemic like this? If you think about it, is that comic-book-villain scenario even plausible?

<comment><USER3> The answer seems to be that it doesn't make any sense, and was in fact fake news. As always, go to the source (when available).</comment></comment>


Show HN: Wallow – A wallpaper that rises at sunrise and sets at sunset - <AUTHOR> https://play.google.com/store/apps/details?id=io.otim.wallow <comment><AUTHOR> Hi, Isaac here. I built this live wallpaper when our city went under mandatory lockdown (you know, you know).

This wallpaper changes colors to look like the sky outside based on the time. (spoiler: it's prettiest at dusk and dawn)

It's a simple project I initially hacked together for myself but decided to release to the public. I hope you like it, I'm always looking for constructive feedback as well.

PS: it's great for if you're indoors all the time ha.</comment>


After Google bought Nest, it removed company's biggest competitors from results - <AUTHOR> http://pando.com/2014/05/29/after-google-bought-nest-it-removed-one-of-the-companys-biggest-competitors-from-search-results/ <comment><USER2> It's a shame that Pando's inquiry didn't make it to me, because the suggestion that Google took action on vivint.com because it was somehow related to Nest is silly. As part of a crackdown on a spammy blog posting network, we took action on vivint.com--along with hundreds of other sites at the same time that were attempting to spam search results.

We took action on vivint.com because it was spamming with low-quality or spam articles like

\- [https://web.archive.org/web/20130919184930/http://anadesign....](https://web.archive.org/web/20130919184930/http://anadesign.info/small- attract-home-buyers.html) for "Alburquerque NM home security system"

\- [http://www.womenspk.com/5-ideas-for-keeping-your-elderly- rel...](http://www.womenspk.com/5-ideas-for-keeping-your-elderly-relatives- better-protected/)

\- [http://www.frugalful.com/2013/12/five-surprising-ways-to- sav...](http://www.frugalful.com/2013/12/five-surprising-ways-to-save-money- on-your-homes-expenses.html)

\- [http://doyoulovewhereyoulive.com/archives/top-10-benefits- of...](http://doyoulovewhereyoulive.com/archives/top-10-benefits-of- automating-your-home)

\- [http://arch.itect.us/2013/01/17/top-10-benefits-of- automatin...](http://arch.itect.us/2013/01/17/top-10-benefits-of-automating- your-home/)

and a bunch more links, not to mention 25,000+ links from a site with a paid relationship where the links should have been nofollowed.

When we took webspam action, we alerted Vivint via a notice in Webmaster Tools about unnatural links to their site. And when Vivint had done sufficient work to clean up the spammy links, we granted their reconsideration request. This had nothing whatsoever to do with Nest. The webspam team caught Vivint spamming. We held them (along with many other sites using the same spammy guest post network) accountable until they cleaned the spam up. That's all.

<comment><USER3> Matt,

I have tried reporting a website that buys 100% of its links (I used to work for them and have tons of proof) and is being rewarded with 2.5-3mil hits a day from google and yet no one seems to care! Is there a way to get my point across or do I have to write a blog post that gets picked up by HN to get any action taken?

<comment><USER2> Well, the best way to report spam is with our spam report form at [https://www.google.com/webmasters/tools/spamreport?pli=1](https://www.google.com/webmasters/tools/spamreport?pli=1) because then we can prioritize the report along with other complaints. But you can also post in our webmaster forum at [https://productforums.google.com/forum/#!forum/webmasters](https://productforums.google.com/forum/#!forum/webmasters) or catch us during webmaster office hours--see [https://sites.google.com/site/webmasterhelpforum/en/office-h...](https://sites.google.com/site/webmasterhelpforum/en/office- hours) for the schedule of upcoming office hours. Or catch one of us at a search conference (I'll be at SMX Advanced in Seattle in June and at Google I/O later in June).

If none of those work, I often pass on spam reports that people tweet to me (or when they do a blog post and tweet me that link). You can also tweet to @googlewmc (for Google Webmaster Central). Or if you add an email address on your HN profile, I'll drop you a note.

<comment><USER3> Email added in the profile. I would be more than willing to show how you guys are sending millions of hits (daily!) to a site scraping content and buying cheap backlinks.

I'm surprised that such tactics work in 2014, and am just as surprised that I got your attention. Hacker news is a powerful place!

<comment><USER2> Hey, I didn't see an email address at [https://news.ycombinator.com/user?id=r0fl](https://news.ycombinator.com/user?id=r0fl) ? Maybe the page is cached and only gets rebuilt every so often, but you might want to double-check?

<comment><USER4> Sometimes people make a mistake and just put it into 'email' (which is non- public) and not into 'about' (which is public).

</comment></comment></comment></comment></comment></comment><comment><USER5> This is misleading. The article cites a single company that inadvertently violated Google's rules by failing to mark paid links. This seems to be part of the ongoing saga of companies making errors, sometimes honest, and being penalized.

Is the company even a major player in the smart thermostat space? It's not even listed in this market analysis from last fall: [http://cleantechnica.com/2013/11/14/honeywell-leads-smart- th...](http://cleantechnica.com/2013/11/14/honeywell-leads-smart-thermostat- leaderboard/).

It looks more like a competitor in the home automation systems space that sells smart thermostats mainly as part of a more comprehensive system.

Given the absence of action against any of their more major competitors, this seems like a coincidence.

<comment><USER6> I would say it is more link-baity than misleading, Google did delist the smart thermostat maker Vivint, and they did buy the smart thermostat maker Nest. The article attempts to paint a picture of intrigue and conspiracy, but I suspect it was just bad SEO on their part, or even Counter-SEO at work by another of Vivint's competitors.

That said, three major things stand out, which are not link baity and really do indicate a problem.

First, Google is how people find things, that gives them extraordinary power to direct the market, and that power is operating completely unchecked.

Second, searching for Vivint, is what we at Blekko call a 'navigation search'. If you've typed in Vivint it is pretty clear the result you want, and in the article Google auto-corrects it away to vivino. Now I just typed vivint and it found it, but if Pando was accurate that a navlink wasn't found when they tried it, that would be a pretty egregious failure of a search engine, I could see 'smart thermostat' not listing them but not a search on their name.

And the final thing is of course the opacity of it all and the challenge of the algorithm. It really is a dead end until some sort of AI comes along, human curation did wonders for our index and Microsoft's. Google might do well to stop investing a billion dollars a quarter in acquiring traffic and instead spend that money making a cleaner index.

<comment><USER7> Google doesn't help me find things on eBay or Amazon. Both those sites have terrible site searches, although for dofferent reasons.

For example, searching eBay for "16 GB MicroSD cards" and then sorting by price returns a huge list of people selling a choice of an adapter for micro- SD to SD for 99pence or a MicroSD card for £X. Thus, sorting hy price just returns the proce for the adapter card (which I am not interested in).

Searching Amazon is a hideous experience where results are stuff with sometimes hundreds of irrelevant near duplicate results with no way to rapidly jump past them.

One way Blekko or DDG or Bing could earn my undying love is by making site specific search better. I would gladly click on result links even if you presented me with affiliate links.

</comment></comment></comment><comment><USER8> Here's another thing that Google's alleged dirty-tricks obscured: Vivint's Wikipedia entry including its fairly lengthy "Legal Issues" section:

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

According to that section, Vivint has made settlement/voluntary compliance agreements with, or been penalized by the states of Kansas, Ohio, Nebraska, Wisconsin, Arkansas, Washington, Louisiana, South Carolina, Minnesota, Tennessee, California, and Oregon upon accusations of fraud and deceptive practices.

Holy shit...Google has even more power than we had yet imagined! Talk about Pando burying the lede here.

Edit: Holy, _holy_ shit: it appears that even _Wikipedia itself_ is on the scam. At the very top of Vivint's Wikipedia entry, some Wikipedian/Nest- boardmember has placed a banner warning stating:

> _This article appears to be written like an advertisement. Please help > improve it by rewriting promotional content from a neutral point of view and > removing any inappropriate external links. (March 2014)_

So a company that Google has wiped out from the search results also, within a few months later, has its Wikipedia entry vandalized by the Wikipedia Cabal to make it look like an advertisement for Vivint, as if Vivint or someone friendly to the company would ever break the rules on Wikipedia. Surely this is a conspiracy to end all conspiracies.

<comment><USER9> Take off your tinfoil hat, you are reading into this a bit too much. The basis of the "Legal Issues" section has been there since the beginning of 2012:

[http://en.wikipedia.org/w/index.php?title=Vivint&oldid=47624...](http://en.wikipedia.org/w/index.php?title=Vivint&oldid=476243376)

In terms of why it's marked as an advertisement, compare Vivint's wikipedia page to Nest Labs or Sonos and see what you think:

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

The historical versions are written in the same way too. They are advertisements, some PR guy at Vivint has written them to try and make the company sound good and added loads of backlinks.

</comment></comment><comment><USER10> No real comment on the issue at hand, but I've been targeted by Vivint's door to door sales team on one occasion. It was a very pushy salesman that started to ask security related questions despite my insitence for him to leave. Once I managed to gen rid of him I found a dozen plus other similar accounts of pushy and deceitful selling practices in my area. Serves them well I would say.

<comment><USER11> So, Google is the ultimate police against companies with pesky marketing practices? Do you even realize how bad is this mindset?

<comment><USER12> In their house, they are... Google isn't a democracy or a charity. They will list you if you follow their rules, the same rules everyone else has to follow to be listed... its their right and prerogative to set and enforce those rules, because its their service.

<comment><USER11> Is that true even if you are a gigantic monopoly in the search business?

</comment></comment></comment></comment><comment><USER13> Highly doubt that this was anything but a coincidence. Even if you don't think it was, the Nest deal most likely took more than 2 weeks to close, and it'd be crazy for Google to take such deliberate and egregious actions before then.

</comment><comment><USER14> Vivint is more of an ADT competitor. They are a security/automation company with monthly fee model.

It is clear they have spent alot of money buying links from their profile, but so has ADT.

A more fitting question would be why ADT hasn't also been penalized.

<comment><USER15> A likely explanation is that ADT has also been penalised, but the organic references to ADT counterbalance it enough to not affect them as much.

<comment><USER16> Manual removal from the results _supersedes_ the core relevancy algorithms.

</comment></comment></comment><comment><USER17> This actually makes sense. Does it matter when they started dissecting links? What matters is when they de indexed. Why rapgenius was given break so early? Does Google think people will not know just because they don't have billion dollar in their pocket? lol. Here is my version of story: Board decided to purchase nest and naturally they looked at competitors. They send the message down to webspam team and asked them to check their linking profile and if anything is against the guidelines, take their ass down.

You know there are laws but prosecutors decide whether to file charges or not or a police decide whether to pull over or not if the car is driving 8-9mph more than the speed limit. Be polite to them, you can get away or get less penalty. Show aggression to them, you will get charged for much more things than you were initially approached for. Sometimes you dont even know what that means. Once I got a traffic citation after making a wrong U-turn and since I was "showing attitude", I got citation for having foreign materials on my liscense plate?? LOL

Of course attitude= money in this context

</comment><comment><USER18> I'm sorry, but I wasn't aware Nest HAD competitors. Not only that, Vivint was violating the rules and got punished accordingly for it.

"And, as they say, there's no greater place to hide a dead body than on the second page of Google's search results." is a massively inflammatory statement.

<comment><USER19> There isn't any evidence that Vivint did anything against the "rules". You're jumping to defend google pretty quickly, almost automatically. Just because you like them, doesn't mean they are always in the right.

They might or might not be in this case, we don't know enough to tell.

<comment><USER20> From the article it appears there was a clear transgression. It's just that it appears to be from ignorance vs deliberate.

</comment></comment></comment><comment><USER21> I hate government intervention in these matters, I really do. But in the case of Google I feel that their search results should be walled off from any other business interests. They have so much influence over the discovered internet that maybe its time to separate search from their other business interests.

Page and Brin were geniuses in realizing early that search was the golden ring to reach for. They deserve their billions for bringing this amazing service to us; but now with shareholders muddying the waters I don't think this should be leveraged for other business efforts.

</comment><comment><USER22> There's a potentially nasty lawsuit waiting to happen there if Vivint has solid tracking/referral records, since the standard in civil trials is only 'preponderance of the evidence.'

</comment><comment><USER23> Say what you want about how Google handles penalties but I think it is silly to suggest that Google has acted any differently in this case than to the vast majority of sites out there who receive penalties, but don't have friends in high places to expedite the process of having the penalty lifted.

<comment><USER24> The more interesting thing to me is the rapidly escalating list of conflicts of interest. Even _if_ Google tries to remain squeaky clean for all eternity, they'll have a harder time of ensuring that they are, with staff tweaking a growing number of signals to their ranking algorithm while being to various extents aware of what is part of Google.

I too, don't think Google is in the wrong in this case. But the wider issue of having what is likely the largest gatekeeper of internet traffic own a growing list of other properties is likely to sooner or later become a major problem.

</comment></comment><comment><USER25> "one of the"

</comment><comment><USER26> Hmm sorry to say so but Vivint does have several court orders for missleading information.

I also don't see how vivint makes the same products as nest or even making em a competitor... Nest is something that is coming from the future and I can assure you that vivint is not even close in that.

Also I don't get how Google is supposed to contact every website that puts on a banlist for innapropriate or missleading content...

</comment><comment><USER27> This is what happens when we let one company get too much power on the web.

<comment><USER28> Yes, Microsoft has had a desktop and document format monopoly for about 2 decades. It's not about any company being "evil" or bad, it's just with that much control, you can really leverage that monopoly and hinder innovation... What should we do about it?

As for the search engine problem, just use a different search engine. It's such a trivial problem to solve.

</comment></comment><comment><USER29> And this, children, is how you get an antitrust probe started.

<comment><USER20> Very true. Google is to search what MSFT was to OS/PC's. As they expand into new areas they are heading for a brick wall. Unless search is disrupted.

<comment><USER20> Not sure why I went negative 4 on the downvotes. Google is to search what MSFT was to desktops and they control a super critical entry point to the Internet. As they do more and more non search things they'll be tempted to and overly scrutinized with how they utilize their search business to help those other businesses. Unless search is disrupted and they lose that stranglehold.

</comment></comment></comment><comment><USER30> Remember when the standard Google excuse was "it's not our fault, it's the algorithm"?

Now it's "what are you gonna do about it?"

</comment><comment><USER31> I think that these manual actions are likely never to happen to Google properties, but they can easily happen to everyone else. They are opaque and have severe consequences on those that are affected.

How are websites selected for manual actions? Does someone get handed a list of sites to check out? Are they selected algorithmically? How are manual actions decided upon (when it is up to humans, it can be very inconsistently applied)? How are the results communicated to those affected (I hear that it is communicated in very vague and unhelpful ways via Webmaster tools)?

If one isn't friends with Matt Cutts or have deep SV connections (i.e. if I am not RapGenius), how does one get a manual action removed quickly? Apparently it is really really hard if you are not RapGenius.

Seriously, these manual actions are scary as hell for those relying on Google to send them traffic. If MF can be seriously harmed by a manual action, no one is safe.

<comment><USER32> [http://www.webmonkey.com/2012/01/google-deranks-chrome- downl...](http://www.webmonkey.com/2012/01/google-deranks-chrome-download- page-due-to-spam-links/)

</comment></comment><comment><USER33> If there is any truth to this article, then things are going to get really bad for Google. This with other recent complaints may prove that Google may be stepping beyond the gray areas of a monopoly. A good lobbying may delay the process but it is inevitable.

OT: I don't usually complain about votes but the amount of downvotes in this thread is appalling. Anything critical of Google has been downvoted. Ironically, if asked, most people here would be against censorship of any kind, however for many that is valid as long as the opinion stays within their perception. Under the same argument, I can "predict" that this post like other similar ones before is going to flagged off the frontpage. Its starting to get repetitive enough to be no longer ignored. Not sure how the situation can be improved because in reality its very hard to built a community with diverse opinions.

<comment><USER34> I guess fortunately for Google, it appears there's no merit to the accusation?

<comment><USER35> To piggyback on the conversation, coming from a small business that has seen a reconsideration request wait in hibernation without a reply for over 40 days, the bigger issue that I would hope more journalists would start to shine the light onto is the lack of transparency and need for regulation of Google search by an independent entity. The reality is that Google generates 60 Billion in revenue and close to 20 Billion in profits, but more importantly they single handily control the fate of millions of companies and influence probably a trillion dollars of commerce on a global level every year.

They create a set of rules that they apply on a very subjective basis.

Just one example, ever get hit with a thin content penalty?

Google has a video out that creating pages to market cities in every state appears against guidelines, I guess they forgot to tell that to Zillow (dominates google search for mortgage rates/city search) without real content and simply a rate widget advertisement feed, and there are hundreds of these examples out there.

Yet in a statement made over the porn model lawsuit, here was googles reply:

[http://searchenginewatch.com/article/2346899/Model- Battles-G...](http://searchenginewatch.com/article/2346899/Model-Battles- Google-Yahoo-in-Court-Over-Images-Linking-Her-to-Porn-Sites)

"Search engines are neutral platforms that do not create nor control content on the web," Google said in a statement to CNN. One of the interviewees in the CNN video argued that the creators of content should be held responsible, not the search engines.

The rap genius penalty has already been highly publicized, but here is a good recap of how quickly the penalty was lifted.

[http://searchengineland.com/rap-genius-back-in- google-181125](http://searchengineland.com/rap-genius-back-in-google-181125)

This is beyond frustrating for small businesses to see this quick turnaround, when most small business owners are sent to the google webmaster forum, where they have to try to get problems solved by volunteers and not actual employees.

What small business owners need is a real voice and oversight to provide a tangible path back into the index, as opposed to the vague answers and rules that apply differently.

Google should be required to provide real employees supporting their web forums

Google should be required to provide clear examples of why a website was removed

Google should be required to provide clear timelines if a penalty has been placed on a website

Small business are pushed out of business when they are removed from Google, it's time for some real change and forced transparency</comment></comment></comment>


What makes Lisp macros so special? - <AUTHOR> This question, about Lisp's macros, has been asked over and over again:
-- https://stackoverflow.com/questions/267862/what-makes-lisp-macros-so-special
-- https://www.quora.com/What-is-so-special-about-Lisps-macros
-- https://news.ycombinator.com/item?id=9508108
-- https://news.ycombinator.com/item?id=2839742
-- http://kresimirbojcic.com/2011/08/02/whats-so-special-about-lisp.html
The value of switching to lisp (or a variant of lisp) must come from the availability of macros. By looking at examples of lisp macros, I find their usefulness certainly not obvious nor necessarily compelling. It is examples of how to benefit from using a language's facility, that make programmers switch.
Paul Graham can keep touting Lisp macros for as long as he wants, without obvious examples, programmers will keep dismissing the switch as being not worth the switching cost. <comment><USER2> One example that I feel most devs can appreciate is the elimination of "boilerplate" code. How often in your non-macro language do you find yourself repeating the same lines of code with minute differences?

Think about JavaScript before and after destructuring was implemented. How many lines of code and mental effort are saved!

In Common Lisp this is just a macro, DESTRUCTURING-BIND ([http://www.lispworks.com/documentation/HyperSpec/Body/m_dest...](http://www.lispworks.com/documentation/HyperSpec/Body/m_destru.htm)). Not a fan of the syntax? Just write a macro to modify how you use it.

Macros allow you the programmer to do similar things, but with anything you want. You don't have to wait for a language committee to agree on something, and then a third party to write a convoluted pre-processing system to 'transpile' the code to work. It's built into the language.

<comment><USER2> Really though, I felt similarly to OP until I read On Lisp[0] and Let Over Lambda[1]. They are chock full of explicit examples. You can only learn so much from StackOverflow questions and Quora answers.

I also hear good things about Paradigms of AI Programming, but I haven't read it yet. From Peter Norvig's retro on the book[2], here are the lessons in it which involve macros:

Design patterns can be used informally, or can be abstracted into a formal function, macro, or data type (often involving higher-order functions). [p. 177]

We can write a compiler as a set of macros. [p. 277]

If you can understand how to write and when to use once-only, then you truly understand macros [p. 853]

A word to the wise: don't get carried away with macros [p. 855]

[0] [http://www.paulgraham.com/onlisp.html](http://www.paulgraham.com/onlisp.html) [1] [https://letoverlambda.com/index.cl/toc](https://letoverlambda.com/index.cl/toc) [2] [https://norvig.com/Lisp-retro.html](https://norvig.com/Lisp-retro.html)

</comment></comment><comment><USER3> 18-19 years ago, I didn't switch to Lisp because of macros.

I was hooked by the list representation: how cons cells can be treated as immutable to implement list operations by always allocating new cells that are garbage collected.

I was hooked by the uniform syntax: good-bye ambiguities requiring associativity and precedence rules.

I was charmed by the empty list being _nil_ which is also Boolean false, and the convenience of _(car nil)_ just returning nil: the resulting code looked slick and elegant to me.

I thought it was great how you can just _quote_ any part of the syntax and you get an expression which gives you that syntax as a piece of literal data.

Eventually I learned about _defmacro_ , too, by which time I was productively using Lisp.

I learned about backquote before macros: wow, how great, I thought: like "foo $bar" string interpolation in the shell but with actual data structure.

I got into Lisp not because of some online hype about macros, but because I happened on a copy of Stuart Shapiro's _Common Lisp: An Interactive Approach_ and worked through that. Now that book can be downloaded in electronic form.

One thing that charmed me was the Common Lisp read-table driven dispatch. Knuth's TeX does something very similar. I imitated Knuth's idea in a macro preprocessor that I wrote in 1999 called mpp; the preprocessor was able to redefine its read syntax by re-assigning the categories of characters. When I discovered that Lisp has a character-categorizing dispatch table as the basis of its scanning, I was really bowled over: it was something I had already liked to the point of having implemented it. (Today, I'm not so hot on read tables any more; my TXR Lisp doesn't have the feature.)

</comment><comment><USER4> pepper_sauce's example is a good one, the ability to mold the language to what features you need today is a big point.

But even beyond that I think the big purpose of macros is the ability to mold the language the application you're applying it to. This is the Domain Specific Language (DSL) idea.

For instance, take Protocol Buffers. The .proto format is a language that lets you define your messages and denote which fields are required, optional, etc. You run a compiler against these .proto files that spits out a generated library for the platform you're on.

This sort of workflow isn't as onerous as it used to be with all the CI/CD push to have tools that build your application in one step. But it is still a separate language with its own compiler that must be maintained entirely outside of your project or language ecosystem.

If, in a hypothetical universe where Lisp dominated Google, protocol buffers had been written in Lisp you wouldn't need a separate compiler and language. A library of macros like defpackage and defmessage could be written that would generate the code for sending and receiving each message type you define inline with the rest of your application. It would all be Lisp code and would benefit from all of your Lisp tools, like linting, debugging, and testing.

And if it was written in a Lisp-y tradition, such a DSL would likely be riddled with hooks for your application code to be able to attach to dynamically, say if you would like every receipt of a message to be logged or if a message fails validation you would want to page the on-call to figure out who's sending bad messages and why.

So, in short, macros allow you to extend the language for reasons even beyond syntactical conveniences like DESTRUCTURING-BIND. It allows you to really shape your tools to the application at hand, and allows others to shape the tools you share to their applications.

</comment><comment><USER5> What programming languages are you familiar with already?</comment>


Mark Zuckerberg has been talking about privacy for 15 years - <AUTHOR> https://www.cnbc.com/2018/03/21/facebook-ceo-mark-zuckerbergs-statements-on-privacy-2003-2018.html <comment><USER2> yeah if this really takes hold, the whole model is stuffed

<comment><USER3> Couldn't happen to a more manipulative bunch, the faster the better</comment></comment>


Ask HN: 2020 Equivalent of Microsoft Frontpage? - <AUTHOR> Hey HN, I was working on some static site generator stuff when I realized that the generator part is much better off running on my computer. Why run a huge generator server program when I can compile it down to HTML, throw it up on Apache, and party like it's 1999? When you think about it that way, running something like Jekyll seems so inefficient and a waste of compute resources on both my machine and whatever server it ends up on.<p>So there's the reason for my question. What's the 2020 equivalent for Microsoft Frontpage? Webapps like Squarespace do not count, it must install and run on my computer. Any modern OS is fair game. <comment><USER2> Jekyll was overkill for me, so i changed to Hugo... yes, same theory, but a LOT faster than Jekyll, and only one binary to worry about... my sites (tiernanotoole.ie, geekphotographer.com) are built local, checked into git and then checked out on the server, but stuff like netlify will do that for you...

As for the desktop app for building stuff, looks like Dreamweaver ([https://www.adobe.com/ie/products/dreamweaver.html](https://www.adobe.com/ie/products/dreamweaver.html)) is still a thing... also, based on this SO thread [[https://webmasters.stackexchange.com/questions/19946/what- is...](https://webmasters.stackexchange.com/questions/19946/what-is-a-good- replacement-for-ms-frontpage)], Expression Web might be the spiritual replacement for Front Page...

</comment><comment><USER3> You're looking for SeaMonkey. It's the Mozilla suite featuring a WYSIWYG HTML editor, and is still actively maintained:

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