Git Sucks, What Am I Doing Wrong? - <AUTHOR> My employer recently made a companywide switch from SVN to Git and upper management has been touting it as a big success story in emails.  The thing is, everyone I speak to in the project hates it and not just because it's new and they don't like change.  We had a simple workflow going, we changed a file and then committed it directly to trunk, before we went to UAT we created a release branch.  Life was simple and things worked really well with SVN, you edited a file, committed and that was that.  With Git and Odyssey it's a whole process though, we have to create a feature branch, then commit changes to the feature branch, then pull master branch changes, merge the master with the feature locally, push the changes, ask someone to approve/review every little change, then merge the feature with the master remotely.  I mean what a drag.  What are we doing wrong? <comment><USER2> > _have to create a feature branch, then commit changes to the feature branch, > then pull master branch changes, merge the master with the feature locally, > push the changes, ask someone to approve /review every little change, then > merge the feature with the master remotely_

None of that is a requirement of git, that's the workflow your company has chosen. (although branching and code review is usually a good thing)

</comment><comment><USER3> > What are we doing wrong?

Let me answer your question with your own quote:

> The thing is, everyone I speak to in the project hates it and not just > because it's new and they don't like change.

Tech industry is all about change, and since there is so much change, we have to rely a lot of having good processes that can be applied to all sorts of changes. It does sound like your company dropped a bomb of a bunch of changes - they probably could have baby-stepped into code review before also switching to git. Too much change is hard for anyone. But I don't think your company's problem is git.

I used to be the guy that had a single branch project with pushes directly to master, live changes on production, some days had multiple deploys as we discovered bugs. While that was _easy_ from the perspective of "hey, I could just push code, and it was great", it was hard because all deploys were high- stakes, and could mean spending hours debugging and redeploying into the after hours of my work day (and this happened regularly).

Just to ask a question back to you, how many times did your company's simple SVN process backfire and cause more work for you?

<comment><AUTHOR> I am unaware of SVN backfiring, however I do see peer reviews as being grossly overlooked in the project. However, Git does not solve that problem because people just click the approve button in Odyssey without actually reviewing the code.

<comment><USER4> Just like traffic lights and road signs don't prevent accidents because some drivers ignore them.

Surely Odyssey keeps a record of who approved what. If you approve something, your name should be attached as having reviewed. Then you share some of the responsibility if the commit is bad.

</comment></comment></comment><comment><USER5> It looks like to me you never had to do code reviews before, then management decided to push mandatory code review down your throat while migrating to git. Now you have to learn to do code reviews AND to use git AND to do branching, at once. No wonder it's overwhelming.

Code review is normal software development in all companies. Though if your team is small (somewhere less than 5 developers), it's better to make reviews optional, there's never anybody available to review.

As for git and (git) branching, you will have to learn because that's what the industry standardized on. It's a shame because git objectively sucks (it is terribly user unfriendly). You have my deepest sympathy.

</comment><comment><USER6> With git it's also possible to commit directly to master. An SVN-like workflow is entirely possible. But git can do more, and allows very different workflows that allow a more distributed way of working.

Of course your company needs to use a workflow that works for what you need it to do. It's also possible that the company needs to invest in a bit of training here. Having your employees working with a version control system they're not comfortable with can become a big problem.

<comment><USER7> I think this is the right response.

OP is complaining about the workflow/process not about the tool. Instead of all that big process described, the team could simply git-clone upstream, work on their local main (formerly master) branches, then "git commit && git push && git pull" all the time and that's it: you got your old workflow back, but now with git.

<comment><AUTHOR> I think you guys hit the nail on the head here, we want our old workflow back! I'm not saying that the commit to master workflow is the greatest in the world but it worked for us and now we're blaming Git for this feature branch workflow which we admittedly we also tried with SVN but ended reverting back to the simple commit to trunk workflow.

<comment><USER6> There's a good chance that your employer switched to git because they want to enable feature branches and code review on pull requests.

</comment></comment></comment></comment><comment><USER8> It sounds like someone's identified a social problem and tried to fix it purely with technology. I'm talking about code review. Knowing no more than what you've told us, I would guess you need some social changes too.

The problem is complex, but the first place I would consider starting: try supplying a break-glass "I want to merge this without review", but have a zero-tolerance policy for unreviewed breakages. If you break something, and it turns out you did so in an unreviewed PR that you just YOLO'ed in, you are buying cake (or whatever). People need to learn from experience that reviews really are great, and one way to show them this is by making it clear how bad it is when there are no reviews.

Note, too, that now you are working with branches, there are tons of probably- unrealised benefits available to you. Pre-merge automated test suites, for example. Personally, I would flatly refuse to work on any moderately-complex code base that did not have automated branch tests that ran before any merge to master. It would almost certainly be _well_ worth some dev effort setting this up, because it genuinely is a huge benefit to the branching workflow.

<comment><USER5> I really don't think that having yet another process to skip the code review is the way to make it easier to use. Besides, the tooling won't support opposite workflows so this will have to be hacked in somehow (typical git commit hooks that randomly block commits with no explanation unless they have a magic word in the message).

If their team is small (less than 5 developers), don't make code review a hard blocker, there's never anybody available to code review.

<comment><USER8> Agreed that it's worth OP diagnosing the _actual_ source of friction here. My answer was implicitly predicated on the assumption of a largeish team, and I hadn't realised that.

</comment></comment></comment><comment><USER9> Sounds like you are not taking the time it takes to get to know the concepts in git or are not given the time. One does not become proficient in a DVCS in a day. It takes time and practice. It is important to note, that git is distributed. It is a big leap from SVN. What you perceived as simple before might have been a serious risk everyone took.

I've once tried to use SVN before I learned about git. I was terrified to do something wrong. I did not understand the concepts well. I just did not get it. Fortunately I did not stick around with it, but learned a little bit of git shortly after. Then simply Used what little I knew. Then at some point tagging. Then feature branches. Submodules. Pull requests. You learn step by step and don't get overwhelmed by git's complexity.

<comment><USER10> SVN has much simpler concepts and a much smaller "surface area" to learn because it is a centralized versioning system. If you don't _need_ the features of a distributed versioning system then there's little reason for using git (apart from "everybody's using git", which of course may be the strongest reason to adopt it too).

<comment><USER11> Git branching and merging vastly out classes svn, coupled with its ability to version directory deletes and renames which svn struggled with, it makes much more sense than svn.

Most SVN workflows did not use branching and merging, becuase it was such a pain in the ass with SVN.

You folks are right about the confusion between git and the workflow, most folks use gitflow which uses master, develop and feature branches. Others like gitlabflow are quite different, but still make use of git's far better branching and merging.

<comment><USER5> Correction: Most company workflows did not use branching and mandatory code review because they started 10+ years ago and that was not widespread practice at the time... for a variety of reasons.

Usability has always been a problem as well as tooling support (merging algorithms really used to suck and generate conflicts all over the place, not specific to SVN or to git). Git made some things easier and some things harder. I'd personally rather have a sane command line interface (that I use every day) than the ability to track a rename twice a year.

</comment></comment></comment></comment><comment><USER4> Your organization has chosen a poor workflow.

Developers should never be required to produce and merge "feature branches" but only properly rebased sequences of commits which keep the history linear.

With a rebase workflow, you can juggle multiple changes in the same branch (your local main branch that tracks the remote master).

I sometimes have as many as five or six separate work items going on. This is much more productive than switching among five or six branches which don't know about each other, not only due to the convenience, but also due to the integration: all six things _build_ together and are being tested in the same image.

Git has a great "interactive rebase" feature (git rebase -i) for rearranging the order of your local commits, and combining them together. Thanks to interactive rebase, I submit properly rebased versions off all six of those items to the review system.

It's also worth learning how to use "git commit --fixup" and its variant "\--squash", together with "git rebase -i --autosquash". You can make commits which are amendments to commits that are not the current HEAD. The auto-squash rebase will automatically put these commits in the right order, and configure them to be combined with their target commits. I have the --autosquash option set up implicitly in the global config.

Code review is an excellent process. I've been saved from silly mistakes more times than I can remember, and have saved others. When I'm working on my solo side projects, I'm keenly aware of the lack of review now. I've screwed up many times in ways that a second pair of eyes could have prevented.

</comment><comment><USER12> Well to me that sounds more of a process matters than a choice of technology.

I use git day to day and before that used svn for a number of years. Now on the odd codebase, I tend to find svn is still in use, and I don't mind that, I just work with it.

From what you've mentioned, it does not seem that introducing git in your organization was solving a problem per-se, you "could" have the exact same flow you had with svn in git, have a single branch and call it whatever you like, e.g. "master", "develop", whatever...

What I think is happening is that someone didn't like the process you had and tried to solve/replace that with a more modern way, e.g. having feature branch, release branches, master, etc... and that it easier to technically achieve with git than with svn. Imagine doing what you doing now with svn, that'd be a nightmare, wouldn't?

On the other hand, your "new" workflow might be solving problems that you didn't realize you had. I.e. code review and approvals have the great benefit of having a 2nd pair of eyes reviewing your changes as well as spreading the knowledge throughout the team as to what's been changing, more like keeping a pulse... so that is not necessarily a bad thing.

<comment><USER13> > What I think is happening is that someone didn't like the process you had > and tried to solve/replace that with a more modern way, e.g. having feature > branch, release branches, master, etc... and that it easier to technically > achieve with git than with svn.

Either that, or someone read up on what are often considered best practices with git, and then pushed that as the new process in order to be diligent when git was adopted.

There's not enough context to tell whether the process change is a solution to an actual problem or doing it because others are doing it, too.

Most of the stuff (feature branches, review of major merges) are good ideas to do, though, and something you begin to appreciate once you've got used to them. Honestly, I _want_ a feature branch at approximately the point where I realize the feature change is going to take more than two commits or is nontrivial in almost any way. I'm not sure about requiring a review/approval for every little change if it's earlier in development, and I can understand frustration with that, but that's not really a tool-mandated process, as you say.

</comment></comment><comment><USER14> Great question! It rings some bells in me.

