It's Not What Your Software Does, It's What People Do With Your Software - <AUTHOR> http://www.bluemangolearning.com/blog/2011/04/its-not-what-your-software-does-its-what-people-do-with-your-software/

<comment><USER2> _The features don't matter. It's all about the outcomes. What can people do with your software?_

I've seen software with the opposite problem-- simulation tools applied to problems outside the range they were designed to handle. For example, a tool that idealizes gases in a room as well-mixed, used to analyze smoke movement during a fire. Or a program that assumes ducts have no air leaks, used to estimate energy losses in a duct system. In cases like these, the results aren't total garbage, but they do have to be interpreted very carefully.

For some software, a feature list isn't just "what the software does." It's also a list of warnings about where the results should be taken with a grain of salt.

</comment><comment><USER3> "The creators of Garageband for iPad didn't care about what their software could do. They cared about what people could do with their software."

Aren't they the same thing? Feature lists describe what your software can do, which shapes what people can do with your software.

That GarageBand for iPad is accessible to all might be more to do with the platform than the featureset.

<comment><USER4> How to remove Red-eye in photoshop: <http://graphicssoft.about.com/cs/photoshop/ht/apsredeye.htm>

How to remove Red-eye in Picasa <http://graphicssoft.about.com/od/picasa/ht/redeye.htm>

Both pieces of software can remove redeye. For Picasa the instructions boil down to "Click the Fix Red-eye button" whereas Photoshop involves layers, Gaussian blur, saturation, eye droppers.

Which would you say is more accessible for someone maintaining a photo album? Photoshop has more features, but Picasa is more useful to me (in a certain context, obviously.)

<comment><USER5> Those Photoshop instructions are for older versions of Photoshop. In later versions, there is a "remove redeye" tool that seems to be much easier to use than Picasa's:

[http://help.adobe.com/en_US/photoshop/cs/using/WSfd1234e1c4b...](http://help.adobe.com/en_US/photoshop/cs/using/WSfd1234e1c4b69f30ea53e41001031ab64-7601a.html)

</comment></comment></comment><comment><USER6> It's not what people do. It's what your software does to people.

</comment><comment><USER7> To paraphrase a philosophical statement: "If a Software Feature falls in a forest, and no one is around to use it, is it a Feature?"

</comment><comment><USER8> RockBand is an example of successful application with minimal features. There are many failures that you newer hear about because they lock feature.</comment>


Work on Stuff that Matters: First Principles - <AUTHOR> http://radar.oreilly.com/2009/01/work-on-stuff-that-matters-fir.html <comment><USER2> The article is a revisionist feel-good view of history. He talks about Microsoft's vision of "a computer on every desk", but the reality was that Gates always wanted to make money from the the Traf-o-matic days. I am sure that in the early days O'reilly himself was just as interested in making a buck as he was in publishing Unix books.

Most entrepreneurs have a non-monetary vision of something great that they want to build, but they usually have to keep financial viability right up there in the priorities, otherwise they don't get to play very long.

<comment><USER3> But the two are not mutually exclusive, and many people need more than just money motivating them in order to stay in for the long haul.

<comment><USER2> I agree. I think most entrepreneurs are motivated more by their vision than by immediate rewards. My point is that, if you want a successful company, you need to keep the financial side in focus too. Gates, Jobs, and Ellison had the business focus from the beginning.

OTOH if the monetary side is of little or no consequence, the Open Source community is the way to go. Make what you believe in and share it. And the web allows a sideline to lead to riches depending on how the wind blows.

</comment></comment></comment><comment><USER4> The publishers of "Deck" recording software on old MacOS Powermacs used to say "Consume the minimum, produce the maximum."

I think that's good advice for anyone. It's good advice for any nation in times like this.

</comment><comment><USER5> I love that gas station analogy, but I have to say it is a bit hard to swallow. One might spend 5 minutes at a gas station for every 5 hours on the road. If I could work 3 weeks a year and make enough to pay for rent and food for the other 49 I wouldn't care too much about money either.

</comment><comment><USER6> Based on the quality of books O'Reilly publishes, it's hard to view him as worthy of giving this advice.

<comment><USER7> Many would say O'Reilly books are good or great. How did you come to your opinion?

<comment><USER6> I own a few. I also own some from Addison Wesley, Prentice Hall, Morgan Kaufmann, etc. For example, "XML Schema" by van der Vlist is just incomprehensible (I don't understand how it got passed the editor). Plus the author is by no means an expert in XML Schema. That's actually the gist of the problem with O'Reilly books: they are written by non-experts and the editorial work is poor.

<comment><USER7> Your sample size sounds small, given the collection of books O'Reilly has. Regardless, even idiots can say wise things (perhaps accidentally). So, your initial complaint amounts to an ad hominem attack. Do you have a problem with the post, itself?

<comment><USER6> You mean, it is ok for a publisher to release poor quality books now and again as long as the average stays good enough? I feel that people with this kind of approach are not worthy of giving this kind of advice. So I didn't read the post itself.

<comment><USER8> _You mean, it is ok for a publisher to release poor quality books now and again as long as the average stays good enough?_

Yes. I doubt there is another way.

Do you know how tech book publishing works? It's not fiction publishing -- publishers aren't deluged with a large pool of manuscripts from which they can pick out the best ones. The financial incentives are very poor: Unless they target a very broad audience ( _see_ : David Pogue) tech book authors don't make enough royalty money to reimburse them for their time. So publishers must approach potential authors in advance, woo them, and sign them to book- publishing contracts before the books are written. Since they can't offer enough money, the publishers must approach people who have other incentives -- e.g. existing experts or inventors who want to promote themselves or their tools. Unfortunately, the skills required to become an expert in something like XML are not necessarily correlated with the skills required to write a good book about it. And, of course, it can be hard to identify an expert in advance. And it's often better to hire a lesser writer, or a lesser expert, than to have _no_ book on a particular topic in your product line.

Once a book is delivered ( _if_ the book is delivered -- a lot of authors burn out in the process), the publisher can work with the author to edit it, but the option of rejecting the manuscript is probably difficult and expensive and politically nasty. So, once written, I suspect that a tech book tends to be published. Might as well let the reviewers and the public do the dirty work of deciding that it's bad. Particularly since there are many subspecialties where a badly-written book is far better than no book at all.</comment></comment></comment></comment></comment></comment>


Do companies have intellectual property rights to my spare time projects? - <AUTHOR> http://answers.onstartups.com/questions/19422

<comment><USER2> On that same note, all the contracts I've signed say that they own anything that relates to their core business, whenever I create it, and that makes sense to me.

So I just don't create things in my free time that relate to my day job's core business. And I think that's fair, as they pay me handsomely for all my time and ideas that apply.

Luckily, my hobby interests lie in a different realm than my day jobs usually do, so it shouldn't ever be a problem. Oddly enough, in my interview, they asked me if I was interested in the business. I told them I wasn't really, but I love programming. That turned out to be better for me than I expected. Hehe.

<comment><USER3> That's how I understand how the California law works. If it's not related to your company's core business (which gets into legit IP issues most especially trade secrets) what you do on your own time with your own resources is yours, full stop.

<comment><USER4> Even if you're under the California law, be very careful that the two work- worlds never overlap. And, keep very good dated records.

</comment></comment></comment><comment><USER5> Short answer: in California, no, and given the extent of the CA tech industry and the reach of its boilerplate, ypu might be pleased to see that the clause from Cali is in your contract in Georgia.

<comment><USER6> Georgia used to have very strenuous assignment/non-compete rules (your entire contract was thrown out if there was any wrong clause in the non-compete, therefore companies were careful to not over-reach). I'm saddened we happened to amend the constitution of the state to allow the non-California style "take it to court and let judges alter crap ex post facto"</comment></comment>


If you're going to do good science, release the computer code too - <AUTHOR> http://www.guardian.co.uk/technology/2010/feb/05/science-climate-emails-code-release <comment><USER2> I am not surprised that people find errors in code written by researchers and grad students who have little training in software development and, perhaps more importantly, are doing so in a culture which values them writing papers, not good code. (See for example <http://lanl.arxiv.org/abs/0903.3971> for a discussion of this situation in astronomy/astrophysics.)

I find it much more surprising that professionally developed software used for scientific research is also error ridden. And while it might be difficult to convince individual researchers to release their code, that's nothing compared to the difficulties of convincing Wolfram research to release the source code to Mathematica...

But I do think that research is somewhat undeservedly singled out for this, just _because_ some academic software is open for inspection. Like the article mentions, it certainly seems like the financial software has caused a lot of badness. How about flight control software used by NASA that crashed the Mars orbiter? Who knows how many innocent lives have been lost due to software errors in military systems like UAVs and missiles. Maybe none, but we can't know because it's all secret. Shouldn't they be required to show their code, too?

<comment><USER3> But the military and NASA don't claim to be generating reproducible knowledge through the use of their code. In particular, the military doesn't WANT other people to be able to reproduce what their code does. Also, there is a difference between operational code (code that runs a physical object like a lander or a UAV) and analytical code. NASA makes some of their code available here: <http://opensource.arc.nasa.gov>

<comment><USER2> Cool, I didn't know about the NASA open source project.

You are right that knowledge production isn't the purpose of those other entities, of course. However, in my mind the purpose is less important than the outcome -- why is it more harmful to society if scientists produce a flawed scientific result than if the military kills innocents or the financial sector brings on a market crash because of flawed models? They all hurt society and could all benefit from more scrutiny. I admit the military case is a stretch, but certainly the financial sector seems like a relevant example.

</comment></comment></comment><comment><USER4> If science is to remain science, and not devolve into mysticism, data and computer models must be available to other researchers in order to repeat experiments and provide knowledgeable criticism. Calling anything "settled science" which is not openly available to all researchers is not scientific.

<comment><USER5> I have no beef with open audits of published science that is used in decisions of economic consequence.

But I would only add that sometimes you learn a lot more from trying to reproduce a result without the code/schematics of the original experiment. If you implement it yourself and get a different answer, you should publish it and not bias yourself by paying too much attention to the original authors interpretation. As long as you can justify your methods you should be fine.

Also, I feel that it's a lot more fun to design an experiment knowing that it's possible than it is to merely copy someone else's published procedure. A month in the lab spares you a day in the library!

</comment></comment><comment><USER6> A sound idea.

While I can imagine any number of reasons people might post facto not wish to release code, if it were developed from the start with the intention of releasing it, I think we'd all benefit.

Inevitably, the cost of doing so would increase the cost of the research, but I believe it would be worth it.

<comment><USER7> > Inevitably, the cost of doing so would increase the cost of the research, > but I believe it would be worth it.

I'm not convinced that it would increase costs.

I'll bet that there's a lot of reinvented code in science. If every project released their code, new projects would start reusing code from current projects. In some cases, that sharing and reuse would reduce costs.

<comment><USER8> I have seen code reinvention in my career a number of times. In one instance, I was actually asked to code up a method where the code and method had been published in a scientific journal. When I asked why I should implement this on my own, instead of using code developed by the group who published the method, I was told, "Because you can't trust anyone else's code. It's better to write everything from scratch so you know it's _right_ ".

I don't personally have the hubris to think I can code up a method better than the people who invented it in the first place. That aside, it's just so wasteful.

So instead of spending time on novel work _we_ were doing, I spent a month implementing a half-baked version of something _other_ people had done.

<comment><USER9> As silly as the explanation was, there is actually a good reason to re- implement. And that is that if nobody does, then any bug in the original code will survive to cause problems with nobody knows how many results before anyone catches the bug.

Reimplementing from scratch then comparing with the original gives an opportunity to find such bugs.

<comment><USER10> Yes, but such arguments apply at different levels of abstraction.

I doubt one would rewrite the OS, compiler or runtime libraries because they couldn't be trusted; though all these can also have bugs.

<comment><USER9> One would probably not rewrite them. However people both can and do take their software and run it on a different operating system, compiled with a different compiler, linked with different run-time libraries, on a different type of hardware. And yes, I've seen bad software assumptions flushed out by doing so. (Don't use floating point for complex financial calculations please. OK??)

</comment></comment></comment></comment></comment></comment><comment><USER11> It's surprising how few Computer Science papers release code as well. I don't care if it's platform-specific and it requires ridiculous numbers of obscure libraries and only operates on proprietary data that you can't release. I don't care, I want the code to be open-source. I want to see what you did, and whether I believe that it does what you claim it does in the paper.

Where possible, I open-source everything I try to be published. There's only one project I haven't (a scraper for the WoW Armory), but even then I released the library I built for it.

There's no excuse to not do so. Unless you have something to hide.

<comment><USER2> _There's no excuse to not do so. Unless you have something to hide._

Not true, for the same reason that commercial ventures don't like to release source code even if they don't have something to hide.

Having a capable computer code can be a substantial competitive advantage and make it possible to do studies no one else can. While this is less than desirable from the standpoint of science, it's perfectly understandable given the career pressures that individual scientists operate under.

<comment><USER12> This creates a conflict of interests though. Is the research legit or has it been "enhanced" to help a business venture the researcher has in the works?

<comment><USER2> Oh, for sure. But I wasn't even talking about any business ventures (those are rare in astrophysics...) but more about keeping your code under wraps to prevent others from benefiting from your hard work. Especially, when (as I said in another post), code development is not especially beneficial for your career.

Though it's hard to find a situation where people don't have a (short-term) incentive to make their work _look_ good. One can hope it will catch up with them in the long run, but more likely by then they have a new job (and, in academics, tenure) that will never hear about their past shoddy work.

<comment><USER9> The solution is to make peer reviewed code produced for a paper be considered equivalent to a paper in tenure decisions. And for all papers in peer reviewed journals that do computer analysis to be backed up by peer reviewed, published code.

That makes code development beneficial for your career, gives an incentive to not keep it under wraps, improves quality, and is likely to reduce the number of published incorrect results.

Of course that is a pipe dream at this point, but what's wrong with dreaming?

</comment></comment></comment></comment></comment><comment><USER13> Finally. Finally a discussion about this.

<comment><USER14> Enough with the false melodrama, please. Aside from the fact that your comment is content-free and inane, scientists have been discussing this subject since computer simulation first became a part of science. A lot of scientists _do_ share their code (I'm one of them, and I believe in sharing code). But there are good arguments on the other side. Among them:

1) Papers describe methods in enough detail to reproduce them. If they don't, there's a _serious_ problem.

2) Independent lines of verification. If simulation code becomes a reference, it's inevitable that the same bugs/bad assumptions will contaminate an entire field. Independent re-implementation of the same algorithms is a strong hedge against this phenomenon (even if it means that there are more bugs overall).

