Container Tabs - <AUTHOR> https://wiki.mozilla.org/Security/Contextual_Identity_Project/Containers <comment><USER2> I would like to be able to configure my browser to open every URL in a domain- specific "container", unless I say otherwise.

Say site www.a.org includes an image from www.evilcorp.org, and www.evilcorp.org sets a cookie. When I then go to www.b.org and it includes an image from www.evilcorp.org, I don't expect the cookie to be sent back.

In other words, the cookie should be tied to www.a.org, _even though_ it actually came from www.evilcorp.org. It should only be sent if my URL bar says www.a.org AND the image is coming from www.evilcorp.org.

I feel that this is how browsers should have been designed in the first place. I welcome this Container Tabs feature, but I don't think it quite goes far enough to restore my privacy.

<comment><USER3> Firefox is integrating a cookie feature from Tor called first-party isolation or double-key cookies. It will separate third-party cookies for each first- party site, so evilcorp.org cookies for evilcorp.org images on a.org will not be set for evilcorp.org images on a.org. Blocking third-party cookies can break some site that rely on third-party resources, but first-party isolation should allow each site to work without cookie "crosstalk".

You can test first-party isolation now by flipping the about:config pref "privacy.firstparty.isolate" to true. Beware that there are still bugs that break some sites, which is why the feature is not enabled by default yet. If you find bugs, please report them in Bugzilla! Here is the Firefox bug tracking the integration and known bugs:

[https://bugzilla.mozilla.org/show_bug.cgi?id=1299996](https://bugzilla.mozilla.org/show_bug.cgi?id=1299996)

<comment><USER4> I'm glad Firefox is doing this, but ...

> Blocking third-party cookies can break some site that rely on third-party > resources

Can anyone name sites that require them?

As someone who defaults to deny all cookies and manually enables every one my browser accepts, I don't think I've found a site that requires 3rd-party cookies. Few sites require cookies unless you login or have shopping cart.

Of course, that's anecdotal. Maybe I just don't visit certain categories of sites and don't encounter them.

<comment><USER5> StackOverflow, sadly. Their Javascript requires some off site cookies to allow for their cross domain user account stuff. Not enabling third party cookies on the StackExchange sites leads to broken pages.

<comment><USER6> Wouldn't that be the case for any site using sso?

<comment><USER5> Yes, though there are some ways around this. You could send the user to another domain to sign in using a unique request ID that identifies the user. After authenticating this unique ID can be communicated back to the first site to show the user has authenticated, and a cookie could keep the session information. That wouldn't give a seemless sign-in on every site, though - you'd need one cookie (and one sign-in) per domain.

The other way is to have all StackExchange sites be subdomains of stackexchange.com - which is how the designers of the web intended it to be, I think.

</comment></comment></comment></comment></comment></comment><comment><USER7> This is a neat idea but it doesn't implement the main reason I use separate profiles in Chromium - different security contexts based on how much you trust a site.

Example: my main general browsing profile has flash, PDFs and all plugins disabled, absolutely all handlers switched off, all hardware access off, WebGL switched off, no account logins and uBlock Origin set to aggressively block most third-party requests.

My second most used context is for personal sites I login for - with access to third-party cookies (for those sites) and running most third-party requests with standard uBlock rules.

I have yet other contexts (Chrome profiles) where Flash is enabled if I need that, then a separate browser for Java etc.

I'd like to see these security levels built into browsers where the contexts are built around permissions and site trust rather than access to the user store (which is also important)

I don't think it's realistic for most users to do this right now with profiles, as it requires a lot of discipline - it needs to be in the UI.

Browsers have become as sophisticated as operating systems and we're accessing more and more of our personal data using them, yet the model of 'every site has access to everything' be it a site you trust, like Gmail, or a random URL you're clicking on - has somehow survived.

It's the equivalent of the old days where everyone would run their local systems with an admin account for everything. I really think browsers need a rethink along these lines where websites are treated like apps and you can apply a trust group to each.

<comment><USER8> I'm genuinely not trolling here: what are you worried could happen if you didn't do all of this stuff with the extensions and settings in your various profiles? What does it mean to trust a website?

<comment><USER9> I turn all of those Chrome features off everywhere anyways. I find the handlers to be especially annoying. Why the fuck would I want that? There's a reason I use Mail.app and it's not because I love using email in web views.

<comment><USER10> Isn't mailto: opening Mail.app for you?

<comment><USER9> yes, but Chrome bugs me about switching it to Gmail every time.

</comment></comment></comment></comment></comment><comment><USER11> I am a Mozilla supporter and FF is my "daily driver" browser. Very interested in this feature.

Chrome has had it for a years, and it's a _killer_ feature for many developers. It's very very useful to have multiple browser windows open, each logged into the same site as a different user. A lot of people do this by opening multiple browsers (FF, Chrome, Edge, Safari, etc) but that has its limits and it just adds another variable my poor brain would prefer not to handle.

Also very useful for home/work separation. One browser account for work and one for home. And also maybe one for porn. So that when you're screensharing in a meeting and you type a URL into the browser, you don't get autocomplete suggestions for your favorite porn sites popping up. Happened to an old (married) boss of mine once while displaying his screen on the projector... typed "a" into the URL field and the browser helpfully suggested he navigate to AdultFriendFinder. Right in front of some clients. :)

Firefox's "container tabs" implementation may be slightly confusing. Chrome's implementation is dead simple. One identity per window, and the identity name is always displayed in the upper right.

With FF's container tabs, I'll have one identity per tab, and I can see they're color coded, but that means I'll have to mentally map colors to identities. It's more flexible than Chrome's implementation but there's more cognitive overhead involved.

Also, what's up with the name "container tabs?" That tells me nothing about what they do. All tabs... contain things. I think they need to rename it to "identity tabs" or something. How on Earth would anybody ever guess that "container tabs" is related to identities and data sharing?

We'll see how it plays out though. I'm excited to try it and I am continually grateful for Mozilla's efforts. In fact this reminds me I haven't donated to them in a while....

<comment><USER12> Edit: I guess I'm misremembering how Chrome works, or maybe they changed it since I've last used Chrome seriously. I'll leave the comment so the replies make sense.

Original comment:

I'm kind of surprised that Mozilla went with a per-tab approach here, since they went with per-window for private browsing (while Chrome did the opposite: per-tab private browsing and per-window profiles).

<comment><USER13> That's not right. Chrome's incognito mode is per window.

<comment><USER14> Not even. Chome's session isolation is only per each of the two browsing modes.

<comment><USER15> Chrome supports multiple profiles (click the person icon or username on the upper right), not just logged and incognito.

<comment><USER16> Yes, but all incognito tabs are in the same session, even if opened in separate windows.

</comment></comment></comment></comment></comment></comment><comment><USER17> Right now, what I'm doing is that all my standard browsing happens on Firefox, with uMatrix blocking JS and just generally locked down. For anything where I want to log in or have a persistent identity (stackoverflow, gmail, etc), I set up separate Chrome profiles and manually open each site in the appropriate profile.

Honestly, this whole thing is a bit of a pain - my ideal solution would be one where I can set up "domain groups" matching on the URL in the URL bar, each fully isolated from one another (different extensions, settings, caches, histories, forms, cookie stores, etc), and clicking links that go from one profile to another, all referer information is stripped out. Anything not matching one of the domain groups would go to the "default session" (which I would configure to be completely locked down and ephemeral).