You have to sell/appreciate the problems before you sell/appreciate the solutions. Git is a solution for some problems, that seems you have either solved with another solution or have (learned to) tolerated for so long that you don't regard as problems.

I started git with only a single master branch, write code, commit and push. If code breaks, we fix it. The problem is the lack of code review. Without review, we are not even conscious about how much bad code went in, or how much better code could go in. And while we were always happy coding, deep down, we also have a bit unsatisfactory that we don't get to discuss our code, missing opportunities boast our clever idea and deep foresight ...

But once we are convinced that lack of code review is the problem, accepting the git branch review workflow is easy, and we appreciate it ever since.

It rings bells of many other technologies. Some of them I had hard time to sell because others have all used to the problem since the beginning and just don't see the need to fix. Some other technologies folks are just accepting because other people are touting it, applying to their "problems" that does not exist in the first place.

</comment><comment><USER15> You didn't just change the source control tool you also fundamentally changed the development process. You used to do continuous integration. Now you are doing feature branching instead.

Feature branching is nice in some cases. For example in open-source project this allows a maintainer to review code (of a potentially unknown developer) before it is accepted. It also prevents a contributor to vanish leaving half- finished features.

I believe feature branching is inferior to continuous integration for most private software development teams. Feature branching along with systematic code review add a lot of friction to the integration of a developer's code into the mainline. The consequence is that developers push less commits that become bigger and integrating each developer's code together become a painful process. This starts a negative feedback loop.

If I were you I would look for the evidences that continuous integration make a team perform better and push to keep git but change the workflow back.

<comment><USER5> Don't get it. You're trying to say that pushing to master with no code review is "continuous integration"?

<comment><USER15> Continuous integration is when the developers merge their code into a shared master branch at least once a day, ideally several times a day.

A mandatory code review before merging is allowed (that takes some time to be processed) leads to fewer, bigger merges. Imagine waiting for reviews of the 10 pull requests of wrote two days ago, the 10 of yesterday and 5 you created so far today. It's too unwieldy. The latency encourages you to start writing fewer bigger pull requests more spaced out in time.

As an aside, it also tends to reduce trust and cooperation within a team : reviewers become the gatekeepers of the work of contributors. That work is explicitly not trusted until it is checked. Not a great social dynamic I think.

<comment><USER16> > As an aside, it also tends to reduce trust and cooperation within a team : > reviewers become the gatekeepers of the work of contributors. That work is > explicitly not trusted until it is checked. Not a great social dynamic I > think.

This seems to presume a split between reviewers and contributors that hasn't existed explicitly anywhere I've worked, and has only implicitly been a thing in a handful of contexts. Usually, reviewers and contributors (... well, authors - I would call good review a contribution!) are the same set of people.

</comment></comment></comment></comment><comment><USER17> > _We had a simple workflow going, we changed a file and then committed it > directly to trunk, before we went to UAT we created a release branch. Life > was simple and things worked really well with SVN, you edited a file, > committed and that was that._

You can do that with Git.

> _With Git and Odyssey it's a whole process though, we have to create a > feature branch, then commit changes to the feature branch, then pull master > branch changes, merge the master with the feature locally, push the changes, > ask someone to approve /review every little change, then merge the feature > with the master remotely._

Based on what you wrote, this seems all about the workflow your company chose to use with git, not git itself.

</comment><comment><USER16> > ask someone to approve/review every little change

If you're asking people to review your edit history, that's (IMO) something you're doing wrong. Branch early, commit often, but clean it up into a series of conceptually related, easy to follow changes with good commit messages before you push it anywhere (morally) shared. In SVN, commits are always meant for the world. In git, commits are meant for you until you decide to share them. Owning that helps. (Again, IMO/YMMV/&c...)

</comment><comment><USER10> You're doing nothing wrong, if you have a well-working svn-based workflow there's absolutely no reason to switch to git, it definitely won't make things simpler or more efficient in your case.

Git has been built for a very specific decentralized development workflow, for a close-knit team with a central versioning server git is simply not the right versioning tool, since you don't get any benefits from what makes git different from svn.

<comment><USER18> I came looking for a post like this.

"If it ain't broken don't fix it"

</comment></comment><comment><USER19> Hi, you should look into [https://githubflow.github.io/](https://githubflow.github.io/) works well for us.

</comment><comment><USER20> The steps described sound about right, so I wouldn't say that anything is being done wrong. I'm not aware of Odyssey. Somehow though I would consider the steps easy rather than a big chore. How much of the friction is the actual git operations rebase/merging vs the reviewing? If it's the reviewing step that's a culture thing where everyone has to buy into timely feedback to run smoothly.

</comment><comment><USER21> There's too little information in this post. As other have said your complaint aims at the workflow not the technology and you've provided none of the reasons your company adopted the new workflow. I can think different situations to which alternatively each one of which is better suited.

Though doubtlessly this new workflow is harder on you than the previous.

</comment><comment><USER22> You're not doing anything wrong. That's how git works. However..

You're assuming there was nothing wrong with your SVN workflow because it was straightforward and you never experienced a catastrophic failure. I suspect that had your SVN server died you would have had a very bad time. I also suspect you must have a _very_ solid UAT process and developers who _really_ care about the quality of the code they write, because it sounds like there was very little oversight of the code that was going to production - if it did whatever the feature needed and UAT gave it the nod that was all that mattered, right?

With git there are a few assumptions like "One day all of this is going to go horribly wrong." A hard, hard crash of the repo servers for example. With git you can just fire up a new remote and everyone carries on locally while that's happening. With SVN it's a bit harder (although still not a huge problem) but everyone basically has to down tools while it's fixed. That's a problem on big projects. Also with git the assumption is that the code is important _in itself_. It's more than just whether it works, but whether or not it's something everyone agrees on. The process of pull requests gives people an insight of how the codebase is changing, and enables more people to have an input. Pulling the base branch in to your local branch and fixing conflicts locally means your base branch should _always_ work. It's always deployable. With SVN it's easy to accidentally break things and block a deploy until it's resolved. That's an advantage that's rarely necessary but an absolute godsend if someone is working on something hard that has potential to wreck havoc across all the features.

git is great but a bit annoying when everything is going right. It's worthwhile embracing it for when things are going wrong.</comment>


Association of Daily Step Count and Step Intensity with Mortality in U.S. Adults - <AUTHOR> https://jamanetwork.com/journals/jama/article-abstract/2763292 <comment><USER2> > The unadjusted incidence density for all-cause mortality was 76.7 per 1000 > person-years for the 655 individuals who took less than 4000 steps per day; > 21.4 per 1000 person-years for the 1727 individuals who took 4000 to 7999 > steps per day; 6.9 per 1000 person-years for the 1539 individuals who took > 8000 to 11 999 steps per day; and 4.8 per 1000 person-years for the 919 > individuals who took at least 12 000 steps per day.</comment>


Show HN: Rivet – Easy iTunes and Amazon affiliate links on iOS - <AUTHOR> http://rivet.link <comment><AUTHOR> Also on Product Hunt - [https://www.producthunt.com/tech/rivet](https://www.producthunt.com/tech/rivet)</comment>


Super Normal by Dave Morin (Path) - <AUTHOR> https://medium.com/product-love/c1d22838572a

<comment><USER2> > _A good place to start when creating a new social app for the first time is > to build upon these normal concepts, and then add your own twist. Much > success has been seen on the Internet by doing this._

But you have to break out of this pattern to create ground breaking innovation, no? What Dave Morin is saying is that you take a particular product in a particular category and then improve it a little, and iterate over the process.

This only works if someone else has created that product/category in the first place. This article is perhaps about social networks, but someone must have initially imagined social networks on the internet when there were none and tried to create one. Of course it follows that innovation follows from many false starts in the same space and I can see his argument making sense for things like Myspace improving upon Friendster; and Facebook improving upon Myspace, etc. But if I come up with a better facebook (Super Normal), there isn't any interest or mindshare because facebook has a majority mindshare and there is only a certain minority that might choose my _super normal app_ vs what already works.

Also, this pretty much fails in a lot of real world applications. For example you could argue that people were social to begin with and _TELEGRAM_ was an improvement on that process. But then the _TELEPHONE_ came along. Was the Telephone an improvement on the Telegram (it's super normal) or was it a new product category all together. Were Personal Computers the _super normal_ to mathematics/games/writing or an entirely new product category?

I'm not sure if Dave currently reads Hacker News, but if he does (and this might be an unpopular opinion on HN) I'd like to ask him what his motivations behind continuing with Path are? Surely he is financially secure enough (w/ FB and now Path), and Path is mature enough that it could live on as a functioning experience on its users phones, but is this really his life's mission? I mean he is smart, financially secure, perhaps has awesome friends and familial relations, but why make another social app at all? I mean how much can you optimize the user experience? What happens after you can't optimize further? It's not like users will jump on your platform because they find their current social apps sub-optimal. Surely smart people have some end game in mind, so in this case is it just more money?</comment>


Ask HN: Why can't I comment on old Apply HNs? - <AUTHOR> When you go to Apply HN, it show a random sampling. I clicked one, and then clicked through to their site. I liked it, but had some feedback I wanted to give. When I returned to the HN page, I couldn't comment.<p>I assume this is because the page is 20 days old. I think it makes sense to close an old new story, but not for Apply, especially with the random functionality. As a founder myself, I would definitely want to continue to receive any feedback people were willing to give. Can that happen? <comment><USER2> _" As a founder myself, I would definitely want to continue to receive any feedback people were willing to give. Can that happen?"_

If you have your e-mail address in your HN profile, people will be able to send you feedback after your post expires.

</comment><comment><USER3> All HN threads have a 14 day lifetime.</comment>


MegaUpload has been taken down by the feds - <AUTHOR> http://www.google.com/hostednews/ap/article/ALeqM5g0HiB0PrdprLqIHlwUdYtB05l2sA?docId=c93737704b504930a11fc307d67b674d

<comment><USER2> Haven't we already proved that piracy can't directly equated to losing $500 million?

</comment><comment><USER3> Please don't link to things that require passwords to access them.

<comment><AUTHOR> As far as I can tell, it doesn't require any passwords..?</comment></comment>


Unveiling Elite Developers' Activities in Open Source Projects - <AUTHOR> https://arxiv.org/abs/1908.08196 <comment><USER2> > We can conclude that open-source projects are still largely driven by a > small number of elite members after over 20 years of evolution. While such > high concentrations guarantee the bottom-line project outcomes, it may be > not the optimal situation for projects' long-term health of a project. > Engaging the non-elite users' participation through mechanism and technology > innovation is still a challenge.

Oh how naive! Democracy! Egalite! On the contrary, other projects where the leaders went away, clearly show that the race to the bottom line ("bus factor") only destroys a project, and is not able to fulfill the role of the elite developers. The only challenge is to keep the elite developers, not to get more individual contributions. Without efficient leadership it goes downhill.

It would be more interesting to compare the current inefficient businesses practices of a non-technical lead without proper tooling, to the open source practice of the technical lead, with proper tooling.</comment>


AI becomes grandmaster in 'fiendishly complex' StarCraft II - <AUTHOR> https://www.theguardian.com/technology/2019/oct/30/ai-becomes-grandmaster-in-fiendishly-complex-starcraft-ii <comment><USER2> I'd just like to say that I find it amusing that "fiendishly complex" is wrapped in quotes as if from another source, but they're just quoting themselves in the article.</comment>


New Apple ads make Mac owners look inept, foolish - <AUTHOR> http://www.digitaltrends.com/apple/new-apple-ads-paint-mac-owners-as-inept-foolish/ <comment><USER2> Hearing these terms used in the ads... are people supposed to know beforehand what they are talking about?</comment>


Internet Increasingly Censored - <AUTHOR> http://www.technologyreview.com/Infotech/18749/ <comment><USER2> But it's mainly countries you'd expect:

"China, Iran, and Saudi Arabia"</comment>


This weird keyboard may be the biggest thing since your standing desk - <AUTHOR> http://kadavy.net/blog/posts/split-keyboard/ <comment><USER2> As a touch typist (120-140wpm) that types entirely with muscle memory I notice that sometimes I use my left hand to type a key on the right and my right hand to type a key on the left. It really just depends on what finger is closest compared to the last key that I hit with that finger.

Unfortunately this keyboard would mess me up in that regard when I try to click r,t,g,f,v,b with my left index finger or y,h,n,m,j,u with my right index finger.

Just curious, but is muscle tension always a bad thing? Wouldn't that just exercise your muscles and make them more durable to do the same actions again? I'm sure after 20 years of typing these muscles are probably resistant to this kind of activity.

<comment><USER3> > Just curious, but is muscle tension always a bad thing?

I was asking myself the same question. According to this article, sitting on a yoga ball at work all day would be bad right? Because you're constantly tensing up your muscles in your lower back and abs?

</comment></comment><comment><USER4> Lose your belly fat with this one weird trick... Seriously? How is this on the front page. Keyboards like this have been around for ages.

<comment><USER5> But Did You Know It's Cutting Off Your Circulation by 80%?

This explains why some people type with only two fingers: no blood in the other eight.

</comment></comment><comment><USER6> Can't you just plug in two USB keyboards, preferably identical, one for each hand? I think its been around a decade since I last tried this stunt. At least you could see if you like it, or not.

Going back further there were PS/2 era combiners to connect two keyboards.

I could almost swear I've seen this done at server racks, so you can plug in both a remote (expensive) KVM and/or a local keyboard right in front of the machine. And a similar splitter for video out (this was definitely analog VGA to give an idea how long ago)

</comment><comment><USER7> It seems like David thinks that the keyboard itself is pretty lame ("By most objective measures, this keyboard sucks") but the fact that it is split makes it worth it.

Are there any keyboards that are 1) split, 2) good keyboards, and c) aren't ridiculously loud and can be used in public?

