Unix is not an acceptable Unix - <AUTHOR> http://mkremins.github.io/blog/unix-not-acceptable-unix/ <comment><USER2> Interesting examples, especially in light of the recent debates about Unix shells and PowerShell.

In PowerShell, the `ls` command _is_ a simple command that produces output without flags to control output format, ordering or filtering. Like with higher order functional programming, those tasks are delegated to cmdlets like Format-List, Format-Table, Select-Object, Where-Object.

Some PowerShell examples:

To list the files and directories (children) of a directory:

        ls

To get just the names or the full path:

        ls | select Name
        ls | select FullName

To discover _which_ properties are available from `ls`:

        ls | gm

To select only files larger than 200MB:

        ls | ? Length -gt 200MB

(ls is alias for Get-ChildItem, gm is alias for Get-Member, ? is alias for Where-Object)

It is somewhat ironic that PowerShell is more true to the principle of "do one thing and do it well" than the Unix shells.

<comment><USER3> My one wish for UNIX coreutils would be that they all had a switch to output JSON.

ls --json

ps aux --json

If they did that, all that powershell stuff would become trivial.

Wouldn't even be hard.

<comment><USER4> Ten years ago this would be --xml. Who knows what it would be ten years from now. Text streams are timeless.

<comment><USER5> Text streams are just an ad hoc structured format. Even an out of date format is better than one you have to invent or decode on a per case basis.

The whole xml vs json debate feels pretty pointless, they are for all practical purposes equal (in size, complexity etc). Sure xml has some weird design decisions around namespaces and so on, but if you use it as a simple hierarchical markup it's pretty much equivalent to json with different brackets? and often easier to parse for humans because of closing tags instead of }}} and of course, comments.

The xml-hate I think isn't really xml-hate it's the reaction against the xml-y things from 10-15 years ago: the IBM/Struts/Blah we all had to wade through. These days it feels frameworks pick json over xml even when it's clearly an inferior choice (such as for config files). Json is an object/message markup, not a good human readable config format.

<comment><USER3> XML hugely complex and difficult to parse despite not being any more useful than JSON as a means of representing or transmitting data.

YAML is a far superior format to XML for config files, and is basically JSON in a readable format.

There's literally zero reasons to choose to use XML where you could use JSON/YAML instead.

<comment> vezzy-fnord YAML may look quite simple on the outside, but the specification of it is surprisingly complicated.

</comment></comment></comment></comment></comment></comment><comment><USER6> As I see it ls does one job (list directory contents) and does it well (by supporting 37 flags).

If ls was a human, we would call him an expert.

Since unix tools expect input as plain text, the flags that ls supports are absolutely useful and I believe this is obvious to anyone who has written more than 50 lines of bash. When your input doesn't support a standard complex structure (e.g json with some standard set fields), claiming that "sort by creation time" is a simple filter is funny.

First you would need a ls flag so that ls will output creation times in an easy to process time format (seconds since epoch), then you would need to ask sort to work on a certain (1 flag) numerical (1 more flag) field. Last you would have to pass sort's output to a stream processor to get rid of unwanted fields.

Current "list files by creation time":

        ls --sort=time --time=ctime

Replace sort flag with filters:

        ls -l --time=ctime --time-style="+%s" | sort -n -k 6 -r | awk '{ $1=$2=$3=$4=$5=$6=""; print substr($0,7) }'

<comment><USER7> Nitpick, sorry. `ctime` is not Creation Time, but Change Time. The traditional *NIX file systems do not have a meta data field for creation time.

<comment><USER6> Thank you; I naively assumed since we have modification time (mtime), ctime would stand for creation time. :)

</comment></comment></comment><comment><USER8> Yes, there is this strange idea in new generations that GNU/Linux is UNIX, without having tried DG/UX, Tru64, Solaris, HP-UX, Aix, Irix and many others.

Just drop a GNU/Linux user into a default HP-UX installation and watch them getting around the system. Hint, those nice GNU flags and utilities aren't there.

As for what UNIX turned out to be, I think Rob Pike as one of its creators is a good quote:

<quote>

I didn't use Unix at all, really, from about 1990 until 2002, when I joined Google. (I worked entirely on Plan 9, which I still believe does a pretty good job of solving those fundamental problems.) I was surprised when I came back to Unix how many of even the little things that were annoying in 1990 continue to annoy today. In 1975, when the argument vector had to live in a 512-byte- block, the 6th Edition system would often complain, 'arg list too long'. But today, when machines have gigabytes of memory, I still see that silly message far too often. The argument list is now limited somewhere north of 100K on the Linux machines I use at work, but come on people, dynamic memory allocation is a done deal!

I started keeping a list of these annoyances but it got too long and depressing so I just learned to live with them again. We really are using a 1970s era operating system well past its sell-by date. We get a lot done, and we have fun, but let's face it, the fundamental design of Unix is older than many of the readers of Slashdot, while lots of different, great ideas about computing and networks have been developed in the last 30 years. Using Unix is the computing equivalent of listening only to music by David Cassidy.

</quote>

