We bought Walmart's $140 laptop so you wouldn't have to - <AUTHOR> https://arstechnica.com/gadgets/2020/06/we-bought-walmarts-140-laptop-so-you-wouldnt-have-to/ <comment><USER2> After all these years, it seems like no one can beat the undefeated champion in this price range: a used ThinkPad with a Linux on it. Even today, for $140, I can find you laptop after laptop meeting that description that would crush this.

Maybe in 10 years, we'll finally see new laptops winning at this. But it's been a long wait, and we'll have to wait longer, still.

<comment><USER3> Where do you buy? eBay? Is there some other reputable place to buy used ones for a first time buyer?

<comment><USER4> In my case - and I've purchased 10 of these over the years - it's exclusively eBay. I check the description and photos carefully to see if there are any issues or defects. Only one time did I receive a laptop that was basically a dud - an X61 from many years ago.

I've also bought a couple old 32-bit models from e-waste recyclers who were open to me just grabbing them from out of a pile of to-be-disposed-of equipment.

Not sure where you're located, but if there is a MicroCenter nearby, the I recommend them as well. Sometimes they stock these in refurbished condition, and from my inspections of the laptops, they're in good shape. Only buy if you can look at first-hand at the store.

Sites like NewEgg, TigerDirect, and Amazon also have these, but the reviews generally don't seem favorable. One major difference is that with eBay, you can view multiple pictures of the exact laptop you will be buying. With those other sites, it's just a stock photo, and it seems like there's less quality control over what's grabbed from their warehouses.

Also it's worth mentioning that refurbished Dell Latitude and HP EliteBook laptops are comparable. There seems to be less demand for these than Lenovo ThinkPads, so often you can get better specs for the same price. In my experience, the Dell Latitude laptops have maintained greater backwards- compatibility with older docking stations. If you're into embedded development or ever want to connect to a headless server directly, then only Dell will give you that docking station with a serial port. The drawbacks is the TrackPoint on a ThinkPad is always guaranteed to be there, while it's an optional feature with Latitude and EliteBook, and even when it is there, it isn't as good as what IBM/Lenovo has engineered. Another drawback is refurbished Latitude laptops often have dedicated GPUs, which is great for Windows, but often a pain for Linux.

<comment><USER5> Fully agree to alternatives like Lattitudes and EliteBooks. While the "ecosystems" aren't as large as those of ThinkPads, i.e. no Wikis and such, the hardware manuals are available and of the same quality/usefulness.

I think there is a certain inertness in perception of available choices, quality-wise. While ThinkPads _were_ great for a time, that Nimbus should have faded by now, but it mostly didn't, although it makes no sense.

The really good ones are so old by now, that they are almost useless, except for terminal use.

The newer ones are only _so, so_ , and the really good ones make no sense economically imo.

Then there are the mentioned alternatives. But it depends on geographic availability, time, i.e. when a large batch of refurbs enters the market, and so on. It has something of looking for flotsam on the beach :-)

Anyways, if you know hardware/what to do, then you can get great value with better options for periphery like docking stations, displays (ratio/resolution), simply more bang for the buck with about the same build quality as the ThinkPads of yore once had.

Prime expamples are small adaptors from the µSata for the 1.8" HDD to something more modern, for under 10USD a piece. Oh, and compressed air for really cleaning, new thermal grease or pads.

If you do this more often you can save insane amounts of money by getting a small compressor instead buying canned air.

Just saying...

</comment></comment></comment></comment><comment><USER6> I have about half a dozen EeePC 1001PX subnotebooks. I get them on eBay for about $30, and use them for things Raspberry Pi enthusiasts use boards for. You get a keyboard, screen, disk, power supply, and case. I wipe the disk as soon as I get them and put XUbuntu on them. None have failed in 8 years. I had to replace the battery on one, which takes 15 seconds, and you can buy replacement batteries.

<comment><USER7> I found one forgotten on a shelf for years at the office. After wiping Windows XP and installing Debian, the failed battery for some reason decided that it was fine after all and healed itself into a working state. This is a perfectly usable free, ultra-small laptop :)

</comment></comment><comment><USER8> I bought a cheap laptop (very similar) from Dell. It was worthless. Ars is correct that the disk space available is completely insufficient to run Windows, no upgrades can be performed, and also you cannot turn off Windows upgrades, and also a pending Windows upgrade completely disables the machine, and also you cannot add external storage and run either Windows or the upgrade process from said storage (Windows MUST download, expand, and install the upgrade from the C:, no exceptions). So: it's a paperweight as sold, completely unfit for any purpose at all, and any class action lawyer who wants to can probably make their rent for the year by taking on these laptops sold from multiple major sellers. "A scam" would be a nice way of describing them, selling something completely non-functional.

They can run Linux, sort of. Not well. Acceptably for some purposes.

</comment><comment><USER9> Does this kind of device work as a simple tmux or screen device? The review sounds horrible, but I can run a terminal from a RBP reasonably at a much cheaper price point. With the screen it might make sense to compare?

<comment><USER10> Maybe read page 3 before you try. It doesn't sound like it fared too well running Fedora, either. Maybe a really stripped down Linux, without X, would work, though.

Though, if your needs are so modest, why not go for an ARM-based linux laptop? You can almost certainly get something that will deliver a better experience at a lower price point. The only reason I can think of to choose something like this instead is if you absolutely _need_ x86 for some reason.

<comment><USER11> They tried it with Wayland/GNOME. I'm guessing something like X11/i3 would fair a lot better.

I'd not buy one to test that theory though.

<comment><USER12> Or rather Wayland/Sway to get a modern i3 experience without the dead weight of X11.

<comment><USER11> My experience with that is that it runs hotter. X11 may be full of cobwebs but it doesn't run hot, at least in my experience.

</comment></comment></comment></comment></comment><comment><USER13> I'm kind of surprised that Linux wouldn't work well on it - the EVOO has better specs than an early 2000s PC, not to mention Unix workstations from the 1990s that people did all kinds of engineering, scientific, and programming work on.

> ultra-modern kernel, and lightweight Wayland display manager

That might not be good. How about a stripped-down kernel (Linux or BSD) and old-school X11 with twm (flwm if you must.)

> The laptop frequently took as long as 12 seconds just to launch Firefox

Ah well, that's the problem isn't it - the modern web and all of its baggage. I think we need something lighter than Firefox that still works OK with Youtube. Maybe NetSurf?

<comment><USER14> > Ah well, that's the problem isn't it - the modern web and all of its > baggage.

Pretty much. You're absolutely fine on this class of machines and even quite a bit lower - unless you expect to browse a website that requires substantial JavaScript.

<comment><USER15> > The laptop frequently took as long as 12 seconds just to LAUNCH Firefox

Apparently, that needs emphasis.

</comment></comment></comment><comment><USER16> I would love to have a cheap and ultra small laptop to carry with me while I'm on call but I need to go to the supermarket for eg. Wondering why they didn't try a lightweight distro w/ Xfce.

<comment><USER17> Pinebook Pro. I use it for this exact purpose. Small, portable, cheap, and relatively durable. I keep it in the truck while I'm on call in case I need to jump in and fix things on the go.

<comment><USER16> Going to check it, thanks for the recommendation!

</comment></comment></comment><comment><USER18> I'm lurking over currently sold low-spec laptops from Lenovo, Dell and HP, and I'm completely baffled these brands aren't even trying, even though the cheapest models end up ~2 times more expensive than those Chinese OEM machines.

I just want a sub 2kg machine in [11-14)'' range with FHD, CPU at least on par with Ryzen 2200g (which is not quite the newest model) and slotted RAM for under $400. All I see is 15" models with poor TFT displays and RAM sizes that would be a downgrade from my 10 year old Acer!

</comment><comment><USER19> I wonder if its purpose isn't simply to watch Youtube. It has a Full HD screen. It's 11-something inches, but still Full HD.

<comment><USER20> What screens aren't 'Full HD' or more these days? It's a really old low resolution.

<comment><USER19> Whenever I see Full HD, I think fist-sized pixels. However, it's an 11-inch screen and the article mentions: "The display on the EVOO is FHD 1080p, not the 1366x768 typical of many cheap laptops". So in this case, I think it's not all that bad.

<comment><USER21> Full HD is another word for 1080p. What about Full HD makes you think of fist- sized pixels?

<comment><USER20> Only a thousand rows is pretty low these days - you can definitely see the big pixels on everything except a tiny screen.

<comment><USER22> A thousand rows wasn't impressive in 2000. I think people've forgotten (or weren't around for, so don't realize) how big a step back we took on picture quality and pixel density for monitors, for many years, with the switch to LCD.

<comment><USER20> Right - I swear I remember running CRTs at 2000+ rows in the early 2000s. Now people seem impressed with 1000, even on fairly expensive full-sized laptops?

<comment><USER14> You weren't running those CRT's on _laptops_ though. The laptops of the time had low res displays with very narrow viewing angles.

<comment><USER20> When I look on Amazon for desktop monitors, I also see products proudly boasting that they're 'Full HD'. And what's more we seem to have stopped at Full HD - weren't most LCD monitors Full HD like ten years ago? What's going on?

<comment><USER21> If you're not seeing 4k and 5k monitors, you're not looking hard enough. They're plentiful and pretty cheap these days.

<comment><USER20> > If you're not seeing 4k and 5k monitors, you're not looking hard enough.

