Why mobile apps suck when you're mobile (TCP over 3G) - <AUTHOR> http://blog.davidsingleton.org/mobiletcp

<comment><USER2> There were plenty of wireless-optimized TCP replacements proposed back in the days when WAP and XHTML Mobile were the hottest things around, but none took root as operators, web servers and browsers needed to adopt them in tandem.

Now that smartphone apps are widespread and someone developing a service can control both sides of the connection, there's definitely room for someone to devise a really good TCP replacement (layered on top of UDP) with an iOS library, an Android library, and an Apache mod.

<comment><AUTHOR> I think this is a _really_ good idea. Startup? PhD thesis?

<comment><USER3> Do tell how you reckon a start-up could bring to popularity, let alone monetize a new Internet protocol?

<comment><USER4> We're not talking about replacing TCP as the standard transport protocol. But if you're a mobile app developer and you control both the client (via a native app) and the server you can use whatever you want. If someone provided client and server implementations of a more efficient networking protocol it could become popular.

I have no idea about monetization though. I doubt just charging for the code would work.

</comment></comment></comment></comment><comment><USER5> The problem for those of us on capped and/or expensive-per-kbyte mobile connections (in the UK that is everyone who doesn't spend a large chunk on their monthly contract - people on Virgin pay-as-you-go pat £3 for a day's access but IIRC you get cut off after 25Mbytes in that day) with restarting connections early is that the ~20 seconds worth of packets queued up during the blip is going to be sent anyway even though they are now no longer needed. 20 seconds worth of discarded packets could be quite a bit if you were transferring data at decent 3G+ speeds just before the blip.

</comment><comment><USER6> This is exactly what CouchDB, and Mobile Couchbase for Android and iOS, is designed to fix.

Networks are slow. Mobile networks are slower. The most robust fix to the problem is to "optimistically replicate" your application data to the end user's device, so that the network latency does not become part of the user experience.

This is a strong fit for applications like CRM or geographically constrained apps, as the data sets are small enough to fit completely on your devices. For larger data sets the issue becomes: which subset of the data should be copied to the device ahead of time.

The user should never needs to wait on the network. All data operations are played against the local Couch, which handles asynchronously transmitting changes to and from the remote server, in the background. This pattern makes it much easier for app developers to make responsive applications, where users are never left waiting on multi-second round trip times.

</comment><comment><USER7> Here's animation of the packets of a Facebook page hit over 3G on a moving bus: <http://vimeo.com/17248120>

</comment><comment><USER8> Very interesting and sheds some light on the weird latency issues I see here in Rwanda, where 3G issues aren't limited to being on moving trains. Sometimes pinging shows crazy return times of 30000-60000ms. Other times they're only 200-400ms but every other ping packet times out, i.e. one packet through, next one drops, and so on. Still trying to figure out exactly what's happening then.

<comment><USER6> Bufferbloat means when you refuse to drop packets, you get longer latencies: <http://www.bufferbloat.net/>

Why you'd have big buffers sometimes and not others, I have no idea.

</comment></comment><comment><USER9> It looks like this should be (at least partially) dealt with at the OS level especially if the OS in question is a mobile one.

</comment><comment><USER10> I'm in a start up that's developed techniques using UDP to allow someone to roam across wifi - in other words we have managed to reduce the tcp delays and time outs to provide consistent and reliable handoffs between wifi zones and devices - regardless what of the network provider. The technology also allows hot handover between femto and wifi too. Right now we're mostly focused on a mobile app to improve broadband delivery of content to mobile users in shopping malls, commercial zones, etc. but that's low hanging fruit. Eventually we believe that this can be integrated in mobile apps to let others us this for true mobility while running broadband services.

</comment><comment><USER11> The much worse problem is DNS. For big networks that pushes always the same two IPs (even without round-robin) it is a disaster. There are lags of servers, lags of network, dropped packets, useless overhead with EDNS and different packet sizes (timeouts and retransmitions) and above all, the practice by content providers and CDNs to use hundreds of changing in real time hostnames to implement load balancing and/or geoIP based assets loading. They use near zero TTLs which makes caching useless and dynamic sets.

Indian Airtel's network is a live example of that disaster. It is almost unusable, while they still actively promoting 3G and iPhones. ^_^

</comment><comment><USER12> Interesting, suggests a quick fix might be for the client to not use keepalive, or to selectively close connections that are very slow so as to start new ones. Potentially a much easier solution than writing a new transport.

</comment><comment><USER13> Don't worry, our Lisp startup (www.teclo.net) is fixing TCP over mobile networks, it will all be fine soon enough. :-)

<comment><USER14> perhaps you could explain a bit more about how you're solving the issue?

<comment><USER15> As noted elsewhere in this thread, the properties of wireless networks conflict badly with the design principles of TCP. We have a custom TCP stack that replaces some of the standard TCP algorithms with new ones carefully tuned for mobile broadband. It can act as a transparent proxy, presenting a standard stack towards the internet and a optimized one towards the radio network. The packet stream is still standard TCP though, so no client changes are needed.

The product is deployed in some >10Gbps networks, and shows very impressive gains for real live traffic.

<comment><USER14> thanks for the explanation :) does your layer only sit between the mobile and the point at which the network becomes a wired connection? like, just the other side of the cell towers?

<comment><USER15> No, it'd be somewhere in the core network. Ideally next to the GGSN.

</comment></comment></comment></comment></comment><comment><USER16> Interesting. I cannot stop thinking how cool it would be if Google actually decides to step in and propose an alternative protocol for mobile networks. If they put it in Android, they already have a huge base for adoption.

Ended up writing a piece on Google because of this on my blog: <http://micheljansen.org/blog/entry/1060>

(shameless plug :P)

</comment><comment><USER17> As an historical note, most of these concerns are the same expressed in RFC 3481 (category: BCP). You'll note from there that some of the issues are still open even if almost a decade has passed.

</comment><comment><USER18> Would Vint Cerf's recent work on a high-latency network standard for space[0] apply? Would it make mobile more useful? It's designed for latencies of days (not seconds), so it might be overkill. But something to masticate upon...

0\. <http://www.technologyreview.com/communications/21601/?a=f>

</comment><comment><USER19> This is partly why I'm so interested in publishing information at the DNS level (i.e. .tel) - you get to use UDP (or TCP failover), plus other awesome benefits. You can do other innovative things with DNS too.

<comment><USER20> Of course, that does depend on DNS having a protocol to run over. What we really need is a DWIW protocol suite at each layer.

<comment><USER19> Yep, but the point I was trying to make is that DNS over UDP works well today.

It's also worth remembering that most of the world has 2G connectivity. Heck, even I'm 2G most of the time (rural UK).

</comment></comment></comment><comment><AUTHOR> Dave Taht points out <http://www.bufferbloat.net/> which looks very interesting!

</comment><comment><USER21> Mobile HTML5 apps, the future is the past. :) Check ours out <http://infostripe.net>

</comment><comment><USER22> We should probably get these long round-trip protocol issues ironed out before we build our galactic internet

<comment><USER23> TCP is already out as a protocol for our galactic internet, see relevant comment from Linux TCP implementation:

        /*
         * [...] Note that 120 sec is defined in the protocol as the maximum
         * possible RTT.  I guess we'll have to use something other than TCP
         * to talk to the University of Mars.
         * PAWS allows us longer timeouts and large windows, so once implemented
         * ftp to mars will work nicely.
         */

<comment><USER24> I sincerely hope ftp is a distant memory by the time the University of Mars opens.

<comment><USER25> well, why not? Martian students will need to use _something_ to transfer files. Perhaps SFTP?

The International Space Station still uses Kermit! At least they did in 2003:

<http://www.spacedaily.com/news/iss-03zq.html>