Additionally, I'd want a context-menu item "Open link in group <x>", which would open something matching another domain group in the domain group of my choice, so that I could do things like visit gmail in two different groups.

<comment><USER18> Context based on domains sounds like a perfect and elegant solution. I hope someone from Mozilla is reading this.

<comment><USER19> I'm pretty sure about 90% of us Mozilla engineers are on hacker news :)

</comment></comment></comment><comment><USER20> This is awesome. Microsoft's identity system is a nightmare so switching between my Office 365 email account and my OneDrive/music accounts is always annoying. I'd love to be able to contain each and stay logged in to both accounts.

At work I test lots of user accounts on the same site and make heavy use of Chrome profiles for that. This would fill a similar role.

But while I'm glad to have them, no average user would ever understand any of these concepts as presented in these screenshots.

</comment><comment><USER21> This looks amazing!

I have been using Self-Destructing Cookies[1] for few years and while I think the extension is great, I always feel there's not enough isolation between tabs. For example, if I have Twitter logged in in one tab, and other tab contain Twitter button, then the other tab can still have access to my Twitter cookie. (Because Twitter tab is still active, so SDC would not destroy the cookie.) I know this is solvable using tracker blocker, but something like SDC but worked on tab container level would be very welcomed.

(Other side effect of using SDC is I seems to get the harder ReCAPTCHA that make you click an object until all of it disappear, with new ones popping up after clicking. Usually took about 5-10 clicks. Very annoying.)

[1]: [https://addons.mozilla.org/en-US/firefox/addon/self- destruct...](https://addons.mozilla.org/en-US/firefox/addon/self-destructing- cookies/)

<comment><USER22> You may want to try uMatrix[1]. It block any 3rd party content by default (cookies, scripts,...) . So Twitter buttons (and similar) do not load by default, but you can allow it with two clicks.

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

<comment><USER21> Thanks for the suggestion, although I'm already using uMatrix :-)

SDC + uMatrix do make a really great combination, and I'm really glad I use these extensions when I see some sites loading 10+ trackers that are not relevant to site's function at all.

</comment></comment></comment><comment><USER23> I've been doing this for years using both Firefox' and Thunderbird's multiple- profile features.

Just run "firefox --no-remote -ProfileManager" and here you go.

So the serious question is: how is this any different from using multiple profile?

Multiple profile also have the pro/con that they are actual different processes, so there's no information leak between profiles whatsoever (well, unless some serious hacking happens).

Edit: being different processes with different profiles, they also have different configuration folders, different cookie sets, different password storage locations etc...

<comment><USER24> _Just run "firefox --no-remote -ProfileManager" and here you go._

I'm sure Grandma and Joe SixPack will do that... Not everybody is tech savvy. I'd say the majority of FF users don't even know there's a profile manager.

<comment><USER25> Reminder of the thing it's being compared to:

> The containers feature is enabled in Firefox Nightly 50 by default with the > about:config pref `privacy.userContext.enabled` set to true.

Grandma and Joe SixPack aren't running Firefox Nightly with about:config tweaks either.

<comment><USER26> To be fair, grandma and joe sixpack don't even know firefox exists.

<comment><USER27> Maybe not in the US, but in Germany Firefox is the most popular browser.

</comment></comment></comment></comment></comment><comment><USER28> I would love this feature and it would actually get me to switch to Firefox in a heartbeat. I'm currently using Chrome just because of the the (subjectively) better developer tools, but this is a feature that would make my life so much easier!

<comment><USER29> Firefox tab management is lackluster compared to Chrome; container tabs won't change that :/

Every time I try using Firefox I pretty quickly hit the limitation on selecting tabs. Chrome lets you select tabs like files in a file manager: Shift click for ranges, ctrl+click for adding/removing single tabs. You can then drag & drop the group in or out of various windows, close all at once, etc.

Container tabs imho won't be usable unless something like this is in place. When dealing with as few as 5+ tabs, I certainly wouldn't want to manually tweak them one at a time. Can't imagine for 20+, 50+.

But the idea is nice for feature separation, I like that a lot.

<comment><USER30> Try the Tree Style Tab addon for Firefox. Managing 100+ tabs in Firefox is a breeze. I can't bring myself to use Chrome now.

<comment><USER31> Great minds think a like ;)

</comment></comment></comment></comment><comment><USER32> I like where this is heading but their pre-selected categories don't make sense. Container isolation should be based on security requirements rather than site content. E.g. shopping and banking have similar security requirements that are different than following a click-bait link on facebook.

I'd like a container per Google account since trying to switch users in their apps is a disaster that forces me to run multiple browsers.

I'd also like to tie sites to specific containers. So supposing Banking stays its own category, that should mean that any sites that open in the Banking container will never open in another container. Similarly it should be possible to whitelist a set of sites for a container so e.g. only specific banking sites will launch in the Banking container.

Each container should have its own set of security permissions.

I'd like to have disposable containers. I want a safe space where I can open a sketchy link and not have to worry about that page doing anything to the rest of my environment.

</comment><comment><USER33> This is why I'm using Firefox nightly. It is a killer feature to keep open my many AWS and GCP accounts (one container per client). It still needs to be polished though.

</comment><comment><USER34> why isn't "Saved Passwords" and "Saved Search and Form data" separated between containers?

There have been autofill/form-data attacks in the past[0] and there was a story recently on HN's front page showing the same[1].

I'd like to point out that mozilla already has a configuration option to disable form data saving on https sites, 'browser.formfill.saveHttpsForms'. Why?[2]

> Right; the idea is to eliminate "opportunism". If my laptop is stolen, > Firefox's current behavior makes it easy for a thief to find a https: site > in my history, go to it, check out, and then just let autocomplete hand them > my complete credit card details.