I didn't say I wasn't seeing them, though did I?

I'm saying I still see monitors with this ancient low FHD resolution. When you search for hard drives you don't see 2005-era capacities as your first result. Why do we still see 2005-era resolutions as our first result for LCDs? And some of them cost hundreds of dollars - the same price as in 2005.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER23> In my experience this part is simply untrue: "With only 2GiB of RAM, the EVOO won't be able to run anything without hammering virtual memory (swapping data from RAM to disk and back again). Beyond that, a 32GB SSD simply is not enough room for Windows itself, let alone any applications. The first time the EVOO tries to upgrade to a new build of Windows 10 (for example, Windows 10 build 2004, which just released last month), it will fail due to lack of space."

I have NO idea how... But my little media pc with 2gb and 32gb has not only worked great last few years, but literally last night went through windows 10 upgrade.. And has 16gb free space this morning (Did have to do disk cleanup to get there - but it was literally a single check box).

On my other Computers,windows takes 70 plus gb after a while. All articles indicate DO NOT delete winxs and other huge directories.. Yet this windows does something differently and has been ticking GREAT with those specs for years.

<comment><USER24> I've used PatchCleaner [1] for many years to make room. Sometimes I need to copy missing install package files back to Windows to complete an uninstall or upgrade, but that is small price to pay.

