GitHub's online schema migration for MySQL - <AUTHOR> https://github.com/github/gh-ost <comment><USER2> At NoRedInk, We've been using gh-ost for a few years now, and it's been a pleasure.

\- The ability to control a running migration is crucial. We have pretty predictable load, and we generally run long-running migrations during off-peak hours. If a migration runs longer than we were expecting and might run into peak hours, we can pause the migration and have the migration not impact users.

\- hooks make it trivial to integrate with other tools. Right now it reports to slack, but if we used it more, we'd likely hook it up to real monitoring infrastructure.

\- there's a lot of default behavior that we want. I'd recommend regular users wrap their best practices in another script and not call gh-ost directly. It's nice to not worry about good defaults for e.g. throttling, or worrying about whether ghost is hooked up to some kind of external monitoring.

<comment><USER3> I'm probably really ignorant asking this, but how do you "pause" schema migrations period. And even if you did, how do you ensure a consistent experience for your users if your db is broken? Some sort of application logic to deal with inconsistencies? That seems really expensive (from a development work perspective).

<comment><USER4> Not OP but I'm familiar with the topic and run similar tooling on large clusters. By pause he probably means prevent it from starting on more databases and let whatever is inflight finish. For the second point, correct, your application needs to handle both schemas during transition. When that's done, you can rip out the unneeded logic from your application.

<comment><USER5> > your application needs to handle both schemas during transition.

How is this typically done? Have a version number in the db? Have the app examine the schema with every transaction? Have the app assume old/new schema optimistically, and if that fails rollback and try with alt schema? Something else?

</comment></comment></comment></comment><comment><USER6> We evaluated gh-ost, but the killer for us is that it doesn't support any kind of foreign keys.

I understand that at GitHub's scale, foreign keys might be more of a hassle than what they are worth, but for a smallish company that values data integrity over scale and uptime, this is not an acceptable choice.

<comment> cup-of-tea I'm interested to know what companies are doing "at scale" to not need to use foreign keys. Do they just write user ids or whatnot into other tables?

<comment><USER7> I'm guessing they are validating the constraints in their applications instead of their databases. While this puts more requirements on your setup and developers, it offloads a lot of stress from your database.

<comment> cup-of-tea Yeah, but from a data integrity point of view that is horrifying. I guess they must have some very comprehensive testing framework to validate the code.

Also, pardon my further ignorance, but if you're not going to use foreign key constraints, what is the point of using a relational db? Why not just a fast key-value store for each index?

<comment><USER8> You may me able to architect your application to do well-enough without Foreign Keys yet still require features that key-value stores do not provide, like SQL, triggers, etc.