3) Money. A lot of scientists fund their research in part through licensing of implementations of their algorithms. I don't like it, but until someone gets around to repealing Bayh-Dole (a _real_ scientific travesty, IMO), this is going to continue to be a problem.

In short, what you really meant to say was that finally someone wrote a _newspaper article_ about this subject. It's not a new discussion.

<comment><USER15> Closed academic publishing is intellectually bankrupt, and is probably one of the greatest problems effecting research today. People don't share code, and put a paywall between themselves and the public. There are open journals, but they are rarely as prestigious, and so are not as valuable to those seeking tenure. These academics put tenure before fruitful scientific discussion.

<comment><USER2> So would you rather people publish in "low-impact" journals and then leave science completely because they can't get a permanent job?

"Intellectually bankrupt" is a pretty strong term to use for people who work for a small fraction of the amount of money normally talked about on this site.

I'm not saying there aren't issues, but blaming the individuals who are trying to make a living by doing science isn't going to help. The success rate of getting permanent jobs in science might be higher than that of startups, but the "payoff" is a small fraction.

<comment><USER15> I have not left science completely: I've made my own job. It is possible but it is only made harder because of the closed system.

There are many of us who've left academia and still do science. We're generally maligned, and removed from the ability to even participate in a discussion due to a variety of academic access restrictions, and why?

What's more, day by day people are showing how to achieve scientific credibility and influence through their blogs and paper hosting services like ArXiv or, as Michael Nielsen points out, open journals like PLoS Biology. The majority of scientists still bow to tenure pressure, and frankly I don't understand why. There are other opportunities if you want to gain status, and one doesn't even have to gain traditional academic status if one wants to do real science. There are other options.

<comment><USER2> Which academic access restrictions are you talking about? I know people who have started independent "institutes" but the only reason you need to do so is to receive federal funding. It's true that if you brand yourself as an "independent researcher", people might be inclined to think you are a crackpot, but publishing real papers should take care of that.

I'm not sure blogs are a relevant source for scientific studies though. Not necessarily because I think peer review is the greatest system, but having your paper published in an actual journal (open journals are fine) at least means you managed to convince a few other people that it's worth looking at the paper.

</comment></comment></comment></comment></comment></comment><comment><USER16> There are a few examples of how this can be done. One of them is Mathematical Programming Computation (MPC), a journal where articles submitted must be accompanied by the source code that was used to produce the results. The article is peer-reviewed, and the code submitted is tested by "technical editors" to verify that the results are correct. See <http://mpc.zib.de>

</comment><comment><USER17> Opening the source for research software is absolutely vital to the concept of reproduceability. However, this fact of the level of programming training for most scientists is a major issue. A lot of novice programmers tend to fall into a trap of "it runs without error, it must be right." Even expert programmers struggle with verifying that their results are correct; technically, program verification is a mathematical impossibility. So it's a daunting task to start with, reproducing results of software-based research.

This is only compounded by the fact that reading source code sucks. Source code is an end result of multiple processes that occur in feedback loops. With just the source code, you never see _how_ the code got that way. It's like showing someone a maze with the start and end points marked but the middle of the map blocked out.

Different programmer's conceptions of what constitutes good code varies widely. One man's golden code is another's garbage. Just because the source code is available doesn't mean anyone is going to understand it or be able to work with it effectively.