[1] [https://www.homedev.com.au/free/patchcleaner](https://www.homedev.com.au/free/patchcleaner)

</comment></comment><comment><USER25> >At first, I mistakenly assumed that the A4-9120 was just thermally throttling itself 24/7\. [...] I found the real answer—the normally 2.5GHz chip is underclocked to an anemic 1.5GHz. The system BIOS confirms this clockrate but offers no room to adjust it

Is this legal? I mean, it's technically true that there's a A4-9120 processor in there, and the clockrate isn't listed on the product page, but it's heavily misleading to the consumer what the actual performance is.

<comment><USER26> > Is this legal?

US Legal System: I will make it legal!

</comment></comment><comment><USER27> It's criminal to sell laptops with only 2 GB of memory. It's just enough to boot up and swap to death permanently.

I can't figure out why Microsoft doesn't enforce minimal requirements for OEM vendors to ship Windows. It's hurting their reputation and their userbase. Customers try shitty laptops like that and blame windows for being horribly slow and broken.

<comment><USER28> Because for a while they put a _maximum_ on it instead.

At the time, netbooks were growing organically and could be had with 2 or 4 gigabytes un some cases, with Linux for less that the Windows version.

Microsoft countered this with cheaper versions of Windows that were limited to lower specs, such as 2 gb.

This was the so-called "starter edition" of XP and similar licensing programs for Vista.

The policies might have changed with Windows 10 (not sure), but the legacy remains.

</comment></comment><comment><USER29> In Brazil, if you want to go beyond the 1366x768 screen resolution, you'll have to pay a lot more than those $140.

<comment><USER30> Based on conversations with some colleagues from Brazil (working in the US under work visa) it is due to the taxes that Brazil has on imported electronics/computer goods.

This has had some notable side-effects on Brazil's computing and gaming industries however, perhaps the most visible of which Tec Toys and their Genesis/Mega Drive 'port' of Duke Nukem 3D.

</comment></comment><comment><USER31> hmm, I thought article would be about "Motile" which is Wallmart's private label (Tongfeng) and is pretty amazing for the price point, only issue I have noticed so far is rubber pads being damages because of the stupid glue they used. Other than that - It's a good one.

</comment><comment><USER32> Do Walmart's tablets next [https://arstechnica.com/gadgets/2020/05/walmarts-99-android-...](https://arstechnica.com/gadgets/2020/05/walmarts-99-android- tablet-actually-looks-pretty-good/)

</comment><comment><USER33> Seems strange that they didn't include a fan...

I bought a $300 ASUS laptop a while ago, and it runs surprisingly well. In my opinion, the best 'budget' price range is 300 - 400, less than that will be too bad

</comment><comment><USER34> Still not a better deal than the Acer C720 from 7 years ago. That thing was a legend.

</comment><comment><USER35> They really shouldn't sell a product that doesn't work.

</comment><comment><USER36> Sounds worse than explicit fake from Aliexpress.

</comment><comment><USER37> TLDR: much worse than the Pinebook Pro, unfortunately. It doesn't even have a fan, it's underclocked to 1.5 GHz max, 2GB ram on Windows 10.

I'm shocked it even ran Windows.

Article has some funny quotes, like "I didn't realize it was possible to get a PCMark performance score of zero" and "We in the PC business refer to this as 'load-bearing electrical tape'. "

<comment><USER38> > It doesn't even have a fan

Nice for the reduced noise, and less moving parts to break down, though. And less dust buildup.

<comment><USER14> The article mentions that it doesn't even have _effective_ passive cooling, nothing beyond a thin copper heat-spreader. You can't possibly expect more than Raspberry Pi levels of performance from this device.

</comment></comment></comment><comment><USER39> This would be good for a burner laptop running a Linux OS in RAM.

<comment><USER35> Well, no, because according to the article it didn't do too good a job with Linux either. An old laptop is a good Linux burner laptop (like what I use for DEFCON -- except I usually run Windows 10 on them).

<comment><USER40> I'm sure it would run, say, Arch Linux with a basic wm like tvwm or cwm just fine. I have a pentium 4 with 512mb of ram and everything works great. Even Firefox is reasonably snappy. The kernel, Xorg, and wm together shouldn't use more than 50-100mb.

</comment></comment></comment><comment><USER41> 640k should be enough for BASIC memes and 2Gb RAM should be enough for basic computing needs. Why they can't put together a hardware specific Linux build that performs on this sub-standard machine speaks of laziness.

<comment><USER42> They cover that in the article. The CPU is underclocked because the CPU has no active or passive cooling. And the disk has 4KB write latencies as high as 116ms. The device is designed to be legally sellable as a "computer", not to actually support workloads of any shape whatsoever.

<comment><USER43> I used to have a 0.2 ghz computer with 0.1 gb of ram that ran linux 2.2 very well, graphical desktop with full app complement and all the process isolation and multitasking of a modern OS. Modern software is incredibly bloated. It's not really the kernel though, it's everything else.

<comment><USER44> The usages are differents. You weren't doing much on your old computer compared to what people are doing today on their smartphone.

<comment><USER45> I spend most of my smartphone use reading text, maybe with a few images, or listening to mp3s with the screen off. You can fit those uses just fine into a hundred megabytes of ram and a slow processor.

</comment></comment></comment></comment></comment><comment><USER46> That seems nice if you install xfce on it... Honestly I don't understand why they're saying it's a bad laptop.

If you remember Wirth's law, you can easily understand that as long as you can manage to use a set of lightweight software, $140 will still do a lot. Some people can live without a pickup truck and ride a city car. It's all about learning.

I'm all for minimal, cheap hardware that can run lightweight software. I'm confused why some people seem to dislike cheap hardware. When climate change will hit and hardware price skyrocket, you will see software losing A LOT of weight.

<comment><USER47> It's mostly bad because it ships with Windows Home, and there's almost nothing you can do with a windows home box with these specs.

If you compare it to something like a raspberry pi (and consider that it has a much better CPU and a bunch of peripherals included), it seems a lot more useful. But even so, it's only useful to somebody with a specific use case in mind, and not the general audience who would buy a machine at Walmart and expect it to work.

<comment><USER48> I have an HP convertable laptop/tablet with similar specs. It runs Zoom fine which is the main reason that I bought it.

Not being able to update Windows 10 because of the size of the eMMC drive is a benefit. I keep Windows Update disabled anyway, newer Windows 10 versions keep re-enabling for you and download updates over paid network connections.

<comment><USER49> I also own one with similar specs but a lesser known brand. Something that worked for me to be able to upgrade Windows 10 was this:

1\. Compact.exe /CompactOS:always

2\. Enable compressing the whole C drive (right click, properties)

3\. Clean %TMP% and C:\Windows\Temp

4\. Use the new control panel storage options to clean temporary files

5\. Use the old tool to clean temporary files (the one in C drive properties) because the new panel does a half-assed job

6\. Defragment the disk

7\. Manually remove old downloaded updates (I can't remember the commands for this)

After all those steps I had about 14 GiB free, enough to upgrade Windows. The problem with that cheap thing? Nothing after or before the 15XX editions of Windows 10 works well, Windows blocks the drivers (battery management, wireless, accelerometer, sound and a few others) due to "compatibility issues." Now I'm stuck with a version that doesn't work and unable to downgrade (windows.old is long gone). It doesn't help that Microsoft doesn't offer old .iso downloads.</comment></comment></comment></comment>


CloudFlare refuses to block service to pro-ISIS websites (2015) - <AUTHOR> http://www.ibtimes.co.uk/anonymous-opisis-cloudflare-refuses-block-service-pro-isis-websites-1495758 <comment><USER2> This is nothing but PR and ensuring they have a moral high ground among their target audience. It does nothing to address the issue and makes people who use their services feel good about themselves. This is similar to how FB supports net neutrality in US but pushes their free basics in other countries. Additionally, this also provides fodder to extremists saying look how all these people are against us because they are only punishing our views, this gives the extremists more ammunition in their brain washing of vulnerable population. A corporation does not stand for anything except it's profits and will shift its moral position based on what is most helpful to the bottom line.

<comment><USER3> And what you describe is why I believe there are more actors involved in the decision, possibly customers. The possibility of losing contracts is a good incentive to remove a small player. The "I was in a bad mood" strikes me as a cover to protect someone involved in the decision.

</comment></comment><comment><USER3> I would think that this is a good comparison for a case study of whether Cloudflare should reject someone. Just off the top of my head, ISIS has murdered thousands of people, where The Daily Stormer has just offended people with unsavory content.

<comment><USER4> The threat that ISIS represents is not existential. The threat that fascism represents is.

<comment><USER5> Sure it is, ISIS wants to kill all infidels. How can that not be considered an existential threat?

<comment><USER4> because wanting to do something and having the capacity to do something are different.

<comment><USER5> Last time I checked, ISIS has killed a lot of people. You do those slain a disservice by not even acknowledging this.

[https://www.nytimes.com/interactive/2016/03/25/world/map- isi...](https://www.nytimes.com/interactive/2016/03/25/world/map-isis-attacks- around-the-world.html?_r=0)

<comment><USER4> What the hell? I haven't acknowledged the number of people that ISIS has killed because it doesn't matter. If the measure of the threat that ISIS poses is measured in deaths per year, then ISIS does a little less damage per year than commercial airplane crashes. Airplane crashes are not existential threat, so clearly, if ISIS is an existential threat, it is not because they are currently on track to kill everyone.

<comment><USER5> It was an existential threat to _them_... wasn't it? Your post came off as as long as the deaths didn't happen _here_ , or wherever it is that you live, they don't matter. If not, explain how ISIS isn't an existential threat, and yet the Daily Stormer is? Because the latter's ideology is associated with that special buzzword, "fascism", is it?

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> You know things are going south when you're more afraid of being labeled as nazi than actually being harmed by one.

<comment><USER7> This tendency to call everyone a Nazi is a very strange phenomenon in the USA. I think if Americans really experienced the atrocities of the Nazi, mass death camps, shootings of civilians, tortures - they would hesitate before they used this label against someone they don't like or whose views are different than theirs.

<comment><USER3> The same thing can be said about the word "racist". It is so over used that to me it has lost all meaning. It seems that in every political discussion where there is a disagreement, it will be interjected at some point.

</comment></comment></comment><comment><USER8> "My rationale for making this decision was simple: the people behind the Daily Stormer are assholes and I'd had enough," Prince wrote. "Let me be clear: this was an arbitrary decision."

Prince wrote that he "woke up this morning in a bad mood and decided to kick them off the Internet. It was a decision I could make because I'm the CEO of a major Internet infrastructure company."

\- CloudFlare CEO on why he dropped Daily Stormer as a customer

CloudFlare CEO: "The people behind the Daily Stormer are assholes"

[https://arstechnica.com/?p=1148311](https://arstechnica.com/?p=1148311)

</comment><comment><USER9> Did the purveyors of those websites claim Cloudflare secretly supports ISIS, as the Daily Stormer's did of Nazism?

</comment><comment><USER10> I would suppose that at the moment CloudFlare's policy would be defensive; to refuse service to groups that are clearly defamatory to CF.

To assume censorship on greater moral principles would mean 1. a greater degree of arbitrariness and unfairness, and 2. a drain of resources on an unpopular policy.</comment>


Resty - a bash REST client - <AUTHOR> http://github.com/micha/resty/tree/master

<comment><USER2> I've built a few toy apps that use json as intermediate formats and I've found JsonPath to be pretty effective at building ad-hoc queries. I wrapped it in a thin layer of python for command line use if anyone is interested.

Syntax and the real meat: <http://goessner.net/articles/JsonPath/>

My rough-and-ready wrapper: <http://github.com/skorgu/pyjsonpath/tree/master>

</comment><comment><USER3> Its error handling is a little odd, and it doesn't detect unexpected commands.

        $ resty 42; echo $?
        resty: curl returned error 42
        0
        $

(curl was never called.)

<comment><USER4> If you look at the bash source code, resty uses curl.

<comment><USER3> I looked at the source code; that's how I spotted its bugs, including the one above. :-)</comment></comment></comment>


Autocomplete your life with Greplin (YC W10) - <AUTHOR> http://techcrunch.com/2010/08/31/greplin-ycombinator-personal-search/ <comment><USER4> Why should I trust these guys with my data? It's bad enough that Google knows so much about me... but at least they have some checks and balances built in. What sort of safety does "greplin" have to offer adopters?

<comment><AUTHOR> If you get uncomfortable, you can delete your account at any time. We'll delete your data. Not in 14 days, a week or tomorrow. That moment. We're convinced that you'll find enough value with Greplin to overcome that issue - the same way many did with mint.com.

We're also working with a) encrypted indexes b) only writing the index to disk rather then any content. this shuts down a lot of neat features (generating snippets etc.) - but users that are willing to forgo features for added security might find it useful.

<comment><USER5> So you don't have any backups then? (And I mean actual backups - <USER2> is not a backup)

<comment><AUTHOR> we're going to offer that.

<comment><USER6> I think the worry was actually, "Isn't my data backed up somewhere even if you delete it the instant I tell you to? So then you still have my data?"

<comment><USER5> bingo. If they can delete my data on the instant -- then they quite possibly don't have backups. If they do have some form of semi offline backups - <USER3> not all of my data is deleted on the instant.

Not a worry so much as a harder problem that sometimes doesn't get considered.

</comment></comment></comment></comment></comment></comment><comment><USER7> There was a story recently (don't remember which) that sparked a discussion about indexing all the sites I've ever visited. In other words, provide me with a browser history search that didn't suck, in that if I remember looking at some article a few months ago, I should be able to find it pretty easily.

I bring this up because I think this is a great concept, and would be a great tie-in service to (what I understand of) Greplin. That would make it "search for anything you're supposed to know, we'll find it", which to me sounds really cool.

Edit: So your tagline is "the search bar for your life", which fits what I was talking about above even better.

A note from a quick look at your site: the text under the second column ("Greplin works with nearly every computer, browser and mobile device in the market.") is badly aligned, and seems to "crash into" the text on the last column. Looks really bad and makes it hard to read, so you might want to fix it (I'm using Chrome).

Secondly, congrats! Always happy to hear about other Israelis succeeding. Is there any way I can get in touch with you? I'm applying to YC, and would appreciate any advice you have about dealing with visas/etc.

<comment><USER8> Are you thinking about infoaxe.com ?

<comment><USER9> Or maybe historio.us?

<comment><USER7> Yes, I think it was historio.us prompted the discussion.

</comment></comment></comment></comment><comment><USER10> Little known fact: Hipmunk founder Adam Goldstein came up with the name Greplin, the day before the March 2010 Demo Day.

<comment><USER11> The name has a cool sound, but I think "grep" is only meaningful to people like us, not the mainstream that it targets. Still, create something useful, and the name doesn't matter as long as it's memorable and distinctive, as this is on all counts.

<comment><USER12> Little inside nods is what makes names like this particularly fun. For everyone else, it's just a catchy name.

<comment><USER10> We knew this was safe because it worked for YC.

<comment><USER11> Doesn't YC target people like us, as opposed to the mainstream?

<comment><USER13> I think that even for _programmers_ , Y Combinator (the fixed point combinator not the company) is somewhat obscure.

</comment></comment></comment></comment></comment></comment><comment><USER14> I should probably already know this (and we'll email you about it), but I was wondering how you're currently keeping your dropbox index up to date. our existing APIs don't make it all that easy (or efficient :).

<comment><USER15> And the TOS forbids anything else (I just signed up):

      You agree not to do any of the following while using the Site, Content, Files or Services:

      * Attempt to access or search the Site, Content, Files or Services with any engine,
      software, tool, agent, device or mechanism other than the software and/or search
      agents provided by Dropbox or other generally available third-party web browsers
      (such as Microsoft Internet Explorer or Mozilla Firefox), including but not limited
      to browser automation tools

</comment></comment><comment><USER16> Giving them my entire life (a lot of what Google has + a lot of what Facebook has + a lot of what Twitter has + a lot of my files if I decide to do Dropbox) raises serious privacy concerns. But it looks so awesome that I don't give a damn.

EDIT: But I am refraining from doing GMail, Google Voice, or Dropbox for now at least. I try not to do any communication that I truly care about staying private via Facebook or Twitter, so those don't concern me as much.

</comment><comment><USER17> I signed up and it indexed my data but now I only see:

"Thanks for registering for Greplin. We're in beta. We'll email you once the system's ready for you."

Bummer.

<comment><USER18> Yeah that kind of irritated me a bit because authorized them to access my Facebook and then I was told that I would be e-mailed once they are ready for me.

I didn't even get a welcome letter or anything in my e-mail. I at least would of felt better if I had some type of acknowledgment that I signed up for the service, and a status screen where I could check on the indexing process.

It was almost like: "Thanks for letting us use your Facebook data to build out/test our service. We will be in touch."

I wouldn't of signed up if I knew the sign up process was going to be like that.

<comment><AUTHOR> point taken. we didn't want to spam people's email until we were ready, but it seems that folks have gotten used to that flow

</comment></comment></comment><comment><USER19> My first thought was, "Doesn't Backupify already offer this?"

Backupify already backs up all your cloud data, so I figured it would be easy for them to index it and provide search. Digging through the Backupify website, it seems they have a strong privacy policy. From their FAQ:

"We don't do anything with your data once it is backed up. We don't look at it, we don't sell it, we don't analyze it, we don't modify it."

I guess it's too late for Backupify to change their privacy policy so they can offer search. Or maybe not. Facebook changed theirs...

<comment><USER20> One of my concerns about Backupify is that they didn't use APIs (at least when I tried it) so I couldn't revoke access later. I'm pleased Greplin does.

</comment></comment><comment><USER21> Something I'd really like is the ability to search through my social news comments/submissions. Will websites like Hacker News and reddit be added to the list of indexes?

<comment><AUTHOR> yes! better yet - as a developer you can write your own indexers for greplin! (little known fact: we were going to launch with a hn module but we hit the site too hard and paul banned greplin)

<comment><USER22> Lots of "little known facts" in this thread!

Have you talked to the guys who run <http://searchyc.com> about working with their data?

</comment></comment></comment><comment><USER23> one little criticism - frontpage looks a bit too similar to Evernote:

<http://www.greplin.com/> <http://www.evernote.com/>

Maybe it would also make sense to emphasize data security since in essence you give the service access to every private bit of information you have online. It's not mentioned anywhere in frontpage and I'm hesitating to signup without some reassurance that data will be safe.

Other than that, good stuff.

<comment><USER24> A bit?

Capture anything => Find anything

Access anywhere => Get it anywhere

Find things fast => Search at lightning speed

<comment><USER25> They even used the same stock photos.

</comment></comment></comment><comment><USER26> Based on the services put under the Pro accounts (Salesforce, Google Voice, Basecamp, Box.net and Evernote), $5/month for premium access sounds very low to me.

Granted, I haven't been able to try it at this point. But I can see the value in it, and it looks very well done.

So, I feel that people who will want to use the premium features are people who strive for efficiency and will be ready to pay more than $5. (Salesforce, for example, is not cheap)

<comment><USER27> I would agree with this. In fact, I bet you could differentiate services for different amounts: Evernote integration is probably not worth nearly as much as Salesforce integration.

You could also consider buffet-style pricing, where you get X services for N dollars, X+Y services for N+M dollars, etc. As you get more services, that may enable you to keep the value/data ration reasonable. It doesn't make sense with 12 services available; with 144 services, it might. I know I don't want to pay extra because you support 130 services I'll never use.

</comment></comment><comment><USER28> Interesting product. I may be missing a trick here, but is it possible to link to your Google Apps mail/calendar? If I login to Google with my apps username and password, it just tries to connect my @gmail.com account. This could be because my apps email is a secondary email on my @gmail.com account

... Google seriously suck at accounts!

<comment><USER29> "... Google seriously suck at accounts!" agreed.

<comment><USER30> Well, when Yahoo Mail launched, they only reserved some of the employees' @yahoo.com email addresses. My friend is still pissed about that to this day.

</comment></comment></comment><comment><USER31> sounds pretty cool, when i was working on a mac i couldn't live without spotlight.

i also like the little info box at the bottom where it says that greplin was founded in September 2010. :P

</comment><comment><USER32> Where's the autocomplete? I only see find-as-you-type -- there are no Google- suggest like _suggestions_ , per se.

Also, I am very curious to see back-of-the-envelope calculations on resource usage -- e.g. what is the expected billing per user (in dollars)? ("Doesn't matter" is an acceptable answer for now, but I'm worried that this type of service is unreasonably expensive to provide and cannot be offset by ads/freemium models)

</comment><comment><USER33> This is one of those ideas that's obvious as soon as you read it - congrats, Dan.

However, it really needs to support multiple accounts from the same service.

</comment><comment><USER34> That's a great thing, but I really think it should be a desktop app or maybe a desktop option as an alternative to the online service. I know the drawbacks and they are real but I'm just not ready to trust _anyone_ with all my data from all services. I know I can delete the account at any time but then I cannot use it any longer.

</comment><comment><USER35> Sometimes you sign up for something and wonder how you ever lived without it. I'm getting that feeling already, and I haven't even used it yet. I signed up before finishing the article, it's indexing my data now.

Assuming it works as advertised, this sounds like a brilliant concept. Any timeline on when I can actually start using it?

</comment><comment><USER36> I absolutely love the idea of an extensible framework that you could write plugins for to connect up to various sources of data, but I'd much prefer the same functionality in a desktop application rather than a hosted web-app. That way you wouldn't have to be paranoid about what is being done with all of your personal information...

</comment><comment><USER37> Great work, but I don't personally see much value in this. Gmail already has great search, and Facebook and Twitter have good-enough search.

I'm also a little leery of handing out credentials to a third party. I would imagine that adding in support for web-services to desktop search engines (Google or Windows) would provide better value.

<comment><USER38> Agreed Gmail/FB/Twitter all have good enough searches, but wouldn't a simple (spotlight-like) search box for all that be game-changing?

From the article: "Greplin only uses OAuth and other APIs for authorization, so they never see your third party site credentials".

<comment><USER37> Calling it game-changing is (to me) a little hyperbolic. It looks to be convenient and time-saving, but my search problems extend primarily to Gmail, which already has great search. To each their own, but I very infrequently use FB/Twitter search. I actually sort of distrust FB/Twitter search (e.g., search is not finding something I'm _positive_ is in there), and adding an abstraction layer doesn't alleviate any of that distrust.

To be completely honest, if Greplin were acquired by Google or MS, I'd be more willing to try their service out. I understand that they're using authentication mechanisms that don't require credential caching, but my content is on there _somewhere_. This is more of a touchy-feely paranoia thing, and not exactly backed up by any technical facts (i.e., for all I know, the smartphone in my hand has malware on it that is broadcasting my every keystroke to some teenager in Russia, so worrying about greplin may not make a lot of sense. But I can choose to use/not use greplin, whereas I'm sort of stuck with my phone).

Again, this is the value-proposition to _me_. I don't generate/consume enough content that I need cross-site search at my fingertips. I would imagine that others who are more involved with social sites would appreciate a tool like greplin.

<comment><USER39> _This is more of a touchy-feely paranoia thing_

I find it funny how feeling wary about giving out _all_ _your_ _passwords_ to some startup company is considered "paranoia" nowadays.

<comment><USER40> It doesn't store any of your credentials!!!

<comment><USER39> Oh. Really!!!

But somehow they need access to my data, right? To index it?

So we're working on the promise that they won't do anything dumb or evil in the future. Not with that index, nor with the API tokens that grant them access to, uh, all my online data.

Great for people who have always wondered "Why do I need so many stupid passwords, I have no secret data anyways" I guess.

</comment></comment></comment></comment></comment></comment><comment><USER41> This is an awesome idea. Any plans top allow custom indexing plugins? I'd like to be able to index different services and also to deal with special file formats.

I'd also like to be able to search from Emacs, I've signed up for the API so I'll see if I can make that one happen myself :)

</comment><comment><USER42> We'll see the real value of this service I believe when more and more desktop applications move online. Can you imagine how useful this sort of service would be in the enterprise?

Looking forward to Greplin launching more indexes and developing further.

</comment><comment><USER43> Very cool product, if it indexed google apps and integrated with spotlight it would be part of my daily routine. Great work Daniel, your future looks bright!

</comment><comment><USER44> Any plans for a desktop app like Spotlight? Or a browser plugin that added another search box into the browser for my cloud data searching?

</comment><comment><USER45> When attempting to log on after logging off, I get an invalid password error (I know it's valid). It also seems that the "forgot your password?" link doesn't work at all. Would you happen to be storing passwords in plaintext in ASCII or anything similar? I can't think of any other reason that my password wouldn't work (it's a random UTF-8 blob).

</comment><comment><USER46> Looks really awesome, can't wait till my life is fully indexed. Congrats Daniel and Robby

</comment><comment><USER47> (Looks _very_ good. I can see this becoming as big/successful as DropBox.)

Question: Does it do anything more than search? E.g., can you sort your indexed data into folders? Tags? Or are these concepts now redundant?

</comment><comment><USER48> Too cool, I signed up and will be waiting for my 'go-ahead' mail. Also signed up for the api, I have a nice little command-line tool in mind that I'd like to build. When can we expect API access? :)

</comment><comment><USER49> just wondering .. in general what are people searching for on linkedin and facebook, that greplin does better than just going to these sites directly ?

<comment><USER50> events are a GREAT example.

long term, services like greplin will also make it easier for people to switch / move around across service providers for various cloud functions. for example, the more greplin gets used the easier it will be for folks to switch to using event webapps other than facebook.

</comment></comment><comment><USER51> For the Facebook search, can you also index of my friends' wall posts, as sometimes they post relevant information there?

</comment><comment><USER52> > _The original inspiration for Greplin? Says Y Combinator cofounder Paul > Graham: "He was on his way to a party, and he didn't remember where the > address was stored. Was it a Facebook event, or in an email, or in his > calendar? It was a pain to try searching all these things from his phone." > So he built the solution._

If you can't memorize the address you write it in your phone's organizer/reminder. This sounds a bit like over-engineering.

</comment><comment><USER53> Nitpick: why do I have to register when Greplin oAuths to a number of other services? oAuth should be sufficient.

</comment><comment><USER44> Would be slick to integrate Disqus, Backtype,and the other commenting systems as well.

</comment><comment><USER29> very cool to have the pro feature ready from the start, rather than the someday we will figure out how to make money approach. lots of value for the business user there.

</comment><comment><USER54> It's tools like Greplin that make being senile at 36 ok

</comment><comment><USER55> yeah, if something is closed from Google, just enter passwords and open it.

btw, Google should create a similar service - like enter all your passwords and we will add your personal search results in a some frame. ^_^

It is remarkable that such simple idea got funding and that YC provided so much support for a young guy.</comment>


Wait, did Google copy my startup's logo?  - <AUTHOR> http://venetiglio.tumblr.com/post/89967449684/wait-are-we-so-good-that-google-had-to-steal-our

<comment><USER2> I don't think so. Differences:

1\. Google's logo is a heart rather than an oval.

2\. The shades of colors are quite different - Google has purple and saturated shades of orange rather than various shades of yellow/orange.

3\. The angles are different - Google is straight-on while yours is oblique.

I could just as easily argue that your logo copies the flip-books I made out of yellow sticky notes in elementary school. Same colors, same fold-out movement, same angle as a flip-book on the table.

It's natural to see similarities, but that doesn't mean someone copied you unless the logos are basically identical. There are only a limited number of design choices that actually work out well, and when you consider the millions of logos out there, it's basically a given that a highly-publicized new product will be similar to _something_.

<comment><USER3> yes. this. in this case it would seem "There Is Nothing New Under The Sun"

</comment></comment><comment><USER4> No. The global tech authority did not copy a Latin Instagram-for-fashion company's design for their health related mobile app. How did this make it to the HN front page? This is garbage.</comment>


Shiny – A simple angular plugin inspired by the logo on Google chrome site - <AUTHOR> http://x1a0.net/angular-shiny/ <comment><USER2> "For now only Chrome and Safari are supported." (from the github repository page). I think that needs to be repeated on the page you submitted or people will wonder why nothing happens in other browsers. The "Ready to shine" text suggested to me that the module loaded and initialized fine.

<comment><AUTHOR> Good point and sorry for that - now it's added :)</comment></comment>


''Al Jazeera'' Reports on Latvia's Rapid Deforestation. IKEA? - <AUTHOR> http://www.baltic-course.com/eng/markets_and_companies/?doc=36881 <comment><USER2> So where did you get the IKEA connection?</comment>


Matt Balze's Slides for the RSA Conference 2011 - <AUTHOR> http://www.crypto.com/papers/rsa2011-blaze.pdf

<comment><USER2> Pro Tip: make sure you spell the subject's name correctly in your submission title. Matt Blaze, not Matt Balze.

edit: And it might help in this case to indicate _why_ the link is interesting. Matt was asked by the RSA Conference organisers to provide his PowerPoint presentation. The second slide of the three-slide presentation that he provided is titled "I'm not using PowerPoint in my presentation."</comment>


Making Windows Slower Part 1: File Access - <AUTHOR> https://randomascii.wordpress.com/2018/04/17/making-windows-slower-part-1-file-access/ <comment><USER2> That's a pretty good and deep look at MS internals. I've been trying to figure out what facebook's flow is so darn bad on Windows. Using this approach might actually give some results.

<comment><USER3> Is this the Facebook web page? If so then using Chrome's profiling tools would be the best choice. Although, I find most web pages so complicated that they are hard to understand well enough to optimize.

For any native app performance problem I highly recommend xperf/ETW. It's an amazing tool that almost always lets me figure out the problem. tinyurl.com/etwcentral.

<comment><USER2> No, I meant the flow binary: [https://github.com/facebook/flow](https://github.com/facebook/flow)

It's a static typechecker for JS, somewhat similar to typescript. It's written in OCaml, which one of my colleague tells me has some perf issues in Windows.</comment></comment></comment>


Why Hackers Should Organize Unions - <AUTHOR> http://thecruu.com/2016/12/why-developers-should-organize-themselves/ <comment><USER2> As educated and credentialed persons, there are better ways to gain leverage and preserve value.

Most other professions do this through state licensing with educational/practice/insurance/signage/etc. requirements.

I mean, think about it: It's easy enough to get around the unions with scabs, but you can't just take some guy with a degree in civil off the boat and give him a job. He has to have his five years in and his PE before he can start signing plans.

</comment><comment><USER3> Lots of commentary on this recent "Ask HN":

[https://news.ycombinator.com/item?id=12771374](https://news.ycombinator.com/item?id=12771374)</comment>


The Rise and Fall of Khaki (2016) - <AUTHOR> https://www.racked.com/2016/8/25/12417314/khaki <comment><USER2> What world is this author living in? I see khaki all of the time. It's the most common material for shorts (jean shorts may be on the rise, but the go-to fabric is still cotton/cotton-khaki) and it's a prep staple here in the northeast (anyone wearing Nantucket Red? it's dyed over a khaki fabric).

Also I'm aware this will make me sound like a snobby sartorialist, but anyone who thinks of 7 For All Mankind is premium denim, especially if that someone writes for a fashion blog, is not someone I want to take fashion advice from. Overpriced, yes, premium, certainly not. Actual premium denim would be RRL, Iron Heart, or any of the other Japanese workwear outfits specializing in heavy selvedge raw denim.

<comment><USER3> The article is from a women's point of view. For women, khaki is much less common now than it was 10 years ago. 7 for all mankind is a premium denim for women. Heavy selvedge denim is a niche market and not representative of all premium denim

</comment></comment><comment><USER4> > Men in khakis look like frat boys and youth group ministers from Tennessee

I wear khaki every day. I wonder which I resemble.

Contrary to the author's assertion, I don't iron my khakis. Literally nobody cares if they're wrinkled. Plus, they're coffee-colored, which is a bonus because I occasionally spill coffee on my lap. Also, where on earth do you find comfortable denim? It's hot, it's stiff, and it wears out instantly. The popularity of canvas mining trousers never ceases to amaze me.

Khaki is comfortable, socially acceptable, and inexpensive. Why would I ever stop wearing it?

<comment><USER5> I mean did you _see_ the picture that immediately precedes that quote? If whoever wrote this also chose that photo as an exemplar of style, I have to figure that by itself is pretty good _prima facie_ evidence that the woman has no taste.

<comment><USER4> > I mean did you see the picture that immediately precedes that quote?

Nope, this is what I get for using w3m :) I was probably not the target demographic for this article at any rate! Guess I shouldn't be commenting on articles about fashion without looking at the pictures.

<comment><USER5> I hear it's not a problem if you use w3m in rxvt or xterm, or on the console. But you're not missing much in this case!

</comment></comment></comment></comment><comment><USER6> Between this and the recent article bemoaning cargo shorts, literally everything I own offends the fashion gods, I guess. :(

<comment><USER7> You're just so far ahead of the curve, these people can't see it yet. :P

<comment><USER6> Story time: in 1999, I transferred from the University of Wyoming down to U. of Arizona. The Friday before classes were to begin down there, I went walking around campus, so I'd have an idea of where I should go and timing and all that. I was an "Ecology and Evolutionary Biology" major, and so I needed to find the EEB building. I didn't have a map, so I had to look at the big maps on pillars that were located around campus and get a general idea of where things were, then try to head in the right direction and hope for the best.

Anyway, I was having some trouble finding the building. I was wandering around, somewhat lost, when suddenly I saw two middle-aged guys coming out of a building wearing khaki shorts, khaki shirts, and floppy khaki fishing hats. I thought, "Ah! Those look like ecologists!", and of course they were. Only us and the geologists would ever have dressed that way. It's like a field work uniform!

</comment></comment></comment><comment><USER8> >The thing about khaki is that it's not something specifically dated like low- rise bellbottoms or t-shirts emblazoned with vintage road signs; it's simply a fabric.

Khaki is a color, the fabric is chino and it can be dyed many colors: [https://en.wikipedia.org/wiki/Chino_cloth](https://en.wikipedia.org/wiki/Chino_cloth)

I know this seems like a minor nitpick but it's hard to take the rest of the points seriously with such a major misunderstanding of the basics.

</comment><comment><USER9> I understand that fashions wax and wane, and that khaki slacks might not be as haute couture (or whatever) in 2017 as they were in 1997. However:

(1) They're still ubiquitous in most office workplaces. Perhaps not for the HN crowd here, but certainly out in the real world.

(2) I'm sure the fashion trend pendulum will swing back around eventually. The author's argument to the contrary is basically, " _Khaki 's require an iron, and millennials don't own irons_". I don't know if that assumption about iron- ownership is true or not, but I do know that wrinkle-free khakis have been the norm for 30 years now. Where are you buying slacks that still need ironing?

<comment><USER10> From the store that explicitly does not sell non-iron khakis because they have a sheen and texture that many find unappealing.

<comment><USER9> (shrug) I guess that must be the same store that sells blue jeans for $200 or more, instead of around $50 or less. I wouldn't really know.

Man, I'm glad I'm not in my 20's anymore.

</comment></comment></comment><comment><USER11> No one told VCs apparently.</comment>


Ask HN: How do you read programming books? - <AUTHOR> How do you read a programming book? By programming books, I mean books which teach a language/framework/tool.
Do you read it in one go and later try examples or go through entire book by trying all examples?
Do you read the entire book or just the part to get the job done?
What methods/techniques have you found useful while reading such books? <comment><USER2> I'm going to give away the secret of autodidactic learning here. I developed this technique in college. Although there was no such thing as YouTube back then, iTunes etc.

I get at least two, preferably three data sources on the same subject. Read them all in Parallel and take notes. Getting multiple perspectives is critical.

What works for me is two well-made textbooks and a Youtube series, iTunes university, etc course.

""In almost all textbooks, even the best, this principle is presented so that it is impossible to understand." (K. Jacobi, Lectures on Dynamics, 1842-1843). I have not chosen to break with tradition."

–V. I. Arnold, Mathematical Methods of Classical Mechanics [5], footnote, p. 246

<comment><USER3> Exactly how I aced high school. And got into MIT. Much less useful to me in college. Even less useful now. I must have 100 programming books in Google drive.

The only way to learn something (and certainly programming) at a high level is to force yourself to write down a well- defined, closed-end problem, and then sit down and solve the motherf_____r. You learn what you need to learn, build, and invent along the way, and that survives longer than the original problem.

<comment><USER4> Right. I think learning this way forces yourself to solve the problem by teaching the discipline to yourself. It's always said that you don't truly understand something until you are able to teach it to another so in that sense you a sort of "tricking" yourself into teaching it to yourself as you learn it. It's a round about way of thinking / doing things but those mental gymnastics feel necessary to me to absorb such unnatural and abstract (to me) topics.

</comment></comment></comment><comment><USER5> 1) Make sure you're reading a quality book. Sturgeon's Law[1] is true -- 90% of everything is crap including programming books. Check amazon reviews, forum recommendations for consensus of quality books. (E.g. many of OReilly "Head First" series of books have cute cartoons but they actually don't have quality content.)

2) Most programming authors do not write about _tradeoffs_. They write about language syntax or library features and end up being (inadvertent) evangelists. All languages have warts and problems that books don't talk about. To supplement book reading with a dose of real-world realities, always corroborate with forum discussions, stackoverflow, etc.

3) Instead of reading 1 book, go through 2 in parallel from different authors. E.g. read about monads chapter in 1 book and find the same topic in another book. Different authors explain concepts in different ways which can help reinforce the learning

[1] [https://en.wikipedia.org/wiki/Sturgeon%27s_law](https://en.wikipedia.org/wiki/Sturgeon%27s_law)

<comment><USER6> Head First book author here -- I wrote Head First C#, Head First PMP, and Head First Agile (and three other, non-Head First O'Reilly books) -- and I wanted to push back on your first point. We work really, really hard to include quality content. But I understand why people sometimes make the point that you made; I did the same thing myself at first.

It's easy to dismiss one of our Head First books as less-than-serious if you're not used to the format. There are a lot of pictures. There's a LOT of whitespace. There's redundancy; we'll say the same thing more than once. And most of all, when we do our job right they're not boring -- which, to many people, reads as non-serious. But we find that when people approach Head First books with an open mind, they find that it's actually a really effective way to get a lot of information into your brain quickly and easily.

We also know that while a lot of people love the informal and highly visual format, some people just can't stand it. There are some people who just want a dense, concise, terse book that they can absorb all at once. Readers like that just won't like Head First books. That's why every Head First book starts with an introduction that says who the book is for and who it's not for. Coincidentally, my coauthor, Jenny Greene, and I just did an interview on Dave Prior's "Drunken PM" podcast, and the first question he asks us is about this "Who this book isn't for" section: [https://www.projectmanagement.com/blog- post/34188/Head-First...](https://www.projectmanagement.com/blog- post/34188/Head-First-Agile-with-Andrew-Stellman-and-Jenny-Greene)

Short, shameful confession: I had a similar reaction to yours when I first saw Head First Design Patterns; I dismissed it out of hand, ostensibly because there were some less-common design patterns from GoF that it didn't cover, but really because I just didn't "get" the format. A year later, when our editor at O'Reilly floated the idea of writing Head First PMP, I went back to it and _really_ read it, this time with a much more open mind (for example, I actually _did_ all of the code exercises instead of just reading them). I realized why I'd made my earlier mistake in dismissing the book -- and gained a lot of respect for how much work Eric Freeman, Elisabeth Robson, Kathy Sierra, and Burt Bates had put into it. They were really careful about what they chose to cover, and covered those topics really thoroughly. They give you several different chances to "get" each concept, showing it to you from different angles so that you really absorb the full context. They put a lot of care into managing the pace of the book so it's a steady stream of learning and not a flood. They repeated things that needed repeating. And it all works. Really, really well.

I thought I'd understood design patterns pretty well before I _really_ read Head First Design Patterns. afterwards, I was actually better at using them in code in real life. When I'm not writing books or training teams, I'm writing code both professionally with teams and as outside of work. The incredible quality of the content in their book helped me understand design patterns better.

Jenny and I strive to bring the same care to our Head First books. I think we've done a pretty good job of including quality content that's worth our readers' time; I hope they agree.

<comment><USER5> _> There are a lot of pictures. [...] highly visual format, _

Thank you for your response. To clarify, I'm not an elitist that rejects cartoons and informal style. For example, I think the _" Calculus for Dummies"_[1] with the cartoons is a good math book.

I'm also not really not talking about the visual "clutter" that others complain about either.

Cartoons are fine but I prefer that the drawings/illustrations really _impart knowledge or insight_ rather than "decorate" a book's page like wallpaper.

For example, I looked at "Head First Networking"[2]. Using Amazon's _" Look inside"_ feature to browse some pages:

\- page 1: the clipart of the man and woman and the thought bubbles do not reward the user with quality knowledge in relation to the space they take up

\- page 19: the clipart of the tourist with the arrows and thought bubble does not actually teach a networking concept

My point is: just _because_ a book has cartoons & unserious style doesn't mean it has good presentation of teaching. It might be a suboptimal book that just happened to use cartoons.

Another way to put it: Comics can be a very powerful way to illustrate concepts but their power is _underutilized_ in the Head First books. The cartoons are often "jokes" instead of teaching.

 _> which, to many people, reads as non-serious_

Similar to cartoons, I have similar complaints about "conversational style" that many authors think helps with pedagogy but it really doesn't. (You can explain things terribly while using a conversational tone, and likewise, explain things clearly with a serious tone.) I'll save that criticism of that for another essay.

[1] [https://www.amazon.com/Calculus-Dummies-Lifestyle-Mark- Ryan/...](https://www.amazon.com/Calculus-Dummies-Lifestyle-Mark- Ryan/dp/1119293499/)

[2] [https://www.amazon.com/Head-First-Networking-Brain- Friendly-...](https://www.amazon.com/Head-First-Networking-Brain-Friendly- Guide/dp/0596521553/)

<comment><USER7> >Similar to cartoons, I have similar complaints about "conversational style" that many authors think helps with pedagogy but it really doesn't. (You can explain things terribly while using a conversational tone, and likewise, explain things clearly without a serious tone.) I'll save that criticism of that for another essay.

If "you can explain things terribly while using a conversational tone, and likewise, explain things clearly without a serious tone", then does it not suggest the tone is not a good signal for quality?

David Griffith's Intro to EM book is written in conversational style. And is by far the best book I've seen on introductory EM (and I've read a bunch).

<comment><USER5> _> , then does it not suggest the tone is not a good signal for quality?_

You highlighted my spelling mistake and I updated the post to correct it. My examples were meant to be opposites.

There are many bad books out there with a conversational style. There are good ones too. The problem is that readers are mislead by the easy-going tone of the first few pages and therefore lulled into thinking it's a quality book _because_ of its chattiness and informality.

Likewise, many authors writing in a conversational style think they wrote an easy-to-understand book _because it 's conversational._ That cause & effect isn't true. One can write a beginner book that has clear teaching with or without a conversational style.

</comment></comment></comment></comment></comment><comment><USER8> There are two kinds of programming books. Some are technical references covering a specific technology (usually a tool, library, or framework); I generally find these to have a short shelf-life and to be lower in quality. New versions of software can quickly result in their obsolescence, and sometimes the examples and precise details are not accurate even when published. However, I have found such books to be _essential_ when learning an emerging technology, where maybe there's API documentation but very little (or very poorly written) conceptual/overview documentation. Often the book's author is elbows-deep in the implementation of the technology and can explain some of the essential concepts. I typically buy these kinds of references only when I know I need to come up to speed on something, often a new fresh open source hell with its own jargon (looking at you, Angular), and then I make a dedicated attempt to power through the book and the examples. You can go broke if you buy this sort of book and don't put in the effort for an immediate return; also, you can skip whole chapters that aren't applicable to your situation.

The second kind of programming book covers a broader topic and/or more mature technology. They can vary from an academic orientation to almost a sly anti- intellectual style (e.g., the Camel Book). Here you learn core concepts that will be more-or-less evergreen. These are books you will want to read cover to cover and then return to again and again, for years in the future. These books vary in their tone, some serious, some silly, but they all should be fun to read due to the clarity of their prose and presentation of essential concepts. The ultimate example is TAOCP.

<comment><USER9> Spot on ; we might need a name for this second category of books ("technology- agnostic"?).

These are the books I want to search for in a bookstore ... without getting polluted by the unlimited variations of "Teach Yourself <SomeShortLivedTechnology> in 7 days" or "Learn <SomeUsefulTechnique> with <SomeBloatedFramework>".

<comment><USER8> Well, I'm not sure I'd say "technology agnostic". I would include Programming Perl or Stroustrup's The C++ Programming Language in the second category. Parts of both are now dated, the accidental noise of APIs and so on, but the essential concepts are explained so fundamentally that you'd have no problem adapting to current APIs.

Sometimes, though, you just really need help coming up to speed on a bunch of accidental syntax and incantations to get the job done.

</comment></comment></comment><comment><USER10> I've heard studying "sinks in" when you're recalling what you learned earlier. So I spread out the reading of the book, trying to remember the next day what I'd read the previous day (before checking in the book to see how well I've remembered it).

I've also heard people say that you have to learn by doing. So I try to play around with whatever I've learned from the book. Doing the examples is good, but dreaming up your own fun variations can be even better.

Someone once suggested that re-typing the examples is actually really helpful too. Your whole brain is engaged -- fingers moving, keypads being chosen -- and whatever patterns there are in the language start to emerge.

I think the most important thing is just "be gentle with yourself." It's possible to push too hard to learn something big and complicated all at once. It wouldn't hurt to Google up a few online discussions, just to get a little extra context for what you're reading in the book -- and a supportive community.

<comment><USER11> Did you take "Learning How to Learn" by Barbara Oakley?

</comment></comment><comment><USER12> Build a mental map of where to find things, and then refer back for details as needed:

1\. Skim the whole book. The goal here is to learn basic concepts, keywords, and the structure of the book.

2\. Start coding, refer back to the book as I encounter things I don't understand.

This works better with paper books, because it's easier to remember where I saw something ("upper corner of left-hand page next to diagram, towards the end of chapter 10").

<comment><USER13> More on skimming:

Start with table of contents (topology) then index (vocabulary) if present.

Read summary of each chapter, starting at back of the book, working to front of book.

Based on that survey, deep dive into new/interesting (to you!) chapters in order of priority. Reference earlier chapters as needed.

<comment><USER14> OT: The book "How to read a book" drives home the importance of skimming a book and how to do it well.

</comment></comment></comment><comment><USER15> I learn something first by using it, applying tidbits from blogs, online tutorials, Stack Overflow and just trying to figure out how to get it to do what I want.

 _Then_ I read a book on it, cover to cover.

It's much easier to get everything to "click" when you've already tried to solve the relevant problems yourself.

Then continue working with it, and every now and then read another book cover to cover, for important things.

<comment><USER16> I agree with this approach. My experience has been that having a primitive mental framework in place really helps with retention (and interest) when you're doing in-depth reading on a topic (which you probably are if you're reading a book). Start superficial, mess around, and then things not only make more sense, but are also more exciting and easier to remember, when you really dive in.

</comment></comment><comment><USER17> Lately I've been just reading and reading and reading without actually trying any coding. Mainly I've been reading about functional programming, languages I haven't used before, etc. The way I got into programming was through constantly trying to build things, without much formal education. I think once you have a certain amount of real word experience it's important to sometimes take a step back and just try to learn about new things without the distraction or pressure of trying to build something right away. This all depends on a person's point in their career and goals though of course.

<comment><USER18> I'm in sort of the same place, I'm in a reading frenzy to build up a vocabulary and learn category theory, functional concepts, etc.. While this is good I know I ought to spend some time practicing algorithms or building toys to really make what I'm learning intuitive.

</comment></comment><comment><USER19> I treat programming as a language. You understand it by going in hard and not trying to understand. If you learn it by trying to dictionary lookup every word, it's really slow.

Instead, you try to understand the context of a sentence, and then the words back from there.

So what I do is I read the table of contents and intro. Intro usually covers what makes the book different and has instructions on how to use it.

You'll find a few pillars. Like if you're reading an algorithm book you'll see Big O notation mentioned a few times. Focus on those pillars. Spend more time on them.

Maybe from Big O, it will give binary search as an example. Then skim the chapter on binary search and return to Big O until you master it.

You'll transverse the more important parts of the book better this way. Many books are not strictly meant to be linear.

I also recommend transversing content in this way as fast as possible once, in one go. Set aside about an hour to skim the entire book.

You'll get the "skeleton" of the book, what holds it together.

Then you focus on the pillars of the book. And once you're done with that, you can do the rest of the content you skipped.

Once you read something, explain it to yourself differently to prove you've mastered the concept. This might involve doing an exercise on it. If you're familiar with it, just drawing a figure might be good enough.

Also I agree with what the others have said: compare with other books on the topic and make sure it's a good one before you read anything.

</comment><comment><USER20> For learning a new language, if I have enough time, I read through the entire book. This helps me learn the terminology and names for concepts. It's much easier to search for more information when you know the right jargon. Reading everything helps to gauge the scope of the language and map it to or from known concepts. This is how I read TC++PL and Ada as a Second Language, which I think worked because their of their breadth.

Sometimes there's not enough time to do that, like when you're thrown into an unfamiliar code base or need to interface with a new API. Then I thoroughly read enough chapters to get the syntax and skim the start of other chapters, plus the index/glossary, again minly to learn terms. The required depth depends on what you're doing. If there's an unfamiliar concept heavily used in the code, of course read those sections more.

I usually avoid exercises because I already have a project or goal, so I work up my own examples that advance those needs but still use the idea or technique of the exercises. I highly recommend trying out a new technique with a small test before applying it at large, or assuming its use as part of the software architecture. You don't want to discover late in the game that the way you planned to use Java generics or C# Pinvoke won't work.

Sometimes the goal is to learn a new technique or dive deeper into the language. I've immensely enjoyed books by Meyers, Alexandrescu, and Sutter, that have more self-contained sections. I still find it useful to read the ToC or skim the chapter introductions, but my mindset is usually more "how can I apply this?", and reading everything straight through doesn't give me enough time to focus on specific things.

</comment><comment><USER21> I read a mess of these books. I subscribe to the Safari service put out by Tim O'Reilly and his krewe.

I look at the table of contents carefully.

I then read the whole book quickly to get oriented. At that point I make a judgement whether it's worth more time and effort.

Still here? Then I reread any chapters that relate to performance, because those chapters usually give a clear view of interesting issues in the subject system.

Then I do one or two of the problems / examples / demos. I do my best to avoid downloading and running them; rather I take the time to type them over; it helps me cognitively to understand what I'm doing.

Then I evaluate whether the material I'm learning will help me solve current problems, or give me ideas about solving future problems, or not.

I put the book in my Safari queue if it's relevant to either current or future problems. Then I go use what I've learned.

I wish I could say I wrote a quick personal review of every book. But I don't.

This works pretty well for me. Safari is a great way to read tons of books, because, well, "tons of books." They don't take up shelf space or have to be moved, or recycled if they turn out not to be useful.

</comment><comment><USER22> I will read the first few chapters to learn the basic knowledge. In the meantime, I will try my best to understand every example and run it. And then I will do something interesting such as writing a more complex program. Practice is my motivation to learn advanced topics. If I only read the book, I will lose interest quickly because this is very boring, especially for some difficult chapters.

After I think I have mastered the basic chapters, I will continue reading the subsequent contents. I won't try to understand everything in the advanced parts. Instead, I just read some useful content and treat other content as a technical dictionary so I can refer to it in the future.

I like learning a language/tool as quickly as possible, and then try to use it more skilled.

</comment><comment><USER23> With a beer in one hand and a shotgun in the other.

Typically I read the book a chapter or 2 at a time mattering how much information it covers. Mattering how technical it is I will write down every word I either don't know or second guess.

I will read over the code examples fully. At the end of the chapter I will try to recall the code example in my head, and see if I can replicate it. Mattering how good or bad that goes I will then move on or write the code out.

I keep notes the entire time I am reading. It helps keep me focus on the subject matter. My mind loves to wonder to much, and I have to beat it like a alien from the fourth dimension.

Also the notes act as long term reference as well I can review them every night for roughly a month to make sure it all sticks.

</comment><comment><USER24> I have read ALL the comments below. They are ALL excellent. I have a BS in Engineering, 1976, with only Fortran IV from the card key-punch days. Ugh! Worked on a defense software program and learned JOVIAL and VAX/VMS at work and C and some Unix at home. Prior, I had read Wirth's Algorithms + Data Structures = Programs. Pascal = JOVIAL = ADA. C seemed to have the real power with access to the underlying computer via & and *. C++ appeared to fix many of C's short-comings and added many concepts (RAII). Eventually, C -> C++ -> Java. With GNU Project and Yet Another Compiler Compiler (YACC), languages proliferated. Without a CS degree, and all the new languages, I backed off programming and switched to medicine (MD). Years later and retired, I found that I really like sw. I realized that I had gone to, possibly, the only college in the US that did not have C/Unix. You folks that studied C/Unix are very fortunate, and I envy you. From 01 July 2013 to 30 June 2014, I read 3060 pages on sw. Soon after, a legacy OS company came out with a major change to their paradigm, so I switched to Linux Mint. I love C, Unix, Linux, Linux Mint, C++. This past summer, I had two (2) weeks to teach my 12yo grandson, my son's son, programming. We took an old laptop, installed a new 500gb hd, installed Linux Mint 17.3-64bit, and off we went. In 8 days, he was creating his directory structure, text editing, compiling (gcc name.c -g -o name), and debugging. It was great fun. I bought him a used copy or K&R and K&R2. Next summer I am teaching my other grandson, my daughter's son, the same stuff. I read K&R in 1983. In 2013 I reread K&R. I read K&R2 every year (4 times now). There are many ways to study, some more efficiently than others. Just do it. My technique is to read the entire book, highlight text, take notes, work examples, and write programs. My first short-term suggestion for a newbie is to buy and read "The C Programming Language", 2nd Edition, by Kernighan and Ritchie (K&R2). My second short-term suggestion is to download for free and install a free Linux distribution. I like Linux Mint. My third long-term suggestion is to pursue a degree in computer science (CS), or computer engineering from an accredited college.

<comment><USER25> What do you mean by 'sw'?

<comment><USER26> Software.

<comment><USER25> Thanks. The initialism on this site is making me crazy. Please just type the full words, it's not hard.

<comment><USER26> yw ;)

<comment><USER27> Lol

</comment></comment></comment></comment></comment></comment><comment><USER28> Just start reading the entire thing front to back. Remember, you gain little from a book sitting on your shelf. The goal is not to do specific exercises, but have an index of ideas I can refer back to. Focus on new ideas / benefits and think about how I could have used them in the past. This helps to add mental hooks to keep things interesting and aid recall.

That said, I may skim sections that are less relevant to what I want to know. For completely new languages / API's I am going to need to do some coding, but 'exercises' seem to be their more so people will use books as textbooks than directly useful on their own.

</comment><comment><USER29> Let's be honest: I don't.

They sit on the shelf gathering dust until I eventually make a project needing some of the knowledge contained within. I then dust it off, scour the index for references to, say, "lock-free multithreaded programming", and read as many sections as I can about that, and as many supplementary chapters as are needed.

A few years back, in my teenage years, I read a programming book about compilers cover to cover, I don't remember much about the contents, just one or two lexing techniques and something about directed acryllic graphs.

</comment><comment><USER30> 99% of the time I don't anymore. I used to read a lot, now I just pull information from the net, I have feeds of information exposing me to new ideas. Most technical frameworks have a ton of information readily available. The only books I go to are Math and Algorithm books I have on my bookshelf when I know something obscure I want is in them.

Learning falls into two categories for me

       - Things you don't know you don't know
       - Thing you know you don't know

I also learn things well when I do active experimentation.

First one is the trickiest as you need ways to be exposed to something you don't know and being able to recognize its importance amoungst the flood of things you are exposed to. Things like HN are helpful.

Second one I keep notes on things I know I don't know. These often are things that I kind of have a fuzzy idea of what it does, but haven't really spent time on understanding exactly what it is. For instance, webpack is on my list, I use it a lot, I modify configs and get stuff done. I have a fuzzy idea of how works. But I haven't spent any time understanding it from the ground up and don't know how to set something up from scratch. But at some point webpack will bubble to the top of my things where I have knowledge gaps. So when I work on my chosen knowledge gap, I read a bunch of things, conduct a bunch of experiements, look on stackoverflow and look to answer questions, see how other people have solved existing problems.

<comment><USER31> > _Things you don 't know you don't know_

Is Donald Rumsfeld a parent of yours ? ;-)

</comment></comment><comment><USER32> I try to avoid programming books. When reading I prefer being disconnected, laying down in a comfy sofa/bed with a hot beverage. Programming books doesn't work very well for me because they make me want to try out the things I read about, forcing me to be at the computer. Some of them even assume you are sitting at the computer, ready to run examples..

If the goal is to improve as a programmer and books being the medium I choose books that doesn't necessarily have an obvious link to programming but benefit my thinking around it. Books on design, architecture, media and education being my favourite. I don't follow any particular techniques but have grown into some habits (reading ~50 books a year). I read multiple books at the same time (~3-4), usually very different in style/topic, alternating between them. This way I never get bored. The new books I choose for reading has to spark some excitement/passion in me, otherwise I'm never going to finish it. It could be as simple as some concept in a book that triggers curiosity, then I just follow the reference/bibliography and further do some quick research (amazon/goodreads) to see whether it looks like a promising book.

Reading about product design will make you a better software designer.. Reading about media will make you see how your application fits in a bigger picture.. ..and so on.

</comment><comment><USER33> When I started out it took a couple of books "c,c++,java" to realize most started from scratch and taught you functions and loops over and over and walked you through a simple program but I needed to find my own way to challenge myself. Eventually I just decided I wanted to build things and fought my way through documentation and the internet to get it done learning the challenges and problem solving. These days I look for more books on theory and from people who solved large problems.

</comment><comment><USER34> Generally, cover to cover, going as quickly as I need to in order to avoid losing interest and abandoning it. This is probably not the most effective way to absorb the material. I would learn _more_ by doing the exercises, taking notes, etc. But when I've tried to do that, I usually don't get more than a couple of chapters in before I run out of willpower.

So these days, I figure absorbing half of the whole book is better than absorbing all of only a small prefix of it.

</comment><comment><USER35> I think I've followed the same method for decades.

1\. Read the whole book in one sitting, to get the big picture in my head, and build a mental model of the thing.

2\. Implement a toy project using the thing. Maybe an hour or two. Go back to the book for details as needed.

3\. Look up something once or twice when building my first real project.

4\. Never read the book again.

In spite of the short time I spend with them, it's so valuable to be able to read at high speed, on paper, a comprehensive bunch of code and concepts.

</comment><comment><USER36> With books that teach a _language_ or advanced stuff about a language, like, say, C# in Depth, I read from start to finish, without actually doing any exercises or really anything else.

I trust my memory enough to rely on remembering that "C# in Depth was talking about this thing", when I run into something IRL. Then I go back to the book and see what it had to say.

</comment><comment><USER37> If the book is documentation, I only read as needed.

> Do you read it in one go and later try examples or go through entire book by > trying all examples?

I do a few of the examples until I learn and figure out how the <topic> works. I won't be doing all the examples, if they're just teaching the syntax or simply showing stuff that can be found at the documentation like functions parameters.

> Do you read the entire book or just the part to get the job done?

I only read the whole book if I'm completely naive and want to deeply learn about the <topic>. I usually jumps chapters which have content I've used before and is not difficult to me.

> What methods/techniques have you found useful while reading such books?

Write your own cheatsheet or take notes as you go. Also use the official documentation for functions definitions and similar stuff.

</comment><comment><USER38> 1\. Preview / Questions - Take a gander at the chapter by reading the introduction, headings, sub-headings, diagrams, images, example code, summary, exercises, questions, etc. Also, write down questions as I preview for myself to answer after step 2.

2\. Read / Recall - After previewing I start reading in full. During code examples I like to soak them in without running them. Then I'll close book and try to recall the code by typing.

3\. Teach / Explain - I follow up with pretending to teach / explain the code examples and my exercise solutions out loud. This helps me figure out what I didn't really understand.

4\. Project - I try and apply what I've learned from book to a personal project.

</comment><comment><USER39> I have a bookshelf full of ones from the 90s and early 2000s, but I haven't read one in years. I mostly learn from internet articles now.

Back then, when I would get a book on a subject I was familiar with, lets say C#, I would skip to the chapters I felt I needed more understanding of or what interested me at the time. (technique #1)

If it's a brand new technology, I'll read the intro chapters that go over the basic stuff (technique #2) to help me get accustomed to the syntax and nuances of the technology, then apply technique #1 (which could be the rest of the book for new stuff).

</comment><comment><USER40> I've never actually gotten through an entire programming book. I'm too hands on. I usually get to building stuff before the book is through. This is good and bad. I'm self-taught and I really want to get through this algorithms book, but I keep getting distracted.

Books are great but many times, they spend so much time on information that I don't need instead of the practical stuff.

</comment><comment><USER41> Skim the book making notes of key parts with pen and paper. The act of making the notes is usually enough for me to commit enough of it to memory to know what to look for when I need it so I get generally don't need the notes again. Then I get going on a simple project that is of relevance to me rather than the one in the book and use the book for reference as necessary.

</comment><comment><USER42> I believe its important to interact or ask your doubts upfront instead of keeping it to yourself. I'm currently reading Haskell and I use freenode irc channel to ask my queries. The channel community is so helpful in clearing my doubts, in fact they could give much more easy / right approach for the problem than the text book solutions.

</comment><comment><USER43> I've almost never used books to learn programming. I read a bit of SICP a few times but lost interest. Otherwise all I do is just follow whatever "x guide/tutorial/introduction" I find on google, or the language's official documentation if it serves as a good learning resource, like for Python and Microsoft properties.

</comment><comment><USER44> Long time I haven't, but when I did, I usually read three or four first chapters in a row, then jumped to certain chapters that I specifically needed.

Also most of the times, the intro and the very first chapters are optional, motivational.

</comment><comment><USER45> Choose a good book. Read a chapter or two before breakfast. Run all the code examples in your head (probably not needed, just my OCD -- same thing with being reluctant to trust calculations without redoing them myself).

</comment><comment><USER46> By not stopping at chapter 1. Depends on the framework to go all in or chapter by chapter. Also a GitHub repo for each book is an excellent idea.

</comment><comment><USER47> Check out How To Read A Book by Mortimer Adler. Great resource for techniques for understanding many different kinds of books.

</comment><comment><USER48> if you spent an hour each day, 40 mins is taking notes on a legal pad, reading, trying stuff, etc. The remaining 20 mins is writing in a notepad the key concepts, summarizing from the other 40

</comment><comment><USER49> sometimes read it all and intend to go back and do exercises, sometimes read it all and actually do them on the way. Probably not all of them.

</comment><comment><USER50> I don't.</comment>