In the specfic case of MySQL, while still horrifying (I agree with you! but it is one of the things you some times have to do at scale), you can create the Foreign Key constraints but then disable their verification and periodically look for violations, as described here: [https://www.percona.com/blog/2011/11/18/eventual- consistency...](https://www.percona.com/blog/2011/11/18/eventual-consistency- in-mysql/)

</comment></comment></comment></comment></comment><comment><USER9> Back when I worked for Shopify, I got a chance to work on something similar -- GhostFerry([https://github.com/shopify/ghostferry](https://github.com/shopify/ghostferry)), which allows for doing all sorts of migrations, that too between various databases.

It was recently open-sourced. Do take a look.

<comment><USER10> Hey! I'm the current maintainer of Ghostferry. Thank you for all your work!

For the reader here: one thing to clarify here is that gh-ost performs schema migration via a data migration between two different tables and it does it via a very efficient way. Ghostferry on the other hand is general purpose data migration library that moves data between different databases, most likely different hosts. Frequently, both schema migration and data migrations are abbreviated as migrations and thus may cause some confusion. The domain of operation of Ghostferry do not necessarily overlap with gh-ost, as it would be very inefficient to use Ghostferry to implement gh-ost.

That said it is a very interesting project on its own as it has a lot of potential use cases. I don't want to hijack the thread any further than I already have so if anyone has any further questions, you can contact information and docs in the repo.

</comment></comment><comment><USER11> I used it and it's really impressive. Works as described. The only issue with this is that you can't easily use it without understanding how it works. It's more of a system you have to own rather than a tool you can use, so you can't just point a new person at it and go "just run this".

<comment><USER12> I agree. I've used it a lot too, but only after a few test runs against some snapshots to get familiar with the operational aspects of it.

</comment></comment><comment><USER13> So my understanding is that this is for migrating a db to a new one? Can someone explain like I was beginner why/how'd you would use this?

<comment><USER14> In certain scenarios if you need to modify the schema for a table in MySQL it will lead to the entire table being locked, and for large tables this could lead to a noticeable outage for users if you need to run queries on that table. One case I had where we faced this problem was changing the primary key for a table from 32 bit to 64 bit ints since we were running out of space. We used Percona's online schema change tool for handling this, which wrapped the creation of a new 'ghost' table (which has the target schema you want), rate limited writes from original table to ghost table, triggered writes from original table to ghost table as new writes came in, and finally a table rename from the ghost table back to the original table name in order to perform the full migration with no data loss or outage.

Sounds like this tool is doing something similar but avoiding the use of triggers for flexibility.

<comment><USER15> Modern advice: always use 64 bit integer ids. If it's a small table, it won't matter. If it's a big table, you'll need them anyway.

<comment><USER16> That's not always the best advice.

Consider a table that you know will only have a few rows, but is referenced in one or more FK columns. If I use a 64bit integer when 32bit (or smaller!) is enough, I'm now using twice as much space for the FK column. If there are millions of rows, plus indexes, that can add up pretty fast.

</comment></comment></comment></comment><comment><USER17> That's really old and still good strategy. [off-topic] I've heard this first time from a novel (1964).

Flynn.io uses the same kind of strategy; transaction log && async replication ([https://flynn.io/docs/databases](https://flynn.io/docs/databases))

A little sad nanobox.io which one of my app running on has an inferior strategy; temporarily offline at the last sync moment ([https://docs.nanobox.io/data-management/data-migrations- scal...](https://docs.nanobox.io/data-management/data-migrations-scaling/))

</comment><comment><USER18> This is a really amazing, very well designed and thought out, tool that solves a problem that should never exist.

</comment><comment><USER19> Holy crap, an alternative to Percona? Why does MySQL get two awesome tools and Postgres nothing?

<comment><USER20> Postgres supports transactional DDL statements natively, and many alter table statements don't end up locking the table nearly as severely as some MySQL versions do.

<comment><USER21> Actually both lock for many (crucial) schema operators, and often severely enough to block your application from reading from the table(s) under change. I've been researching this stuff for a while. Check out [http://blog.minicom.nl/blog/2015/04/03/revisiting- profiling-...](http://blog.minicom.nl/blog/2015/04/03/revisiting-profiling- ddl-statements-mysqls-return/) . It's slightly outdated, but still holds.

</comment></comment></comment><comment><USER22> Square also its online schema migration tool that is open source here: [https://github.com/square/shift](https://github.com/square/shift)

Its pretty cool. Check it out as well.

<comment><USER23> That's not a schema migration tool per-se. It's a web interface for managing running a schema migration tool (in their case the venerable pt-osc, but there is an open issue for supporting gh-ost too).

</comment></comment><comment><USER24> Very cool! Curious, does this leverage this go-mysql library at all? [https://github.com/siddontang/go-mysql](https://github.com/siddontang/go- mysql)

<comment><USER25> Yes, [https://github.com/github/gh- ost/search?utf8=%E2%9C%93&q=go-...](https://github.com/github/gh- ost/search?utf8=%E2%9C%93&q=go-mysql&type=)

</comment></comment><comment><USER26> Can someone shed some light on how this tool compares to something like Flyway?

<comment><USER27> It's an alternative to e.g. pt-online-schema-change [0]. The problem is that, for very large mysql tables / clusters, running DDL against the tables live will lock up reads/writes against the table for ages. These tools allow you to run those changes without taking downtime.

[https://www.percona.com/doc/percona-toolkit/LATEST/pt- online...](https://www.percona.com/doc/percona-toolkit/LATEST/pt-online- schema-change.html)

</comment></comment><comment><USER28> I believe RDS uses this same technique for instance resize/replace.

</comment><comment><USER29> We use gh-ost at Harvest[1] and it's a dream in comparison to manually migrating on a replica and switching master/slave roles [2].

Also the linked post[3] in the readme hit us very close to home. We originally tried some of our migrations with pt-online-schema-change, which was great in theory but caused a lot of locking contention during the actual process.

I see many people hammering on the lack of foreign key support which is interesting to me. At some point, a database system grows to where relying on MySQL's Online DDL[4] "works" but not really with production load. I feel like a team knows when they need to bring in a tool like this.

The dev in me understands how wonderful FKs are for consistency. But the db- guy in me that has had to deal with locking issues recognizes FKs as a tradeoff, not dogma.

If you shy away from migrating your large or busy tables, or are scheduling frequent maintenance down times in order to migrate these tables, that's when gh-ost (and others) are appropriate to evaluate.

So for us it's not an immediate red flag that gh-ost doesn't support FKs. We just have to work around that limitation[5] because the alternatives are much worse.

For the record, we don't gh-ost all of our migrations. Only the ones that are deemed sufficiently large enough are gh-osted and those heuristics will change from team-to-team.

But as a guy who has had to deal with our database issues AND as a developer who doesn't want to be chained by a database design decision from a decade ago, I love the flexibility gh-ost gives us as we continue to grow.

[1] [https://www.getharvest.com/](https://www.getharvest.com/)

[2] [https://dev.mysql.com/doc/refman/5.6/en/replication- features...](https://dev.mysql.com/doc/refman/5.6/en/replication-features- differing-tables.html)

[3] [https://dev.mysql.com/doc/refman/5.6/en/replication- features...](https://dev.mysql.com/doc/refman/5.6/en/replication-features- differing-tables.html)

[4] [https://dev.mysql.com/doc/refman/5.6/en/innodb-create- index-...](https://dev.mysql.com/doc/refman/5.6/en/innodb-create-index- overview.html)

[5] [https://github.com/github/gh- ost/issues/507#issuecomment-338...](https://github.com/github/gh- ost/issues/507#issuecomment-338725563)

</comment><comment><USER30> I was investigating using the binary log for another project a few years ago, but came to the conclusion that it's too hard to work with ... I don't remember any details though, maybe someone can fill me in ?

</comment><comment><USER31> You can jump through hoops or just use an RDBMS that supports transactional DDL.

<comment><USER32> That does not solve the problem. Transactional DDL still needs a full table lock for most operations, which on large tables can take minutes to hours. Then it's not really an online schema migration anymore.

<comment><USER33> Depends on a migration. Postgres can add / drop a column to a table with a billion rows in milliseconds as long as you don't provide a default value for the new column.

<comment><USER34> And in v11, even if there's a default column!</comment></comment></comment></comment>


Ask HN: How can I become more eloquent? - <AUTHOR> I was taught four languages growing up and despite me being fluent in speaking almost of them, when I try to present or argue a point in writing, I find it hard to come up with a clear structure that conveys that point well. I tried reading a lot, especially in English, but I can't seem to remember the structures prolific writers use. <comment><USER2> My English teacher used to say "when you have to write an essay, write a first version. Then throw away everything but your conclusion and use that as the introduction of your real essay"

In other words, start writing and don't be afraid to throw away. If your issue is structure, writing a first version will help you clarify your arguments, how they fit together and how to present them effectively.

If your issue is formulation (i.e. the idea you want to convey is clear in your head but you can't manage to express it clearly) I find that an iterative writing / waiting a few hours / re-reading what I wrote / reformulating approach gradually makes my writing better: less grammatical errors, clearer phrases, and usually a more concise result.

Edit: one of my favorite quotes when it comes to writing is "Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away." Antoine de Saint-Exupery

<comment><USER3> >My English teacher used to say "when you have to write an essay, write a first version. Then throw away everything but your conclusion and use that as the introduction of your real essay"

When you replace "conclusion" with "top level functions", this seems to work equally well, at least for myself, when writing (new) code.

<comment><USER2> The quote from Saint-Exupery also applies to good code I think :D

<comment><USER4> All code could be constructed as a Perl one-liner. Or minified.

There is a point where reduction = obfuscation.

AFAIK, it's harder to hit that point using IRL organic languages, but TBH people abuse acronyms while coding. IANAL and YMMV, but just my 2 cents FYI - TMYK!

</comment></comment></comment></comment><comment><USER5> My advice is to learn as we humans learn best, through imitation.

Find some speakers that you admire, with online content, or videos. Next take a ~5 minute segment, which has a start and finish.

Turn off the video and formulate the same argument on your own, either in writing, or by recording yourself, depending on your goals. Now go back and compare to the original.

Whilst tedious this will highlight your own shortcomings, and the genius of those you are emulating far quicker than any passive approach, imo.

<comment><USER6> this is similar to an exercise David Foster Wallace would do — take a longish piece of prose, read it once, then try to replicate it exactly without looking.

Assuming it's long enough that you can't hold it in working memory, you'll end up with something that shows you the difference between your own instinctive writing style and whatever you are copying.

<comment><USER7> Where did you read that? (I'm curious.) Ben Franklin did basically the same thing.

<comment><USER8> Ben Franklin imitated John Bunyan from Pilgrim's Progress if I am not wrong.

</comment></comment></comment></comment><comment><USER9> Remember that writing is very different to speaking, and those prolific writers often spent vast amounts of time tweaking their words until the have the perfect narrative.

When it comes to verbal communication people respond well to stories. As with any story:

      - Start With A Hook.
      - Have A Point To The Story.
      - Choose The Right Time To Tell The Story.
      - Show, Don't Tell.
      - Use Vivid Details, Not Lots Of Facts.
      - Practice Related Skills.
      - Tell Personal Stories, But Cautiously.
      - Share Firsthand Thoughts & Feelings.

<comment><USER10> They are looking for writing tips not speaking tips.

<comment><USER11> OP said "([present] or [argue) a point in writing]".

I naturally group that using the square brackets above, not the parens. If you use parens, it's writing only. With the square bracket grouping, it includes speaking tips.

<comment><USER10> Fair enough.

</comment></comment></comment></comment><comment><USER12> APEC - Assert thesis, Present evidence, Explain relevance, Conclude. Should include the counterargument in the explanation paragraph.

Source: my tyrant of an English professor.

Add a personal/colorful story paragraph before the A and you get the format another professor used while a professionally prolific writer.

</comment><comment><USER13> One thing that I recognize in people that sound more eloquent is that they pick the most accurate words when possible, having in consideration when to abstract out or when to be more specific to do not distract you, from the main point.

Sort of not generating ambiguities in the listeners head by using very specific terms. At the same time use more abstract words for the aspects that are no so relevant in the conversation. This is one observation I made, because I'd like to become more eloquent but as you can see I'm not quite there yet hahaha. Thanks for posting this interesting question.

</comment><comment><USER14> Most people don't:

\- Consider their audience

\- Make use of structure

\- Repeatedly edit what they have written before hitting send

The first and third items are things you can just decide to do: think of your audience, and spend _time_ to read and adjust the content and format until it's great.

For the second item, consider this book: [https://www.amazon.com/Pyramid- Principle-Logic-Writing-Think...](https://www.amazon.com/Pyramid-Principle- Logic-Writing-Thinking/dp/0273710516)

</comment><comment><USER15> Benjamin Franklin, in his autobiography, writes about how he wanted to develop his ability to craft persuasive arguments. I've always admired his approach to solving that problem.

Here's a short article on that excerpt: [https://excellence-in- literature.com/copywork-how-benjamin-f...](https://excellence-in- literature.com/copywork-how-benjamin-franklin-taught-himself-to-write-well/)

</comment><comment><USER16> I read thousands of books, but never learned to write eloquently until I was 18 and was __taught to write __by someone very experienced at teaching writing. He went through dozens of essays with a red pen, tightening constructions and arguments. I 'm convinced that doing is the only way to learn writing, and if you can get 1-on-1 guidance and detailed feedback, it can hugely accelerate the process.

That said, also read

* William Zinsser "How to write well". It's a very practical classic that improved my writing by a factor of two or more after one reading, and I found it enjoyable enough to read it more than once.

* Mark Forsyth "The Elements of Eloquence". Also highly enjoyable while remaining very practical (it also took several readings to remember a lot of the points he made, but it's reasonably short and each of the many sections are independent, so it's easy to open it up and learn something in 2-3 minutes).

If anyone is interested in the intersection of technology and writing eloquently, pull requests to [https://github.com/sixhobbits/technical- writing/blob/master/...](https://github.com/sixhobbits/technical- writing/blob/master/resources.md) are very welcome

</comment><comment><USER17> 1) To learn effective structure, start with the Pyramid principle [1]. Some people have a natural sense of flow, others don't. I'm in the latter category. I find I need some kind of mental scaffolding, which the Pyramid Principle provides.

2) Jot down any interesting witticisms, jokes or turns-of-phrase that you come across. (I have Google Docs document that I've been stashing phrases in for years). Do not use this to embellish your writing -- that would be plagiarism -- but instead, use it as a archive of the writing style(s) you are partial to and as an aid to developing your own style.

3) Take a creative writing class and workshop your pieces. Real-life critique from peers can often help you discover strengths and weaknesses. Good feedback loops are key to getting better at any endeavor.

4) Edit edit edit. Compose a draft and let it sit. Read it out loud. Repeat until you are happy with it.

Eloquence is a outcome, not a skill. You cannot learn it directly. You can however learn the skills that lead to it.

It's a little bit like discipline. You can't set out to learn "discipline", but you can do things like dedicating yourself to practicing say, a musical instrument. Along the way, discipline emerges. It's a meta-skill.

Writing is an open-domain skill, and not everyone can be a great writer. However, most people can be decent technicians at writing. Some technicians may eventually become great writers.

[1] [https://medium.com/lessons-from-mckinsey/the-pyramid- princip...](https://medium.com/lessons-from-mckinsey/the-pyramid- principle-f0885dd3c5c7)

</comment><comment><USER18> As strange as it may sound, I often write on HN (and other places) simply to practice writing. I've noticed that good writing often gets upvotes, while good ideas (at least in my opinion) are controversial. If people can follow your train of thought, there will be people who agree and will upvote you. If they can't, it doesn't matter how brilliant the idea, people will ignore it.

As for mimicking other writers, I would avoid that. You have a style, but you haven't discovered it yet. Just keep writing. Get feedback. Write some more. Over time, your style will come forward. Once you recognise it, it will be easier to refine it.

</comment><comment><USER19> I often find that if I'm having trouble conveying a point in writing, it's because I don't understand the needs of my audience and the story arc of the information I'm conveying in the context of that audience.

You want to create an urgent need in the reader for whatever it is you're trying to convey. What problem are they facing? How can you position them as the hero that will solve that problem, and how will they use your product, information, or point of view to become the hero of their own story.

It seems that you're feeling that your points are being understood or acknowledged, despite the fact that you know you have important information to convey.

We all want to be heard and to be valuable contributors, and I'll share that I've personally found the best way to be heard is to listen. By framing the presentation of your information in terms of your audience's problems and needs, you allow them relax. You haven't just heard their point, you're addressing it.

Now you can use the shared momentum of their attention and needs to guide them towards the solution you're proposing.

When done well, you'll make people feel profoundly heard and that you are empowering them solve their own problems, using ideas or suggestions they might have otherwise rejected if presented as simple fact or advice.

If you'd like to learn more, I'd recommend two fantastic books on the topic:

[https://www.amazon.com/How-Win-Friends-Influence- People/dp/0...](https://www.amazon.com/How-Win-Friends-Influence- People/dp/0671027034)

[https://www.amazon.com/Building-StoryBrand-Clarify- Message-C...](https://www.amazon.com/Building-StoryBrand-Clarify-Message- Customers/dp/0718033329)

Despite their titles (and apparent focus on marketing), these books are both about empathy, listening, and finding ways to convey information that resonate deeply with your listeners.

<comment><USER20> How to Win Friends and Influence People should be required reading, and studied prior to graduating high school. I reread it once every year, and I still dig out gems that help in day to day life.

</comment></comment><comment><USER21> Join a nearby Toastmasters club. It'll give you tons of practice in speaking, and you'll quickly see how it affects your speech, not just in speaking contexts, but in any context where you have to speak to, communicate with, or lead people.

<comment><USER22> 2 years into a Toastmasters club in Shanghai China and I have seen remarkable transformations among my fellow members. So many introverts have flourished under the program and gone on to be officers in the club and speech contest winners at various levels all the way up to nationals. Its really wild to see personal growth happening right in front of your eyes over the many months. Give it a try!

</comment></comment><comment><USER23> The funny thing about reading is that we can do it for decades, picking up vocabulary and appreciating a polished sense of style.

And yet when we sit down to write, we have not consciously prepared ourselves with the tools to create and refine our own words.

So my advice would be to re-read parts of a favorite work or two that you consider to be eloquent. This time, as a student of technique, not content ... noting how the authors convey ideas clearly and convincingly, how your admiration is earned.

</comment><comment><USER24> I've always found it helpful to outline my argument and logic. I then write almost all work documents and personal non-technical writing in this format:

Hook/Lead - What's the point and it's importance? Context - What surrounds the point making it important? Point of Action - What am I arguing for us to do... Body of the Argument - Format varies Suggested Action/Action Steps - List what needs to be done ~~ Collaboration Section (if needed) Request for Comments - "I realize this might cause problems for x, y, z. Could you please provide input on the resolution of the #{point of the matter}?"

If it's technical, I learned to use the Toulmin Method for arguments. I first learned about it from Purdue's Online Writing Lab in high school.

Obviously, I don't follow it to the letter but that's how I try to "flow" my writing. If you're speaking, the most important thing is your hook and letting people know where you are in your speech as you guide the listener's attention through your presentation. Edit: The guiding can also be visual, if you've got a visual aid; however, you've still got to point it out at least once.

</comment><comment><USER25> From Scott Adams blog, Post is titled 'The Day You Became a Better Writer': "Business writing is about clarity and persuasion. The main technique is keeping things simple. Simple writing is persuasive. A good argument in five sentences will sway more people than a brilliant argument in a hundred sentences. Don't fight it." Great article, 2 minute read, master the basics first.

</comment><comment><USER26> Practice more writing. The key is to do it in a way where embarrassment of both the style and substance is totally removed: _anonymously!_

Create a new account on any service where you feel you can have substantive conversations and write, write, write! You'll quickly find your written voice.

<comment><USER27> I agree: read more, write more. There's no substitute for practice here.

</comment></comment><comment><USER28> This is my system:

1\. Take your time. Everything matters. If it feels wrong, it's not done.

2\. Always finish a writing session with a complete version of what you set out to write (section, chapter, blog post, email to your landlord.)

3\. Don't be afraid to start from scratch whenever you feel like it. Never keep around something you don't like "just in case." Throw it away.

You'll feel some contradiction between these. If (1) everything is important and I should sweat every detail, how do I (2) make myself produce a complete version when so much about it will feel wrong and (3) it's probably going to get thrown out the next day?

They're partly contradictory because they work together. (1) encourages you to pay attention to details, but keeping an eye on (2) keeps you in touch with the big picture and forces you to think about how the details contribute to the whole. (1) and (2) force you to work hard; (3) reminds you not to overvalue something because of the work you put into it. (1) and (3) pressure you to maintain high standards; (2) pushes you towards completion. They work together well enough that I feel justified in calling it a system.

One thing I don't find myself doing, but which others might have a problem with, is rewriting the same section/chapter/email over and over again instead of moving on. At some point I reach a sufficient combination of bored and satisfied that I want to move on to the next thing. If you have a problem with that then you might need to add something to this system or create a new one.

</comment><comment><USER29> Demonstrating evidence and being persuasive are very different things.

Convey evidence by plugging it into a model, usually a visual one, like a matrix, using a socratic, catagorical approach.

Hint: if your visual model lacks clear symmetry, I guarantee it also lacks coherence. Looking at you, class diagram modellers and bad architects. The model requires visual symmetry to determine information completeness.

If you would like to be persuasive, start by being funny, then refine that skill into becoming insightful.

</comment><comment><USER30> Your post is well written to begin with, so it seems that you already can write consice and convey your point well. While I'm not known almost family and friends as being exceptionally articulate, I've found bother reading philosophy and poetry combined with practice to be helpful. You must practice for example, in front of a mirror, or write down some creative thought in a personal journal or even a blog. Reading along won't help.

</comment><comment><USER31> Paraphrased advice: To speak better, write more. To write better, read more.

</comment><comment><USER32> Lots of people gave great writing advice in this thread, so I'm going to throw out something different that may or may not resonate with you: Watch seasons 1-4 of the West Wing on Netflix. If you come across an episode that sticks with you, watch it a couple more times, maybe even put it on like background music (Sorkin's dialog often feels melodic).

<comment><USER33> Could you provide an explanation for your proposal? Why the west wing? Why repeat the episode? What is it about Sorkin's dialog that drew you in?

</comment></comment><comment><USER34> Since you're struggling with writing I'd highly recommend 'Elements of style' by William Strunk. I'm surprised nobody recommended this yet.

[http://www.gutenberg.org/ebooks/37134](http://www.gutenberg.org/ebooks/37134)

Quite a few practical tips in there in terms of sentence structure and style.

Just as a reference point, from the wikipedia page, "Time named in 2011 as one of the 100 best and most influential books written in English since 1923"

Also as an aside, this book also inspired the name of the programming tome 'Elements of Programming Style' [https://en.wikipedia.org/wiki/The_Elements_of_Programming_St...](https://en.wikipedia.org/wiki/The_Elements_of_Programming_Style)

</comment><comment><USER35> As an engineer the first thing to look at is verbosity. We tend to try and convey as much information as possible. And that too in a single sentence. The end result is that our sentences tend to have 2-3 thoughts all at once. These sentences are easy for an engineer to read. But normal people will be confused.

A good example is the question you have asked. It is overcrowded. You need to decide which piece of information is necessary and what is the sequence which makes the most sense. It might be that "you are fluent in speaking four languages" and "but you have difficult to come up with a clear structure" etc. You get the drift.

If it is possible try and get a copy of "Brilliance Breakthrough" by Eugene Schwartz. I have learned a lot from the book.

</comment><comment><USER36> Do you mean eloquent, or do you mean persuasive?

There's a difference between writing clearly, and using rhetorical and psychological tricks to write persuasively.

For persuasion see books by Cialdini, Bernays (Propaganda), and Schopenhauer's list of stratagems.

[http://www.mnei.nl/schopenhauer/38-stratagems.htm](http://www.mnei.nl/schopenhauer/38-stratagems.htm)

It's worth reading all of these to see how these tricks can be used against you, even if you never use them yourself.

For clear writing I'd recommend Paul Graham's essays (I don't often agree with his ideas, but I think his essay style is gold standard), George Orwell, Carl Sagan, and the first few books by Richard Dawkins.

And it's easy to find tips online.

</comment><comment><USER14> If I were to do a first-pass re-write your original question, it might go something like this:

Ask HN: How can I improve my written communication?

When I try to present or argue a point in writing, I find it hard to come up with a clear structure that conveys that point well. I have tried reading a lot. What else can I try?

Why did I make those changes?

\- eloquent -> written communication: makes the title match the body, and is more specific

\- 'I was taught four languages...' isn't relevant or useful. Everything you write either makes the point, or distracts from the point. Cut the latter.

\- "can't seem to remember structures..." is kind of irrelevant, as you're asking for _different_ solutions from the ones you've tried

\- 'What else can I try?': End on a call to action.

<comment><AUTHOR> This is quite valuable, thank you!

</comment></comment><comment><USER37> Aristotle wrote "On Rhetoric." It can be a hard slog for the modern reader because it has an unfamiliar structure. Still, it's worth the effort: it is a helpful guide to you when you work to convince people.

Good rhetoric--according to Aristotle--starts with the concepts of ethose, pathos, and logos.

Ethos: who you are and why people should pay attention to you.

Pathos: who your audience is, and how you understand them.

Logos: your message; the facts, your proposal.

Go for excellence in all three when you're speaking or writing formally.

To get the hang of this, watch some TED talks and score the speakers on these three things.

</comment><comment><USER38> Reading [http://www.treesmapsandtheorems.com/](http://www.treesmapsandtheorems.com/) helped a lot in terms of structuring my thoughts and arguments

</comment><comment><USER39> 1\. Write frequently.

2\. When you hear a word you don't know (or know but don't use often) write it down or at the very least attempt to use it in speech and writing more frequently until it sticks.

3\. Get the precise definitions of words from Merriam-Webster or similar.

4\. Listen to the Word of the Day Podcast from MW.

5\. Read The Economist's style guide.

6\. Part of being eloquent in text is mastering punctuation. Read Practical Typography and take the time to choose the right character.

7\. When you read something you're not sure you fully understand stop and investigate it.

8\. Edit your work with multiple passes.

9\. Hire an editor to weed out the words you use as a crutch. I struggle with overusing "do" and "just" (both of which usually just pollute the sentence with either unnecessary sincerity or condescension[1]) but find yours. I have a good recommendation if you're looking.

[1] Compare the below:

When push comes to shove, I really do believe in liberalism over practical realities.

When push comes to shove, I believe in liberalism over practical realities.

He should just put the book down.

He should put the book down.

</comment><comment><USER40> Take a look at a GMAT critical reasoning workbook. Practice the exercises within them. There are online communities for test prep. In them, you will find people sharing in similar experiences.

</comment><comment><USER41> The term you're looking for is Critical Thinking. There's a very good book about it from Oxford press[0]. My wife used it when going through her MSc at Oxford and I've read it a couple of times to understand exactly what you're asking.

[0]: Oxford Guide to Effective Argument and Critical Thinking [https://www.amazon.com/dp/0199671729](https://www.amazon.com/dp/0199671729)

</comment><comment><USER42> I learned the most by reading and writing about great speeches in high school English. Lincoln's Gettysburg Address, Marc Antony's speech in Julius Caesar, and JFK's moon speech all come to mind. Understanding why these were effective is like drilling the fundamentals in sports or music. Once you have internalized the rhetorical devices that the greats deployed, you can start to use them in your own writing.

<comment><USER43> Churchill is good too. It would be cool to see a website that takes apart great speeches and annotates their meaning and what the author was trying to get across, perhaps utilizing collaborators. Apart from the myriad of academic work which would likely just serve to confuse.

</comment></comment><comment><USER44> If you think about it you can probably come up with 10 points that you can use over and over again in different situations. Write them down, then do a second draft and then a third. Memorize them and then start using them during conversation. Your presentation and flow will improve when you are not searching for one word out of a possible four different languages.

</comment><comment><USER45> Read a variety of styles critically.

Don't just blow through a bunch of novels for the sake of reading. Read poetry, short stories, novels, a variety of genres, etc. Spend time re-reading and analyzing particular passages that stand out to you. Keep a dictionary handy and look up words that don't completely make sense to you.

</comment><comment><USER46> Develop the 'talk' part of your writing first: try to express your conclusion and supporting evidence verbally in a way that's engaging and easy to understand. Maybe even find someone to explain your idea to. Once you can do that, write your talk down and flesh it out with necessary detail, citations, etc.

</comment><comment> yoz-y "On Writing Well"by William Zinsser is not a bad start. One of the takeaways from the book is, that much like everything else, writing is a skill that you have to practice in order to get better at it. Do not try to create your own style, first learn how to write only what is essential, without embellishments.

<comment><USER17> Zinnser's "On Writing Well" comes up as a recommendation from time to time, especially in tech circles.

I don't want to gainsay those who have benefited from it. It does contain a few good tips. For me though, it was a bit of a slog and the payoff wasn't great

It could just be a characteristic of the genre. My creative writing teacher tells me that most general interest books about _the process of writing_ aren't worth reading, and having purchased a few of them, I would tend to agree. There are a few exceptions, but these tend to address specific topics within writing like memoir writing.

</comment></comment><comment><USER47> Practice your message in different media - everything from tweets through short blog posts and longer articles. Better still, iterate between those and speaking (platform speaking and regular conversation). Through the experimentation and repetition, sharper messages emerge and you find out what resonates with people.

</comment><comment><USER48> When writing, read your work out loud to find phrases that are awkward to speak, and think of ways to be more succinct. Most people process spoken and written language differently, and this technique allows you to use the strengths of language you've obtained for both forms of communication.

</comment><comment><USER49> Simplicity is eloquence.

Boil it down to simple language. Emulating other authors will not help you discover your own voice.

</comment><comment><USER50> Take some philosophy classes at the college or graduate level. You will learn to make arguments, and if you have good teachers/TA's, your writing will vastly improve, as they will provide incisive critiques of your writing from structure to word choice & punctuation

</comment><comment><USER51> Hey faced a similar problem when I moved to the US first time. It takes time and with practice you will definitely become better. Just hang out with people who converse in the language you want to gain eloquence in. I would take it language by language.

</comment><comment><USER8> I am able to present myself in writing just about right. Would love to hear tips on how can I be more eloquent while speaking. I am comfortable with public speaking, am just to awkward at dinner table / coffee table gossip.

<comment><USER52> Re dinner table / coffee table: ask a lot of questions of other the people. Most people love to talk about themselves. Then try to make a comment that is relevant to their answer/story.

<comment><USER53> Ask questions to find something unique and interesting about the person you're talking to and get them to talk more about that. You walk a fine line between small talk and prying but it usually works for me.

<comment><USER52> Yeah, it can also be way for you to learn something of interest about them. This is particularly relevant in a business networking situation.

</comment></comment></comment></comment><comment><USER54> Try to speak slower. This will give you more time to think, while also making you sound more authoritative.

<comment><USER10> More than one person in replies believes the OP is looking to improve their speaking. Perhaps this is a clue to where the OP can improve.

My tip is to always start with a clear indication of where you are going.

In this case, mention _writing_ in the title, or very soon into the first sentence. For example, you could start with "Eloquent writing eludes me, I'm looking for strategies, tips, or advice." Nobody would read that and then give you advice on public speaking!

<comment><USER54> Ah yes the word "present" through me off.

If it is about writing - I always find that re-reading what you wrote the next day helps with refactoring the text.

</comment></comment></comment><comment><USER55> Toastmasters.

</comment><comment><USER56> This might be overkill for what you're trying to do, but...

[http://slatestarcodex.com/2016/02/20/writing- advice/](http://slatestarcodex.com/2016/02/20/writing-advice/)

contains some food for thought

</comment><comment><USER57> Have you tried copyworking yet?

</comment><comment><USER53> Listen more

</comment><comment><USER58> make everything 50% shorter.

<comment><USER59> Be brief?

<comment><USER60> Distill!

<comment><USER61> Ah, but that gets you in trouble with non-native speakers fast. There are advantages and disadvantages to using a broad and precise vocabulary.

</comment></comment></comment></comment><comment><USER62> Steven Pinker is helpful: [https://youtu.be/OV5J6BfToSw](https://youtu.be/OV5J6BfToSw)

Also, google the rules Fred Rogers used to talk to children. Those combined are a good foundation for developing an eloquent style.</comment>


Ask HN: New York vs. San Francisco to do a startup - <AUTHOR>

My cofounder and I are considering moving from San Francisco to New York to do our startup.  I'd love to hear from the community why we should stay or go.  I realize there are plenty of reasons that would be specific to our business.  But I'm interested in the more general/broad difference between the New York and San Francisco tech scene.  Thanks! <comment><USER2> I think you're trying to solve the wrong problem.

I think you should run your startup wherever you feel comfortable living.

My city is a great city, it has many neighborhoods you can feel "home" in, it has great food, it has a lot of money flowing through various veins. The startup community here is varied, focussing on a variety of business opportunities, and not necessarily totally digital. There's a certain sense of underdog vs. the world, which reflects a certain reality of startup exits, but also is a bit ridiculous given the scale of opportunities here.

My city has many detractors, who will tell you there's high crime, questionable people riding the subway who will harass you or worse. The money may well be coursing through its veins but it's difficult to get access to it. Real Estate is expensive. VCs are unrealistic about valuations and business opportunities and exits. It's incredibly difficult to hire designers and developers who are exploiting the tight market to their benefit and employers' detriment.

The scenery and lifestyle in my city is fantastic, great vistas, many opportunities to run, hike, bike, swim, kayak. You're a couple of hours' drive from various ski & snowboarding areas. And you can just as easily surf if you wanted to.

Now, this comment could apply just as equally to SF as to New York. Each has its drawbacks and its fantastic benefits. Fanboys will argue until there are no more karma points to be awarded over which is the "best" city to be based in.

I think that if you're really that ambivalent about where to be based, spend a month in either city and a month in some random city (say, Pittsburgh, or Austin, or Boulder). Because it's clearly neither technology, nor access to customers, nor access to money that's going to drive your decision, it's how it feels to live there and whether you will feel at home there.

<comment><AUTHOR> You couldn't be more right about what's going on between my cofounder and I. He loves New York. I love San Francisco. But still, I expect there are clear differences between the two tech scenes, for example meetup sizes, general candor, how willing a VC is to meet with you, etc.

<comment><USER2> I've lived in Brooklyn for eleven years, Manhattan for three years before that. I grew up in Chicago, went to school in Pittsburgh and have spent significant time in Sydney and San Francisco.

I don't think you can do wrong by coming to NYC, but I also don't think you'll necessarily do better here than in SF or Pittsburgh or Austin or wherever.

Assume your startup fails entirely: where do you want to end up living? NYC is great, but you'll definitely burn through cash faster here (or in SF) than in a cheaper city. SF has a lot going for it, but will you really be there or in the Valley?

Rather than ask people to justify why one city or another is better, why not list the criteria you're using to make your decision?</comment></comment></comment>


Richard Clarke on Who Was Behind the Stuxnet Attack - <AUTHOR> http://www.smithsonianmag.com/history-archaeologay/Richard-Clarke-on-Who-Was-Behind-the-Stuxnet-Attack.html?c=y&story=fullstory

<comment><USER2> [http://www.smithsonianmag.com/history-archaeology/Richard- Cl...](http://www.smithsonianmag.com/history-archaeology/Richard-Clarke-on- Who-Was-Behind-the-Stuxnet-Attack.html)

</comment><comment><USER2> Dead link?</comment>


What should a 45 year old who just completed a Data Analytics Masters do? - <AUTHOR> Hi,
I know you are all resourceful hackers. So I want your thoughts on the following. I am a 45 year old Indian in India who just completed Professional Masters in Data Analytics from IIT Chicago, School of Applied Tech. I have a regular Electrical Engg job in the Ship building Industry (my under grad is in EE) in the govt sector; yet I am interested in CS, Data Analytics and the InfoSec fields in that increasing order of interests. How do you think I should spend my time with my Interests given that I may or may not change jobs as on date (worry about age discrimination in Indian IT).? Maybe I may not be able to go into IT proper with my age. I am not sure. Neither will my company use my skills. What do you think I should do to keep my skill set intact and grow it. I love being in CS, fiddling with Data and Infosec. I am already developing small tools in my job as and when required. Give me some ideas. Thanks for your time.
--
Regards,
Surya <comment><USER2> Try releasing your tools in public if allowed. Use the public datasets like in opendata.gov.in to create analytical reports for specific sector like fmcg. Use the tools and report for consulting and training teams in those sector to use the data.</comment>


Artificial Philosophy: ethics in computer intelligence - <AUTHOR> http://rohanpai.wordpress.com/2014/06/24/artificial-philosophy-ethics-in-computer-intelligence/

<comment><USER2> _Such a scenario is not so far fetched._

Except that it is. This is not a discussion about self-driving cars because they don't work that way and are a long way off potentially working this way.

This is the age-old trolley problem ([http://en.wikipedia.org/wiki/Trolley_problem](http://en.wikipedia.org/wiki/Trolley_problem)), which was never really satisfying as a philosophical problem. You create contrived examples and try to transport that situation to a wider world.

The trolley problem seems to be popular for self-driving cars because it's easy to create horrible situations without engaging with the way the technology actually works. Moreover, you can make the decisions for the computer to fit the situation without having to think about how that'd apply generally.

Or at least, if you're going to do it, go the whole hog: [http://www.mindspring.com/~mfpatton/Tissues.htm](http://www.mindspring.com/~mfpatton/Tissues.htm)</comment>


Open Letter to Education--Don't Kill My Kid's Enthusiasm - <AUTHOR> http://blog.joshorr.us/2013/05/open-letter-to-my-daughters-school.html

<comment><USER2> school kills creativity, no way out.</comment>


Show HN: Interactive visualisation of US budget (and UK) - <AUTHOR> https://us.wikibudgets.org/w/united-states-budget-2016 <comment><AUTHOR> And here is the UK budget: [https://uk.wikibudgets.org/w/united-kingdom- budget-2015](https://uk.wikibudgets.org/w/united-kingdom-budget-2015)</comment>


Steve Jobs Said 1 Thing Separates People Who Achieve from Those Who Only Dream - <AUTHOR> https://www.inc.com/jeff-haden/22-years-ago-steve-jobs-said-1-thing-separates-people-who-achieve-from-those-who-only-dream.html <comment><USER2> _Inc_ is basically blogspam. I've never understood why it's as popular as it is. This title is clickbait.

</comment><comment><USER3> "ask others for help"</comment>


Ideal for Valentine's Day:  Lover's Cups from the MIT Media Lab - <AUTHOR> http://www.youtube.com/watch?v=pA1t0NCZhkQ

<comment><USER2> Kind of a low rent copy of the guy who linked the chair in his apt with the chair at his place at the table at his parents house so when he sat at his table, his place at his parents table would glow softly.

Anyone remember that? I googled and couldn't find it again. Seems a lot more classy as well as being the obvious inspiration of this.

</comment><comment><USER3> I take it the negative opinions are majority here. I'm still very excited about this. It's a completely new (and practical) way to bring technology into one's environment. Assuming it it's well enough made, it's something that people can forget it's even technology and simply use it. Like magic. It's not a computer or a gadget. It's just a cup that happens to glow when the other cup is used.

</comment><comment><USER4> I suppose you need to get a Lover's Cup data plan, for which you receive a Lover's Cup bill every month, listing the time and duration of each drink, to the second. Most Lover's Cups are carrier locked and come with a lengthy contract, but you can shell out for a jailbroken Lover's Cup on eBay, or jailbreak it yourself by hacking a firmware update.

How romantic.

</comment><comment><USER5> I really don't see why I would want to know that my significant other is drinking. There are tons of other ways of communicating. This one is subtle, I'll grant that, but it's a little too far out for me.

</comment><comment><USER6> The girl looks incredibly unenthusiastic about this in the video, which I'm guessing is highly representative of how it might work in real life :)

Sadly (for most HN readers), engineering is not the language of love...

<comment><USER7> Girls would be even more underwhelmed by this if engineering was the language of love. These cups are the equivalent of "Roses are red\ violets are blue\ sugar is sweet\ and so are you."

</comment></comment><comment><USER8> Why the hell does this arbitrary (and technically trivial) crap pass for an MIT Media Lab project? I thought they were supposed to have standards? (Sorry if I'm offensive, but... wtf?)

</comment><comment><USER9> That is just a good way to send mixed signals.

</comment><comment><USER10> Things like this completely devalue the MIT Media Lab to me. I can only hope the creator did not receive a Masters for this.

</comment><comment><USER11> Lame.

<comment><USER12> Totally agree with you.

These MIT students should be working on something more productive, more innovative, they should be solving the world's problems; not working on things that do little to benefit humanity.

</comment></comment><comment><USER13> Kinda sounds like entanglement.</comment>


Another quick tip for developers who use OSX - <AUTHOR>

Someone showed me this one recently. Go to finder and select a folder or file. Drag the folder or file into Terminal. You will have the full path printed into Terminal.<p>I'm not sure if I'm the last to know or if this will help a lot of people. I didn't know and it blew my mind. <comment><USER2> Useful, but why create a top post when there is already an active OSX quick tips thread on the front page right now?</comment>


Ask HN: Why are some webpages sending double content? - <AUTHOR>

I've noticed recently that some sites (for example: https://www.aerofs.com/blog/) seem to duplicate the content on the page.
The formatting makes the rendered page only show it once, but with some elements (cookies, Javascript) disabled, or just by viewing the source, it can be seen that the content appears twice.
Is this the results of a certain content managament system, or a particular framework ?
I can't imagine that sending double the content is particularly beneficial. <comment><USER2> Looking at the page source for that site, they are using Bootstrap as their CSS framework. While not the most optimal way to do things, one set of content is for devices with screen sizes over 768px and the other set is for devices with screen sizes under 768px.</comment>


New broadband users shun manditory porn filters, (UK regulator) Ofcom finds - <AUTHOR> http://www.bbc.co.uk/news/technology-28440067 <comment><USER3> Says the BBC: "The filters block pornographic websites, as well as pages promoting self-harm or drug taking."

One of the major concerns raised about these filters at the time the government announced them was that they _also_ block sites which people go to for help.

The BBC have decided to ignore this concern (which they know about) and copy+paste the government's promotional text.

<comment><USER4> I've noticed BBC tends to do that a lot - publish government's stories (mostly in the way they want them published).

<comment><USER5> Yes. BBC News nowadays is essentially Government Press Release Hour.

Probably because the Government is continually holding the threat of a licence fee review over their heads (the BBC is funded by a flat-rate tax of ~£150 per year on each UK household that owns a TV). "Nice little broadcasting corporation you got there. Be a shame if anything were to happen to it".

It got appreciably worse after they got in hot water and backtracked over Andrew Gilligan's patently correct claim that Tony Blair knowingly lied to get the UK into the Iraq war.

It has also got worse under the present Tory ('coalition') government, which the BBC knows would like nothing better, ideologically speaking, than to eliminate one more public service.

Probably a lot of this agenda has been internalised by BBC staff. Nobody ever got fired for broadcasting the Government line, after all.

[http://www.medialens.org/](http://www.medialens.org/) is great on this stuff.

</comment></comment></comment><comment><USER6> 'Porn filters' while getting your attention isn't the whole story. There's a whole list there. Very few adults would tolerate this much censorship.

Categories blocked across the major ISPs include: Dating, Drugs, Alcohol and Tobacco, File sharing, Gambling, Games, Pornography, Nudity, Social networking, Suicide and Self-harm, Weapons and violence, Obscenity, Criminal Skills, Hate, Media Streaming, Fashion and Beauty, Gore, Cyberbullying, Hacking and Web-blocking circumvention tools

[http://en.wikipedia.org/wiki/Internet_censorship_in_the_Unit...](http://en.wikipedia.org/wiki/Internet_censorship_in_the_United_Kingdom)

<comment><USER7> Your comment is quite disingenuous. The major ISPs offer parental filters that can be used to block many different types of content, and specific websites, but they are not the default: they are opt-in. The default (opt-out) filter with BT for example is "Light"[1], which only blocks the content you'd expect to be blocked by a "family-friendly" filter. To block Media Streaming, Fashion, Sex Education and File Sharing you have to opt-in to "Strict"[2]. If someone opts out of the default ("mandatory") filter they are opting out of a porn filter, not a sex education filter.

[1] [http://i.imgur.com/5IN6VGC.png](http://i.imgur.com/5IN6VGC.png) [2] [http://i.imgur.com/PinT3xy.png](http://i.imgur.com/PinT3xy.png)

<comment><USER6> My experience was: my ISP was talktalk, under a business account run from home (SOHO?), One day, un-opted, they started censoring sites - dating sites - which would seem to be strict under the BT definition. While that might be as expected for a business it wasn't a service that was asked for.

</comment></comment></comment><comment><USER8> The nanny state in action. There are plenty of solutions available if you wish to block certain content. This just _looks like_ it's doing something good.

</comment><comment><USER4> Clearly this shows the public is widely against it, and they will promptly shut down this program?!

<comment><USER9> It doesn't show that, it shows that users who have a new broadband connection (since the end of 2013 for BT and Sky customers) have not opted-in - <USER2> customers aren't presented with the choice.

35% of TalkTalk customers since 2011 is surprisingly high though.

</comment></comment><comment><USER10> Am I missing something or why couldn't users have just installed a net filter of their choice in the first place? Why did there need to be government involvement? Or is this like the opt-out vs. opt-in debate?

</comment><comment><USER11> I was curious as to what URLs are blocked by some ISPs in the UK. Here's a (maybe NSFW) list: [http://uk-blocked-sites.herokuapp.com/](http://uk-blocked- sites.herokuapp.com/)

<comment><USER12> Did you notice that torproject.org is blocked? As well as various torrent sites (including of course pirate bay).

<comment><USER11> Yeah, also that list is specifically excluding the "strict" filters. There's also: \- defcon.org \- ethicalvoiceforanimals.org.uk (don't know why) \- hackthissite.org \- rapidshare.com \- gaylifeuk.com/helplines-a-support- groups.html

</comment></comment></comment><comment><USER13> Why is there such a difference between TalkTalk and the other ISPs?

</comment><comment><USER14> Why is talktalk's adoption of the filter so much higher? The article mentions the fact, but doesn't dig into it at all.

<comment><USER15> I think Talktalk is one of the cheapest ISPs in the UK, their customers probably don't use the internet enough to notice.

<comment><USER14> Ah, that makes sense. Thanks!

</comment></comment></comment><comment><USER16> Do the filters really block all porn on the internet? That's quite impressive.

<comment><USER17> No, they don't. They have plenty of overblocking too.

Please see [https://www.blocked.org.uk/](https://www.blocked.org.uk/) for details.

</comment></comment><comment><USER14> tor.eff.org is one of the blocked sites... This is clearly not just intended as a porn filter, gchq must have a hand in it.

</comment><comment><USER18> What's "manditory" about the porn filter, if you can opt out of it? Not to say that the filter is a good thing, but the title of submission is an oxymoron

<comment><USER19> It's mandatory for the ISPs to offer it by default.

<comment><USER17> (Not a lawyer. Lay opinion, not legal advice.)

Not actually true. While it is the stated policy of some Government ministers and the PM, there is no primary or secondary legislation forcing ISPs to adopt filtering of any kind (even "Cleanfeed"-style blocking of sites implicated in child pornography on the IWF blocklist, or terrorism): the Government in negotiations strongly stated that _if_ "voluntary" agreements weren't reached by the ISPs, they would make such a law, but this has not come before Parliament.

Obviously, such a proposed law would face significant legal and political challenge, were it made, as would any attempt to, via legal or regulatory hurdles, coerce an ISP into participating in this scheme. Any such challenge would have a wealth of data supporting the ineffectiveness, unaccountability, overblocking, and unwantedness of the various filters.

Existing case law regarding site blocking of sites accused of the facilitation of copyright infringement are targeted against individual ISPs which already have site blocking infrastructure in place, and explicitly does not address any coercion to fund any such censorship infrastructure, or (if it were mandatory) its legality: it was found to be orderable only on the basis that the respondent ISPs already had the means deployed and available to do it.

<comment><USER18> Clever maneuver: get the result you want, and bypass the democratic process because it's inconvenient.</comment></comment></comment></comment>


Show HN: BugSense is a free bug tracking tool for mobile apps. Would you use it? - <AUTHOR> http://www.bugsense.com

<comment><AUTHOR> Hello HN! Sometime ago we had posted a question whether we should rebrand our service. Back then we used to be called Sfalma (greek word for error, σ in math) and thanx to your feedback we decided changed the name.

We have a built a service that collects errors from mobile apps. We analyze them and notify the developers.

Currently we focus on mobile apps but we plan to support the server in future.

Let us know what you think, or if you have any suggestions!

<comment><USER2> Nice app ! How does it work ? (I'm interested in iOS mainly). Can I find an example of report somewhere ? The screenshot from the Features page doesn't provide much info.

<comment><USER3> You just install the BugSense library. Check the docs (it's easy!) <http://www.bugsense.com/docs/ios>.

If you make an account - it's free -<http://www.bugsense.com/signup/> you can see the UI. It's pretty cool!</comment></comment></comment>


Ask HN: Recommended research tools for Linux machines? - <AUTHOR>

I am doing research on city and communities. Have been a Linux user for years. But it seems like there is not much tools for research to choose from. I want something that helps me catalogue stuff and make it easily searchable or even with handy annotation tools. Maybe it would look something like this Papers app for Mac: http://mekentosj.com/papers/ Can anyone recommend similar tools for Linux? <comment><USER2> I would be stunned if anything like Papers existed for Linux.

That said, Unix (and generally Linux) users like to combine simple tools to do stuff that's in their control.

DropBox would be a good start for syncing,

a long text file in emacs which you could drag URLs to and make comments about would be a start. You could build a simple little format like writing 3 *s for a new set of notes on a URL.

Then you could use grep to search, wget to pull the URLs down into your dropbox folder, etc. etc.

Like I said, though, this is a totally different ethos and result than that app you linked to. You're going to have to want to write bash scripts.

</comment><comment><USER3> mendeley desktop? <http://www.mendeley.com/></comment>


Pay-with-a-Selfie, a human-centred digital payment system - <AUTHOR> https://arxiv.org/abs/1706.07187 <comment><USER2> I thought this was a spoof / 'The Onion' style story, then I saw this.

> The Pay-with-a-Group-Selfie (PGS) project, funded by the Melinda & Bill > Gates Foundation, has developed a micro-payment system that supports > everyday small transactions...

<comment><USER3> I thought it was a 'Black Mirror' episode title that i missed at first glance..

</comment></comment><comment><USER4> We (Ticketleap) did something similar in ticketing. [https://www.ticketleap.com/info/selfie- ticket](https://www.ticketleap.com/info/selfie-ticket)

</comment><comment><USER5> From the paper:

> [Pay with a Group Selfie (PGS)] is a mobile payment technique that leverages > on face-to-face exchanges where pictures taken with mobile phones are used > to embed all information (the parties' identities, the exchanged > goods/services, and the price) of a business transaction. The system relies > on Visual Cryptography (VC) to generate two untamperable shares of the > selfie showing the transaction. The buyer and the seller hold a share each, > and the transaction can be checked simply by stacking the shares.

</comment><comment><USER6> I have a hard time considering something "human-centred" when the very concept seems completely inaccessible to people with visual or motor impairments.

</comment><comment><USER7> Possibly one of the worse funding decisions by bill gates' foundation.

Even in poor, rural communities in India, more feasible payment methods backed by the government (BHIM) seems more practical than this paper

</comment><comment><USER8> Ah we built something similar at a hackathon a couple of years ago as a joke. Was briefly the owner of paybyselfie.com.

</comment><comment><USER9> "The gesture - taking a selfie - has become part of the lifestyle of mobile phone users worldwide, including non-technology-savvy ones." Since when has taking a picture with a mobile phone been relegated only to "technology-savvy" people?</comment>


Best Practices for iOS Software Design - <AUTHOR> https://github.com/jverkoey/iOS-Best-Practices

<comment><USER2> obvious, trivial...pls

<comment><USER3> You'd be surprised. There is some really awful code out there...</comment></comment>


GPUDirect Storage: A Direct Path Between Storage and GPU Memory - <AUTHOR> https://devblogs.nvidia.com/gpudirect-storage/ <comment><USER2> I wish NVidia would focus on integrating their software (like this DMA support) into more widely adopted frameworks like Tensorflow, Pandas, or Pytorch. Like TensorRT or nvidia-docker, they always have to release their own library that either breaks in weird ways or has utterly awful support (TensorRT).

Note that the 16-Volta contraption is basically only for use with NVidia's own software. The two Xeons it has only have 80 PCI-e lanes, and 16 Voltas will consume 256 lanes, which is why each Volta gets its own flash. (Careful to shuffle your data before putting it on disk!). For that money, you're better off building your own rack with a balance for your real application.

One way to avoid the PCI-e bottleneck for vision is to use NVidia's own JPEG decompressor. Then only the file bytes have to cross the link, and the image tensor (which is probably 10x the memory) never leaves GPU RAM.

<comment><USER3> Whoa, awesome, thanks for the tip about nvJPEG. Do you know if there are any good tools for data augmentation (rotation/contrast/flip/zoom/blur/crop/letterbox) for those JPEGs once they're on-gpu tensors?

edit: Looks like DALI might handle this. Now to see how it integrates with pytorch...

<comment><USER4> All those operations are fairly standard vector math once you're working with bitmaps.

<comment><USER3> Yep, I know, but I'd rather not reimplement them if I don't have to.

</comment></comment></comment></comment><comment><USER5> So, would a vulnerability in WebGL/WebGPU mean a shader on 3D web app can read all my disks? Neat.

</comment><comment><USER6> If this catches on there will be exciting new security problems.

</comment><comment><USER7> Interesting, this seems more flexible then the solution AMD previously used in their Radeon Pro SSG [0], in which they connected a 2TB NVMe SSD RAID directly to the GPU by placing it on the GPU PCB (which the application sees as 2 TB GPU memory since HBCC comines the SSD storage with the 16 GB HBM).

[0] [https://www.amd.com/de/products/professional- graphics/radeon...](https://www.amd.com/de/products/professional- graphics/radeon-pro-ssg)

</comment><comment><AUTHOR> (This is entirely unrelated to the content of this submission, but I'm curious:

I'm pretty sure I submitted this more than 24 hours before the time that HN now shows, and it didn't get much attention. But then it somehow got resurrected with the timestamp of the submission (and the few existing comments) adjusted.

Does HN do this a lot?)

<comment><USER8> Sometimes they do it for posts that they deem interesting. It happened to me a few times, and I was notified via email.

</comment></comment><comment><USER9> So, DMA?

<comment><USER10> Yes, but using the DMA engine in the NVMe drive to write directly into GPU RAM, rather than go through system RAM first. This was not previously possible, as DMA is almost always to/from main RAM.

From the article [emphasis added]:

> If a DMA engine in an NVMe drive or elsewhere near storage can be used to > move data instead of the GPU's DMA engine, then there's no interference in > the path between the CPU and GPU. _Our use of DMA engines on local NVMe > drives vs. the GPU's DMA engines_ increased I/O bandwidth to 13.3 GB/s, > which yielded around a 10% performance improvement relative to the CPU to > GPU memory transfer rate of 12.0 GB/s shown in Table 1 below.

They don't seem to have revealed many more technical details about how they did it, just a lot of benchmarks. I presume this only works where there is a shared PCI-E switch in between the GPU and NVMe drive, and so traffic can be routed past the CPU?

</comment></comment><comment><USER11> With very minimal knowledge of hardware, I wonder if we'll eventually have storage cheap enough and fast enough so we could just remove RAM from a computer all together and we'd have HDD and RAM in the same physical component. We spend so much time optimizing communication between different technologies, removing "middle-men" components but still requiring them as part of a whole that it's surprising (to me) that I haven't seen anything like that in the news/media/etc.

I assume it's from an obvious technical/price limitation, but again IDK a lot about hardware so...

<comment><USER12> Latency is more important than bandwidth when it comes to reading and writing data, except for specialized work loads.

I don't know the delay for current gen graphics cards, but when CUDA first came out in '07 vram had a roughly a 10x delay to system ram.

vram would work great as virtual memory, where chunks of ram can be loaded and unloaded when the systems main memory runs out, but using vram as system ram today isn't ideal. Likewise running an ssd as system ram wouldn't be ideal either.

This is one of the reasons why cache sizes have increased so much throughout the years. It's not just more cores. The cpu is branching out further pulling in data that will be hypothetically necessary in a few ms. Using vram you'd need the cpu to prefetch hundreds of ms ahead of time. This would add a lot of complexity to the cpu.

AMD announced a cpu with a 256MB L3 cache. Imagine, in 10 years a cpu with 1GB of cache.

<comment><USER13> > Latency is more important than bandwidth when it comes to reading and > writing data, except for specialized work loads.

It is also worth noting that there is pretty big delay between CPU and PCIe.</comment></comment></comment>


Crushh – Find out if your crush likes you - <AUTHOR> https://crushhapp.com/ <comment><AUTHOR> Does your crush like you back? How do some of your friends, or even family members, feel about you? Need help analyzing your texting relationships?

Crushh is the app that lets you know how the people you text feel about you...secretly. We only give you this information, so the other person will not know you're using the app. Imagine Crushh as the friend you hand your phone to for their honest, unbiased view of a text conversation. We give you that perspective, but based on data and algorithms that decipher and interpret the words and patterns in the conversations.

The app will analyze the data already on your phone so there's no additional step to input information. Although we collect the text message and call data on your phone, your privacy is our highest concern. No one can read your texts.

Simply download and install, and select the contact you want analyzed. Within seconds, you'll get a score indicating how much that person likes you, along with measures of engagement and interest. You'll even be able to see how that score has changed over time and pinpoint exact days when the relationship changes. If we're wrong (which may happen at first), you'll have the option to give us feedback so we can increase accuracy over time.</comment>


Configuring vim right - <AUTHOR> http://items.sjbach.com/319/configuring-vim-right

<comment><USER2> Thanks for this one: "Store temporary files in a central spot Swap files and backups are annoying but can save you a lot of trouble. Rather than spreading them all around your filesystem, isolate them to a single directory"

<comment><USER3> set backupdir=~/.vim/backup//

set directory=~/.vim/swp//

If you end your settings with double trailing // then vim will automatically use the full path to the file

so editing

/etc/X11/x.org and ~/x.org won't clobber each other in your swap directory.

</comment></comment><comment><USER4> Tim Pope, author of Rails.vim, surround.vim and a bunch of other Vim Scripts has his config files at <http://git.tpope.net/> he has some stuff I've never seen anywhere else.

I still like Emacs more though.

<comment><USER5> I know this is way off on a tangent, but as a guy who keeps trying to pick up emacs and ends up going back to Vim; I really wish there was a place out there where people had their .emacs posted with comments so I could see some ways that people are configuring their emacs.

I have copied full .emacs files previously, but it'd be cool to see some snippets somewhere.

<comment><USER6> A hacker website full of emacs users, and I'm the first to post this link? Unbelievable.

<http://www.dotemacs.de/>

<comment><USER5> I think the dirty secret around here is that a lot of us are Textmate and gVim users (amongst other ...ahem... editors)

Anyways, that's a _great_ link; although it looks like they need to fix their links to gnu.org. Thanks!

</comment></comment></comment></comment><comment><USER7> I also find pouring over dotfiles .vimrc files uncovers many tricks I didn't know: <http://dotfiles.org/.vimrc>

</comment><comment><USER8> Nice tips. As a side note - in my opinion, finding a good color scheme can also improve your enjoyability and even usability of vim. I was surprised at how much easier on the eyes some color schemes were versus the default. In addition, if you like having a default terminal look that doesn't quite transfer well to vim (such as a terminal with a little transparency which can be helpful on smaller screens since you can effectively "share" some space between your terminal and whatever you might be reading off of), having a default colorscheme will fix that too.

One very (almost overly) comprehensive place to start is at: <http://www.cs.cmu.edu/~maverick/VimColorSchemeTest/>

Personally I like desert256

</comment><comment><USER9> Quick question to the Vim experts here at HN but why is it when I start vim from the terminal (Ubuntu) it does not apply the color schemes I downloaded from Vim.org, yet when I start GVim I can see the color schemes applied?

<comment><USER10> Also, check whether you're applying the color scheme in .vimrc or .gvimrc, and check where you're turning on syntax highlighting. Remember some color schemes just look different depending whether you're in the terminal or the full GUI.

<comment><USER11> I learned something new today, from this article, with the lovely comment "Who needs .gvimrc?"

if has('gui_running')

</comment></comment></comment><comment><USER12> Nice list, here's my additions to it: [http://blog.learnr.org/post/59098925/configuring-vim-some- mo...](http://blog.learnr.org/post/59098925/configuring-vim-some-more)

</comment><comment><USER13> i wish the matchit thing would work with ruby; i've been annoyed that % on if/do/end/etc. doesn't work like it does with languages using brackets around blocks.

<comment><USER14> I haven't used this extensively but I'm having no problems with % matching on ruby conditionals and blocks.

Maybe its because I have a .vim/syntax/ruby.vim installed. Do you?

</comment></comment><comment><USER15> # how to start a religious war in two easy steps

sudo rm `which vim`

sudo ln -s `which emacs` /usr/local/bin/vim</comment>


Ask PG: Have there ever been any YC startups that used Lisp/Scheme? - <AUTHOR>

<comment><USER2> I guess Clojure will be prefered Lisp/Scheme for most startups.

</comment><comment><USER3> Reddit?

<comment><USER4> Reddit == Python now

It started on Lisp but moved away.

</comment></comment><comment><USER5> Why does this question matter to you?

<comment><USER6> If you'll indulge a rephrasing of your question as, "Why does this question matter to anyone?", then I would answer, "Because I like Lisp and Scheme, would enjoy using it in a start up, but worry that it would introduce problems. Therefore, I would like to know from someone (PG) well-positioned to evaluate the situation if he has any successful case studies."

<comment><USER5> Is this really a position you're in right now? I'm mostly Common Lisp focused and just by being part of the community I see enough successful examples come by.

I'm on mobile right now but if you want I can post some examples later.

<comment><USER6> Yes, except that I'm not about to do a startup in Common Lisp or in anything else anytime soon.

But why do you care what my position is, and why does it matter why the OP posted the question?

<comment><USER5> If you were in this position I could try and help. Lisp is by far my favourite family of languages and any new success stories would be great.

However, and this answers your second question, I did not understand why this question was important to the OP. I do not know but assume the most important thing for a YC company is the founders, their background, their product and their passion. Whichever programming language they use is of no consequence at all IMHO. (Unless we're talking Brainfuck or Malbolge.)</comment></comment></comment></comment></comment>


All I need is an MBA - <AUTHOR>

This is a quote to counteract the misleading view that hackers are commodities, rather, it is the MBA's.
Guy Kawasaki was one of the original players that got Apple on its feet with the Macintosh. He now works as a venture capitalist in Silicon Valley as CEO of Garage Technology Ventures
Kawasaki remarked, "I don't think an M.B.A. matters very much for starting a company. A much better educational background is an engineering degree. You can always hire MBAs, but if you don't have the ability to conceptualize and deliver a product, you've got nothing."
Link: http://www.insidecrm.com/features/mbas-are-overrated-081307/ <comment><USER2> Learning is fun. Get an engineering/cs undergrad, then get an MBA. This way you can understand the entire spectrum of a technology company from code to financials.

<comment><AUTHOR> I totally agree with you snowbird, I want to get that broad spectrum too. But its just too bad that a cs/engineering degree does not carry the same prestige and job security (or at least ease of job change by not super-specializing)as an MBA.

<comment><USER2> It is interesting that you mention that MBAs have job security. I'm not so sure it is true. MBAs are often "middle management" and can be the first to be dismissed in hard times. Companies that think programmers are commodities aren't worth working for anyway.

</comment></comment></comment><comment><USER3> Sure, it's fun to trash MBAs, but why does anyone think business is different from hacking? There are tons of crappy MBAs, just like there are tons of crappy programmers. There are elite, valuable MBAs just like elite, valuable hackers.

If there was a Hacker News equivalent for MBAs, wouldn't you want one of those guys on your team? The best hackers might be able to do business better than an average MBA, but not nearly as well as the best. I'd take a Phil Knight or someone like that on my team anyday. I'd also take a killer salesman because it would lower the bar for producing highly profitable B2B software.

</comment><comment><USER4> in my experience, if you can get an engineering degree, you can get an MBA if you want one. but not necessarily the other way around.

<comment><USER5> However, an MBA will cost you a lot more. The demand is higher because the returns to a degree holder are higher at the margin.

<comment><USER4> they cost more because they need a reasonable barrier of entry. if pretty much anyone can get an MBA, they need to be expensive, or pretty much everyone will get an MBA. don't need that for an engineering degree -- if you price people out of the degree, even fewer people will sign up than already do.

<comment><USER5> The acceptance rate to the good MBA schools is very low, which is already a barrier to entry. In MBA land, it makes a big difference if you go to a top 10 school or Local U. A degree from Stanford, Harvard, Wharton, Sloan, or Kellogg pretty much guarantees you a hedge fund, private equity, or investment banking position, if you want one. Also, a LARGE portion of Fortune 500 CEOs come from the top schools. However, you must be rather smart and have great work experience (or have very good work experience while being female/minority) to get into those schools.

<comment><USER4> indeed, the school also makes a difference, but, IMO, the biggest difference among schools is not in the quality of the MBA, its the networking and prestige that comes along with it.

you don't go to harvard to get an MBA from harvard, you go to harvard so you can say you got an MBA from harvard; to form the connections, networks, and for the prestige that comes with the harvard name. thats what you pay for -- you pay for that up front so you can get paid more later by waving your diploma around.

</comment></comment></comment></comment></comment><comment><USER6> its irony but "why MBA?" is the typical question before/after MBA is done. I think it is just like any other masters degree but with lot more generalistic focus on business rather than dedicated domain(physics/electronics/DSP). It helps you understand the theory of the business from mostly "only theory people".

Startups are exciting and excruciating both.

<comment><AUTHOR> its funny how you mentioned Digital Signal Processing as a specific masters...you must be an EE

<comment><USER6> yes :)

</comment></comment></comment><comment><USER7> The only thing I remember from Business School:

"A degree in business is a degree in nothing."</comment>


'I was exploited by Google' - <AUTHOR> http://www.telegraph.co.uk/culture/music/5130427/Pete-Waterman-I-was-exploited-by-Google.html <comment><USER2> _"...because I earned less for a year's work..."_

Yeah, I'm sure he was working hard full-time for those royalties. Not that he doesn't deserve royalties, but I think it's a falsification to consider waiting for a royalty check to come in, "work".

<comment><USER3> Why _does_ he deserve royalties?

It probably took him, oh I don't know... less than two months to co-write, _22 years ago_.

<comment><USER4> > Why does he deserve royalties?

I take it you don't approve of software patents either? In the interest of consistency, that is.

<comment><USER5> Most programmers on this forum, especially those working open source, are opposed to software patents as currently implemented. They make it impossible to do anything non-trivial without running the risk of being sued for infringing what should probably be considered a basic technique.

The musical analogy would be something like copyright of chord progressions, such that any time you released what you considered a new piece of music there was a small but real chance that you would be sued for an amount greater than your life's savings. Are you confident of your ability to convince a court that your strumming of GCDG is sufficiently original to be non-infringing?

You mentioned in an earlier thread that you worked as a developer, so I presume you are familiar with these issues. Am I right that you 1) presume that you are legally shielded by your employer and 2) that you do not release the source to the code that you write?

<comment><USER4> > Most programmers on this forum, especially those working open source, are > opposed to software patents as currently implemented. They make it > impossible to do anything non-trivial without running the risk of being sued > for infringing what should probably be considered a basic technique.

You raise some valid points. But you're not really disagreeing with me, are you? You say _"as currently implemented"_ , which means that you agree _in principle_ to the concept. And if, if you recall, the comment I was replying was questioning whether royalties should exist _at all_ ; they weren't suggesting that it be "tweaked", rather that it be abolished altogether. I'm saying that's a pretty extreme view, and used the similar case of software patents to make my point.

In any case, I agree that there is a tradeoff, and it's true that in some cases -- especially software patents --we've gotten to a kind of silly season. But I don't think all patents -- even the majority of patents -- are egregious.

Perhaps I was too restrictive in specifying _software_ patents. A new question: do you not agree with patents in general? I think it's much harder to argue that, for instance, a pharmaceutical that invests billions of dollars on a new treatment shouldn't be protected from a competitor simply copying its product and putting it to the market.

I'm basically arguing that the concept of intellectual property is a valid and fair one. Obviously there can be debates about details, but the principle, in my view, is sound, and even the most ardent of open-source adherents agrees as much, else why the meticulous emphasis on the precise terms of licenses like the GPL? If you don't believe the creator has "ownership" over something that can be copied at zero cost, how can you argue against, for instance, Tivoization?

> The musical analogy would be something like copyright of chord progressions

I would have thought that the musical analogy is copyright, which refers to an _expression_ \-- a somewhat nebulous term but which is nonetheless amenable to common sense judgements. To patent chord progressions would obviously be silly, because there's relatively few of them that sound good. And yes, I am 100% confident that my songs (shameless plug: <http://www.myspace.com/thesignalsuk>) are sufficiently distinct from anything else that I could argue that in a court of law and prevail! They are indeed _original expressions_ ;)

To answer your questions: 1) You mean from patent infringement? Yes, I would think so. 2) No; I work in a hedge fund. To open-source our strategies would be commercial suicide. I suppose that gives me a different outlook from you. ;)

<comment><USER5> Yes, I am disagreeing with you, but probably over matters of implementation rather than of ideals. I'm pro-patents (and pro-royalties) to the extent to which granting a temporary monopoly benefits society as a whole. I do not believe that that one has an innate right to such a monopoly, rather that it is to the advantage of society to grant such a right to incentivize the production of something beneficial that would not otherwise be produced. I presume this is more or less your position as well.

Where we likely disagree most is regarding term. The term for (non-software) patents seems almost reasonable, but I find it hard to believe that those 75 years after the life of the author (under US copyright) increases the production of great music. The 50 years from date of production for music under UK law seems more reasonable, but I'd guess that very little of the music I enjoy would suffer if this time was reduced sharply.

</comment></comment></comment></comment></comment></comment><comment><USER6> "Waterman, whose fortune was estimated at £47 million by The Times in 2004, compared this treatment to the "exploitation" of migrant workers in the Middle East."

I like this line.

Presumably Waterman signed a contract with his publisher that allowed his song to be played by Google. If that contract is exploitative, surely that's his publisher's fault (or his own, for signing it), not Google's.

<comment><USER4> Actually, no; the PRS is authorized to negotiate mechanical rights rates on the artists' behalf -- otherwise Waterman would have to sign a contract with each and every local radio station, pub, etc.

The PRS negotiated the agreement with Google at a rate close to .022p per play (note: pence, not pounds!), which is well below the legally mandated minimum (I believe this legal minimum was introduced _after_ the agreement with Google) for radio stations and other users of 0.22p per-play. Google, so far, has been getting an _excellent_ deal compared to other redistributors of music. That they can't manage to eek a profit out of their business model is not PRS For Music's fault.

I applaud Waterman's looking out for the interests of musicians and songwriters -- considering how much mullah he already has, it's quite clear that he's not doing this out of self-interest. He's interested in protecting the community of musicians and songwriters. And rightly so, in my opinion: they _are_ being fleeced.

<comment><USER7> These same people would be quite happy to charge you 0.22p every time you whistle a copyrighted tune.

Fuck'em. Let them go bust. In fact, it is your duty as a human being to do whatever you can to help them go bankrupt faster, so the world is rid of their rotten business model.

When making an argument, particularly one as controversial as this, it is important to know who you're siding with. And sadly, in this case, you're siding with the bad guys.

<comment><USER8> Thank god there's still something like a nuanced argument...

</comment></comment></comment></comment><comment><USER9> > compared this treatment to the "exploitation" of migrant workers in the > Middle East.

Oh, how so? Were you at risk of death or physical injury? Were you living in disgusting, slave-like conditions? Were you working 14+ hour days and barely getting enough money to survive?

<comment><USER10> Or perhaps it was the part where they stole his passport and forbid him leaving or looking for other means of making a living.

</comment></comment><comment><USER11> How many 'never gonna give you up' tracks were sold on iTunes since Rick Roll versus before Rick Roll?

I bet sales of that song went through the roof.

<comment><USER12> Unfortunately, it isn't available as a ringback tone.

</comment></comment><comment><USER7> I think he should pay Google 22 cents for every time they play Rick Astley, because he's getting fre publicity.

<comment><USER4> a) The figure would be 0.022 pence under the current contract, and 0.22 pence under the legally-mandated minimum per-play charge, not 22 pence. b) The argument that Google gives him free publicity depends crucially on the assumption that a viewer will go to iTunes and buy either a video or a single after viewing the video. But, and numerous consumer behaviour studies have borne this out, this is in fact not the case. And the reason why is obvious: what's the point of going to iTunes and paying for the video when you can watch it any number of times in YouTube? YouTube _replaces_ demand for the video, it doesn't enhance it. Even if you don't accept the conclusion of the consumer behaviour studies (and it's true that there are a few studies which contradict those findings), the idea that YouTube promotes sales doesn't tally with industry revenues over the last two years in which YouTube's hits for music videos have exploded -- the music industry has seen online growth of, IIRC, 17% or so, but that has been more than offset by decline in CD sales of around 20%. So all in all, people are buying less music. If YouTube is such an excellent vehicle for publicity, where are the resultant increased sales? Over time, this argument becomes increasingly untenable.

<comment><USER7> I can't imagine that all that many people use Youtube as their music collection repository.

Just because someone listened to a tune on Youtube (or, as is the case for most Rick Astley listens, got rickrolled) doesn't mean that they would have bought the song to listen to it.

I have no sympathy for the music industry. They are monopolistic cartels that have abused the public and the artists for decades. Why are you defending them? Let them all go bust. The world will be a much better place without them.

</comment></comment></comment><comment><USER13> Thank you. That was funny.

<comment><USER4> I'm pretty sure that had you written a tune that got viewed/listened to 150 odd million times (notwithstanding how god-awful it is!), and you'd received 11 pounds for it, you wouldn't think it was so funny.

Imagine if you'd written a game and you put it on iTunes, and you'd observed 150MM downloads, but only got 11 pounds from iTunes. You're telling me you wouldn't feel exploited?

There really is a double-standard at work here. When musicians/songwriters say they're being fleeced, members of this (hacker) community pooh-pooh them, and accuse them of being dinosaurs who just don't get it. When a developer writes an app that gets rejected by the iTunes store, devs are up in arms about lost dev time and the financial implication. Similarly if Google Checkout decides to terminate a developers account and said developer loses pending income.

It's totally natural for groups to look after their own, but one might have hoped that an elite community like Hacker News would be able to recognize this tendency. Sadly, from the evidence I've seen here from posters, whose views on the music industry are, generally speaking, at once flippant, condescending, arrogant, cold-hearted, and ill-informed, this is far from being the case.

<comment><USER6> "There really is a double-standard at work here. When musicians/songwriters say they're being fleeced, members of this (hacker) community pooh-pooh them, and accuse them of being dinosaurs who just don't get it."

I think the difference is that some musicians/songwriters expect their creative works to be a perpetual source of revenue. By contrast, developers usually expect a particular version of software to generate revenue for a few years at best, and even then there's the expectation that the developer should release patches throughout the lifespan of the software. Indeed, it's becoming increasingly common for software companies to open source old versions, such as Id with its Id Tech engines. When was the last time a prominent musician released their old works under a creative commons license?

I think the attitude of hackers is that "We have to continually create new things in order to make a buck, so why should some musicians expect to keep being paid for a song they wrote a generation ago?"

<comment><USER4> weavejester, having seen other comments I really appreciate you having an intellectually honest stab at my contention. But I think you're wide of the mark.

First off, musicians/songwriters don't expect their creative works to be a _perpetual_ source of revenue. In the UK copyright expires after 50 years. Granted, that's not a short period of time, but nor is it perpetual.

And while I agree that the software business does entail continuing updates, and while I too applaud idSoftware's policies regarding open-sourcing old versions, there is a fundamental difference between music and software, namely that music is not amenable to small, incremental updates. I mean, what exactly do you propose, that musicians remaster their album every year (they do it every so often anyway, actually!), or add extra overdubs or tracks each year? Surely it's not difficult to see that this approach isn't workable, is it? Do you really want a session musician to go into the studio and overdub, say, trane's solo on So What?!!!

> When was the last time a prominent musician released their old works under a > creative commons license?

I agree that that would be awesome. But musicians are taking steps in this direction. For example, Kanye West offers downloads of the stems to his music -- that's the music equivalent of providing the source code. So there is movement on this front. And most bands offer some portion of their music for free on their myspaces, so whether or not it's free as in freedom, it is freely available for those who want to listen.

Finally, is it your position that the hacker ethos considers it frivolous or morally wrong to collect revenue for patent royalties? It strikes me that this is quite similar to music royalties in that all the "work" is done up-front.

<comment><USER6> Given that the average lifespan is around 75 years, a 50 year copyright represents the vast majority of a person's adult life. For the artist, I don't think there's much difference between that and perpetuity. And those artists it does affect, such as Sir Cliff Richard, have not exactly been fans of the limit ;)

As for how to apply a continual update model to music, I'm not certain. I'm not a musician, so I couldn't venture a guess. But it seems to me that there isn't going to be a lot of money to be made in future from licensing past hits. The software industry manages okay, but perhaps you're right and music can't use the same model. In which case, musicians need to find another model that works, or slowly be consumed by a world where copying is increasingly cheap and increasingly hard to prosecute.

As for patents, it's my position that people should not be able to patent software. Fortunately for me, that's still the case in the EU.

</comment></comment></comment></comment></comment><comment><USER14> Oh god, not another attack from redmond disguised as retarded journalism.</comment>