Taken from [http://interviews.slashdot.org/story/04/10/18/1153211/rob- pi...](http://interviews.slashdot.org/story/04/10/18/1153211/rob-pike- responds)

<comment><USER9> > Yes, there is this strange idea in new generations that GNU/Linux is UNIX, > without having tried DG/UX, Tru64, Solaris, HP-UX, Aix, Irix and many > others.

I think that it's not so strange, seeing that you have to fork over lots of $$$ to get your hands on hardware that would run Solaris/HP-UX/AIX/etc, plus licensing fees. You can't easily rent a cloud server for an hour to play with it (with some exceptions, like SmartOS on Joyent). The high barrier to tinkering reduced proprietary Unices to expensive niche environments that are willing to pay lots of cash.

<comment><USER10> IBM offers free access to AIX machines[1]. Joyent is the easiest way to try Solaris.

[1] [http://www-304.ibm.com/partnerworld/wps/servlet/ContentHandl...](http://www-304.ibm.com/partnerworld/wps/servlet/ContentHandler/stg_com_sys_power- development-platform)

</comment></comment></comment><comment><USER11> I found this a weird post. The shell does know what files are (how else could you do "echo * "?) and programs do take arguments and have return values.

In any case, I think the author is kind of tilting at windmills; as far as I know, that Unix and Linux don't really follow the Unix philosophy is reasonably accepted today, even if it wasn't back in '83, when Rob Pike and Brian Kernighan made the presentation called _" UNIX Style, or cat -v Considered Harmful"_, which pointed out exactly those problems, which were already in development:

      Bell Laboratories

      Murray Hill, NJ (dec!ucb)wav!research!rob

      It seems that UNIX has become the victim of cancerous growth at the hands of
      organizations such as UCB. 4.2BSD is an order of magnitude larger than Version
      5, but, Pike claims, not ten times better.

      The talk reviews reasons for UNIX's popularity and shows, using UCB cat as a
      primary example, how UNIX has grown fat. cat isn't for printing files with line
      numbers, it isn't for compressing multiple blank lines, it's not for looking at
      non-printing ASCII characters, it's for concatenating files.

      We are reminded that ls isn't the place for code to break a single column into
      multiple ones, and that mailnews shouldn't have its own more processing or joke
      encryption code.

      Rob carried the standard well for the "spirit of UNIX," and you can look
      forward to a deeper look at the philosophy of UNIX in his forthcoming book.

Yet, Rob Pike himself uses Linux nowadays - the problem today isn't so much acceptance, but backward compatibility.

</comment><comment><USER12> I think the author misses the point. As far as I see it, Unix tools are optimized for one thing: the human user. If `ls` is bloated, it is only bloated from the system point of view. As a user, I only see a small command that is quick and consistent (to a reasonable extent) with other tools. I don't need to know about 39 flags--that complexity is revealed with time, as I need to accomplish more complex tasks. For now, I only use and "see" two or three. And if more is needed, the program is small enough to be reasonably well documented. `man ls` perhaps with `grep` is all most people need.

This brings me to the second point. "Streams of text." Just like `ls`, streams of text are an optimal format/convention for humans. Many other things are better at being more compact or more efficient etc. But as formats and conventions proliferate, streams of plain text remain: readable and universal. Humans will ALWAYS be able to work with text. It is something that all humans kind of agreed upon--which cannot be said for any other formats or standards, which can offer various technical benefits at the expense of longevity, universality, and readability.

These two features (`ls` being relatively light and text streamy) leads to the "bootstrapping" effects sought after by the first generation of Unix developers. Learning about pipes and filters in one part of the system is applicable to all others. These tools scale with your level of expertise. They grow with you because despite the small quirks, there's a remarkable consistency of interface: text! Consequently `ls` (along with many other core tools) is implemented in the same way across a staggering variety of platforms. It has survived decades of alternatives touted as "better," "faster," "more usable," etc. etc. etc. That is the remarkable achievement of *nix / GNU etc. approach to creating human-centric software. As we architect ever more complex systems, we would do well to understand why and how Unix has endured, warts and all.

<comment><USER13> No, I'd rather be working with FILES, not paths to files.

This is how you get `rm -rf $STEAMROOT/*` problems

</comment></comment><comment><USER14> This article gets it all wrong: The ls command does one thing well (LiSting files) and it isn't optimized for terminal size, it's optimized for PROGRAMMER productivity. The ls command gives you a default view that is exactly what you want most of the time and is easily copy/pastable for other uses (it's a single column) or more importantly, piped to some other program for further processing. And then there are easy-access options for common tasks (extra details, hidden files, sorting by attributes, etc...)

Powershell largely does exactly what the author is talking about. And yet it's completely unusable for interactive use (though it's great for writing longer- lived automations).

</comment><comment><USER15> I think there's a bit of a disconnect between how people talk about/defend the unix shell and the reason it's actually still there. People often defend the simplicity or philosophy - despite, as the article points out very well, much of it being clearly poorly designed.

But really the reason most of it exists unchanged is simply path-dependancy - we used it then so we use it now. It works well enough that there's not enough incentive to drive a large change. There are dozens of different shell-like environments and scripting languages, but they never really took over out of plain intertia. That, and the conservative attitudes of people defending their Unix traditions (related in no small part to how much effort they put into learning the thing in the first place). For new people arriving on the scene, its still less effort to learn things, even when they get truely arcane, than to use something which relatively few other people use or even roll your own alternative...

</comment><comment><USER16> I have never thought that UNIX approach is the "best" in a universal sense.

But when compared to how large, slow, complicated and opaque the "alternatives" are, UNIX is the clear choice for me.

I can modify and recompile UNIX to meet my own ends. That is all but impossible if I chose an alternative such as Windows.

For example, if I do not want ls to have 30+ options, I can trim it down to just a few options and recompile.

There are other utilities besides ls for viewing file information, e.g., BSD stat(1) or mtree -cp. The later displays mode information in octal which is something ls, despite its 30+ options, does not do.

Or I can write my own simple utility. I am given the full UNIX source code. Where is the source code for Windows?

Personally I keep my filenames short and never use spaces, so I sometimes use the shell's echo builtin and tr(1) to get a quick list of files.

       echo * |tr '\040' '\012'

If there were non-UNIX alteratives that were small, simple and transparent, perhaps I might not be using UNIX.

Because I have become very comfortable with UNIX, any alternatives that others suggest have to be comparable with UNIX on size and simplicity before I will take them seriously.

Currently, I use a kernel source tree that compresses to under 40MB; I can compile kernels with about 200MB of RAM and fully loaded kernels are about 17MB. Userland utilities are usually around 5MB as I prefer to put them in the kernel's embedded filesystem. I do not like to rely on disks. My "IDE" is the same system I am compiling. There is no GUI overhead, everything can be done in textmode. The importance of the preceding two sentences cannot be understated.

I am always willing to consider non-UNIX alternatives that can offer the same or better flexibility, size constraints and simplicity.

But after decades of being open to alternatives, I am still not aware of any.

<comment><USER17> Why do you need the source code to write a utility when all you need is an API? I've written software for Linux and Solaris but never had to look at the source code, so I imagine it's the same for Windows.

<comment><USER16> "... you need the source code to write a utility..."

Where in the comment is this statement?

Personally the primary reasons I would want the source code for the kernel and utilities would be 1. to assess its quality and, assuming the quality meets my standards, 2. to modify it to meet my own ends. In my case, the less I have to write things from scratch the better.

Let me know if you still have questions.

<comment><USER17> _> Where in the comment is this statement? _

_> Or I can write my own simple utility. I am given the full UNIX source code. Where is the source code for Windows?_

I agree with your reasons, it is useful to have the source code. Just saying tat in the many, many years I've been writing software that's deployed on Linux, I've never had to look at it.

</comment></comment></comment></comment><comment><USER18> The essay "Free Your Technical Aesthetic from the 1970s" [1] by James Hague is appropriate here. See also The UNIX-HATERS Handbook; much of it is outdated, but I think some of it is still relevant, particularly the part on the shortcomings of pipelines.

I think it's unfortunate that even if a good open-source PowerShell clone is developed (or PowerShell itself is open-sourced), it will probably never gain widespread acceptance outside of Microsoft shops. Tribalism so often trumps actual merit. But if someone did a PowerShell-like thing on top of Node.js, I could see that taking off, particularly if it were integrated with the Atom editor and its package manager.

[1]: [http://prog21.dadgum.com/74.html](http://prog21.dadgum.com/74.html)

<comment><USER19> > But if someone did a PowerShell-like thing on top of Node.js, I could see > that taking off

I think it should also use React.

</comment></comment><comment><USER20> I can't follow the comparison.

Linux is just a Kernel, most distros use the coreutils package which is developed/maintained by GNU [1].

So any comparison is not between Linux and Unix, rather the GNU part in GNU/Linux

[1]: [https://www.gnu.org/software/coreutils/coreutils.html](https://www.gnu.org/software/coreutils/coreutils.html)

<comment><USER21> Right, and OS X is based on FreeBSD.

</comment></comment><comment><USER22> Linux is not Unix, that's just fine, I'm happy it is not. I've tried "re- evaluated" shell (Powershell), no, thanks, it's not intended for using by humans. Currently shell is still simple and powerful. Powershell is powerful and NOT simple.

<comment> UK-AL What does intended for humans even mean? At least powershell has command names that describe what they do.

<comment><USER23> Powershell is readable but barely writeable.

Bash is the opposite, it's very easy to do complex things if you have some basic knowledge.

for instance a one liner nested loop to replace a string in a bunch of text files which are a few directories deep. Easy to write but it takes a while to read.

</comment></comment></comment><comment><USER24> Someone needs to port PowerShell to Unix :-)

I'm confused about the response to his tweet though - ls has a lot of switches, but I can't really see any that don't do something with listing files.

And then the response is "Unfortunately, the lineage is _not_ Unix -> Linux. It is Unix -> Plan 9. Linux doesn't follow Unix philosophy :-("... Except Unix's ls eventually had 19 options, and the ls used by Linux is a port Gnu's coreutils.

Nevertheless, I tend to agree. ls does a lot of formatting that could be moved to ancillary utilities. I guess what I like about PowerShell is the way it allows for redirecting into objects - that really is an innovation that Unix shells don't have (at least as far as I'm aware...).

</comment><comment> guard-of-terra "A system composed of a zillion tiny modules is itself a pile of mud"

Having so many args to `ls' might be an overkill, but I certainly don't want to combine four programs to get full coloured sorted listing of current directory.

<comment><USER25> Many shells already come with a few default aliases that call ls with different arguments. Your "four programs" can be combined in a simple alias.

<comment><USER26> And what would you call an alias that gave you a coloured, sorted listing of the current directory?

<comment><USER27> lsc

</comment></comment></comment></comment><comment><USER28> > You can't write a function that returns a list of files because the shell > doesn't know what a "list" is, doesn't know what "files" are, and couldn't > tell you the difference between a "function" and a "program" if its life > depended on it.

Could it be that what this article is really groping towards is Perl? I mean Perl not as it has become, but as it was -- Perl 4 perhaps: basically the capabilities of the shell, augmented with a couple of data structures. So there are strings, lists, hashes, and functions, and that's pretty much it.

</comment><comment><USER29> The `ls` example is especially interesting: it made me think about perfomance of pipelines. Imagine a folder with 10^6 files. Listing them would take some time; if you only need 10^3 of files selected by the simplest filter (LIMIT 1000, for example), piping the whole list, in whatever format, to the filter program would be very far from optimal.

What would be a perfect solution is to use iterators instead of lists (the best example that I know of is Linq, but it seems that this approach is common enough).

However, now we don't even exchange data between different programs; now we couple them, running at the same time, by a complicated interface! It seems that if we take one more logical step in this direction, we'll get generics.

Don't you start to feel that this kind of ideal shell, piping different functions together in the most correct way possible already exists, and it's already installed on your computer? I'm talking about interpreted languages like Python, Perl, Javascript, Ruby or whatever else you fancy.

Of course, I don't seriously think that we should abandon shells for language interpreters. It's just that balance between complexity and universality is a very delicate thing, and convention, however bad, is good just because it's a standard.

In the meanwhile, I'm quite happy with the Fish shell.

<comment><USER30> > It seems that if we take one more logical step in this direction, we'll get > generics.

I agree, Unix would have been so much better with generics, ADTs, higher-order functions, monads, higher-kinded types, dependent types and structural pattern matching.

As I always say: "Those who do not understand generics were condemned to invent Unix, poorly."

<comment><USER31> If the Unix guys were smart they would have used an Idris REPL as default shell.

<comment><USER19> Why not Nimlang?

<comment><USER31> Because Nim is not dependently typed. You can't get sh*t done without dependent types.

</comment></comment></comment></comment></comment><comment><USER32> Seems like the article, and several comments here, equivocate Linux with GNU. While they are most commonly used in conjunction with one another, I still don't believe that "this GNU program does too many things; therefore Linux doesn't adhere to the Unix philosophy" is a valid argument.

</comment><comment><USER33> I think it's easy to misinterpret any of the "Unix philosophies". It's Ye Olde "MIT vs New Jersey" again, and Unix is relentlessly straight out of NJ. Simplicity in the "NJ" sense isn't what you'd expect if you're of the "MIT" mindset.

<comment><USER34> That's a good point. Makes me think again of "slow devices" and interrupts leading to EINTR or partial reads/writes. In my eyes a beautifully pragmatic solution to a real world problem, and yet at some point SA_RESTART was devised.

</comment></comment><comment><USER35> > Granted, we've developed graphical user interfaces that keep "ordinary > users" away from the command line, but we still expect "serious developers" > to drop down into a demonstrably inhumane environment to get anything > meaningful done.

Maybe I am too familiar with it, but I have yet to encounter a graphical environment that matches the effectiveness of the terminal and command line programs. I saw systems, that tried to replace shell one-liners with a hundred thousand line GUI application, that no one cared to use.

</comment><comment><USER36> "Many of the usability issues raised by Don Norman in his 1981 criticism of Unix have gone largely unaddressed"

That's because Don's complaints were not about intrinsic issues, but complaints from someone who had a frustrating time developing a mental model of the components of a system and who tried to use the just-so story of "cognitive design" to justify his inability. The non-point about prompting y/n to delete is particularly misguided.

Similar to this article.

"ls" is called "ls", not because of slow 80-char terminals, but because _humans_ are, on average, not fast typists. One wants to list the contents of a directory _a lot_ , and "ls" is quicker than "catalog". Similarly, "ps" vs "tasklist" and "cc" vs "compile-a-c-program" :-). Notably, in powershell, most people have aliases that do this for powershell's necessarily verbose query functions.

It's primarily a command shell for controlling the machine, not a programming language. And the UI choices made over the last 30 years reflect that.

That fact that ls takes arguments is a UI improvement that keeps you from having to write tiny programs all the time and pipe it's output to sort and awk all day long. It is also why the "one job well" crew is only half right, and why Powershell kind of feels awkward even though it seems to get more things "correct" in that regard.

This is just yet another just-so story by someone who wants ideological purity in UI, which is completely misguided when UI, by definition is oriented towards a universe which is not ideologically pure.

</comment><comment><USER37> Do one thing and do one thing well doesn't equal do one simple thing. Furthermore, ls can actually do One Thing Only if this is enough for you and that is plain ls. What would be the better alternative? Have multiple ls, ls- color, ls-long-color, etc?

The discussion about Unix philosophy, standards, etc is a different story but I did not see that from the articles examples.

<comment><USER38> "Doing one not-simple thing" is sometimes "doing multiple simple things which they couldn't decompose" in disguise.

</comment></comment><comment><USER39> UNIX emerged in an era of more structured systems, though. Many OSes of the time did not have files in a naive sense -- they had record-based formats. "Everything is a file" was a revolutionary idea, and made UNIX simple and lightweight and portable.

It is interesting that the author doesn't highlight "everything is a file" which I have always understood to be the fundamental UNIX philosophy. ("Do one thing well" applies to so much more than UNIX.)

Our understanding of how to use types and how to structure data on disk and for streaming has greatly matured; but that doesn't mean we can ever afford to pay more to get nothing. Say for a moment that `ls` provided data in tab- separated value format (a format which is, unlike CSV, line filterable). Wouldn't that go a long way toward allowing for the HOFs the author mentions? And it wouldn't involve a shell type system (or "Shell Object Model").

</comment><comment><USER40> I dunno, the shell combined with sed and awk is pretty powerful and so far has taken care of everything I need to do

</comment><comment><USER41> I think you have it backwards: there are two legitimate counterarguments.

One is that 'ls' is the common program for querying the directory data structure (which in original Unix was just a kind of file). So it makes sense for it to output the data in different kinds of ways.

The second is that its a user mode command. It's easier than having a lot of little commands (ls for all files, basically ls -1; lsF for showing file types, etc). In fact I'll often to 'ls' then realise I want more info so will type 'ls -l' (say) which is really my brain saying "oh yea, just like what I just asked for but more info".

Better to pick something more deranged like tar or cpio!

</comment><comment><USER42> One of the reasons for ls having additional functionality, is that it is used in restricted shells - such as those used on rssh (SCP,SFTP, rsync and the like). There are no filtering utilities available in these shells:

        -rbash-3.2$ ls $PATH
        chmod  cp  groups  ls  mv  rm  scp

</comment><comment><USER43> these arguments about unix philosophy, to me, seem to miss the point about what Unix actually is...which, again...to me, is a bunch of tools to get things done.

being able to get things done with Unix means that you just put up with the weird bits and move on. there doesn't need to be an overriding philosophy. there are places where there seems to be consistent concepts, but their implementation isn't and doesn't really need to be consistent.

the way that new ideas get so intensely opposed needs to be really looked at though. there's no need to be so insulting if something isn't a good idea...it just won't get used.

<comment><USER13> Maybe for you, but for me it's just a bunch of tools I don't really know that well with lots of arcane options. I just google how to do what I want because it's not possible to memorize through light usage.

<comment><USER43> I agree. No one ever memorizes all of it...or even a common core of it. It's weird like that.

</comment></comment></comment><comment><USER44> Incidentally, there is plenty of ls alternatives like lsp: [https://github.com/dborzov/lsp](https://github.com/dborzov/lsp)

</comment><comment><USER45> In other words: The shell should be a lisp.

<comment><USER46> So, [http://scsh.net/](http://scsh.net/)?

</comment></comment><comment><USER47> Ed is still one of favorite editors out of UNIX-like terseness.

</comment><comment><USER48> ls's plethora of flags doesn't stop "echo *" from working.

</comment><comment><USER38> Meta: I think someone made a comment that forced the whole page to be wider than it normally is? like when you post an image on a forum that forces the whole page to widen to fit it horizontally.

<comment><USER49> Yeah this is super annoying. I am Chrome/OSX and scrolling is awful :(</comment></comment>


MPAA CEO Responds to SOPA/PIPA Delay, Talks About Dangerous Foreigners - <AUTHOR> http://www.one37.net/blog/2012/1/20/former-senator-chris-dodd-mpaa-ceo-responds-to-sopapipa-dela.html <comment><USER2> MPAA and their supporters' rhetoric starts to sound increasingly more xenophobic. "It's the evil foreigners who are destroying our economy (therefore you shouldn't care what type of laws we want to pass against them...)".</comment>


Gigdog - Internet Radio for Local Music - <AUTHOR> http://gigdog.fm

<comment><AUTHOR> Saw the post on the front page about Spotify for indie music ( [https://news.ycombinator.com/item?id=6301478](https://news.ycombinator.com/item?id=6301478) ) so I figured I would (finally) make an account and submit this one too. This company's coming out of the UVa Darden i.Lab incubator here in Charlottesville, VA.

(Disclosure: I'm a co-founder at another company in the incubator.)</comment>


OpenWRT will natively support NextDNS in upcoming 19.07.0 release - <AUTHOR> https://github.com/openwrt/luci/pull/3291 <comment><USER3> Lots more coming in 19.07 — the first release candidate was published last week. Mostly security updates, bug fixes, newer kernel, some improved device support. Also WPA3 support.

Release notes: [https://forum.openwrt.org/t/openwrt-19-07-0-first-release- ca...](https://forum.openwrt.org/t/openwrt-19-07-0-first-release- candidate/48040)

</comment><comment><USER4> What is the best alternative router firmware these days? The last time I looked into this, I believe it was between DD-WRT and Tomato.

<comment><USER5> DD-WRT hasnt had a stable release in 11 years.

Tomato hasn't had a stable release in 9 years.

OPEN-WRT is a fork of DD-WRT. Lede was a fork of OPEN-WRT, but has remerged with OPEN-WRT. OPEN-WRT is the best firmware for home routers/access points in my opinion.

<comment><USER6> OpenWrt is not a DD-WRT fork.

<comment><USER5> Well I'll be damned -- It's a fork of WRT54G.

<comment><USER7> dd-wrt had a better web interface in the early days, and they took copies the OpenWrt kernel in 2005.

It used to be that dd-wrt was less open than openwrt, but worked better. I think now, though, openwrt has surpassed dd-wrt.

[https://en.m.wikipedia.org/wiki/DD-WRT](https://en.m.wikipedia.org/wiki/DD- WRT)

<comment><USER8> dd-wrt is willing to include closed binaries from router MFGs so they tend to support a larger list of hardware than OpenWRT and on certain models have far better performance. OpenWRT has a massive community supporting it so, in general I'd say they're progressing faster/adding more features.

If you have the luxury of buying new hardware, I would go the OpenWRT route but just make sure you read _EVERYTHING_ on the hardware support page before pulling the trigger. If you're trying to convert an existing router, definitely do research on both, there are advantages to each. Personally if I had a router supported fully by both, I'd go OpenWRT at this point.

</comment></comment></comment></comment></comment></comment><comment><USER9> And WPA3! I'm always checking OpenWRT compatibility when need a router.

<comment><USER10> Does this end up including OWE in the end? It seemed like WPA3 ended up being standardised without all the features we actually wanted as requirements.

OWE = Opportunistic Wireless Encryption, previously if your WiFi has no password everybody can passively snoop all the packets, so it makes sense to use a password even if you tell everybody what it is, like FreeWiFiHere - <USER2> that an active attack would be needed to steal data and you've some chance to detect it. OWE says wait, why not use ephemeral keys even if there's no password and then you only set a password if you actually wanted to deny access to people who don't know the shared password.

<comment><USER11> Yes

</comment></comment></comment><comment><USER12> As an AdGuard and Pi-hole user I want to like NextDNS but when I tried it there wasn't an easy way to temporarily disable blocking. Is that still right? I think that would make it a nonstarter for most of my friends and family.

<comment><USER13> As family, just share the web admin login, easy to toggle things. Make it a home screen icon.

With the common 'social-graph trackers' apps list tab, toggling WhatsApp if you have to text with a European or Instagram if you want to post is easy, for instance.

Or, leverage the NextDNS app, and use the giant toggle button.

</comment></comment><comment> m-p-3 Interesting. So far I've been using it since I discovered it on HN and I like it. Their support is quite responsive too, and it's easy to whitelist a domain if something breaks.

</comment><comment><USER14> This PR is not merged. The first release candidate for 19.07 has already shipped. Can someone confirm that this will actually ship with 19.07?

<comment><USER15> There is two PRs, the UI is not merge, the deamon is: [https://github.com/openwrt/packages/pull/10535](https://github.com/openwrt/packages/pull/10535)

</comment></comment><comment><USER16> It's good to see DoH going where it ought to be here -- the place where it gets used by everything automatically, keeps your ISP out of your DNS queries, and doesn't require everybody to manually configure every separate application on every separate device in order to set which resolver they want to use.

</comment><comment><USER17> That is a good news ! I use NextDNS for me and my kids. It's making a real difference.

<comment><USER18> [https://nextdns.io/](https://nextdns.io/)

>Get in-depth analytics about your Internet traffic.

>Shield your kids from adult content.

Do you use NextDNS as a way to monitor your children online?

<comment><USER19> I would've hated it if my parents could monitor my internet access when I was 15 in the early 2000s. I've been in some weird places by pure chance and curiosity, though the Geocities era of the Internet was much different that today's.

</comment></comment></comment><comment><USER20> Can anyone comment on the efficacy of ad blocking with NextDNS compared to Pi- hole?

<comment><USER21> My OpenWRT uses in-memory blacklist in dnsmasq on Omnia Turris that's faster than rpi.

I would imagine the performance of settings it on pihole would be unnoticeable, as it also stores blacklist in memory. The only latency difference would be in network request likely.

<comment><USER22> Also on Turris with knot-resolver and adblock... is there a reason to outsource blocking really? Why trust nextdns? Isn't going to be a subscription based service once out of beta?

<comment><USER15> Some reasons can be: easier to setup, can be used on devices when on the go, get encryption by default with DoH.

Most routers are not powerful enough to efficiently run blocklists and analytics locally.

</comment></comment></comment></comment><comment><USER23> This is cool as an option but personally I prefer filtering at home using Diversion and Skynet on AsusWRT router firmware.

This dns may be a good option for the non-technical but personally I never want a DNS to do filtering for me.

</comment><comment><USER24> I wonder if something like eBPF would be useful for DNS filtering. With bounded loops, it'd be perfect for running in the cloud.

</comment><comment><USER11> Not sure if fake news. This is not even merged.

<comment><USER15> The UI is not, the actual package is: [https://github.com/openwrt/packages/pull/10535](https://github.com/openwrt/packages/pull/10535)

</comment></comment><comment><USER25> Does this add a lot of much needed wireless support? I tried this on my wrt3200acm and lost quite a few wireless features and was forced to switch back.

<comment><USER26> That's dependent on likely Broadcom to release an open source driver so it can work on a later kernel.</comment></comment>


Show HN: Purzue – Résumés redefined - <AUTHOR> http://purzue.com/?utm_campaign=hn

<comment><USER2> I dont mean to hijack the post, but I recently found LinkedIn's resume generator

[http://resume.linkedinlabs.com/](http://resume.linkedinlabs.com/)

and I love it. Would Purzue have a plugin to import your LinkedIn profile or Github profile for example?

<comment><AUTHOR> We fully support LinkedIN imports, when you create your resume you have the option of starting from scratch, or importing a LinkedIN Profile. We are planning on implementing Facebook and Github as well.

</comment></comment><comment><USER3> That is a big page, it took almost 10 seconds to fetch on my ~30Mbps connection. Total size is 4.7MB, with one image at 3MB (!), and a single javascript file at 1.2MB.

<comment><AUTHOR> You're totally right! I'm compressing the homepage images now to try and reduce the page size, and I'll take a deeper look into cleaning up some of the unused CSS and JS</comment></comment>


4 ICO's Investors Need to Watch for Fall 2017 - <AUTHOR> http://www.incryptowetrust.net/4-icos-investors-need-to-watch-for-fall-2017/ <comment><AUTHOR> The crypto revolution is gaining pace, not 1 month ago the total market cap of cryptos was under 100 billion dollars USD now its 144 billion dollars USD. Whoever said that ICOs are bad for crypto was WRONG!</comment>


Fridge that runs without electricity pioneered by Welsh startup - <AUTHOR> https://next.ft.com/content/e9374304-8a90-11e4-be0e-00144feabdc0 <comment><USER2> The title sounds very interesting but the article is paywalled.

Oh, and when I lived in Zambia -- almost 20 years ago -- we also had non- electric fridges, instead they ran on paraffin.

</comment><comment><USER3> and the old kero fridge in the caravan</comment>


At Long Last, Linux Gets Dynamic Tracing - <AUTHOR> https://www.linux.com/news/long-last-linux-gets-dynamic-tracing <comment><USER2> Please change the url to

[http://thenewstack.io/long-last-linux-gets-dynamic- tracing/](http://thenewstack.io/long-last-linux-gets-dynamic-tracing/)

Which has the actual details.</comment>


You don't have to be local - <AUTHOR> http://sivers.org/local <comment><USER4> The words "pick your brain" are virtually never good ones to lead with, by the way, because they turn off _many_ people who have useful things to say, in addition to dsivers. (Close second: "Can you mentor me?") They suggest the interpersonal equivalent of the planning meeting from heck, with no agenda, no goals, and no way to safely declare failure and thereby avoid the next meeting. If you want a specific thing, asking for it is better. If you do not know what you want, a) strongly consider whether that problem will be alleviated with another person using cycles on it or not and/or b) figure out what you want, and how helping you get it helps them, prior to asking for anything.

<comment><USER5> Interesting viewpoint on "pick your brain". As a 40-something business owner I am always happy when someone less experienced at business wants to pick my brain. I have told many people that if they buy me a beer they can ask business questions all night. I have a few like minded (and aged) friends who I meet with every thursday night at a local pub. We always welcome people to meet with us - the only condition is that they have to be running a small business or trying to start one.

So for me personally I enjoy having my brain picked or mentoring someone. Of course, dsivers seemed to go a little overboard with 400 meetings in two years which would be 4 per week roughly. Compare that to the once per month I do it for perspective. To each their own of course.

<comment><USER6> (side note: there's a lot of lorem ipsum text on your website) (I was trying to find your location to get in on a mentoring beer session :-)

<comment><USER5> you can email me: firstname.lastname@example.com

our website was hacked, and while it gets 200 visits a day (hardly anything), keeping up with orders has been more important than fixing lorem ipsum on the new site.

</comment></comment></comment></comment><comment><USER7> I prefer to be global with peers and local with customers.

In person, I rarely meet like minded souls with whom I can have intimate technical discussions, but on-line it's easy (thank you Hacker News friends).

But with customers, I've never found a good substitute for being there with them. I want to see everything they're doing, listen to them bitch, and feel their pain. I want to suffer with them during the day and celebrate with them over beers at night. You just can't do that the same way on-line.

<comment><USER8> I've found in the past, for on-premise consulting, that I'm being paid to consult/develop, but being used as a psychiatric sounding board. I don't give advice I'm not qualified for, but being there under the guise of development and just listening seems to be a worthy use of my time (and their money) for some clients.

I can get more work done remote, but there's a greater personal connection locally. It's interesting what a consulting gig can turn into.

</comment></comment><comment><USER9> P.S. to my Hacker News peers : This is a one reason why I decided not to live in the SF/Bay area. So many people so like me that I felt pulled into all the in-person kind of stuff. I feel more productive & more balanced when living in a more remote place.

<comment><USER10> I find this conflicting ... Get away so that you're not surrounded by people the same as you. Then, once there, you don't get to know any of these different people. At least not deeply enough to call friends. Maybe this is good work productivity advice, but I think this is bad life advice.

<comment><USER11> He prefers to interact with many people at a distance(email, blog posts, phone calls, occasional visits etc.) rather than many people face to face (lunch meetings, networking events etc.)

It is just a matter of personal preference, being very local might be the right thing for other people.

</comment></comment></comment><comment><USER12> I can't imagine living in a place for three years and not making _any_ friends.

For me, regular in-person contact with friends is essential to feeling motivated and connected with the world. They don't have to be close friends, and they don't need to share my career or understand the work I do as a web developer. Most of the programmer friends I would sling code with on a weekend project are global — scattered across the world. Whereas, many of the friends I hang out with the most locally use feature phones, have old or no computers, and think Twitter is pointless.

But that doesn't matter because what I need them for is to sit down and have a good conversation. Or play a game of table tennis. Or ride our bikes out to the suburbs and back. If I don't get these kinds of outlets, a week spent sitting down and coding leaves me feeling strangely unphysical, unhinged from the world around me.

I've grappled with the local/global issue because my life does feel like a duality, where local (mostly offline) and global (online) are separate. I'm not sure how to resolve that (maybe living somewhere with more early adopters of tech would help). But Derek's solution is an extreme one. You don't have to be exclusively local or global.

<comment><USER13> One thing that makes a BIG difference is how much you travel. In my case, I've spent less than half of my weekends at home during the last year. For me, having local friends isn't super important because one way or another, I'll end up seeing my close friends several times. Plus, I have yet to live in the same city for more than a year since college.

If Derek's travel situation is similar, I can see why he wouldn't care too much about having local friends.

Edit: this seems to be the case. From one of his comments below: "Home was the place that I would just work. I was going to so many conferences and such, that all my social time was out of town."

</comment></comment><comment><USER10> I don't know the author, but my initial take is: loner, work-a-holic, egotist. None of that is meant as an insult. To "socialize" in a local sense doesn't need to mean you meet "with over 400 people, one-on-one, went to every conference and get-together, and said yes to every request". It means making friends: the kind that build decks together (with free beer); go bowling, watch the big game together at the pub instead of at home, go for a hike with the kids, meet up at the coffee shop every Thursday morning, and simply help and grow together. Its not work. Its natural. Fun. Community. The author is missing out.

<comment><USER14> <https://sivers.org/friends>

<comment><USER10> I saw the link to friends in the article. I think that page is a good idea. But I also read that in the 3 yrs in Woodstock - he "never met anyone". In the 3 yrs in Portland - "some dear and deep friends (made) worldwide, but none in Portland". I'm certain there were great folks in both places that could have been great friends that changed the authors life for the better. Unfortunately, these folks were local and probably provided little support for either cd baby or host baby.

<comment><USER9> Home was the place that I would just work. I was going to so many conferences and such, that all my social time was out of town.

<comment><USER10> No disrespect intended, Derek. I got a different message from your post - <USER2> that glorifies isolation to intimacy because intimacy is hard(er). Balance is a passionate mantra for me. Peace.

</comment></comment></comment></comment></comment><comment><USER15> Let's eliminate any social interactions to pursue maximum effectiveness, then we can finally focus on the things that matter - like programming! Beep, boop.

<comment><USER16> I think you're missing the article point. If some social interactions bring you nothing, then you should remove them from your life !

Quoting Nassim Taleb : "If someone is a drag on me, I cut them out. If someone lifts me up, I bring them closer. Nobody is sacred here. When the plane is going down, put the oxygen mask on your face first. Family, friends, people I love – I always try to be there for them and help. But I don't get close to anyone bringing me down. This rule can't be broken. Energy leaks out of you if someone is draining you. And I never owe anyone an explanation. Explaining is draining."

[http://www.jamesaltucher.com/2011/02/how-to-be-the- luckiest-...](http://www.jamesaltucher.com/2011/02/how-to-be-the-luckiest-guy- on-the-planet-in-4-easy-steps/)

<comment><USER17> "If someone is a drag on me, I cut them out. If someone lifts me up, I bring them closer. "

That is incredibly selfish. Sometimes the person doing the lifting is the one being "brought down", so you're essentially depending on the fact that people are less selfish than you for this to work. Like anything taken to the extreme, this extreme individualism can only be harmful.

<comment><USER18> No, you are simply associating with people who compliment your own interests (and presumably vice-versa). Not everyone can be friends with everyone. Trying to make relationship "work" when the individuals are fundamentally incompatible is the source of much unhappiness.

<comment><USER17> I think the problem is that we're all interpreting this differently... I'm not saying you should force relationships at all. I'm saying cutting someone off just because they're going through a rough patch is no way to treat a human. You can afford to slow down your life a bit to help out a loved one.

<comment><USER19> I don't think the quote is advocating cutting out people who are going through a negative time, just those who are negative to YOU.

There's a difference between supporting someone through their difficulty and someone who is not supporting you, whether that means (consciously or unconsciously) belittling, undermining, or dismissing you or your ideas, or just not meshing well or productively with you.

</comment></comment></comment></comment></comment></comment><comment><USER20> Yet, not matter how 'cool' remote working seems, the majority of companies (YC ones included/especially) won't seem to entertain anyone that isn't local.

The number of companies that I find who are willing to allow remote work are the exception, not the norm. The number who will accept remote people on the business side of things are even lower.

<comment><USER21> _The number of companies that I find who are willing to allow remote work are the exception, not the norm. The number who will accept remote people on the business side of things are even lower._

One reason is that there is quite a lot of evidence that, all other things being equal, it's considerably less efficient than co-located teams - <USER3> <http://news.ycombinator.com/item?id=4800412> for some references.

</comment></comment><comment><USER22> Don't know if Derek has children. They sure make you intensely local. While raising a family, if you have a company/product that is aimed globally as well, then you don't have much of a choice in focussing globally if you are to succeed. The choice is not necessarily so stark for others as it is for Derek. I do understand his personal preference and that's perfectly fine.

<comment><USER23> Children could be local while you would still stay global.

Children could be quite global too - Internet and Internet games in particular are appealing for children too.

</comment></comment><comment><USER24> Nice article.

Coincidental timing for me. I'm Singapore for a few weeks, and even though I've spent months here in the past and have a long-term visa, I have almost no local friends here. I feel like I should feel guilty about it. But I don't feel guilty about it, except in an abstract way.

I spend most of my time coding and working on music. And eating Thai food.

<comment><USER25> > And eating Thai food.

Get acquainted with Malaysian/Singaporean while you're there too.

<comment><USER26> Also, the dum byriani (sp?) and various forms of masala in little India are freaking amazing.

</comment></comment></comment><comment><USER16> There are many great insights, but I wonder how appliable they are in the real life.

I mean, I especially loved the answer based on the idea of "not favoring anyone", when the author was asked about what he did for the local market.

But this requires some "enlightenment" - as the author said, he lived in many places, so he can now relate to human being as equals - wherever they come from or live.

It seems to me it is just wishful thinking to believe most people - or just a significant enough mass - will be able to think like this.

Most people are lost in their own thoughts and community. They just can't think global, and certainly don't want to.

They just care about the ones they know - and cronyism is just an artifact. It's the same story again an again - dozens of people dying is the news, but having a deep cut in your little finger is a tragedy.

<comment><USER27> I feel like I think globally. I didn't get there by living in many places, or "pursuing enlightenment" in any other way; I just lived in the middle of nowhere (not particularly by choice). The internet _was_ my local community. I feel like there are a lot more "global-thinking" people like me (who have no locale), than people who got to be that way like Mr. Sivers did (who have too many).

</comment></comment><comment><USER28> It made me reflect on how different people are. If someone like Mr. Sivers has found a way for himself to be happy and productive, more power to him. CD Baby alone has done a huge amount for others.

</comment><comment><USER21> I certainly know people who seem very local - or very global. But I think that it's a false dichotomy to think that there's only those two groups.

For example I'm pretty mixed. I have a lot of local connections _and_ a lot of global ones. I personally feel energised and enthusiastic about both at different times. There have been times when I've been more "local". There have been times when I've been more "global".

In fact I generally get worried when I see statements like this:

 _One will feel more natural to you. Like your tendency to be an introvert vs extrovert, or conservative vs liberal, these base world-views will shape your preferences for being local-focused or global-focused._

Because - well - they're not true. Some people change. In the long term and the short term. I know folk who've gone left-to-right politically over the years (and vice versa). The introvert/extrovert divide is notoriously context dependent for many people. From my own experience I've been "local" and some points in my live, "global" in others and now very happy getting energy from both.

Not trying to say that any of these groups are better or worse than any other - but there's more than the two extremes. Not everybody stays the same. There isn't a problem with that.

Do what the OP did and _try_ different options. If you don't like it or it doesn't work for you - stop and do something else. But don't just say "I'm local" and set your life course from there on. Things might change. Keep you're eye out for that.

</comment><comment><USER29> Oh, just as I was moving to Singapore (where Derek now lives).

But Derek has been incredible helpful more than once in my life already. He is an example to follow.

</comment><comment><USER30> This kinda hit home for me. I live in the city I grew up in yet hardly have any friends here. I work remotely with people around the world and my best friends are thousands of miles away and we meet up any various places around the world.

Definitely feeling the need to strike a balance.

</comment><comment><USER31> Great article. After having lived most of my life in urban areas, I married a great woman who has a very rural job and we live in an incredibly small town. I'm an introvert and solo entrepreneur, but had found that I thrived via in- person collaboration at a co-working space or via meetups.

What I've been struck by is the difficulty in shifting. Maybe I'm not looking in the right places online, but I've found it difficult to make new friends on the internet, or get the same sense of camaraderie as in-person contact.

Anyone have any advice on how to break the ice and make "internet friends" ?

</comment><comment><USER32> My mix is that I sell global, but buy local when possible, care for local friendships, talk to neighbors, and I am a member of several clubs. But thats perhaps a common Hanseatic culture.</comment>


Entrepreneurs, Advisors and Fools - <AUTHOR> http://founderdating.com/entrepreneurs-advisors-and-fools/

<comment><USER2> "Learn to never be satisfied with the status quo, to constantly expand your understanding of users, audience, products or markets."

This stuck out at me as a great way to never be happy.

<comment><USER3> Happiness mostly results from creating and maintaining a sense of flow. Never being satisfied is a good way to keep stuff flowing rather than becoming stagnant.

<comment><USER4> Don't put everyone into one bottle. There are many different types of people who want many different types of lifestyles. There are also plenty of stories of people who gain huge success this way but hate their lives.

<comment><USER3> Flow is not a lifestyle, it's an important component of a fulfilling one. You don't have to achieve it by being unsatisfied, but that's one way. Just like I said.

</comment></comment></comment></comment><comment><USER5> Disappointed this sunk from the homepage.</comment>


Crypto and SSL toolkit for python (M2Crypto) - <AUTHOR> https://gitlab.com/m2crypto/m2crypto <comment><USER2> This is a project taken over from inactive github taken over from inactive developer in 2011. M2Crypto has some messy release history. I'd check a very active cryptography.io instead.

Of course there's nothing wrong with talking it over, but it really should have at least a notice about it in the readme.</comment>


Google Buys Twitter? Chris O'Brien's 11 Predictions for 2011 - <AUTHOR> http://www.mercurynews.com/business/ci_16930409

<comment><USER2> I would like to see _someone_ buy Twitter, if only to have a different set of engineers and product people tackle their issues. I find twitter search to be very useful in theory, but useless in practice. Mostly I get the "older tweets for <term> are unavailable" message.

If it takes an acquisition to make Twitter more useful, I'm all for it.

</comment><comment><USER3> There are two spheres on twitter, the first one is a broadcasting tool, its the accounts with large follower numbers broadcast their stuff, mostly its promotional stuff but it has a use too. They pay attention to the tweets where their username is mentioned and average joe whose voice was ignored now could make some big brand listen to him and resolve a problem if he has one. the other sphere is the chitchat region, where users with medium number of followers and follow decent number of people have conversations, most of that are retweets, which is just copies of someone's message, retweets are pointless but provide good statistics for trends and stuff. anyway, twitter is definitely useful because it is a large pool of current and latest information, but you need really good filtering tools to get what exactly you want, not unrelated noise. in terms of monetizing twitter is in trouble. they want to stick ads in those 140 characters? its going to be hard as long as the ads look like ads, but if they manage to learn about the user and his needs for that particular moment so they could serve ads that do not look like ads but are more the services that user needs at that point, then there is a bingo. and yeah about google, i dont think google should buy twitter, it does not fit, and google does not really need it. twitter would make a good company standalone.

</comment><comment><USER4> The expression is "without further ado", broadly standing for "without any more fuss", and not "without further adieu". "Adieu", borrowed from the French word for "farewell", doesn't make any sense at all in this context.

I know it's nitpicking and doesn't add a lot, but still. And I can't even post it on the website because it requires a facebook account. Blegh :(

</comment><comment><USER5> It depends on how well Google Me does.

If Google Me indeed takes off, as a social layer (on top of application and presentation layer), they could just make buzz more prominent.

But if it doesn't, which it may, considering Google's failed investments in Buzz, Wave, Me, investment to buy twitter would seem compelling.

</comment><comment><USER6> I'd actually be really surprised if Groupon doesn't go public this year. Considering they just passed on Google's acquisition I don't think they're going to have a better time to go public then in the next year, before their brand gets too diluted with competitors. I think a lot of investors would also be very happy to get in on a hot new tech property like Groupon, as the economy inches back towards a recovery.

And a cloud bubble? Really its pretty damn obvious for the lsat year that cloud based services are damn hot right now, but a bubble? This one is barely just a prediction he's pretty much stating what is currently happening. He can declare victory on this "prediction" on Jan 1.

</comment><comment><USER7> If Twitter has no sustainable business model, I'm curious how Google is going to make money with it.

<comment><USER4> It wouldn't be the first time Google acquires an influential/"cool" business without a business model, à la YouTube (which apparently isn't actually profitable yet, years after it was created).

</comment></comment><comment><USER8> > 8\. Venture capital blues: Expect both fundraising and investing to remain > flat. While some firms will thrive, there's still an ongoing shakeout in > this industry as the number of partners will continue to dwindle and returns > will remain poor.

Huh? Is he in the same economy as me? Or is he deliberately excluding angel and other forms of seed I vesting, which are becoming an ever-increasing source of venture funding?

The big story here is that on the VC side there is a supply problem: meaning companies need less money. Valuations are going up as the money in the system competes for deals. An awful lot of companies can get profitable or acquired on seed investing alone.

As for Bartz going, it should happen and he's right why: she can't articulate what Yahoo is about.

Google buying Twitter? I doubt it. Not because Google doesn't want it but because Evan Williams has already sold Blogger to Google so a) he doesn't need the money and b) it didn't go that great. Twitter is hitting for the fences.

I can't see Facebook hitting 1 billion users this year. Facebook has the best of problems: it's running out of people to add to its service.

Tech IPOs: because of Sarbanes-Oxley and other factors the tech IPO in the US is basically dead except for the very biggest of companies. He contends none of these will IPO this year. I tend to agree. Typically you have 6+ months warning (through the rumor mill if nothing else) about a bi IPO, particularly with all the auditing required, so we're already running out of 2011 for that.

<comment><USER9> I think that Google would very much like to acquire Twitter. They see their lack of success in the social area as a problem, and anyone - MS, Yahoo, facebook, etc. would love to own Twitter. The problem is as you note, Twitter doesn't seem at all interested in being acquired.

<comment><USER10> I think the twitter hype has long peaked.

Could turn into another Digg.

<comment><USER9> Twitter seems to be doing fine, to me. It's a unique and focused service. Digg was doing fine as well until they released a site makeover that completely ignored why their community was interested in the site. Twitter's recent improvements were well received, in contrast.

You've actually of that opinion about Facebook, but meanwhile, large numbers of people never cease to predict that Facebook will soon control the entire universe. So, opinions vary.

<comment><USER10> They're extremely different though. Facebook has a good, proven business model. They kept control - people generally go to facebook.com.

However, twitter gave away control to 3rd party clients. Only a tiny number of twitter action comes from twitter.com.

When most of your userbase uses 3rd party clients, you have very few monetization options.

<comment><USER11> I don't know about that. Among the early adopter crowd, it is certainly true, but Twitter much larger than that group now. Most people use Twitter from the web or from an official Twitter app. I still think Twitter is going to have very serious monetization problems, but third party clients aren't really a problem. If anything, the third parties should be concerned about hitching their wagon to a company that might not be too concerned about their success.

Reference: <http://blog.twitter.com/2010/09/evolving-ecosystem.html>

<comment><USER9> Quite true, it's not fun at all to develop software or a business based on a platform and service that might change to make your business obsolete at anytime.

Fred Wilson, an investor in Twitter, made a post when the article you linked to came out, stating how fantastic he thought it was that Twitter was screwing over their third party developers. A shift from 'filling in the gaps' to 'building on the platform', he thinks. This doesn't make me comfortable as I depend on a couple of other companies he is involved with.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> What about Jaiku?

<comment><USER5> "HR acquisition"</comment></comment>


The X10 Programming Language - <AUTHOR> http://www.x10-lang.org/

<comment><USER2> Bad choice of name. X10 is a system for modulating mains electricity supply in order to send signals, for example to switch lights on or off. A simple Google search would have told them this. It's probably not a good idea to name your new language in such a way that it can be easily confused with other kinds of technology.

</comment><comment><USER3> lol [1]

\-----

[1]: <http://en.wikipedia.org/wiki/X10_(industry_standard)>

<comment><USER4> I was thinking of the same thing... And all the X10.com ads that were the pervasive bane of everyone's Internet existence in the late 1990s.

</comment></comment><comment><USER5> Wonderful user guides, but somewhat incomplete, apparently.

<comment><USER6> check out external links here: <http://en.wikipedia.org/wiki/X10_%28programming_language%29>

</comment></comment><comment><USER4> Old: <http://news.ycombinator.com/item?id=1564795>

<comment><USER7> And as quesera here writes:

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

        1 //Tutorial file HelloWorld.x10
        2 class HelloWorld {
        3   public static def main(argv:Rail[String]) {
        4     x10.io.Console.OUT.println("Hello, World");
        5   }
        6 }

...ayfkm? You've already failed.

<comment><USER8> omg, it gets worse than that. From their (incomplete!) online tutorial, which _downloads_ an HTML file instead of displaying it:

> _Xiom: The global/non-global distinction in X10 is intended to make you > powerful, not miserable. This will not be obvious while you are getting used > to X10._

(a (lame) play on "Axiom")

The tutorial documentation goes downhill even further after that. I'm having trouble deciding if this is _real_ or an extraordinarily elaborate April Fool's day joke.

</comment></comment></comment><comment><USER9> Seriously? Couldn't have picked another name? :)

</comment><comment><USER10> hmm, X10 is to Erlang what Scala is to Java?

<comment><USER11> Not really. Erlang is for reliable concurrent transactional computing while X10 is for parallel scientific computing. You might say that X10 aims to replace Fortan.

<comment><USER12> Then it's doomed IMO, since there's Fortress (<http://projectfortress.sun.com/>) out threre developed at the Sun Labs and which seems to be a better candidate to replace Fortran.

<comment><USER11> DARPA funded X10 and Fortress at the same time to provide options for a future "high-productivity" HPC programming language; it's not clear that either one has gotten any traction yet.</comment></comment></comment></comment>


How to Think About Science - <AUTHOR> http://www.cbc.ca/ideas/features/science/index.html

<comment><AUTHOR> direct links to audio interviews here: <http://condeve.blogspot.com/2009/01/temp.html></comment>


Deleting a folder will delete everything inside the folder? - <AUTHOR> https://productforums.google.com/forum/#!msg/drive/cnwL9si9eNA/zErlRnN6JrEJ

<comment><USER2> Misleading title.

If you are supposed to share files by putting them in multiple folders at once (in the style of symlinks), then deleting a folder should only delete the file if the folder contains the only reference. This is a real bug.

<comment><USER3> That is hardlinks. Symlinks have one actual location on the filesystem, with small files that point to them. Hardlinks are multiple location on the file system all pointing to the same data.

</comment></comment><comment><USER4> The title on the site is misleading. The guy reported an issue where a file was shared among several folders and deleting one folder deleted its 'shared object' from the other folder.</comment>


Oil price: Brent crude hits 11-year low - <AUTHOR> http://www.bbc.co.uk/news/business-35152037 <comment><USER3> Don't get used to it. The low oil prices are a result of the Saudis not reducing production and continuing full steam ahead regardless of profitability in order to drive other producers and sources such as North American fracking out of business.

Most mom and pop oil companies have already been bought or have gone bankrupt as they were not profitable under $50/barrel. Supermajors will begin to go bankrupt and survival mode at $20-25/barrel. As soon as we see supermajors going under the Saudis will roll back their production in order skyrocket prices. It takes AT LEAST 18-24 months to get new wells and unconventional sites online and that's if the entire ecosystem is operational.

<comment><USER4> Oil producers going bankrupt isn't going to magically make their assets and production capacity disappear. It will just get bought up by better capitalized investors. Meanwhile Iraq, Iran and others are ramping up production right now. We're going to see further oil price fluctuations over the coming decades for sure, but I don't think we'll ever see $100+ per barrel oil again.

<comment><USER5> >Oil producers going bankrupt isn't going to magically make their assets and production capacity disappear. It will just get bought up by better capitalized investors.

Oil that can't be pumped profitably at < $80 / bbl isn't going to be magically become profitable when a better capitalized investor steps in.

<comment><USER6> No, but it means that the Saudis can't raise prices much past $80/bbl. And I'm not sure that $80 is the right number for a lot of the fracking wells - <USER2> number that I seem to recall is $50. (I freely admit that I'm working from vague memory here, and could easily be wrong...)

</comment></comment></comment></comment><comment><USER7> "The Stone Age didn't end for lack of stone, and the oil age will end long before the world runs out of oil." \- Sheikh Zaki Yamani

<comment><USER8> That's such a bad comparison. Stone is way more common and was being used by far fewer people.

I sincerely hope it's true, but it's one of those snide comments that attempts to make legitimate concerns look stupid.

<comment><USER9> > Stone is way more common

Stone is literally more expensive than oil. Note that at $2.00 / gallon, gasoline (refined oil) is twice as cheap as bottled water. At $35 / barrel (ie: $35 per 55-gallon drum), crude oil is literally cheaper than a huge number of commodities.

Crude Oil is roughly $0.65 per gallon. Definitely cheaper than stone by every measurement.

<comment><USER8> Stones can be found just lying around on the ground all over the world. I don't care how cheap oil is, it's not cheaper than "you can bend down and pick some up."

Cheaper than bottled water? No it's not. You can find some bottled water that's more expensive, sure, but you can find bottled water that's cheaper too. I'm sure you can find some oil somewhere that's more expensive than good champagne, too.

Bottled water is a terrible comparison anyway, because most of what you're paying for is the "bottled." Oil is not cheaper than _water_ in most places. Can you imagine paying 65 cents/gallon for your shower?

<comment><USER10> The stones you can pick-up from the ground aren't much use in construction other than for rubble-fill, which requires quantities vastly greater than available in free [position] material.

To gather them in kilotonnes you'll need to remove and sift the regolith layer. A lot more expensive than 'pick some up'.

<comment><USER8> I don't believe the Stone Age was primarily about stone construction.

</comment></comment></comment></comment></comment></comment><comment><USER11> "Many consumers have enjoyed the falling price of fuel in the form of lower petrol prices; several UK supermarkets have begun selling petrol at below £1 per litre - which they last did in 2009."

It feels as though prices haven't fallen relatively here in Canada, at least not on the west coast.

(112.9c CAD / litre in Victoria, BC)

<comment><USER12> 1.00 CAD in the east, gasoline should be around 0.80 now but because of weak loonie, oil refineries being in the US and Americans driving more, thus increasing the demand for gas, prices are what they are.

</comment></comment><comment><USER13> Quasi "outages" in California refinery crackers are bucking the price decreases of gasoline in California. In 30 states, gasoline is under $2/gal but in California, it is north of $2.50, and it isn't even the expensive summer blend.

<comment><USER14> California's fuel prices will always be higher than other states because their blend is stricter than most of the rest of the nation and far fewer refineries are built to produce that blend.

<comment><USER15> I was going to say.

Last Christmas prices dropped significantly. There were $2.25 to $2.50/gal in California, but almost $1.20/gal in Arizona and New Mexico.

California has another $0.30-$0.50/gal in taxes that other states don't have. The price will always be higher.

</comment></comment></comment><comment><USER16> It's probably good enough for consumer finance sites, but they should really factor in inflation. Inflation has been below average recently, so the margin of error is not that large, but still ~1.015^10=1.16 which means that price drop is steeper than reported.

</comment><comment><AUTHOR> Where are the peak oil prophets?

<comment><USER17> Seems like OPEC's current strategy is to dump oil onto the market for a low price.

This both makes it unsustainable for the competition to drill for oil, and creates a higher demand.

Once many of the competing (e.g. Western) oil companies goes bankrupt, OPEC can increase the prices and enjoy both higher demand and increased profit. At that point, it will take a long time before investors feel comfortable investing in oil again in fear of an identical situation. They also push renewables into a similar spot.

I was looking for a reference that shows debt vs. market cap of US oil companies, but cannot find it. It didn't look promising for the US oil companies.

Anyway, this doesn't have anything to do with peak oil, which we are likely passing these years (for conventional oil). Except we'll likely crash sooner if we increase demand.

<comment><USER14> This is just a buying opportunity for the big boys like Exxon. They'll snatch up the companies that fail and bide their time.

It's not a new strategy—the well-capitalized oil companies do this every time the industry stalls. They call it "prospecting for oil on the floor of the stock exchange."

Many shale producers will go bust but others have tightened their belt and become more efficient. The technology itself has also gotten cheaper, allowing those wells to be profitable even at depressed energy prices. More will likely fail but the shakeout will leave the remaining shale producers in a very strong place.

The idea that "OPEC can increase the prices" is farcical at this point. OPEC has been in open revolt for a long time and can no longer function as a unified front against the Western consuming countries. Smaller OPEC producers have long ignored the quotas, battling for marketshare while comfortable in the knowledge that Saudi Arabia would lower their production to maintain price targets. The Saudis have grown tired of that role—this current salvo is as much a move against their fellow OPEC members as it is new Western production.

This current situation is the Saudi's public recognition that OPEC has failed, the final culmination of a decline that began decades ago.

Saudi Arabia is facing the prospect of increased production on several fronts for both geopolitical reasons (Iran) and technological (America, deep sea, Canadian oil sands, etc). When the US tears down export barriers, their situation will become that much more dire as American shale producers will find entire new markets for their oil. Finding markets has long been as significant a task for the industry as finding oil itself.

Other investors are certainly fearful of investing in oil but I've been moving more and more of my personal portfolio into energy over the last few months. Given time, energy will rebound.</comment></comment></comment>


Looks like I'm going on FoxNews today because it's cold outside - <AUTHOR> http://climateprogress.org/2010/01/04/foxnews-cold-weather-climate-science-hottest-decad/

<comment><USER2> i prefer to use "global climate change" instead of "global warming" to avoid confusing people with only a cursory understanding of how climate works.

<comment><USER3> People tend to confuse climate and weather, i.e., it's cold out today so there isn't global warming and "we can't predict the weather a week in advance, how can we predict climate years in advance??!11!".

<comment><USER4> wrt to you last "confused person" question. Has there been any study of how accurately climate models can predict climate (e.g. average global temperature) even five years out from a given year?

Just to clarify...

If I gave a climate model all the temp data from 1888-1990 and then said ok, what's the AGT in 1995? Would it be correct? I guess the difficult part would be finding a model that hasn't already been modified so it would be correct for 1995. You'd have to use the 1990 version of the modeling software.

</comment></comment></comment><comment><USER5> _"any more than you can deny the planet is unequivocally warming and humans are probably the cause of most of that warming"_

actually, it's quite easy to deny something is "probably" anything...

</comment><comment><USER6> Did Fox actually say that the current cold weather was his reason for being on the show or is he projecting?

<comment><USER7> Yes

</comment></comment><comment><USER4> Right and if it were unusually warm out he would be going on MSNBC to talk about how it's proof of global warming.

<comment><USER8> And it's doubtful he'd be complaining that MSNBC was confusing weather with climate.</comment></comment>


How We Teach Introductory Computer Science Is Wrong - <AUTHOR> http://cacm.acm.org/blogs/blog-cacm/45725-how-we-teach-introductory-computer-science-is-wrong/fulltext

<comment><USER2> I learned to program by reading code others had written. This was way before college. By the time I got to college, I had years of experience reading Perl scripts and very complex C networking programs.

If there's one thing I would fix in CS curricula, it would be to make students read more code. When I was at Apple, I wrote a lot of software to make it easier for Apple employees to read code that other people in the company had written. That software has since been called "the most important thing to happen to software engineering at Apple, ever" by someone who is very high up in the org. chart.

I have written a lot of code, and that has made me a good programmer. Reading a lot of code, however, has been even more important.

<comment><USER3> _When I was at Apple, I wrote a lot of software to make it easier for Apple employees to read code that other people in the company had written._

This idea of improving the reading/understanding experience with software is something I've tinkered with, without much success, so your story intrigues me. If you can say & don't mind, what sort of approach does/did that software take?

</comment></comment><comment><USER4> I think pair programming with the beginner at the keyboard is the best thing I've worked with. As part of the student ACM chapter I've organized a lot of tutoring for non-programmers. Walking through my own thought process with the beginner in how to solve a problem seems to help a lot. For example, one thing I had to explain to a student was that figuring out how your program will work is often identical to figuring out how you yourself would do the problem (assuming you can solve the problem). One specific problem we were working involved essentially an itoa function. By using the Socratic method I managed to get the student to explain at the most basic level how they did operations on numbers. Once they got to the digit level, I handed them the well-known division + modular division algorithm for processing the digits of a number and they were able to build the solution from there.

I also think that one of the most important concepts is really poorly taught in computer science. A lot of what we view as "good code" is really just a series of idioms and conventions that we have all agreed upon. As the IOCC shows, there are really no rules forcing anyone to follow these conventions. With somebody looking over their shoulder and saying, you know, we usually express this pattern as this, it basically teaches them what they would have otherwise had to spend hours reading code learning.

That said, I'm not really sure what the best way to teach programming is. The most important thing one programmer can teach another is how to learn on their own, but I really have no idea how to teach that.

</comment><comment><USER5> My biggest complaint about programming education and text-books is the handling of the 'object-oriented' issue. They throw it at you, at the very start, with zero context. I asked my lecturer what 'non-object-oriented' programming would be, and he couldn't give me a straight answer. A fellow student turned and said 'it's like when you don't have buttons, just prompts' (with an implied 'd'uh!'). It seemed he was confusing the OO paradigm with the 'visual' programming/design paradigm. Another problem is when they teach about encapsulation, they put far too much emphasis on defensive programming and make it sound like there's hackers out to meddle with your classes or grossly negligent colleagues who MUST NEVER see your code; whereas it seems to me the main benefit is 'information hiding' for the purpose of focusing control/interfacing into single points thereby making changes easier (eg. you could have any number of possible mechanisms behind a clock-face but the face remains always familiar to the outside world).

Of course, these are just my opinions as a relative n00b. :)

<comment><USER6> Object-orientation has got to be the most confused and abused concept in all of technology. Even the experts can't agree on exactly what it means, but that doesn't stop every other dingbat from telling you.

</comment></comment><comment><USER7> This reminds me of some teacher training I received a few years ago. The teacher was showing us a technique for teaching a new skill to people:

      * First I do it.  (Step one is blah, then we do foo, etc.)
      * Then you help me do it.  (So what's the first step? and then what do I do? etc.)
      * Then I help you do it.
      * Then you do it.

The first part is important: new learners simply watching an experienced teacher applying the skill.

<comment><USER8> My best CS professors would write code on-screen during lectures (usually in a REPL, or sometimes an IDE).

The great thing about watching them coding "live" is that you can see into their thought processes: which mistakes they make, how they figure out the mistakes and recover from them, exploratory code they write and throw away, the order they do things, how they evolve simple examples into complex programs. You don't get any of that from just seeing the finished product.

It's also great for picking up mundane practical tips, like tab completion, GNU screen, shell history, and how to quickly look up documentation.

<comment><USER9> Out of my four years of college maybe one professor coded on-screen in front of us, and it was during one of the earlier classes. It's not that I don't appreciate or respect the traditional CS study, but as a programmer, how else are you really going to learn, than to watch a master at his craft?

As I sit here in my last semester implementing a few chosen functions of a small but complete RDBMS for my databases class (i.e. most of the code was written, we just had to fill in stuff relating to a certain topic (buffer management, heap files, etc.)), it makes me wish that I would have _seen_ how the whole system was developed from the first thought processes to the final debugging. That would have been a much better learning experience.

<comment><USER10> Well I think the issue might stem from the fact that professors in university might not be masters of the craft of coding. I am sure they lost a lot of that mastery while researching their theoretical distertations and what not.

Many who show a mastery in coding are working on the next-big-thing and not furthering their theoretical knowledge.

This is just my thoughts, however. I really have no experience in learning to code in university (2 semesters of intro ECE).

<comment><USER4> _Well I think the issue might stem from the fact that professors in university might not be masters of the craft of coding. I am sure they lost a lot of that mastery while researching their theoretical distertations and what not._

I completely disagree. At least at Northwestern, the systems people _know_ their stuff. You may be right about the theory people, though.

</comment></comment></comment></comment></comment><comment><USER11> Re: examples vs problem-solving: I found that attempting a problem that was beyond me would prime my mind, so that when I read the solution, my mind would grab it. Like an enzyme. Apart from focusing on the relevant aspect of the material, it also provides motivation, and then satisfaction though tension and release. Something of a drama/sales technique.

[ _EDIT_ it also combats that feeling of not having learnt anything in 3 years, by giving contrasting experiences of not-knowing and knowing. All humans are intelligent; I believe learning is just a matter of paying attention, which requires motivation and confidence. A sense of progress helps both.]

I tried this on a class when I was tutoring at uni, and it seemed to work well. Students were surprisingly interested in the answers to puzzles I put on the board at the start of each tute, even though I didn't refer to them, and several did extremely well in the subject. Unfortunately, I have no comparative data with other tutes, due to "privacy issues", which averages would have overcome. So much for my dept's interest in teaching quality.

</comment><comment><USER12> While I agree that this method might help in Algebra/intro to CS, I'm not sure it's beneficial in the long run. The net result is the following set of expectations: you teach them how to apply an algorithm, then they repeat what you told them on the test. This is nothing more than "teaching to the test".

This is, for the most part, how students are taught in high school.

The problem is the following: real life and (if you are doing your job right) more advanced classes don't fit this model. A simple linear algebra example (from my midterm two weeks ago) illustrates what happens when students are taught this way.

Problem: _a 4k x 4k matrix M consists of 4x4 blocks along the diagonal, 4x4 blocks on the bottom row, and zeros elsewhere. Find an_ efficient _algorithm for computing M v (v a vector)._

        [ M1 0  0 ... 0 ]
        [ 0  M2 0 ... 0 ]
        [ ...           ]
        [ B1 B2 ...   Bk]

The right answer consists of multiplying only the non-zero blocks and has complexity O(k). I gave partial credit for any answer that computed M v. The most common answer I got was "compute the LU factorization." Some went so far as to explain how to use the LU factorization to _solve_ Mx = v. Apparently, I used the word "efficient" when explaining the purpose of the LU factorization, and I used the word "efficient" in this problem.

My students were trained for 12 years to repeat the teachers password. This training failed them the moment they needed to think. It may improve performance in the short term, and it's an easy way to teach. But the long term results are extremely harmful.

</comment><comment><USER13> Extreme programming could be a better alternative. Have the experienced person solve the problem while the novice types out the solution. It's better than simply _reading_ the solution, because you're hearing the rationale for the lines as they are being written. Writing them burns them into your brain.

Perhaps we can group sophomores with freshmen. The sophomores are tasked with solving the problems and the freshmen are tasked with typing out the code. It also primes the seemingly naturally introverted programmers for group based activity that will benefit them in the long run.

<comment><USER14> _Perhaps we can group sophomores with freshmen. The sophomores are tasked with solving the problems and the freshmen are tasked with typing out the code. It also primes the seemingly naturally introverted programmers for group based activity that will benefit them in the long run._

I think this is an awful idea because the average freshman will learn from the output of the average sophomore, which is not good at all.

<comment><USER7> This is a technique that teachers use and it can be effective if done right. Of course you have to make sure the "sophomores" know what they are doing. It works for a variety of reasons, including more one-on-one time and the fact that you learn best what you teach (yes, the sophomores will be learning, too).

</comment></comment></comment><comment><USER15> A human teacher isn't always available to demonstrate things. How can we duplicate the experience of teaching for people with nothing but a browser and desire?

</comment><comment><USER16> Aren't there some good books that show an overview of what programming is all about? For example, those at

<http://olympiads.win.tue.nl/ioi/study/books.html>

include a few quite accessible books (and several more that are very hard).

How about guidance into C via The Art and Science of C: A Library Based Introduction to Computer Science by Eric S. Roberts

[http://www.amazon.com/Art-Science-Library-Introduction- Compu...](http://www.amazon.com/Art-Science-Library-Introduction- Computer/dp/0201543222/)

or guidance into LISP with the famous Structure and Interpretation of Computer Programs (SICP) textbook?

[http://www.amazon.com/Structure-Interpretation-Computer- Prog...](http://www.amazon.com/Structure-Interpretation-Computer-Programs- Engineering/dp/0262011530/)

</comment><comment><USER17> The best way for me to study for test was to read through a lot of worked out problems. This works great for the short term, but not for the long term. Retention from reading is a lot less than from doing.

Sure, you may learn programming faster by reading lots of examples and books ... but it will discourage experimentation. You'll only learn what you read, and you will likely not understand it as in-depth.

I learned programming without guidance, on my own. Having to figure everything out with only one or two books and no Internet is an invaluable experience. I really feel that going through that was my competitive advantage.

</comment><comment><USER18> Law schools should take note, too -- generations of 1Ls have cynically remarked that the main benefit of "Socratic method" teaching is that it allows law schools to maintain a 100:1 student:teacher ratio.</comment>


WebM and WebP Hand Ported to JavaScript for All Browsers - <AUTHOR> http://badassjs.com/post/17218459521/webm-and-webp-hand-ported-to-javascript-for-all

<comment><USER2> That is really awesome.

I wonder if the file size gains of switching to WebP is worth the hit of including the WebP.js file. Of course you'd now require clients to support JS but in this day and age that's reasonable anyways.

<comment><AUTHOR> I believe the point of WebP is that it is _smaller_ than JPEG and PNG files. And the JS file is only 27 KB minified and gzipped...

<comment><USER3> Google claims an average-case 25-34% decrease in file sizes from JPEG and PNG, so I guess if you have more than ~100K worth of images to serve it would be worth your while, bandwidth-wise (though of course rendering time on the client would go way up).

<comment><USER4> Rendering memory usage could change, too (most likely upwards). I haven't looked at the source, but I guess this renders to canvas and keeps the uncompressed data around in that canvas. Browsers might opt to uncompress images on the fly when needed.

</comment></comment></comment></comment><comment><USER5> Do I understand it correctly that the whole codec runs in javascript?

</comment><comment><USER6> I have mixed feelings about handling web media like this. It's probably very well-done, interesting javascript, but I don't know if this is a long-term solution for the web. I feel like high-performance decoding should be done in the browser and is not Javascript's domain.

<comment><USER7> But many people want to use free video formats on the web and Apple and Microsoft are still refusing to ship them.

</comment></comment><comment><USER8> This seems like the right approach going forward, as long as JavaScript engines continue to approach the performance of native code. This approach keeps codec implementations in the JavaScript sandbox where they can't provide new exploits, rather than extending the attack surface with large, frequently exploited codecs.

In general, JavaScript seems like the right approach for anything that doesn't require special privileges to do, and for that the APIs should focus on creating the minimum possible interface that lets JavaScript do all the interesting work.

<comment><USER9> I'd like to agree, but this makes a good benchmark, and right now it's showing that JavaScript is about 20 times slower than native code on my machine in both Chrome and Firefox. That's completely unacceptable for video decoding. In fact, even if JavaScript was just as fast as native code it would still be unacceptable for mobile video, where hardware acceleration is required for acceptable performance and battery life.

<comment><AUTHOR> Just wait until browsers start supporting WebCL and we can do video decoding on the graphics card :)

<comment><USER10> I'm betting WebCL running on CPU cores will beat JS by 20x margin as well.

</comment></comment></comment></comment><comment><USER11> How's WebP compared to ImageZero?

[https://kdepepo.wordpress.com/2012/01/30/fast-lossless- color...](https://kdepepo.wordpress.com/2012/01/30/fast-lossless-color-image- compression/)

<comment><USER12> WebP is, by default, lossy whereas ImageZero is lossless so they're not directly comparable. WebP does have an in-progress lossless mode though, known as WebPll.

WebPll compresses better, but takes much longer to do it, therefore is better suited to website images which are encoded once and transmitted multiple times.

ImageZero compresses fast, but not as well, therefore is better suited to saving images you are working on in a image editor to disk.</comment></comment>