(I usually do my work in university libraries, and if the reactions to me using my Model M mechanical keyboard in an office told me anything, it's that a quiet keyboard is probably best.)

<comment><USER8> The Ergodox [1] might be what you're looking for, although there's a significant amount of assembly required. It's been sold on Massdrop [2] before to reduce the cost of the PCBs (~$200 with the maximum number of people participating). While I don't own one, I've only ever heard good things about them.

[1] [http://ergodox.org/](http://ergodox.org/) [2] [http://massdrop.com/](http://massdrop.com/)

</comment></comment><comment><USER9> This is written like those 'one weird trick to lose weight' things, and contains just as much information.

</comment><comment><USER10> The Half Keyboard allows you to type with one hand OR use it as a second keyboard in addition to your main, full-sized keyboard.

[http://matias.ca/halfkeyboard/](http://matias.ca/halfkeyboard/)

</comment><comment><USER11> Are there any split keyboards like this that have mechanical keys?

<comment><USER12> [http://ergodox.org/](http://ergodox.org/)

<comment><USER13> I keep missing the massdrop buys for these and it makes me sad every time.

There are a few people working on split mechanical keyboards on geekhack as well.

<comment><USER14> I just did a build and sourced all the parts myself. It actually doesn't end up being much more than the Massdrop kit.

<comment><USER13> Care to share your component sources? I actually did pick up a pair of the boards in a drop a while back, I just keep missing the full kit drops.

I just need a good price on MX clears, the case, and the rest of the electronics.

</comment></comment></comment></comment></comment><comment><USER15> It would be good if the 5tgb and 6yhn keys were repeated either side for us psuedo-touchtypers. (Hasn't Apple got a software patent for a similar thing?)

EDIT: also F5

</comment><comment><USER16> And if you found that impressive, there's some folk down the road with a big round thing, they say it'll be the biggest thing since fire.</comment>


Ask HN: What is something that doesn't exist that you would pay for? - <AUTHOR> <comment><USER2> * A personalized search engine.

* portable software that is in a usb that stores your medical records. The problem is that all medical records are disaggregated and you have to bring them everywhere with you and the systems are incompatable. However, if you made a portable system agnostic applicaation using something like electron and sqllite that allowed your doctor (or any doctor) to run it when diagnosing or taking patient history, then he gives it back when completed that would be awesome. Could export files for doctors records. even files woul dbe upgrade on their end, as currently I had to fax over my records but also show up and bring them in person because that was unreliable(possibly because it is half centrury old tech). probably hipaa compliant as you would be responsible(but in control) of your data. would payoff big in 5 years whne personalized medicine is a thing. can't do it on mobile because it would be too vulnerable, must interface with anything with USB.

<comment><USER3> And how would this work if you are unconscious and found by a stranger? I'd like a centralized database containing my medical info with a way for doctors to immediately know relevant info and to be reminded off possible oversights. I have had two family members suffer from doctor oversights and inability to access information.

<comment><USER2> basically the same way. the system would still be balkanized and terrible, but you would have a full searchable copy. it would basically be the equiv of itunes. you bring it to all youdt docs and u put your records on it, then they keep them to(like they do now) but you have a program that generates visual correlations.

you could also use it to interface with healthkit and fitbit. all data one place.

what if you were unconscious?

i imagine it in a bracelet with emergency contact with password. not 100% sure. the medical system should have your files anyway, but it is hard to balance privacy with a total stranger finding you in a state where you cant communicate. not sure what they do now, presumably treat with as much info as they could get from the person.

<comment><USER4> Why does privacy matter? What is it protecting against? Medical record privacy has caused millions if not billions in lost productivity. People are probably dying because of this. Coming from a country that has centralized digital access to medical records (Taiwan), the US obsession with medical record privacy seems insane.

<comment><USER3> After living a long time and experiencing the medical issues with family that I have experienced. .. I agree with you. The privacy fear is actually related to employmemt.. a fear employers will not hire you if you have medical issues.

</comment></comment></comment></comment></comment><comment><USER5> A service that tells you something that doesn't exist that people will pay for.

<comment><USER6> You mean HN? [https://news.ycombinator.com/item?id=11789869](https://news.ycombinator.com/item?id=11789869)

<comment><USER7> This is kind of like recursion

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

</comment></comment></comment></comment><comment><USER9> I'd pay/crowdfund a Linux Desktop Environment that is as good as OSX one. Some features I'd beparticularly interested are to easier customise the trackpad, drag n drop, anything that makes a good user interface. Not bells and whistles.

<comment><USER10> IMO elementary is pretty close without being an outright copy.

Personally I would even say I prefer its differences (except single-click-to- open) to Mac.

Edit: yes, I think I already sent some money in their direction.

<comment><USER11> I haven't heard of it either. Is it stable?

<comment><USER10> I'd say so. I've only used it for 2 years or so though ;-)

More seriously: I do install and uninstall a number of different applications frlm time to time and I guess the (minor) snags I have seen results mostly from that.

</comment></comment></comment></comment><comment><USER12> \- Hearing aids that run off body heat (changing batteries every couple of days is a bitch)

\- Some sort of system that lets me watch movies and TV shows with captions/subtitles without forcing everyone around me to see them. (The little devices at movie theaters are neat, but clunky and don't work at home.) I'm imagining augmented-reality glasses, but I would take some sort of polarized glasses that only make subtitles visible to me.

\- A reliable way for a minimally trained person (note: not _untrained_ ) to draw blood for blood tests and drop them in the mail without having to go to a lab.

<comment><USER13> Polarized glasses, plus an LCD display with the front polarizer removed = display just for you, if there's a good way to route captions to a secondary display?

(getting an appropriate size and shape display to mount under or over the main display is also a challenge)

Edit: An article about removing the front polarizer [http://www.gizmag.com/stealth-computer-display-lcd- polarizin...](http://www.gizmag.com/stealth-computer-display-lcd-polarizing- glasses/29700/) although I had forgotten that you'll end up with an all white screen for people without polarized glasses, that might be distracting too...

</comment></comment><comment><USER14> Courses aimed at getting me into specialized job roles. E.g. a course aimed at getting a job as a Financial Trading .NET developer. It would probably be an amalgamation of courses on .NET that are used in finances plus courses that teach financial markets etc.

Similarly: professional certifications that mean something. I.e. a certification for .NET that shows I really know my stuff but just something I memorized like the MCP style exams (that's how I remember them being 10 years ago).

<comment><USER15> Udacity?

</comment></comment><comment><USER10> A customizable single-site-browser with a few extra features like a quake-like slide-in etc.

I'd use it in combination with sandstorm and try to create some of the stuff I miss all the time.

I think electron is pretty close only it us focused on running client-side code on top of node js while I want to run sandstorm or generic web apps running on the www, or a company web server or even on the same machine even.

(Please feel free to correct me if I'm wrong about electron)

</comment><comment><USER16> A customizable in-shoe arch support which form-fits to the exact shape/needs of each foot.

Years ago there used to be such a product from SuperFeet, which you would heat up then form to the foot & would hold its shape upon cooling. But apparently it's no longer available.

</comment><comment><USER17> A robot that sorts and folds laundry.

<comment><USER18> Yes please I would pay for that, great idea

</comment></comment><comment><USER19> This:

[http://blog.lenovo.com/en/blog/retro-thinkpad-time- machine](http://blog.lenovo.com/en/blog/retro-thinkpad-time-machine)

Barring that, even a little 2x3 set of home/end/pgup/pgdn/delete keys with an adhesive backing and Bluetooth connection that I could stick over the power button on a MacBook Pro to quadruple my productivity.

Even a year in, I feel like I navigate code at less than half speed trying to use the 2-3 key, 2 hand chords that those basic keys require on a Mac keyboard.

Let me jump to the end of a document without setting down my coffee and you can have as much of my money as you like.

<comment><USER20> You can buy an external Lenovo keyboard [https://jet.com/product/detail/46d2f67ba52346b79674d4b60358c...](https://jet.com/product/detail/46d2f67ba52346b79674d4b60358cab4)

<comment><USER19> Sadly, that's the new layout chicklet keyboard, with the messed up home/end block. It wouldn't actually address the issue.

</comment></comment></comment><comment><USER21> I'd pay for a pension fund - which takes my money and, when I retire, uses it pay out fixed income pension every month, based on my life expectancy.

<comment><USER22> Vanguard has a product similar to what you're looking for: Target Retirement Funds. [https://investor.vanguard.com/mutual-funds/target- retirement...](https://investor.vanguard.com/mutual-funds/target- retirement/#/)

It does everything you want _up to_ retirement age, but after that I believe you're on your own to pay yourself out of the fund.

Of course, that assumes you can accurately predict when you'll retire. :) And it depends on what you mean by "fixed income". Do you mean a specific monthly amount agreed on _right now_ (see also: defined benefit plan), or a specific monthly amount that's set once you retire and doesn't change until you die (see also: annuity). The hardest part about all of this, IMO, is predicting how much money you'll need in retirement (a function of both life expectancy and desired quality of life during retirement) and thus predicting how much money you need to put away every month starting now.

EDIT: Disclaimer: I own some Vanguard funds (but not Target Retirement ones).

<comment><USER21> > that I believe you're on your own to pay yourself out of the fund.

I am specifically interested in that part :) If I'm withdrawing the money myself from the fund, then I have to take into account the small possibility of me living until I'm 90-100, and thus split money into portions that will last that long.

A company could pool a lot of people's money and take advantage of the law of big numbers (i.e. the average lifspan of their clients can be predicted with actuarial math) and portion my money as if I'm going to die when the stats predict me to die (sooner than 90-100 years old), making my monthly withdrawals bigger. That's what state pension funds do in a lot of countries at the moment, incl. my country Poland, but I don't trust the government with my money.

<comment><USER22> Ahh OK, so you want something pretty close to an annuity then. I wonder if Wealthfront or Betterment or something would have a plan that helps you invest while you work and then buys an annuity for you when you retire...

</comment></comment></comment></comment><comment><USER23> I need Ethereum block chain as a service since i donot want to run a full node. (Azure has this but has this vendor lock in i donot tolerate)

Also an easy programmatic way to work with the Ethereum transactions. like the Coinbase api for BTC ^1. [1] [https://developers.coinbase.com/](https://developers.coinbase.com/)

</comment><comment><USER24> \- Something that irons shirts properly for me.

\- An open source, robust, easy-as-Dropbox to use distributed file system that performs well and provides a decent level of security and version control.

\- An open source web browser that doesn't suck (not sure that's possible while JavaScript still exists?).

\- A self-upgradable eGPU for your macs that accelerates the inbuilt display for gaming.

\- A high quality bill splitting & IOU app for iOS that you can take a photo of a receipt then divide up who had what and who paid, others can access the bill and agree / disagree and pay their part.

\- A better replacement for WINE that makes running Windows games faster and more reliable on OSX.

\- A joystick similar to the thrust master in its simple but low profile design that is useful for space sims like elite dangerous (I've tried the top end Saitek and hate it).

\- A service that replaces 'on motherboard' ram like that found in the latest Retina Macbook with larger sized memory chips.

\- An efficient, smart and small 240V bedroom heater.

\- Service / plugin that circumvents country blocks such as those found on Netflix and YouTube that A) doesn't route all your traffic through it (VPN) and B) doesn't make you use custom DNS servers.

\- Hosted Plex media centre with large amounts of online storage and low latency to Australian customers.

\- A better, open source Jabber / XMPP chat client for Windows (I don't use Windows's but I hate seeing people run pidgin!).

\- Some sort of completely legal, non addictive, non harmful high or low mood creator pill / medical thing. I.e. Want to be amped up and cheerful for a party but don't want to damage yourself to get physically addicted to a 'bad' substance - there's a pill/patch/mouth spray for that. Likewise, something that's not physically addictive or harmful but helps you chill out relax and laugh after a day of work without taking addictive drugs like benzos or smoking anything. I guess I'd like to see more products like Armodafinil.

A service where you can upload photos of shoes that you like / own and will return you recommendations and links to purchase other shoes you may like. Sounds weird I know but there's a lot of crappy shoes out there and when you have a few pairs you really like its often hard to find anything similar.

A better interface to Terraform to allow vendor-agnostic management of VM deployment across many 'cloud' and locally hosted platforms, must be open source, support XenServer, KVM/Libvirt and AWS.

A service that gives incentives to game designers to make their software cross platform.

A modern CMS that isn't based off PHP or JavaScript, is open source, very easy to manage and lightweight to host yet scales well.

An open source competitor to the Kindle with a premium screen etc....

A high resolution, affordable e-ink screen that can be used for reading long articles etc and perhaps clips onto the side of your MacBook or iMac.

An open source, privacy first, distributed social network and communications platform that doesn't suck and appeals to the masses.

A high end wireless AC (at least 1300) mini-pcie network card that is compatible / comes with good quality drivers for PFSense (FreeBSD) with at least 4 aerials to turn your router into a wireless AP.

A modern, high quality, low latency, high throughput switching platform (like Juniper's EX4500 range) that runs an open source OS and manages all configuration in git version controlled eYAML or similar.

A platform like NewRelic and Datadog that is self hosted, high performance and adorable.

A high quality, lightweight web app that you can self-host to stream your music from your Linux file server that isn't all javascripty and heavy, doesn't use Java or PHP - essentially groovebasin without all the hard to get and install dependencies that's self contained and runs nicely across various distros.

More space-western SciFi TV series.

A harmonica that's digital - silent to practise on for everyone around you but you can plug in headphones / your computer and hear yourself play - must feel and act like a real harmonica (support bending notes etc...)

An affordable service that will convert an ebook file to an audiobook.

<comment><USER25> For the heater, if you own rather than rent your home then consider buying air con!

a spilt system air con with reverse cycle (so it acts as a heat pump) is super efficient (more than 100%) and takes up no floor space. Also by convective heating it feels warmer faster than radiation.

<comment><USER24> Thank you for your thoughtfulness and suggestion, I personally rent and have aircon. But I speak more generally - I believe we can do better, more localised heating.

</comment></comment></comment><comment><USER10> id122015 mentions something like Mac.

I'd rather prefer something along the lines of Mint Mate or Cinnamon, coupled with elementarys funding model. I sometimes send money those directions but once real MS Office gets available on something like this I would test it for work at next opportunity.

Also next time I work at a place that only demands a working IDE I'll go for a Linux desktop. (Last time I had that opportunity I went with Mac and my two last jobs has demanded an MS environment).

</comment><comment><USER26> A4 sized Kindle (not an old, second hand one)

</comment><comment><USER14> Oh... and a reliable builder.</comment>


Of Luddites, Learning, and Life - <AUTHOR> http://www.ait.net/technos/tq_02/4postman.php

<comment><USER2> "The reason for this is that you cannot have a democratic, indeed, civilized, community life unless people have learned how to participate in a disciplined way as part of a group. "

As to opposed to what? There are many opportunities for interaction and working in society. How to interact with older people, work a job, honor contracts, and be well mannered to people and stuff like that?

How can you learn that in a school filled with kids your age and the only adult is a teacher?

Don't get me about democracy. Most of society isn't a democracy. We don't usually vote unless it is about asking government to do an half-assery job of something. There is certainly no voting in honoring contract, or choosing who to marry, sell, buy, what club to join, or who to associate with.

We aren't governed by some crazy democracy that decide what to do for each facet of our lives. No, we live by trust, respect, and compromise. We choose to co-exist with each other, voluntarly.

<comment><USER3> Choosing whom to marry, what to buy or sell, and with whom/what to associate are, in fact, votes. Votes for a given lifestyle, place, thing, or idea. Or, even, person.

School is valuable inasmuch as it civilizes us, though "houses of detention rather than attention" hits the nail on the head.</comment></comment>


Ask HN: Are there non-english programming languages and what do they look like? - <AUTHOR>

I am a native English speaker and have always taken for granted that programming languages were in English. I was curious if people had built languages in other languages besides english and what they might look like?  Are there any popular ones?  Have any taken a drastically different path than the English ones? <comment><USER2> When I was young my dad's computer had Office with a localized version of VBA, in Dutch. If I'm correct it was Office 95. I've tried to use it for a while but it was horrible; even as a non-native English speaker I couldn't get used to the translated statements and kept mistakenly typing their English counterparts.

Here's what it looked like. If regular Visual Basic looked like this:

IF x == 1 THEN '... ELSE '... END IF

the Dutch version would be: INDIEN x == 1 DAN '... ANDERS '... EINDE INDIEN

Odd thing that 'indien' is a rather formal and slightly archaic version of the (much shorter) equivalent 'als'. I don't even remember how FOR, WHILE, and all the other statements were translated.

</comment><comment><USER3> There is Portugol, a programming language in Portuguese used for teaching. This is what it looks like:

[http://gpt.berlios.de/manual_big/manual.html#programa_exempl...](http://gpt.berlios.de/manual_big/manual.html#programa_exemplo_condicional)

If I remember correctly, you could write visual basic in other languages as well.

</comment><comment><USER4> There is actually a wikipedia article dedicated to this topic [http://en.wikipedia.org/wiki/Non-English- based_programming_l...](http://en.wikipedia.org/wiki/Non-English- based_programming_languages)

<comment><AUTHOR> Thanks, I took a lot at that before posting. Most seemed to fit into the categories of: old, for teaching/proof of concept, ports of other languages.

None really stood out as in-use and actually different from english programming languages. Was wondering if someone knew more or could offer some insight.

I was thinking there are probably a few candidate countries/languages: Japan, China, Russia. Each would have enough technical people and an economy that might really be able to support something.

</comment></comment><comment><USER5> I've also never seen non-english languages, but I imagine porting a programming language would be a simple matter of replace code words with their corresponding code word. This seems like a much simpler possess then porting most applications to other languages. (Of course, the apis of common librarys would also need a port for this to be useful.) I would also imagine that if something interesting happened in such a language, it would be ported to english even quicker.

</comment><comment><USER6> I'm pretty sure there's one in French. Can't remember what it is off the top of my head. On a sort of related note, anybody know what software was used for the early Minitels? <http://en.wikipedia.org/wiki/Minitel>

</comment><comment><USER7> Here is one in Urdu [PDF]: <http://init.org.pk/papersandpublications/P5.pdf>

The last few pages have some sample code. Clearly this is just an academic exercise. Non one would actually use this.

</comment><comment><USER8> <http://he.eytam.com/yi/mama/scripting> "Yiddishe Mama" - a Python-like language in Yiddish, mainly for teaching programming concepts to Ultra- Orthodox jews in Israel.

</comment><comment><USER9> Fjölnir[1] is an Icelandic programming language from the 80's.

[1] [http://en.wikipedia.org/wiki/Fj%C3%B6lnir_%28programming_lan...](http://en.wikipedia.org/wiki/Fj%C3%B6lnir_%28programming_language%29)

</comment><comment><USER10> There is ChinesePython <http://www.chinesepython.org/english/english.html>

</comment><comment><USER11> brainfuck (sort of, its symbol based i.e. '>' means ++pointer, the while loop is [ ... ], etc). I like the Perl latin module, [http://www.csse.monash.edu.au/~damian/papers/HTML/Perligata....](http://www.csse.monash.edu.au/~damian/papers/HTML/Perligata.html), I'm pretty sure there's not a practical non-english lang though...

<comment><AUTHOR> I saw that listed on the wikipedia page. It looked hilarious. But none of the languages listed looked 'practical' other than simply ports/translations of existing languages. I was really curious to see if there were popular and _different_ languages being used in other countries. To me that would be fascinating.

</comment></comment><comment><USER12> And then there is APL, that barely uses any letters at all and so can even be seen as natural language neutral.

</comment><comment><USER13> Logo existed in many languages, although I think it started in English. Falls into the educational category.</comment>


The People's Skype - <AUTHOR> http://peoplesskype.org/

<comment><USER2> Unless the creator has special permission from Skype to use their brand in this way, I think they may be receiving a cease-and-desist in pretty short order.

It gets the concept across well, but using someone else's brand name is usually not a good idea.

<comment><USER3> What does this even have to do with Skype? Isn't Skype — being P2P — already powered by the people?

<comment><USER4> > Isn't Skype — being P2P — already powered by the people?

Any closed-source computer program owned by Microsoft isn't exactly "powered by the people".

</comment></comment></comment><comment><USER5> I don't think I like this. It is missing a lot of the subtlety of the real thing, in ways that I think are important:

1) In real life, anyone can use the people's mic. If you implement it with a centralized conference call, only the "leader" can use it. This is supposed to be a leaderless movement.

2) In real life, GAs don't vote, they operate with complex consensus processes, and there are several different kinds out there. You can't summarize them all with a simple yes/no.

I like the general idea of this app, but I truly hope the authors spend some time with a GA and adapt it to the people's real needs, rather than pushing their own model.

<comment><USER6> Could you clarify GA for me? The only thing that comes to mind are "Genetic Algorithm" and "Google Analytics".

<comment><USER7> general assemly

</comment></comment></comment><comment><USER8> I hate so much this "repetition into conformity" thing. Making someone to repeat a "credo" is a known trick for installing beliefs into other peoples mind without them realizing that the "free", "peoples though" are orchestrated by the key members in the group.

This is "how to become sheep 101".

I don't like financial abusers but putting this people on power, assemblies in witch "everybody is equal", so experienced, documented and common sense advice is ignored, but with "some people more equal than others"(read Orwell books that talk about what Orwell himself lived) is the worse that could happen to America, Europe, or any other country.

<comment><USER9> The "People's Mic" isn't about repetition or credos at all. It's about emulating the effects of a wired PA system where none exists, with the added benefit that it has the force of dozens or hundreds of people joining in and adding their weight behind the speaker's sentiment. If a single speaker were talking to an Occupy gathering and had a speaker system behind him, it would be just as representative of their goals.

It's a low-tech solution, and the linked article is also a relatively low-tech solution. Pretty cool.

<comment><USER10> I don't understand your post. A PA system adds 0 weight behind a speaker's sentiment. Well, maybe a little bit because they're louder, plus a little because someone decided to give them a mike.

But if dozens of people repeat the message, it adds a lot of weight to the sentiment. This is a downside, since it's obviously not the case that each person in the system will critically evaluate what is being said before repeating it. But they are still adding to the psychological "weight" of the statement.

<comment><USER11> I think you're overstating the psychological effects and underestimate the self-controlling influence of needing other people to repeat what you say.

A single raving lunatic with a PA can cause a lot of stress in a gathering, it's almost impossible to shut him or her up. OTOH if you rely on Mic Check, people will simply stop repeating what you're saying if you're an ass or even if you can't stop rambling.

<comment><USER10> A raving lunatic with a PA isn't likely to convince anyone. But a reasonable- sounding person can recite a few lines, and with a bunch of people repeating him, can convince a crowd of a lot of nonsense. Repeated information, especially from multiple sources, is much more convincing and can break down a person's critical reasoning abilities much more easily than a raving lunatic.

</comment></comment></comment></comment></comment><comment><USER12> Why the heck is there so much hate about this link? Its a cheap, fast,and easy way to create a PA system. Systems made out of new technology this way are cool. Sure some of the people who use PA systems are D-bags but not everyone is. This is also cool b/c if you don't agree with what the speaker is saying, you hang up your phone and you don't have to listen to them anymore. So its better than a normal PA system! OWS or not this is a cool technology and the developer deserves some recognition.

</comment><comment><USER13> There goes the privacy of phone calls. (like the government wasn't listening enough)

</comment><comment><USER14> Two things:

1\. Why does this technology need to be associated specifically with OWS? Sure it serves a need they might have, but why not let the technology stand on its own? Surely there are many other uses in addition to OWS for this system.

2\. Skype will probably be giving you a call fairly soon.

</comment><comment><USER15> Also see Hoot-n-holler lines: <http://en.wikipedia.org/wiki/Hoot-n-holler>

Cisco's Hoot and Holler over IP: [http://www.cisco.com/en/US/docs/ios/12_1t/12_1t5/feature/gui...](http://www.cisco.com/en/US/docs/ios/12_1t/12_1t5/feature/guide/dthoot4t.html) [http://www.cisco.com/en/US/netsol/ns340/ns394/ns165/ns70/net...](http://www.cisco.com/en/US/netsol/ns340/ns394/ns165/ns70/networking_solutions_white_paper09186a00800a8479.shtml)</comment>


Unhappy Programmer: Whining about Thrift and Cassandra - <AUTHOR>

Earlier this year I embarked on a project where we had the opportunity to experiment with a lot of new things.  We had been given a lot of freedoms that most projects do not enjoy.
The first technology we looked at was Google Protocol Buffers for representing data.  Protobuffers are done really well and they are easy to use in a multitude of languages we care about.  The problem is that there is one critical piece missing:  Google never bothered releasing their RPC mechanism, and word around the campfire is that it is never going to happen due to the spaghetti of deep interdependencies this RPC layer has with lots of other stuff in the google codebase.  Also, no clear open source project has filled the spot in any convincing manner.
So we dropped protobuffers and had a look at Thrift. On the surface of things Thrift fits the bill. Thrift isn't quite as nice as protobuffers but it is close. More importantly, it comes with an RPC mechanism. Or shall we say, it comes warious RPC mechanism options.
Okay, we have an RPC layer.  On to the storage system.
We had a look at CouchDB, Voldemort, Cassandra and Hbase and decided to give Cassandra a chance.
Now Cassandra has been getting a lot of press lately and it is indeed a relatively sweet system. There are a few problems though.
First off, would it have killed the designers to use nomenclature that makes sense to people? Call a table a table. Call a row a row. And who the hell figured it would be a good idea to refer to tuples and maps as various types of columns? Most people have certain expectations of what a "column" is and it ain't what the Cassandra designers think.
The reason why you have types such as Set, Map and List in Java is because these have defined meanings in mathematics.  The designers didn't just assign new meanings to words that already had meaning.
Second, neither Thrift nor Cassandra are available through any official Maven repositories yet even though it has been forever since they were released as open source. That right there is a big warning sign.
It means that people need to fiddle around embedding dependencies in their projects. Even Cassandra is using a older version of Thrift, which it has to embed in the build -- so if you were thinking of using a relatively new version of Thrift in your Cassandra-backed Thrift service you have to think again (or go through the pain of making two versions of the same library play nice within the same JVM).
Third, some of the attitudes really stink.
While reading through the mail archives I came across an issue that I myself experienced. I had a thrift service running and all of a sudden it crashed with an OutOfMemoryError. I tracked down the bug to the framed transport implementation and to my horror discovered that it is a fairly naive implementation: it'll just read a sequence of bytes off the wire, interpret them as a number and then try to allocate a buffer of that size. There was not even a comment in the code that this is relatively poor design and that it might be an idea to implement a chunked framed transport (so you can move large objects while still discovering frame errors without committing lots of resources). But I digress. One of the responses I found in the mailing archives amounted to "don't do that then. thrift is expected to run in a trusted environment". Huh!?  Have these people even worked for an Internet company before?  There's a lot of stuff going on in a datacenter and you CANNOT have a critical system go down just because some program erroneously connects to the wrong port.
Fourth, while trying to develop for Cassandra I needed to implement proper unit tests. This proved to be amazingly fiddly since embedding Cassandra is a sheer nightmare. I looked at how one of the client library designers had done it and ... I got a bit sad. Not an elegant solution.  The short version is:  if there is any chance you'll be running more than one instance of Cassandra at the same time in the same JVM you are fucked.  I guess someone didn't get the memo on how to design singletons properly.
Fifth, I am really amazed by the fact that Facebook just threw Thrift and Cassandra over the fence and then never bothered to make sure that things progressed to a usable state in a timely manner. Right now, wide adoption of Cassandra and Thrift is gridlocked. I see people play with it for a while and then ditch it.  Why did Facebook open source it in the first place if they never intended to drive the project forward? (Same goes for Google, why on earth did they just dump Protobuffers into open source and then largely abandon it?)
As mentioned earlier, it has been forever since Thrift was open sourced, and the thing is still not available through any official maven repositories. Which means that EVERY downstream project is affected. Including Cassandra.
I didn't want to write this piece. What I wanted was to sit down, learn the codebase thoroughly and see where I could contribute to pushing these hings to where they should already be (even though I've been told "well, good luck with getting any patches accepted").
I went to my managers and said that I would like to take a quarter out of our current project to make Cassandra and Thrift usable for everyone. Unfortunately we do not have the budget or the time for that.
I think Cassandra has a huge potential, but that it is slowly being wasted.  Not enough people care about things that really matter to developers and unless this is recognized and addressed I think Cassandra is going to have a really bleak future.
Yes, this is a whiny piece, but I am at my wits end. <comment><USER2> Well, you say you don't have the time or the budget to contribute to Cassandra and Thrift now. Don't despair, perhaps in the future you could contribute to those projects.</comment>


Information From Eight McDonald's Promotion Websites Stolen - <AUTHOR> http://spectrum.ieee.org/riskfactor/telecom/internet/mcdonalds-promotions-websites-hacked-are-millions-of-customers-affected

<comment><AUTHOR> Here's the original link: [http://www.aboutmcdonalds.com/mcd/our_company/mcd_faq/databa...](http://www.aboutmcdonalds.com/mcd/our_company/mcd_faq/database.html)</comment>


Facebook's Discover Production Engineering Program - <AUTHOR> https://www.facebook.com/careers/life/introducing-facebooks-discover-production-engineering-program <comment><AUTHOR> Happy to share the Discover Production Engineering program—a 12-month opportunity designed to support folks interested in both software and systems engineering. If you (or someone you know) are looking for an exciting new opportunity, please apply.

<comment><USER2> Is this program also applicable for people living outside the US?</comment></comment>


Do We Need Node? - <AUTHOR> http://zpao.com/posts/do-we-need-node/

<comment><USER2> I think the point about most other languages having package systems that exist independent of the compiler is a great analogy. It really is a bit funky when you consider how tied to Node/V8 all npm modules are. And as the OP said, Node has a been a tremendously powerful, positive force in the world, but if JS really is the cat's meow, perhaps it's time for a real, framework-agnostic library manager.

<comment><USER3> Not all npm modules reference Node libraries, and most that do use them for features that are unavailable otherwise (file reading, http connections, etc...). But other than self imposed module requirements, I don't think npm actually has anything intrinsically tying it to node. You can run npm without node, and if the library functions were emulated in a different engine, I think it would work mostly without a hitch. It's just that nobody has done that yet.

</comment></comment><comment><USER4> Do we really need server side javascript at all?

<comment><USER5> Yes its the best thing ever.

<comment><USER6> Agreed.</comment></comment></comment>


Announcing Rust 1.19 - <AUTHOR> https://blog.rust-lang.org/2017/07/20/Rust-1.19.html <comment><USER2> Great running into you at Shizen @steveklabnik!

Just started using Rust in a serious capacity this month to secure some C++ functions that are called by our Erlang apps, with great assistance from Rustler [1]. Several people have complained to me about the decision to remove async IO from Rust, but I'm really grateful that it happened, because it lets Rust focus on being the best at what it is. Erlang's concurrency primitives and Rust's performance & security are a match made in heaven.

[1] [https://github.com/hansihe/rustler](https://github.com/hansihe/rustler)

<comment><AUTHOR> Hey hey! You too. Sorry I had to skip town before we could grab a drink, it was a hectic trip!

> the decision to remove async IO from Rust

I'd be interested in hearing more about this, did they maybe mean green threads? [https://tokio.rs/](https://tokio.rs/) is the big async-io project, it's certainly not removed in any sense!

<comment><USER2> I should clarify the "remove async IO" as the decision to not include an event-loop primitive in the core language or stdlib, which is tantamount to complaining about GC not being part of Rust core :)

Metal IO is an awesome library as well:

[https://github.com/carllerche/mio](https://github.com/carllerche/mio)

<comment><AUTHOR> Ah yes, I forgot that we had libuv at some point, duh! Thanks :)

</comment></comment></comment></comment><comment><USER3> Incredibly excited to see unions available in stable Rust now!

The release notes mention my RFC, but a huge thanks also to Vadim Petrochenkov for the implementation, and all the myriad RFC contributors.

<comment><USER4> Now that unions have stabilised, is there any significant un-expressable things in C APIs left? Bitfields?

<comment><USER3> Yes, to the best of my knowledge, bitfields are the last thing in C APIs you can't express conveniently in Rust; you can handle them with careful macros, but that's annoying, just as it was for unions.

In terms of things you _can_ express now but that could still use some work: anonymous structs and unions. You currently still have to name all the intermediate aggregates, even when the C API doesn't. See [https://internals.rust-lang.org/t/pre-rfc-anonymous- struct-a...](https://internals.rust-lang.org/t/pre-rfc-anonymous-struct-and- union-types/3894) .

<comment><USER5> The tough thing about bitfields in C are their poor portability as they can get laid out differently in memory by platform and compiler. They're often avoided even in C when you're looking for a good degree of interoperation (e.g. structs used in networking or on-disk-formats, etc.).

<comment><USER3> Right. And we can't just say "we need bitfields", we need 100% C-compatible bitfields, for FFI.

<comment><USER6> But not very important for FFI, since bitfields rarely seem to show up in C APIs (presumably for exactly the reasons mentioned above).

A kind of similar issue appears even with enums, because it is hard to guess the size of the integer that a given enum is implemented with. This is why it some not to use C enums in public interfaces to libraries.

<comment><USER7> Gecko (and many other large C++ programs that care about memory usage of certain heap allocated types) uses bitfields often enough, and we've had to teach bindgen how to generate bitfields so that we can access them from Rust.

<comment><USER6> Were these intended as part of an external interface for Gecko? In which case I would say using bitfields (as opposed to explicit masks) was a mistake.

But yes, I can imagine that for Mozilla there is a need to mix Rust and C++ right inside an application at boundaries that are not usually considered external, in which case all kinds of non-portable C constructs are acceptable.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> One thing that recently surprised me is that Rust lacks default values and named arguments for functions.

Some consider it a counterpattern or bad memory to be able to not fill out all parameters or reference them by name. However some interfaces easily require like 50 different function parameters that cannot be removed in a simple way and they all make sense in different configurations. Without default values and named parameters you're lost there. I don't get this design decision on Rust side at all.

<comment><USER9> Coming from Python I agree that the lack of keyword/default arguments is initially conspicuous, though in practice it seems that library authors seem content to implement builder patterns to work around their absence. While ideally I do think that the builder pattern is less elegant than supporting keyword arguments, in practice it does avoid the unfortunate pattern I've seen in some Python APIs to just cry #yolo and cram a hundred parameters into a single function call. I've _never_ seen a good interface that requires "like 50 different function parameters"; call me zealous, but if I were to design my own programming language, I'd make it a hard compiler error to have more than four parameters to a function. :P

<comment><USER8> While you can misuse a feature, you don't have to. My example is extreme and you probably don't run into something like that often depending on what you do. There could be other solutions. There surely are other solutions that are neither more clear nor better in any way. Sometimes you just got to do what you got to do. What surprised me about Rust is that it has all those cool features but lacks a very basic one that most programming languages have.

<comment><AUTHOR> > a very basic one

With my language-nerd hat on...

While they may _seem_ basic as a user, designing a language means you need to think about edge-cases. Methods in Rust have some special rules around dispatch, and in order to implement one or both of these features, all of that stuff needs to be considered and designed.

In other words, a _lot_ of work goes into new features, even ones that are easy to use.

In Rust's case, we haven't ruled out adding these features completely, but nobody has put in that work to come up with a proposal. Part of that is that while people tend to see the lack of these features as a mild annoyance, it's not enough to prioritize over other work. We'll see how it all shakes out.

<comment><USER10> Want to echo this part:

> nobody has put in that work to come up with a proposal.

Features like this mainly need a champion who really cares about getting it into the language & can work with the language & compiler teams to complete that process.

</comment></comment></comment></comment></comment><comment><USER11> Hm. I'm not sure about the addition of unions. Why add something that is unsafe to read or write? You need an additional mechanism to let you know which type it is OK to access.

They mention the case where the type can be distinguished by the lest significant bit, but wouldn't it be better to handle that case as an enum? That is, the least significant bits define the enum tag, while the remaining bits define the associated value.

(By the way, I really mean this as a straight question, _not_ a criticism in the form of a rhetorical question. I really don't know enough about it to be criticizing it.)

<comment><USER9> As other commenters have mentioned, the demand here is almost all due to the desire for smoother interoperation with C code. What's gone unsaid so far is that, despite still requiring the `unsafe` keyword for many operations, this feature helps make Rust code _more_ safe when calling into C, because it simplifies the interface and eliminates the need for hacked-up handwritten workarounds. IOW, a little bit of standardized unsafety to replace a larger amount of bespoke unsafety.

<comment><USER7> FWIW the hacked up workaround that bindgen uses is _beautiful_

[https://github.com/servo/rust- bindgen/blob/master/tests/expe...](https://github.com/servo/rust- bindgen/blob/master/tests/expectations/tests/union_fields.rs)

Basically, if you have a union of A, B, C, you create a struct with three zero-sized fields using BindgenUnionField<A>, and then add a field after that containing enough bits to actually fill out the size. Because the BindgenUnionField is zero sized, a pointer to it is a pointer to the beginning of the struct, and it has an accessor that treats the pointer as the contained type.

This makes the API for field access `union.field.as_ref()` instead of `union.field`, but that's still pretty clean.

It's still a hack, and I'll be happy to see it go, but it's a really fun hack.

<comment><USER9> If only English already had a word for "beautiful, yet reprehensible". :)

<comment><USER12> You know this word in another language?

<comment><USER13> There must be one in German. :)

<comment><USER14> Probably just the concatenation, like beautifulyetreprehensible.

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> Wow, a break yielding a value from within a loop is awesome! Do any other langs have that?

<comment><USER16> If you're using the loop macro, you can do it from Common Lisp (see [0]).

      (block outer
        (loop for i from 0 return 100) ; 100 returned from LOOP
        (print "This will print")
        200) ==> 200

      (block outer
        (loop for i from 0 do (return-from outer 100)) ; 100 returned from BLOCK
        (print "This won't print")
        200) ==> 100

[0] - [http://www.gigamonkeys.com/book/loop-for-black- belts.html](http://www.gigamonkeys.com/book/loop-for-black-belts.html)

EDIT: I always do formatting wrong on here.

<comment><USER17> Not just with LOOP, RETURN works with every standard iteration construct.</comment></comment></comment>


Ask HN: Web Framework for light and fast development - <AUTHOR>

I need to build a customized work request system with many different interactions and views, but am shy about a heavy framework with too much of a learning curve. Ive used rails and django in the past so I am starting with those two. Looking for something with above average template system and code generation. <comment><USER2> What about lumen ([http://lumen.laravel.com/](http://lumen.laravel.com/))? It is a micro framework (inherited from Laravel). If you need more features, you can easily scale up your project to use Laravel because Lumen uses the same structure.

</comment><comment><USER3> I'd suggest Express ([http://expressjs.com/](http://expressjs.com/)). It's easy to learn with a good feature set and still very minimalist.

</comment><comment><USER4> I like to use Gulp with gulp-file-include, full static front-end optimized build process.

I really like being able to always play with the build process to optimize the front-end only, Gulp rules.</comment>


Ask HN: Looking for pen-testing training material - <AUTHOR> I am a test automation engineer and am looking to switch branches to penetration testing.
tldr; Anyone have any good realistic pen testing challenges or reading materials which I can use to get a hand on pen testing web apps? I don't need background knowledge as much as I can identify vulnerabilities when I see them, just need something as a guideline where to look/what to use first.
I had a job interview recently and it went well; but the next step is a test where the employer will want to see what I know.
I feel a little queezy as I am great in finding bugs in software but am not always exposed to situations where I have to write exploits (even simple ones like sql injections/cross site scripting vulnerabilities). I have tried some of those challenge sites on the web and can get through a couple before getting to a point where I am actually solving a riddle which is not exactly a practical example. I also have a good programming background so just some sort of practical examples would be nice.
Any help would be appreciated. <comment><USER2> Definitively check out Kali linux [1] as starting line

There are some Udemy courses too [2][3]

For best-practices follow Open Web Application Security Project (OWASP) [4]

[1] [https://www.kali.org/](https://www.kali.org/)

[2] [https://www.udemy.com/ethical-hacker/](https://www.udemy.com/ethical- hacker/)

[3] [https://www.udemy.com/kali-linux-101/](https://www.udemy.com/kali- linux-101/)

[4] [https://www.owasp.org/index.php/Main_Page](https://www.owasp.org/index.php/Main_Page)

</comment><comment><USER3> HackerOne has a list of publicly disclosed bugs here [https://hackerone.com/hacktivity/popular](https://hackerone.com/hacktivity/popular)

Also, you might want to take a look at [https://exploit- exercises.com](https://exploit-exercises.com)

Hope these help, good luck with the interview!</comment>


Ask HN: Would you pay for a REST API for checking broken links? - <AUTHOR>

We run a SaaS website that, among other things, checks for broken links and we're thinking about creating a separate website that would provide _ONLY_ a REST API (a service) for checking broken links on any website - something like W3C checker.
Would such an API be useful for you? What features should it have? Would you pay for it? And how much?
Thank you for your opinions and time. <comment><USER2> It sounded good to me initially, but then I thought... those users that are interested in testing their application (hopefully most) will already have built tests for their API.

I guess it's a question of whether you can provide a service that is good value for money (i.e. it saves time), when I can already whip some tests together relatively quickly during development of my API.

<comment><AUTHOR> Thank you for your answer, but I think I haven't described it clearly enough: it wouldn't check for broken API links but it would be a REST API (a service) for checking broken links on any website - something like W3C checker.

<comment><USER2> Ah I see what you mean now. My mistake.

That sounds more useful... _but_ it's also something that most developers could probably build for themselves in a few minutes?

1\. Grab page 2\. Parse and find links 3\. Make a request to each link 4\. Return any links that are returning 4xx or 5xx.

Maybe there's a use for it where people want to test a particularly large set of pages/links making use of a data center's typically superior connection? _shrug_

<comment><AUTHOR> Yes, exactly. It would also be able to crawl linked pages, take screenshots of broken pages, show the path how to get to the broken pages, provide reports, ability to schedule checks like say every 24 hours, alerting (SMS, email), ...

Plus it would check not only links but also images, stylesheets, scripts, submitting forms - something like a 'website testing platform'.

</comment></comment></comment></comment><comment><USER3> Every university I've worked at has wanted a comprehensive scanner of some sorts. Most resort to half-implementing their own.

It needs to not only check links, but also * Check 301 redirects and such * Check spelling if possible * Probably the thing they'd pay for the most: a solid scan of WCAG AA or other standard with respect to section 508</comment>


Ask HN: YC W2017 Applications. Who got invited/accepted? - <AUTHOR> List your startup below! Let us know if you got the invite/acceptance! <comment><USER2> Rejected: MedicareMTM.com

Customer: Walmart Health & Wellness

Founders: James Brown, M.D.; Andy Megna, RPh, PharmD; Will Brown, Esq.

IP: Patent pending business method to facilitate Medication Therapy Management in real-time. (e-scripts for MTM)

</comment><comment><USER3> Just invited: 70MillionJobs.com

<comment><USER4> Best of lucks. I think what you're doing is awesome.

<comment><USER5> thank you, we're very excited to do that!

</comment></comment></comment><comment><USER6> Invited as well - Trail Answers - trail.finitepaths.com

</comment><comment><USER7> Invited as well: todobot.io

<comment><USER8> Todobot looks really awesome! best of luck</comment></comment>


U.S. Stood by as Indonesia Killed a Half-Million People, Papers Show - <AUTHOR> https://www.nytimes.com/2017/10/18/world/asia/indonesia-cables-communist-massacres.html <comment><USER2> Chomsky has written quite a bit about how this is the norm, and about how the media (including the New York Times) is usually complicit. I recommend his book _Manufacturing Consent_.

It paints a vivid picture of the media consistently doing the government's* bidding by painting our mass murdering allies as heroes, while massively amplifying minor crimes committed by those we consider enemies (e.g. Communists). And they do this knowingly, too, by ignoring or outright silencing dissenting voices (like Chomsky's).

Really opened my eyes to how propaganda actually works.

It's not the overt stuff you see from the early 20th century. Instead it's subtle but pervasive omission and exaggeration of facts.

* They do the same for advertisers, too, not just the government. Which is why people like Harvey Weinstein can call up the NYT and get a disparaging story erased.

<comment><USER3> Do you actually consider the crimes of Stalin, Mao, Pol-Pot, Castro and Mugabe to be minor?

<comment><USER4> Somewhat related, from Chomsky:

"My own concern is primarily the terror and violence carried out by my own state, for two reasons. For one thing, because it happens to be the larger component of international violence. But also for a much more important reason than that: namely, I can do something about it. So even if the US was responsible for 2% of the violence in the world instead of the majority of it, it would be that 2% I would be primarily responsible for. And that is a simple ethical judgment. That is, the ethical value of one's actions depends on their anticipated and predictable consequences.

"It is very easy to denounce the atrocities of someone else. That has about as much ethical value as denouncing atrocities that took place in the 18th century."

<comment><USER5> If it were so easy to denounce the atrocities of someone else, then you'd expect to have fewer people willing to stand by and cover up for Harvey Weinstein and all the similar cases. It seems more correct to say that it is easy to denounce the atrocities of someone you already dislike, or somehow see as 'other'.

<comment><USER6> People didn't stay quiet about HW because of some general difficulty of denouncing atrocities, they did so because he wielded significant influence and they didn't want their careers to suffer. This is sadly true of the victims as well: more than one of them has said that they wanted to go loud and public with it but were afraid that it would completely wreck their career through being blackballed, etc (and some of them have said that this _is_ what happened as a result of coming out with allegations).

That doesn't apply at all to the US failing to denounce e.g. Indonesia.

</comment></comment></comment></comment></comment><comment><USER7> Stood by is generous. Actively helped is better.

[https://en.wikipedia.org/wiki/CIA_activities_in_Indonesia#An...](https://en.wikipedia.org/wiki/CIA_activities_in_Indonesia#Anti- communist_purge)

<comment><USER8> The same NYTimes apparently was the voice of American establishment at that time, as usual: [http://fair.org/extra/the-year-of-dangerous- reporting/](http://fair.org/extra/the-year-of-dangerous-reporting/)

Not that it's not that same voice today, as US "stands by", err, actively aids mass killing of Yemeni civilians as we speak.

</comment></comment><comment><USER9> I'm Indonesian, from what I learn, the communist party was considered rebels and they tried to overthrow the government, they killed generals and other important figures of the government. My grandfather is also assassinated by them. Not that I generalize and hate all communists, but Indonesia just got Independence and it is important to maintain the stability by fighting rebels, and sure war crime happens, from both sides, to both sides. I just hope we all learned something from it and find a way to keep this from happening ever again

<comment><USER10> Saying things like "it is important to maintain the stability by fighting rebels" suggests that you haven't learned anything from it, and certainly won't be able to keep it from happening again. That may sound harsh, but it's true. If you see people with different views from your own about something like property rights or how taxes are spent or whether the government should concentrate on helping people or building weaponry, etc, as a threat to some mythical "stability" which can be a bugbear pointed to any time a need to justify violence comes up... you will never know peace. People can work together, and they can reach common ground. It's in the opposite direction of labelling those who disagree 'rebels' and impossible to reach through fighting.

<comment><USER11> > Saying things like "it is important to maintain the stability by fighting > rebels" suggests that you haven't learned anything from it, and certainly > won't be able to keep it from happening again.

Either you're incredibly naive or you're passing yourself as an disingenuous individual. The problem with cold war communists is that Moscow pulled the strings of terrorist groups to try to force whole nations into puppet states controlled by a communist dictatorship. That had absolutely nothing to do with the will of the people or even organic political movements arising from within any nation, and their single reason of existence was to add another communist puppet state to the list of nations behind the iron curtain.

</comment></comment></comment><comment><USER12> Well it's happening again in Myanmar, and the most important thing we have to talk about in the US is what our doofus 'leaders' have tweeted last.

<comment><USER13> I mean, if you are so certain of the way forward in Myanmar, please tell us all how we are supposed to maintain all of our tense, fragile security positions in the rest of the world while invading Myanmar and somehow coming out without having committed heinous acts of some sort or bungling the whole thing.

I, for one, think that the Myanmar situation is going to play out as it is, regardless of foreign involvement.

<comment><USER12> Ignoring for a moment that the need for almost all of these "fragile security positions" is from our own doing.. invading the country isn't the only way.

How about we bring wide-spread international attention to it? What about pressuring Myanmar's neighbors to take a stand against it (sanctioning Myanmar's leadership)? For fuck's sake, what about providing support for refugees fleeing that situation?

I don't know which answer would work, nor did I claim to, FYI since you somehow think I said that, but doing absolutely nothing is probably not a great idea.

<comment><USER14> I tend to agree, but our society incentivizes political inaction from our leaders. Doing something good and hard that could be cast in an unethical light (i.e., virtually anything) can be damning. Of course a good leader would sacrifice his career to do the right thing, but our political system largely weeds out most such leaders before they rise to national office.

</comment></comment></comment></comment><comment><USER15> Why is the US again responsible and having to be the world's police? This is why we're hated so much in the first place. Why aren't countries closer to the region, like China, helping?

<comment><USER16> The us are not generously policing the world, they are mostly looking after their own interests, while pretending to police the world. But in reality it's all about protecting their own interests worldwide.

</comment></comment><comment><USER17> Not directly about US involvement, the documentary "The Act of Killing" is a must-see regarding individuals who participated in these events and their motivations.

<comment><AUTHOR> It is simultaneously the most extraordinary documentary you've seen and also most chilling comment on the depths and banality of human brutality.

It's unlike anything on film: The mass murderers believe they are showing off their exploits to an appreciative audience, demonstrating to the filmmakers what they did. They go so far as to end up acting out a surreal fantasy, complete with sets and costumes, which cannot be described. But this is a serious documentary about a horrible event; it's not parody or satire. Somehow, the perpetrators of the killings reveal themselves.

[http://www.nytimes.com/2013/07/19/movies/act-of-killing- re-e...](http://www.nytimes.com/2013/07/19/movies/act-of-killing-re-enacts- indonesian-massacres.html)

</comment></comment><comment><USER18> _The dictator 's Handbook_ and the nerdier academic work it's based on, _The Logic of Political Survival_ , both by Bruce Bueno de Mesquite and Alistair Smith, offer a compelling economic analysis of why democracies offer political support for dictatorships whose policies are glaringly opposed to the democracies' nominal position on human rights and foreign policy. They also offer some suggestions for breaking that cycle; if you want more practical advice, you might be interested in the work of Roger Hallam, and if you want more practical suggestions again then you might want to consult an imprint like AK Press.

</comment><comment><USER19> Oh, I thought this was about that _other_ time when the US stood silent as Indonesia killed a bunch of people:

 _On 8 October 1975, Assistant Secretary of State Philip Habib told meeting participants that "It looks like the Indonesians have begun the attack on Timor." Kissinger's response to Habib was, "I'm assuming you're really going to keep your mouth shut on this subject."_

[http://www.nytimes.com/2005/12/01/world/asia/files-show- comp...](http://www.nytimes.com/2005/12/01/world/asia/files-show-complicity- on-timor.html)

[https://en.wikipedia.org/wiki/Indonesian_invasion_of_East_Ti...](https://en.wikipedia.org/wiki/Indonesian_invasion_of_East_Timor)

<comment><USER20> I think that one was worse in many ways. At least in the 60s they were fighting communists at a time when communists were causing a lot of problems. I find it hard to see much justification for the Timor stuff.

</comment></comment><comment><USER21> Does this honestly surprise anybody? We are standing by as thousands are killed in the streets of Chicago, Baltimore, Detroit, etc. Can we provide solutions to our murder problems at home, before turning attention abroad?

<comment><USER22> Standing by? Since BLM started, police have pulled back patrols as was demanded of them. There has now been a massive spike in young black males being murdered, almost certainly linked to the lack of police presence.

"We" aren't standing by as those thousands are killed, "we"'re doing as those neighborhoods have demanded. If you've got some awesome solution, I suggest you contact Rahm Emanuel asap.

<comment><USER21> > Since BLM started, police have pulled back patrols

High murder rates in inner cities have been occurring long before the BLM. Not sure why they are being inserted in this discussion

<comment><USER22> Because, exactly like I just said, the rate spiked spectacularlly since 2014. A near 20% increase in the murder rate, almost entirely in inner cities, at the same time police have drastically toned down the extra attention they gave crime ridden neighborhoods, is hard to explain away.</comment></comment></comment></comment>


Show HN: WYL Today? A note-taking utility for tracking what you've learned - <AUTHOR> https://wyl.today/ <comment><USER2> Nice idea, what did you use to create this?

Also, just a thought. It's interesting you called it what did _you_ learn today, which makes me think this is about _someone elses_ learnings and not about mine.

I'd call it WIL.today, what did I learn.

Or am I able to see other people's learnings somewhere?

<comment><AUTHOR> I used React, GraphQL, and Node.js

The idea is one day folks could publicly share their learnings, and that one could participate in 'follower' paradigm similar to that of Twitter

</comment></comment><comment><USER3> straight away asking for the email. without even telling about the product isn't a good strategy.

<comment><AUTHOR> that's fair. I am submitting this app quite early

I've thrown in a screenshot on the landing page to help better inform what the user is getting into. that's all I can do for now given my time constraints. later, I'd like to flesh out a decent landing page.</comment></comment>


Dolphins form friendships through shared interests just like us, study finds - <AUTHOR> https://www.sciencedaily.com/releases/2019/06/190612093903.htm <comment><USER2> SDF seeks same for friendship. Interests include swimming, exploring and fresh fish.

<comment><USER3> Bonus if you're into puffer-ing [https://www.smithsonianmag.com/smart- news/dolphins-seem-to-u...](https://www.smithsonianmag.com/smart- news/dolphins-seem-to-use-toxic-pufferfish-to-get-high-180948219/)</comment></comment>


Read 18 books a year: read15minsaday.com - <AUTHOR> <comment><AUTHOR> I have just released my side project and looking forward to initial users and feedback: read15minsaday.com. If you read only 15 minutes a day, you can finish 18 books a year. Record and track this with read15minsaday.com along with a whole community.

<comment><USER2> Why is this functionally different than setting a public goal for yourself on Goodreads? A site that already has a large extant community?

</comment></comment><comment><USER3> The front page gives me no idea about what the site actually does. I already know how to read, and I already have a timer. Why do I need to sign up for an account on this website?

<comment><AUTHOR> Thank you very much for your comment, I deeply appreciate it!

I will definitely work on what I communicate on the main page.

Indeed you have all the tools to be able to do this yourself. What this tool would offer you on top of that is a community and a motivation to do this with everyone.

There will be more info about your reading streaks, how your friends doing etc. There will be reminders not to miss a day.

I have more feature ideas for later on, but I need feedback just like this one! Again, thank you!

</comment></comment><comment><USER4> I don't think your site works on mobile - I just get a picture of a woman sitting reading on a pile of books.

</comment><comment> dawg- I only read 17 books a year, is that why I'm not successful yet?

<comment><AUTHOR> haha, well you might try 18 books and see what happens next :)</comment></comment>


RIM surprises with unexpected profit, sells 1 million Blackbery Z10s - <AUTHOR> http://online.wsj.com/article/SB10001424127887323501004578388072028654126.html?mod=WSJ_hp_LEFTWhatsNewsCollection

<comment><USER2> That is actually very surprising at its price; given they didn't add anything which is not already better in every other smartphone in the price range(actually well below that) out there.</comment>