Git submodules revisited - <AUTHOR> https://dev.to/dwd/git-submodules-revisited-1p54 <comment><USER2> I'm unsure why most folks seem to get into a pickle over git submodules but I think it's essentially due to the mental model of how they think about the structure of the "root" project and it's relation to the submodules. This in turn seems to govern how they work with the root project and it's submodules.

I kind of think of the relationship as a pointer into what should be a entirely separately managed project. Changes to that project should happen in that project and only then should the "pointer" be modified. I usually go as far as checking out the submodule separately (to my "projects" directory) when I need to work on it, which of course entirely unnecessary, but for me helps keep that separation.

Another approach I've found that helps to combat issues some people have with them is to not have them littered throughout a project but have a very clear delineation between what are submodule and "root" project git managed files - ie. an appropriately named, usually top level, directory.

In practice I find them an extremely useful way of getting stuff done effectively and efficiently!

<comment><USER3> I agree. I use them extensively with Yocto and the different layers (submodules) that make up my operating system. People have an adversion to them, but I find them easy to work with and very useful.

</comment></comment><comment><USER4> git submodules is just /begging/ for tooling.

On the surface, the commands are fairly verbose. And (as the article pointed out) the documentation on it could use some love.

However the biggest problem I have encountered while using it, is that what code I actually have checked out is opaque without doing the song and dance of actually checking out each submodule & inspecting the dir. This sucks when evaluating the codebase without cloning e.g. in code review on GitLab/GitHub. And the commands/UX for updating them is just painful and error prone.

Really, the difference between putting something in a git submodule and putting something in a private npm/maven/etc. repo is that I can look at a file and read:

        my-dependency v1.1.5

And my human-brain can kind of know what that means.

Whereas if I look at a repo with a submodule, I just see a URL and a SHA. And while actually I think that this is a better model for keeping track of versions, it's terrible from a UX perspective.

There's also a whole host of tooling around your languages chosen artifact/package/dependency management that git submodules don't have yet. It's often supported by the same tools we use for compiling and other task running. Git submodules require another thing that lives outside of that ecosystem.

I kind of wish that a mainstream language would just adopt git submodules as part of their de facto package management strategy and build the tools on top of it we need to make it livable.

<comment><USER5> You can use tags for human readable names of commit hashes. But never rely on tags for security!

<comment><USER4> I don't think the tag actually is a property of the submodule steps itself (as in, it's not written in the .gitmodules), but yes you can manually check out a tag.

</comment></comment></comment><comment><USER6> _" Git's submodules are so universally derided that there's practically an entire industry devoted to providing alternatives for managing dependencies._" Stop right there and repeat after me:

Git is not a dependency manager, git is not a dependency manager, git is not a dependency manager, git is not a dependency manager.

Seriously, use the package manager provided by your build system. Some of them can point to git repos if you don't have a proper package registry, this is a better solution than plain submodules, for many reasons; Transitive dependencies, diamond dependencies, semantic versionion, can't forget to submodule update --recursive, etc, etc.

<comment><USER7> >Seriously, use the package manager provided by your build system.

Git is about source code. How would you use the package manager to manage source code?

The original author seems to he worried that some part of the system is not being updated to the newest available source before being built. I don't know of any system that would somehow automate that process.

The suggested submodule system might work as long as branch names don't change. But in real life they do change, old branches go out of maintenance. So in the end there must be a human making sure you don't miss anything.

<comment><USER8> > The original author seems to he worried that some part of the system is not > being updated to the newest available source before being built. I don't > know of any system that would somehow automate that process.

Subversion with _svn:external_ does exactly this by default, and generally you only peg a revision in an external dependency when you tag for release.

</comment></comment></comment><comment><USER9> The worst thing about using git submodules is it's no longer a simple matter of `git clone url://to.repo` to clone a project. Then, if the person doing the clone is unfamiliar with submodules, it's unobvious how they go about fetching the submodules separately.

The next worse thing about submodules is when you add a submodule to a project, if that submodule has submodules of its own it's completely unobvious how to perform the submodule addition recursively. The `git add module` command doesn't recognize `--recursive`. IIRC the way you work around this is via the magic incantation `git submodule update --init --recursive` after adding the submodule having its own submodules.

I really like submodules conceptually but the current UX surrounding their implementation is _awful_.

