Ask HN: How to increase web traffic? - <AUTHOR>

best way to increase web traffic? <comment><USER2> What have you tried? What are you trying to accomplish? Do you have any decent content? Are you trying to attract customers? Do you have advertising on your site? Where do you mention your site? Do you have active content? Do you regularly have new content? Do you ever change your page references?

Have you given this any thought at all, or are you just expecting us to do all your work for you?

<comment><AUTHOR> So heres what I have so far: I have created a site to share people the deals I find. In the past I use to send a text to friends and family about the deals I found and they all appreciated it. So i thought let me create a site instead. So now I am trying to branch out to other people. I know they are sites like these already out there, so not to worried about it that much but I thought if i can help someone find a good deal why not. Yes I added google adsense. Yes, I have been updating my site daily or weekly.

<comment><USER2> How much competition do you have? What other sites exist? Where do you see them mentioned? How many people do you estimate visit those sites?

If someone visits your site, how do you help them share it with others? If they don't find what they want, how do you know? Why _should_ someone visit your site? You haven't mentioned it here, why not?

You say you update daily or weekly, how do people know? Who do you tell?

What deals do you find? Where do other people find such deals? Why should they come to you? How often do people want deals such as you find?

Does the fact that I'm asking so many questions actually give you a clue as to what you are doing wrong? _You should be asking these questions, researching them, then telling us what you 've tried, why you've tried it, what seems to have had some impact, what seems to have had no effect, and more._

In short, you should actually do some considerable work, write up your experiences, and then share those experiences with us, tagging on the question at the end. Instead, it simply looks like you want us to do you homework, without showing us what you've tried already. Without some idea of what you're doing, how can we help?

We can't. Go and do your homework, then when you get stuck, come and show us your working. Otherwise all you'll get are generic comments and links, if anything.

You need to read this:

[https://www.mikeash.com/getting_answers.html](https://www.mikeash.com/getting_answers.html)

</comment></comment></comment><comment><USER3> You can start here: [http://okdork.com/2014/02/09/grow-blog-100000-visitors- less-...](http://okdork.com/2014/02/09/grow-blog-100000-visitors-less-year/)</comment>


Linear Optimization with Glop - <AUTHOR> https://developers.google.com/optimization/docs/lp/glop <comment><USER2> Super cool demo.

Linear programming in C++ with a Python wrapper has been implemented by many other packages too. Does anyone know how Glop compares with scipy.optimize, PuLP, pl_solve, COIN-OR's many projects, or CPLEX and its many Python wrappers?

<comment><USER3> Generally the wrapper isn't the bit you're worried about, rather the speed and abilities of the underlying solver implementation is the factor you care about most. We use PuLP for our projects as it is compatible with most LP/MIP solvers giving us the ability to code the formulation once then run on a variety of solvers.

I would expect Glop support will be added to PuLP given some time.

</comment></comment><comment><USER3> They've put together a blog post with a bunch of features, including the fact you can solve LPs in google doc spreadsheets [http://googledevelopers.blogspot.com.au/2014/09/sudoku- linea...](http://googledevelopers.blogspot.com.au/2014/09/sudoku-linear- optimization-and-ten-cent.html)

</comment><comment><USER4> Any idea why Google made their own library instead of working on (or forking) another library like GLPK or CLP? And is there any benchmarking data? I couldn't see any on the site.

If I had to guess I'd say this is meant for Google Docs to fill in one of the Excel feature gaps. It probably focuses more on stability/accuracy than speed, and probably won't provide performance comparable to existing packages. Might have grown out of someone's hobby project or a university assignment.

<comment><AUTHOR> I'm not an expert on LP-packages, but in my small experience most LP packages are not that great in areas such as API design, modularity, and other similar non-mathematical areas that are important to programmers.

My guess is that they wanted something small, simple, and easy to build into other products. I've heard from some of the or_tools developers that the internal usages are most often for rather simple problems. In such cases, ease of use is quite important.

That being said, or_tools is a very competent optimization package. For example see the results in the latest MiniZinc Challenge: [http://www.minizinc.org/challenge2014/results2014.html](http://www.minizinc.org/challenge2014/results2014.html).

</comment></comment><comment><AUTHOR> Personally, I'm hoping that this is a first step towards Google implementing their own MIP solver.

I think that given the general quality of or_tools, that might be a very practical choice when the full power of something like CPLEX or Gurobi is not needed.

</comment><comment><USER5> I really want to know what other fellow HNers are using LP for. If you may tell real cases that will be awesome. Mostly I am using it for product mixing and licensing cost optimization..

<comment><USER6> I'm using LP in production as a solver for LAD([http://en.wikipedia.org/wiki/Least_absolute_deviations](http://en.wikipedia.org/wiki/Least_absolute_deviations)). We've thousands of jobs running on Mesos ( see [https://news.ycombinator.com/item?id=8394718](https://news.ycombinator.com/item?id=8394718) ) and I forecast & provision their CPU, Memory consumption over time. So essentially, fit an LAD through thousands of historical time series & predict what happens to the usage in the future, so we can optimally provision clusters. My LP code is essentially this [http://bit.ly/1vxknUi](http://bit.ly/1vxknUi) , with performance optimizations. So it uses the OSS Apache math libs to do LP, not Glop. But I'd imagine we'd get the same results with Glop, maybe much faster. Google GSON for example is a very fast json parser for huge jsons, which we also use in the same project :)

<comment><USER5> Used for a similar project where I have to mix providing server resources and limiting the bandwidth. (game servers at EC2)</comment></comment></comment>


Flynn (open source PaaS) 90% funded, only a day left... - <AUTHOR>

[Flynn](https://flynn.io/), an open-source PaaS (similar to Heroku), and from the creator of [Dokku](https://github.com/progrium/dokku), is close to 90% funded, and is inching slowly on its last day. Can we help give it some attention...? <comment><USER2> Important to note that this is not like Kickstarter. It's not an all-or- nothing fundraiser. Any funds contributed will go through.

</comment><comment><USER3> Contributed.

</comment><comment><USER4> Contributed!

</comment><comment><USER5> Contributed</comment>


US Government Tried to Shutdown Bitcoin - <AUTHOR> https://www.forbes.com/sites/billybambrough/2019/10/08/the-us-government-tried-to-shut-down-bitcoin/#3b2a90601966 <comment><USER2> The headline does not match the article. It says they looked into it, not that they did it. Here's the original interview: [https://www.cnbc.com/2019/10/06/meet-the-former- prosecutor-w...](https://www.cnbc.com/2019/10/06/meet-the-former-prosecutor- who-became-the-face-of-crypto-vc-investing.html)</comment>


Ask HN: How do I get past beginner-programmer?  - <AUTHOR>

Hello. I've always been interested in programming, and I've learned some languages and programmed a few programs. I'm probably best, actually, with ARM assembly for a few reasons I don't want to go into- it has a bit to do with the DS and GBA.
However, I always take a very long time to do (what seem to be ) relatively simple things , and my solutions usually end up being terribly inefficient.
It seems like my problem is that, although I have a good command of the commands found in programming languages, I don't know how to use those languages well. Perhaps my problem could be compared to that of one whom can read every word of a foreign language, but cannot use the grammar at all.
To try to solve this problem, I've been trying to create a lot of relatively short programs that solve problems requiring some algorithm work, but I seem to be slow in improving.
In any case, I'm wondering if there's any ways to see faster improvement - if I need to sink a lot of time into improving, I don't mind; I simply don't want to if it's not necessary.
Thanks for reading, <AUTHOR> <comment><USER3> For my part, I got involved in an open-source project very early on. I produced plugins and patches for the project, and people in the community gave valuable criticism and helped me improve my code.

I didn't do this consciously to improve my skills, I stupidly thought I was "good enough" back then. However I remember that changed when I sent a 20 line patch to a developer, and he replied "Wouldn't this be better?" with a 2-line patch that also caught corner-cases I'd missed. From that day forwards I realised exactly how unskilled I was, despite knowing well the language and APIs, and I realised how valuable that community was to me.

I haven't stayed with that project, I moved about a bit. I found that I enjoy networking and protocols, so I'm more active in another community now. Finding something that I really like doing I would count as the second thing that helped me improve. I find it sad the number of people I encounter who are just programmers for the sake of it, and not because they love what they do - <USER2> of them are good, but I've seen some of the worst code come from these people (who really couldn't care less).

TL;DR I'm really really good ;) [I should learn to avoid tagging British sarcasm to everything I write, it always bites me back]

</comment><comment><USER4> Find a medium sized piece of code in a language that you already know. Pick code that is that is "good" well written "tight" code that is already written by someone else.

Spend a couple of weeks getting to fully understand how the code works. Then spend some time playing with your own modifications to it. Work on making it do something new and unique. Then once you are comfortable with it, pick another piece of medium sized "tight" code and do it again.

Pick something of a size that that seems challenging to you personally. Be it a single dll or an entire OOP application. Pick something challenging, but not so big that you cannot get a hold of it in your brain and learn from it in a couple of weeks.

After three or four of these self directed learning exercises you should have a better understanding of how to write "tight" code.

At that point, (with some additional experience under your belt) pick up an advanced programming guide for the language you have been studying and read it cover to cover.

<http://encyclopedia2.thefreedictionary.com/tight+code>

</comment><comment><USER5> Moar program!

Seriously though... pick a modern, popular language which has lots of resources available and go and build real world useful things. Once you have the basics down you spend a long time learning style. A lot of this comes from having made a great many mistakes before and being able to draw on a huge pool of ways not to do it.

Attempt big programs that are a bit beyond your means and learn how to break them into small pieces you can build. Then learn how to build those up into abstractions that let you make the big program. Learning the different types of abstraction available to you in your language and how to apply them with style is what will turn you into a great programmer.

(Languages: Python, C#, Ruby, Scheme, Clojure etc)

(Abstractions: Functions, modules, classes, closures, aspects etc)

</comment><comment><USER6> "Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman" by Dave Hoover & Adewale Oshineye

<http://apprenticeship-patterns.labs.oreilly.com/>

</comment><comment><USER7> I would recommend getting peer reviewed - allow people to review your code, coding style etc and offer constructive criticism on how you could have done things better, cleaner and more efficiently - this can be done here on HN, by getting involved in open source projects or just talking to people who you know are good enough.

</comment><comment><USER8> You are improving but you want this to happen more rapidly! The language you are most intimate with will not allow for rapid development of projects.

"sure you may like walking or running, but if you need to get anywhere quicker you need to fly".

Practice! Yes, but with the right tools for the desired results.

</comment><comment><USER9> Read some books about algorithms. Implement the exercises in Python. "Artificial Intelligence A Modern Approach" by Russel & Norvig would give you some interesting insights and exercises.

</comment><comment><USER10> [http://shawnpresser.blogspot.com/2010/10/how-to-become- game-...](http://shawnpresser.blogspot.com/2010/10/how-to-become-game- programmer.html)

</comment><comment><USER11> Read this <http://norvig.com/21-days.html>

</comment><comment><USER12> Program more.

</comment><comment><USER13> Your best language is ARM assembly... are you serious?

<comment><AUTHOR> Well , I'm most experienced with it. I can get lots of things done in Haskell and Python too, but I know ARM assembly intimately.

</comment></comment><comment><USER14> yup! practice is the key. Gradually you will be able to start figuring better way of doing things.</comment>


Creationist campaigner has Richard Dawkins' official website banned in Turkey - <AUTHOR> http://www.guardian.co.uk/world/2008/sep/19/religion.turkey

<comment><USER2> This is more a story of one nation's sensibilities and attitudes to free speech. Nice understated response from the Dawkins site – the introduction of a simple "Banned in Turkey" banner.

</comment><comment><USER3> The fight of ideas is a perilous war. We try not to be Pyrrhic in our victories. We strive for justice and valor... but in the end, what could be honorable about destroying another?

</comment><comment><USER4> I'm on the RDF mailing list. I think they sent me a notice of this. As a guerrilla tactic, it seems like this is almost to Richard Dawkins' advantage.</comment>


Rails 3.2 RC1: Faster dev mode & routing, explain queries, tagged logger, store - <AUTHOR> http://weblog.rubyonrails.org/2011/12/20/rails-3-2-rc1-faster-dev-mode-routing-explain-queries-tagged-logger-store <comment><USER2> I've really noticed quite a bit of speed improvement lately with Ruby 1.9.3 and now Rails 3.2.0-rc1, at least in my development environment. It's a good thing too because lately I have been thinking back fondly of the good old Rails 2.x days when you could restart the development environment without flinching. With the latest incarnation of these two tools I love the Rake command again. :)

Now, if we could just get someone to commit the fix for the debugger under Ruby 1.9.3. Not being able to debug, or at least having to work too hard at it, is really a drag on my productivity and is keeping me from moving to the newer faster stuff everywhere. Come on Mr. Moseley, release ruby-debug-base19 v0.11.26 already!

<comment><USER3> does this fix the abominably slow development with the asset pipeline (without the gems needed to hack it and speed it up)?

Basically, can someone give me a way back into pre-3.1 asset pipeline slowdown ?

<comment><USER4> Can you be more specific? Are you talking about rails startup time or SASS compilation? Or something else?

<comment><USER3> in dev mode, the asset pipeline induces extremely slow page loads in development (2-4 seconds per page locally)

This has been the single biggest complaint against Rails 3.1 if you google for it. For e.g. take a look at [http://stackoverflow.com/questions/8084006/serve- assets-dire...](http://stackoverflow.com/questions/8084006/serve-assets- directly-no-asset-pipeline-in-development)

Similar questions have been addressed by either installing rails-dev-tweaks or by pre-compiling assets - which is then a problem if you're actually working on the UI/JS - which is where half the dev time is usually spent.

<comment><USER5> I've noticed that using Passenger Standalone is faster than webrick / mongrel in dev mode using Asset Pipeline. Give it a shot.

<comment><USER6> I just switched to pow to avoid the annoying content-length warnings in 1.9.3 webrick, and it's pretty darn zippy, debug-mode asset pipeline and all:

curl get.pow.cx | VERSION=0.4.0-pre sh

</comment></comment></comment></comment></comment></comment><comment><USER7> Not mentioned anywhere is that the PostgreSQL adapter now supports using the Schema Search Path without fistfuls of bugs and oversights.

I'm using schema separation for a multitenant application, and it looks like I'll be able to remove at least 4/6 hacks to make rails support that functionality.

<comment><USER8> Also, if it is not much to ask, I know this is not the topic, but could you describe how you make this kind of separation? I have the same requirements for isolation and your experience in the matter would be valuable. :)

<comment><USER9> Awhile back, I blogged how to go about this. Some of the hacks will not be needed for Rails 3.2, but the concepts are the same:

[http://blog.jerodsanto.net/2011/07/building-multi-tenant- rai...](http://blog.jerodsanto.net/2011/07/building-multi-tenant-rails-apps- with-postgresql-schemas/)

<comment><USER8> I remember reading your post some time ago, it really helped me creating a better view of this solution and is in fact our preferred method thanks to it. I still haven't implemented it for real and it would be great, if not much to ask you, if you could elaborate the impact of these changes in a post update? What do you think?

</comment></comment></comment></comment><comment><USER10> Good to see that rails developers are progressively seeing the database as a powerful tool and not just as flat files with funny accents.

</comment><comment><USER11> Uh oh, I haven't even updated my clients to Rails 3.1 yet. Definitely not good to fall behind more than a major point release or two with Rails. I have a very old client running Rails 2.3.x and it's always a pain when they need the occasional update and Rake doesn't even work anymore.

<comment><USER12> It sounds like you're not using rvm and gemsets (or a similar tool) for your Rails 2.3.x sites. Rake should never "stop working".

<http://beginrescueend.com/>

<comment><USER13> Unless you're on a platform where you can't get gcc >4.0, so RVM is helpless, and you're stuck with just bundler. Then the rake/cron nightmares come..

</comment></comment></comment><comment><USER7> In my project, "rake environment" took 11.5 seconds on rails 3.1.x, and 8.7 seconds on rails 3.2. (1.9.3.p0 for both).

I'm quite happy about this, as the initial development boot time is what's been bothering me most lately.

<comment><USER14> We see ~20% improvement with the same upgrade (on 1.9.3p0).

8.5s to 6.6s on my laptop (with SSD). Nice!

<comment><USER15> Seeing about 25% speedup here with just the Rails 3.2 RC1.

Combined with rspec-rails 2.8.0.rc2 (which includes some Rails 3.2-related changes), I saw my test suite go from ~2.5s (Rails 3.2.0.rc1 w/ rspec 2.7.x) to ~0.43s (Rails 3.2.0.rc1 w/ rspec 2.8.0.rc2).

Ruby 1.9.3p0 across the board.

<comment><USER16> Just upgrading to rspec 2.8 made my test suite run 10x faster. You might have David to thank for a lot of that speed up. :)

<comment><USER15> Certainly a LOT of it is rspec 2.8.

But there was a definite increase with Rails 2.3 as well. :)

<comment><USER17> I agree. 2.3 was much faster :-)

</comment></comment></comment></comment></comment></comment><comment><USER18> Nice tech talk about the thinking behind the new router from Aaron Patterson (@tenderlove) at MagRails.

<http://www.youtube.com/watch?v=sEbobUPqhL4>

<comment><USER19> <https://github.com/rails/journey> is the code for his router

Great talk, also.

</comment></comment><comment><USER20> Key/Value storage built in?

I love rails :)</comment>


An AI system for editing music in videos - <AUTHOR> http://news.mit.edu/2018/ai-editing-music-videos-pixelplayer-csail-0705 <comment><USER2> Link to the Official Page with paper and demo: [http://sound-of- pixels.csail.mit.edu/](http://sound-of-pixels.csail.mit.edu/)

</comment><comment><USER3> Does anyone know of anything similar which can extract human voice out of a video which has other noises including fans, people coughing, electric generator etc?

<comment><USER4> I'd imagine one could apply this network to a video of someone speaking

<comment><USER5> Yup I believe they announced this at Google I/O Keynote this year actually -- they mentioned that while it might not be enough with just the audio, looking at mouth gestures can give AI enough to know what might be said by whom.

[https://www.youtube.com/watch?v=ogfYd705cRs&t=7m0s](https://www.youtube.com/watch?v=ogfYd705cRs&t=7m0s)

<comment><USER6> Reflecting on your last phrase: I was watching Esports the other day, the player was talking with a very loose mouth and I wondered if he was avoiding being lip-read.

I imagine a lip reading AI would get wide usage. Managers will be wearing face masks to hide their lips. (It's probably doable now to listen with a spy-mic, but it's obvious in a way that using a normal video camera isn't).

<comment><USER7> Julia Probst is a german deaf blogger [1] who is famous [2] for lipreading tactical commands given by soccer coaches to their team during a match and posting them on twitter. She is even hired by sport channels on TV to provide the commentator with insight information.

[1] [https://twitter.com/einaugenschmaus](https://twitter.com/einaugenschmaus) [2] [http://www.sueddeutsche.de/sport/lippenlesen-im-fussball- die...](http://www.sueddeutsche.de/sport/lippenlesen-im-fussball-die- geheimnisverraeter-1.2215827)

</comment></comment></comment></comment></comment><comment><USER8> You can google "source separation" to get background on this, Stanford has what is supposed to be a nice lib.

[https://www.reddit.com/r/MachineLearning/comments/4oewdq/rnn...](https://www.reddit.com/r/MachineLearning/comments/4oewdq/rnn_on_audio_for_instrumentalvocal_isolation/)

[https://www.reddit.com/r/MachineLearning/comments/4r92iq/wou...](https://www.reddit.com/r/MachineLearning/comments/4r92iq/would_it_be_possible_to_train_a_nn_to_remove_echo/)

[https://www.reddit.com/r/MachineLearning/comments/66j2i4/p_i...](https://www.reddit.com/r/MachineLearning/comments/66j2i4/p_isolating_vocals_from_music_with_a_convnet/)

</comment><comment><USER9> This might be unrelated but i want to ask this. When on a phone call, many times the sounds of peripheral objects (traffic, horns, fan sounds, keyboard clicks) seem more obvious than the voice of the person. Do you feel feel the same? Is there a scientific explanation for this?

<comment><USER10> Many phone systems use some form of automatic ducking, meaning it tries to identify when someone is speaking, and raises their volume while lowering the volume of everyone else. The objective of this is to increase overall intelligibility but it's not perfect. A sudden change in volume on one line, e.g. caused by a car horn or keys typing, can trigger it to think someone else has started speaking

</comment></comment><comment><USER11> I am so excited to see this. I've been waiting for the day that we get a tool that can extract various instrumental parts from music. This isn't there yet, but it's the right direction. If we can get there, music copyright will have another good fight on its hands.</comment>


Good Experience: It's the little things - <AUTHOR> http://www.37signals.com/svn/posts/1432-good-experience-its-the-little-things <comment><USER2> yawn.

now everyone do something similar on your site so it becomes normal and expected and nobody thinks it's special enough to write about ever again.

and he's excited about getting an e-mail reply that is clearly a canned response? nothing more than "i am acknowledging your complaint."</comment>


Apple accused of overpricing, restricting device repairs - <AUTHOR> https://www.cbc.ca/news/thenational/complete-control-apple-accused-of-overpricing-restricting-device-repairs-1.4859099 <comment><USER2> While we're at it. I pay 30% cut of my app revenues to Apple. So for every sale i end up with 40% in pocket rest to Apple and government taxes.

EU should look into their app fees

<comment><USER3> How much would you rather pay to access 1,300,000,000 iOS users instead?

<comment><USER4> The problem here is that you have to pay the fee, even if you think it isn't reasonable. I have no idea if 30% is a reasonable fee to charge or not, and because no one is allowed to compete with Apple, there's no way to find out. If you were allowed to install apps from alternate sources, app developers could offer discounts if you pay them directly or install the app from another store, and Apple would have to adjust its fees to match what the services it offers are actually worth.

<comment><USER5> One problem with that is that Apple's restrictions allow them to eliminate piracy, and perform an approval process that keeps high the perception of iOS app quality. These two things make the iOS app market much more attractive to developers. Allowing Android-style competition would lower the value. It might be that it lowers it by less than the difference between 30% and a "fair" cut, but it's hard to tell and users and developers wouldn't be well-served by performing an uncontrolled experiment to test the theory.

<comment><USER6> It also gives Apple a big lever to ensure the platform stays agile. For example, Apple was able to make 64 bit happen first because they knew what software could be installed (so they knew what the compatibility risk was), and because they controlled distribution.

If there were another major app store with significant market share, Apple would find it more difficult to evolve the platform.

</comment></comment></comment></comment></comment><comment><USER7> I buy about $20,000 worth of Apple gear annually, and I have noticed they are beginning not to honor AppleCare events.

<comment><USER8> Experienced similar issues with a 20x annual spend on Apple gear. After a laundry list of issues with Apple Business and some repairs we switched to buyint from a procurement partner (CDW) and moved device repairs in-house via Apple Self Service so that we aren't stuck with overpriced flat-rate depot repairs.

Like the iPhone Upgrade Program, it's probably best for businesses to lease devices from Apple than to deal with all the nonsense around repairs.

<comment><USER9> > it's probably best for businesses to lease devices from Apple than to deal > with all the nonsense around repairs.

Heh. Apple's stance on control and repair starts to make a lot of sense when you think of it as apple's transitioning phase to a device-renting business model. They want to make truly owning and repairing your device as inconvenient (and illegal) as possible so that people are more inclined to pay monthly for access to a device.

I just hope other OEMs aren't capable of following in their footsteps.

</comment></comment></comment><comment><USER10> Some of the repair restrictions that Apple put in place, which Louis Rossman complains about, made more sense after reading about the repair fraud gangs that Apple has to deal with in [https://www.cultofmac.com/581970/iphone- repair-fraud-cost-ch...](https://www.cultofmac.com/581970/iphone-repair-fraud- cost-china/)

<comment><USER11> The only reason that those "repair fraud gangs" are worth while is that iPhone parts are difficult and expensive the obtain.

If they produced enough spare parts and sold them at reasonable cost it wouldn't be as worthwhile for those "gangs" to try to abuse the warranty system for parts.

</comment></comment><comment><USER12> My experience with Apple repairs is a mixed bag. For several iPhone repairs over the years the experience has always been easy and positive.

However last year I bought my first iMac, an i7 27" 5K. Last month a line appeared in the display; a vertical column of pixels were stuck black. The issue is intermittent but I took pictures when it happened.

In store they were happy to schedule warranty repair of the display even though the probably wasn't occurring the moment when we booted.

But I got a call from Apple yesterday saying my repair was "completed", they found the problem, it was the two 16GB sticks of RAM I added. They said because it didn't match the other two 8GB sticks it would cause display issues.

Of course Apple's own docs state you can mix sizes as long as you do it in pairs and keep the matching pairs on the same bank. How RAM would cause a single column of stuck pixels is beyond me.

My only hope is it reproduces again without the RAM present before the 1 year warranty runs out in 3 weeks. Bah!

<comment><USER13> Seems like you got a ribbon cable about to go wonk. Just keep opening and closing the lid it will show up again soon.

<comment><USER14> > Just keep opening and closing the lid it will show up again soon

It's an iMac not a MacBook.

</comment></comment></comment><comment><USER15> Is there a defensible argument for Apple's tactics?

<comment><USER16> Devil's advocate here, Rossman cites that only a pin needed to be bent back in the case of the flickering display. Apple has to provide a warranty on their service, therefore they want the solution that is least likely to break again. Bending the pin may not be good until the lifespan of the device, it may break off next time the machine is dropped or put down a little hard.

Of course, any sane person would have a discussion with the customer about whether or not they wanted to try a simple fix versus replace the whole damn thing, which is the crux of the overpricing argument.

The other argument is cost, Apple faces massive short supply on the Genius Bar, so having more bodies that can do simpler repairs faster (ie blind part swaps) seems to have won out over having technical talent properly diagnose and repair the machine.

They could have alleviated this through their authorized service providers, but hobble them with massive fees, high part prices and overall little trust (often being last in line to receive technical documents and training for new devices). Just check out Linus Sebastian's iMac Pro saga for an insight.

Overall, it's a massive system orchestrated to give Apple maximum control over the entire process, and nowhere near enough supply for consumers. It's now actively hampering their experience, leaving people without the super glossy Genius Bar experience or a cheap option at all. I believe they've just put too few resources into this area and are too greedy to loosen the stranglehold of control for third parties to pick up the slack. Directly in contrast to their whole "we want these products to last" argument from the recent iPhone release keynote.

<comment><USER17> It's good argument, but maybe they are saying that most, (or maybe " _some_ "), people would be fine with a repair that is understood to have drawbacks where usable lifespan is concerned?

Maybe it's like a car? You can get the mechanical issue _really_ fixed, or you can have a less expensive repair. Most people understand almost immediately that there is going to be a drawback if you select the less expensive repair.

<comment><USER18> Or maybe very few people, who knows? Shouldn't the number be quantified before we assume what people want?

> You can get the mechanical issue really fixed, or you can have a less > expensive repair.

Does it qualify as a repair if it's not _actually a repair_?

I'd imagine the same people who are happy with these kind of repairs with Apple would be the same ones to complain about planned obsolescence...

</comment></comment></comment></comment><comment><USER19> Apple accused of being Apple.

<comment><USER20> That's apt.. I used to support them back in 2003-04 when they were struggling to survive. Quickly moved away from them when I realized their power abuse. They are the Grand-dad of locking and exploiting..

</comment></comment><comment><USER21> I don't think it's intentional overpricing so much as incompetent staff whose immediate solution is replacing the entire affected component. In addition, Apple has designed their hardware in a way that makes it very difficult for the average hobbyist to repair things the way you can a PC.

<comment><USER22> Apple has defined policy and procedures that staff are to follow. The staff aren't free to repair faulty electronics, they're to replace failed boards or systems.

</comment></comment><comment><USER23> Thanks for doing this. I had similar experiences with Apple Support. Definitely a movement that I'm going to support.

</comment><comment><USER24> It has been two months and I still haven't gotten my MBP back. Screen and battery replacement.

<comment><USER25> Write to Tim Cook. I had an iMac that was in repair for 4 weeks with no clear indication of when it would be done. I emailed Tim Cook and the next day a senior manager called to discuss my case, and the week after I got my machine back. Worth a try.

<comment><USER26> I'm pretty sure this won't scale.

<comment><USER27> You might be surprised. Jeff Bezos has a similar system in place, and it seems to be holding up to Amazon scale. Something slipping through the cracks is a failure of process, and failures of process are exactly what a CEO wants to be paying attention to. While I imagine the "actually gets read by Bezos" claim is just PR, these sorts of emails actually do get read by people who have power and influence, and the interesting ones do actually end up in front of Bezos long enough for him to forward them to someone he suspects is responsible.

[https://www.inc.com/business-insider/amazon-founder-ceo- jeff...](https://www.inc.com/business-insider/amazon-founder-ceo-jeff-bezos- customer-emails-forward-managers-fix-issues.html)

<comment><USER28> Having worked at Amazon, there's a perception even internally that he's actually reading those emails. Obviously it's possible that it's just assistants, but it's not just externally that that perception persists.

</comment></comment></comment></comment></comment><comment><USER29> Overpricing. Apple? Never ...

</comment><comment><USER30> I recently replaced the screen on my 2017 iPad 9" via parts from Aliexpress. I was surprised by how thin the display glass is. It appears to be designed to fail.</comment>


Beta invites for lean startup http://qrcardmaker.com - <AUTHOR>

Looking for beta testers/early adopters for a new service called http://qrcardmaker.com.
Practicing the lean startup methodology by Eric Ries. Trying to build measure and learn how users interact with the app. If you'd like to use the service for free and to help me out, grab a beta invite here:
http://qrcardmaker.com/beta <comment><AUTHOR> Link for beta invites: <http://qrcardmaker.com/beta></comment>


Why scientific programming does not compute - <AUTHOR> http://www.nature.com/news/2010/101013/full/467775a.html <comment><USER2> For all the talk of "best practices" and "training" the depressing truth is that guaranteeing correct software is incredibly difficult and expensive. Professional software engineering practices aren't nearly sufficient to guarantee correctness with heavy math. The closest thing we have is NASA where the entire development process is designed and constantly refined in response to individual issues to create the checks and balances with the lofty goal of approaching bug impossibility at an organizational level. Unfortunately this type of evolutionary process is only viable for multi-year projects with 9-figure budgets. It's not going to work for the vast majority of research scientists with limited organizational support.

On the positive side, such difficulty is also in the nature of science itself. Scientists already understand that rigorous peer review is the only way to come to reliable scientific conclusions over time. The only thing they need help with understanding is that the software used to come to these conclusions is as suspect as—if not more so than—the scientific data collection and reasoning itself, and therefore all software must be peer-reviewed as well. This needs to be ingrained culturally into the scientific establishment. In doing so, the scientists can begin to attack the problem from the correct perspective, rather than industry software experts coming in and feeding them a bunch of cargo cult "unit tests" and "best practices" that are no substitute for the deep reasoning in the specific domain in question.

<comment><USER3> I've spent a bit of time on the inside at NASA, specifically working on earth observing systems. There is a huge difference between the code quality of things that go into control systems for spacecraft (even then, meters vs. feet, really?) and the sort of analysis/theoretical code the article talks about. Spacecraft code gets real programmers and disciplined practices, while scientific code is generally spaghetti IDL/Matlab/Fortran.

There is a huge problem with even getting existing code to run on different machines. My team's work was primarily dealing with taking lots of project code (always emailed around, with versions in the file name) and rewriting it to produce data products that other people could even just view. Generally we'd just pull things like color coding out of the existing code and then write our processors from some combination of specifications and experimentation.

I'd agree that "unit tests" and trendy best practices are probably not the full answer, but the article is correct in emphasizing documentation, modularity, and source control. Source control alone would protect against bugs produced by simply running the wrong version of code.

<comment><USER2> Definitely. Obviously the software industry has a lot of know-how that would be invaluable to the science community. The critical point I was trying to make is that scientists need to understand the fundamental difficulty of software correctness before they can be expected to apply best practices effectively.

</comment></comment></comment><comment><USER4> I'm a PhD student in Electrical Engineering. I'm currently working on a Monte Carlo-type simulation for looking at the underwater light field for underwater optical communication (no sharks!). I'm doing the development in MATLAB and I recently put all my code up on Github (<https://github.com/gallamine/Photonator>) to help avoid some of these problems (lack of transparency). Even if nobody ever looks/uses the code, I know every time I do a commit there's a change someone MIGHT and I think it helps me write better code.

The problem with doing science via models/simulation is that there just isn't a good way of knowing when it's "right" (well, at least in a lot of cases), so testing and verification are imperative. I can't tell you how many times I've laid awake at night wondering if my code has a bug in it that I can't find and will taint my research results.

I suspect another big problem is that one student writes the code, graduates, then leaves it to future students, or worse, their professor, to figure out what they wrote. Passing on the knowledge takes a heck of a lot of time, especially when you're pressed to graduate and get a paycheck).

There's got to be a market in this somewhere. Even if it was just a volunteer service of "real" programmers who would help scientists out. I spent weeks trying to get my code running on AWS, which probably would have taken a few hours from someone who knew what they were doing. I also suspect that someone with practice could make my simulations run at twice the speed, which really adds up when you're doing hundreds of them and they take hours each.

<comment><USER5> I'm a M.S. student in mechanical engineering facing a similar situation, except I haven't put any code on Github (my advisor wants to keep it proprietary, but I probably would not bother putting it up even if he were ok with it).

I've written around 15000 lines of MATLAB for my research and only a handful of people will ever need to see it. Some is well-structured and nicely commented, but other parts are incomprehensible and were written under severe time constraints. My advisor is not much of a programmer and will not be able to figure it out, and I feel bad for leaving a pile of crappy code to the person who inevitably follows in my footsteps, but I ultimately have a choice between writing fully commented, well-tested, and well-structured code and graduating a semester late (at the cost of several thousand dollars to myself), or writing code that's "just good enough" to get results on time. This is a solo project (there is no money for a CS student to intern) and I'm not getting paid to write code unlike a professional programmer, so every second I spend improving my code beyond the bare minimum _costs me_ time and money.

Even if I were able to tidy up and publish all of my code, most mechanical engineers would not be able to understand it because most can't write code. Those who can mostly use FORTRAN, although C is becoming more common. Nonetheless, even those who could understand my code would have little incentive to read through 15000+ lines of code.

Unfortunately, as far as research code is concerned, a lot of trust is still required on the part of the reader of the publication. I agree that the transfer of knowledge _should_ be handled differently, but until there is a strong incentive for researchers to write good code it will continue to be bad. Especially when many research projects only require the code to demonstrate something, after which it can be put in the closet.

<comment><USER6> I wonder whether our priorities for research are misguided. Isn't research about extending the knowledge of humanity? Writing and passing on readable code would probably advance us further in total, than everyone starting basically from scratch.

(I'm not faulting you, you just react to the incentives.)

<comment><USER7> Well, I went to a lecture by one of the most prominent scientists here in Brazil, where he explicitly said that the answer to your question is NO. Research as it stands today exists to feed the system. According to him, you:

* Publish, so you can get grants

* Use that grant so you can publish more

* Get more grants;

* Get tenure somewhere in the middle.

I have to confess I was very disgusted by him saying that in front of such a large audience of scientists and graduate students.

EDIT: Formatting

<comment><USER8> I agree it's a problem, but I think you have to fix the incentives to make meaningful change. When people are thrown into a cut-throat competitive environment, with tenure clocks, multiple junior professors per tenure slot, requirement to bring in grants to fund your research or you get shut down, etc., it doesn't encourage people to be altruistic and sharing.

<comment><USER9> I think the problem is fundamentally one of economics. Research is good, but you have to decide how much money to allocate to it. In order to decide, you need a metric for performance. Really, only scientists are qualified to judge whether the results of other scientists are worth anything, so currently the only metric we really have is publishing in peer-reviewed journals. Ultimately, therefore, that's where the incentives end up.

When a more appropriate way of quantifying research output and its benefits is found, hopefully a beneficial change in culture will trickle down into the academic trenches.

<comment><USER6> How about trying to fix the current system by making somebody else using your software count as a "super citation"? (It could even arguably count as much as co-authorship.)

<comment><USER5> I think this is an excellent idea. If published software could be tagged via a unique identifier (like the DOI of a paper), then it could be cited by that tag just like a paper. Well written software might even get cited more than the paper it was published in.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> I want to write a "software style guide" for journalists and their editors.

Software and Code are both mass nouns in technical language.

"Code" can be in programs (aka, things that run), libraries (things that other programmers can use to make programs), or in samples to show people how to do things in their programs or libraries. Some people call short programs scripts.

When you feel you should pluralize "software", you're doing something wrong. You might want to use the word programs, you might want to use the word products, you might want to just use it like a mass noun "It turns out, thieves broke into the facility and stole some of the water", etc when talking about a theft of software "It turns out, thieves broken into the facility and stole some of the software".

<comment><AUTHOR> Actually it's a science thing. In a scientific context "code" is understood to mean "program". For example: [http://scholar.google.com/scholar?q=%22population+synthesis+...](http://scholar.google.com/scholar?q=%22population+synthesis+codes%22)

I'm not sure why this is though.

<comment><USER10> What an excellent idea: Generate new jargon that's incompatible with the jargon used from the field you suck at.

Perhaps concerned scientists and editors should reject the bifurcation here and take on the lingo of the field that creates the tool they have to use and need to learn better as a first step in learning to program in a more responsible manner?

<comment><USER8> I think you have the chronology backwards. The use of "code" as a mass noun dates to the 1960s at the earliest (actually, I can't find a good example before the 1970s in brief searching), while the use of "code" as a singular noun to mean "implemented algorithm", and "codes" as the plural, dates back at least to the 1950s.

As one of many examples, here's a 1955 survey article compiling a list of "available digital computer codes for nuclear reactor problems": [http://www.osti.gov/energycitations/product.biblio.jsp?osti_...](http://www.osti.gov/energycitations/product.biblio.jsp?osti_id=4364015)

<comment><USER10> My Chronology may still be backwards, but they still should swap over to the language of the mature field of software development's language to better allow themselves to integrate in good practices.

The bifurcation is still harmful to them even if the software usage originated later than the science term.

</comment></comment></comment></comment></comment><comment><USER11> My girlfriend is a PhD student in a pharmacology lab. I'm a software engineer working for an industry leader.

Once, she and the lab tech were having issues with their analysis program for a set of data. It was producing errors randomly for certain inputs, and the data "looked wrong" when it didn't throw an error. I came with her to the lab on a Saturday and looked through the spaghetti code for about 20 minutes. Once I understood what they were trying to do, I noticed that they had forgotten to transpose a matrix at one spot. A simple call to a transposition function fixed everything.

If this had been an issue that wasn't throwing errors, I don't know whether they would have even found the bug. I've been trying to teach my gf a basic understanding of software development from the ground up, and she's getting a lot better. But this does appear to be a systemic problem within the scientific community. As the article notes, more and more complicated programs are needed to perform more detailed analysis than ever before. This problem isn't going to go away, so it's important that scientists realize the shortcoming and take steps to curb it.

<comment><USER12> Not sure how your anecdote relates to the conclusion. Forgetting, or even knowing why, to transpose a matrix is not an example of a problem that can be solved by "a basic understanding of software development". Hell, I'm sure there are many decent hackers that don't know what a matrix is, let alone spot such errors within a long sequence of computations.

<comment><USER13> I disagree. Well written and abstracted code makes mathematical formulas easy to scan and proofread.

Your code should look like this:

        angle = acos( ( a . b ) /
                      (|a|*|b|) )

If it looks like this . . .

        angle2 = Math.acos((a.x*b.x + a.y*b.y +
          a.z*b.z)/Math.sqrt(a.x*a.x + a.y*a.y +
          a.z*a.z)*Math.sqrt(b.x*b.x + b.y*b.y +
          b.z*b.z))

. . . you're likely to miss the error*

Bad code compiles. Good code works right. Great code is so obviously right you don't have to wonder.

*Those are the same formula, though the second one is missing some critical parentheses. I use the example because I have done exactly this and been bitten by exactly this, and now am fanatical about keeping my mathematical formulas clean and obvious.

</comment></comment></comment><comment><USER14> Yes this is a huge problem. I am a software engineer working at a research institute for bioinformatic. The biggest problem I encounter in my struggle for clean maintainable code, is that management down prioritize this task quite heavily.

The researchers produce code of questionable quality that needs to go into the main branch asap. Those few of the researchers that know how to code (we do a lot of image analysis), don't know anything about keeping it maintainable. There is almost a hostile stance against doing things right, when it comes to best practices.

The "Works on my computer" seal of approval have taken a whole new meaning for me. Things go from prototype to production by a single correct run on a single data set. Sometimes its so bad I don't know if I should laugh or cry.

Since we don't have a single test or, ever take the time to do a proper build system, my job description becomes mostly droning through repetitive tasks and bug hunting. It sucks the life right out of any self respecting developer.

There, I needed that. Feel free to flame my little rant down into the abyss. :)

</comment><comment><USER15> _As a general rule, researchers do not test or document their programs rigorously, and they rarely release their codes, making it almost impossible to reproduce and verify published results generated by scientific software, say computer scientists._

Just stop doing that!

Seriously, testing is not wasted effort and for any project that's large enough it's not slowing you down. For a very small and simple project testing might slow you down, for bigger things - testing makes you faster! And the same goes for documentation. And full source code should be part of every paper.

 _Many programmers in industry are also trained to annotate their code clearly, so that others can understand its function and easily build on it._

No, you document code primarily so YOU can understand it yourself. Debugging is twice as hard as coding, so if you're just smart enough to code it, you have no hope of debugging it.

<comment><USER16> You won't see any clean code written by scientists until (major) journals make it mandatory to submit code for peer review and publication.

When it happens, I hope that they'll manage to agree on a sensible license (even though I won't set my hopes too high).

<comment><USER17> I have all of my code on github under a CRAPL license [1]. It assumes a certain amount of good-faith from others, but I feel that if you're worrying about getting scooped, your problem isn't ambitious enough. Luckily, my adviser agrees, and is very in favor of open releases of data [2].

[1]<http://matt.might.net/articles/crapl/> [2]<http://www.michaeleisen.org/blog/?p=440>

<comment><USER16> The terms of the license are good, but its name is literally crappy:-/

</comment></comment></comment></comment><comment><USER18> [New account for anonymity]

An often neglected force in this argument is that many practitioners of "scientific coding" take rapid iteration to its illogical and deleterious conclusion.

I'm often lightly chastised for my tendencies to write maintainable, documented, reusable code. People laugh guiltily when I ask them to try checking out an svn repository, let alone cloning a git repo. It's certain that in my field (ECE and CS) some people are very adamant about clean coding conventions, and we're definitely able to make an impact bringing people to use more high level languages and better documentation practices.

But that doesn't mean an hour goes by without seeing results reverse due to a bug buried deep into 10k lines of undocumented C or Perl or MATLAB full of single letter variables and negligible modularity.

<comment><USER10> What I am hearing from you, is that we need to lobby the US government into open code requirement for grant work done under their purvey.

Also some sort of git front end that unwilling people could use would make things better?

</comment></comment><comment><USER19> An interesting citation <http://portal.acm.org/citation.cfm?id=188228> :

> This paper describes some results of what, to the authors' knowledge, is the > largest N-version programming experiment ever performed. The object of this > ongoing four-year study is to attempt to determine just how consistent the > results of scientific computation really are, and, from this, to estimate > accuracy. The experiment is being carried out in a branch of the earth > sciences known as seismic data processing, where 15 or so independently > developed large commercial packages that implement mathematical algorithms > from the same or similar published specifications in the same programming > language (Fortran) have been developed over the last 20 years. The results > of processing the same input dataset, using the same user-specified > parameters, for nine of these packages is reported in this paper. Finally, > feedback of obvious flaws was attempted to reduce the overall disagreement. > The results are deeply disturbing. Whereas scientists like to think that > their code is accurate to the precision of the arithmetic used, in this > study, numerical disagreement grows at around the rate of 1% in average > absolute difference per 4000 fines of implemented code, and, even worse, the > nature of the disagreement is nonrandom. Furthermore, the seismic data > processing industry has better than average quality standards for its > software development with both identifiable quality assurance functions and > substantial test datasets.

<comment><USER19> There's a later paper available for reading: <http://www.leshatton.org/Documents/Texp_ICSE297.pdf>

</comment></comment><comment><USER20> Something I heard from one of my professors once: "A programmer alone has a good chance of getting a good job. A scientist alone has a good chance of getting a good job. A scientist that can program, or a programmer that can do science, is the most valuable person in the building."

<comment><USER21> That has not been my experience. I spent years working on DNA aligners then in a wetlab building software for confocal laser microscopy. In both locations, the best paid and most highly valued people were the scientists. If you, say, were a good developer with masters in stats and a strong understanding (somewhere between an undergrad and an MS) of the relevant science... you were paid 1/2 as much as you would be paid if you did computational advertising.

And yet there aren't many good developers doing science. Weird, huh?

<comment><USER22> Agreed that low salaries are a disincentive for good engineers to work in science. It's worth noting that even the scientists are paid far less than people with commensurate training and experience in industry.

As for why scientists are more highly valued: they bring in the grants that keep the wheels turning (in academic circles; industry & national labs obviously differ).

</comment></comment></comment><comment><USER23> Next they'll discover than when those scientists leave academia and become quants, they don't magically become any better at coding (but at least they now have access to professionals, if they recognize the need).

</comment><comment><USER24> _(Disclaimer: my background is in materials physics, and it may be different in other fields. But I doubt it.)_

Unfortunately there is very little _direct_ incentive for research scientists to write or publish clean, readable code:

\- There are no direct rewards, in the tenure process or otherwise, for publishing code and having it used by other scientists. Occasionally code which is widely used will add a little to the prestige of an already-eminent scientist, but even then it rarely matters much.

\- Time spent on anything other than direct research or publication is seen as wasted time, and actively selected against. Especially for young scientists trying to make tenure, also the group most likely to write good code. Many departments actually discourage time spent on _teaching_ , and they're paid to do that. Why would they maintain a codebase?

\- Most scientific code is written in response to specific problems, usually a body of data or a particular system to be simulated. Because of this, code is often written to the specific problem with little regard for generality, and only rarely re-used. (This leads to lots of wheel re-invention, but it's still done this way.) If you aren't going to re-use your code, why would others?

\- If by some miracle a researcher produces code which is high-quality and general enough to be used by others, the competitive atmosphere may cause them to want to keep it to themselves. Not as bad a problem in some fields, but I hear biology can be especially bad here.

\- Most importantly, _the software is not the goal_. The goal is a better understanding of some natural phenomenon, and a publication. (Or in reverse order...) Why spend more time than absolutely necessary on a single part of the process, especially one that's not in your expertise? And why spend 3x-5x the cost of a research student or postdoc to hire a software developer at competitive rates?

I went to grad school in materials science at an R1 institution which was always ranked at 2 or 3 in my field. I wrote a _lot_ of code, mostly image- processing routines for analyzing microscope images. Despite it being essential to understanding my data, the software component of my work was always regarded by my advisor and peers as the least important, most annoying part of the process. Time spent on writing code was seen as wasted, or at best a necessary evil. And it would never be published, so why spend even more time to "make it pretty"?

I'm honestly not sure what could be done to improve this. Journals could require that code be submitted with the paper, but I really doubt they'd be motivated to directly enforce any standards, and I have no faith in scientists being embarrassed by bad code. Anything not in the paper itself is usually of secondary importance. (Seriously, if you can, check out how bad the "Supplementary Information" on some papers is.) But even making bad code available could help... I guess. And institutions could try to more directly reward time put into publishing good code, but without the journals on board it may be seen as just another form of "outreach"--i.e., time you should have been in lab.

I did publish some code, and exactly two people have contacted me about it. That does make me happy. But many, many more people have contacted me to ask about how I solved some problem in lab, or what I'm working on now that they could connect with. (And are always disappointed when I tell them I left the field, and now work in high-performance computing.) Based on the feedback of my peers... well, on what do you think I should've spent my time?

<comment><USER25> I'm working in biology now, and a good example of researchers who produce quality, documented code that other people find useful is the Knight group at UC Boulder. They write python with good docs and support, publish the algorithms they come up with in bioinformatics journals, and people cite them all the time.

Might be worth thinking about why there are incentives there and not elsewhere.

<comment><USER26> That is an excellent example and a good point. But, for what it's worth, the Knight lab doesn't really do any biology. Most of their biology is done by collaboration with other labs, and the people in the lab are almost entirely programmers or database people. There's nothing wrong with that, but it's more an example of programmers getting into biology than the other way around.

</comment></comment></comment><comment><USER27> I think it is unreasonable to expect that a person will be a good programmer just because (a) they are a scientist and (b) their current project can be assisted by computers.

Is it not sensible, perhaps, to have a dedicated group of programmers (with various specialities) available as a central resource to assist the scientists with their modelling? (I am imagining a central pool whose budget would be spread over several areas.)

I personally love working on toy projects related to science. Maybe we hackers with time for that kind of thing should volunteer in some way to assist with the technical aspects of research that is directed by a scientist? I'm not sure I'd even care about getting a credit on a research paper so long as I could post pretty pictures and graphs on my blog...

</comment><comment><USER28> From personal experience, I attest that it can be more difficult than pulling teeth to get a scientist to commit code to a version control system.

<comment><USER29> Greg Wilson once commented that the subversive way to get scientists to use source control was not to pitch it as a code history tool, but rather as a nifty way to sync up code between their work machines, home machines, etc. He said he had a lot more traction with that than trying to lecture them about having code history.

<comment><USER30> Dropbox has invalidated this pitch.

<comment><USER6> Not completely. Git is better at merging.

<comment><USER10> Git's also a bit hard for them to handle by themselves with how rarely they need to use it (I'm a huge git proponent, but also a realist).

</comment></comment></comment></comment></comment><comment><USER31> One of the main sources in the article is a study from the 2009 Workshop on Software Engineering for Computational Science and Engineering. One of the workshop's organizer's has a report of the overall conference which is interesting: <http://cs.ua.edu/~carver/Papers/Journal/2009/2009_CiSE.pdf>

</comment><comment><USER32> Rather than building these data analysis/visualization programs from scratch each time, my thought is that scientists should instead be writing them as modules for a data workflow application like RapidMiner.

If you haven't heard of RapidMiner, you basically edit a flowchart where each step takes inputs and outputs, eg take some data and make a histogram, or perform a clustering analysis.

Video of someone demoing it: <http://www.youtube.com/watch?v=TNESlvXp47E>

This way, the scientists can focus on the algorithms and not have to worry about all the other details of creating useable, maintainable software.

<comment><USER33> Do you know of any other good data analysis applications similar to RapidMiner?

<comment><USER32> I don't know any first hand, but other's I've heard of: Taverna: <http://taverna.org.uk/> Trident: <http://www.microsoft.com/mscorp/tc/trident.mspx>

</comment></comment></comment><comment><USER19> There are a lot of suggestions that the code and data be required to publish.

Sorry guys, but that hasn't worked so far: the economics journal _Journal of Money, Credit and Banking _, which required researchers provide the data & software which could replicate their statistical analyses, discovered that <10% of the submitted materials were adequate for repeating the paper (see "Lessons from the JMCB Archive", Volume 38, Number 4, June 2006).

Oops.

</comment><comment><USER34> Why not just hire comp scientists or programmers permanently? Adjust the company model, permanently segregate the work?

<comment><USER35> I did some work on data visualization for the astrophysics department when I was in college. I started to work with the simulation code, but found that the math was sprinkled everywhere, which made it really difficult for me to make structural changes without risking the integrity of the program.

One of the most elusive skills for self-taught programmers is how to structure code properly. A good architecture would allow domain experts and non-expert programmers to coexist, but that would require throwing away a lot of existing spaghetti code written by domain experts, which is not going to be a popular decision.

<comment><USER36> I'm a programmer who is studying physics in college, and a couple years back I had a similar experience with simulation code as you did. I didn't have any issues with the math—the program I was working on didn't have anything more conceptually advanced than multivariable calculus—but I did struggle significantly to understand the physics behind the simulation.

It didn't help that most programs use, for example, the variable 'rho' for density instead of just writing out 'density'.

On the other hand, reading game physics libraries (written by programmers, not physicists) can be just as bad. There are physics hacks all over ("it's not stable, so let's throw in an arbitrary constant") and there's code repetition where the programmer doesn't understand that two concepts are closely related.

</comment></comment></comment><comment><USER37> there's not nearly enough open source academic projects, nor is there any sort of pervasive culture that encourages one.. besides the litany of examples that could be put together to show that open source + academia does exist and does work, I've read way too many computational physics or computational chemistry or computational anything academic papers that simply do not publish source code, and imo there's no good excuse for it, other than the usual, funding, or copyright / university IP

<comment><USER38> There is an important factor discouraging publishing source code - fear that there indeed are bugs and they will be exposed. This is blatantly "security through obscurity", but I fear it's a common attitude. If there are bugs and code is secret, even if someone else later points out that the results contradict their own findings, it's (presumably) not difficult to sweep the thing under the rug and cool it down. On the other hand, if the paper is published, code is public and someone spot serious bugs, it's instantly a big shame... (code review as a part of peer review would help, but it's very unrealistic - already, reviewing is very time consuming).

In addition, there are really no structural/institutional incentives to produce and share good quality scientific code. Maintaining good code costs much effort and, currently, gives few short-term benefits. It's often easier to produce crappy code, get the results, publish and move ahead.

<comment><USER6> Won't you get a citation, whenever somebody uses your code?

<comment><USER39> Typically a review paper describing the software is what is actually cited, but yes!

For instance, in my department there is a guy who maintains an astrophysical software package called Cloudy. The faq[1] describes how to cite it. (Unlike a lot of the software mentioned here, that project actually is open source, uses version control, and was migrated from the original Fortran to C++.)

[1]<http://www.nublado.org/wiki/FaqPage>

</comment></comment></comment></comment><comment><USER17> Where do most programmers get this exposure to best practices like version control, unit testing, etc? I took a few early-mid level CS classes, and there was a relatively cursory emphasis on readable code, there was barely any on any of the sorts of things that lead to well-maintained projects. If these are the sorts of things that one learns at your first internship, then it's no wonder that academics in other disciplines don't have any exposure to it.

<comment><USER40> The vast majority of students are never exposed to these concepts and those who are usually teach themselves. We've been teaching a class called "programming for biologists" that teaches practical skills that are needed in scientific computing - simple database use, version control, etc. - and we've seen huge demand from students and faculty members in many departments.

</comment></comment><comment><USER41> This is a difficult situation. Is it easier to train the domain experts to be competent programmers or train the competent programmers to be domain experts? In a research environment, I worry there's little time or interest in developing specs that can change in an instant or can't be written until the physics is understood.

We find it quite difficult trying to get programming out of people who don't know why Carbon has 4 bonds while Nitrogen has 3, for example.

<comment><USER22> My feeling is that a one-semester required course for students in "software carpentry" [1] (as developed by Greg Wilson and discussed in the article) would cure many of the most serious ills in scientific software development. Students can't know they should be using version control, debuggers, and testing if they don't even know such things exist.

[1] <http://software-carpentry.org/>

</comment></comment><comment><USER42> I think there are multiple reasons for this problem, and only one of them is a lack of training in software management. Another problem is that science is an inherently exploratory procedure. You design an experiment, gather some data, and then go about analyzing it. You have an idea of what you'll find, but depending on what you get, you might need to then reformat/restructure the data, transform it, cut it up, etc.

The problem is that this represents one of the worst problem cases in software design: evolving requirements. By itself this is bad enough. Recently I have been analysing data from a recent study. You start off with a data structure that you think represents things, but then you notice for example you need to synchronize several recordings; now you have to track time. You realize some recordings need to be split down the middle to aid in synchronization; now you need to add a 'part' field. You derive some value from several data points that takes a long time to compute, so you need to create a file to hold it. This needs to be kept in synch with the original data. Eventually you realize that text files aren't going to cut it; you start moving things to a database. Now you need to reconfigure your visualization program to read from the database. Then you realize that you want to add another similar derivative value, but this time it's a 3x3 matrix for each data point; time to extend the database again. etc.. etc.. Eventually you decide it would be best to really rewrite the codebase because it's becoming impossible to work with. Unfortunately the paper is due soon and you just need to generate a few more graphs..

And I didn't even mention the growing directory of scripts that aren't properly organized into modules, that end up with copy-pasted code because it's not very clear how to cleanly put this into a function, or which module it should belong to.

Now, this is bad enough when you have a CS degree and have designed several software frameworks in your life. Combine this with someone who knows nothing about software architecture and you have a really big problem on your hands. My point is this: it happens to the best of us, no matter how hard you try to organizing things, when you don't have the requirements available ahead of time.

The best approach I've found is to force myself to simply write functions as small as possible, that do one simple thing at a time. I try to break up functions as much as possible for reuse, and avoid copy-pasting code at all costs. Admittedly it's not always easy, sometimes a function that generates a particular graph just needs a certain number of lines of logic, and it's very difficult to modularize. Then you find that you want a similar graph but with a slightly different transformation on the Y axis... etc.. etc..

</comment><comment> cool-RR My approach is to have the scientist write as little code as possible. That's why I'm working on GarlicSim:

<http://garlicsim.org>

GarlicSim's goal is to do all the technical, tedious work involved in writing a simulation while letting the scientist write only the code that's relevant to his field of study.

</comment><comment><USER43> Could be that they are not using the correct language, If they have some domain specific language on top of common lisp for example, they will have much better code with less work, i think

</comment><comment><USER44> Maybe we can do an outreach program? Hackers adopting scientists?

<comment><USER45> I wish this kind of mentoring program would be implemented here (I work in a big research center). Often us programmers end up having to integrate code written by scientists in our apps, and it's a pain. Even a quick glance over the code is often enough to see some problems.

</comment></comment><comment><USER46> This is why partnering is key. I partnered up with a geneticist who understands his subject matter, while I can focus on my subject matter.

The end result was a grant funded by NIH.

</comment><comment><USER47> Incorporate the ability and require the usage of units! Problem partially solved :-)

</comment><comment><USER10> Is there a git client for the unwilling?

I could see that solving some of the issues.

</comment><comment><USER48> I know of a company, made up of scientists from academia, that develops software by writing the code (or "codes" as they call it) in Microsoft Word documents and e-mailing them to eachother.

Some how, they are still in business.

True story.

<comment><USER49> This wouldn't be a healthcare startup in SF, would it?

<comment><USER12> I shudder to think that such a "company" could be developing health-related software.

<comment><USER50> You should see the shit they design pharmaceuticals with.

<comment><USER51> Oh my god yes. As someone who cut their teeth developing software for pharmaceutical research, I can testify that a much of it is absolute crap, by a variety of metrics.</comment></comment></comment></comment></comment>


Design and Evaluation of FPGA-Based Gigabit Ethernet Network Card (2004) [pdf] - <AUTHOR> https://pdfs.semanticscholar.org/8bfe/8988c14703302ebd2d567924b27a5cb10c57.pdf <comment><USER2> This appears to be from 2004, and it uses PCI (a now outdated and unused bus - everything is PCI Express now, which is completely different). However, if you're interested in the low-level details of ethernet interfaces, or how an FPGA design goes from concept to completion, this is very informative.

It's also worth noting - more to the point of the paper - that there are companies offering FPGA-based gigabit NICs right now. You can define custom packet-handling logic in silicon. Pretty neat.

<comment><USER3> > a now outdated and unused bus - everything is PCI Express now, which is > completely different

To be totally fair, the PCI interface is delegated to a sub-FGPA on this design, so it probably wouldn't be that big of a schlep to convert.

> It's also worth noting - more to the point of the paper - that there are > companies offering FPGA-based gigabit NICs right now. You can define custom > packet-handling logic in silicon. Pretty neat.

That existed then too. This paper is about an AVNet board.

</comment></comment><comment><USER4> There is an ongoing project called [https://netfpga.org/](https://netfpga.org/), with several variants up to 100GBit/s.

</comment><comment><USER5> Microsoft uses An FPGA NIC in every Azure server today

<comment><USER6> Here are some links for Project Catapult (Microsoft Research initiative for large scale FPGA deployment in DCs) which includes Project brainwave (TPU competitor):

Landing page: [https://www.microsoft.com/en-us/research/project/project- cat...](https://www.microsoft.com/en-us/research/project/project-catapult/)

Talk: [https://www.youtube.com/watch?v=-NJ- faSklzs](https://www.youtube.com/watch?v=-NJ-faSklzs)

Blog post: [https://blogs.microsoft.com/ai/the_moonshot_that_succeeded/](https://blogs.microsoft.com/ai/the_moonshot_that_succeeded/)</comment></comment>


eBay Sell For Me Program - <AUTHOR> http://sellforme.ebay.com/

<comment><USER2> Seemed awesome until I saw the $40 cutoff, though I can certainly understand why they'd want to avoid having a host of people sell their junk drawers.

</comment><comment><USER3> The title would be so much easier to parse as "eBay Launches 'Sell For Me' Program".</comment>


You Won't Believe That There's A Robot In This Suit - <AUTHOR> http://gizmodo.com/5993787/its-almost-impossible-to-believe-theres-a-robot-in-this-suit-and-not-a-real-human <comment><USER2> I do. It looks like a robot in a suit, it's lifting its legs too high.</comment>


Dell Hosting Hackathon at Burning Man - <AUTHOR> http://i.imgur.com/Hff0C7x.jpg

<comment><USER2> Wow! Corporate sponsorship at Burning Man.. it is truly over.</comment>


The impact of direct air carbon capture on climate change - <AUTHOR> http://cognitivemedium.com/dac-notes <comment><USER2> I'm not sure if this article hammers home the key point: extracting carbon from the air always takes more energy that was gained by burning the fossil fuel to make that carbon. This is inevitable due to the entropy cost of de- mixing CO2 from the air, and from the limited efficiencies of thermal power generation (~33-40% for a coal power plant, perhaps 20% in an internal combustion engine), and limited efficiency of the carbon capture technology.

So it only makes sense to spend energy on sucking CO2 out of the atmosphere, once you've already de-carbonised everything which you possibly can.

Maybe it has a future role (>2050? >2100?) to start using excess low-carbon energy to take CO2 levels back to their pre-industrial level, or to constantly offset hard-to-decarbonise technologies such as air travel.

<comment><USER3> Not objectively true, as plants and even rocks grab CO2 out of the air pretty efficiently. From a thermodynamics standpoint, you can burn fossil fuels at 50-70% efficient (50% is not uncommon), and the actual theoretical lower bound of CO2 direct air capture is ~20 kJ/mol,[0] or about 1.7MJ/kg of elemental carbon, compared to 33MJ/kg for burning elemental carbon (same as high grade coal).

(Burning methane is even better as it releases much more energy per unit CO2 i.e. ~860kJ-per-mole-of-CO2 vs anthracite's ~400kJ.)

And as others have said, rocks actually are able to _exothermally_ absorb CO2 permanently. It's possible to speed this up by grinding rocks to a powder, placing in water with a catalyst.

...none of this is to say I support relying on direct air capture and just go ahead and burn fossil fuels. We need to keep that in the ground and transfer the whole civilization to non-fossil fuels, otherwise if some populist jerks wer elected, they could just order the expensive direct air capture program to stop (can't do that if you're already transitioned to clean energy and all your wellheads and drills and coal mining equipment are rusted or melted down for scrap).

Source: [0] [https://www.researchgate.net/publication/257177020_The_therm...](https://www.researchgate.net/publication/257177020_The_thermodynamics_of_direct_air_capture_of_carbon_dioxide)

<comment><USER4> With solar prices hitting negative rates for some periods in a day capturing carbon and converting into burnable fuel will probably start making sense in the next few years.

<comment><USER5> As long as there's still fossil fuel powered transportation, it would make more sense to use that excess power to charge batteries, since that converts electricity into motion more efficiently than taking the detour through synthetic burnable fuel.

<comment><USER4> Destroying fossil fuel powered transportation then replacing them with electric would actually produce more carbon. All new transportation should be electric but the already running transportation if can be run on captured carbon would result net carbon decrease.

</comment></comment></comment></comment></comment><comment><USER6> Not a word about the most effective, cheapest strategy: reduce emissions?

Most Americans could reduce their emissions by 75% while _improving_ their standard of living by buying less junk, wearing a sweater in the winter, eating more healthy, and other low hanging fruit that will make them more active, healthy, connected to their communities, etc.

Reduce consumption by half. There, I just saved us $300 million.

How is reduction not our top priority and activity??

<comment><USER7> Because it's also the least effective strategy. The reality is getting _nearly_ everyone to change their behavior just isn't gonna happen.

Even if everyone in America went vegan, showered once a day and biked everywhere wouldn't change much with impoverished countries coming out of the third world. If you can't get them to change then it doesn't really matter.

Big problems require big, comprehensive solutions. For that you need government to function effectively regulate, make climate bills countries can stick to.

We already have the tools we need to get climate change turned around but we don't have the _political_ will.

<comment><USER8> Wait. Does the average American shower more than once daily? Is water consumption/heating for showering even a measurable component of GHG emissions?

</comment></comment></comment><comment><USER9> I would have liked to see [https://projectvesta.org/](https://projectvesta.org/) commented on in the article.

They claim to be able to sequester carbon by scattering olivine rock in an active and warm coast. The cost of the rock is $25/ton now, with the prospect of $10/ton in the future. Plus whatever it costs to break it up and scatter it.

That makes it at an interesting price point if it works as advertised.

Even more interesting to me is that the absorption happens in the water. Meaning that it can counteract ocean acidification near the coral reefs that are the most vulnerable.

<comment><USER10> I believe this type of project is referred to as geo-engineering, which is a bit more controversial as it's typically assumed that the side effects are somewhat unknown.

<comment><USER11> They're targeting a pilot within the next 5 years on a single beach, which should help towards figuring what side effects exist.

They also note there exist naturally occurring green sand beaches ([https://en.m.wikipedia.org/wiki/Papakolea_Beach](https://en.m.wikipedia.org/wiki/Papakolea_Beach)), though those are tourist spots and probably haven't been deeply studied.

</comment></comment></comment><comment><USER12> If you're going to continue to burn fossil fuels, it seems better to burn it in a plant that inherently captures the carbon then trying to wrangle it back after it's release. The interesting part of the Allam cycle for power generation is that supercritical co2 is the working fluid for the turbine, and when you burn the fuel it increases the mass in the closed circuit. Both the size and the efficiency of the plant also purportedly improve with the Allam cycle too.

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

[https://www.netpower.com/technology/](https://www.netpower.com/technology/)

<comment><USER13> That would be true, if the power plant has high capacity factor, and if it stationary, and if it is located near a place where the CO2 can be sequestered.

But if you (say) have peaking turbines that are intended to take over when renewables or short term storage are not available, they may have very low capacity factor. It could be economical to have them release the CO2 into the atmosphere, then steadily scrub that CO2 back out again, especially if that scrubbing could be done in a location with extremely cheap solar energy (like, say, Chile).

<comment><USER12> I'm for pursuing both options really. There are likely solution areas where both would be a win. And we really know not enough about the end direct cost of either until sufficient numbers are built out - and we should build out both to at least 10x what the prototypes do. The real problems are governmental policy, and then financial policy to get the attention and scaling going on any of these solutions.

</comment></comment></comment><comment><USER14> Michael Nielsen, the author, also wrote a multi-part intro to neural networks ([http://neuralnetworksanddeeplearning.com](http://neuralnetworksanddeeplearning.com)) which really cleared up for me the inner-workings and mathematics of machine learning quickly but without skimping on details.

I'm very excited to read what he has to say here.

</comment><comment><USER15> I've been interested in these types of technologies lateley.

> _that many people are extremely pessimistic about climate change. They can't > imagine any solution – often, they become mesmerized by what appears to be > an insoluble collective action problem – and fall into fatalistic despair._

More and more, I find this description matches my thoughts on climate change. I'm really beginning to think the problem might require building carbon capture solutions on a huge scale. We might have to engineer our way out, because it doesn't appear we are slowing down emissions fast enough.

<comment><USER16> We are geoengineering already, so we are going to have to deliberately geoengineer our way out of the problem.

<comment><USER15> >we are going to have to deliberately geoengineer our way out of the problem

Agreed, I'm really starting to think this will be the only way.

</comment></comment></comment><comment><USER17> Fast-growing trees, which are then burnt to charcoal (and some energy), which is then put in the soil as biochar. Could be very cheap/low-tech and at the same time improve soils.

<comment><USER18> Or, buried wholesale as part of a Hügelkultur.

<comment><USER17> yes this could be even cheaper, though I'm not sure if perhaps the co2 is released quicker as the trees decompose- charcoal can keep the carbon locked up for centuries.

Either way, these methods greatly improve the land-use efficiency of growing trees for carbon capture/storage, as it is stored in the soil over many years, not only in the living trees. "putting coal back in the ground" as it were.

</comment></comment></comment><comment><USER19> Just plant trees. They're cheap, solar powered, and convert CO2 to building materials.

<comment><USER20> Start by protecting existing forests. We're still losing rainforests ever more rapidly.

<comment><USER19> Planting more trees will reduce pressure to cut down existing forests.

<comment><USER20> In the case of rain forests, they're usually not cleared for the wood, but to open up farmland.

</comment></comment></comment></comment><comment><USER21> OK to shout Eureka when you figure this out:

I have a website where I explore the idea of "not emitting fossil fuel CO2." www.lowco2america.com

Instead of thinking in terms of "cost of extracting CO2" I have sort of stumbled on the idea of "recapitalizing America around social systems that do not emit CO2."

My scheme has a payment of $394 per metric ton of CO2 not emitted. The payment from govt. funds is a prompt no bank account required electronic transfer payment. What it can purchase is a continuing free share of the electricity generated by the workplace parking lot, or an electric car, where the car is free is provided the driver carries 2 or 3 workplace commute riders. The car runs with an average load of 1 driver and 2 or 3 riders. The payment can pay for other things or be redeemed for cash, optionally.

The ancient Chinese Tao Te Ching poem Verse 80 describes a happy society that might sound a little bit like an America that figures out how to live well with 2 mt per person CO2 emissions, maybe in 40 years?

</comment><comment><USER22> I really like the way the author tries to ballpark orders of magnitude and compare against known-budgetary-things for frames of reference. That said, talk of 10/tonne is pure fantasy, the real band is between 100 and 1000, so the analysis here is a full decimal place naive (of course, IMHO).

Just to contribute, another americanized version of the numbers: $100/tonne of a carbon tax works out to about $0.87 per gallon of gasoline. So if you assume carbon engineerings pilot plant estimates turn out to be right but on the high-end, at $232/tonne that's an almost perfect $2/gallon.

Which raises an interesting point to ponder... if anyone were capable of extracting carbon from the atmosphere at under $200/tonne... then all the oil companies would almost instantly switch to only building those plants. Why fight for drilling rights and production share agreement terms when air is everywhere.

</comment><comment><USER21> To rephrase this article: The impact of direct air carbon capture will require enormous input of energy or enormous tonnage of materials such as limestone.

Another approach to reducing the human contribution to atmospheric carbon dioxide is to have each person adopt a low CO2 emission life style.

Just like a massive carbon capture technology, enabling individuals to adopt a low CO2 emission lifestyle is not a free proposition. How much to pay an individual to implement a specific low CO2 life style? Gasoline (the high emission variety 19.6 lb per gallon) at $3.50 a gallon produces a metric ton of CO2 for $393.

More detail at:[https://www.lowco2america.com/2018/10/gasoline-co2-in-air- wh...](https://www.lowco2america.com/2018/10/gasoline-co2-in-air-what-are- some-of.html)

</comment><comment><USER23> It's really nice to even see this discussed, I've been really interested in this topic.

It's true, at some stage we're going to have to reduce the carbon we've already injected into the atmosphere, so why not get started now. It's amazing how little funding this has received.

I'd actually be interested in paying for this like any other utility, as electricity prices get cheaper from renewable energy, I'd be happy to pay a carbon capture bill to survive and breathe cleaner air. I'd also hope this would be a temporary thing as we completely transfer away from fossil fuels.

Pay to clean up some of my own mess,makes sense.

</comment><comment><USER24> I'd like to know the land use requirements of direct air capture technology. Will it use enormous amounts of land? What is currently on that land? Will this entail scalability issues?

<comment><USER25> An estimate I've seen repeatedly is that they'll take about 1/1000 as much land area as the same carbon capture with trees.

</comment></comment><comment><USER26> Very well written and balanced article. Thanks for sharing these insights. Looking forward to another "tiny corner" of your explorations of these technologies!

<comment><AUTHOR> It's not mine but if you're interested in more of the author, follow @michael_nielsen on Twitter.

</comment></comment><comment><USER27> Agriculture can do DAC:

[https://terraton.indigoag.com/](https://terraton.indigoag.com/)

</comment><comment><USER28> Don't vehicles emit other greenhouse gases too? Or would the carbon cover the overwhelming majority of effect?

</comment><comment><USER18> You can do it to the tune of $15/person/year: [https://automicrofarm.com/blog/2019/03/solving-climate- chang...](https://automicrofarm.com/blog/2019/03/solving-climate-change-with- trees.html)

</comment><comment><USER29> Does direct air carbon capture at scale even exist? Is there plausible reason to think it will exist in the next few decades?

The whole article seems like "If nuclear fusion cost $100 per MWHr, but if it only cost $10/MWHr..."

</comment><comment><USER30> We need to stop callin it "climate change" and start calling it "climate crisis".

</comment><comment><USER31> Good analysis, but fails to take into account the storage costs of whatever CO2 is sequestered (or the potential to offset those costs by selling the CO2 to whatever industry uses them).

<comment><USER32> > storage costs of whatever CO2 is sequestered

CO2 is not spent uranium.

<comment><USER33> No, but you do have to keep it somewhere where it won't leak back into the atmosphere again any time soon. Which means deep underground.

</comment></comment></comment><comment><USER34> You know, I'm not sure I really need to hear from any more non-experts thinking out loud anymore. We've had enough of that. I want to hear from experts giving their carefully considered views.

</comment><comment><USER35> If carbon capture is good then why do they encourage composting? Shouldn't we be taking that organic material and burying it somewhere?

<comment><USER36> we should, preferably in shut down coal mines where the carbon came from, but that takes time, money and fuel.

</comment></comment><comment><USER37> Carbon capture is the dumbest and most expensive way to move forward. It would be cheaper to just turn every coal plant into a solar farm then it would be to capture the carbon out of the air so why even bother. Oh yeah, corporate interests.

<comment><USER38> True. Especially if nature already has the best direct carbon capture technology since hundreds millions of years for free: trees!

<comment><USER39> Plants convert at most 2% of incident light into chemical energy, and spend only a fraction of that binding carbon.

Trees are cheap but need a lot of space and water. People are cutting down forests because they want to use the space for something else.

Ocean surface algae also collect solar power and carbon, and there is little demand for ocean surface for other uses. Algae are limited by available trace minerals -- cheap ones.

<comment><USER37> Iron seeding of the oceans to increase producer activity is currently being done but on large enough scales to sequester enough CO2 to make a difference it's basically impossible.

<comment><USER39> Where is it being done, and by whom?

The only one ongoing I know of is Sahara dust being (naturally) blown out to the Atlantic ocean. Otherwise, just talk. Somebody who did an experiment had his results suppressed, crudely, with a false narrative promoted in its place. Why that was seen as necessary, and how it happened, seem even more interesting than the experiment.

</comment></comment></comment></comment></comment><comment><USER40> This argument is so naïve that I had to create an HN account (downvote ready comment for dissing HN commenters). Do note that I am not dissing the author. He did claim a lack of expertise, but I am sad to see the comments trying to analyze the directly presented facts than being detail driven. E.g. I saw some reference to Allum's process of reusing CO2. What it skips is the fact that it barely effects efficiency, but certainly sees that is better than excusing. I still don't understand how $ among is used to measure environmental impact is a relationship people can think is easy measure. Maybe because short term thinking is rewarded better, hence the success of capitalism (I'm not pro/anti, but that's the root of the philosophy). I am assuming that people understand that Carbon capture doesn't resolve environmental changes. It simply offsets a part of it - the global warming aspect. A LOT of impact is straight up coming from pollution/contamination of water and soil, recurring costs of restructuring landscapes, causing earthquakes to floods and terraforming from receding coastlines, destruction of habitats, leading from contaminated species to complete destruction is food sources. The cascading effect of environmental damages is like paying a loan. As humans we are known to be overconfident of "I can fix it". But remind me historically when THAT had worked? Almost in all cases, it had been "I can forget this". Except in this case, I think if we had to expend that sort of money to "solve the problem", then we might as well just find a new planet to squander. In 50 years, we would have spent trillions of dollars unanimously and probably got to Mars

[Edit] typos

</comment><comment><USER41> Would love to know how many Trees/Algea farms/plants generally would need to do the job

Also growing plants and converting to fuel is exceedingly cheap for diesel

And before anyone gets worried about food prices going up.. it takes a surprisingly small amount of land mass to cover currect sneeds in energy, sorry no references no time..

</comment><comment><USER42> Here goes for further downvotes...

The entire edifice of this "human caused climate change" _hypothesis_ rests on the premise that carbon dioxide is /the/ control knob for this planet's temperature.

There is zero proof that this is true. Zero. So if I were you, I'd be very, very cautious before going ahead with capturing CO2, by any method.

It's way too early for this sort of thing. Vastly more research is required before taking a potentially disastrous decision to try to reduce the amount of CO2 - a gas which Earthly vegetation /needs/ in order to survive!

<comment><USER43> Ugh, I shouldn't feed trolls...

1) AGM has hit the gold-standard of proof, it's not an open question at this point, and CO2 is the primary driver along with other GHG [1]

2) What exactly are the "potentially disastrous" consequences of going back to 300ppm, roughly where we were for 10k years?

[1][https://www.reuters.com/article/us-climatechange- temperature...](https://www.reuters.com/article/us-climatechange- temperatures/evidence-for-man-made-global-warming-hits-gold-standard- scientists-idUSKCN1QE1ZU)

<comment><USER42> Being called a troll for questioning a false premise amuses me no end.

Have you ever read any of the other side's information, or do you solely read Reuters and other "CO2 is the demon!" mainstream media sources?

<comment><USER44> Thanks for your comments. A bit of fresh air. Really, I don't think that demonizing CO2 is the objective. Demonizing oil and other petrochemicals seems more likely. I think we are in a CO2 drought -- we know the planet (including corals) had an explosion of life at the 700+ ppm CO2 level.</comment></comment></comment></comment>


Gmail - only about 4% of all Gmail messages get any formatting  - <AUTHOR> https://plus.google.com/u/0/103345707817934461425/posts/Ay1oa4nDXht <comment><USER2> I was quite surprised by the headline, but apparently it's mail _written_ in gmail. Otherwise it's probably 80+ percent, most of it spam.

</comment><comment><USER3> Bullets are the most awesome formatting feature in GMail and now I hate to use two click to do that.</comment>