[0] [https://news.ycombinator.com/item?id=12171547](https://news.ycombinator.com/item?id=12171547) [1] [https://news.ycombinator.com/item?id=13329525](https://news.ycombinator.com/item?id=13329525) [2] [https://bugzilla.mozilla.org/show_bug.cgi?id=252486](https://bugzilla.mozilla.org/show_bug.cgi?id=252486)

<comment><USER35> Probably because of usability, they are still exploring how to integrate it in the browser (it will probably stay hidden behind a pref for a while). Right now no configuration screen is aware of the container feature.

<comment><USER36> Yeah usability is a toughie, an other feature I'd be interested in would be some sort of container inheritance (e.g. sub-identities in a work context when clients provide office 365 identities or to test projects under different identities all within the broader work context) but that's even harder to make easy to use.

</comment></comment></comment><comment><USER37> This is really awesome!!! I used to manage this kind of separation by using private windows and using different browsers. I don't really want to manage these by window or create user profiles, as may be the case in other browsers.

</comment><comment><USER38> I don't want to be too greedy (considering that the presence of this feature on the desktop is already great), but is there any chance that this will be coming to Firefox for Android? It might be a challenge to implement this UX- wise; however, it would also be extremely helpful since it would help in isolating mobile "web-apps" while still using a decent browser (Firefox for Android instead of Chrome), especially as profiles, which exist on the desktop version of Firefox, are not available on Android.

(Googling does not seem to have produced any relevant hits.)

</comment><comment><USER39> Cool. I had been using multifox plugin for testing websites, but it won't work with the new multiprocess engine and the plugin author had no intention of porting it. Glad to see an alternative.

I use Firefox for testing my dev work but reading about the privacy use-case, I might seriously consider switching from Chrome as my main browser.

</comment><comment><USER40> I've been using the Private Tab addon to open separate logins in the same window for years: [https://addons.mozilla.org/firefox/addon/private- tab/](https://addons.mozilla.org/firefox/addon/private-tab/)

</comment><comment><USER41> This is a great idea! I love the fact that I can have both contexts in the same window. What would also be pretty cool is being able to move all windows in one context into a new window, if I want to separate things in a new OS workspace.

</comment><comment><USER42> This would be nice for using more than one Twitter account without needing to open one in private browsing (TweetDeck exists, and I do use it, but I prefer Twitter Web). I hope it makes it to the release channel.

</comment><comment><USER43> There's a nice addon for Firefox, called Priv8: [https://addons.mozilla.org/en- US/firefox/addon/priv8/](https://addons.mozilla.org/en- US/firefox/addon/priv8/)

This is a Firefox addon that uses part of the security model of Firefox OS to create sandboxed tabs. Each sandbox is a completely separated world: it doesn't share cookies, storage, and a lots of other stuff with the rest of Firefox, but just with other tabs from the same sandbox.

</comment><comment><USER44> This is really neat.

I became a huge fan of Opera Neon's interface, though. And it would be a perfect fit for "containers". Drop icons into folders, and done. Folders represent containers.

</comment><comment><USER45> This is really good. I might actually find myself using FF more now. Chrome supports multiple profiles but it's quite tedious make the switch(you'd need to create multiple accounts). The best solution that I'd been using was opening an incognito session, regular session, guest session(easier than having multiple profiles but hardly sufficient when you want many more separate sessions).

Edit: I love the color coding feature that distinguishes the distinct containers you have open.

</comment><comment><USER46> Lack of history separation seems quite pitty to me imo :-/

<comment><USER47> Well, that's not really the idea behind the feature. If you want that, you should work with different Firefox Profiles: [https://support.mozilla.org/en- US/kb/profile-manager-create-...](https://support.mozilla.org/en- US/kb/profile-manager-create-and-remove-firefox-profiles)

</comment></comment><comment><USER3> How would you design a user interface for container tabs that non-technical users can understand?

Something like container windows, isolating different browser _windows_ instead of tabs, might be a clear way to visibly show the separation to the user. In one window, they can log into their work Gmail. In another window they can log into their personal Gmail without any Google cookie confusion.

</comment><comment><USER48> I'm long searching for a solution to do this is a much broader way.. On the OS level.

Private Work A Work B Work C

Ideally it would seem like a different user. (Filesystem, cmd-tab). But easily accessible like the three finger swipe. Fast user switching doesn't cut it.

I even tried logging in on my local machine using VNC or remove desktop.. Is having 4 VMs the only way?

<comment><USER47> Yet another potential solution, if you're on Linux. This is more on the accessible side of things, it doesn't do separation as much as you would like it:

KDE Plasma has what they call "Activities". In its basic idea, it's kind of like fancy desktop workspaces. So, it does separate your windows into workspace-like groups, but you can also set what files and widgets are displayed on the desktop on a per-Activity basis.

So, you don't have a different filesystem, but you can have a folder or multiple folders displayed on each Activity's desktop. Also, shortcuts to different applications, including for example Firefox profiles, as well as different sets of widgets, for example I like to use the little post-it note widgets to write things down on.