Compounding this all is the fact that few people are going to _want_ to read the source code. Analyzing source code is dull work, maybe the worst job a programmer can take while still doing programming. Most programmers are far happier to discard old code and start from scratch. This is often a bad idea and doesn't lead to a better product, but at least you don't want to kill yourself while you're doing it.

When it comes to reproducing algorithmic results, I would prefer having a description of the algorithm, a set of inputs, and a set of outputs. I would then write the actual code myself and see if I get the same results. This, I think, is much closer to the concept of reproducing lab results in the physical sciences. You wouldn't use the same exact particle accelerators if you were verifying the results from a paper on nuclear physics. I'm afraid having access to the raw source code will be used as a crutch where logic errors are missed from reusing portions of code without much thought about the consequences. Take, for instance, the subtle differences in implementations of the modulo operator across programming languages: <http://en.wikipedia.org/wiki/Modulo_operator#Common_pitfalls>

It would be great if scientific software were open. Unfortunately, it won't matter a lick if it is.

</comment><comment><USER18> Yes, tell me about it: [http://www.jgc.org/blog/2010/02/something-odd-in- crutem3-sta...](http://www.jgc.org/blog/2010/02/something-odd-in- crutem3-station-errors.html)

</comment><comment><USER19> I might be alone in this, but this seems like a symptom of the problems of IP laws.

<comment><USER20> One problem with IP laws is that to fully enforce them you need a police state.

I don't know precisely what you are thinking, but my view is that the IP framework should be: For a published work to be eligible for copyright, source code must be published. Something like a cross between github and the library of congress.

Publishing source code does not currently relinquish all rights. This would add greatly to our societies store of knowledge and would help prevent the IP theft in the code of published works.

<comment><USER19> This is sort of what I was getting at. I agree that releasing source code shouldn't be a matter of giving up property rights. In fact, plenty of commercial systems and software do allow source code access. However, it always seems to be through messy licenses and cumbersome legal agreements to not divulge anything.

As it stands, companies seem more motivated to protect their IP rights than to produce tools that would keep science reliable. IMHO, companies view source code as the product of their investments and secrets worth protecting. The main fear seems to be that if these secrets are published competition could use them against them by receiving a boost in their own R&D efforts by deriving methods and processes from their own work.

This doesn't seem like just a software problem since I've heard wetware horror stories from biotech and agriculture folks.

It honestly makes me wonder if software should be something you can patent. At some level, it seems disturbingly similar to companies that patent colors, genes, or derived living organisms.

</comment></comment></comment><comment><USER21> The title contains the reason on why we created Fiji (<http://pacific.mpi- cbg.de>): so that instead of releasing a Matlab script without documentation on its many parameters and exact Matlab version used, as a print out (or nowadays, downloadable .m file as supplementary material), we could offer instead a ready-downloadable, version-controlled and fully working program.

A colleague of mine made similar remarks recently:

"... if you can't see the code of a piece of ... software, then you cannot say what the software really does, and this is not scientific."</comment>


Putting Love to the Stress Test - <AUTHOR> http://www.nytimes.com/2016/05/29/fashion/modern-love-tech-relationship-trial.html <comment><USER2> This is disturbing and beautiful. My current Fiance and I followed a very similar pattern. All of my prior relationships would start out with all the "good" things. Chemistry, curiosity, etc. etc. but all eventually failed due to fundamental compatibility. It was never "I can't believe you, I'm walking out on you, drama drama" It was more I want A with my life and you want B. Full stop.

This one, we knew each other for a long time, so instead of doing all the fancy stuff, we just downloaded a spreadsheet with X questions to ask before getting married, blind answered and then merged them. The disturbing similarities between them gave us confidence. And then we built the passion, chemistry, curiosity on purpose. And it worked. Marriage used to be about utility. We no longer need it for survival, but it should definitely be practical.

<comment><USER3> >we just downloaded a spreadsheet with X questions

If you don't mind me asking, from where did you get this spreadsheet?

<comment><USER2> Made it: [http://www.connact.com/~hom/blog/276questions.htm](http://www.connact.com/~hom/blog/276questions.htm)

<comment><USER4> 277\. Current list of OCD medications, if any

:)

</comment></comment></comment></comment><comment><USER5> Of course, you also have to keep in consideration that people change, as do their priorities, environments, circumstances and dreams.

<comment><USER6> Yes, changing requirements, scope creep etc.

</comment></comment><comment><USER7> > And we married 12 months later.

Nobody's perfect, I' guess.</comment>


Ask HN: Do you feel like you live in the future? - <AUTHOR> I was walking through the parking lot at work and a car moves silently past me, and I got the feeling that I am in the future with everyone walking around with computer screens in their hands and cars with mysterious propulsion. <comment><USER2> I sometimes feel like I'm living in the world of the movie Brazil, a nightmare of bureaucracy and thuggish government with sprinklings of technological toys. Artisanal bread and a circus in our pockets.

<comment><AUTHOR> I have never watch Brazil. Is it worth my time?

<comment><USER2> Yes. It's a warning about 2015, from 1985. [https://en.wikipedia.org/wiki/Brazil_%281985_film%29](https://en.wikipedia.org/wiki/Brazil_%281985_film%29)

<comment><AUTHOR> Awesome, I will check that out tonight in-between viewing lectures.

</comment></comment></comment></comment><comment><USER3>
      "We eat in restaurants, buy branded toiletries, build
      skyscrapers, create legislative institutions, travel in
      flying machines, write poetry, and search for meaning in
      relationships, temples, and scientific books. Humans have
      discovered antibiotics, sent probes into space, decimated
      rainforests, shared a billion views of clips of kitten
      behaviour, and decoded their own genomes.

      But there is one thing that humans have singularly failed
      to do, and that is to properly understand their own behaviour. "

      — Robert Aunger and Valerie Curtis:
      Gaining Control: How human behavior evolved

      The Thirties had seen the first generation of American
      industrial designers; until the Thirties, all pencil
      sharpeners had looked like pencil sharpeners; your basic
      Victorian mechanism, perhaps with a curlicue of
      decorative trim. After the advent of the designers, some
      pencil sharpeners looked as though they'd been put
      together in wind tunnels. For the most part, the change
      was only skin-deep; under the streamlined chrome shell,
      you'd find the same Victorian mechanism. Which made a
      certain kind of sense, because the most successful
      American designers had been recruited from the ranks of
      Broadway theater designers. It was all a stage set, a
      series of elaborate props for playing at living in the
      future.
      - William Gibson

</comment><comment><USER4> Yeah, here are some of my observations on it...

Artifical skylight: [http://twistedsifter.com/2015/02/scientists-develop- artifici...](http://twistedsifter.com/2015/02/scientists-develop-artificial- skylight-that-mimics-natural-light/)

Self Driving Cars [http://www.extremetech.com/tag/self-driving- cars](http://www.extremetech.com/tag/self-driving-cars)

Hololens [http://www.theverge.com/2015/1/21/7868251/microsoft- hololens...](http://www.theverge.com/2015/1/21/7868251/microsoft-hololens- hologram-hands-on-experience)

Wikipedia/Google - look up just about anything within seconds

Siri/speech interface multi lingual live translation

Commercial space projects - Virgin Galactic, Blue Origin, SpaceX

Self driving cars, Electric Cars, drones, etc... list is growing.

</comment><comment><USER5> No, future is when your body is just a replaceable peripheral device. Everything is progressing so slowly at the moment :(.

<comment><AUTHOR> Going towards Deus Ex are we?

</comment></comment><comment><USER6> There are a few things that I thought we would (should) have in the mainstream based on science encyclopedias of long ago:

1\. Spaceplane - this was a big thing a while back and is no longer talkeda bout. Military needs are what drove the technology for airliners, and there is no longer a need for aircraft crews. So they built missile-like X planes instead.

2\. Ocean thermal energy conversion - Is a big tower that sits in the ocean and grabs energy from the differences in water temp. This was on the cover of one of those kid's future science books. It hasn't been built that I know of.

3\. Robotic crop harvesting - I don't think these are here yet

4\. Bipedal robots - I think we are almost there but again, there are more practical designs for military purposes.

5\. Robotic surgery, tele-presence surgery - not sure if this is a thing yet.

<comment><USER7> > 2\. Ocean thermal energy conversion - Is a big tower that sits in the ocean > and grabs energy from the differences in water temp. This was on the cover > of one of those kid's future science books. It hasn't been built that I know > of.

There are demonstration units in existence, but other forms of energy are still too cheap for now.

> 3\. Robotic crop harvesting - I don't think these are here yet

There are tech school programs for GPS controlled combines in the Midwest. Its been around for about 10 years.

> 4\. Bipedal robots - I think we are almost there but again, there are more > practical designs for military purposes.

Boston dynamics has this nailed down. Google acquired them last year, along with 9 other major robotics firms, and are slowly discontinuing certain military contracts if I understand correctly.

> 5\. Robotic surgery, tele-presence surgery - not sure if this is a thing > yet.

This already exists. In fact, there was a TED talk in 2013 regarding a telesurgical robot that gave haptic feedback with approximate pressures of that area. Can't recall the presenter's name.

</comment></comment><comment><USER8> A text I sent to a friend a few months ago:

"On shift on 5th and mission. A bus goes by with an ad: WHAT IF THE INTERNET WAS FOR YOU? Mobile phones everywhere. I read this on MY mobile phone: [http://popehat.com/2013/12/06/nock-hoon-etc-for-non- vulcans-...](http://popehat.com/2013/12/06/nock-hoon-etc-for-non-vulcans-why- urbit-matters/) All this while working as a contractor electronic valet. Feels like a Stephenson novel."

</comment><comment><USER9> Yep, even when I'm using my "old" iPhone 4S. It's an amazing piece of technology, and weird to think that it's so dated now.

<comment><AUTHOR> An iPhone4S is old? I don't even know the differences on iPhones. I still have an old tracfone which I can only call/text from.

I can not have electronics with me at my workplace, so for 8 hours of the day I would not have it on me. Beyond that if I a home I have a computer and if I am out of the house I am actively doing something so I see no need for smartphones.

<comment><USER9> It was released in October 2011, so it's almost 4 years old now. Still going strong, and runs the latest version of iOS (8), but it does feel a bit slow. The screen also feels a bit small, especially compared to my wife's iPhone 6.

No electronics at your workplace? That's an interesting policy. Is it something to do with security, or they just want you to focus on work?

Here's why I love having a smartphone. It's changed the way I:

* take notes (Evernote) and make todo lists (Wunderlist)

* communicate with friends & family (WhatsApp, Messenger), and teammates (Slack)

* get directions (Google Maps, Maps.me)

* manage travel and accommodation (Uber, AirBnb)

* translate conversations and menus overseas (Google Translate, WordLens)

* learn new languages (DuoLingo)

* take photos and videos - which are automatically synced and backed up on iCloud

* secure my online services (Google Authenticator, LastPass)

* manage my finances on demand (online banking apps)

* track my health and fitness (MyFitnessPal and Moves)

Not to mention the fact that I'm currently working on my startup's smartphone app.

</comment></comment></comment><comment><USER10> You can't strike up a conversation in public any more. Everyone is too occupied with their electronics.

You don't get to talk to a human when you call a business - at least, not without great effort. You don't at the grocery store either - self checkout.

Daily life has dramatically de-humanized. Yeah, it feels like I live in the future, but I don't like this part of it.

</comment><comment><USER11> Future was when I watched Steve Jobs flick his finger to scroll through contacts when he was introducing the first iphone. Prior to that I always felt scrolling through 200+ contacts on my sony ericsson phone was unnecessarily hard. It has been almost 8 years since and I can distinctly remember the awe on my face.

I am living in the future ever since.

<comment><USER12> Just...wow: [https://www.youtube.com/watch?v=vN4U5FqrOdQ](https://www.youtube.com/watch?v=vN4U5FqrOdQ)

</comment></comment><comment><USER13> I feel like I live in 1984. Not sure if this is what future supposed to be like.

</comment><comment><USER14> Sometimes it feels like a dumbed down version of the future I expected as a child just a few decades ago, a lot of extremely cool technological improvements but the human race has not improved much.

</comment><comment><USER15> The only thing that makes me feel this way is that 2020 is only 5 years away and Los Angeles 2013 took place 2 years ago...

</comment><comment><USER16> After reading William Gibson: yes.</comment>


Germany is pressuring Neocities to censor a disclosure of their censorship - <AUTHOR> http://neocities.org/blog/german-censorship <comment><USER2> It's interesting the German government publishes this list publicly in it's hashed form, but when someone reverses it they deem it illegal.

Is there any legal basis to this?

If I publish a list in pig-latin, can I deem it illegal to translate that into English?

If I publish something in 8-bit ASCII, can I deem it illegal to "translate" that into English?

How far does it go?

<comment><USER3> IANAL, but many European countries have something called "Database copyright" (see [https://en.wikipedia.org/wiki/Copyright_law_of_the_European_...](https://en.wikipedia.org/wiki/Copyright_law_of_the_European_Union#Database_rights)). Basically if you build a database of something you can get a copyright for the database as a whole, even if there's no copyright for the individual items. I wouldn't surprise me if the German government claims that their list falls under these database copyright laws. But even if that's the case there would still be the question how copyright treaties affect such a copyright and if this copyright is enforcable in the United States.

<comment><USER4> Hm. Would that still apply given that - if I read this right - the list of hashes are distributed publicly?

<comment><USER3> What is the license under which those hashes are distributed? Just because something is distributed publicly doesn't mean it can be legally redistributed.

<comment><USER2> Then don't redistribute it, just distribute the step-by-step directions required to reverse it [1] (as is done on a site linked by the original article)

[1] - of course, directions could be just source that does it for you, a la DeCSS

</comment></comment></comment></comment></comment><comment><USER5> Here is the censored plaintext list: [http://pastebin.com/NgZRSJ54](http://pastebin.com/NgZRSJ54)

And here is a zip of the neocities site, including the censored lists: [http://pomf.se/dbhmba.zip](http://pomf.se/dbhmba.zip)

<comment><USER6> > 01c62dc977afbbe6e5f3367cbe178d91 tag/anders-breivik

> 032136816da36d1cd24f67eb8d404ea2 schuelercd

> 034bf0787b9eaca0a73110b0e0250c59 news/96/62/Srebrenica---Die-Buehne-des- > Genozid

> 0666f0acdeed38d4cd9084ade1739498 fp

> 068b3740462938d378ffcb768714a366 video/view/

Not sure what's going on here.

Interesting to see Breivik listed though among all the porn.

</comment></comment><comment><USER7> In contrast, the Italian site of censored sites (DNS domains) is public.

The bad thing is that it is "published" as a series of faxes to ISPs. Luckily those have been digitalized and put in a database: [http://censura.bofh.it/](http://censura.bofh.it/) [http://censura.bofh.it/elenchi.html](http://censura.bofh.it/elenchi.html)

</comment><comment><USER8> This article does a poor job at explaining the situation.

This is about a group of lists called index. They're created by the BPjM (Federal Department for Media Harmful to Young Persons). They're kind of the strictest level of an age rating.

You're still allowed to publish the stuff to people that are over 18 years old. However you're also only allowed to advertise to people over 18 year old. There are lists where they suspect it's actually illegal to publish (child porn, porn with animals, hate crime like the game KZ Tycoon, ...), however it's up to the courts to decide if it is illegal if someone publishes this stuff.

So what does this mean for websites? You can still go to them if you type in the addresses, there's no DNS blocking or something else in place. Links to those websites however are considered as advertisement and thus not allowed for websites reachable by minors. This is the reason the list of URL's is separate from the other lists and is kept secret.

Also note, that websites doing a real age check (not just clicking yes I'm 18) shouldn't be on the list.

<comment><USER9> What they desperately try to prevent (since about forever) is that the index becomes a "shopping list" among minors.

The offline index was effective while being locked up in their office or other places where age controls can be ensured: publishers and stores mostly try to avoid the fines that they get for advertising index-material "to the youth" (ie. outside adult-only areas).

The online index needs to be installed to routers to be effective and thus have to leave the BPjM's control. That's why they veiled it, and why they're now so furious that the descrambled list is available on the net (and in the news, too).

</comment></comment><comment><USER10> To make it clear: these sites are not blocked, you can still acess them. They just don't turn up when you search 'sick forbidden sex with animals' on search engines.

How far does censorship go? Where does 'protecting our kids' start? Some of these sites contain stuff that is clearly illegal here in Germany. Is prohibiting something always 'censorship'? I'd say no, it is a matter of fine adjustment which has to be carefully established and controlled.

<comment><USER11> Prohibiting or limiting access to information is _always_ censorship. Censorship of third-party information by governments is universally wrong. If you want to protect your children from certain types of information via censorship, that's not necessarily wrong, but it's entirely your own responsibility.

There would be absolutely nothing wrong with this censorship list if maintained by a private entity and voluntarily applied by individuals to their own Internet connections.

<comment><USER12> You believe that censorship by governments is universally wrong, but that view is not universal. German laws have been oriented to allow censorship since the allied occupation of West Germany. It is perfectly legal by German law as it is practiced where there is no contradiction with civil or European law.

The German populace was generally supportive of this censorship in the post- war period to mend the ideological rifts that drove society apart in the early part of the cold war. While views are certainly changing in the "information age," if the German populace changes its views on censorship then it needs only to change its own laws.

<comment><USER13> There's legal, and there's moral. The two sets are not coterminous.

<comment><USER12> True. We shape laws to approximate a vision of what should be moral. As views of morality change, the laws often fail to keep pace.

</comment></comment></comment></comment></comment><comment><USER14> If you go through the list, 99% of them are porn sites.

However there are some glaring exceptions I saw:

DailyMotion, a popular YouTube competitor with more lax content rules.

main.htm - Not sure what this accomplishes!

Ogrish - A shock site dedicated to gore and other types of extreme content.

A relative link to a page which appears to be on a torrent site where you can download an Xbox game.

And quite a few neo-Nazi or nazi sympathasizing sites (e.g. [http://ihr.org](http://ihr.org)). Germany has banned all literature and symbols promoting national socialism, but the sites in this list are certainly not exhaustive.

</comment><comment><USER15> Secret censorship list, just like one whe got in Finland.

<comment><USER6> But that's a DNS blocker I assume, which is used in many countries. ISPs use them "voluntarily"...

</comment></comment><comment><USER16> It just goes to show: You can cargo cult ban anything with a swastika on it, but if you can't change the culture, the Naziism remains in the hearts of your government officials.

And remember that it was the refusal of major Weimar parties to allow any discussion of aggressive reform and relief measures that lead to the rise of German Nazi and Communist parties in the 1930s. It's all self-inflicted wounds from the fundamentally illiberal ruling intellectual and bureaucratic class of the country.

And when the next downturn with a murderous evil dictatorship moves in, which country is ready to prevent you from even discussing it? That country is just asking for it to happen again.

<comment><USER10> [https://en.wikipedia.org/wiki/Godwin%27s_law](https://en.wikipedia.org/wiki/Godwin%27s_law)

<comment><USER17> Is hardly out of context with the article being commented on.

 _" You don't get rid of history by blacklisting people from viewing it, you don't convince people that Nazis are bad by, literally, stooping to their level and censoring (okay, I went there). And, as this leak clearly proves, it doesn't work anyways."_

<comment><USER10> Please show me how this first post makes any point in the discussion.

<comment><USER17> It is a follow up to a position taken in the article.

It is slightly heavy handed maybe, but the idea that a society through fear of its own past may create the tools that allows for a repeat of the very thing it is trying to avoid, is clearly a reasonable concern.

The fact that we happen to be discussing Germany, doesn't suddenly stop you from being allowed to make historical comparisons.</comment></comment></comment></comment></comment>


Google Map now supported Moon and Mars - <AUTHOR> https://www.google.com/maps/space/moon

<comment><USER2> No search? No traffic? Pshaw!</comment>


Open-source Flash Game Engine Now In Open Beta - <AUTHOR> http://gigaom.com/2009/03/28/pushbutton-open-source-flash-game-engine/ <comment><USER2> I downloaded it and what I saw was the very empty beginnings of a game engine.

Edit: Also, the documentation persistently says "it's very simple to ---" and then dumps a code example on you without actually explaining the concept.

</comment><comment><USER3> _"Capable of building real multiplayer games - RTS, FPS, racing, platformers, multiplayer Tower Defense, and more."_

But Flash doesn't have UDP packets, right? Is it nowadays practical to do synchronous games without it?

</comment><comment><USER4> This appears to be Flex based, which seems to be an instant ~300k SWF baseline.

Anyone have a read on how much space this framework takes up?

<comment><USER5> The Flex ~300k SWF baseline includes the Flex framework too. If you use the shared framework available in Flex 3 you can cut that out of the download size!

<http://onflash.org/ted/2008/01/flex-3-framework-caching.php></comment></comment>


How to use LEDs to detect light - <AUTHOR> https://makezine.com/projects/make-36-boards/how-to-use-leds-to-detect-light/ <comment><USER2> I designed motion detectors for a couple years and once spent a few weeks researching the use of LEDs as light detectors. What I found was the wavelength each LED could detect and the sensitivity was inconsistent from LED-to-LED and inconsistent across LED batches. We were producing 50k-1M units per year so those findings made using the LED as a sensor a deal breaker and we eventually just added a $0.12 photo-sensor to the boards to detect light.

All of that said, I designed a few demos (using the LED on the motion detector as a light sensor) that were pretty cool:

\- I connected the amplified LED input on a motion detector to the microcontroller and sampled the LED in between PWM cycles (we PWMed the LED to save power). Even when the LED was on you could shine a flashlight at the motion detector light-pipe and trigger events or a test mode.

\- On a motion detector that had a bi-color LED (red/green) in the same SMT package I connected the amplified LED input from one LED to the microcontroller and pulsed the other LED at a non-visible rate. If you placed your finger on the light pipe it would reflect the light from the pulsing LED to the other LED and you could detect when someone touched the light-pipe.

\- A motion detector that could receive serial data over the LED to configure parameters.

<comment><USER3> wow that's neat! sampling between PWM cycles is a cool idea.

I'd guess the issue is that the required parameters are not well controlled in the fabrication of most LEDs. Possibly LEDs not used as indicators, with a tighter wavelength output... most likely this would remove any cost advantage however.

Fascinating stuff!

<comment><USER2> Ya, they're not designed as detectors so there's no control over the parameters that determine how good they are as detectors. Interestingly, one of the reasons I was looking at light sensors was because our pyroelectric sensors were erratically sensitive to incandescent light. We wanted a reliable way to detect bright light and mitigate the effects in software and were hoping to use an existing component on the board as a sensor (our products were _extremely_ cost sensitive due to the volume, so adding a $0.12 sensor was actually a huge deal).

</comment></comment></comment><comment><USER4> On the microbit [1] we run the display's LEDs in reverse to turn most of the display into a light sensor [2]. It can then be used in code [3].

[1] [https://microbit.org](https://microbit.org)

[2] [https://lancaster-university.github.io/microbit- docs/extras/...](https://lancaster-university.github.io/microbit- docs/extras/light-sensing/)

[3] [https://makecode.microbit.org/_Lgy9F04ar9Tm](https://makecode.microbit.org/_Lgy9F04ar9Tm)

</comment><comment><USER5> The author of this article is Forest Mims.

Forest Mims wrote RadioShack's Getting Started in Electronics[0] as well as a number of "mini notebooks"[1]. He is an amazing writer and has a real knack for explaining things in "layman's" terms.

[0]: [https://www.radioshack.com/products/getting-started-in- elect...](https://www.radioshack.com/products/getting-started-in-electronics- book)

[1]: [http://www.forrestmims.com/engineers_mini_notebook.html](http://www.forrestmims.com/engineers_mini_notebook.html)

<comment><USER6> He also wrote the manual for the MITS Altair 8800, the microcomputer Bill Gates and Paul Allen developed BASIC for.

</comment></comment><comment><USER7> There are a couple of really cool things you can do with LEDs as detectors. One is as a wireless link, modulate a red laser pen pointer by putting a microphone in the battery supply line and then point it at an LED that is reverse biased on a transistor that is halfway between the on and off state. Most cheap LED pointer internal power supplies have no filtering for "high frequency" (greater than about 100hz) noise on the supply line which comes out as a change in brightness in the pen pointer which the LED can pick up and drive a transistor amplifier.

The other is a simple "firefly" program where the LED is connected to the ADC input of a microprocessor, and when it detects LED light it turns around and flashes the LED some random time in the future. If you have a bunch of these you can bounce a light around for quite a while.

Chris Kuethe did a great example of this but I cannot seem to find his code anywhere.

<comment><USER8> Fireflies: [https://hackaday.com/2009/06/25/64-synchronizing- fireflies/](https://hackaday.com/2009/06/25/64-synchronizing-fireflies/)

</comment></comment><comment><USER9> Fasten your seatbelts:

Using LEDs as SPADs (Single-Photon Avalanche Photodiodes)

[http://nebula.wsimg.com/0b846f1e91ab9c7442a61c8c35680a51?Acc...](http://nebula.wsimg.com/0b846f1e91ab9c7442a61c8c35680a51?AccessKeyId=027C3581808C75E81679&disposition=0&alloworigin=1)

Not sure if that link is shareable, otherwise it's the May 2013 issue "What's a SPAD?" at [http://www.teachspin.com/services.html](http://www.teachspin.com/services.html)

<comment><USER10> Very cool. I always enjoy George's posts on sci.electronics.design, and now I'm going to have to spend some time I don't actually have at the workbench, trying that.

</comment></comment><comment><USER11> Old diodes were painted black for that reason. If you scraped off the paint you had a pretty good photodetector. Old transistors ditto (OC71 for instance), the housings were made of glass so already transparent.

The Germanium ones were more susceptible to this than the Silicon ones.

<comment><USER12> I remember old books with circuit 'recipies' where you had to sand off the top of a metal casing transistor to turn it into a detector.

</comment></comment><comment><USER13> This is neat; I just recently came across a project using an LED as a candle you could blow out - using just an LED and microcontroller (no other sensors). The resistance (hence voltage) change due to the change in heat can be measured by an ADC.

So, what other hidden talents do LEDs have?

<comment><USER14> Covered here [1] I think? (disclaimer, I write for HaD)

[https://hackaday.com/2018/08/21/an-led-you-can-blow-out- with...](https://hackaday.com/2018/08/21/an-led-you-can-blow-out-with-no- added-sensor/)

</comment></comment><comment><USER15> I started reading it, and I thought "this style seems very familiar". When I got to the first schematic, it clicked and I checked the header for the author's name; sure enough, Forrest Mims!

</comment><comment><USER16> You can use this to make a cheap "toilet-paper-ometer" by sending a 1KHz square wave to one LED and using a second LED's "detector" output narrowband filtered for 1KHz. The 1KHz signale makes the "meter" insensitive to ambient light, and the device is easily calibrated by measuring "detector" amplitude with different layers and curve fitting the amplitude vs. sheet count. Nice science fair project for a Raspberry Pi.

<comment><USER8> How do you implement the 1kHz filter? A 1kHz square wave is easily generated in software but surely you have to implement the filter using an op-amp and some passives?

<comment><USER17> Given it's a raspberry pi, you could easily implement the 1 kHz bandpass filter in software, by sampling at a higher frequency and then implementing a discrete-time filter. Just about any microcontroller with an ADC could do that, actually (edit: actually, the raspberry pi doesn't have an ADC - I guess the author is doing that with a discrete ADC?).

<comment><USER8> The problem is that most micro-controller ADCs use sample and hold with a capacitor so they require some time to stabilise. From the source code of other projects this seems to be on the order of 1 to 5ms which effectively turns it into a low pass filter.

</comment></comment></comment></comment><comment><USER18> Is it possible to do this across an entire monitor ? Could the NSA (or anyone else) be filming us through our screens ?

"We see all through the black mirror"

<comment><USER19> I tried this on an oled display (by removing the controller and accessing row and column lines directly).

Light certainly had some effect, but I didn't get to be able to have the display show something and act as a sensor at the same time (possibly because the capacitance of the row and column lines is too high)

<comment><USER20> What specific display did you try this with? Maybe µLED displays will eventually be sensitive enough for use as 3d webcams or pupil tracking for AR/VR.

Capacitive touch screens in lenses can also track pupils using the shape of the eye.

<comment><USER9> I would love to learn more about using capacitive touch screen to track pupils. Is there a specific article or smth you can recommend?

</comment></comment></comment></comment><comment><USER21> This seems like it ought to be much bigger than it is. Two-way single-cable fiber-optics, with cheaper components than photoresistors? What's the catch?

<comment><USER22> Detectors for fiber optic data transmission need a very fast response time. For gigabit data, you need sub-nanosecond response. LEDs are much slower. They're also less sensitive, which means you need a higher-power transmitting LED to get the same range.

<comment><USER23> What drives the response time, internal capacitance or something?

<comment><USER22> Yes, capacitance of the junction.

<comment><USER9> That's a rather vague statement, it is the textbook answer directed at the users of discretes: given a _fixed_ discrete photodiode part and a fixed load resistor one can change the capacitance by reverse biasing and thus improve the bandwidth of the resultant RC filter.

But this is not a full truth from the perspective of the photodiode designer: he can trivially increase or decrease the capacitance by designing a photodiode with a larger or smaller area. Suppose ratio of the incoming light power over photodiode area is unaffected by doubling the original photodiode area. If he doubles the area and hence capacitance, then he also doubles the injected photocurrent! Hence he can halve the load resistor, hence the bandwidth is unaffected by doubliing capacitance!

Consider the source illumination, what is the smallest area you can concentrate the light in? If it is smaller than your photodiode's active area, it pays off to select a smaller photodiode since the unused area is contributing dead weight capacitance. But if decreasing the area does not increase the optical power / photodiode area ratio, you need better optics or illumination.

EDIT: fixed poorly phrased sentence

</comment></comment></comment></comment></comment><comment><USER24> Ciao, I have played with this characteristic of LEDs since young, those are some of the results:

\- This is a reflectometer: [https://github.com/gioblu/PJON/tree/master/devices/sensors/L...](https://github.com/gioblu/PJON/tree/master/devices/sensors/LEDAR)

\- This is a bidirectional wireless data-link: [https://github.com/gioblu/PJON/tree/master/src/strategies/An...](https://github.com/gioblu/PJON/tree/master/src/strategies/AnalogSampling)

</comment><comment><USER25> My favourite application of this idea is concealing a tamper protection switch in a debug LED.

</comment><comment><USER26> I used this phenomenon to build a laser tachometer a while back. [https://www.youtube.com/watch?v=RfitqGLPCUY](https://www.youtube.com/watch?v=RfitqGLPCUY)

</comment><comment><USER27> You can communicate using bidirectional LEDs: [http://www.merl.com/publications/TR2003-35](http://www.merl.com/publications/TR2003-35)

</comment><comment><USER28> This is actually how modern Optical Mark Readers ("Scantron") works. The older models from the 1960s used electrical current passed through the paper somehow.

<comment><USER29> Scantron readers use LED's as light sensors? I assumed they used regular photo sensors.

The older form readers used metal brushes that detected the conductivity of the graphite in pencil lead.

<comment><USER28> It's possible that the "newest" ones use photo sensors as they now also double as standard desktop scanners, but I'm not sure they would be marketed as OMR. I suspect Scantron and Pearson NCS won't be around much longer as standard scanners are much cheaper, can accomplish the same goals (minus printing results on the form, without a special attachment on expensive scanners), and embedded processing continues to grow.

</comment></comment></comment><comment><USER30> I've used LEDs as light detectors in a pinch when I wanted to measure the rotational speed of something and didn't have any other sensors handy. Neat trick.

</comment><comment><USER31> I haven't personally used this feature of PJON, but they have an apparent way of communicating bidirectionally with a single LED on each side. The one wire software bit bang method worked for me though.

[https://www.pjon.org/AnalogSampling.php](https://www.pjon.org/AnalogSampling.php)

</comment><comment><USER32> The Optical Communications hobbyists have been using this idea since LEDs first arrived nearly 50 years ago.

It sure makes things easier to use the same optical system (lens, etc) for TX and RX.

The only problem is that LEDs make a fairly poor Optical sensor.

</comment><comment> mark-r I first heard about this in the 1970's. I tried to build a two-way communicator on this principle in high school, but never got the circuit to work.

</comment><comment><USER33> Are there any other accidentally light sensitive devices?

<comment><USER34> Chips can be, if their case isn't opaque enough. Famous example would be the "camera shy" Raspberry Pi 2, which crashed when exposed to strong light like a camera flash: [https://www.raspberrypi.org/blog/xenon-death-flash-a-free- ph...](https://www.raspberrypi.org/blog/xenon-death-flash-a-free-physics- lesson/)

Other semi-conductors can be too, e.g. classical diodes in glas casing.

<comment><USER33> Thanks.

I grabbed a multimeter and checked the first part I could find. 1mV DC covered, 10mV DC uncovered (it's a bleak cloudy day). Magnifying glass reveals it's a 6v2 zener :)

</comment></comment></comment><comment><USER35> Content? Nah that's overrated let's cover it up with a gigantic sticky header and footer

</comment><comment><USER36> TL;DR: LEDs make pretty decent photodiodes. But you should read it. ;)</comment>


Reddit infrastructure revealed - <AUTHOR> http://img46.imageshack.us/img46/6994/72691639kt1.png (Pylons, Paste, Beaker, flup and more) <comment><USER2> Ok, I'll be the first person to admit I'm an idiot, but this stack trace doesn't make any sense. First, how am I to know this is actually from reddit.com? It's an image, so I can't grep through the trace. Additionally, it looks to me like the initial error refers to accout.py at line 68... maybe I'm blind, but I don't see that anywhere in the trace. I'm no python expert but I've looked at a lot of java stack traces and this makes no sense. Seriously. Why deliver this as an image? What sequence of events did you go through to get this result? Is it repeatable? If so, how?

I know reddit bashing is super-fashionable right now, but really. Am I being dumb? It's well within the realm of possibilities. But this doesn't pass the sniff test.

<comment><USER3> As for its authenticity, it was on reddit/programming a few days ago - <http://reddit.com/r/programming/info/69ftg/comments/> \- and apparently one of the reddit guys caused it.

<comment><USER2> Ok, I stand corrected. If spez did it, it's legit. Kudos.

</comment></comment></comment><comment><USER4> Of course, that's mostly pylons code. The only information I glean from here is:

1\. FreeBSD 6.2

2\. Pylons

3\. /home/ri/hgreddit

<comment><USER5> Missed one: hgreddit => Mercurial.

<comment><USER6> _"... missed one: hgreddit = > Mecurial ..."_

And Paste. The most interesting thing I saw was the bug that caused it found right at the bottom:

      "... unindent does not match any outer indentation level (account.py, line 68) ..."

This is such a pain with Python (having to line the indentation up) and is so trivial. Wonder how it got through testing? They do testing on reddit don't they?

<comment> a-priori If you find indentation to be a pain in Python, you haven't configured your editor properly.

<comment><USER6> _"... If you find indentation to be a pain in Python, you haven't configured your editor properly. ..."_

While it's easy to config your own editor [0]. There are other factors

* uncommonly used editors [1]

* other users/developers

Of the two, other developers is the biggest pain. You have to make sure each developers editor conforms to your coding standards. [1] But making _"quick changes"_ on the server, can short-cut such safeguards.

[0] <http://wiki.python.org/moin/HowToEditPythonCode>

[1] <http://wiki.python.org/moin/PythonEditors>

</comment></comment></comment></comment></comment><comment><USER7> I thought this was going to be a joke about imageshack, how [pics] power reddit.

</comment><comment><USER8> What are they using for such pretty error messages in py?

<comment><USER9> That's actually a pretty ugly error by Pylons' standards. Normally a _very_ useful debugging console gets presented to the devs, and the public gets a standard (but customizable/replaceable) error screen. What happened here is that the exception happened again while trying to process the error (syntax errors in your base-level code will do that), and the Pylons exception handling gave up and rendered this error.

I don't know offhand exactly what produced that error message, as I've never seen it in my Pylons apps, but I'd suggest it's probably from paste.exceptions somewhere.

<http://pythonpaste.org/module-paste.exceptions.html>

EDIT: I realized that the reason I never see this is because Reddit uses flup's SCGI server, while I use a mod_proxy-based approach. So that exception- formatting code is probably in flup somewhere.

<http://trac.saddi.com/flup></comment></comment>


Ordinary Skill in the Art: Jeffrey D. Ullman on Software Patents - <AUTHOR> http://infolab.stanford.edu/~ullman/pub/focs00.html

<comment><USER2> The Supreme Court took a major step forward in 2007 by reducing the power of the teaching/suggestion/motivation test to prove non-obviousness. See <http://en.wikipedia.org/wiki/KSR_v._Teleflex>

I find it interesting that the reason for YCombinator's existence belies the fundamental problem with software patents: the ever-diminishing barriers to entry.

I understand the problem that programmers have with software patents, but I also still see a great deal of value in the patent system (though for full disclosure, patents pay my bills).

Many people point the finger at the pharmaceutical industry as the big, bad bully of the patent system. Personally, I use it as my token example that the patent system is a positive by comparing the barriers to entry in developing new drugs (finding a safe, effective formula and performing clinical trials) to the relative ease of copying drugs (I'm not a chemist, but I'm pretty sure this is easy).

In this case, the alternative to patent protection for drug companies would be to rely entirely on the government to supply money for drug research and manufacturing. However, this leaves us to the whims of politics to determine what we need instead of letting a free market work. I suspect that there are plenty of Viagra fans out there that won't complain about the high prices of seemingly unnecessary drugs. I'm by no means saying that the situation with drug companies is good or that they can stand on moral high ground, but I do believe (unquantifiable opinion) that they have been a net plus on society because of patent protection.

The last thing I've been thinking about is that there is a variable that we can consider. Patents grant the patentee 20 years of the right to exclude others from making and selling the claimed invention. The date is certainly arbitrary, and was set at a time when the markets reacted more slowly to innovation and the rate of the advancement of technology was slower. Could it been time to shorten the patent term in order to free up the market?

</comment><comment><USER3> An idea for testing "obviousness" that I find "obvious" but haven't seen suggested elsewhere: require patents to include a "problem statement" that motivated the invention and sets requirements for a solution.

If the patent's obviousness then gets called into question, find a small panel (3-5) of 'average' software designers, unfamiliar with the patent (perhaps new graduates?) and show them the problem statement. If they come up with an equivalent or better solution in a meager amount of time, the 'invention' didn't add a lot of innovation/value.</comment>


Researchers Made 25-Ton Boulders They Can Move by Hand - <AUTHOR> https://gizmodo.com/researchers-made-25-ton-boulders-they-can-move-by-hand-1834106230 <comment><USER2> This guy seems to be way ahead of MIT on this one. He moved a barn (which wasn't a specially 3D printed shape) 300 ft on his own.

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

<comment><USER3> This man is a legend. He should publish, damn. I wonder what knowledge only exists in the minds of people who just thought to solve their own problems.

<comment><USER4> Don't you see that youtube video, he _did_ publish.

<comment><USER3> Right, I hear your point, but we have a interdisciplinary discovery problem. No one studying the history of the Moai saw it.

<comment><USER5> Once it goes viral ;-)

</comment></comment></comment></comment></comment><comment><USER6> As someone who's spent plenty of time moving machines with pry bars and rollers I content it's not the shape of the boulders but the flat and level floor that really enables this feat.

In order to move something of a given weight against earth's gravity you need to expend a certain amount of energy to do that work. There is no way of getting around that because physics. While few people could theoretically move a boulder up a hill it would be very, very challenging to do without additional sources of energy.

<comment><USER7> Yup. Now look at the rock walls of New England which snake up hillsides and mountains. A crazy amount of energy was needed.

<comment><USER8> [https://www.thespectrum.com/story/life/family/2015/04/05/sto...](https://www.thespectrum.com/story/life/family/2015/04/05/stone- walls-pervasive-northeast/25328109/)

> In 1871 the U.S. Department of Agriculture published a "Statistics of Fences > In the United States." At that time, it noted that in New England and New > York State alone, there were 252,539 miles of stone walls, enough to circle > the globe ten times, and to build all the pyramids of Egypt times one > hundred. It has been calculated that such an effort would have required an > army of 15,000 workers 243 years to accomplish.

When you are trying to harvest crops on a series of glacial moraines, stones dropped by glaciers and brought to the surface by each winter's freeze/thaw cycles are the most reliable annual crop. :-)

In spring, after thaw, but before the ground is dry enough to till and plant, some levers, a ground level sledge or "stone boat", and draft animal(s) to pull it will get the stones to the edge of the field. Making a more tidy "dry" or unmortared stone wall from them is optional.

</comment></comment></comment><comment><USER9> CEMEX has been doing very clever things for a long time. I love the random distribution of cement trucks they maintained in the 90's do deal with the complexity of delivering cement. [https://www.wired.com/1997/07/cemex-2/](https://www.wired.com/1997/07/cemex-2/)

<comment><USER10> Check out who funded the project ;)

<comment><USER11> Perhaps, you could just tell us?

<comment><USER12> Cemex funded/contributed to this MIT project which you would have learned from reading the article we're supposedly commenting on

</comment></comment></comment></comment><comment><USER13> There is no denying that this is cool and there are definitely modern day applications. However there is also no evidence that ancient people did this. There are plenty of ancient structures constructed of massive stones without beveled edges. Ten years ago there were a couple of guys who figured out how to use giant kites to move large blocks of stone, said that was one way the Egyptians could have built the pyramids. Great, but only problem with that is there are no records of the Egyptians building giant kites, so again kinda cool and probably a great source of fail videos, but probably not what ancient people did.

<comment><USER14> Yeah, this is neat but not a good explanation for how ancient stones were moved, many of which do not have shapes particularly conducive to rolling, including the moai of Easter Island. The article also talks about using varying densities of concrete to control the center of gravity which wouldn't really have been an option when carving from rock.

It's hard to see how this technique would apply to the very rectangular 800 tonne trilithons at Baalbek or the 1000 tonne statue at the Ramesseum, or even the 70 tonne underground sarcophagi at Saqqara.

</comment></comment><comment><USER15> The ancient Egyptians dug canals from the Nile all the way up to the base of the pyramids they were in the process of building. Then they built rafts that they ferried the stones from the quarries all the way to the build sites. Just in case anyone was wondering. Happy Easter!

</comment><comment><USER16> The shape of the boulders reminds me of these: [https://en.m.wikipedia.org/wiki/Sacsayhuamán](https://en.m.wikipedia.org/wiki/Sacsayhuamán)

<comment><USER17> I think their design was such that it was supposed to. However there is the fundamental difference in that there are no curved edges in the Sacsahuayman blocks, which are straight edged.

</comment></comment><comment><USER18> Precisely varied density in building materials feels like it would not have been available to ancient builders.

</comment><comment><USER19> None of the boulders in the video are even close to 25 tons...

</comment><comment><USER20> I can see this working on a perfectly flat surface, but the real world isn't flat. There's still some explanation left to do.

</comment><comment><USER21> > _How were giant ancient structures like Stonehenge, or the towering Moai > heads on Easter Island, assembled at a time when cranes and trucks were > still hundreds of years away?_

Prehistoric people had ropes and they also had poles. I'm always baffled by this reluctance to admit that they simply used cranes, levers, and similar technology.

<comment><USER22> Not all prehistoric groups had all basic technology. There was no use of the wheel in the America's for example.

</comment></comment><comment><USER23> Something doesn't add up to me.

The structures here basically exploit moments in order to move them. But there's nothing giving them stability once they are 'static'. Surely the end piece of the bridge could just fall over if you stood on the edge of it?

<comment><USER24> They're using locking blocks at the ends to stabilise things

</comment></comment><comment><USER25> The original site has more photos and details:

[http://www.matterdesignstudio.com/#/walking- assembly/](http://www.matterdesignstudio.com/#/walking-assembly/)

</comment><comment><USER26> Well I them rock the boulders and they balance.

As ar as I can see they never actually move the boulders.

For this to have any relevance the bolders would need to be dragged / pushed / towed into place

<comment><USER27> There is a video of them moving; it's a rock, rotate 180, rock, rotate 180, etc. sequence.

</comment></comment><comment><USER28> How do they account for uneven ground and a softer surface? I would think that weight would sink in the soil slightly and be too heavy to push out of the depression.

</comment><comment><USER10> Ok but how did they get the smaller "keystones" in? Can't tell from the video

<comment><USER29> I think that isn't a smaller stone, but a similarly sized one with a notch that fits the hole that must be filled to make the structure rigid.

</comment></comment><comment><USER30> Finally, a way to move all these boulders I have up to my 5 storey walk-up.

</comment><comment><USER31> Just in time for Easter!</comment>


Jobs seeks Woz for startup domination - <AUTHOR>

Dear Woz,
You, unlike me, are a genius at hacking and coding. You can take anything apart and put it back together again better then new (even when you were 7). You like having fun and building stuff because it makes you happy and it solves your problems with a simple solution. Programming for you is floating with the current down stream sipping a beer on an inner tube lathered up in sunscreen, where as for me it is swimming up a waterfall.
I'll sell my VW minibus and raise $5,058.26 in cold hard startup cash (equivalent to that of the $1,300 raised in 1976 by the Steve^2 baby boomers at 4.08% inflation).
The question is what market do we want to disrupt? The personal computer market is slightly crowded. Why not disrupt that largest industry in the world during the most volatile moments in the industries history, which just so happens to be occurring during out lifetime?
That is right, the $5 trillion annual global energy industry represents about 8.2% of the global economy, and we are going to take it over. What's that you say Woz, "Jobs, how do you suppose we take over the global energy industry?" Start small, act quickly, focus on a pressure point, stay simple and have fun.
So what do you say Woz, want to change the world?
Cheers, Steve <comment><USER2> PS: I'm going to take most of the credit and keep most of the money.

<comment><AUTHOR> Good point, Jobs is kinda a dick.

</comment></comment><comment><USER3> The home computer industry was most likely a sub-million dollar industry when Jobs and Woz started, so it was certainly a bit easier to disrupt...add color to an inexpensive computer and voila... instant disruption!

But I like your moxie! :-)</comment>


The Fair Source License - <AUTHOR> https://fair.io/ <comment><USER2> I've had similar thoughts and I'm very curious about the HN community's thoughts on this. Something definitely needs to be done to make OSS more sustainable and equitable. Right now it's very hard to build a business without locking everything down, and so open software is the province of only those with the disposable time and/or income to dedicate to it.

I was very heartened to see the same observation being made on this site:

"Fair Source has the power to promote diversity within the developer community. To date, contributing to open source has been an expensive proposition for developers. You have to have a stable income and a lot of extra time to work on side projects for free, which means talented developers from underprivileged backgrounds often aren't able to contribute. Fair Source allows developers to monetize their side projects, which means more people can afford to join the ranks of developers who pursue these initiatives."

That's a bit different from how I would frame it, but basically the same idea.</comment>


Using Amazon S3 for Personal Data Backup - <AUTHOR> http://paulstamatiou.com/2008/06/08/how-i-use-amazon-s3 <comment><USER2> Well, I am setting up JungleDisk + S3 when I get back on my mac.

Anyone else?</comment>


The Structure and Performance of Efficient Interpreters [pdf] - <AUTHOR> https://www.jilp.org/vol5/v5paper12.pdf <comment><USER3> This is an old famous paper which got a lot of arguments wrong, and a lot right.

The famous result is the old computed goto vs switch argument, which basically comes down to switch adds bounds-checking overhead. He didn't get that. Most commenters neither. He also cemented the poor wording "threaded interpreter" and "indirect branching" for different concepts. It's also a totally unimportant feature of making interpreters fast.

Indirect call overhead is significant and measurable. Jit compilers made that obsolete.

He didn't get the case against perl. perl has a huge op and data overhead, as is way too dynamic. But the dispatch loop is better than the others, as perl always returns the pointer to the next op already. There's no dispatch.

Much better interpreter optimization papers came later with lua, reiterating old lisp results. Note: not luajit. lua already had a perfect interpreter loop. lua uses the lisp architecture of small tagged dynamic data, plus a tiny opset, efficiently stored in a single word, with 2-3 arguments. python with its linearizing cfg optimizer tried to mimic it a bit, but is still too slow. Many one-word primitives allow fast stack allocation and updates, and one-word ops allow fast icache throughput.

<comment><USER4> Thanks for the overview an perspective. When you say lua' interpreter loop is perfect, are there any better? Is lua state of the art here?

<comment><USER5> I also imagine this is only inside a C interpreter. One made in .NET will require other solution?

<comment><USER3> With a managed runtime/interpreter most of what makes an interpreter fast or slow is taken away from you.

</comment></comment></comment></comment><comment><USER6> Something tells me that Mike Pall had read this...

This provides a reasonable tl;dr, with nice ASCII figures:

[http://web.archive.org/web/20170102051538/http://article.gma...](http://web.archive.org/web/20170102051538/http://article.gmane.org/gmane.comp.lang.lua.general/75426)

</comment><comment><USER7> Very poor, there's no mention of continuation style passing interpreters.

If anyone's curious about tales from the battlefield, highly recommend Cliff Click's talks (any of them) [1]

[1] [https://youtu.be/Hqw57GJSrac?t=341](https://youtu.be/Hqw57GJSrac?t=341)

<comment><USER8> Wow the class from which this video is taken looks really interesting, and has more videos! Thanks for the link.

[http://soft-dev.org/events/vmss16/](http://soft-dev.org/events/vmss16/)

</comment></comment><comment><USER9> This is pretty old, from 2003, and I think modern Intel processors nullify the purported benefits of "indirect branching" (aka "computed goto") versus switch statements. A few years ago I learned of gcc's computed goto (also supported by clang, IIRC) and I reimplemented lightgrep's core regex engine with computed gotos instead of the indirect switch statement. I could not measure a difference, and I went back to the clearer, more portable switch statement.

<comment><USER10> What it comes down to is that predictable indirect branches are well- predicted. It does not require any insider information to verify this about Intel architecture processors. I built a "fake interpreter" a while back and found that branch misses in predictable sequences of interpreter code are very unlikely unless there is a longish common prefix of interpreter indirect branches in two interpreter sequences (i.e. one sequence goes ABCDEFGH and the other goes ABCDEFGZ).

This led us down a path of also using an interpreter within our own regex engine (Hyperscan) - not for individual engines like NFA/DFA/literal match but for the overall orchestration layer. It's been quite an improvement of code cleanliness and generally has been either performance-neutral or even good. When you replace a great big ugly clagged "if this rare thing happens, go do this code, or else if this happens, go do this other things, then ..." with an interpreter you can get nice performance benefits in the common case - <USER2> though there are not branch misses in the "giant clagged pile of code" anti- pattern.

</comment></comment><comment><USER11> Darek Mihocka has a nice writeup on inner interpreter efficiency on modern-ish architectures: [http://www.emulators.com/docs/nx25_nostradamus.htm](http://www.emulators.com/docs/nx25_nostradamus.htm)

[edit: get his name right. you'd think i'd know it, since he rubs my nose into some bugs I wrote 30+ years ago every time we meet. hi, darek! :-)]

</comment><comment><USER12> Modern branch predictors have made switch-based interpreters more viable: [https://hal.inria.fr/hal-01100647/document](https://hal.inria.fr/hal-01100647/document)</comment>


800G Specification [pdf] - <AUTHOR> https://ethernettechnologyconsortium.org/wp-content/uploads/2020/03/800G-Specification_r1.0.pdf <comment><USER2> I feel like at some point they should make the bit-striping/deskew load spreading standardized and then stop proliferating more speed levels that are "the last speed, but striped across twice the number of lanes".

Particularly since the striping is happening above the FEC level.

<comment><USER3> Flex Ethernet is that attempt to standardize the lane stripping at whatever speed. Unfortunately that effort has grown to incorporate a kitchen sink worth of other features like groups and shaping... Which raises the hardware implementation cost and lowers the adoption rate.

[https://www.oiforum.com/wp-content/uploads/2019/01/OIF- FLEXE...](https://www.oiforum.com/wp-content/uploads/2019/01/OIF- FLEXE-02.0-1.pdf)

At the 100G/200G/400G/800G specs are highly repetitive and the only points of debate are the type of FEC required given the high speed signals, signal loss for cost effective board/cable/optics and how parallel the FEC will be (tradeoff of hardware implementation cost and added latency). FEC has been 2 engines in parallel since 400G.

<comment><USER2> It's interesting that there isn't a no FEC or a reduced FEC (for reduced latency) anymore in this latest standard.

Thanks for the citation!

</comment></comment></comment><comment><USER4> Better title: _800 Gb /s Ethernet Specification_ (from page 6)</comment>