<comment><USER10> try using [https://github.com/ingydotnet/git- subrepo](https://github.com/ingydotnet/git-subrepo) that gives you the ability to simply clone a repo.

<comment><USER9> The point is that git doesn't do the right thing.

A random git user with just the URL for my submodule-using repository isn't going to know to use some special thing to clone the repository. They're going to run `git clone URL` and then be frustrated by the results.

<comment><USER10> my point was, that if you use git-subrepo instead, then you get exactly that.

<comment><USER9> git already supports `git clone --recursive[-submodules] URL`, there's no need to use git-subrepo to achieve the recursive clone.

The problem is the requirement of prior knowledge about the repository's use of submodules. The plain clone won't even report any sort of feedback about the submodules being present and skipped, nor any hint as to how to retrieve them: `git submodule update --init --recursive`.

The presence of git-subrepo and `git clone --recursive` is of little consequence from the perspective of the many users who are now familiar with the ubiquitous `git clone URL`.

Does github tell people to use git-subrepo to clone a given repository? Hell, does github even tell people to add `--recursive` when a repository uses submodules? I haven't checked, but don't recall ever seeing it do so in the past.

These are not difficult technical issues, it's just the sad state of the submodules UX in git. I presume it will improve eventually.

<comment><USER10> with git-subrepo, you just clone as normal, you don't even need git-subrepo installed. It just looks like a normal repo. You require 0 prior knowledge. You can update all the code in all the subrepos as a normal repo. Never ever knowing it has subrepos. The only people who need to know and have git-subrepo installed are those that need to sync the subrepos.

<comment><USER9> Thank you for the clarification, sounds like it's worth taking a closer look.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Git is already too horrendously complex. At this point, any feature whether worthy or not, has to be weighed against the learning curve required by new git users (already formidable).

Can't even count the number of times that we brought on a reasonably decent programmer, wrote decent working code, but that didn't have a clue about git, which resulted in the work being a mess of commits across multiple branches and forks.

To make git more powerful, the developers should make it easier to learn, not add power-user features.

<comment><USER12> I have yet to meet any programmer I'd consider "reasonably decent" that didn't easily learn about branching, merging, and rebasing.

On the flip side every single person I've met that is either too stupid or too ignorant to learn the basics of using git also writes terrible code.

<comment><USER11> Totally disagree. The general flow of fork (sometimes?), branch, commit, merge, rebase, and/or squash is ridiculous. Eventually you'll also need to learn stashes, tags, remotes, merge requests, .gitignore, and who knows what. Most engineers just want to get their code into the main working repository. I use git every day, but it comes with so much baggage of vocabulary and ways things can go wrong. I get that git is powerful, it's just far too powerful for the vast majority of projects.

> every single person I've met that is either too stupid or too ignorant to > learn the basics of using git also writes terrible code.

With git, a beginner programmer struggling to bang out some code now has to learn a whole additional system, just to save and share their code. Now, instead of teaching them on the language/product, you have to spend your time teaching them git. Of course experts know how to use git, but everyone else has to spend a week-plus learning a system that's not directly related to their job responsibilities.

It's somewhat similar to lawyer learning Microsoft word, an accountant with Excel, or teaching a draftsman how to hold a pencil... sure the good ones know how to do this already, but people would move so much faster if they could jump into things faster.

<comment><USER13> > "It's somewhat similar to lawyer learning Microsoft word, an accountant with > Excel, or teaching a draftsman how to hold a pencil... sure the good ones > know how to do this already, but people would move so much faster if they > could jump into things faster."

Agree. However, the difference being __all__ those (each) have a universal defacto UI. Even when you write code, you see the result.

On the other hand, (CL-based) git requires you keep a bunch of extra stuff in your head. You have to know why questions (read: commands) to ask in order to "see" what's going on, etc.

We live in a UI / UX world. In that context (CL-based) git feels like a fax machine. Couldn't / shouldn't there be something better? If disruption is such a great thing, why does git get a free pass with "this is how we've always done it"?

The irony baffles me.

<comment><USER14> > shouldn't there be something better?

Mercurial?

> why does git get a free pass with "this is how we've always done it"?

I'd argue that the git monoculture is a much more recent phenomenon than we remember, and driven largely by the hegemonic status of GitHub in pop-dev culture. Now the possibility of using varied tools seems remote because everyone wants to be in the same place as everyone else.

Even the way we talk about teaching and onboarding new devs is couched in terms of GitHub, and GitHub alone.

<comment><USER15> > Mercurial?

It's not.

The basic feature set is pretty much the same, and requires similar effort to grok. Some things are much harder to do in Mercurial, and some things are just confusing (multiple heads, pushing branches, multiple branching models, the "tip", etc.). Online platforms are worse (Bitbucket vs Github) in practice.

</comment></comment></comment></comment></comment></comment><comment><USER16> The best alternative to submodules and subtrees I found is git-subrepo: [https://github.com/ingydotnet/git- subrepo#benefits](https://github.com/ingydotnet/git-subrepo#benefits)

</comment><comment><USER17> I finally found a use case for git submodules: We have a git repo which provides a wrapper around compiling and packaging the Linux kernel for RISC-V, and we use a submodule to link to a specific release of Linux. ([https://github.com/rwmjones/fedora-riscv- kernel](https://github.com/rwmjones/fedora-riscv-kernel))

However this also reveals the awkwardness of submodules:

* Everyone who clones the git repo either forgets or doesn't know that they have to do 'git submodule init' (and maybe update too? even I'm forgetting ...). So everyone asks us on IRC why it "doesn't work" and has to be told what to do. IMO git clone should also clone the submodules and set things up.

* You cannot add downstream patches to Linux this way. For a while we needed a small bug fix which wasn't in the Linux submodule (it's controlled by another company) so we had an awkward workaround in the build system to copy the whole submodule and apply the patch before building.

* The link is to a non-fast-forward branch of Linux, so the commit hash sometimes becomes invalid, which we don't notice until someone is trying to build it from scratch. You'd think that because both the module and submodule are hosted on github, that github wouldn't garbage collect the old commit hash, but that's apparently not how it works.

I don't know if there's some tool which solves this use case better, but git submodules are what we have.

<comment><USER18> >they have to do 'git submodule init' (and maybe update too? even I'm forgetting ...)

`git submodule update --init --recursive` to combine init and update and also recursively.

</comment></comment><comment><USER19> submodules always seem good in theory, but fall apart anytime they need to be updated on a regular basis as part of a dependency ecosystem. We tend to use them as shorter term solutions when we have something we know we want to be an "official artifact" eventually but don't want to spend the overhead setting up a build/publish for that library.

In the sense of working with git submodules, it can be quite painful sometimes, as most HN readers here know. The process of installing and updating them, in my experience, does not follow the principle of least astonishment. When dealing with a project using multiple submodules and switching between different branches, it's difficult to get the right combination of submodule dependencies on the first try.

submodules are a tool like any other and should be used as such. For us that usually means that we want to make a semantic separation between two different projects but in reality that only one project uses another for awhile and so it makes sense to have the less overhead of the submodule dependency vs "real" dependency.

<comment><USER20> Submodules simply ask you to explicitly set the revision of the module that you want to work with, especially when you need to upgrade them. That seems reasonable.

</comment></comment><comment><USER21> We have a situation at work where for security concerns, we want to grant a set of employees access to only a subset of a monolithic git repo. We investigated using subtrees, but it requires a little more manual intervention than we'd like.

So now I'm working on a project to write a single binary that can installed as a server-side git hook which would publish a subdirectory as its own repo, and then syncs commits and branches between the two.

Of course, it's not perfect. It won't be able to handle signed commits or tags. And the repository have to be on the same box (it uses symlinks, but that could in theory be worked around at the cost of a more complex setup script )

But it should be completely transparent to the repository users.

<comment><USER22> Check out copybara

<comment><USER21> Oh, that does look cool. I can see how that would be pretty useful, but it does look like it's a manual process that needs to be triggered, and not automatic. Still, it looks to be more widely applicable than what I'm building.

</comment></comment></comment><comment><USER10> I use [https://github.com/ingydotnet/git- subrepo](https://github.com/ingydotnet/git-subrepo) I find that much nicer

means for most people using the repo they don't have to worry about the other repos.

</comment><comment><USER23> My experience is that submodules are useful and unproblematic. cd into the submodule and treat it as a normal git repo is the easiest way. Then when you're done, cd .. and commit the new submodule commit hash.

</comment><comment><USER24> Git submodules is just some hack apenwarr banged together one day. It is what it is.

Same with Pip (the Python package installer thingy) BTW: it's just a hack somebody put together to scratch an itch.

<comment><USER25> I think that's git subtrees. Unless he did both?

<comment><USER24> D'oh! You're right. My bad.

It's too late to delete the comment. Eternal proof of my pitiful human fallibility.</comment></comment></comment>


Building an In-Browser JavaScript VM and Debugger Using Generators - <AUTHOR> http://amasad.me/2014/01/06/building-an-in-browser-javascript-vm-and-debugger-using-generators/?u=javascript

<comment><USER2> Awesome concept. I love this.</comment>


The Most Highly Cited Paper in Publishing History - <AUTHOR> http://www.jbc.org/content/280/28/e25.full

<comment><USER2> The most cited paper in physics (and/or chemistry) is, last I heard, by Walter Kohn. In fact, if I recall correctly he wrote the top two: Hohenberg & Kohn and Kohn & Sham.

I hear that one of his favourite observations, though, is that you're not _really_ famous until they _stop_ citing you. I mean, who cites Newton?

<comment><USER3> Those are the most cited from the Physical Review journals: <http://bit.ly/jMN0SP>

Interesting because they have such high citation counts in part because they hit a nice spot relevant to both physics and chemistry.

<comment><USER2> Yeah, the top four are the four key papers of Density Functional Theory. After that it gets a little more diverse.

I've met a couple of the people on that list. One of 'em is a nice guy. Another is a complete jerk. And that's all I'll say in my state of only partial anonymity.

</comment></comment></comment><comment><USER4> Misleading headline (exposing a science bias). The article states "This paper, which is featured here as a JBC Classic, is the most highly cited paper in _science_." I don't happen to know if it is still the most cited paper ever, but this article can't actually make that claim without doing the bibliometrics for _all_ of academia.

<comment><USER5> Both the title of the article (headline) and the statement you highlighted, are valid guesses. The number of citations of that paper was 275,669 as of January 2004; quite possibly over 300K by now. For comparison, the most cited article in CS, Rubin's paper on EM, has about 12K citations in ISI. What additional fields of academia (outside of science) did you have in mind?

</comment></comment><comment><USER6> The original BLAST paper has >34,000 incoming links or references, according to Google Scholar.

[http://www2.cs.fit.edu/~dmitra/Compbio/Resources/altschuleta...](http://www2.cs.fit.edu/~dmitra/Compbio/Resources/altschuletal1990.pdf)

Edit: see replies, etc.

<comment><USER5> The number of citations of this JBC article is closer to 300K, so it has a safe order of magnitude more citations than the BLAST paper.

</comment></comment><comment><USER7> The author of the paper, Lowry, is also funny enough to literally make me laugh out loud. I'd point them out, but why spoil them? Read the article.

</comment><comment><USER8> My wife has tentatively agreed to cite this paper in all future accounting papers she writes... that may be the wine talking tho.</comment>


Show HN: Cloak - Secure your public network connections - <AUTHOR> http://getcloak.com

<comment><USER2> Great idea and a nice clean, simple site.

The problem with these free or cheap public VPN services is your IPs (or even blocks) end up blacklisted into the worthless part of the Internet pretty quickly, unless you're paying for a dedicated IP per customer (which I doubt you are, given the price point, but maybe?). Ideally, an IP assigned out of a netblock which isn't at risk for this, too (same problem applies to using Amazon AWS IPs for VPN termination, actually).

I definitely like the idea of pervasive VPNs. There are decent mobile clients for iOS and Android now, too.

There's also the "can we trust you" problem -- if you're saying "use us for super secret stuff", I'd have a higher level of trust required, but you're marketing this as "protect from casual wifi sniffing", and I trust you as completely random people more than I trust wifi networks. If you had a real privacy policy with some kind of technical enforcement and audit, I could trust you as much as say Comcast or Sonic (who would only monitor me with a warrant or good cause, if only because I'm insignificant to them).</comment>


Ask HN: How can I grow single person developed product and scale it. - <AUTHOR>

Hi All, Do not get confused with the title. Just a short background: One of my close friend developed a wordpress plugin which was getting good sales (around 2-3k/month) but he is developing it for last two years.
Though he was happy with the sale (as a passive income) but he was not giving any kind of support for the plugin and most of the email he was not even answering.
Actually he got bored with working in the same staff for last two years, so now he wants me to take over it and keep it growing.
I did some analysis based on old sales invoices so on, it seems there is no such a single solution the software is providing as why the sale was quiet good always.
I am planning to grow the sales. Any idea how can I can grow the sales (e.g it is a wordpress plugin), I planned to improve the support forum, introducing own blog and so on for the product. Can you guys share your experience and give idea how can I grow the sale and improve over all product?
Thanks in advance. <comment><USER2> There's not enough space here to give you a complete outline of how to do things (and whether or not it will work).

All I recommend is this:

Find similar plugins (not necessarily in terms of likeness) that sell about the same or make a little more money and deal with the same level of clients (eg. 500 people buying).

Sometimes the best thing in such situations is to do nothing and just leave the passive income stream as it is (although if you identify a positive demand for a product that requires better paid support, etc. then you can probably grow revenues).</comment>


Show HN: PGannotations.js - <AUTHOR> http://tommy.authpad.com/link-pg-s-footnotes-back-to-passage

<comment><USER2> You can also click the back button.

<comment><USER3> Back also has the advantage that most browsers will return you to exactly where in the page you'd scrolled to.

</comment></comment><comment><USER3> Seems like you can take advantage of the fact that a) footnotes come after the links in the body to them and b) footnotes start with 'f'

[https://gist.github.com/aJanuary/6021827](https://gist.github.com/aJanuary/6021827)</comment>


What Congress needs to do about Deepfakes - <AUTHOR> https://www.technologyreview.com/s/613676/deepfakes-ai-congress-politics-election-facebook-social/ <comment><USER2> They're pitching Internet censorship with criminal sanctions, all because someone slightly slowed down a video of Nancy Pelosi? No, I think the most likely scenario is that some seriously damning footage exists of key political players, and all their patsy NGOs are trying to pre-prime public perception to be able to dismiss anything that threatens their narratives as fake.

This is some true 1984 shit justified by the premise that people are too lazy to think for themselves and that the technocrats must maintain full monopoly over the "truth."

<comment><USER3> absolutely</comment></comment>


Lenovo ThinkPad X1 Carbon 5th Gen Laptop Recall - <AUTHOR> https://support.lenovo.com/fi/en/solutions/ht504453 <comment><USER2> Here's the reason for the recall:

Q10. What exactly is the cause of this problem? Lenovo's investigation and analysis determined that an unfastened, small screw, left in the unit during manufacture, could damage the surface of the lithium ion polymer battery and cause a short, leading to rapid cell discharge of the battery. This defect has led to three failures in the field. Lenovo has not received any reports of a fire.

</comment><comment><USER3>
      Q9. How did you discover this problem?
      Lenovo has received three customer reports worldwide of
      overheating which resulted in damage to the PC. Lenovo has
      received no reports of damage to persons or property, other
      than to the laptop PCs.

There is something missing here. Three people reported that their machines overheated and Lenovo went all-in on a lab investigation and CPSC recall?

<comment><USER4> IIRC, it's not necessarily the extent of the damage reported thus far, but the possibility of future litigations as the result of more wide-spread damage, etc that would drive a recall like this. They obviously deemed it too risky to keep the current systems in the field. Not every company is going to wait until the world burns before being forced into making a recall for a defective product.

</comment></comment><comment><USER5> I got a peek at the recall instructions, for those inclined to check themselves: [https://twitter.com/JustinFrankel/status/962056021156945920](https://twitter.com/JustinFrankel/status/962056021156945920)</comment>


The right way to do iPhone 4.0 OS Backgrounding . . .  - <AUTHOR> http://www.mobypicture.com/user/shuether/view/6955637

<comment><USER2> It seems like disrupting the user is the exact opposite of what Apple was trying to achieve with background support.

The right way to do backgrounding:

\- Consume the least amount of CPU possible. Optimize, optimize, optimize! If you're implementing a network app and there are no events coming in over the network, your process should be doing _nothing_ , blocked in the kernel.

\- Drop as much RAM as possible before you go under. There's only so much RAM on the device. Apple's frameworks try to drop as much as they can, but if you're holding onto a cache or anything that can reasonably be reconstructed, now is the time to drop it. This increases the likelihood of you surviving in the background after your process has been put to sleep, too.

\- Work seamlessly. If iOS terminates your app due to low resources, re-start exactly where you were before. Don't show an annoying dialog like this one when you switch to the background. Don't show a ridiculous "splash" screen that wastes user's time. Just work.

If done right, you can maintain a very small footprint, and then you don't need to annoy the user by asking every time: "is this OK?".

<comment><USER3> That was my initial reaction, too. But for an app like Trapster it might not be a bad idea. (I haven't used it, but I guess it's an app for tracking speed traps)

Most apps do nothing in the background. Others, like music or GPS apps, it should be obvious to the user that these apps are doing stuff in the background. For an app like Trapster, however, it would be easy for the user to forget or not understand that it's working in the background. I, as a user, might appreciate this kind of warning from an app that I normally would not want running in the background.

By default, I would have it not do anything in the background (which is how it obviously works on OS 3). I would have a setting that enables it to run in the background, as well as a setting that enables the warning. It sounds like that's exactly what they're doing, although I don't know what their default behavior is.

<comment><USER4> If the app is using the background GPS process, there's already an indicator in the title bar (the little purple arrow) showing that the GPS is being used.

</comment></comment></comment><comment><USER5> This is very much the _wrong_ thing to do. When I push the home button, I expect the app to go away so I can get on with the next thing. I certainly don't expect it to desperately attempt to preempt my attention one last time.

</comment><comment><USER6> Ok, I was just trying to quickly switch to another app, but thanks for telling me.

Now that you've told me, if I don't want to consume the battery, what do I click?

Or, consuming the battery is fine, and I want to keep Trapster running. What do I click?

// Seems this is a better example of the _wrong_ way to do backgrounding.

</comment><comment><USER7> I'd likely delete an app that tried to pull that, the whole point of background processing is not to bug the user.

</comment><comment><USER8> Re: most of these comments:

I'd be okay with it as long as it only popped this up the first time it went to background mode. Arguably it'd even be a good feature since a lot of users might not know about the tradeoff involved in backgrounding.

<comment><USER9> There's no problem with asking the user about this; the point is not to do when the app is going into background.

If you're concerned that most of your users won't want this, then turn it off by default and have an option to turn it on.

The model to follow here is the iTunes Remote app. It allows you to remain connected in the background, but you have to activate it from settings, where there's a little explanation of the trade-off.

Doing it the way this app does is plain nasty.

</comment></comment><comment><USER10> Trapster allows users to choose whether to run in the background or not. You can also choose to receive push notification if background running isn't your style but you still want to be updated of live enforcement points or road hazards. We want our user to be happy and we listen to their ideas. I hope you'll give the app a try, over 6.9 million users world-wide have :) ~Stefanie

</comment><comment><USER11> Why do you need to tell the user that you're going to keep working in the background for 10 lousy minutes? Because, that's all you get.

</comment><comment><USER12> I'd rather Apple just offer a "notification" API in iOS4.1 that lets apps push their state to the user.

</comment><comment><USER13> For varying definitions of "right". On my phone, Trapster runs, displays an icon in the notification bar and you know "just works" (where have I heard this before) with no user interference.

Some mobile OSes have an application architecture and structure that were built to be multitasked, others are only now adding it and it shows in some apps, like this. It's all about the mindset that the platform takes to multitasking. That is, if you want to call the various implementations "multitasking".</comment>


Easy start for new vim user. Full vim's power available. - <AUTHOR> http://cream.sourceforge.net/

<comment><USER2> Kind of a neat site design; large clickable quadrants to move between sections, that resize. I've never seen anything quite like it.

However, as for the editor itself, I prefer a "raw" vim. :)

<comment><USER3> No offense but the first thing I thought was: what a terrible site design; large clickable quadrants to move between sections, that resize. I've never seen anything quite like it. :)

<comment><USER4> Hmm, "Easy Start For New Vim Users"???

As someone who has generally thought of Vim as the most pathological creation of computer-land _ever_ , there isn't anything in this site that seems aimed to change that impression or even communicate what vi/vim is.

Moreover, I suspect the majority of computer users feel a similar an antagonism to vi/vim and so anyone who's talking about an introduction to vim ought to, uh, explain it.

Moreover, I am a full-time Linux user and I have actually used vi to accomplish small tasks. I can't imagine someone in the know getting anything from this site.

<comment><AUTHOR> Well, its not an informational site. _Cream_ is an integrated set of macros which makes starting of vim use less painfull. It works under Linux and Windows.

I use _vim_ on remote hosts.

I'm curious which distribution contains vi?

<comment><USER5> Well, Arch Linux for one. At least until you upgrade it yourself.

I can't imagine that Arch is the only one either. Xubuntu, anyone? Ubuntu comes default with some strange flavor of vim that I can't stand, so I always install vim-nox ASAP on new machines.

<comment><USER6> Xubuntu has vim 7.1.138 by default. That's not so out of date.

</comment></comment></comment></comment></comment></comment><comment><USER7> Is there a significant advantage to using this over regular vim? This looks like just a gui on top of it, which defeats a lot of the "Don't use the mouse" functionality of vim. It seems to be shooting itself in the foot, why would you give the ability to click to options rather than making it easier to get help via keyboard?

(This is as a new person to vim, who still has to look at a cheat sheet regularly to do basic things)

<comment><USER8> Maybe the idea is to get users hooked on the powerful features first, so they will then decide to tackle the command interface to increase speed.

<comment><AUTHOR> Its exactly my way.

</comment></comment></comment><comment><USER9> Vim's power comes from the fact that it's interface is more or less a command language.

Remove that (or hide it) and you've more or less gotten rid of the major advantage of vim. You'd be better off using eclipse/geany/... over cream.

<comment><AUTHOR> First paragraph: true. But have you tried _exit_ from vim without looking at the manual? It reminded my Borland's Ctrl-k ctrl-d days.

I've used vim/cream on 256MB P3 1GHz laptop to edit files of size in range many hundreds MB. It worked well. If I remember correctly eclipse didn't even start on it.

I've used vim from Linux distribution written on _one_ (but little nonstandard) 3.5" diskette to repair not booting system.

In short: YMMV</comment></comment>


Netflix could lose almost a quarter of its subscribers if it started running ads - <AUTHOR> https://www.cnbc.com/2019/07/05/netflix-users-dont-want-ads-23percent-would-consider-canceling-report.html <comment><USER2> If Netflix ever goes to a model where I _have_ to watch ads, I'm out. Now if they implement a tiered model where you can pay to not see ads (ala Hulu) then fine - depending on the details of the price. For me though, I'm not interested in paying _and_ seeing ads. No double dipping...

</comment><comment><USER3> I would ditch it in a second. Many people I know would.

The upside here is Netflix can get away with a lot, sans ads.

<comment><USER4> What if they kept your subscription at the same price (without ads), and offered a new ad-supported tier for X% off?

<comment><USER3> Honestly, I will ditch it anyway.

There is room in the world for actual subscription media.

If, somehow that ends up not being true, I am more than happy to not pay.

</comment></comment></comment><comment><USER5> Idle speculation stated by Netflix competitors, probably to justify their ads in their paid service offerings.</comment>


Baldwin effect - <AUTHOR> https://en.wikipedia.org/wiki/Baldwin_effect <comment><USER2> We've known that our immune systems learn and adapt (creating specific antibodies, prominently) for many decades now; and that this is obviously highly adaptive (as opposed to dropping dead from an infection, say.) So it's fair to say that everyone in the field fully accepted the Baldwin effect well before Baldwin, while they may not have generalized it. Although if they didn't, why not?</comment>


Secrets of Success - <AUTHOR> http://www.synapsoftware.com/blogit/articles/2007/03/21/secrets-of-success <comment><USER2> What amuses me about all these books is that they showcase a group of over- brainy already-successful people, and then sell these books to the rest of us averagers. Telling us we can do it too. And we lap it all up, not seeing the gaps.

You know what would really succeed? Finding out how an averager can achieve breakout success and then selling it to all the other averagers. And I'm not talking weird concepts and books like Psycho-cybernetics etc.</comment>


Bitcoin Whipsaws Investors as Bubble Shows Signs of Bursting - <AUTHOR> https://www.bloomberg.com/news/articles/2018-02-02/bitcoin-drops-below-8-500-as-cryptocurrency-misery-continues?srnd=cryptocurriences <comment><USER3> I'm ready for Bitcoin, and crypto-currency mania in genral, to either crash and burn or take off to the next level and produce something of value.

I can't be the only one who is growing tired of seeing the same circular discussions rehased on every click-bait article posted by Bloomberg/forbes.

There's nothing exciting or newsworthy about the price fluctuations that have been present since day 1. Sure, the dollar value swings are larger - <USER2> nothing new is happening.

edit: found the wannabe over-night millionaires.

<comment><USER4> I'm ready to buy a new graphics card to render graphics with. That'd be cool.

<comment><USER5> I put together a new computer this week. Everything new but I still have my 760TI in it because I'm not paying $1000 for a graphics card. You can get a 1050 reasonably priced still, but that's more of a lateral move than an upgrade for me. Here's to hoping the market returns to normal soon.

</comment></comment></comment><comment><USER6> Internet is turning into giant algorithmic propaganda and dopamine dripping machine.

Small online communities are thriving in quality but all the business models are gearing on communities becoming huge and exploitable with a content for the average. I.e small communities on reddit have high quality content when they are small and they start looking all the same as they grow, attracting trolls, propaganda and disguised advertising by power users.

-so we have content quality issues due to misalignment of incentives of consumers, creators and gatekeepers.

Here is the thing: Other countries will follow China's model and the current internet giants like Facebook and Google will lose their status of global giants. Even USA has strong anti-globalist movement and a president who is preaching it.

-so we have political landslide towards geographic compartmentalisation.

Bitcoin and other blockchain projects are reaction to the current direction of the internet. Transfer of value, distribution of value and guaranteeing identity are the pillars of the movement.

In my opinion, __investing in bitcoin or altcoins with reasonable projects is a better long-term investment than investing in Facebook or Google. __

<comment><USER7> Anytime you buy a crypto-asset, it's someone else cashing out.

Consider where and how these assets are created, as it's more than likely a system designed to extract wealth from greater fools.

If the system does not let you produce the asset for the same amount of work that someone else put in (cryptocoins generate the bulk of the supply very early, and then cut off produciton to new users forcing low liquidity markets to exploit new users), why would you want to contribute to that cryptosystem?

<comment><USER8> > If the system does not let you produce the asset for the same amount of work > that someone else put in

This. I also can't wrap my head around certain quirks, like for example Stellar Lumens ( XLM ) was/is giving away (for FREE), 16 BILLION of its coins to former Bitcoin Holders.

I just can't wrap my head around paying to buy a coin that the creators have themselves given out BILLIONs of, for FREE.. How do you justify buying into a coin like that?

That like Burger King saying that we'll give FREE Burgers for a YEAR to anyone who has been a former customer of McDonalds (receipt required), but all others have to pay.

Even though I believe in their ( Lumens' ) use case, and they currently have live rollouts of their payment system in partnership with IBM in Asia, I just can't bring myself to buy something knowing they have millions of the same thing to many people for free.

Source: [https://www.stellar.org/blog/bitcoin-claim- lumens-2/](https://www.stellar.org/blog/bitcoin-claim-lumens-2/)

</comment></comment></comment><comment><USER9> I'm not bullish on bitcoin, but that guy literally said that blockchain has no value and bitcoin is a scam. I get that finance guys don't really know what computers are but there are some really neat things happening with blockchain. I personally really like blockchain/ipfs. It's neat and there's a lot happening in that space.

<comment><USER10> "As a currency, Bitcoin should be a serviceable unit of account, means of payments, and a stable store of value. It is none of those things. No one prices anything in Bitcoin. Few retailers accept it. And it is a poor store of value, because its price can fluctuate by 20-30% in a single day." \- [https://www.project-syndicate.org/commentary/why-bitcoin- is-...](https://www.project-syndicate.org/commentary/why-bitcoin-is-a-bubble- by-nouriel-roubini-2018-01)

I actually recommend reading some of Nouriel's thoughts on the matter. I don't recommend taking investment advice from him, or anyone else for that matter. Do your own research and your own critical thinking.

I believe there is immense value in a global currency that doesn't have uninvited middlemen. I also think the immense volatility will slow as people come to understand what cryptocurrencies can represent and better solutions arise.

<comment><USER9> As investments go I hold some coins and a few other things. I ran a 13TH mine of KNC Neptunes during the first big spike. I lost a ton of money in Mt. Gox. I sourced Avalon chips and designed boards for mass production only to have my chips stolen by the chinese government. After my run at all of it it paid for my business partners divorce, a bunch of my medical bills and we had some cash to sit on. At no point did I bet the farm or really ever see it as anything but a VERY interesting experiment.

I've basically been out since then, but might be jumping back in to running a multi currency mine if the stars align right. Again, I don't really care about it as an investment vehicle, I think the technology is interesting and I'm good at the ops around it.

No one really knows what the whole thing is going to be, I think bitcoin, with all it's flaws is here to stay but I think persistent information and decentralized network address resolution is WAY more interesting than money laundering, day trading, buying pizza, futures, ICOs, or buying drugs.

The day I turn on TV news to tell me about my budding technologies is the day you can just dump me in the river. Seriously though that guys yowling doom and gloom is either just ignorance or he's got a bridge to sell. I don't need to google him to find out which.

</comment></comment></comment><comment><USER11> I'm going to wait for it to crash, I am going to buy some, and wait for it to bubble again.

<comment><USER12> That would be too easy. It s probably going to be another coin next time

<comment><USER13> Possibly, but it's not like it's the Bitcoin's first time either.

</comment></comment></comment><comment><USER14> An FX trader saying Bitcoin is gonna die? right, he's not biased at all. Isn't it very obvious that anyone in the current financial world(Traders/FX brokers) doesn't like cryptocurrencies? Why does Bloomberg even have to take their opinion.

On the other hand, yes, there's some bad news across the board. China, India, and Bitfinex/Tether. Despite that, we only see the price going to a 3 mon old price. Once Tether is sorted out and the regulations are clear in China & India, you could see the recovery.

<comment><USER15> _An FX trader saying Bitcoin is gonna die? right, he 's not biased at all._

Yeah, currency traders, what do they know?

 _Isn 't it very obvious that anyone in the current financial world(Traders/FX brokers) doesn't like cryptocurrencies?_

Oh, it's obvious. Ever wonder why? Bias? Conspiracy? Ya know, traders would trade cockroach shit if there was a market. It could be bias, could be that these professionals ask themselves, "how can I value this?" and come up empty.

<comment><USER16> HAHAH awesome I just made exactly the same comment.

<comment><USER15> Our comments do have an uncanny restating of the same thing, all within 60 seconds of each other. I'm not terribly surprised, as parent has an uncomfortable "chem-trails" vibe to it. What ELSE is the currency market hiding from us?

</comment></comment></comment></comment><comment><USER16> "Investors".

<comment><USER17> Your comment is pithy and likely to get downvoted, but anyone who thinks cryptocurrency is an "investment" is a fool. I have heard no reasonable explanation from crypto enthusiasts when I ask them how they arrive at a fair valuation.

Even as a "store of value," anything this volatile is useless. Call a spade a spade: this is nothing short of pure mania and speculation. It will end poorly for the majority of people getting swept up in the hype.

<comment><USER18> > anyone who thinks cryptocurrency is an "investment" is a fool. [...] this is > nothing short of pure mania and speculation.

Strictly speaking, speculation is a genuine investment strategy, but it's only appropriate for those with a high risk tolerance.

<comment><USER19> Then what is the definition of investment and when you speculate on the price rise of an asset what specifically are you investing in?

<comment><USER20> A reasonable definition of 'investment' involves the allocation of capital for the purpose of long-term creation of wealth in the instrument being invested in.

This should be contrasted with 'speculation', which best applies to short-term strategy that merely seeks to skim alpha off the top of fluctuations in value, without regard to long-term health of the instrument.

</comment></comment></comment></comment></comment><comment><USER21> I think there might be some deals in the ICO market when this bottoms out, at least the ones that had some sort of legitimacy. I went and read some whitepapers for a few of the more legit ones and it seemed like they might support a profitable niche business, but they were astronomically absurdly overvalued for what you might get buying their ICO tokens. It's a bit like the dot.com bubble. A good analogy would be waiting until 2002 before buying PCLN.

<comment><USER21> Just a little edit here that didn't come in under the wire... I don't think this is going to bottom out for a year or two and ETH will probably be under $100 when it does. Thus these ICOs that are now trading for 20 cents a token will be trading for 2 cents a token or less. Now, assuming they actually developed a product and are operating and ICO investors are getting some sort of profitable use out of those tokens... I might consider buying a few.</comment></comment>


Enabling Offline "Facebook Likes" Via QR Codes For Your Brand - <AUTHOR> http://www.dericloh.com/enabling-offline-facebook-likes-via-qr-codes <comment><USER2> My project ties QR codes to Twitter, Foursquare, and Facebook profiles: <http://www.getaquirk.com/> So you can scan a QR and easily follow, check-in, etc.

Currently debugging a change in the FB API that broke something. But still something to check out if you're into QR uses.

</comment><comment><USER3> How strange, this was just discussed over on Reddit! A user posted about their library having new vending machines, people were discussing QR codes for nutrition and stuff, I suggested QR codes for liking remotely.

It's an excellent idea and will probably happen with the rise in smart phones, maybe blippy are in a position to do this, maybe they're already developing it!

</comment><comment><USER4> I like it but can't see it taking off until QR readers are standard on mobile OS'. I imagine the percentage of users with both smart phones and QR applications installed on them is pretty small.

</comment><comment><USER5> To me, this seems about as pointless as Foursquare; and yet just as interesting to marketing folks.

<comment><USER6> It may seem that way to you, but just look at how popular Foursquare is. The general public loves it.</comment></comment>


Trickle: Spotify's library for composing asynchronous code in Java - <AUTHOR> https://github.com/spotify/trickle

<comment><USER2> I much prefer the Android Annotations [1] approach to asynchronous functions, but I'm not sure they are solving exactly the same problem. Can anyone comment?

[1] [https://github.com/excilys/androidannotations/wiki/WorkingWi...](https://github.com/excilys/androidannotations/wiki/WorkingWithThreads)

<comment><USER3> I can comment!

I'm not very familiar with Android Annotations, but they seem to be primarily a way to shuffle some processing to a background thread. All those methods return `void`, so if that method wants to return some results (or failures) to the caller, it needs to find some other mechanism to do so. It's not impossible, but it's bound to be more inconvenient than a plain old return value.

A common solution is to return what Trickle calls a `ListenableFuture`. The method can do any amount of async processing (on a background thread, or using async I/O, or whatever) and eventually will 'populate' that future with a value. You can test if that value has been set at any time, or add a callback to be called when the future completes / fails.

The problem with _that_ solution comes when you're dealing with multiple APIs, and need the results of some as inputs to others. (This is commonly known as 'callback hell'.) Trickle's solution to this is to make you define the information-flow graph explicitly, and it does all the shuttling-of- intermediate-results around for you. It seems like an improvement, but I much prefer the RxJava / Akka approach to this, since the types are checked and error handling is more explicit and convenient.

<comment><USER4> Nice write-up.

I'm surprised people don't mind chaining together the information flow like this; it feels more like the runtime should do this sort of leg work. I understand why you'd do this on servers, but not as much on clients. Why not tie up a worker thread waiting for these things?

<comment><USER3> I agree, you're unlikely to feel the need for this when threads are cheap and blocking is OK. (For some client environments, like JavaScript, that's not the case: which is why you see so many similar things in that space, like promises and bacon.js.)

Though in some languages the syntax is light enough that it's actually more convenient to do in in the nonblocking style; Scala has a good story here, and C#'s async/await seems perhaps even cleaner.

<comment><USER4> That's what pains me about JS: there's this meme of being unable to use threads, but it's OK, because threads are _bad_ and _scary_. Thus, promises _must_ be good.

Async/await is beautiful: compiler produces CPS, but logical control flow remains exactly as you'd expect. One slight reservation: the async specifier seems to pollute the entire call tree of otherwise un-related code.

</comment></comment></comment></comment></comment><comment><USER5> This looks promising. The syntax is a bit clunky, however. How would this look with Java8 and lambdas?

<comment><USER6> Probably a lot like [http://docs.scala-lang.org/sips/completed/futures- promises.h...](http://docs.scala-lang.org/sips/completed/futures- promises.html)

</comment></comment><comment><USER7> Interesting idea, but my eyes bleed. And I'm a Java programmer. Would rather use Akka or SlicedBread (the latter trading almost all features for the added simplicity but working well and being super-simple).

</comment><comment><USER8> I'm curious — how does this deal with errors in async calls? RxJava has error handling built in with `onError` functions.

<comment><USER9> Trickle has a similar concept - you can add a 'fallback' to a node: [https://github.com/spotify/trickle/blob/master/src/examples/...](https://github.com/spotify/trickle/blob/master/src/examples/java/com/spotify/trickle/example/Examples.java#L155)

</comment></comment><comment><USER10> ... or just use NodeJS instead.

<comment><USER11> ...to compose async code in Java?</comment></comment>


Startup Reading List - <AUTHOR> http://www.nicolabortignon.com/startup-reading-list/ <comment><USER2> The great majority of people shouldn't read these — not because they're not good books or don't increase one's chances of startup success (they may or may not — I have no clue), but because the great majority of people will think they're doing startup stuff by reading them. It's confusing activity for accomplishment. If you do read these, keep in mind the entire time you're reading these you're not working on your startup. In other words, be very cognizant of the fact that you may very well be procrastinating.

<comment><USER3> This is a ridiculous comment. Read and learn from other people. Just don't substitute that for learning from experiment, instead use it as in a complimentary manner.

<comment><USER4> My interpretation of n72's comment: These books aren't worth reading because they make you focus your time and mental energy on activities that make a good _startup_ , rather than activities that make a good _product_.

There's a temptation, when you're an early-stage startup with little direction, to start "playing house"[0]: Trying make your startup look and feel like all these other successful startups you've seen, and, by reading more books, getting positive feedback for doing those things.

There's obviously value in wisdom gained from those who've walked down this road before. But it's not worth obsessing over how to make the perfect startup. It is worth obsessing over how you can be delivering more value to your customers.

[0] PG's term [http://paulgraham.com/before.html](http://paulgraham.com/before.html)

</comment></comment></comment><comment><USER5> Startup books are like books about screenwriting: the common wisdom is you learn the most by actually doing it. Reading about it without doing it is like reading about the piano or programming without actually doing it.

Now, once you've started the most useful book or resource has to do with the problem you face. If you have customers but need to raise money, its one kind of advice. If you have a customers but the product isn't working, its another sort of advice.

If you don't have customers, well, that's the hard part.

<comment><USER6> The way you related it to programming gave me a whole new perspective. Books and coaching have a role to play in programming, for example. Most of the time it is to accelerate learning it. Yet, you do need to have some momentum to begin with by having an own project. I never looked at it so clearly with regards to startups.

</comment></comment><comment><USER7> This is stupid and the startup community should mature beyond inspirational sources. Making your own company is really hard and I am not talking about creating a company like Facebook or Google, I am talking about creating something that gives you a 10x over a salary without being your own slave. If that is really hard you can't imagine how difficult (removing luck) is to achieve hypergrowth in an ethical way.

</comment><comment><USER8> Thank you. Pretty good list of dev blogs to put on my RSS feed.

For the inspirational books / articles, I usually get too excited and loose my reality check when I read them.

<comment><AUTHOR> For the inspiring books, I tend to divide them in two categories.

1- the really inspiring one, which I read when I'm in a 'low' period. 2- the gems books, or in other words, those who have some key gems related to specific processes or pivotal moments in a startup life. Those are extremely good as 'go to' resources, when you are living the exact same moment in your own venture.

</comment></comment><comment><USER9> Who has time for that while running startup? I'd say: don't read, do your business.

<comment><AUTHOR> Those books have been suggested/given to me by Unicorn founders. There is a moment, as C*O, that you need to mature. Turning your 'garage' project into a scalable and structured company. Those reading gives you good direct insight by people that have been there before. We just need to stay humble and remind ourself that there is always opportunities to learn from others. Not just by our own mistakes.

</comment></comment><comment><USER10> the list also has links to tech blogs maintained by Startups.

</comment><comment><USER11> A real entrepreneur wouldn't bother reading these books. They'd be too busy working on their idea and learning firsthand.

I've read two titles from this list (The Lean Startup and Trust Me, I'm Lying) and halfway through both realised I knew it already.

No book has all the answers. It's better to attack a business idea intelligently in your own unique way.

</comment><comment><USER12> Euclid

Baby Rudin

Collected speeches of De Gaulle and many biographies

The Bible

The Bhagavad-Gita

The Iliad

Thucydides

Xenophon

Chaos and Pain training manual

<comment><USER13> 'Chaos and Pain training manual'

What's this?

<comment><USER12> Powerlifting training manual by Jamie Lewis</comment></comment></comment>


Why Elon Musk Really Fears AI - <AUTHOR> http://www.wearemany.com/elonmusk-ai-fears/

<comment><USER2> I think that of all people who could be automated away, musk is probably not one of them. He probably would be happy to get rid of BS jobs. The problem is that once an AI gets to the tipping point of being able to improve itself, it will a) get super-intelligent, and b) start optimizing everything for it's programmed purpose. There was a great discussion with Nick an the Partially Examined Life podcast. The point of the investment is that we don't know what will happen when AI hits that point, or when it will be. So it makes sense to think about it..</comment>


Apple vs. Samsung, and the rise of Windows Phone 8 - <AUTHOR> http://www.extremetech.com/electronics/135099-apple-vs-samsung-and-the-rise-of-windows-phone-8 <comment><USER2> If Microsoft is ever compelled to release a list of journalists paid to be favorable to them, I'm quite sure this will be among them.

It's been a while since I last saw a piece so replete with failed logic.

Why would phone makers want to give control of the single most relevant differentiator (software) to one company that has more than cozy ties with their former worst enemy? Oh... And the company is competing againt its former PC partners...

I understand not all decisions are based in logic, but only a fool would consider betting the farm on this horse.

</comment><comment><USER3> He is missing one point: Even if Samsungs marketshare drops, there is a whole army of other manufacturers with Android phones. Unlike Sony vs MS vs Nintendo this is Apple vs MS/Nokia vs Samsung+Motorola+HTC+LG+Huawei+Sharp+Dell+Asus+Acer+many others. Ok, HTC will most likely produce a WindowsPhone as well.

Another point: Android is "free" for the carriers and manufacturers.

That's a big difference.

<comment><USER4> You are missing the same point he is missing and one more :)

Its not Apple vs MS/Nokia vs Samsung+Motorola+.... as you are claiming. There are myriad of other manufacturers who are making Win8 devices both phone and PCs/tablets.

Also android being free is a myth. It just cost Samsung a billion for making android phone (somewhat indirectly though) also MS has been after a bunch of the android makers for license fees. So what makes it free?

<comment><USER5> "It just cost Samsung a billion for making android phone (somewhat indirectly though)"

Somewhat? It being Android really had nothing do with what happened to Samsung.

<comment><USER4> are you kidding? Google had the approach where it leaves its hardware partners out in the open unprotected from patents. Microsoft provides patent protection for hardware partners when they develop a device. That is one of the reasons none of the devices got sued. Besides android UI, particularly the original ones are a shameless copy of iOS UI.

</comment></comment></comment></comment><comment><USER6> The article is deeply flawed. Patent protection is important, but differentiation is critical in the eyes of oems. WinMo does not offer differentiation, so that's a non-starter. In addition, 1b is a small price to pay for a free os and market leadership.

<comment><USER7> WinMo doesn't exist anymore, it's Windows Phone or WP.

Can you explain why you think WP isn't a differentiator? It is clearly and significantly different visually from the other mobile os's.

<comment><USER8> He means to the OEMs. They cannot modify it to look differently from other OEMs.

I think this is more important to carriers though. They want people to walk in and see 5 or 6 different looking phones to choose from. Hence the love of Android.

<comment><USER9> ...and the fact that Android has turned into a fragmented crapfest.

There is nothing worse than carrier customisation - it's the worst kind of turd polish.

</comment></comment></comment></comment><comment><USER10> Until Apple go directly at Android/google, until then there are many fish in the sea.

As for windows phone I feel that the new Windows version 8 will in many ways encourage adoption of windows phones as well as force developers in many situations to in all efffect create applications that are not that many clicks away from moving from the desktop to the phone platform, if thats not the case then you can bet Microsoft will make it happen.

Real fun is that it is eventualy getting down to the ability to have a phone handle basic phone stuff and everything else is run in a webbrowser HTML5 style and in that the new Mozilla mobile OS taking that approach will prove very interesting.

That all said the Phone industry has historicaly been a nasty place with regards to money and patents since its very inception [http://en.wikipedia.org/wiki/Elisha_Gray_and_Alexander_Bell_...](http://en.wikipedia.org/wiki/Elisha_Gray_and_Alexander_Bell_telephone_controversy) is a good read into the early phone history. Nothing realy changed since now has it.

</comment><comment><USER11> I am surprised of so much wishful thinking for Microsoft, Nokia.. It has been spoken again and again here and there. but at least if WP8 fails too, windows on mobile please die forever; because it you don't offer anything interesting and let the mobile world move forward.

<comment><USER4> > because it you don't offer anything interesting and

You sound too confident for a person who hasn't ever used a windows phone before. :)

<comment><USER11> i used 3 generations of windows on my phone; and am sick of this coming again and again. yes microsoft has some leverage due to its desktop monopoly(and office) but it must see that it is impossible on mobile to get any traction despite billions spent on marketing, to nokia etc. msft should better focus on developing software on android and ios; they just can't do it.

</comment></comment></comment><comment><USER12> Why does the consumer gain anything? Windows Phone 8 will be released, no matter what the court says, and Nokia will release phones with it.

</comment><comment><USER13> The biggest misconception I see here is treating WP8 vs. Android vs. Apple as an isolated purchase.

Microsoft's real opportunity in the mobile space will be anchored by tight integration with the PC/Xbox. If a consumer is already running Win8 on their PC and an Xbox in their living room, why wouldn't a Windows Phone be the next logical step?

</comment><comment><USER14> Best thing MS can do is to not alienate developers -- especially the core enterprise devs that help grow their server OS/DB/Office license revenues. After the whole WPF/SL snafu I'm reluctant to support WinRT for WP8. No devs = no apps. No 3rd party apps = failed OS.

</comment><comment><USER7> This article is flawed because manufacturers have been making WP devices, but those devices haven't been marketed and therefore are selling poorly.

WP needs a marketing push to get into the minds of consumers, before it will sell in significant numbers.

<comment><USER15> There was a huge (and costly) marketing campaign for the Lumia 800/900, and that resulted in very few sales. The problem isn't the amount of marketing (as WP and Apple can both attest to), its the product. Average users just aren't interested in Windows Phone, and the _Windows_ name does not inspire user confidence (or desire).

</comment></comment><comment> at-fates-hands This article has several fatal flaws.

It's assuming after the verdict (if and when the case is finally adjudicated), Samsung will simply dust itself off and start pumping great phones back into the market that everybody will want - thus giving us more choices as opposed to less choices. Give the current marketplace, I'm not sure optimistic about their chances of survival.

Also, the whole analogy about the Xbox 360 grabbing market share when the PS3 was delayed? It sure didn't last, how could we forget the "red ring of death" syndrome that caused the console to have a 50% or higher failure rate shortly after its release?

<comment><USER16> _Also, the whole analogy about the Xbox 360 grabbing market share when the PS3 was delayed? It sure didn't last, how could we forget the "red ring of death" syndrome that caused the console to have a 50% or higher failure rate shortly after its release?_

What does that have to do with market share?

</comment></comment><comment><USER17> One fact is missing from this analysis: windowsphone is being systematically boycotted to death by retailers and carriers. No matter how many battles Samsung loses, windowsphone will never look "gooooooooood", windowsphone will never be the third mobile ecosystem.

<comment><USER9> All it takes is a single misstep by a carrier/retailer and MS's lawyers will be all over them like crabs.

The platform is actually pretty damn good. I don't get why people are kicking them out.

</comment></comment><comment><USER18> Microsoft stands to gain the most simply because of how bad off the mobile division is.</comment>


Bernie Sanders Was Right to Oppose the Panama Free Trade Agreement - <AUTHOR> https://www.youtube.com/watch?v=a25fZFKtJ7s <comment><USER2> Serious question: Do you consider tax evasion theft?

<comment><USER3> Like most moral questions, It's Complicated.

Even straight personal theft has a range, from the obviously amoral (snatching an old lady's purse) to the morally ambiguous (Robin Hood stealing from aristocrats to feed starving peasants).

Are there legitimate reasons for tax avoidance? Yes. For example, if you were rich but had the misfortune to live in the regime-controlled part of Syria, you'd be stuck there now, and nobody would fault you for trying your very best to move your assets elsewhere to avoid funding a corrupt and murderous government.

So to your abstract question about whether tax evasion is theft, I'd say "sometimes".

However, the specific cases we're talking about here, revealed by the Mossack Fonseca leak, were definitely theft.

There's a perverse trend of rich people in rich, democratic countries who consider themselves above taxation. They're in free countries, and they're free to leave: if they really wanted to take a moral stand against taxation, they could pull an Eduardo Saverin, give up their citizenship, and emigrate to a low-tax country. Instead they stay and lie about their income.

The poor don't pay taxes because they can't. The middle and upper middle class pay taxes, often a huge fraction of their income, because they can't not. Only the truly rich have the flexibility and resources to set up, say, a system of Panamanian shell companies.

It becomes even more starkly amoral and flagrantly hypocritical when elected officials do it.

<comment><USER2> Thank you for your well thought out opinion. Honestly. I know I come at these issues with a strong personal bias, so it's a good thing for me to hear a well constructed counter argument.

I guess I don't really disagree with you either. Where I become frustrated with the response to this leak is the seemingly obvious misplaced blame (again, maybe this is just my bias). The media and political talking heads are all spinning this as a referendum on big business/the mega rich, when it seems so obvious to me this is always the outcome when statist/socialist policies are practiced -- corruption is always the result. It's not news that people will generally act in their own self interest. Maybe we should stop structuring our societies in a way that when people act selfishly (like humans) it hurts everyone else.

But, alas, how will the political elite spin the outcome? With less freedom, more regulation, by building a taller house of cards.

</comment></comment></comment><comment><USER4> This seams to be a moot point... So far most people named in the Panama docs are not US nationals.

Most US nationals have lots of options of hiding their taxes inside. Weather it's Delaware corps, or trusts in the Dakotas. There's a great story on Planet Money about this.

<comment><USER3> > Weather it's Delaware corps (sic)

What? Delaware corporations are completely standard. The state bureaucracy is fairly efficient, the laws are reasonable, lawyers well versed in Delaware corporate law are readily available in all 50 states, etc. It's not about tax avoidance.

<comment><USER5> It's entirely about tax avoidance, thats the whole point of using a Delaware Corp and why they're so popular.

The fact they're standard is irrelevant to the parent's claim. They're only standard because nobody wants to voluntarily pay extra state taxes. And for some reason it's both legal and generally socially acceptable to have a corporation that has its office and effectively does its business in another state be legally based in Delaware to avoid state tax.

Edit - adding link to 2012 NYT article : [http://mobile.nytimes.com/2012/07/01/business/how- delaware-t...](http://mobile.nytimes.com/2012/07/01/business/how-delaware- thrives-as-a-corporate-tax-haven.html?referer=)</comment></comment></comment>


My journey of getting a green card in the U.S. - <AUTHOR> I'm so glad that I finally got it and live the life the way I want to live. Just wanted to share my story about getting a green card in the U.S.<p>https://medium.com/goodnightjournal/my-journey-to-get-a-green-card-in-the-u-s-6258bd92b56e <comment><USER2> Link: [https://medium.com/goodnightjournal/my-journey-to-get-a- gree...](https://medium.com/goodnightjournal/my-journey-to-get-a-green-card- in-the-u-s-6258bd92b56e)

</comment><comment><USER3> Congratulations from someone who transitioned from green card to citizenship recently.</comment>


Ask HN: Bootstrap semantics - <AUTHOR>

Hello! Could somebody explain why Bootstrap asks you to write
 instead of
, or <button class="btn"> instead of <button>? Why not apply the default styling to platform-independent HTML markup?
Thanks! <comment><USER2> You might not want to style _all_ your buttons in that particular way. The least they could do is separate it into classes. SASS inheritance would be nice, too.

<comment><AUTHOR> Thanks. Yes, the way I humbly see it is that you could always add pre-made or custom-made classes that would alter the default behavior.

<comment><USER2> Yeah, a lot of devs have to do that because they just use the CSS, like from bootstrapcdn [1]. It's nice not to have to, though, especially for those of us who leverage LESS.

[1] <http://www.bootstrapcdn.com/>

</comment></comment></comment><comment><USER3> I think in the case of the "btn" class it's designed to be usable on a, span, button, input, etc.

<comment><AUTHOR> Thanks. I can see your point about "btn" and, to be honest, I'm just getting started with Bootstrap. These points are a bit confusing at first.</comment></comment>


70 Cents Put Me on the Mac App Store Charts - <AUTHOR> http://lapcatsoftware.com/articles/70cents.html <comment><USER2> Misleading title: this is about how the author's app reached a high rank in the Mac App Store for a specific category yet he only saw 70 cents in profit as a result (one sale).

<comment><USER3> Really misleading title, and it's the title of the linked article. I don't see a way to parse the actual title to mean the author only saw 70 cents in profit.

<comment><USER4> "70 cents [in revenue was enough to] put me on the Mac App Store Charts". No different from "100,000 downloads made me #1 on the list".

<comment><USER2> It's very different than your proposed—albeit much better—alternate headline, as revenue isn't the only driver of store rankings. It appears dollars are a very small measurement for general category rankings (there's a different category for "Top Grossing"), since free apps also rank.

Having a headline of "One download was enough to get me to #18 on the app store" is not only clearer, it's also arguably more compelling.

FWIW I thought the article was about how the author reached a top rank by paying someone or investing in ads for 70 cents.

<comment><USER5> Yes I think your title is better.

But the charts in question are "Top Paid" and "Top Grossing". So it does seem like a very odd result.

</comment></comment></comment></comment></comment><comment><USER6> From the article:

> if you take it upon yourself to publicly rip on one poor indie developer, > then you are a malicious, pathetic troll who needs to take a hard look at > yourself while trying to choke back the vomit. There's no lower scum of the > earth than someone who would step on another person when they're down. You > have this in writing, and you can quote it back at any villain who ignores > my disclaimer.

What does it mean to 'publicly rip' on someone? Who knows. It's not objective, and yet we already have a call to vilify these people as the lowest scum on the earth.

I don't like comments like this because they divide us and encourage us to start purposefully creating single-issue litmus tests where if you fail--- you're evil.

That's not good for a community such as our own, where criticism, technical inquiry, and practical business acumen is valued.

It is certainly right to censure those who go too far in their criticism, but only to the point of calling them rude, improper, and distracting from conversation. They are not heinous villains, they are impolite.

<comment><USER7> I didn't like it either. I work hard on shit that bombs out all the time -- it's just part of the game. You accept it for what it is and keep trying. In general, you put shit on the Internet, you take heat. It's just so cheap for others to give, so it's your responsibility to block out the noise--not everyone else's to not dish it.

</comment></comment><comment><USER8> That's actually a quite good website style.

Very readable, loads fast, no popups and no social sharing.

<comment><USER9> I don't know, 260 characters per line isn't exactly the pinnacle of readable typography, and those screenshots become extremely confusing side by side against a white background – you can't tell where one ends and the next begins.

It seems they took a cue from [http://motherfuckingwebsite.com](http://motherfuckingwebsite.com) when they maybe should have looked at [http://bettermotherfuckingwebsite.com](http://bettermotherfuckingwebsite.com) instead.

<comment><USER10> Some people just don't care about how it looks as long it's readable (to a degree).

If you are not doing website design as a job, and you shun frameworks, and it's just your personal bit of space, then I don't see anything wrong with doing a 'Save As...' in Word and calling it 'index.html' (for example).

I too shun web-frameworks (as a hobbyist, you don't learn anything by using click-to-run frameworks), but the downside is: Is it worth spending hours cranking out a pretty layout, just for the 3 people who might accidentally read your site that month? No, not really.

<comment><USER9> But that's exactly what I wrote. It's _not_ readable. It's hard to understand what these screenshots show because they appear to merge.

I hoped the two links would make my point – you just need to add two or three CSS declarations to make your raw HTML look nerdy and cool instead of obstinate. This is seconds, not hours of work: add a max-width and set your images to display block, maybe with a border so I can tell where it ends.

</comment></comment></comment></comment><comment><USER5> So the next question is did the ranking snow ball more revenue, or is the story ranking has a steep falloff AND it has no marketing value.

</comment><comment><USER11> There isn't much volume on a sub-category like Social Networking apps on the Mac Store.

A top 30~ Grossing app on iPhone in the US grosses around $4000 per day, on the other hand.

<comment><USER12> What's the disparity from top 30 to top 10? $4K/day doesn't sound like much if it's only going to be for a couple weeks.

<comment><USER11> The 30th app consistently makes about $4k~ / day (in the social category). The 10th makes 10-15k~/day. About 4-5x the number to get other countries.

This is the social network category in one country on one device -- overall worldwide a dozen or so apps gross >$1m/day.

</comment></comment></comment><comment><USER13> Why is this surprising? 1) Mac App Store (not the iOS App Store), so the volume of apps available and download counts is WAY lower. 2) A category where most apps are free, so by even existing as a paid app in this category you are going to stand out.

It is pretty sad that the math works out this way, but I think it is perfectly explainable.

</comment><comment><USER14> That's life in any media. Where revenue for a category is very top heavy.

</comment><comment><USER15> You can't compete with free

<comment><USER16> Now true at all. Paid products which are better than free offerings can compete easily. Broadcast TV has been free forever and people still line up to give cable companies $700 a year for TV.

<comment><USER17> I agree but in many categories you can't compete with free.

The author was in paid social networking apps.

</comment></comment></comment><comment><USER18> 24 and 36 now..</comment>


Parenting kids outside of USA – best parenting decision? - <AUTHOR> http://theweek.com/articles/703660/moved-kids-america-best-parenting-decision-ive-ever-made <comment><AUTHOR> OP here. Sharing this article to hear HNers comments on the article's view.

I grew up in India and can attest to the fact that I never felt entitled to several luxuries that my American peers take for granted. But, moving to Africa and parenting kids out of the US? Has anyone seen both sides of this?

<comment><USER2> (Ecuador is in South America, not in Africa.)

I don't think anyone should generalize from this article. This is a white family with at least some money. It's not the same as a family from a poorer country choosing not to bring their kids to the US.</comment></comment>