</comment></comment></comment></comment><comment><USER26> Is there any way round this for HTML5 apps? I know you can save an app icon on iphone but when you launch it just launches safari which seems to make a network request to check if the site is up to date? (Sorry, I'm a bit naive about all this HTML5 stuff.) e.g. Gmail in safari on iphone is useless when you get long latency situations like this. Is there a way round that?

</comment><comment><USER14> anyone know what tool I could use to run a similar test?

</comment><comment><USER27> SCTP anyone?

</comment><comment><USER28> Not that his advice is bad, but these statistics are a bit biased. Trains make for some pretty unusually difficult channel conditions.

<comment><USER24> Trains moreso than cars/buses? Why?

<comment><USER5> Faster travel meaning you are passing in and out of cells more often, and you are more likely to be passing through areas with bad coverage either for man- made geographical reasons (a steep embankment between you and most of the towers in range for instance) or because your route is more likely to take a straight-ish line that may pass through a pretty uninhabited area that is ether completely unserviced by the cell network or where the only tower(s) in range are some distance away. Also if you are travelling by bus (and to a certain extent by car) you are more likely travelling a shorter distance than if travelling by train so are less likely to be passing through areas that are badly served because there is no money in the networks serving the two local farmers as well as they serve a small town.

<comment><USER29> Trains also dampen the signal. Many German high speed trains have repeaters but those don't yet (hopefully!) work with UMTS. Cars and busses have admittedly the same problem but maybe to a lesser extent.

<comment><USER5> Cross Country trains (what was Virgin's bit of the rail franchises) are worse for this than anything else on the UK rail network. I'm told it is due to a combination of the materials in the construction of the carriage frame, and the anti-glare layer in the windows. If you are at the end of a carriage, signal strength/reliability seems to jump a bit when you are sat at a station and the doors are open.

Other trains don't seem nearly as bad. I'm not sure how much of that is due to different construction or (in the case of other modern(ish) rolling stock) anything like the repeaters you mention (though as all the franchise owners are cheap-arses I very much doubt that tech has been paid for by any of them!).</comment></comment></comment></comment></comment>


Free, easy, automated HTTPS for Node.js - <AUTHOR> https://github.com/DylanPiercey/auto-sni <comment><USER2> Recently I've started using letsencrypt to generate certs for our web servers. Even on FreeBSD, which LE considers an "experimental" platform and not yet fully supported, using LE was a breeze, and worked without a hitch.

This project looks interesting, and seems like it should be pretty simple to set up. Since it appears http.createServer() and auto-sni.createServer() have the same interface, there shouldn't be a problem using it, assuming no significant glitches show up.

Currently our node servers run behind nginx, which has effectively managed http->https redirect, establishing TLS connections, etc. Depending on the situation, conceivably doing it all in node itself could be a reasonable approach.

<comment><USER3> _> Currently our node servers run behind nginx, which has effectively managed http->https redirect,_

I'm considering trying [https://caddyserver.com/](https://caddyserver.com/) for that as it has LE automation built in (though you might find there are similarly easy integration options for nginx too). I like the idea of dealing with SSL via reverse proxy and not needing anything in my application code to care.

<comment><USER2> LE is working on automating installation of certs on nginx, but not ready yet. Not a big deal though. Once I had LE set up, needed to edit only 2 lines in nginx config to point to the LE certs location. So when LE certs are renewed, nginx will use them automatically and nothing else needs to be done.

> I like the idea of dealing with SSL via reverse proxy and not needing > anything in my application code to care.

Yes, a good reason to reverse proxy, also, besides TLS there's HTTP/2, and running multiple web servers, etc. on the same machine...

</comment></comment></comment><comment><USER4> Creating a Letsencrypt certificate manually could be quite a pain so its nice to see most of it automated. We should see many Node.js host that automate the SSL certificate creation and installation process for their customers.

Juts for information purposes, a list of host that supports Letsencrypt is being maintained here: [https://github.com/letsencrypt/letsencrypt/wiki/Web- Hosting-...](https://github.com/letsencrypt/letsencrypt/wiki/Web-Hosting- Supporting-LE)</comment>


How to print an electric motor - <AUTHOR> https://spectrum.ieee.org/geek-life/hands-on/how-to-print-an-electric-motor <comment><USER2> On a similar note, Fishman produce a range of electric guitar pickups that use stacked PCBs for the sense coil, rather than the traditional loop of enamelled copper wire. It's not necessary (and it's undoubtedly more expensive), but it gives them far more precise control over inductance.

[https://www.youtube.com/watch?v=oZSS13d3vZs](https://www.youtube.com/watch?v=oZSS13d3vZs)

[https://www.fishman.com/products/series/fluence/](https://www.fishman.com/products/series/fluence/)

<comment><USER3> Uh ... cool! He says "48-layer circuit board", so my initial guess is those are not super-cheap, no. I think a regular PC motherboard (which is not a very simple board) has 8-10 layers. 48 is a lot.

</comment></comment><comment><USER4> Another cool video of a high performance 3D printed halbach array brushless DC motor:

[https://youtu.be/YsSm65DAcCg](https://youtu.be/YsSm65DAcCg)

The author posted up all his design files and has extensive documentation and instructions.

(Note that most of the housing is 3D printed while you still need bearings, coil and magnets etc). But still very cool what is possible and opens endless customization opportunities.

<comment><USER5> Very neat. I wonder how the small magnets are retained when the rotor is stationary. The big ones slide in but the small ones are just pushed into place. Once the whole thing is moving they get pushed out but when it isn't moving the stator will suck them in.

<comment><USER6> I'm assembling this right now, and the stator doesn't pull them out - it seems like the magnets on either side help keep them in place.

</comment></comment></comment><comment><USER7> > "I've been able to almost double it by adding a ferrite sheet to the back > side of the stator coils to contain the coils' magnetic field lines."

I never heard of a ferrite sheet, completely awesome! I liked the article, but IMO the title is a little misleading. What I gathered is that he 3d printed the rotor only. I'm assuming the actual 4 layer pcb was etched. The rotor was still wound manually. The hall sensor still soldered by hand.

The _print_ notion implies production automation, which is my only gripe. His hackaday has a more accurate title "PCB Motor".

<comment><USER8> doesn't PCB stand for "Printed Circuit Board"? So it's still mostly printed.. The rotor is 3d printed, and the stator is manufactured via PCB techniques. I understand what you mean regarding it not being totally printed though.

<comment><USER9> While "PCB" does mean "Printed Circuit Board", it's kind of a misnomer. The word "printed" doesn't really accurately describe the process used to make PCBs.

<comment><USER2> They're standard printing techniques, just not "squirt something out of a nozzle" printing. With the exception of drilling and through-hole plating, the processes used in PCB manufacture would be entirely familiar to any experienced printer.

</comment></comment></comment></comment><comment><USER10> There's also a related but different type of pcb motor that relies on the piezoelectric effect instead of magnetism: [https://www.youtube.com/watch?v=uFZsH62ewYo](https://www.youtube.com/watch?v=uFZsH62ewYo)

</comment><comment><USER11> Fascinating motor design. I wonder how much torque is lost using a hall sensor vs backemf. It is my intuition that backemf would be more precise than hall sensor, but I don't know much about motor design. Would it be worth adding circuitry to amplify the backemf signal?

</comment><comment><USER12> I doubt the claim that printing a coil on PCB is cheaper than winding wire coils. At any rate you have to print the design on PCB , etch it join those double side PCBS. It cannot be cheaper.

<comment><USER4> You can build a coil winding jig to automate the winding process too..

<comment><USER12> Yup absolutely, plus the amount of conductor you can use is limited on a PCB. It is cool but not cheaper.

</comment></comment></comment><comment><USER13> Instead of using permanent magnets, why not create two PCBs which rotate wrt eachother?

</comment><comment><USER14> That's actually a really big deal, right? If we can 3d a motor were way closer to a self replicating 3d printer.

<comment><USER15> The only thing actually 3d printed here is ridged container for holding the permanent magnets in place. PCB electromagnets are not new and multilayer interconnect PCB boards have been around for 30 years. A real 3d printed electric motor would be quite a feat indeed.

<comment><USER16> That has me wondering if kind of a hybrid solution could work, like a 3D printer that can also pick and place components mid-print. That could be a reliable way to deal with the permanent magnets, since presumably there isn't going to be a way to print out any material that would magnetize itself reliably.

<comment><USER14> I think there's a way to make motors without permanent magnets

<comment><USER15> Indeed. An electromagnet is a magnet! However usually these are quite weak even with iron cores.

<comment><USER5> Quite weak? Electromagnets can be as powerful as you want in a given space provided you can cool them and you can avoid saturating the core.

<comment><USER15> I more mean in reference to using them as an opposing magnetic field for using in an electric motor. Like suppose he simply put two PCB electromagnets together. What would you expect the force to be?

<comment><USER5> I'm sorry I read your comment as a general statement on electromagnets. Yes, two PCB based electromagnets are not going to be able to make a very dense magnetic field. The major reason is that the current carrying capacity and cooling will be lousy. But a sizeable electromagnet made from a copper coil and a half decent core material will happily lift your car.</comment></comment></comment></comment></comment></comment></comment></comment>


CPU core estimation with JavaScript - <AUTHOR> http://blog.wg.oftn.org/post/51125082905/core-estimator <comment><USER2> This is really difficult to do. For a number of reasons, speed does not necessarily scale proportionately with the number of cores:

(1) Intel Turbo Boost, which will run a single core at higher frequency than multiple cores (to make matters worse, this is also dependent on the CPU's temperature).

(2) Hyperthreading giving you anywhere between a x2 and no speedup depending on what your code is doing under the hood.

(3) NUMA giving, well, non-uniform speedups for some memory access patterns.

(4) Background processes occupying 1+ cores.

</comment><comment><USER3> On 3 different Lenovo T420's (dual-core i5 with hyperthreading):

      * Linux Mint 14 (x64): 6 cores
      * Arch Linux (x64) machine #1: 6 cores
      * Arch Linux (x64) machine #2: 14 cores

And on a HP desktop, also dual core i5:

      * Windows 7 (x64) on Firefox: 3 cores
      * Windows 7 (x64) on IE: no result at all, demo hangs

Back to the drawing board I'm afraid...

<comment><USER4> Thanks for the results it really helps us. We have a lot more planned to improve Core Estimator's accuracy coming up.

<comment><USER5> on my i7 (4 physical, 8 virtual cores, win xp 64bit, opera), it's now at 256 cores and testing for 512.. no end in sight ^^

<comment><USER4> ernesth and I have the same problem on Opera. I'm looking into why that is.

<comment><USER6> Might it be because Opera doesn't use multiple threads for web workers?

</comment></comment></comment></comment></comment><comment><USER7> Dual core Intel Core i5 MacBookPro8,1 running Chrome 26.0.1410.43 (OS X 10.8.2) - lots of tabs open. The script varies between 1 and 4 cores. Usually 1 core.. More chance of calculating 3 or 4 cores if I scroll up & down rapidly.

</comment><comment> ah- Well, it said 9 cores on my laptop with 2 (plus hyperthreading, so 4).

But why even try to estimate the number of cores? Just call it a benchmark that tries to find the number of threads you should run.

<comment><USER4> On some machines it is likely that the result you get the second time will be different from the first.

And you're right, we designed the script to find the optimum number of web workers to use in parallel, that's what it's primary purpose is. But we also want to drive adoption of navigator.cores so we decided to call it a core estimator.

</comment></comment><comment><USER8> There are usually a lot of random stuff happening on the average user's machine. Could an anti-virus scan start in the middle of this test and fudge up the result?

<comment><USER4> Yeah. There are a lot of outside influences that can affect the results of the estimation. Unfortunately this is the only way to go until browsers vendors adopt navigator.cores. Future versions will be able to cope better with this by taking advantage of localStorage on the user's machine and averaging it out.

<comment><USER9> In the long run, an API like navigator.cores is not what we actually want. How do you count cores in a world of SMT, shared caches, shared memory, and unrelated processes? Ideally, we want a higher-level API which allows the underlying system to dynamically adjust the level of parallelism.

</comment></comment></comment><comment><USER10> So this 10 second test is supposed to run... When a page loads? It's a good effort, but we really need a native solution to this issue. Or maybe just approach it by dictating 2 cores minimum (most modern day computers are operating at least two cores).

Also, I thought browsers didn't offer more thread access...

<comment><USER4> In practice, when people use our library, we recommend that the test is called only when it's needed, instead of directly when the page loads. There are also other guidelines as well such as always allowing the user the manually edit the number of cores used in an app.

</comment></comment><comment><USER11> Demo does not seem to work in Opera _(1)_ : I have stopped it when it tried 512 workers (after 15 minutes). And since only one of my 2 cores was ever working, I doubt the result would have been accurate.

 _(1)_ : Opera 12.15, Debian GNU/Linux, Intel(R) Core(TM)2 Duo CPU U9600 @ 1.60GHz.

<comment><USER4> Weird. Core Estimator performs very strangely on Opera, we're trying to find out why.

</comment></comment><comment><USER12> Did not work very well for me, my 3930k at 4.5ghz was reported as having 3 cores. Monitoring the CPU usage it only seemed to effect the usage on a couple of the cores, most of them remained idle while the test was running.

Edit: worked quite well on my nexus 4. Got 4 cores on the first test.

</comment><comment><USER13> My iPhone 4S came back with 2 cores consistently. It took ~25 seconds each time.

If the goal is to find the sweat spot for an algorithm, wouldn't it be best to ran several small tests of the specific algorithm with different optimization values?

</comment><comment><USER14> This thing crashed my PC, that's why I'm waiting for Haswell so I can buy a new one.

</comment><comment><USER4> I'd be interested to know who is getting very close to accurate results on their machines. (Being off by 1 or 2 is not a big deal since CPU availability is more important to a developer than the number of CPU cores)

</comment><comment><USER15> Accuracy aside, which I'm sure can be improved to a certain degree, I don't think this is a desirable property for a browser to expose to javascript. Just because a node has a certain number of cores doesn't mean they're available to javascript, or that they even represent a realistic picture of what the machine has.

As other people have pointed out, things like Intel speed boost change the performance characteristics of the machine, and things like virtualization can flat-out lie about the capacity of the machine.

It seems like a far more preferable solution is to lightly parallelize based on generic defaults and let the OS handle switching, instead of trying to outsmart the system.

</comment><comment><USER16> Windows 7 (x64), AMD A6-3650, (4 core Llano).

IE10: consistently 7 cores, 11.0 seconds; FF21: consistently 4 cores, unconsistently 15—17 seconds; Cr27: consistently 4 cores, 16.0 seconds.

</comment><comment><USER17> I don't see what's the point of including hardware details into the W3C/HTML5/Javscript Specification.

And secondly, the demo said my old T7300 dual core would have 3 core.

<comment><USER4> If you read the blog you would know why this information is useful :)

Web workers make it possible to do parallel computation with JavaScript, and knowing the right number to spawn helps to make sure resources are being taken advantage of. We already have the ability to run JavaScript code on multiple processors, but currently, you can't tell where it's being run. For performance reasons, knowing the number of workers to spawn can make a big difference.

Secondly, it's called an estimator so it's never going to be perfect. It's a tool designed to give you some idea of what is going on.

<comment> ah- I don't think the number of cores is really useful for determining the number of web workers to run in parallel.

If you want to push for something, push for a mechanism that frees you from having to set the number of workers to spawn.

<comment><USER4> I did find this interesting piece of information.

> In a compute-bound application running on an N-processor machine, adding > additional threads may improve throughput as the number of threads > approaches N, but adding additional threads beyond N will do no good. > Indeed, too many threads will even degrade performance because of the > additional context switching overhead. The optimum size of a thread pool > depends on the number of processors available and the nature of the tasks on > the work queue. On an N-processor system for a work queue that will hold > entirely compute-bound tasks, you will generally achieve maximum CPU > utilization with a thread pool of N or N+1 threads.

From [http://www.ibm.com/developerworks/library/j-jtp0730/index.ht...](http://www.ibm.com/developerworks/library/j-jtp0730/index.html)

<comment><USER18> That's exactly what a threading library abstraction aims to do. For example the Intel TBB (Threading Building Blocks).

</comment></comment></comment></comment></comment><comment><USER19> This is one of many variegated reasons why I'm no fan of JavaScript (and the modern HTML/JS/CSS admixture).

Hoping (P)NaCl will pick up steam soon...

</comment><comment><USER20> Showed my OC'ed Quad Core as a Five Core processor.

Made me smile a bit.

Then I ran it a second time, got up to 32 cores, and the app crashed my browser.

</comment><comment><USER21> 5 cores on my samsung galaxy s3 (chrome browser), 2 on my mac book air (chrome browser)

</comment><comment><USER22> 12 core Mac Pro - estimated me at 61 cores. I wish!

</comment><comment><USER23> "Estimated 7 cores - Took 17.242 seconds."

I have two cores.

<comment><USER24> "Estimated 14 cores - Took 22.704 seconds."

i5-2500k 4cores - 4 threads.

</comment></comment><comment><USER25> useless apparently my 16 core mac has only 14 cores.</comment>


Facebook uses location to suggest new friends - <AUTHOR> http://fusion.net/story/319108/facebook-phone-location-friend-suggestions/ <comment><USER2> I'm not sure if it is either new or surprising.

I did an experiment some 3 years back from within a corporate network -- the difference being that it was done on a desktop, not mobile. The sequence of events was roughly:

\- Spin off a new VM

\- Create a brand new email address with fictitious identity

\- Sign up to Facebook using the newly created fictitious identity

Result: The suggested "friends" were folks in that building (who were on the same network).

(The experiment was performed to demo how creepy such networks are.)

<comment><USER3> Nice:)

</comment></comment><comment><USER4> How awkward would it be when the FBI agents parked in the van outside your house keep popping up on your suggested friends list?

<comment><USER5> Genius. Let's write that screenplay!

</comment></comment><comment><USER6> I don't understand why people use the Facebook native app at all. Their mobile website works quite well and should avoid many of the issues with the app (location sharing, battery drain, etc).

<comment><USER7> Facebook recently disabled their messenger platform on the website, when you click the messages tab it brings you directly to the app store to install their app. This means you have to use the App to message people. The app requires such egregious permissions that I absolutely refuse to install it. It's a shame because it worked perfectly in the past.

<comment><USER8> I've been able to use [https://mbasic.facebook.com](https://mbasic.facebook.com) from an Android device for messaging. Not ideal, but better than installing one of their apps.

<comment><USER9> If you have Chrome for Android (only browser/device I've tested this on) you can check request desktop site for [https://m.facebook.com](https://m.facebook.com). You'll stay on the mobile version, maintain all of the mobile functionality of the website plus access to messages without the download redirect.

</comment></comment></comment></comment><comment><USER10> I really thought this was already a well-established and known fact. I saw friend suggestions quite often after attending events where I ran into very loose acquaintances I never spoke to but share a few friends with. That by itself isn't too surprising, but the fact that this happens after we were geographically close led me to believe that this is common knowledge.

</comment><comment><USER11> Goddamned Facebook!! Creating environments filled with unintended consequences everyday of the week.

There are so many untrained, misguided, semi-literate people in the world, who just get thrown into these environments totally unprepared. It literally sickens me.

Sorry I woke up today morning to read this - [http://timesofindia.indiatimes.com/city/salem/21-yr-old- woma...](http://timesofindia.indiatimes.com/city/salem/21-yr-old-woman- commits-suicide-after-morphed-photo-appears-on- Facebook/articleshow/52948971.cms)

Parents get blamed. Police get blamed. Govts get blamed. Blame goes around. People get defensive rather than constructive. What a mess! Seriously how the fuck is anyone supposed to be prepared technically and socially to deal with this stuff?

<comment><USER12> That's a shitty story, but blaming Facebook for it seems a bit of a stretch. By that logic, photo editing software is responsible; computers; electricity, etc. A horrible society is definitley responsible for that one.

<comment><USER13> Yes, horrible society that overvalues a social networking site in every aspect in our lives.

</comment></comment></comment><comment><USER14> Linkedin does this too. It suggested that I connect with an academic copy editor. My only other connection? We sat next to each other at a co-working space. Of course Linkedin was not using geo-location. They must have noticed that we were both on the same network.

<comment><USER15> I can't think of a single reason to use LinkedIn's native app.

<comment><USER16> linkedin's IP based tracking includes their website, and doesn't require you to share your location through the browser. They've been doing that for years. If you share a network gateway with someone, LinkedIn will suggest that person as a contact.

</comment></comment></comment><comment><USER17> > Facebook uses location to suggest new friends–which could be a privacy > disaster

No, the privacy disaster happened when Facebook was allowed to collect all that data in the first place.

</comment><comment><USER18> What if I moved out from a neighbourhood because I had enemies there, we didn't like each other? Now I'm coming back to my parents house and facebook reminds me about them and them about me?

<comment><USER5> Do you have enemies? Does a typical person have enemies?

<comment><USER19> It's not unheard of to have people in your extended network who you would rather not have alerted to your whereabouts. Examples: abusive ex, clingy co- worker, mother in law, etc. "Enemy" is a rather melodramatic term but you get the idea.

</comment></comment></comment><comment><USER20> I don't expect anything to Facebook when it comes to privacy.

<comment><AUTHOR> Well, there are several levels of non-privacy to expect:

      - Facebook collects data about me
      - Facebook shares my data with big corporations who want to sell me stuff
      - Facebook shares my data with my friends
      - Facebook shares my data with people who aren't my friends

For many people, this is a surprising escalation of their expectations. For some, it is outright dangerous.

<comment><USER21> Because people expect services as robust and useful as Facebook to be free? Based on how much time people spend using their service, the user's data is hardly a large price to pay. Have certain types of things you like, profession, education, gender, demographic and expect your profile able to be targeted (anonymously) with advertising. Share something public (including anything above), expect any corporation to be able to see or mine it.

<comment><AUTHOR> I think your comment is in line with mine. Many people think they are making a trade-off: The use of the service in exchange for data that corporations can mine.

Some even consider this a win-win, as they believe that they will receive advertising for things they may actually want to buy.

However, not everybody expects the data to be shared with other users of the service. This is why I suggested that this may be an unexpected escalation of expectations. Facebook is quite transparent about sharing your data with advertisers.

It is less transparent about sharing your data with other individuals.

</comment></comment></comment></comment><comment> guard-of-terra Just yesterday somebody warned that Facebook does location-based friends suggestion (was suggested to friend a taxi driver) and promptly accused to be tin foil hatter.

That's just how it goes every time.

</comment><comment><USER22> They probably aren't using location but IP block. In fact, I'm almost certain your IP block is used for both suggested friends and your Newsfeed.

I used to see my coworkers all the time in my Newsfeed, but now that I don't work there (and therefore we don't share an IP anymore) I suddenly started seeing them a lot less.

I go to their page and see they are posting, and after interacting with a few posts they started showing up again, but I have to go to their page and interact every few weeks to get them to keep showing up.

Also, whenever I go and visit the old office, if I use Facebook there, all of a sudden I get them all showing up in my Newsfeed again.

</comment><comment><USER23> "Location information by itself doesn't indicate that two people might be friends" \- interesting, and guessing it was IP based so they might put more weight behind it, but I keep getting this for an ex-housemate. Nothing else in common, no common friends, just the fact we were both regularly in the same place/same network.

<comment><USER24> The man from the article attended a common event with the other man who appeared on his friends suggestion list. Maybe facebook has a rule that if the event is small, the attendees can be assumed to have met IRL.

</comment></comment><comment><USER21> I love it. I've wished this feature implemented for quite some time.

</comment><comment><USER25> They also suggest friends based on who has viewed your profile.

</comment><comment><USER26> Or it may result in real-world friendships.

Too bad I don't have the Facebook app installed any more.

</comment><comment><USER27> i never use facebook on mobile devices, i have a different "supervised" profile on Chrome for facebook use and nothing else.

i use it because of how many people are on there, but i wont let them snoop on me

<comment><USER2> Do you need anybody else to snoop upon you if you're using Chrome?

Has Google stopped identifying a given Chrome installation using unique IDs?</comment></comment>


How the NY Times Ripped Off My Blog Post - <AUTHOR> http://ventureminded.me/post/7758877164/thank-you-ny-times

<comment><USER2> I don't see this as any kind of proof whatsoever. 2 people -can- have the same idea, especially when they're both inspired by the same event. Google+'s launch obviously inspired both of them to have the same idea.</comment>


Would Human Extinction Be a Tragedy? - <AUTHOR> https://www.nytimes.com/2018/12/17/opinion/human-extinction-climate-change.html <comment><USER2> It'd definitely be a tragedy for any company with an ad-based revenue stream.

</comment><comment><USER3> Not really - i guess.</comment>


Show HN: Save Memory in Google Chrome - <AUTHOR> http://www.one-tab.com <comment><USER3> Memory use seems like a really pointless thing for users to care about. There's a widespread intuition that using RAM is inherently bad and low memory usage is a worthwhile goal, but it doesn't really make sense. The key performance goal is minimising latency, which is best served by using as much RAM as possible without having to swap out.

RAM is now fantastically cheap. 16GB of DDR3 costs less than $120 in either DIMM or SODIMM format, so there's little reason not to load out your machine with far more memory than you'd practically need.

I'd like software to use _more_ memory, not less - for the vast majority of the time, most of my RAM is unused and my disk is idle, so why not use an aggressive strategy of pre-emptive caching?

<comment><USER4> I have 8gb. There was a time when 1gb was more than enough. Now you're saying I should have 16gb -- and you're right!

This is Not A Good Thing. This is people throwing every last feature -- even if it has a pile of 800kb of DLLs/SOs attached -- into every app, with no regard for memory.

I find my system thrashing almost daily at this point. I need to upgrade. Two years ago, running predominantly the same software, 4Gb was just barely not enough, and I upgraded to 8Gb. And two years before that, cut the memory requirements in half again. And again, and again, until you get back to the 1Mb of RAM I had in 1990.

There has been a trend to do exactly what you say you want for 30+ years. And you know, some of that extra memory has been used to great effect -- we can do a ton more now than we could in 1990. But a lot of it is wasted, just Because It's Easy.

And that wasted RAM means pointless upgrades every two years; 99% of the bloat at this point is for something I don't need or want. The ONLY valid reasons to need 16Gb+ are if you're actually using that much data in one place -- a server that needs to scale, for instance, or editing video, or maybe a game that uses crazy amounts of data and/or video.

That the same apps are bloating 2x every two years -- and as a result get slower, since hard drive and memory speeds certainly aren't doubling every two years -- is really unacceptable laziness on the parts of companies and developers in general. It's pretty much the opposite of a Good Thing.

<comment><USER5> 8GB of RAM is about $50 right now. If you have to replace that every $2 years, are you really complaining about the cost of $25 per year on your $1,000 computer system? It's a rounding error.

Chrome, in particular, is generally be used for far more tabs (I have like 30 open right now on a MacBook Air) and increasingly complex web sites every year. It's easy to look at memory usage and complain, but the fact is that our usage and the size of the pages we're loading is also rising rapidly. If you loaded Chrome from two years ago and used it how you work today, you might not find the memory footprint that much better than the current version.

<comment><USER6> >If you have to replace that every $2 years, are you really complaining about the cost of $25 per year on your $1,000 computer system?

That's assuming you're using a computer with user upgradeable RAM, and not a new macbook pro.

<comment><USER7> If it's not upgradeable then it's disposable. Get the new one next time.

<comment><USER8> You say that as if MBPs have no resale value.

The ram upgrade procedure for the new MBPs is backup, Craigslist, Apple Store, restore.

</comment></comment></comment></comment></comment></comment><comment><USER9> This is the equivalent of closing all tabs, with the added bonus of having a list of what you just closed.

I refuse to compromise on functionality because Chrome can't get its memory deal together.

<comment><USER10> Firefox seems to be no better: <http://www.arewesmallyet.com/>

<comment><USER9> Thats alright. A single chrome tab is regularly >150MiB, and thats for plain sites!

(edit: this seems to measure the size of the installer binary. I think you wanted to link <https://areweslimyet.com/> which shows Firefox using <512MiB with 30 tabs for popular websites open)

<comment><USER10> Yes, you are right. That's the one I was aiming for. Need more coffee...

</comment></comment></comment></comment><comment><AUTHOR> OneTab developer here: thanks for all your suggestions, I'll be working on them :)

A few FAQs:

1\. The OneTab tab persists even if you close your web browser. 2\. If you ever close your OneTab tab, this doesn't lose your tabs. You can always get it back by clicking the blue extension icon. 3\. Your tabs are never sent to our servers unless you press the button to 'share as a web page'.

<comment><USER11> In what scenarios can I lose my list?

What happens if I click it, close it's list tab, open some new tabs and click it again? Does the old list get overwritten? Is there any way to get it back?

<comment><AUTHOR> You will never lose your list. If you store multiple sets of tabs, they will appear as "tab groups" in OneTab.

If you accidentally close your OneTab tab, it will reappear when you click the blue extension icon or when you restart your web browser.

<comment><USER12> Brilliant! You should mention this on the site, it what I was looking to know.

</comment></comment></comment></comment><comment><USER13> Installed. This is pretty nice for the people who uses dozens of tabs as temp bookmarks.

A bit of feedback: I was just typing this comment and hit the button, obviously the comment was lost and had to type it again. Would be great if if checked for focused inputs or textareas or something before closing that tab, or that it restores the tabs them with the content.

Another idea I can think of is to "close" all the tabs that are NOT the one you currently are in, or "close" all the tabs on the right of the current one.

Anyway, thanks

<comment><AUTHOR> Thanks, it's on the to-do :)

</comment></comment><comment><USER14> For a free product, the copy on their site feels a bit more "salesy" than I'm used to for a free product

<comment><USER15> I agree. It was the _How do you make money?_ that made the whole page feel a bit.. _off_.. for me. I think taking it out would make it less confusing.

<comment><USER16> Not for me. It answered exactly the question I had in mind. I love the effort they put into the "salesy" page. I don't see why "salesy" is inherently bad. It sells well, even if it is free.

</comment></comment></comment><comment><USER17> I think that this 95% number is wrong. Likely doesn't take good old shared memory into consideration...

[http://blog.chromium.org/2008/09/google-chrome-memory- usage-...](http://blog.chromium.org/2008/09/google-chrome-memory-usage-good- and-bad.html)

"Measuring memory

If you're measuring memory in a multi-process application like Google Chrome, don't forget to take into account shared memory. If you add the size of each process via the Windows XP task manager, you'll be double counting the shared memory for each process. If there are a large number of processes, double- counting can account for 30-40% extra memory size."

</comment><comment><USER18> Edit: This is not meant to sound discouraging to the developer; I just suspect he solved the wrong problem.

I find it very strange that a tool exists to reduce chrome's memory footprint by closing tabs. This does not seem to be the right solution to any problem I can think of.

If memory consumption is what bugs you, maybe you should use a browser that consumes less memory per open tab.

If the number of open tabs is what bugs you, then you are probably using tabs as temporary bookmarks. There should be tools especially for this job. Some sort of "read-it-later" list comes to mind.

"one-tab" looks like some sort of read-it-later list that is labeled as a memory saver. Fascinating.

<comment> T-hawk That's exactly what it is, a read-it-later list. Browsers don't have a good mechanism for that. Not open tabs, which continually consume memory and CPU resources until you get around to them. And not bookmarks either, which are meant for permanent storage, subject to the clunkiness of navigating a folder structure and explicitly performing every add and delete operation.

So in a sense, One-Tab is indeed a memory saver. Not by really reducing Chrome's memory usage, but by plugging the workflow gap that induces users to use Chrome in a way that consumes enormous amounts of memory. (And the selling tactic sure worked, seeing as there's 200 posts on it here in two hours.)

</comment></comment><comment><USER19> Oh hey! I built something similar a while ago, for somewhat similar reasons: "Pause Tabs" ([https://chrome.google.com/webstore/detail/pause- tabs/gldljdh...](https://chrome.google.com/webstore/detail/pause- tabs/gldljdhnehlgmkncfenmgfjblmmcjgce)).

The use-case is _slightly_ different, though--instead of being an en-masse "dump these things out of my sight" button, I basically wanted a single-page "bookmark" that works more like the real kind you use in books, where the two fundamental operations are:

> "Open, remove the bookmark, and restore reading to previous position, > atomically"; and

> "Save position, create bookmark, and put away for later, atomically".

If you want, though, it can still give you the same effect of "hammer the button to 'put away' a window's worth of tabs."

On the other hand, the bookmarks Pause Tabs creates [despite just being regular bookmarks] preserve of your vertical-scroll position on the page, which is kind of nice for long documents. I wonder why that isn't a "built-in thing bookmarks are just expected to do", actually.

</comment><comment><USER20> I _absolutely_ fail to see the point here. Why should I use this? Is this again one of these instances where, magically, free RAM is good?

30 tabs opened simultaneously (with AdBlock, Ghostery and Disconnect), alongside Thunderbird, Emacs (+daemon) and a full DE run up to 1.8GiB of RAM used on my machine, which is everything but fast, new, or fancy. Consequently, I still have 2GB of RAM remaining that are not directly needed (and hence used for caching by the OS).

I'm writing all this from a Core2Duo laptop, so really, when exactly does any computer bought at the same time (or since) have _actual_ problems of running out of memory? I have not experienced such problems in _years_ on anything other than a Raspberry Pi. Is this a problem that really needs solving?

Feel free to point me to use cases where this is essential or useful, for I cannot see any.

<comment><USER21> Well, yay for you. As I posted in the Firefox thread, when I checked this morning I had 16 tabs open using 2.6GiB of memory, and that without the using websites like Facebook and Twitter that I've found to be memory pigs in the past. I use AdBlock, maybe Ghostery and Disconnect are magic?

In general, my machine has 8GiB of RAM and low-memory thrashing / out-of- memory errors are pretty much a daily occurrence. They're certainly not all Chrome's fault, but I don't think it is helping matters any.

<comment><USER20> My post was in no way meant to be _boasting_ , quite the contrary, it assumes that my computer is on the lower end of what will be widely used, especially here on HN.

> In general, my machine has 8GiB of RAM and low-memory thrashing / out-of- > memory errors are pretty much a daily occurrence. They're certainly not all > Chrome's fault, but I don't think it is helping matters any.

I suppose the choice of operating systems has to do with this as well, since a browser can only do so much if the underlying OS handles memory allocation in a less than ideal way. This at least sounds like it might a problem that is situated on a much lower level than your browser dealing with multiple tabs.

</comment></comment></comment><comment><USER22> Allow a way to whitelist domains that should not be closed (like gmail)

<comment><AUTHOR> Thanks for the feedback. At the moment, one way to achieve this is to "pin" the gmail tab. OneTab will not close any pinned tabs.

</comment></comment><comment><USER23> From what I understand, this calls out to their servers and they display a page?

Would it not be more secure and safer to render this on some sort of local page?

Don't really see the need for this information to go to a third party server.

<comment><AUTHOR> (OneTab developer here): None of your tabs are sent to a third party server. It's all stored in HTML5 local storage.

The only way the one-tab servers know about your tabs is if you click to 'share as a web page', which transmits your tabs to our servers to create a web page you can share with others.

<comment><USER24> Your website talks about which information is _not_ sent to OneTab.

Which information _is_ sent to OneTab?

<comment><AUTHOR> The OneTab servers are never accessed unless you click the "share as a web page" button. We don't know what tabs you have open, or what tabs you have put in your OneTab list.

</comment></comment></comment></comment><comment><USER25> Isn't 95% reduction claim a bit too bold? It is widely known that standard measurement of Google Chrome's memory consumption with task manager is wrong because it doesn't take data sharing between processes into consideration. How was the 95% figure produced?

<comment><USER26> He has 21 tabs opened, by reducing it to 1 tab, he has saved 20/21 lots of memory, ~~ 95% saved.

Assumptions: each tab uses same memory; no shared memory (or shared memory equally divided between all tabs), every user has around 20 tabs open given the first 2 assumptions hold true.

To me, the 95% is a magic number.

</comment></comment><comment><USER27> Neat. Could you add some sort of way for the user to choose whether they want to restore into the current window, instead of a new window? Cheers :)

<comment><USER28> Yeah, I was wondering about this. Honestly feels like a design flaw. When I hit "restore all" I expected the tabs to replace the OneTab... tab. Other than that, and knowing that it's all in HTML5 localStorage, this will be replacing PanicButton!

</comment></comment><comment><USER29> I've only just realised this is built into chrome natively:

Right click on any tab in a window and choose "Bookmark all tabs..." from the bottom of the menu. Or press CTRL+SHIFT+D.

This has the following advantages over OneTab:

1\. You can add new bookmarks to the list at any time.

2\. Bookmarks can be synced with google sync.

3\. You can name the folder so you know what the list is.

4\. Bookmarks are searchable in the omnibar.

5\. You can open a single bookmark without it being removed from the list. If you don't want to keep it, just click the star in the address bar and then the remove link.

6\. When right-clicking a folder there's an option to open all bookmarks in an incognito window.

I can't believe I've overlooked it for so long! I don't need any session management extensions now.

</comment><comment><USER30> I really like the functionality of OneTab, as I'm someone who frequently has 3 concurrent Chrome windows, each with dozens of running tabs.

The one thing that's going to prevent me from using this regularly, though, is that once you reopen a tab, there's no back state. I find that some of the most valuable information that I can get from a webpage isn't necessarily the page itself, it's the process leading up to the page.

That being said, this is an absolutely beautiful Chrome extension and I commend the developers on what they've accomplished.

<comment><USER31> I recently found TabMemFree [https://chrome.google.com/webstore/detail/tabmemfree/pdanboc...](https://chrome.google.com/webstore/detail/tabmemfree/pdanbocphccpmidkhloklnlfplehiikb)

It is similar to OneTab but keeps the tab open (with Flavicon and Name) but just "parks" it after a time period. It saves back states.

As a heavy open tab users (we have a support group I've heard) I like it. Working with 4 GB of Ram is made much easier!

If you have a tab that you don't want "parked" after 15 minutes (configurable) then you just pin it. So Gmail and Pandora get pinned. The rest park themselves and reload on when I select them.

<comment><USER32> I did try this one for some time before The great suspender (<https://github.com/deanoemcke/thegreatsuspender/>).

IMO the great suspender is better at solving this problem for me because (recalling from memory my experience with tabmemfree couple of weeks back):

1\. The great suspender retains a visual snapshot of the page (along with title, favicon etc) thus helping me jog my memory about what the tab is about.

2\. It uses a internal chrome:// URL to park the suspended tabs instead of using an external URL (<http://>). I am not saying that the developer of tabmemfree could be spying on the URLs being parked. But I am just not comfortable with the idea of parking my tabs using an external http service.

3\. An explicit text format white list rather than relying on pinned tabs (which makes me lose the tab position, title etc).

4\. Explicit option to suspend a tab or group of tabs (and bring them out of suspension) - instead of just relying on time-outs to suspend a tab.

</comment></comment></comment><comment><USER33> Maybe Im not a "power user" or something, because I rarely have more than 3-5 tabs open at any given moment, and 2 of those are my email accounts. We have searchable browser history, and it seems like that would be a horrible workflow to have anymore than say 10 tabs open at any given time. They get so small you cant see them and how would you find what you want? ctrl + tab? Im genuinely curious as to how someone works this way.

<comment><USER34> I regularly get up to about 30-40 tabs. I'm a spacial thinker, so I can remember where the content that I want is relative to it's position in the tab bar (+- about 2 tabs usually), so having the icons disappear doesn't bother me. I just compulsively ctrl-click things to open them in new tabs, in case I want both the new content and the old content.

</comment></comment><comment><USER32> There are better extensions out there solving this problem. One I use is <https://github.com/deanoemcke/thegreatsuspender/>

It frees memory by taking a snapshot of the page and loading the image (instead of the DOM). This frees up a great amount of memory. It also persists the tab position, title, favicon (which are essential to me in remembering information about the tab). Clicking (or pressing Enter, F5 ..) on the image preview loads the page.

You can set tabs to be automatically suspended after a predefined amount of time. You can set tabs to be restored automatically on focus (unfortunately no time delay option here). You can white-list domains from auto-suspension.

For Chrome v25 users: The extension is having some stability issues which causes Chrome to crash (<https://github.com/deanoemcke/thegreatsuspender/issues/30>). But if you are using any version before that, it should work fine. It had become an indispensable tool for a tab hoarder like me. Waiting for the dev to fix the current issue with Chrome v25.

</comment><comment><USER35> Looks great and I would definitely put it to use, but on Ubuntu with Chrome 22.0.1229.94, I get "Installation failed either due to cancelling the dialog box or because you already have the extension installed" when installing from your web page. When I try to do it from the web store, I get "There was a problem adding the item to Chrome. Please refresh the page and try again".

<comment><USER36> Same error happening here along with a Butter bar stating "Manifest file is invalid." in Mac OS X 10.8.2 and Chrome 25.0.1364.160.

<comment><AUTHOR> We've been looking at this, apparently this happens when an extension has just been released and is "propagating between servers".

If the extension install is not working for you, it should start working later today once Google's webstore servers have updated

<comment><USER37> I had this issue and literally 10 seconds later I tried again and it worked fine

</comment></comment></comment></comment><comment><USER38> As someone that lives with 40 tabs open in any 1 window at a time, with at least 2 windows open....THANK YOU.

I love this. I don't get why people are being so negative on this thread. Also that discussion about the cost of RAM, is pointless. Who cares how much RAM/Diskspace costs. That doesn't mean we should be inefficient with our resources, because we can simply buy more for cheap. That's an excuse that lazy developers use.

That being said, I would love to know a few things about this extension (if the creators are here):

\- Where is this list stored? On my HDD? In my Gmail Account?

\- I would love to backup the list, so it doesn't get lost. I am accustomed to using Chrome's history, but that gets wonky from time to time and I have been in many situations where I expect the full history to be there, but it isn't for one reason or another.

\- Will my One Tab list be there if I reset my machine? I assume so, but what if I close my `One Tab` tab?

Other than that...THANK YOU...for this WONDERFUL extension. This will easily be my most used extension - hands down.

<comment><USER29> It's stored on your PC in the window.localstorage for that extension. I used the Extension Gallery and Web Store Inspector to look at the code without installing the extension:

[https://chrome.google.com/webstore/detail/extension- gallery-...](https://chrome.google.com/webstore/detail/extension-gallery-and- web/bbamfloeabgknfklmgbpjcgofcokhpia)

It might be easier just to save them as bookmarks. Right click on any tab in the tab bar and choose "Bookmark all tabs" or press CTRL+SHIFT+D. Use the Split Tabs extension to break them up into local groups first:

[https://chrome.google.com/webstore/detail/tab- split/imjbfepo...](https://chrome.google.com/webstore/detail/tab- split/imjbfeponcaggdpmoiadjbafihlojbco)

I've talked more about the benefits of using just bookmarks here:

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

</comment></comment><comment><USER39> If this appeals to you, I have 2 words: Tab Wrangler.

As a compulsive tab hoarder, I've been using Tab Wrangler for this same purpose for over a year and I believe its approach is far superior: it just closes tabs that you ahven't visited for a period of time. If you haven't been to a tab in ~20 minutes, likely you don't need it on hand. I can't know when I'm done with a tab until I've moved onto my next task, which means I'm no longer thinking about that tab.

Also, you can lock tabs, have a minimum number of tabs (I set mine to 5) and easily list any auto-closed tabs so you don't lose anything, though I find myself only needing to look through that list once or twice a week.

Anyway, Tab Wrangler absolutely changed my life.

Not my project, just think it's awesome: [https://chrome.google.com/webstore/detail/tab- wrangler/egnjh...](https://chrome.google.com/webstore/detail/tab- wrangler/egnjhciaieeiiohknchakcodbpgjnchh?hl=en)

</comment><comment><USER40> I don't care so much about the memory, but this reminds me of how chrome doesn't have a way of vertically showing the tabs. know that firefox when I use it supports that.

I saw support for vertical tabs in Chrome that can be turned on, but I think that is experimental. The people that suffer from the memory problems are the people who really just need better tab management features. Maybe this is something for power-users that just needs to be handled with extensions.

Also being able to suspend and resume sessions better is a good idea, and this may help with. When coding on a particular thing, I'll have most of the tabs open that I need. When I get back into it it's just a storm of CMND-T and searching for the references I was using. Sounds like this could help with that.

</comment><comment><USER41> Super useful, thanks! I was afraid that this would close my pinned tabs, but seems like you paid good attention to this detail. A request: it would be nice to be able to right click and open the one-tab interface/tab without actually having to save all tabs.

</comment><comment><USER42> Aww, history goes away. That might be a problem...

<comment><USER43> This and lost input in text-boxes is what it lacks to become useful. Also localStorage is limited and this limit cannot be raised, so someone with enormous amount of memory could prove that OneTab is not reliable, contrary to how it is advertised. To fix that it has to use indexedDB and require unlimitedStorage. (Well, we still require enough free space on disk, but it's the same with localStorage.)

Anyone willing to record screencast how OneTab fails at handling million tabs? :)

</comment></comment><comment><USER44> My big problem with Chrome tabs is that over time, they start consuming all of my _CPU_ resources and I have to go in and kill a bunch of 'Chrome Renderer' processes to get the load back down to a reasonable level.

This also happens if Chrome crashes / I quit or force-quit out of Chrome and then restart. I don't really want it to open however many tabs I had open, I just want to be able to see what tabs were open. I would be happy with it creating the tabs with the title at the top but not loading it. Short of that, One-Tab is a decent way to help with this issue.

</comment><comment><USER45> Save 99% memory in google chrome by bookmarking all tabs and closing Chrome!

<comment><USER46> where did the 1% go?

<comment><USER45> Some long-running hidden chromium process that doesn't seem to die when you quit or force-quit chrome on mountain lion. You have to go into activity monitor to kill it. This never happened in Snow Leopard.

<comment><USER47> Could it be that you have "Continue running background apps when Google Chrome is closed" setting to be on?

<comment><USER45> "This is only applicable to Google Chrome browser on Windows and Linux." (source: [https://support.google.com/chrome/bin/answer.py?hl=en&an...](https://support.google.com/chrome/bin/answer.py?hl=en&answer=1184722))

the mystery continues ...

</comment></comment></comment></comment></comment><comment><USER48> Interesting extension. I think you need to address a couple of things:

1\. Try to maintain state for all the content in the controls. For instance, if I'm on JSONlint.com with some complex JSON in there, I'd like for that to be there when I re-open the tab. So, simply storing historic reference and reloading the pages doesn't add so much value for my use-case.

2\. Can you do the same with other extensions? I have a ton of things running and it would be nice to disable all on-demand via one-click. My memory consumption was still over a GB with all the running extensions.

Thanks & Good luck!!

</comment><comment><USER49> Would be nice if this would be semi-integrated natively into Chrome, almost like the implementation on older Apple devices that can't have as many concurrent web pages open. On my iPad mini for example... if I am reading a few pages and switch back to another one I was looking at 30 minutes ago, it re-loads itself.

So if a tab is dormant for a while, Chrome will throw it away. Then when you recall it, the next day or whatnot, it will re-load it.

For someone who typically has a hundred tabs open at any given moment, that would be a pretty cool feature.

</comment><comment><USER50> I'm quite surprised of the feedback so far with this. It works well for what's offered. I find myself looking through dribbble or hunting down a problem and need to have a few reference tabs open on occasion but I don't necessarily want them open but I'd like a reference if I needed it again. I would suggest being able to make lists inside the OneTab page and saving those lists as presets if you can't already. That way I can label certain groups "Design inspiration for XYZ" and have those tabs directly related.

</comment><comment><USER51> OneTab doesn't seem to preserve individual tab browsing history. So if I understand it correctly it really just converts the unpinned tabs to bookmarks and them close the tabs. Am I correct?

In Chrome, you can right-click any tag and choose "Bookmark All Tabs". Occasionally, I do that to save open the tabs if I don't have enough time to read them all. Admittedly, OneTab has a simpler interface and conveniently closes the tabs for you.

See <http://screencast.com/t/biqAF65Fdd>

</comment><comment><USER52> Nice idea, but a heads up for anyone trying it out: installing and clicking on the icon closes all your open tabs _immediately without warning_. Quite a jarring first user experience.

</comment><comment><USER53> The current implementation doesn't differ much from just closing all of your tabs and reopening them using 'Recently Closed'.

One way you could keep the one-click-to-open functionality of tabs is to keep the tabs in a persistent vertical list of favicons along the side of the screen. One tab could remain open, and clicking another tab, or favicon, could replace the current tab.

Edit: Here's a mockup: <http://imgur.com/pfYO7xY>. You could have the title show up next to a tab on hover.

</comment><comment><USER54> I love the simplicity. At the risk of adding complexity, there's this Chrome extension I used to love and use all the time called JoinTabs, that unfortunately started shipping with some nasty malware. It did this very simple thing of collecting all the tabs in all your open windows and putting them in one window. Since OneTab only seems to work on the tabs in a single window, is there any way to combine these useful features?

<comment><USER55> I use "Merge Windows"! [https://chrome.google.com/webstore/detail/merge- windows/adja...](https://chrome.google.com/webstore/detail/merge- windows/adjadgadeebehakpgamlnafmdkegkmph)

</comment></comment><comment><USER56> Nice. I built a similar Chrome extension recently: [https://chrome.google.com/webstore/detail/tab- bankrupter/pnd...](https://chrome.google.com/webstore/detail/tab- bankrupter/pndipmgldhbejkehopnbbpjgidkbiimh/)

Open-sourced here: <https://github.com/jsvine/tab-bankrupter>

As the name suggests, it's aimed more at the mental — rather than computational — weight of tabs.

</comment><comment><USER57> Dossier[1] has been doing this for years now. It's not as pretty, but it can manage lists and has a bunch of neat features.

I'm no affiliated with whoever makes it (except as a user, I guess) -- but I did want to bring pre-existing alternatives into the discussion.

[1] [https://chrome.google.com/webstore/detail/dossier/hohaaljbjh...](https://chrome.google.com/webstore/detail/dossier/hohaaljbjhjodnncjbeeilfdloeinfbh?hl=en- US)

</comment><comment><USER58> Just yesterday, I was thinking about something similar for Opera. Opera supports tab stacks (which are great), but many often go unused for days, so I thought about implementing a way to convert a tab stack to a simple tab with an overview of the sites that were open in it.

My main problem with this is that you can't order your tabs into groups - <USER2> extension may not even make a distinction between regular tabs and pinned tabs.

</comment><comment><USER59> This is a great start.

I wouldn't mind having a side tray or list of temporary bookmarks that I could easily add to, restore from, or remove. Then I would have 3 or 4 active tabs and about 15 inactive tabs and could swap between them easily.

I know it is possible with shift + cmd + D, as one commenter pointed out, to bookmark all tabs temporarily but that would get cumbersome if you were constantly changing out tabs.

</comment><comment><USER60> Install isn't a link but a span, so you can't tell what it's doing/where it's going by hovering. Hmmm...Feels REALLY spammy, or is it just me?

<comment><AUTHOR> The install button has to call the chrome.webstore.install API for instant installation, so if it were a hovered link it would not show anything particularly descriptive.

</comment></comment><comment><USER61> While I've switched to a box with ample RAM so that this isn't really a concern any more, my old habit was to open up the Chrome task manager, and just kill any tab that I was just holding in place to read later. All the RAM gets freed up, but the tab is still held in place if I close the window. A simple refresh when I actually want to look at the tab would bring it back up.

</comment><comment><USER62> I want the opposite for Firefox on android - some way to instruct the browser NOT to unload background tabs because I might have been partway through entering data in those and just gone off to another tab to check something I was writing about.

I have 1GB of RAM in my Note and rarely run more than one thing at a time. FF for android seems to have a really aggressive unload policy.

<comment><USER63> This is a big problem for me in ChromeOS too.

</comment></comment><comment><USER64> Feature Request: The ability to save and re-load tabs as a labeled set. An array of open tabs is often the result of an intentional workspace. If I could label a saved OneTab as "iOS Development" and have it launch iOS Dev Center, JIRA, bitbucket, and various API/documentation, it would make switching from casual browsing to work mode a breeze.

<comment><USER65> You're looking for "Session Buddy"[0] available on the Chrome store. This is a more complex OneTab, I've been using it for quite some time as I'm a tab abuser (60+ open tabs). It's great for storing and managing sets of tabs.

[0] www.sessionbuddy.com

<comment><USER64> Wow, thanks for making my day.

</comment></comment></comment><comment><USER66> How about just use Chrome?

1\. bookmark all tabs ⇧⌘D

2\. in the file dialog create a new folder e.g. "foo"

3\. (later) with Bookmarks > foo menu open, select "Open All Bookmarks in New Window"

Voilà

<comment><USER67> Nice idea, but for me these are usually temporary bookmarks, and doesn't handle the garbage collection for me nearly as simply.

Thanks for sharing, though!

</comment></comment><comment><USER68> I was going to say this was pretty neat but within 30 seconds of actually using it, it managed to lose a window full of tabs which I'd had open for a couple days and I can't recall what was in it now so a bit frustrated. I collapsed up 3 windows into one tab, then did expand all on all 3 and one of the windows re-opened with only 1 tab.

</comment><comment><USER69> I'd rather waste memory than waste network traffic, re-authenticating and hitting servers to check for updated data and restarting audio/video streams.

It makes sense if you are using a machine with limited memory or you want to leave one page open whilst doing something memory intensive, but it by no means is a 'useful' way to casually browse.

</comment><comment><USER70> I really like this. It's fast, simple and easier to re-view the pages than bookmark all tabs. Thanks!

</comment><comment><USER71> Very similar to this extension: [https://chrome.google.com/webstore/detail/tab- focused/mhdlja...](https://chrome.google.com/webstore/detail/tab- focused/mhdljapdjjfoeafbcldiajggppjomeno) (except the permissions)

</comment><comment><USER72> Suggestion: could you make the list flow upwards when the user clicks the X to close a tab? This way the user doesn't have to move the mouse to close multiple tabs quickly. Basically it's the same behavior as Chrome, just vertical.

</comment><comment><USER73> Nicely presented. I've only tested this a little, but in some cases it appears that restoring a tab doesn't issue any new HTTP requests to the page server, maybe subject to cache headers. That's a nice trick, how does it work?

<comment><AUTHOR> That's probably Chrome obeying the HTTP cache headers for the web site in question.

</comment></comment><comment><USER74> It could be an extension that froze a tab: for example right click on a tab, save the data on disk and saves ram. When you go back it will take a lot of time.

This extension opens the page again, loading it which leads to bigger time load.

</comment><comment><USER75> I always try to keep myself using less than 4 tabs in Chromium. Used to work with several browser windows, tens of tabs each, but found out that this is just noise, and is detrimental to productivity.

Got the addon.Thanks and good luck!

</comment><comment><USER76> Noticed that when I use CRTL+click to open tabs from the list the tab counter still decrements even though the number of tabs in the list does not decrease. Now I'm looking at a list of tabs with -3 tabs at the top.

</comment><comment><USER77> Not sure why I can't figure this out, but how can I just place one tab into the list? When I click on the icon everything gets collapsed and then I have to open each individual page (or all of them at once).

</comment><comment><USER78> I got 16GB+ RAM for a reason: To use it. Nice extension, but I'd rather have the stuff in memory instead of reading it from disk on need. Haven't happened in years that I felt the need to free RAM.

<comment><USER79> Perhaps this is aimed at the multitudes that don't have 16GB+ of memory?

</comment></comment><comment><USER80> Just noticed the "Bring tabs into OneTab" will bring in a detached developer tools window, which then doesn't work when reactivated as it's loaded as its own tab, detached from the original page.

</comment><comment><USER81> Google Chrome should automatically shut down unused tabs and restore them as needed. Pretty much what this plugin does, but in an automatic way. Nobody need 50+ fully activated tabs all the time.

</comment><comment><USER82> eisbaw@leno:~$ type chrome_free chrome_free is a function chrome_free () { kill $(ps -C chrome -o pid,args | grep --color=never 'type=renderer' | grep -v 'extension' | awk '{print $1}') }

</comment><comment><USER83> Might want to add a more prominent link to the installation

</comment><comment><USER84> problem: tab syncing also stop working.

one reason for me keeping chrome is the tab syncing works. Firefox offers nothing on iOS. safari only works whenever it feels like it.

</comment><comment><USER85> No idea how this is better than Chrome's built in "Bookmark all tabs..." feature (Shift + CMD + D) and then just closing whatever you don't need open.

</comment><comment><USER86> Thank you! As a heavy tab user this is fantastic feature that complements the way I want to be using my browser. Keep up the great work.

</comment><comment><USER87> Very useful. It'd be nice to be able to exclude certain tabs from ever being closed (like gmail) that I want to keep open.

</comment><comment><USER88> Hmmm It would be nice if it saved tab history as well, restored and ended up finding all my history had been lost :/

</comment><comment><USER89> Do what I do: save them to Instapaper. Then go back and organize them once a month but never bother to read them.

</comment><comment><USER90> If this extension is not made to make money, why not Opensource it so that others can contribute to it.

or

Is it opensource already?

</comment><comment><USER91> Is this any different from opening the Chrome Task Manager and quitting every tab? (Memory-wise)

</comment><comment><USER92> Chrome used to have an option called --single-process which reduce the RAM cost to few megs.

</comment><comment><USER93> Even being a marketing gimmick, it is a smart development. Minimal and useful. I <3 it.

</comment><comment><USER94> I like the idea, but how is this any different than the "Bookmark all tabs" feature?

</comment><comment><USER95> Please add a facebook share button. I would like to share this with my friends. :)

</comment><comment><USER96> I'm going to make NoTab, which closes Chrome for a 100% reduction in RAM usage.

</comment><comment><USER97> How about one-comment.com for reducing the clutter from HN comments thread?

</comment><comment><USER98> what about the current session? think browsers as an os, not just a program. you spend most of your time in front of it. they deserve more resource than the other installed programs in your computer.

</comment><comment><USER99> Excellent! I love it!

Now when is there going to be a version for Safari?

</comment><comment><USER100> Its fanny that nobody mention there the TabsOutliner

<comment><USER100> A screenshot: <http://i.imgur.com/o8ZvIDH.jpg>

</comment></comment><comment><USER101> I am worried, It knows all the data you are surfing.

</comment><comment><USER102> so you are saving 95% memory by closing all tabs? I have an even better idea: let's save 100% memory by hitting that X.

</comment><comment><USER103> will this or any other extension work on chrome in mobile or tablets, thats one place where you cant add memory

</comment><comment><USER104> Nice way to build a data-set for mining.)

</comment><comment><USER105> Can we have the same for Firefox?

I have 2020 open tabs!

<comment><USER106> May I ask... why?

</comment></comment><comment><USER29> Initially I thought this might be an easier way for me to save sessions than my current session saving solution which doesn't make saving a single window a one click operation. I could use in conjunction with the split tabs to new window extension

[https://chrome.google.com/webstore/detail/tab- split/imjbfepo...](https://chrome.google.com/webstore/detail/tab- split/imjbfeponcaggdpmoiadjbafihlojbco)

to get just the tabs I want to save, and then put them in a new list. However I think I'll stick with Session Buddy

[https://chrome.google.com/webstore/detail/session- buddy/edac...](https://chrome.google.com/webstore/detail/session- buddy/edacconmaakjimmfgnblocblbcdcpbko)

as it allows:

1\. naming of saved sessions (of which I have many). It's list of saved sessions will be easier scan to find the one I'm interested in.

2\. opening of saved urls without removing them from the saved session. This I would find infuriating due to the way I use saved sessions as a more powerful bookmark feature.

Also, if I closed the OneTab tab there didn't appear to be a way to bring it back without creating a new list.

Some features that I'd like to see in a session saving chrome extension:

1\. Sync to my google account with chrome extension syncing. Sessions Buddy will hopefully have this in the next release but it's been in development for over a year...

2\. Multiple saved session lists so I can separate sessions between e.g. work/private, or "things I want to get back to" and "archived things that might be useful in future."

3\. Integration with omnibar searching.

1 and 3 Could be done by saving sessions as bookmarks, which is what FreshStart does

[https://chrome.google.com/webstore/detail/freshstart- cross-b...](https://chrome.google.com/webstore/detail/freshstart-cross- browser/nmidkjogcjnnlfimjcedenagjfacpobb)

but I don't use that extension because of it's confusing UI.

After Edit:

I should have mentioned. The easiest way I've found to limit chrome memory is to firstly only enable the extensions I use on a day to day basis, and enable/disable others as needed using Extension Manager

[https://chrome.google.com/webstore/detail/extensions- manager...](https://chrome.google.com/webstore/detail/extensions-manager-aka- sw/lpleipinonnoibneeejgjnoeekmbopbc)

and then _kill every tab process_ in the chrome task manager after chrome starts up. I usually have 90-100 tabs and currently have 142 tabs open. My system would grind to a halt if I didn't do this.

</comment><comment><USER107> For the curious:

chrome://memory-redirect/

</comment><comment><USER108> One love, One tab...

</comment><comment><USER109> wow, amazingly simple/useful idea! Thanks!

</comment><comment><USER110> stupid marketing.</comment>


A slightly, conservative, review of Hardy Heron - <AUTHOR> http://www.shelleytherepublican.com/the-definitive-review-of-ubuntu-linux-804-hardy-heron The site has some very amusing sections, like their Linux section http://www.shelleytherepublican.com/category/education/technical/linux
The other sections are mostly offensive. Please don't pay attention to them.
But what I want to know as someone who is not from the US is: are the people joking? or are they actually for real? <comment><USER2> Am I the only one who finds light grey text on a light grey background hard to read? This seems to be a common color choice these days, and it's getting as annoying as rounded corners and pastel gradients eventually became. High contrast text, please. I have to stare at and focus on this stuff.

</comment><comment><USER3> Why, the, commas?

<comment><USER4> I never realized things had gotten to the point where people can't even put together a sentence fragment without gross grammatical errors. How do these morons even make it out of middle school? It's a sad state of affairs when so many people lack the most basic written communication skills.</comment></comment>


Apple makes $208 on each $499 iPad - <AUTHOR> http://www.computerworld.com/s/article/9150045/Apple_makes_208_on_each_499_iPad

<comment><USER2> They priced the A4 chip at $15, which sounds awfully aggressive to me. That's what you'd expect for a mass market chip for a item you buy in quantities of hundreds of thousands _after_ all the kinks are worked out in the fab. This is a custom job, which hasn't sold anything yet. It will only get to that _if_ the iPad sells huge numbers.

And obviously none of that includes the engineering costs to produce the chip in the first place.

<comment><USER3> Well, they're selling it to themselves; other chips have mark-up. The engineering costs were factored into the purchase price of PA Semi, I imagine.

<comment><USER4> You have to keep paying the engineers even _after_ you buy out the company, you know. Having to buy PA Semi just made it more expensive for Apple to develop the chip. This is definitely a long term payoff horizon.

<comment><USER5> I thought EVERYTHING was done by Jobs. Surely he's not paid that much! There are no RnD costs, Steve just dreams it all up.

<comment><USER4> Jobs' salary is $1 a year, and yet he is often cited as the most valuable CEO in the world. Though to be fair, every so often the board awards him with stock options, airplanes, and all kinds of other bonuses.

</comment></comment></comment></comment></comment><comment><USER6> I hate things like this. They're extremely speculative, and take absolutely no account for research or advertising.

Without the _highly successful_ and _essential_ research & marketing that Apple has been doing, they wouldn't be Apple. How much money goes into that?

That said, where can I get that screen + multitouch capabilities for $100, 16gb good flash for $25, and that processor for _$15_? Show me to the nearest store, and I'll happily drop _twice_ that if they'll sell.

<comment><USER7> And Sony loses hundreds in each playstation 3 sold, but they make it up on games. Apple makes hundreds of dollars but still forces you (to some degree) to use their proprietary store. It's not like Sony didn't spend r&d and all that fancy junk on the ps3 too.

<comment><USER8> The AppStore is a means to an end, it's not a gold mine. If I remember correctly from the last report, it about breaks even.

</comment></comment></comment><comment><USER9> a) this is all extremely speculative and not really based in reality

b) this assumes that R&D, software/hardware development and pretty much everything else that goes into making a product is free.

<comment><USER10> Not to mention retailer and distributor markups. Most iPods are not sold direct by Apple.

<comment><USER11> Yeah, I guess the truck driver who delivers these products to the retailer works for free as well...

</comment></comment></comment><comment><USER12> Even if this seemingly premature and speculative analysis is correct, it shouldn't come as a surprise that Apple makes a good profit margin on their hardware. In the last decade they've demonstrated the pattern of using media distribution as the loss leader to sell their profitable hardware.

What's impressive this time is that they may make such a healthy margin on a hardware product that came in so far under everyone's expected $800-1000 price point.

<comment><USER13> IIRC, Apple currently dominates the profit margin on computers even though it doesn't dominate volume, thanks to its ability to sell value.

The very nice thing about this (if true) is that it will allow Apple to continue to mercilessly drive prices down while continuing to invest in R&D. That's exactly what they did with iPods and laptops, and it must be insanely difficult to compete with them.

Can you imagine rolling out a product priced at $450 knowing Apple could put the iPad on sale for $400 and still make money? What are you going to do, break even at $400 only to watch them sell it for $350 and outsell you and still make money?

<comment><USER14> I honestly am amused at those guys who screwed over TechCrunch at this point. They're sitting at a device they need to sell at a 500 buck price point, in direct competition....

</comment></comment></comment><comment><USER15> They say Apple makes the most from the 3g models. But gottabemobile.com had a good article on that it maybe a reverse subsidy which Apple pays ATT a certain amount per 3g unit sold get the $15/30 no contract pricing. So if that's true, they aren't really making much extra on 3g vs. no 3g models.

<comment><USER16> Yeah, must be what the $130 is for.

</comment></comment><comment><USER17> That's actually surprising to me. With a large capacitive multi-touch screen like that, I would have figured the cost would have been higher.

<comment><USER18> Perhaps the analysis is incorrect? Come on, this isn't reddit. We can't believe everything we read on the Internet.

<comment><USER19> What does this have to do with reddit? It's been a long time since I've been on reddit, but I don't remember the commenters there believing everything in every linked article. On the contrary, I saw deeply suspicious attitudes and conspiracy theories on what I would have thought were tame topics.

<comment><USER18> The crowd at reddit has gone rapidly downmarket in the last few months. Take this comment thread from a couple of days ago:

[http://www.reddit.com/r/WTF/comments/ava3b/australia_bans_sm...](http://www.reddit.com/r/WTF/comments/ava3b/australia_bans_small_boobs_and_female_ejaculation/)

Obviously the idea that the Australian censorship board is banning all porn that features breasts below a certain size is incorrect, yet not one commment in the > 1000 thread has questioned the accuracy of the article.

</comment></comment></comment></comment><comment><USER20> Apple has generally had a profit margin of 35% across it's lines, I think they said in their last financial call they were now averaging near 40% gross profit margin:

40% of $499 = $199.60

<comment><USER8> I think this product is an exception to that rule. The reason is that there is no tablet market. It doesn't exist.

Apple is doing what they hardly ever do here; they're selling the iPad at low margins (which will get higher with time) in order to take this market, giving competitors little chance to undersell them with their inevitable knockoffs.

They usually don't do this. Usually they care more about margins and profit than about market share. But they're in a golden position right now; they have more cash than they know what to do with, they're making loads of money while their competitors are struggling.

</comment></comment><comment><USER21> That completely ignores R&D costs, basically. They designed the chip themselves, so there's R&D costs there. They also wrote the software, and may have had the touch screen custom-designed or something (correct me if I'm wrong on that, I just know it's supposed to be unusually pretty and precise.)

So yeah, if they sell an infinite number, there average profit margin should be $208. Realistically, a reasonable chunk of that (I'd guess well under half, but probably not negligible either) goes to designing the product and the components.

</comment><comment><USER22> If true this makes sense. When the IPhone came out it was over priced, I assume to help pay for their R&D.</comment>