And yeah, with that you can then just switch between Activities via a simple keyboard shortcut or by clicking an Activity-selector on your panel (if you've put one there).

<comment><USER48> This sounds most like what I'd like. Spaces on mac doesn't cut it because the application instances are shared, which causes it to switch spaces when tabbing into something.

</comment></comment></comment><comment><USER49> This is pretty awesome. Very useful.

My school's security is a joke. You cannot log out except by closing your browser. The session also never expires.

Not only that, but now they moved to a "single-sign on." If I sign in on one app, it signs me in for all apps.

</comment><comment><USER50> Nice to see this integrated natively. I was using MultiFox before to get this functionality. For example, this allows me to manage multiple twitter accounts, without logging out and back in all the time.

</comment><comment><USER51> Tech question: Does Firefox has technical process seperation of tabs nowdays? This is one of the main features of Chrome since 1.0 and just want to know if Firefox has something similar finally.

<comment><USER47> The foundational work is there, it's currently still going through testing, although you can already manually enable it and it works rather well, but as of right now it's not planned to have complete separation for each individual tab, as that just chews up a lot of resources with relatively little gain in performance.

What's planned instead, is to use a set number of processes across all tabs. So, if this would be two processes, then every other tab will share a process with one another. And they'll probably have around 5 processes for tabs at a maximum once this is fully rolled out, at least for the foreseeable future.

You can manually change this maximum number of processes in about:config, though. And if you do set it to something like 500, i.e. just a very big number that you're not likely to hit in number of tabs, then it will separate each tab into its own process, with whatever performance problems come with that.

<comment><USER3> The about:config pref to control the number of content processes shared by tabs is "dom.ipc.processCount".

</comment></comment></comment><comment><USER52> Slightly OT: This page reads like Mozilla's Developer Network (MDN) online documentation, I had to read the first sentences few times until I got what container tabs are about.

However, very nice feature.

<comment><USER53> That's because it's on the Mozilla wiki. I'd expect better docs on the support site (and maybe MDN) once the feature nears completion/release. The mozilla wiki contains all kinds of odds and ends about random ongoing projects (status, documentation) and is mostly developer-facing.

</comment></comment><comment><USER54> It would be cool if there was a shortcut to hide all other tabs but a certain group.

I would love if I could use this to organize my 100 tabs I always have open.

</comment><comment><USER55> I use the Qupzilla browser incognito mode which is a separate session per- window by default. It uses the Chrome guts and has a few rough edges.

</comment><comment><USER56> the thing I blame is that ctrl+t on a container opens a new tab of the default container and not the one that is currently on focus.

</comment><comment><USER57> Awesome. Coming up with legitimately innovative features and publicizing them will do more good than a dozen new logo campaigns.

</comment><comment><USER58> Nice, up until now I used Chrome as the browser logged into everything (fb, Twitter, Google) and FF as the main browser.

</comment><comment><USER59> Why do I even need this? Isn't it by default so that site1.com can't see cookies from site2.com for example?

<comment><USER60> site1.com might include embedded images that are hosted by site2.com, so may site3.com, site4.com, site5.com and site6.com

Now site2.com (aka facebook like button) knows that you have visited both site1, 2, 3, 4 and 5.

You can work around this in some ways by disabling "third party cookies" but this breaks certain features, such as using your facebook identity to post comments on other sites, so sadly all browsers enable this by default.

<comment><USER23> see my reply about multiple profiles

</comment></comment></comment><comment><USER61> Been wanting something like this for years.

</comment><comment><USER62> A welcome development, though long overdue. I don't understand why browser UI is so boring and unimaginative.

</comment><comment><USER63> An official linux container tab with shell access (for dev, emacs, etc) would be a killer feature for Chromebooks.

</comment><comment><USER64> Anyone know when this feature is planned to hit Beta or Stable ?

<comment><USER47> Do you mean officially considered beta/stable quality or just that it's _there_ in the Beta or Stable version, so that you don't have to migrate to a less stable version of Firefox in order to use it?

If it's the latter, there's two preferences that you can flip in about:config to enable it (even in Firefox Stable): privacy.userContext.enabled and privacy.userContext.ui.enabled

Mind though that since this feature is currently still under active development, that it might actually be less error-prone in the normally less stable versions of Firefox.

<comment><USER64> This is why I ask when it will be enabled by default on Beta or Release. Any idea when is planned ?

<comment><AUTHOR> This is available on Firefox Nightly.

</comment></comment></comment></comment><comment><USER65> another way to use chrome in a sandbox

[https://blog.jessfraz.com/post/docker-containers-on-the- desk...](https://blog.jessfraz.com/post/docker-containers-on-the-desktop/)

</comment><comment><USER66> not needed if you're running Qubes-OS :)

</comment><comment><USER67> As a user, I actually just want my browser to contain less features. Vendors add and add and add features. If I want different user profiles, I already have many users on my OS - I just switch between them.

When Chrome came out, I and many others switched to it just because it was lacking so many features. It was great!

<comment><USER20> Chrome actually already has this feature in the form of profiles. See the top- right icon.

<comment><USER31> Yes it does and I have been using this. But it seems to be per window not tab. Unless I've missed something?

<comment><USER68> > it seems to be per window not tab

Chromium-based Ghost Browser [1] can do it per tab or tab group.

It would be nice if Google implemented the same feature into Chrome since multiple profiles can be a hassle.

[1] [https://ghostbrowser.com](https://ghostbrowser.com)

<comment><USER31> This looks EXTREMELY interesting. Thanks for sharing.</comment></comment></comment></comment></comment>


Racism - <AUTHOR> http://andrewgelman.com/2013/03/28/racism-2/

<comment><USER2> Wow. The comments on this are more interesting than the article itself.</comment>


Ask HN: What blogging platform are you using these days? - <AUTHOR> <comment><USER2> I use Drupal for my legacy website: [http://www.dmuth.org/](http://www.dmuth.org/)

Medium for updates on my latest project: [https://medium.com/septa- stats](https://medium.com/septa-stats)

And Jekyll on GitHub pages for a side project I did awhile ago: [http://www.allaboutcheetahs.info/](http://www.allaboutcheetahs.info/)

The reasons behind these:

\- Drupal: My website used to have a lot of static content, and I wanted to keep the content there while writing blog posts going forward

\- Medium: There's a lot of people on it already, and I really like the interface

\- Jekyll: I wanted to learn a static site generator as well as brush up on my CSS. (and the world needs more websites about cheetahs, tbh)

<comment><USER3> Haha! After reading the site and your HN profile, I was thoroughly delighted. Pretty neat.

</comment></comment><comment><USER4> I use Ghost on Digital Ocean with a $5 VM. The writing interface is very clean and simple. Plus it's very nice to write in Markdown and see an unstyled real- time preview of the content. Ghost fulfills everything I'm looking for in a blogging platform. It is also pretty easy to write your own theme.

<comment><USER5> Same - I might use a static site generator, but my wife wanted a blog with an in-browser editor, and since it's very easy to host multiple Ghost blogs on a single server with some nginx configuration, I decided to just go with that for my own as well.

Works well since neither of them are very high traffic.

</comment></comment><comment><USER6> For a long time, Wordpress...now, Jekyll - being able to just pop open my text editor and jot notes is a behavior-changing level of friction- reduction...Wordpress is nice, but the time it took to login, click through to get to the posting interface, etc., meant that I really had to have wanted to blog to go through that hassle. Nevermind doing any kind of style/design changes, which required a mix of going through the clunky Editor UI, working directly from FTP, and at various points, just saying "Fuck it" and writing inline CSS.

I used Tumblr for awhile as a photoblog. It worked out nicely and I enjoyed the social features. The main benefit was I learned not to underestimate the psychological impact of interface and friction...I spent little time comparatively on Tumblr, but I created around 1,500+ posts...sure, some of it was fluff, but the ease of publishing got me more into the groove of sharing my work and recording my thoughts. With my standard blog, the barrier to posting made me reluctant to try new things, or to blog "just for fun".

</comment><comment><USER7> I migrated my personal blog from Blogger to WordPress a couple of years ago. I'm pretty happy with it.

I had originally wanted to migrate it to Drupal, but I couldn't find a good solution for Blogger-to-Drupal import that worked for me. (At the time, I was doing a fair amount of Drupal work at my day job, so it seemed like a good idea, but in retrospect, I'm glad it didn't work out.)

I know there's a lot of stuff out there that's "cooler" than WordPress, but I like it. The ecosystem for plugins and themes is huge. You can find most anything you want, usually for free.

I'm hosting my blog on a plain vanilla shared Linux host, rather than on WordPress.com or another managed host. I like the flexibility of doing it that way. It's a little bit of work to keep up with plugin updates, but not much.

</comment><comment><USER8> Jekyll using GitHub Pages.

I have developed a few themes and plugins for it.

Website: [http://pravj.github.io](http://pravj.github.io)

Current Theme: [https://github.com/pravj/Etios](https://github.com/pravj/Etios)

Others:

[https://github.com/pravj/wiggle](https://github.com/pravj/wiggle)

[https://github.com/pravj/modified-lanyon](https://github.com/pravj/modified- lanyon)

[https://github.com/pravj/Cursor](https://github.com/pravj/Cursor)

[https://github.com/pravj/Harry](https://github.com/pravj/Harry)

</comment><comment><USER9> I use a static site generator called wintersmith. [http://wintersmith.io/](http://wintersmith.io/)

It's hosted on AWS using Route53, S3, and CloudFront. My blog isn't very popular, so hosting costs less than $1/month.

</comment><comment><USER10> Hugo[0] (static site generator), site hosted with Caddy[1] (go web server with a lot of stuff like auto-SSL from Let's Encrypt for free) running as a Docker container on a DigitalOcean droplet:

[https://stp5.net/blog/](https://stp5.net/blog/)

Works pretty well, and I like Hugo's lightweight templating formats. I can draft up a new blog article, test it locally, then push to GitHub, which has a webhook to my blog host which does a pull and blam: new content.

[0] [https://gohugo.io/](https://gohugo.io/)

[1] [https://caddyserver.com/](https://caddyserver.com/)

<comment><USER11> Caddy looks great. Thanks.

</comment></comment><comment><USER12> Poet[1], a simple node blog generator which plugged pretty nicely into my existing node personal website. I did a quick write-up of the process of using it.[2]

[1] [http://jsantell.github.io/poet/](http://jsantell.github.io/poet/)

[2] [https://tomjwatson.com/blog/using-poet-as-a-blog- generator](https://tomjwatson.com/blog/using-poet-as-a-blog-generator)

</comment><comment><USER13> Jekyll/GitHub Pages, mostly.

</comment><comment><USER14> Home-rolled solution using Markdown, pandoc and make.

</comment><comment><USER15> Tinambo, single file flat-file CMS/blogging app with encrypted content. [https://vox.space/projects/36/tinambo](https://vox.space/projects/36/tinambo) and [https://github.com/voxspace/tinambo](https://github.com/voxspace/tinambo)

</comment><comment><USER16> I'm also using the Python-based Pelican for my personal blog [1]. I was originally using a homebrew solution, but decided to switch over to something a little better-tested. The Fabric deployment options [2] are really great. Of course the static nature means that a JavaScript-based comment system is needed, for which I'm loving Isso [3] - it's self-hosted, lightweight, doesn't have spam issues and respects user privacy.

[1] [https://mikeanthonywild.com](https://mikeanthonywild.com)

[2] [http://docs.getpelican.com/en/3.6.3/publish.html](http://docs.getpelican.com/en/3.6.3/publish.html)

[3] [https://posativ.org/isso/](https://posativ.org/isso/)

</comment><comment><USER17> My own! [https://blog.thekyel.com/](https://blog.thekyel.com/)

I built a minimal php page that just pump out html from text files. All of the blogging platforms that I looked at were terribly bloated. I built this in a couple of hours. No DBs, no css, and no JS.

KISS

<comment><USER18> Code?

<comment><USER17> I haven't open-sourced it, mostly because it's not even really worth it. Basically, it's:

        foreach($entries as $entry => $data) {
          if( file_exists( "entries/$entry" ) && is_readable( "entries/$entry" ) ) {
            $post = file_get_contents("entries/$entry");

            echo "";
            echo "
$data[title]
";
            echo "
$data[date]
";
            echo "$post";
          }else{
            echo "Cannot read file: entries/$entry";
          }
        }

</comment></comment></comment><comment><USER19> My personal blog[0] uses the Wintersmith[1] static site generator with content hosted on Surge[2]. I previously used nanoc[3] but started to find it was more complicated than necessary for my needs. If you happen to be interested, the source[4] of my site is on GitHub.

[0] [https://michael.mior.ca/](https://michael.mior.ca/)

[1] [http://wintersmith.io/](http://wintersmith.io/)

[2] [https://surge.sh/](https://surge.sh/)

[3] [http://nanoc.ws/](http://nanoc.ws/)

[4] [https://github.com/michaelmior/michael.mior.ca](https://github.com/michaelmior/michael.mior.ca)

</comment><comment><USER20> Docpad (Node.js/Coffee Script), generated on Travis CI and published to Github pages.. but I don't blog very often. Mostly I use it to keep my portfolio up to date.

I might do something different if I were starting from scratch today, but it's worked well enough so far.

</comment><comment><USER21> Hugo on Github Pages.

Blog: [http://prakhar.me](http://prakhar.me) Repo: [https://github.com/prakhar1989/hugo- blog](https://github.com/prakhar1989/hugo-blog)

</comment><comment><USER22> I use Hugo, which is great for my relatively simple site: [http://chestradiologists.org](http://chestradiologists.org)

I had substantial help with site design as I know very little about HTML/CSS, etc. Now it's simple for me to write new posts in Markdown while previewing the result in realtime with the built-in http server.

I deploy it easily using Cyberduck/SFTP and its synchronization feature.

For my daughter's blog— she likes to write posts using a browser-based editor with a preview feature— I use Ghost on a Digital Ocean droplet.

</comment><comment><USER23> Hugo- It's a static site generator written in Go. Quite easy to setup and maintain.

</comment><comment><USER24> Attempting to build my own:

[https://github.com/syegulalp/MeTal/](https://github.com/syegulalp/MeTal/)

(Been dormant as I've been busy with other things, but making slow progress)

</comment><comment><USER25> Recently moved to Wordpress from Tumblr, but I'm very interested in something like Hexo where I can host the server myself and just push new webpages online, which would also definitely teach me more about the web.

</comment><comment><USER26> Jekyll as much[0] as[1] possible.[2] The simplicity of a static site, and the ability to host on S3 are the two biggest selling points for me.

[0] [https://github.com/Cbeck527/becker.am](https://github.com/Cbeck527/becker.am)

[1] [https://github.com/Cbeck527/controlc.fm](https://github.com/Cbeck527/controlc.fm)

[2] [https://github.com/Cbeck527/the-wandering- photographers](https://github.com/Cbeck527/the-wandering-photographers)

</comment><comment><USER27> Both components have been mentioned repeatedly, but I haven't seen the combination commented yet:

Hugo on S3

[https://github.com/jfkelley/blog](https://github.com/jfkelley/blog)

</comment><comment><USER28> I have one Wordpress blog (free hosted on wordpress.com) and several Tumblrs.

</comment><comment><USER3> Went back to GitHub Pages. Went back to Wordpress.com. Ghost just doesn't compare to Wordpress, even still, when it comes to installation and integration with an existing Express.js app is a joke.

</comment><comment><USER29> I use Hugo ([http://gohugo.io](http://gohugo.io)) to generate a static content blog, which is then hosted using a combination of Bitbucket ([http://bitbucket.org](http://bitbucket.org)) and Aerobatic ([http://www.aerobatic.com](http://www.aerobatic.com)). Works really nice, is fast, and requires no maintenance at all.

</comment><comment><USER30> A custom static site generator written in Go. It's tailored to me and has been written in various different languages over the years. Can't bring myself to stop using it :-)

<comment><USER31> Is it open source? Just curious to check it out.

<comment><USER30> In the sense that the code is publically viewable and I don't care if people steal it then yes.

[https://bitbucket.org/zaphar/gost/](https://bitbucket.org/zaphar/gost/)

I don't advertise or market it though so it's not what I would call ready for public consumption at all.

</comment></comment></comment><comment><USER32> Zinnia on Django: [https://github.com/Fantomas42/django-blog- zinnia](https://github.com/Fantomas42/django-blog-zinnia)

or Jekyll on S3

</comment><comment><USER33> I have experienced using WordPress. But, I think it's overkill using WordPress for a blog. I moved from WordPress to Jekyll. It's stored on GitLab Pages. The use case that I need for a blog is simple, I can write posts and user can give a thought.

I chose Jekyll as my current blog engine because I don't need a database. I can store all of them in static contents. What about comment system? I can use third-party software, like Disqus.

</comment><comment> ryan-c I like Pelican[0], a static site generator written in Python.

0\. [http://blog.getpelican.com/](http://blog.getpelican.com/)

</comment><comment><USER34> I use a static site generator.

</comment><comment><USER35> I use Ghost. It's quite simple and clean.

</comment><comment><USER36> Nodejs+Couch/Cloudant express app written in Iced Coffeescript, called flat- white. I'll be open-sourcing it and its dependencies over the next few weeks. Current running version: driverbeats.com .

Uses Redis sessions coupled with Couch authentication, so it's ready to be clustered out-of-the-box.

</comment><comment><USER37> Medium. I like that I don't have to think about styling and can focus on the content.

I haven't used it yet for technical blogs but it supports embedding gists. [https://medium.com/@KatAlexPas](https://medium.com/@KatAlexPas)

</comment><comment><USER38> I'm using my own static blog generator: [https://github.com/qawemlilo/node- blogger](https://github.com/qawemlilo/node-blogger), tried WordPress for a short-while but found it a bit too bloated.

</comment><comment><USER39> jibber, an html publishing platform i made, accessible within IRC [http://jollo.org/LNT/doc/jibber/screenshots.html](http://jollo.org/LNT/doc/jibber/screenshots.html)

</comment><comment><USER40> I'm using Lektor and I'm quite happy with it. Hosting it for free on Surge.

</comment><comment><USER41> For my personal blog, a very lightweight static site generator written in Go.

[https://github.com/alexanderteinum/simple- website](https://github.com/alexanderteinum/simple-website)

</comment><comment><USER42> I've spent too much time rolling my own solutions and building stuff for clients. Now I just use Squarespace, simple, easy and I don't have to deal with any of the maintenance stuff.

</comment><comment><USER43> My own blogging engine written in PHP: [https://gitlab.com/mmk2410/rangitaki](https://gitlab.com/mmk2410/rangitaki)

</comment><comment><USER44> Static site generator in common lisp, [https://github.com/kingcons/coleslaw](https://github.com/kingcons/coleslaw)

</comment><comment><USER45> Django Mezzanine running on an EC2 instance, for the simple reasons that I'm familiar with python and I like having full control over all aspects of the stack.

</comment><comment><USER31> I use jekyll with Github pages. Github pages doesn't support https currently (right?) so I'm thinking of hosting on S3. Or maybe ipfs :)

<comment><USER46> It does support https, try adding the 's' in the URL. It just doesn't default to it/redirect to it.

If you use an extension like HTTP Anywhere it'll pick up on that and use https.

<comment><USER31> What about for custom CNAME records though?

<comment><USER46> Right, that one is a bit more tricky. What I've done there is use Cloudflare's services.

Have the CNAME handled by Cloudflare and have it go through their network. Then add a Page Rule that redirects http to https once you've activated their SSL/TLS feature. You can do all of it using their free services.

</comment></comment></comment></comment><comment><USER47> soon I will be switching to cloudscribe.SimpleContent (which I created myself) for my blog because I like aspnetcore [https://github.com/joeaudette/cloudscribe.SimpleContent](https://github.com/joeaudette/cloudscribe.SimpleContent)

</comment><comment><USER48> Personal Blog: Ghost on DigitalOcean droplet

Professional blog for product: WordPress (can't beat the functionality and plugins)

</comment><comment><USER49> I'm trying Ghost, hosted on Openshift. Free. For less personal content, I'll probably use Medium.

</comment><comment><USER50> Hashnode, Segmentfault, I can use GitHub flavored Markdown without making others feel noisy.

</comment><comment><USER51> Hugo for work stuff, my own homebrewed mod_python abomination for my private site.

</comment><comment><USER52> hugo, coming from hyde. Before that around 10 self-written and/or open source solutions.

Also, Wordpress.com for a different "I don't want to self-host" project.

</comment><comment><USER53> Jekyll with GH pages (S3 at work), and working on building my own.

</comment><comment><USER54> ghost mostly

</comment><comment><USER55> Hugo on S3 with Lambda to generate posts.

</comment><comment><USER56> middleman, powerful static site-gen

</comment><comment><USER57> Jekyll is cool!

</comment><comment><USER58> Jekyll</comment>


Google Translated Search - <AUTHOR> http://googleblog.blogspot.com/2009/12/searching-global-web-just-got-little.html

<comment><USER2> This is going to be revolutionary given the growing percentage of the web that's non-English.</comment>


Java retakes the top O'Reilly book rank in 2010 - <AUTHOR> http://radar.oreilly.com/2011/02/2010-book-market-4.html

<comment><USER2> I have been programming since the early 1960s (as a kid, I got access to timesharing basic on the arpanet) and am generally a diehard techie. Just my opinion but the JVM platform is probably the "big event" software-wise (comparing it to object oriented programming, relational databases, Lisp Machines, etc.) in my lifetime.

Since Java is still the main language for the JVM, I am not surprised that Java books are still popular even though the language is getting long in the tooth.

<comment><USER3> hmm, the VM concept dates back to 1966 (<http://en.wikipedia.org/wiki/P-code_machine>), though of course the JVM was the first to achieve wide adoption. I hear there've been many advancements in VM technology in the JVM, esp for JIT compilation, and (I don't know but) possibly these could be fundamental.

I keep thinking of Alan Kay's claim that nothing significant has been invented in computer science in the last 30 years (since 1980): [http://stackoverflow.com/questions/432922/significant-new- in...](http://stackoverflow.com/questions/432922/significant-new-inventions- in-computing-since-1980)

</comment></comment><comment><USER4> I guess there are a number of people out there who are now studying Java so they can write code for Android?

<comment><USER5> A number of us use Java for web development as well. (GWT for example) Not to mention projects like Hadoop etc

<comment><USER4> Wouldn't scalable be much more suitable for hadoop?

</comment></comment></comment><comment><USER6> R is up 60%, SPSS up 9% [1]. I guess now would be a good time to get into the data business...

[1] <http://radar.oreilly.com/upload/2011/02/prog_lang_tree.jpg>

<comment><USER7> God I hope R eats SPSS for lunch.

</comment></comment><comment><USER8> If you look at [http://radar.oreilly.com/upload/2011/02/AllYearsLanguages.jp...](http://radar.oreilly.com/upload/2011/02/AllYearsLanguages.jpg), what Java did was no so much "retake the top" as "slide backwards, while watching the languages previously above it slide back further." One might go so far as to question whether "leadership" in a sinking market is a good thing.

</comment><comment><USER9> If you read the comments you'll find out that this data is for physical book sales across all publishers. Thus the decline of the overall market is almost certainly evidence for the rise of e-books (including books on demand like Safari) and not evidence that people are less interested in reading about programming languages.

<comment><USER10> I haven't been impressed by the technical offerings in the e-book market. The titles are there, but whether it's the particular reader device I have or the publishers fault, these books are terrible. Broken layout, slow load times due to large chapter sizes and counts, not being able to easily flip to different spots in the book, etc.

I'm sticking to dead trees for technical stuff.

(Novels, biographies etc on the other hand are great as ebooks)

</comment></comment><comment><USER11> No real surprises here, except perhaps the rise of Python and the decline of Ruby. Note this undercounts sales for books covering the smaller languages. A lot of these books are self published or sold outside mainstream channels and so won't show up.

<comment><USER12> Python sales where down 2010.

<comment><USER11> I was referring to the longer term trend over time, not just the difference between 2009.

</comment></comment></comment><comment><USER13> Is anyone else really surprised that C# is a close second to Java? I'm trying to think of why it would be so popular... the number of O'Reilly C# books? The culture of .NET developers? (mild sarcasm) The ubiquity of C#? Something else?

<comment><USER14> The last version of Java was released in 2006. Since then Microsoft has released two new versions of C#, two new .NET frameworks, two new versions of Visual Studio and a plethora of new libraries. People buy so many C# books because there is so much new stuff to learn.

</comment></comment><comment><USER15> Here is the Tiobe index, where again Java reigns: [http://www.tiobe.com/index.php/content/paperinfo/tpci/index....](http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html)

</comment><comment><USER16> These statistics are a bit contrived — that is, a lot is determinant on What O'Reilly decided to publish and promote in 2010.

Not going to spend the time to ferret out all the "recently published" for 2010, but I do not remember any notable PHP books - published. Granted, there were some, but they do not appear to be offering anything not already in existence, especially for a now mature platform.

Though, the decline of Objective C despite all the new titles might indicate that the iOS platform has peaked for now.

<comment><USER9> As is clarified in the comments, these statistics are aggregated for all publishers, not just O'Reilly.

<comment><USER17> <http://en.wikipedia.org/wiki/Nielsen_BookScan>

(edited to add: is the canonical source of this kind of data)

</comment></comment></comment><comment><USER18> Funny how O'Reilly's own "Learning Java" book hasn't been updated since 2005, though.

<comment><USER19> Well, in fairness, it's not like Java's been updated since about 2005 either :) Java 7 might be the Duke Nukem Forever of programming language releases</comment></comment>


Non-Universality in Computation: The Myth of the Universal Computer - <AUTHOR> http://research.cs.queensu.ca/Parallel/projects.html#Current

<comment><USER2> _Alan Turing was wrong._

Correction: Alan Turing was right, but if we redefine "universal computer" in sufficiently weird ways, Turing's results no longer apply.

In particular, while Turing was concerned with _machines computing functions_ , Akl is looking at _machines interacting with a changing environment_.

<comment><USER3> Thank you for that reply. I started reading his page and it was getting stupid. He almost deliberately seems to not want to understand the definition of a Universal Computer (by which he must mean a Universal Turing Machine).

It would surprise me if his example functions are actually computable. In his paper on the subject he comes up with a scenario in which a machine needs to compute a function of n variables that vary with time. He then places the restriction that reading each variable takes one unit of time so that once you've read the first one the value of the second one has changed and so you can't do the computation.

Then he goes on to say that if he supposes a computer capable of doing n computations at once he can get round the restriction he's imposed because he's able to read all the variables at the same time.

How is this supposed to make me think that Turing was wrong?

Having worked on software/hardware interactions quite a bit you actually see this sort of thing happen. Lots of data comes in on different ports and you need to read it all at the same time. This is solved by latching the data into a buffer which the CPU can read at its leisure.

But the fact remains that the function you are computing is actually computable (he gives the example of summing the data). He's just produced an artificial restriction on the computer being incapable of reading the data fast enough. His n-processors is a complicated way of solving what we solve with buffers.

And also who said there's a lower bound on the per-instruction speed of a Turing Machine. Sounds like this guy just needs a faster machine. After all a Turing Machine is an abstract idea, so let's just redefine it's operating speed by a factor of n and his function becomes computable.

<comment><USER4> _How is this supposed to make me think that Turing was wrong?_

Akl would certainly not claim that "Turing was wrong" -- the submitted title is obvious flamebait.

 _He's just produced an artificial restriction on the computer being incapable of reading the data fast enough._

Well, he is assuming a different model of computation. Whether it is "artificial" or not is debatable: in an actual physical system, you can't pause the world, fix all the inputs, and then compute for an arbitrary length of time.

In any case, this is theoretical work: investigating the nature of computation under a different set of assumptions is perfectly valid, and I think it's very interesting.

 _let's just redefine it's operating speed by a factor of n and his function becomes computable._

For a given function, sure. But unless your machine can perform an infinite number of computations per time step, no machine will be fast enough to compute all possible functions, which is the point.

(BTW, I took some classes with Akl as an undergrad. He's a very sharp guy, and a great professor -- and definitely not a crackpot.)

<comment><USER5> >>> For a given function, sure. But unless your machine can perform an infinite number of computations per time step, no machine will be fast enough to compute all possible functions, which is the point.

I mentioned this somewhere further down in the comments, but a machine that could perform an infinite number of computations would break Turing's proof of the undecidability of the halting problem over Turing machines. That probably furthers Akl's claim.

I most definitely think this is interesting in that it is a new set of assumptions about what a computer is and what it should be capable of doing. All we have to do now is define a new (probably recursively-defined) automaton capable of infinite growth in it's possible inputs.

Then again, if a computer had an infinite amount of inputs, that raises even more interesting questions about what problems possibly then become decidable.

</comment></comment></comment></comment><comment><USER6> This appears to me to be a little (or in fact a lot) crackpotish.

A universal machine with capable of n operations per time unit can be simulate a universal machine capable of n+m operations per time unit. It's just a bit slower.

His argument seems to be that this will make it so slow that that it won't be able to keep up. Which is just stupid.

The Church-Turing thesis says that a universal machine can simulate any other computing machine given infinite memory. It doesn't say anything about how fast it will be :p

Maybe I'm misunderstanding this guy and he's not saying something so completely and utterly stupid. Anyone who wants to correct me please do...

<comment><USER7> He seems to be misunderstood. Which is no surprise since he's into unconventional computation - whatever that is[1]. He's well published[2] and has chaired at least one conference on unconventional computing[3]. So that's more than I can say about my career in theoretical computer science. I suspect having unconventional thoughts alone will create some dissonance in related communities. Similar to what Doron Zeilberger gets for his beliefs in Ultrafinitism.

I agree that Akl is talking about a very specific circumstance of UTMs. How many thousands of Mathematicians and Computer Scientists have read that paper in the last 60 years and verified it? If there were ever going to be any true challenge to UTMs it had to be obscure and weird like this. That doesn't mean that I believe he's right, but I don't think he's a crackpot just unconventional.

[1] <http://en.wikipedia.org/wiki/Unconventional_computing>

[2] [http://research.cs.queensu.ca/Parallel//publications.html#Pu...](http://research.cs.queensu.ca/Parallel//publications.html#Publications)

[3] <http://en.wikipedia.org/wiki/Selim_Akl#Conferences>

<comment><USER6> Your right, I probably shouldn't be so quick to call someone a crackpot.

But still, unless I'm very much mistaken all he's doing is done is to expand the definition of "able to compute a function" to include "able to run fast enough to gather the input data for a function". That might be a useful definition for some things but to use that to claim that "Turing was wrong"?

</comment></comment></comment><comment><USER8> Turing machines are constructed in a closed, static universe. This guy says that if you need to deal with a source of changing data, turing results don't apply. This is both obvious and important to state, although not with as much verbiage.

<comment><USER9> Expanding on that, it should also be pointed out that this is well-known as being among the list of assumptions that prevent Turing Machines from working in the real world. We speak of "steps", but they do not have any actual relationship to "time". The tape has no obvious relationship to "space", either.

So, right off in the first sentence "I have recently shown that the concept of a Universal Computer cannot be realized.", I thought "well, it's hardly like that's a _challenge_..."

There's actually some interesting theory here, I think, but it's only obscured by being wrapped in rhetoric about Church-Turing being wrong and such. All mathematical theorems include a set of assumptions, and it's not news that if you change the truth of the assumptions the theorems may stop holding.

</comment></comment><comment><USER10> Look at it this way: imagine you have a server that's totally maxed out (CPU- bound), 24 hours a day. If you add just one more connection to its load, it won't be able to handle it. No matter how long you give it, it'll just fall further and further behind. The requested pages are uncomputable! A faster computer, on the other hand, will keep up just fine, and finish all the computations.

This isn't how computations have been traditionally defined, so that's why it seems so unintuitive. But, he's right nonetheless.

<comment><USER11> The server will get further and further behind, but you can not give it work it will never finish.

<comment><USER10> Sure, you can. The work is "handle 350 requests per hour".

<comment><USER12> Turing's computer was an idealized human - to him, computers were humans who did computations for a living - who were granted infinite time and tape - that's the idealization - to solve exactly one problem. Anything that talks about "x problems per hour" has nothing to do with what he said.

</comment></comment></comment></comment><comment><USER13> Suppose that my "computing device" were a machine designed to build and program more copies of itself. This device would "compute" a function across n variables in time log n by building n-1 copies of itself, and then parallelizing the computation across them. With sufficient resources, this machine could could compute the function for any n in finite time.

All the author has done is posit an ever-increasing volume of data, such that the rate at which the volume increases causes it to outpace the speed of the computation. It seems that positing an ever-increasing computational capacity is a reasonable solution to this problem.

<comment><USER14> Your time complexity of log n appears from nowhere. It is entirely possible that the complexity of calculating the original function F was worse than polynomial in the number of variables, in which case a polynomial/linear increase in the number of machines could not reduce the complexity by more than a polynomial/linear factor, thus leaving the computational complexity worse than polynomial (e.g. exponential/super-exponential). I've made a comment further down that posits an idea similar to yours, though with a bit more precision.

</comment></comment><comment><USER5> Since when was there a minimum amount of time for a theoretical computer to do any number of computations?

I suppose that any computer must take some finite, non-zero amount of time to perform an "instruction", because if the amount of time per instruction is zero, that would violate Turing's proof of the undecidability of the halting problem over Turing machines. His idea does have some merit, but I still don't think that this means there cannot be a Universal Computer -- just that it may be something that operates on a level above a Turing machine. I'd imagine it would involve some sort of recursive structure.

</comment><comment><USER14> The way I see it, you could program a Turing Machine MF which has some finite "per-time-step" computation speed _n_, such that MF "knows" the following:

1: The general form/program for solving function F for any arbitrary number, _m_, of variables.

2: How to construct a Turing Machine MF' capable of performing _m_ "operations per-time-step", and programmed with 1.

Even in his crazy-town world of redefined computation, the Turing Machine MF is capable of computing any computable function F, of any number of time- varying variables _m_. I.e. given such a function F, MF simply creates a suitable machine MF' and copies the output of MF' to its own output. Thus, MF computes F, albeit by proxy. QED, etc.

It's possible that I'm now in some TM dual to his time-varying primal, but whatevs, I can do what I want.

ADD: As far as the computability results that I am familiar with are concerned, without loss of generality one could also just assume that all Turing Machines have infinite speed. The necessity of introducing the concept of a "time-step" into the definition of Turing Machines only occurs when computation time is actually of interest. Though, for complexity results one could still assume infinite speed, albeit the number of operations would still need to be counted.

</comment><comment><USER15> After reading Mr. Akl's website, I'm reminded of this recent HN post: [http://trc.ucdavis.edu/bajaffee/NEM150/Course%20Content/danc...](http://trc.ucdavis.edu/bajaffee/NEM150/Course%20Content/dancing.htm)

Also, I would be interested to hear what Stephen Wolfram has to say about all of this (<http://www.wolframscience.com/prizes/tm23/index.html>).

</comment><comment><USER16> <http://math.ucr.edu/home/baez/crackpot.html>

Do we need a CS equivalent?

</comment><comment><USER17> How does one go about showing that there is no way to solve such a problem?

What about the argument that perhaps the author was not clever enough to devise an algorithm which solves the problem he stated?

Perhaps when I read the papers I will be enlightened?

<comment><USER2> _How does one go about showing that there is no way to solve such a problem?_

With great difficulty. Usually the approach is to suppose that you have an algorithm and show that either (a) this algorithm allows you to do something impossible (e.g., solve a different impossible problem, or reach a contradiction); or (b) there are two different problems with different answers which the specified algorithm cannot distinguish between (this is generally only possible where you're proving that it's impossible to compute something in less than some number of steps).

The first approach is used for things like showing that the halting problem is impossible; the second approach is used for things like showing that it's impossible to have a comparison sort which runs in less than O(N log N) time.

<comment><USER17> Actually, now that you mention it I can recall these. Thanks for the refresher!

</comment></comment></comment><comment><USER18> Folks, the only problem with this article is the HN headline. Aki never claims Turing was wrong.

And I think he is demonstrating something rather interesting: that time dependence has a significant effect on the power of a computing device.

</comment><comment><USER19> Isn't this more or less the same issue as multiple infinities. Whole numbers are infinite but countable, but rationals are infinite and not countable. UTMs are able to compute the infinite but there are infinities that are not computable.

<comment><USER20> Rationals are countable but dense. You can biject Z * Z <-> N trivially (start from origin, spiral out) and Q can be constructed as a subset of Z * Z. Reals are uncountable.

</comment></comment><comment><USER21> I think Peter Wegner made this same point in the paper "Why interaction is more powerful than algorithms" in CACM (Volume 40, Issue 5, May 1997).

<comment><USER12> Yes, interactive computation is proven to be - statistically - more powerful than algorithmic computation - sometimes. It's also "less powerful" some other times, and since it's not computable _at which times_ interaction is "better", it's not a general advantage. But Turing never considered the case of interaction in his definition of computation, so Wegner is talking about something else.

<comment><USER21> Turing did in fact consider this possibility, and he instinctively knew that a machine that allowed interactions would be more powerful, but he couldn't prove it.

<comment><USER12> Just to make sure, I searched for "interaction" in "On computable numbers...", and it's not in there. And, like I said, in the general case, interaction is "more powerful" than algorithm as often as it is "less powerful".

Edit - Example: You're on "'Who Wants to Be a Millionaire?" You're in "algorithm mode" for most of the questions, but you're granted one "interaction", via a phone call. On the show, you're allowed to call anybody you want, and if you know to call somebody who's really clever, chances are that interaction will be more powerful than computation. But that's not the general case: the general case would be for you to call a random phone number, and chances are that won't help you - so, in that case, not more powerful.

<comment><USER21> Please look up <http://en.wikipedia.org/wiki/Oracle_machine>.

The purpose of a machine with interactions is not to be more intelligent, it is just to be able to execute a larger body of computations than a machine without interactions would. You can't model operating systems on Turing machines, for example, precisely because they need to interact.

This is from the Wikipedia entry on Alan Turing:

"In June 1938 he obtained his Ph.D. from Princeton; his dissertation introduced the notion of relative computing, where Turing machines are augmented with so-called oracles, allowing a study of problems that cannot be solved by a Turing machine."

<comment><USER12> Right, oracle machines are - or can be interpreted as - interactive. However, whatever it is that oracles do - it's often called "hypercomputation" - they're not doing computation, in the sense that Turing used the term in "On computable numbers...", which is why Turing couldn't prove that they are more powerful. The apparent - to me - problem here is that people use a definition of "computation" which is different from Turing's (which is alright), and then say that Turing was "wrong" in what he said about "computation" (which is not alright).

I actually think that operating systems are a good example of how interaction can be less powerful than algorithm - the "oracle" in this case might be a user, and the user might be new to computers, so that in this case the result of the interaction might be worse than if the "oracle" were another (non- human) computer, the interaction with which might in turn give a worse result than if _you_ were the "oracle".

<comment><USER21> The object of this study is not to prove that all forms of interaction are better than algorithmic computing, it is to prove that machines that interact during computation can execute a larger set of computations.

You also insist in factoring in intelligence, which is not at all revelant to this discussion. This is about which sets of functions can be executed with which machines.

Oracle machines are capacle of executing all functions that a Turing machine can (if you simply shut off interaction) and also all those that involve interaction. Having been proved that the latter set of functions is larger than the first, we can conclude that oracle machines are more powerful.

</comment></comment></comment></comment></comment></comment></comment><comment><USER22> Stopped reading at mention of "physical variable".

</comment><comment><USER23> He basically says that the UTM cannot run a TM in real time, so that makes it non-universal. It's pretty inane.

</comment><comment><USER24> this is crackpotery</comment>