Shake: Every Program Can Be a Clojure Function - <AUTHOR> http://sunng.info/blog/2012/09/shake-every-program-can-be-a-clojure-function/ <comment><USER2> Shake draws inspiration from Python's sh. Which looks to me like a port of <http://perldoc.perl.org/Shell.html>. However after experience, that original version now comes with important warnings about things like metacharacter quoting not being able to be done in a portable and safe way.

It is easy to get things 95% right, and I am sure that Shake does that. But think twice before using it for production programs, _particularly_ if there is any possibility of it encountering untrusted input.

</comment><comment><USER3> _> We will have a beautiful DSL so you don't have to quote arguments as string..._

If i'm using Perl's _Shell.pm_ (as mentioned elsewhere here by _btilly_ ) and wanted to avoid quoting arguments then I could do:

      use 5.016;
      use warnings;
      use Shell ();

      use PerlX::QuoteOperator ls => {
        -emulate => 'qq',
        -with    => sub ($) { Shell::ls($_[0]) },
      };

      use PerlX::QuoteOperator uname => {
        -emulate => 'qq',
        -with    => sub ($) { Shell::uname($_[0]) },
      };

      use PerlX::QuoteOperator ip => {
        -emulate => 'qq',
        -with    => sub ($) { Shell::ip($_[0]) },
      };

      # and then...

      ls();
      uname(-a);
      ip(-4 addr);

But this seems to be an overkill because I could just use Perl's backticks (<http://perldoc.perl.org/perlop.html#Quote-Like-Operators>)...

      `ls`;
      `uname -a`;
      `ip -4 addr`;

And it works with variables...

      my $x = "/usr/local/";
      my $files = `ls -l $x`;

and piping...

      my $perl_files = `ls | grep .pl`;

_Shell.pm_ also works with variables & piping but I think that backticks are probably Perl's best _DSL_ for dealing (easily) with shell stuff :)

</comment><comment><USER4> This is a really bad idea. It's not even close to useful right now. For instance, you can't use variables in your shell invocation, so this doesn't work:

        (let [x "/usr/local"] (ls -l x))

And it clobbers so many things in the core namespace when 'use'd.

Good luck.

<comment><USER3> _> And it clobbers so many things in the core namespace when 'use'd._

Yes the _...it indexes all the executables in your path..._ is different to the approach used by Perl's _Shell.pm_ and I think Python _sh_.

These simply catch any undefined function calls and attempts to execute them in the shell (found in your $PATH).

      use 5.016;
      use warnings;
      use Shell;
      say cat("~/.vimrc");              # runs /bin/cat
      say incorrect_spelled_command();  # ERROR can't find in $PATH

However nothing is clobbered here:

      sub cat { "This is my cat()!" }

      use Shell;
      say cat('~/.vimrc');  # => "This is my cat()!"

The best approach is to not use the _lookup_ dispatch and instead tell it what executable you want to wrap...

      use Shell qw(cat);

Now _incorrect_spelled_execute_ is never passed to _Shell.pm_ and in fact will give a compilation error ( _Undefined subroutine_ ). And any _cat()_ subroutine will be overwritten but it does give _redefined_ warning.

</comment></comment><comment><USER5> All these efforts to provide pretty & convenient interfaces to arbitrary executables strike me as being useful only for people who want a powerful REPL as their command-line prompt and/or would rather use Clojure or Python (or whatever other language) for mundane tasks that would otherwise normally be done with throwaway shell scripts. Outside of these limited use cases, I'm not sure this sort of thing is a good idea.

</comment><comment><USER6> Creating this was probably fun and a good learning experience, but I wouldn't recommend trying to push it beyond that point. The problem Shake solves doesn't call for the sort of DSL that uses macros to make Clojure code act like something other than Clojure code.

I'd rather have something like <https://github.com/clojure/tools.cli> but in reverse: a library for building, manipulating, and running command lines and interacting with the results ... maybe something that supports setting up mappings so that external programs can be exposed as Clojure fns with "Clojuresque" arguments "--rather" "than" "--arrays-of" "strings".

<comment><USER7> A Scsh port to clojure would be nice. (Scheme -> Clojure is not such a stretch).

</comment></comment><comment> Tuna-Fish That's both wonderful and scary. I think the UI of it needs work -- if you want to treat all shell commands as functions, they imho should just return their outputs by default. (Potentially as a lazy list of lines?)

Also, I think that path should not be passed in as an environment variable, but in Clojure somehow. There's no reason for a program to pollute a global namespace with it's internal details.

<comment><USER8> Agreed, namespace clashes are an obvious problem. "My program that worked last week now crashes? Oh, it's because I apt-get installed something completely unrelated."

<comment> Tuna-Fish Well, (use :as) fixes that one.

Namespaces are a honking great idea, let's have more of those!

Also, I think I just realized an another problem -- if I understood the lib correctly, it scans through the PATH once at require time. This is bad, because Clojure is often deployed in places where processes run for _very_ long times. Even things as immutable as tools in PATH can change when given long enough time.

<comment><USER4> There's no (use :as), only require. (require [shake.core :as sh])

That's a step in the right direction, but it still triggers tons of warnings replacing vars in clojure.core.

<comment><USER9> use does accept an :as option:

        => (use '[clojure.set :as set])
        => set/intersection
        #<set$intersection clojure.set$intersection@58ca40be>

Prior to the addition of :refer to require, this was often paired with an :only (...) in order to alias a namespace as well as refer in some limited set of vars if desired, all in one declaration.

<comment><USER4> Huh, I checked the docs before I commented. It is indistinguishable from require :as, thought, right?

<comment> Tuna-Fish As far as I know. Honestly, by use/require/refer-fu is not very strong, I always just use the ns macro.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> Sounds very much like pallet's stevedore.

<http://palletops.com/doc/reference/script/> <https://github.com/pallet/stevedore>

</comment><comment><USER11> This was already pioneered by Olin Shivers' SCSH (Scheme Shell). See the process notation chapter in the SCSH Reference Manual: <http://www.scsh.net/docu/html/man-Z-H-3.html#node_chap_2>. Wish the SCSH project would come alive again: <https://github.com/scheme/scsh>.

</comment><comment><USER12> That's great. Next step is implementing piping :-)

<comment><USER13> actually, pallet's library stevedore offers the same kind of functionality and has had piping for a good while (as well as other typical constructs):

See: [http://hugoduncan.org/post/2010/shell_scripting_in_clojure_w...](http://hugoduncan.org/post/2010/shell_scripting_in_clojure_with_pallet.xhtml)

The project lives at: <https://github.com/pallet/stevedore> and is heavily used in pallet, clojure's configuration management and cloud control library

<comment><USER14> Not to be confused with <http://stevedore.readthedocs.org/en/latest/index.html> which is part of the virtualenv (or virtualenvwrapper?) installation for Python.

</comment></comment></comment><comment><USER14> This is actually pretty neat, specifically the part about indexing the executables available in your path and turning them into macros. I was underwhelmed at first because I thought you manually implemented each program.

I can't really imagine a use case for this for me (bash! But with parens!) but still very neat idea and cool execution.

</comment><comment><USER15> A function? Really? Without side effects?)

</comment><comment><AUTHOR> You can set environment variable SHAKE_PATH to specify path that you want to initialize.</comment>


Entrepreneur Problem Database - <AUTHOR> If we start with the assumption that the classical definition of an entrepreneur is to profit as a byproduct of solving real problems where the solution improves everyones well being in the same vein as Henry Ford or Thomas Edison, then there are two big problems today for talented entrepreneurs:
Problem 1: Entrepreneurs pursue ideas instead of problems.
An idea is something that hasn't proven to be a problem yet. And since it hasn't proven to be a problem yet there's no need to find a business solution. When you try to market a solution for a non-existent problem, the result is novelty. Novelty may be profitable in the short term but usually is unsustainable. This leads to entrepreneurs misplacing their time and money. Examples of novelty can be seen in Tyler Cowen's video on the Great Stagnation. The internet promotes more ideas than problems. And genuine problems are difficult to locate, understand or verify.
Solutions to problem 1:
- Create a submission process for filtering real problems from ideas.
- As part of the submission process, peer review submissions through industry experts.
- Submissions that fail peer review, will be tagged as "ideas" instead of "problems".
- Index submissions into long form centralized discussions that are searchable by tags/keywords.
- Promote objective discussions of submissions through citations of transparent data.
Problem 2: Entrepreneurs profit as a byproduct of rent seeking, financialization, offshoring, consolidation.
These business models generate profit from innovation that is not based on the classical definition of solving problems by improving everyone's wellbeing.
Solutions to problem 2:
- Tag submissions by type of innovation.
- Incentivize submissions for classical innovation over rent seeking, financialization, offshoring, consolidation.
- Incentivize discussion for brainstorming publicly available business plans for verified problems.
Do any sites like this exist? <comment><USER2> Entrepreneurship is not solving problems. Solving problems is a means to an end, but rarely is the end a problem.

Entrepreneurs organize enterprises. Sometimes that involves solving problems in a new way. Mostly it doesn't.

Frank Zappa was an entrepreneur that composed and sold music. What problem was he solving? Did he set out to solve a problem, or make music?

Zappa made music and connected with people who enjoyed it. He probably solved many problems along the way, but his enterprise wasn't solving a problem. His enterprise was making great music.

<comment><AUTHOR> _Entrepreneurship is not solving problems. Solving problems is a means to an end, but rarely is the end a problem._

I am not sure I understand what you mean. I will give an example of what I mean by an "entrepreneur solving problems".

Example: In the industry I work in you need about 5-7 digital tools to run a business. Currently this industry is very fragmented. So each tool is made by a different sub-division in the industry. The result is that tools don't "talk to each other". There's lots of unnecessary additional steps between tools as a result of "not talking to each other". I would define the "problem" as lack of integration. Solving the problem would be integration.

Forgive me but I don't know about Frank Zappa. Are you saying he's an entrepreneur because he's a musician? And therefore all musicians are entrepreneurs? Or are you saying he stands out as an entrepreneur (while most musicians are just musicians)?</comment></comment>


Azure Durable Functions - <AUTHOR> https://docs.microsoft.com/en-us/azure/azure-functions/durable-functions-overview <comment><AUTHOR> I already love serverless architecture, but this is crazy good news. Ordinarily you'd need to chain functions with events, but this allows you to coalesce workflows where the event is always FAILURE or SUCCESS.</comment>


Real-Time Web Apps with Zero Lines of JavaScript - <AUTHOR> https://engineering.instawork.com/real-time-web-apps-with-zero-lines-of-js-d2a3d6dd10d <comment><USER2> Wow Adam! I owe you a drink! I have been looking for something like intercooler + sse / mercure. What a great example of NoJS!

I thought I was stuck with just amp ([https://amp.dev](https://amp.dev)) as an option. Please ignore the nitpickers saying it is technically not zero lines of js.

If the app can be developed without writing js, it can be considered nojs. The list here ([http://markapp.io](http://markapp.io)) is based on that principle.

Please please keep on chronicling your adventures. So many questions but I will take the weekend to explore properly.

<comment><AUTHOR> I totally agree, the benefit of NoJS comes from not needing to write custom code in order to implement a feature. Thanks for the link to that list of other NoJS libraries. If you have any questions about Intercooler, please leave a comment on the post.

</comment></comment><comment><USER3> So you use JavaScript libraries to avoid writing JavaScript to use a JavaScript browser API?

<comment><AUTHOR> That's right. By including the Intercooler.js library, we don't need to write custom JS when developing features in our web app. We can take full advantage of JS APIs like AJAX and EventSource by only adding declarative HTML attributes to our markup.

</comment></comment><comment><USER4> I think this kind of approach is really underrated. I remember from playing around with Rails that you can do very similar things quite easily.

It's not a popular approach at the moment, but I do feel like there is validity to it.

Kudos for taking the road less travelled.

</comment><comment><USER5> So this is being done just for the sake of not writing JS?

I don't see how this will be in any way better or more maintanalbe. Also it means writing more Django/Jinja templates.

<comment><USER6> These articles might help:

[http://intercoolerjs.org/2016/01/18/rescuing- rest.html](http://intercoolerjs.org/2016/01/18/rescuing-rest.html)

[http://intercoolerjs.org/2016/05/08/hatoeas-is-for- humans.ht...](http://intercoolerjs.org/2016/05/08/hatoeas-is-for-humans.html)

Apps written in this manner (when properly decomposed) are very maintainable and often markedly simpler than a client-server SPA model. It isn't a popular approach right now, but that's OK. We are all independent thinkers here on HackerNews, right?

</comment></comment><comment><USER7> Less JS is always better, but if you're using Intercooler.js, are you really creating an app with "zero lines of JS"?

<comment><AUTHOR> It's true we include Intercooler.js and jQuery in our web app. What I meant is that as developers working on our web app, we don't need to write JS to implement new features. All of the logic happens in the Django codebase.

<comment><USER7> You don't have to write _any_ JS at all to leverage Intercooler.js and JQuery?

At least Milady de Winter had the courtesy to be attractive when she tried to bullshit me and my buddies back in the day.

<comment><AUTHOR> That's right, check out [https://intercoolerjs.org/docs.html](https://intercoolerjs.org/docs.html) for a primer on how it works. Interactions and AJAX requests are declared using HTML attributes, the responses are server-rendered and swapped on the frontend.

</comment></comment></comment></comment><comment><USER6> Very cool Adam.

You are officially the worlds expert on using server sent events in intercooler. ;)

<comment><AUTHOR> Thanks! There's so much potential there, we're excited to push the limits.</comment></comment>


Learn X The Hard Way - <AUTHOR> https://gitorious.org/learn-x-the-hard-way/learn-x-the-hard-way <comment><USER2> Ha, I clicked this expecting a guide of X (as in the window system) architecture.

<comment><USER3> I was expecting a "Learn anything the hard way", including advice like "Practice often," and "Learn from people who are good at X."

</comment></comment><comment><USER4> Google cache:

[http://webcache.googleusercontent.com/search?q=cache:O25zmfw...](http://webcache.googleusercontent.com/search?q=cache:O25zmfwPXlYJ:gitorious.org/learn- x-the-hard-way/learn-x-the-hard-way+&cd=1&hl=en&ct=clnk&client=firefox-a)

</comment><comment><USER5> Besides Dexy, this thing also needs tex live's extra fonts package to compile. On my Ubuntu 12.04 box I needed to install:

sudo apt-get install python-setuptools texlive-fonts-extra</comment>


How I Hacked a Bank and Made 40 Bucks - <AUTHOR> https://www.golemtechnologies.com/blog/how-i-hacked-a-bank-and-made-40-bucks

<comment><USER2> Summary: Security tester is paid to scan a bank, finds a vulnerable asset, reports back to the customer. Customer tells him he doesn't charge enough.

Here's my take: if he is charging $7, $10, $40, whatever, he's running automated scans. If the customer is suggesting they'd be willing to pay $10k, they are most likely under the impression this is a real, full-fledged pen- test. That is a massively dangerous assumption. A real pen-test is not just some process you kick off and walk away. It involves real investigation, testing, and analysis. Charging $7, $40, would bankrupt a tester.

</comment><comment><USER3> I'm guessing a bank of such size won't believe that a $7 scan can tell them anything. If he charged $10k they would probably think that it was worth acting on too ...

</comment><comment><USER4> > I have since lowered my prices (I love my customers, and want them to be > secure).

So why not charge $0?

If you love your customers, crank the price up - that'll encourage them to actually _listen_ to the results you give them.

</comment><comment><USER5> Until these businesses (small and large) become responsible, either legally or financially, for the security of their websites, we'll see this continue to happen.

They simply don't care about the security of their customers because they have no incentive to.

I get that security is hard, but in this specific case, they knew about a hole and left it open for two months. That's negligence.

</comment><comment><USER6> The post title doesn't make sense to me. Wouldn't something like "My service works, and now I charge even less" be more accurate?

</comment><comment><USER7> I love how the author emphasizes the size of the bank: "one hundred million in assets bank. One Hundred Million.", as if they are flush with money. In reality, this is a rather small bank, likely with a 2-3 people running the IT operations.

And to say that they don't care about security is wrong. Generally, small financial institutions like this are scared to death about security breaches, but in many cases, they simply don't have the expertise to properly assess and deal with them. The example of the calendar application is just one example.

</comment><comment><USER8> So I tried to order a scan, given the low price of $7 only to realize the author of this service does not accept customers outside the U.S. and Canada.

</comment><comment><USER4> Seems to be down; anyone have a mirror?

<comment><USER9> copy the URL, go to Google, type "cache:" and hit Ctrl+v -> [http://webcache.googleusercontent.com/search?hl=en&q=cac...](http://webcache.googleusercontent.com/search?hl=en&q=cache%3Ahttps%3A%2F%2Fwww.golemtechnologies.com%2Fblog%2Fhow- i-hacked-a-bank-and-made-40-bucks)

<comment><USER10> Or use the Resurrect Pages extension if you're in Firefox: [https://addons.mozilla.org/en-US/firefox/addon/resurrect- pag...](https://addons.mozilla.org/en-US/firefox/addon/resurrect-pages/) and choose among the many cache sources.

</comment></comment></comment><comment><USER11> wasn't there a wall street journal article talking about how poor small business security was recently? How does this tie in?</comment>


Microsoft surprises by licensing ARM to create its own chips - <AUTHOR> http://www.electronista.com/articles/10/07/23/microsoft.may.chase.apple.servers.with.arm/

<comment><USER2> [http://www.google.com/finance?client=ob&q=NASDAQ:ARMH](http://www.google.com/finance?client=ob&q=NASDAQ:ARMH)

</comment><comment><USER3> Would be awesome if microsoft pulls an apple and unifies windows and windows mobile under a single platform. That and porting the .net runtime to linux/osx/bsd would mean microsoft would make the microsoft stack very interesting all over again.

<comment><USER4> Well WinPhone7 seems to be heavily pushing Silverlight and XNA, which also run on the desktop. So there's some unification there.

As far as MS releasing a full .NET for other OSes? I can't ever see that happening. Why would they want their army of VB/C# "enterprise" developers being able to deploy without spending on Windows licenses?

Their support of Novell/Mono means people can still choose .NET for some projects; probably people that might not have used .NET otherwise. But at least the bulk of business apps developed will still need Windows (and probably SQL Server).

<comment><USER3> Low cost deployment is the new reality.

a) Without having a low cost deployment option the competiveness of microsoft is greatly reduced in the big data market. b) It might take Microsoft 3-4 years to work out the business model but having a portable .net framework with low / zero cost deployment would make apps written in .net viable in sectors where they dont have a chance currently - embedded , big data. c) The few startup people ive talked to have all worried about "theoretical portability", ie they might never use the portability but they would like the programs to work on different OS's. d) OSX actually benefits greatly from its unixy structural similarity to linux / bsd. Most developers I see here in NYC develop on osx and deploy on linux (linode, heroku etc) e) While Mono is a great project, having a blessed / direct version of .net would reduce the business risk in the mind of customers.

</comment></comment></comment><comment><USER5> I hope not, but it looks like this might be a case of Apple-envy.

Microsoft was evaluating ARM for server usage, but do they need to build the SoC them self?

IIRC The last time they build some complex chips the result was far from perfect [http://www.eetimes.com/electronics-news/4077187/The-truth- ab...](http://www.eetimes.com/electronics-news/4077187/The-truth-about-last- year-s-Xbox-360-recall)

<comment><USER6> Why would an ARM-based Windows server be desirable? What role would it take? Web server? Print server? File server? "SQL Server Enterprise ARM-cluster edition"? It doesn't add up.

Xbox-style devices would sound more likely. The Xbox360 was successful in showing developers can make a bunch of low-performance cores perform adequately in games. I think a multi-core ARM coupled to a decent GPU would be quite a nice gaming platform.

<comment><USER7> An ARM-based Windows server would be desirable for anyone who is already using a Windows server and wants to maximize their performance per watt.

I'm not sure if ARM is powerful enough to support a next generation console platform. The current Xbox 360 has 3 cores clocked at 3.2 GHz supporting two threads per core, while the most powerful ARM processor, ARM Cortex-A9 MPCore, has 4 cores that can each be clocked to "up to 1 GHz". Processors are a lot more complicated than just clock speed, of course, but I think it's readily apparent that ARM is less powerful than the current Xenon processor in the 360. Perhaps Microsoft could drop in several ARM processors or rely more heavily on the GPU.

I think it's more likely that this is a move to create a powerful in house ARM chip to use in their Zune HD and maybe for a to-be-announced mobile platform.

<comment><USER6> > anyone who is already using a Windows server

The only commonality is Windows itself. Windows NT on RISC processors has proved to be limiting in that almost no software was available to platforms other than Intel. This means the only functions a Windows on ARM server would be able to handle would be those of Windows itself and the software Microsoft choses to port.

It's kind of a copycat reflex. Apple is investing a lot in ARM, porting a big chunk of their OS to it, so Microsoft is convinced it must do the same, regardless of having a viable product.

</comment></comment></comment></comment><comment><USER8> Checking over at <https://careers.microsoft.com/> there's no sudden flurry of hardware or low-level software engineering job postings to go with this announcement. Of course, it's not like M$ has a shortage of those types between their Xbox and Zune platforms.

</comment><comment><USER9> This is for Windows phone 7 - and possibly a tablet device. Microsoft probably realized that it's a bad idea to shoehorn Windows 7 into an x86 tablet and is going to try to scale Windows Phone 7 up to a tablet.

Everyone else can play "me too" and copy Apple...

<comment><USER6> As someone else said before, we should expect mock-ups and movies showing this bright future soon. Real products may take a while. Successful products... well... I wouldn't hold my breath.

</comment></comment><comment><USER10> ... and ARM's stock raises with another 15 percent. Compare it to 12 months ago and say "ooooh".

</comment><comment><USER11> Is MS only 2 years behind on this? Usually they're around 4 aren't they? I imagine we'll see some mock ups anytime soon. Take that iPad/iPhone.

</comment><comment><USER12> No surprise. Microsoft usually does everything Apple does, a few years delayed and not as well.</comment>


The Cellphone Test (How to Choose Great Advisors) - <AUTHOR> http://startuphoodlum.com/2011/01/06/the-cellphone-test/

<comment><USER2> Not entirely certain I agree with this. There are precisely 3 people to whom I will answer the phone at 3 in the morning. None of them are people I am in business with.

Then again, I have been burnt by being too free with my time in the past - when you're being called at midnight four nights in a row for "emergencies," it gets old.</comment>


Executable Research:Use NYSEImbalanceFeed to Predict Nasdaq Closing Print Sizes - <AUTHOR> http://sandbox.deepvalue.net/nasdaq-closing-print-size-estimation <comment><AUTHOR> If you use the information in the NYSE imbalance feeds, you can get much better at estimating what volumes will trade at the close at Nasdaq. With good quant footwork you can get this edge before the deadline for participating in the Nasdaq close. Over a 100 million shares trades each day at the Nasdaq close, so if you are into this sort of thing this may be useful.

The Nasdaq deadline for participation in the close is 3:50 p.m. The NYSE imbalance feed switches on at 3:45 p.m., a full 5 minutes earlier, and closing interest on thousands of names already starts to show up in the NYSE imbalance feed.

So is there information in the NYSE imbalance feed that will tell us something about how the Nasdaq closing is going to look like?

Yes, there is! Over at our research sandbox, we will tell you how you can do this. You can see the code, edit the code, try out new ideas and run it too!

So who can use a forecasting edge?

If you are running a book knowing how much will trade at the close will let you decide how much risk you can shed at the close. We do algorithmic executions for customers; in virtually every order that will trade through the end of the day, we have to decide how much to trade at the close vs in the regular session, and good estimations help there.

Compared to the 100m shares in the Nasdaq close, 200 million, sometimes even 300m shares (the Dec 2016 average) trades in the NYSE close. So is there an edge we can give to trade the NYSE close? Our answer is very much a yes but it is a very different tool kit. With clever quant and tech footwork, and in partnership with the NYSE Floor, we effectively move the NYSE deadline for closing participation from the 3:45 p.m. above to 3:59:50!

If you'd like to hear more of our research follow me or reach out. In the meantime, here is the link to the research sandbox with the Nasdaq print size estimation work described above to have fun with.</comment>


The Best Time I Pretended I Hadn't Heard of Slavoj Žižek - <AUTHOR> https://thehairpin.com/the-best-time-i-pretended-i-hadnt-heard-of-slavoj-%C5%BEi%C5%BEek-4d746d77606 <comment><USER2> It doesn't work against people who believe in the 10,000: [https://www.xkcd.com/1053/](https://www.xkcd.com/1053/)</comment>


It's time to start paying for Android updates - <AUTHOR> http://www.extremetech.com/computing/122395-its-time-to-start-paying-for-android-updates

<comment><USER2> No. The time has come for phone manufacturers to cease locking down phones and preventing one click updates.

Imagine a world where you had to buy a new desktop because the vendor provided you with Windows XP service pack 1 but decided the machine would no longer be supported? That situation does not exist, thankfully, because PC vendors never had the nerve to lock owners out of their own property.

The cell phone industry still thinks they should control every little interaction on the handset, forcing their bloated UI overlays, restricting features, and nickel and diming customers. I refuse to entertain the notion I should be giving these people more money for the sole purpose of formalizing their control my property.

I run ICS on a Samsung Galaxy S. Samsung officially will not support it because their resource intensive "improvement" called TouchWiz can't run on the older handset when ported to ICS. Meanwhile some kid, for free with spare time, managed to build a fully functional ICS version I run without issue.

At this point in time, locked bootloaders only exist to keep customers on the hardware upgrade treadmill. It needs to stop.

<comment><USER3> The article specifically says that phones should be unlocked. You wrote a nice little rant that everybody agrees with so you got a lot of upvotes, but completely orthogonal to the original article.

<comment><USER2> No, I do not advocate just unlocked bootloaders, but freed operating systems.

The overhead of these phone manufactures comes from their horrible customizations and differentiation practices. I find the idea of paying $10 for the privilege of updating the OS just so I can get the new version of Sense, or TouchWiz, or MotoBlur, or whatever Sony runs now repugnant. I think this idea pushes the market in the wrong direction.

The fact that volunteers create functional ICS installations shows that it doesn't take time or money to get ICS itself running. The vendors themselves add cost by leaving their taint on every interaction I have on the phone.

And the article itself says "OEMs that want to engage in paid updates should have a bootloader unlock solution for users that want to update on their own." with no reasoning at all besides it would make the writer feel warm and fuzzy.

<comment><USER4> "The fact that volunteers create functional ICS installations shows that it doesn't take time or money to get ICS itself running."

????. I'm certain it does take both time and money. The volunteers are spending time on it.

<comment><USER2> It indeed takes time to build and release. I should have been more specific that I meant the orders of magnitude more time, 6 months, it can take to get a new minor version from the vendor, vs 6 hours from a kid working on a Saturday night building a major release.

The volunteer worked a non-zero amount of time. Thanks for pointing it out! I'll make sure to carefully guard my language in the future for fear of being unclear.

<comment><USER4> No worries, I assumed that was what you meant, and I completely agree with your main point. I got a droid after my iPhone 3, and I don't think I'll be getting another android phone because of this problem.

</comment></comment></comment></comment></comment></comment><comment><USER5> Aside from the strong note of Android OEM apologist emanating from this piece, the fact that this idea isn't /entirely/ preposterous speaks volumes about the sad state of the platform. What Google releases and what most buyers eventually experience are as different as day and night.

As a long time devotee and early-adopting "evangelist" (especially Maps, Gmail/Apps, Picasa, and eventually Android) it seems we are witnessing Google's decent into terminal failure to grasp the concept, and value, of "customer"...

<comment><USER6> I think that Android OEMs deserve some apology, if anything so that folks can better understand the realities of the situation. People want updates like Apple provides with iPhones, but given how vastly different the business structures are in the Androidverse, that may not be realistic.

Apple provides updates to old phones because it has a strong financial incentive to do so: They don't just sell phones, they also operate an app marketplace for those phones, and they get a cut of the sale price of every app sold through that marketplace. So they want to keep all their users buying apps, even the ones with old phones. Part of doing that is giving existing users a reason to stay checked-in - and pushing new features to users of old phones through OS updates allows them to do that. They also want to have as much "awesomeness" in the app store as they can get, and one way they can facilitate that is by minimizing the hurdles that might prevent developers from using all the latest and greatest features in their APIs. On that front, the biggest hurdle imaginable would be if only a minority of the platform's users had the ability to run apps that depend on the latest API. So Apple _really, really_ wants to keep old iPhones up to date as long as they can, not out of some sense of corporate altruism, but because doing this maximizes app store profits for them.

On Android, on the other hand, there is absolutely none of that. The only time Android OEMs see any money is when you buy a new phone. They don't care if you can run ICS+-only apps, because they don't see money from the app store. They don't care if you keep buying new apps, because they don't see any money from the app store. They don't even particularly care if you prematurely decide your phone is janky and outdated and you need a new one on account of no OS updates, because. . . oh wait, they do care there. They want that to happen, because the only time they see money is when your current phone gets tossed in the dustbin.

Meanwhile, as the article points out, providing updates to old phones is quite an expensive process. Especially if you're doing anything beyond pushing patches.

So. . . given that the incentive structure built into the Androidverse serves to heavily disincentivize OEMs from providing iPhone-style support, the question remains: Why on earth, then, should they?

<comment><USER7> I believe the only reason 3GS owners got iOS 5 was because of iCloud. Normally, Apple is quite happy to leave the oldest hardware editions in the dust with nary a care.

So they issue iOS 5 to every supported device and, lo and behold, iCloud has 80 million users overnight. It doesn't matter that most people think iCloud is useless, what matters is they frictionlessly transitioned 80 million people onto their servers. Now that they have those users they can figure what to do with it.

I don't believe Apple is doing this out of altruism for users or developers. I think they are honestly going after Google, Microsoft, Dropbox, et al. at the same time. And the most effective way to do that is to have...80 million users on day one.

<comment><USER8> It's important to note that unlike older phones and Macs, Apple is still currently selling the 3GS.

The original iphone and the iphone 3G stopped receiving updates 3 years after release[1]. It's important to note, though, that in both cases the update cycle continued for a significant amount of time after the devices were no longer available in stores.

The original iPhone received its last update 1 year and 6 months after the device was discontinued: iOS 3.1.3 was released February 2, 2010 while the original iPhone was discontinued July 11, 2008.[2][3]

The iPhone 3G received its last update 5 months and 18 days after being discontinued. In this case, given that it had the same specs as the original iPhone except for the 3G modem, I think that iOS was rapidly becoming too resource intensive to continue updating for this device, considering that by 2010 the majority of the hardware was already 3 years old. That said, iOS 4.2.1 was released November 22, 2010, and the 3G was discontinued as of June 4, 2010.[2][3]

Contrast this to Android where some flagship phones don't even receive security updates after even a year (the chart in my references only includes notable Android devices, and ignores cheaper ones that go after the free w/ contract market etc.)

Paying for updates is not the solution. Unfortunately, unless Google or consumers grab the vendors by the balls, the only thing that I honestly think will do _anything_ at all about this situation is a rather nasty worm that manages to do some serious damage to devices that haven't gotten timely updates. I don't want to see that happen, it would really hurt Android's reputation in the eyes of those who won't understand that the HW vendor is to blame for the problem, not Android the OS.

[1] Chart of device updates published some time ago: [http://theunderstatement.com/post/11982112928/android- orphan...](http://theunderstatement.com/post/11982112928/android-orphans- visualizing-a-sad-history-of-support)

[2] iPhone discontinuation dates and final iOS version: <http://en.wikipedia.org/wiki/List_of_iOS_devices#iPhone>

[3] Release dates of iOS versions: <http://en.wikipedia.org/wiki/IOS_version_history>

</comment></comment></comment></comment><comment><USER9> The following is a wishing metric:

"If it charged just $10 for access to the update, that would be $150 million if only half of all users wanted an official update."

Few would pay for an update. Especially when the phone is likely to have even more bloatware added each update. Those who would want the update would install a custom rom, especially if it was unlocked by default. The only incentive to upgrade is when someone can't run the next big game.

More importantly, that new handset locks the customer into a new contract. That's the priority. Hopefully some egghead executive will realize that offering software updates, replacing batteries, and reducing monthly fees for loyal customers can earn them even more money.

Along a similar thought, I have very little desire to pay for Android software because developers have a habit of screwing their customers. I have purchased games with zero permissions to avoid adware in the past, only to have updates add a plethora of unwanted and unneeded security permissions.

Paid apps should not be allowed to add security permissions without giving the option for refunds and/or an honest Google code review.

<comment><USER10> A customer with a six-month-old phone is never going to buy a new phone and extend their contract. If OS updates aren't available, they'll just tough it out. Thus offering updates for such phones seems like all upside.

</comment></comment><comment><USER11> May be we are barking at the wrong tree, carriers and device manufacturers that is. Case in point - Google's own Nexus S phone which has not yet received official ICS update! Either google intentionally holding it back hoping to sell more Galaxy Nexus phone with ICS installed or most likely the ICS leapfrogged at the expense of its backwards compatibility with the existing hardware. Google should wake up and smell the roses before it's going to be too late to repair the damage. Next time they announce a major OS update consumers will not even care because by the time they see the update on their phone, the next iOS version will be announced and pushed to iPhones on the same day.

</comment><comment><USER12> This sounds ineffective. To most consumers, a software update is an annoyance whose benefits are often hazy. Look how hard they procrastinate _free_ updates. So expecting money for an update to a device that's often replaced within a year or two is a non-starter.

The most effective thing Google can realistically do is ship desirable Motorola phones that get updated to the latest Android version the day of release.

</comment><comment><USER13> If newer versions of Android monetize better for Google, then Google should be paying handset makers a bounty for each of their phones that is upgraded to the latest OS to encourage them to push the update. Otherwise it is likely cannibalizing their revenue from selling new phones (or at least they think it will), and they have little motivation to invest in updates.

</comment><comment><USER14> Galaxy Nexus owner here. I'm still the only person in my office (a tech company with lots of geeks) who's running ICS. It's really lonely here on Android 4.

I don't think that paying for updates is going to help matters - that's just another good argument to get an iPhone. Instead, I think Google has to start giving device manufacturers a cut of the Android app store revenue. Others here have pointed out that handset makers have no incentive to keep their customers using the latest version of Android. If they wanted to make sure that their customers were still buying Android apps, keeping them on an up-to- date version of Android would be more important.

<comment><USER15> There is also a comparison to the GPS industry (Garmin et al). They charge a fee for map updates, charged for traffic and only ever provided new functionality on new devices. Nowadays the market is shrinking - who wants such crippled devices - and the usually sold models include lifetime maps and traffic.

</comment></comment><comment><USER16> It seems to me that less in the way of UI tweaks and more standardization of drivers would solve the problem. Does anybody really buy a phone for Touchwiz or Motoblur? Could some of these tweaks be delivered as apps that can simply target Android releases instead of specific devices (with some sort of basic DRM to keep the average consumer from installing them on other manufacturer's devices)?

It shouldn't be so hard; the PC industry got this mostly right decades ago.

</comment><comment><USER17> That seems like a tall order. You want them to charge for updates, but also make it easier for you to install updates without paying for them?

</comment><comment><USER18> I think we should start paying for Android updates, but only by donating to the after-market Android community like CyanogenMod. These are the folks who bring the latest Android goodness to devices long abandoned by their makers.

</comment><comment><USER19> Having to pay for Android updates would be a good reason to switch to iOS -- where updates are free.

The 3GS which was originally released with iOS 3 almost 3 years ago is still able to update to the most current iOS 5.1 for _free_.

<comment><USER11> And this is exactly the reason why paid Android upgrades is a terrible idea - Apple has set a gold standard for updating OS and paying for Android updates will make the situation even worse for Android users.

</comment></comment><comment><USER20> Ah, b0o seems to be hell-banned, but quite frankly, I agree. I've donated over $300 to various overlay maintainers for CyanogenMod.

Why? Because, time and time and time again, they manage to do in 2 months what it takes carriers/manufacturers 8 months (or really, never) to do: update the software on my Android phone to the latest release.

I kept both my Droid and Fascinate for a good 6-months or more extra because I was able to load CyanogenMod on it. They both were on higher versions of Android when I decommisioned them than they will ever see official builds for.

Give me an unlocked bootloader, follow the terms of the GPL and I'm happy. For regular users, if you want fast updates, buy Nexus or buy Apple. I'm a big Android guy, but honestly, if you want fast updates and the Galaxy Nexus isn't available for your carrier, and you're not willing to install CyanogenMod... just buy an iPhone.</comment>


Manage GitHub Issues with the command line - <AUTHOR> https://github.com/stephencelis/ghi

<comment><USER2> When GitHub is down, the thing I actually miss is the issues. You can't seem to clone them. Are there any public issue trackers that can be easily replicated?

<comment><USER3> Have you seen ticgit? <https://github.com/jeffWelling/ticgit>

All the tickets are kept in a branch within your git repository. It offers a Gem-based CLI, "ti".

It wasn't quite as frictionless as I like my issue trackers to be (especially for personal projects), but it does what it says on the box.

</comment></comment><comment><USER4> I've been using `ghi` for quite some time now and I'm definitely a fan. One feature I'd love to see is offline-mode because I often work on some personal projects during my commute.

</comment><comment><USER5> This would go great with Hub (<http://defunkt.io/hub/>) which provides pull- request integration.

<comment><USER6> so does ghi.

</comment></comment><comment><USER7> I have a similar gem but for pivotal tracker: <https://github.com/raul/pt>

<comment><USER8> I suspect this is something everyone feels compelled to do.

For github I wrote ghissues: <https://github.com/Neurogami/ghissues>

But ended up not using it (forget why) so it's likely way out of date.

For Pivotal I wrote Pivotal Slacker; that was in 2009; Github ended up hosing the repo somehow, and soon after I stopped using PT.

Anyways, both of these grow out that little voice that says, "I wish I could do this stuff at the command line. How hard could it be? I'll just write some code ... "

</comment></comment><comment><USER9> Unfortunately, this only seems to work on the remote named 'origin'. If your branch corresponding to GitHub is named something else (ie, 'github'), it won't work.

Nice work otherwise, though - I've been thinking about writing something like this for my own purposes in Go for a while now; glad to see someone else had the same problem.

If I have some time later today, I'll put in a pull request... unless someone beats me to the punch.

<comment><USER10> It actually lets you do this already, though the documentation is relegated to a manpage that doesn't get installed automatically. It checks, in order, for:

      - $GHI_REPO env var
      - git config ghi.repo
      - remote named "upstream"
      - remote named "origin"

So you can just use "git config ghi.repo username/reponame" to get the behavior you want.</comment></comment>


What happens after a defendant is found not guilty by reason of insanity? - <AUTHOR> https://www.nytimes.com/2017/09/27/magazine/when-not-guilty-is-a-life-sentence.html <comment><USER2> > people who have been found not guilty by reason of insanity or who have been > arrested but found incompetent to stand trial — are involuntarily confined > to psychiatric hospitals.

Here, "psychiatric hospital" literally means "prison with carpets". There are locked doors instead of bars, and caretakers instead of guards, but it's a prison all the same.

My brother had a mental breakdown ( _not violent or criminal_ , but threatening enough to himself for police to be involved), and ended up in the state "hospital" for quite a while. I almost wish it was a prison instead, because at least prison is honest about what it is.

These "hospitals" may be necessary for some, but as soon as you walk inside, you take a deep dive into the uncanny valley, and you yourself begin to question your own sanity. I won't even try to imagine what it would be like to be thrown inside with no trial, and told that you can't leave unless you prove to your accusers that you are adequately "normal"

The worst thing about the situation is that my brother didn't believe or understand he was ill, and the state gave him every reason to be angry, and reject the situation, rather than come to terms with it.

Thankfully now, he is in an assisted living facility, is allowed to leave, and can feel more like a human being, but while he is _very_ normal, functional, etc. he can't just go find work and go live his life. There doesn't seem to be an end game, and that alone is its own prison.

<comment><USER3> I have committed myself twice, once for being suicidal and once for life- ruining anxiety. It did not help in the way I expected. You are essentially not allowed to express confidence in your own health because your caretakers will assume you're overeager and take it as evidence you need more time in the hospital. Don't get it twisted, though, your stay length is entirely determined by convincing health insurance companies that any time there will reduce recidivism.

The smart people "play" healthy, not admitting ongoing doubts and concerns. Why? Because you go to the hospital to make rapid medication changes. The therapy offered is often insufficient, both in terms of one-one-one therapy and simply what you can cover during your stay. Overstaying is enough to make anyone clinically depressed. It can also cost a lot; while it is illegal to fire for mental health leaves, it is not uncommon to get let go for "unrelated reasons", to prevent paying for future stays, or simply because they're uncomfortable supporting their employees to this extent.

Mental health hospitals are aimed at maximizing the number of beds in use, ensuring everyone is at least as medicated as the doctor thinks they can handle, and pumping insurance companies for money. If you are considering one, use it to prevent crises, not to expect any kind of therapy suited for long- term help. The simply do not have the available attention, funding, or even reliable pharmaceutical research to make a dent in the latter.

To be honest, I have high hopes for psychedelics to make fruitful, therapeutic use in a short stay. As it is I've lost faith in the pharmaceutical industry to demonstrate the pills they make are effective, let alone not harmful to the general population. 3/5ths of the mental health prescriptions I've been given have been pulled from the market, linked to high suicide rates, or linked to other serious medical issues (no shit, Risperdal made me lactate as a male.)

...and of course, the absolute worst part is seeing people you know will never function in society, many rimes without family. I suppose better the asylum than the street, but we will likely always need long-term mental health care in publicly funded facilities.

<comment><USER4> Ironically, a great way to get out of psychiatric commitment is to cancel or threaten to cancel your health insurance.

<comment><USER5> Can you elaborate? I have my guesses what you mean but want to be sure I'm inferring correctly.

<comment><USER4> I lifted it from this: [https://twitter.com/twitkeels/status/860158814900953089](https://twitter.com/twitkeels/status/860158814900953089)

</comment></comment></comment></comment></comment><comment><USER6> You've got to get the ordinary man into the state in which he says 'Sadism' automatically when he hears the word Punishment." And then one would have carte blanche. Mark did not immediately follow this. But the Fairy pointed out that what had hampered every English police force up to date was precisely the idea of deserved punishment. For desert was always finite: you could do so much to the criminal and no more. Remedial treatment, on the other hand, need have no fixed limit; it could go on till it had effected a cure, and those who were carrying it out would decide when that was. And if cure were humane and desirable, how much more prevention? Soon anyone who had ever been in the hands of the police at all would come under the control of the N.I.C.E.; in the end, every citizen.

\- C.S. Lewis - That Hideous Strength

<comment><USER7> Lewis did put his finger on a nasty little quality of modern man with that quote. I don't know that the Hideous Strength is a good book - it's positively regressive in quite too many ways - but that quote there could stand to be put in plaques in many offices as a caution.

</comment></comment><comment><USER8> Tom, name made up, is a friend of mine. Sort of... I knew Tom for only a short while but I still write him letters and send him a few dollars every couple of weeks.

When Tom was just 18, he had finished school and was headed off to a large university on a sports scholarship. Not having any money, and coming from a poor family, he looked forward to this. It was going to be his big break.

But, Tom needed a wardrobe fit for a nice university. So, Tom went to the mall and proceeded to steal some clothing. Security tried to stop Tom so he pushed the security guard and ran away.

Tom, of course, went to jail. The DA offered Tom a 30 day sentence in a plea agreement and Tom, deciding his life was over, took a razor blade and cut his own throat.

Tom's 30 day sentence resulted in 10 years in a State mental hospital. Curiously, when he was released from the mental hospital, they still made him serve his 30 days.

Tom, now having nothing and a giant scar where normal skin once was, tried to meander through life as best as he could. This is where I met Tom. Tom loved drinking and doing drugs. His childhood years of experimentation had been lost to the system and Tom was making up for that. Tom and I had good times. I eventually moved on and no longer spent time with Tom. I'm not sure who was a worse influence on who, but that's immaterial and a story for another time.

One day, Tom had had enough. He just wasn't going to function and decided to end it all. He went down to the facility where he normally met his providers and took someone hostage. This, of course, resulted in the police being called.

Tom, for all his brilliance, was having none of it. The police came through the door and Tom attacked the first one through the door with his knife.

I'd like to say he put up a good fight, that he gave a good showing, and that he fought long and hard. No, he did no such thing. Cops being cops, Tom hadn't made it more than a couple of steps before they shot him.

Tom survived and is now back in that same State hospital. His letters tell me that he is even back in the same room. He expects to remain there for the rest of his life and likes to think he was sane, but just desperate, when the shoplifting occurred. He strongly suspects the system has made him even less sane and even more unstable. He seems to be okay with spending his life there.

All for some clothing to fit in at university...

<comment><USER9> Sorry buddy, but Tom was never "ok". You don't end your life for 30 days probation.

<comment><USER10> Having experienced the desperation and sickness that is the desire to "end it all", it is one of the most far from "okay" states that exist. There is (very nearly) no healthy and justifiable reason to take your own life.

</comment></comment></comment><comment><USER11> There was a very high profile case in Ontario over a decade ago. Basically, the man went into an absolute psychotic state on the travelling bus and cut the head off a stranger while everyone else on the bus ran for their lives.

A decade later, he's been released- under a lot of conditions and on a lot of medication, but people are very upset that he'd ever be free at all. In interviews, he's a very interesting person. "Regret" and "shame" aren't strong enough words.

It's a hard debate- if he was not guilty due to a medical condition, then he was not found guilty and shouldn't be in prison, certainly. But he did cut a guy's head off. Would you want to live next to the guy who did that _while not in control of himself_?

It's the extreme end of the situation, to be certain, but extremes are a great place to examine any system.

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

<comment><USER12> It is interesting because different people and different countries seem to have different ideas about he purpose of the the justice system. Punishment/retribution, correction/rehabilitation, or protecting the public. Someone like this may not be guilty due to insanity, but still be a danger to the public for example.

<comment><USER13> The thing that I worry about in these cases is the lack of "enforceability" of treatment. If keeping the person in control of themselves (such that they don't become violent again) means they need to be on medication for the rest of their lives, how do we ensure (post-release) that they'll always be on their meds?

I know of people on various medications for psychiatric reasons that have (against their doctor's recommendation) gone off their meds because they didn't like the side-effects. That might be fine (if unfortunate/difficult) for a mental illness that doesn't drive the sufferer to violence, but in the case where it does, how can you responsibly release someone if you don't have a mechanism to ensure they stay on their medication?

<comment><USER14> Mechanisms to enforce medication usage in the community do exist, usually by in-person visits to supervise taking medication. One such program is the "Assertive Community Treatment" model that exists in a couple different places in the US, here's a report from the King County (WA) group: [http://www.kingcounty.gov/~/media/health/mentalHealth/Docume...](http://www.kingcounty.gov/~/media/health/mentalHealth/DocumentsAndPDF/PACT_One_Year_PACT_Outcomes_2009.ashx?la=en)

I think the actual 'enforcement' in the way you are thinking would be backed up with some kind of court ruling that they were required to take the medication, I'm not so sure how that angle would work.

</comment></comment></comment></comment><comment><USER15> This happened to a family member of mine and it's honestly the best possible outcome for people as out of touch with reality as he is. This may not be the best system for some that get caught in it, but it does serve a purpose in dealing with the criminally insane.

He was too dangerous and unpredictable to live with us anymore. The rest of the family kept weapons under our beds of various kinds, hoping to God we would never need to use them. A group home was a joke, he would have assaulted someone within a week. He would escape and start driving on the wrong side of the road on purpose for "reasons". We hid the keys, but he was above normal intelligence despite his insanity and would always find them. He would attack his family and the neighbors when he thought we were after him.

His prospects were jail and homelessness, we were so happy when he ended up in a high security mental facility, ecstatic.

Now he's in a place that's better than jail or being homeless where people care about him at least a slight amount and there's relative safety. He's not surrounded by criminals, behind bars, or dying on the street.

Yeah, it's not a great place to be, but the best outcome an extremely schizophrenic large male can hope for. He doesn't deserve jail because he has no bearing on what is allowed in society and attacks people out of fear. When he's calm it can seem like you're talking to a normal person for a few minutes. Then he goes off the rails... But still there's a really intelligent shard of sanity in there somewhere.

</comment><comment><USER16> Just finished Manhunt: Unabomber[1] on Netflix. According to the show, it was Ted Kaczynski's entire defense to rebuttal his charges saying forensic linguistics and the FBI agent who "cracked" the case had no precedent. The agent was in fact a traffic cop before becoming an FBI agent and had little formal linguistics training. Instead Ted's defense behind his back went with insanity and tried to get him to plead to "save his life". Ted chose to plead guilty instead of insanity fearing his ideology and manifesto would be ignored if he pleased insanity.

[1] [https://www.discovery.com/tv-shows/manhunt- unabomber/](https://www.discovery.com/tv-shows/manhunt-unabomber/)

<comment><USER17> I have read his manifesto. That was actually not a bad read at all. I think some of the circuits in his brain was damaged and not functioning right, but certainly not all of it. Most of the points he brought up is logical and still applies till today.

<comment><USER18> Makes you wonder if his time in the MKULTRA program had anything to do with his decision to be violent.

</comment></comment></comment><comment><USER19> In Canada they get treatment and are set free without restrictions: [https://en.wikipedia.org/wiki/Killing_of_Tim_McLean#Aftermat...](https://en.wikipedia.org/wiki/Killing_of_Tim_McLean#Aftermath)

<comment><USER20> Slightly off-topic, but

> After the incident, People for the Ethical Treatment of Animals attempted to > run an ad in the Portage Daily Graphic comparing the killing of McLean to > the consumption of animals

WTF peta?

<comment><USER21> yes, that is the intended response

[http://slatestarcodex.com/2014/12/17/the-toxoplasma-of- rage/](http://slatestarcodex.com/2014/12/17/the-toxoplasma-of-rage/)

<comment><USER20> peta is the donald trump of 'rights organizations'

</comment></comment></comment></comment><comment><USER22> Louis Theroux did a 2 part documentary where he visited an Ohio psychiatric hospital that housed people who were found not guilty by reason of insanity.

[http://www.imdb.com/title/tt4546868/](http://www.imdb.com/title/tt4546868/)

<comment><USER8> Theroux's got a lot of stuff on YouTube. It may be copyright infringement, I don't know. I do know that it sits there, unchallenged, for years. He has lots of good documentaries up. I highly recommend all of them.

</comment></comment><comment><USER23> > In most states, like New York, there is no limit to the duration of that > commitment.

Couldn't the supreme court rule this type of punishment as "cruel and unusual punishment"? Technically there is a policy of reviewing "every 2 years" in perpetuity, so it's not like they don't have a formal punishment.

They mention a Supreme Court ruling regarding "due process" but not the 8th amendment. So it's basically as if this is sidestepping the constitution by pretending they aren't being punished?

[https://www.wikiwand.com/en/Eighth_Amendment_to_the_United_S...](https://www.wikiwand.com/en/Eighth_Amendment_to_the_United_States_Constitution)

<comment><USER24> Do you consider it much different from the practice of denying parole when convicts continue to profess innocence instead of professing contriteness? If someone is really innocent, they are in the catch 22 of staying in prison for life because parole boards deny release but if they just lie and pretend to feel contrite they get out on parole right away after serving time. There was a case on NPR recently but there's a name for the phenomena - [https://en.wikipedia.org/wiki/Innocent_prisoner%27s_dilemma](https://en.wikipedia.org/wiki/Innocent_prisoner%27s_dilemma) plus documentaries about similar cases - West Memphis Three, etc.

<comment><USER13> The thing about that is, in practical terms, the prisoners are making a terrible choice by sticking to their guns. They options are:

1) Keep professing innocence and stay in prison.

2) Lie and express remorse, and maybe get out.

3) Lie and express remorse, and maybe get out... and then work to retroactively exonerate yourself, when you're on the outside and actually have some chance of doing so without a lucky guardian angel taking interest in your case while you're in prison.

There are no legal ramifications to "admitting" guilt and expressing remorse. You already have the conviction on your record, so in the eyes of the law, you committed the crime, end of story.

I'm sympathetic to the parole board here, to be honest (which feels really weird to say). While they of course know abstractly that some innocent people are in jail and shouldn't be, they don't have much to go on when it comes to the prisoner in front of them. They have the prisoner's conviction record, without enough context to make a guilty/not-guilty call of their own (and do we even _want_ them making a call along those lines?), and their purpose is to determine if the potential parolee is likely to re-offend. They _have_ to assume the conviction record is correct, or it's basically impossible for them to do their job. And if it _is_ correct, and the prisoner professes innocence, they can't responsibly say that releasing them is a good idea.

Beyond that, if the prisoner is indeed innocent, there is a process for dealing with that outside the parole process. It's not perfect, and it's difficult for a prisoner to gain access, and I'm sure could stand to see some large improvements, but the parole process just isn't the place to get your sentence reduced because you actually are innocent.

<comment><USER23> > the prisoners are making a terrible choice by sticking to their guns.

Being a convicted felon has long repercussions outside of your original jail time where this calculated - seemingly rational - strategy you discuss is only a short term one...

There is an important point brought up in the OP's linked wikipedia page:

>> Medwed's Second Look clinic, a group dedicated to the release of innocent prisoners, assisted lawyers in his eighth parole board hearing which was successful, releasing him onto indefinite parole. _Overturning the original conviction would be hampered by his admissions of guilt at his parole hearings._

The admission of guilt extends well beyond the release from prison. Including jobs, reputation, future convictions... not to mention the possible compensation he could receive for if the original wrongful conviction is overturned.

</comment></comment></comment></comment><comment><USER25> Sorry but this is common sense. "I killed him but I was insane and I want to get out," nope, sorry but I don't think you should my neighbor unless someone makes sure that you are sane.</comment>


Can't Play by the Rules? It's Fine by Mr. Monopoly - <AUTHOR> http://www.nytimes.com/2014/03/26/business/monopoly-fans-invited-to-rethink-rulebook.html?action=click&module=Search&region=searchResults%230&version=&url=http%3A%2F%2Fquery.nytimes.com%2Fsearch%2Fsitesearch%2F%3Faction%3Dclick%26region%3DMasthead%26pgtype%3DSectionFront%26module%3DSearchSubmit%26contentCollection%3Dus%26t%3Dqry433%23%2FMonopoly

<comment><USER2> Isn't changing the rules while in mid-play just like an actual monopoly?</comment>


I Compiled 1M TypeScript Files in Under 40 Seconds. This Is How - <AUTHOR> https://medium.com/@urish/yes-i-compiled-1-000-000-typescript-files-in-under-40-seconds-this-is-how-6429a665999c <comment><USER2> Community-scale bulk code analysis; community-scale compilation caching; cloud-scale compilation parallelism.

What do future programming languages and environments then look like? As the constraints and costs on programming language design space again change?

FORTRAN survived from punch cards to present. But try to picture your current favorite IDE/language experience... on a punch card machine. Or a Lisp Machine, or Smalltalk IDE... on paper tape and console switches.

Stanford/Winstein's deterministic gcc compilation on lambda enabled `make -j 1000`-like parallelism - something vaguely like cold-cache compilation of ffmpeg in 1 minute for 10 cents. What changes when that's 100x faster and cheaper? When your linux kernel can be rebuilt as a boot step?

What changes when the time constraint on your type inference, is a couple of cpu _years_?

What changes when your toy language, with optimization of compiler performance still distant on the roadmap, is not performance restricted to toy-scale problems?

What changes when ML-based predictive code, becomes a form of code reuse and abstraction?

What changes when ...

... our languages and IDE's are allowed to become deeply different?</comment>


Facebook's Little Red Book - <AUTHOR> http://officeofbenbarry.com/project/facebooks-little-red-book <comment><USER2> Quite different from THE red book [1]

>>> Jung initially recorded his "visions", or "fantasies, or "imaginations"

Maybe not that different after all.

[1] [http://en.wikipedia.org/wiki/The_Red_Book_(Jung)](http://en.wikipedia.org/wiki/The_Red_Book_\(Jung\))

</comment><comment><USER3> Wow. This is gold. I find it extremely motivational as it contains concepts that I have always believed in.</comment>


Unimog – Cloudflare's edge load balancer - <AUTHOR> https://blog.cloudflare.com/unimog-cloudflares-edge-load-balancer/ <comment><USER2> There is a typo here:

"Otherwise, the packet has no corresponding TCP socket on the first-hop server. So it is forwarded on to the second-hop server to be processed there (in the expectation that it belongs to some flow established on the second-hop server that we wish to maintain)."

That should be udb.

<comment><USER2> udp.</comment></comment>


Fast median search: an ANSI C implementation - <AUTHOR> http://ndevilla.free.fr/median/median/index.html

<comment><USER2> I've been using a variation of quickselect to find median rows of a matrix at certain columns.

There's a problem with quickselect: while it will find the median, it doesn't properly pivot the median around itself if the median occurs multiple times. So you could end up with the median sprinkled around both sides, which may or may not be a problem (it was for me).

One way to solve this is to take a second pass over the data to pivot -- which is essentially the core of QS where you nibble from both ends and swap low/high values.

Another nice property of QS is that it'll be approximately sorted, with values generally growing closer to the median towards the middle. This helps if you need to do repeated sub-selections on the partitions.

<comment><USER3> There is actually a paper about exactly this:

"Optimal Pivot Selection in Fast Weighted Median Search"

ieeexplore.ieee.org/iel5/78/6236322/06193457.pdf

It gives a formula for the optimal subset size to use to find the pivot and also does some optimization after the first partitioning step.

</comment></comment><comment><USER4> maybe this is included and i missed it, but it's asymptotically faster to maintain a sorted tree of values plus a list of pointers to nodes in order added. if you store "number of values to right" in each tree node then finding the next median (moving the window one position) is O(log w) and total cost for whole array is O(n log w) iirc.

this is used to median filter images in the IRAF package. i don't know if the approach is published anywhere (it's pretty obvious once the idea of keeping points within the window in a sorted tree "clicks"), but frank valdes did test it against other approaches.

the main drawbacks are that the overhead/constant is pretty high, so you need fairly large datasets (more exactly, large windows) for it to be a win, and implementation in old fortran is a pain...

<comment><USER2> If the window is the length of the data, that becomes O(n log n) -- essentially no better than a sort?

For images and other kernel-based filtering, there is a O(1) median algorithm available: <http://nomis80.org/ctmf.html>

<comment><USER5> Thanks for the link. Note, though, that the median algorithm used there uses a different parameter for n than OP. It also is bucketsort-based and O(n), O(1) only amortized (in both parameters).

Additional knowledge of your data is often useful, like using the fact that all data are 8-bit integers above. Similarly, if you know your data is uniformly distributed, you could try Torben (in TFA) for pivot selection in quickselect.

</comment></comment></comment><comment><USER6> I would have liked to see a benchmark for the deterministically linear O(n) BFPRT [1] algorithm as well. It plays out well in worst case scenarios if you have a very large dataset.

[1] [http://en.wikipedia.org/wiki/Selection_algorithm#Linear_gene...](http://en.wikipedia.org/wiki/Selection_algorithm#Linear_general_selection_algorithm_- _Median_of_Medians_algorithm)

</comment><comment><USER7> That's funny. I just looked back at my old email, and I used this very quickselect.c implemention back in April 2008. It worked well and was wicked fast.

The algorithm by Blum, Floyd, Pratt, Rivest, and Tarjan takes 24n comparisons in the worst case. A description here:

<http://www.ics.uci.edu/~eppstein/161/960130.html>

However, this algorithm has an average case performance of 4n comparisons:

<http://www.ics.uci.edu/~eppstein/161/960125.html>

</comment><comment><USER8> Torbens method is very interesting. At each step it takes O(n) to half the range of inputs. This doesnt say much about how many numbers in the array it removes, but it does say that on average its about half, leading to O(nlogn) expected time. In the worst case it is Quadratic, with one example being [1, 2, 4, 8, 16, 32, 64, ...]</comment>


Samuel T. Cohen, Neutron Bomb Inventor, Dies at 89 - <AUTHOR> http://www.nytimes.com/2010/12/02/us/02cohen.html?_r=1&ref=science&pagewanted=print

<comment><AUTHOR> _"... In recent years, Mr. Cohen prominently warned of a black market substance called red mercury, supposedly capable of compressing fusion materials to detonate a nuclear device as small as a baseball — ideal for terrorists. ..."_

I thought red mercury was fiction?</comment>


Covert Pepper Grinder Shut Downs Electronics During Dinner Time - <AUTHOR> http://www.psfk.com/2015/03/dolmio-pepper-grinder-dolmio-pepper-hacker-unplug-during-dinner-time.html

<comment><USER2> Dolmio have zero interest in launching a wideband radio jammer mounted in a pepper shaker. This is just nonsense from their ad agancy.</comment>


Ask HN: What practices can we use to avoid overengineering in our projects? - <AUTHOR> About a year ago, I joined a web dev team that at the time seemed very close to an ideal work environment that you only see in books.
Every good practice is implemented: strict version control using git flow, standarized linters, unit and integraton tests that are required to pass to get code in our repositories, code review with a minimum of two approvals required, and a long etc.
Over time, however, we've seen the project slow to a crawl due to the amount of overengineering that is commonplace: If a new need arises, it's usually met with a new dockerized service that will have a three layer structure, testing, handles things in an abstract and generic way for future proofing....
It's come to a point where we have about 70 repositories (mostly just generic modules like a logger or an error handling library, but still) to manage a project that, to be honest, it's way too simple for the amount of code we maintain.
We all agree that we've fallen for overengineering, but merely being aware of this fact hasn't made us any more effective at tackling the problem.
Do you guys have any suggestion about how we could both mitigate future overengineering and reducing the current codebase to acceptable levels? Anything from methodologies to rules of thumb or recommendations of books would be welcome at this point. <comment><USER2> I actually appreciate this question for multiple reasons. Earlier in my career, I was praised for creating highly flexible solutions that could be easily customized. As a result, you can become conditioned to overengineer a solution.

Here's my advice on how to avoid it. I learned to rephrase the following question: Do I need this now?

At face value, this is a pretty easy question to answer, right? Here's the mental trap. I can always create a false scenario that "justifies" certain choices. "What if we have a spike of 1,000 users because of an announcement?" or "We need to make this system elastic now so we can scale up and down easily!"

Although these questions are valid, they don't need to be addressed immediately. This goes back to "Bring the pain forward". Instead, try to rephrase the question of "Do I need this now?" to become "Can I build this out later?"

This simple rephrasing does a few things.

a. It tells you and the team that you're not avoiding it, but you're prioritizing it. The last thing you want to do is solve a problem that isn't a problem that needs to be solved now.

b. It keeps important things on the radar. Very much like you do with Scrum and the backlog.

It's all about reconditioning engineers to make choices that are aligned with the business's immediate needs vs. "Wouldn't our system be amazing to the engineering team if we did this?" As engineers, our job is to support the business. Or let me rephrase that more strongly, our jobs as engineers is to allow our business to be so amazingly awesome in how we help our customers.

Any excessive code is distracting and introduces latency in development. Remember, we want to build fast scalable solutions. That means having a fast and scalable development process.

</comment><comment><USER3> > very close to an ideal work environment that you only see in books.

> Every good practice is implemented

There's no such thing as perfect. Pretty much everything has a tradeoff in coding. What are you optimising for? You need to work out what you're optimising for and drop practices that are getting in the way of that.

For example, if you're optimising for time to market and cost where a few bugs isn't a big deal then avoiding extensive testing could be a good tradeoff.

</comment><comment><USER4> Always ask why and why not to do X. Talk in terms of value add and intrinsic costs. Don't pitch building a lawnmower if you just want to trim a tiny grass stem.

The key here is simplicity. You want a system that 1) does what you want it to do 2) is simple and 3) easy to maintain. These points may mean different things to people within different domains, but for me, having fewer dependencies mean less points of failure, easier to understand/document and less prone to failures imo.

Hah, I had to deal with a code review comment recently where someone pitched creating a whole new C++ container to track just a minor exception case. Doing it this way is gonna cost a lot of engineering time plus added risk of a regression, on top of insignificant value add to the existing implementation. Realistically speaking, we could've just limp on that edge case if statement check that's well documented to describe what its intent was, and if more hairy edge cases come up down the road, we can throw up our hands and circle back to implementing THAT "more ideal" solution. (I doubt we'll even get there. I have questions for Product if we have such hairy requirements before I touch code tbh).

<comment><USER5> > Don't pitch building a lawnmower if you just want to trim a tiny grass stem.

I'm a fan of sprint from point A to point B with shovels and and machetes'

Then think about: Where are we. What's here. Was this even worth it? Is this exactly where we need to be?

Then start working on the real path from both ends and the middle. Or not, maybe the footpath is all you need right now.

I just remember.

I hacked together GUI to run a bunch of production tests. And it was a total trashfire. And the guys in the lab ran it for two and a half years like that. With no changes.

Early in my career I saw a hardware engineer get pissed at the software guy taking months to finish the firmware. Wrote it himself in three weeks, and shipped the fucker. The code was _ugly_ and _nasty_. But it was never changed once in production.

Edit: What I mean by this is the dev process needs to be aligned with what you're doing. Sometimes big process is appropriate and sometimes/often not.

</comment></comment><comment><USER6> \- You should establish a list of the desired properties of the finished product.

1] slices

2] dices

3] indicates time

4] dishwasher safe

      When you achieve these properties, stop its done, but be ready for a request to develop V2.0

maintain a >set< of codebases or snippet libraries each one specific to each property of a finished project.

Continually review the efficacy efficiency and utility of each said codebase.

Continually Review code for desireable properties [meta- engineering]

</comment><comment><USER7> > It's come to a point where we have about 70 repositories (mostly just > generic modules like a logger or an error handling library, but still) to > manage a project that, to be honest, it's way too simple for the amount of > code we maintain.

It sounds like your application should be a monolith rather than a collection of microservices.

</comment><comment><USER8> Reading "A Philosophy of Software Design" now, which answers these questions. The author states that raised red flags apply to systems too.

So without context is hard to tell, but it's a quick read, you might want to take a look and spot possible improvements without sacrificing quality.

</comment><comment><USER9> Focus on the exact problem being solved, start small, refactor progressively as new requirements come in.

</comment><comment><USER10> Maybe you have to try underengineering for a while, in order to find the middle path.</comment>


Ask HN: Advice for young and ambitious - <AUTHOR>

Hi HN. I'm a regular here. I am young, live in Australia and doing my own startup now. Never travel to US at all.
I have been thinking about startups a lot and willing to learn from the best.
Will I learn anything new by moving to Silicon Valley even though I am doing my own startup now in Australia?
PS. Any other advices that can advance my career are welcomed.
Thank you. <comment><USER2> I'm sure you've read these before, but Paul Graham has a lot to say about this:

<http://www.paulgraham.com/maybe.html> <http://www.paulgraham.com/siliconvalley.html> <http://www.paulgraham.com/kate.html>

</comment><comment><USER3> If you are serious about start ups (as in you want to accomplish something big), you should move to SV. Outside of SV, it's hit or miss (maybe your current start up will work, if it doesn't maybe you hit on the next one). If you move out to SV, you'll realize there is an ecosystem and an industry for you to 1) have a career and 2) meet people that are passionate about the industry and are like minded and 3) yes, you'll see more and be exposed to more and different parts of the industry (there are co's out here doing great in areas you'd never normally be exposed to).

But if you want lifestyle, Australia is probably great. If you want to be on the world stage, well, SV is it.

</comment><comment><USER4> Read up on OfBiz, its a very powerful apache project and you might find it useful.</comment>


Scientists say they can make light travel 30x faster - <AUTHOR> https://futurism.com/the-byte/scientists-make-light-travel-faster <comment><USER2> Subspace communication?!</comment>


Rewriting our whole WebRTC stack in C across 3 platforms - <AUTHOR> https://lookback.io/blog/introducing-cloud-recording <comment><AUTHOR> I've long been a proponent for rewriting rather than slowly iteratively fixing, once you're at a certain level of technical debt. The success of this project really strengthens this idea for me, and I'm really really happy with the result!

Also, writing stuff in C in this day and age feels pretty great.</comment>


Tell HN: How I live on $2,555 per year - <AUTHOR>

I moved to South America and lived on a farm. $7/day * 365 = $2,555. I win. <comment><USER2> How's the internet connection?</comment>


Build Laravel Applications faster, Easy to install, Effortless to customize - <AUTHOR> https://github.com/getspooky/laravelDash <comment><AUTHOR> LaravelDash provides a powerful user interfaces for CRUD (create, read, update, delete) operations for Laravel applications. It offers additonal features including Charts , Panel Management , Settings , Payment System and Store</comment>


Startup to Take on PayPal - <AUTHOR> http://www.darkreading.com/document.asp?doc_id=130099&WT.svl=news1_1 A secure electronic payments startup plans to challenge PayPal, but with a twist: It permits transactions for online pornography and gambling, which PayPal does not.
<comment><USER2> It's beyond ridiculous for an American company to attempt to process gambling transactions. I'd be extremely leery of using them for anything, as they're going to be shut down and have their funds seized without a doubt.

</comment><comment><USER3> Has anyone else ever wondered: what would I tell my parents if I got involved in the adult entertainment industry?

<comment><USER4> You'd be telling them "sure you can borrow my second yacht this weekend."

<comment><USER5> It is a myth that people working in adult entertainment make a lot of money.

<comment><USER4> no I was talking about gambling.

<comment><USER5> ahh. You're right then. Though I'm not sure how recent regulations have changed things.

</comment></comment></comment></comment></comment><comment><USER6> The headline is misleading. The company is not trying to take on PayPal, they are just trying to fill the void that PayPal leaves.

<comment><USER7> What an excellent choice of terminology for this subject.

</comment></comment><comment><USER8> After the whole NETeller debacle, I would be wary of association with anyone providing service to online betting shops. <http://www.wnbc.com/news/13656319/detail.html?subid=10101421>

<comment><USER4> That was the US goverment's screw up and that had terrible consequences for many startups, even outside of gambling.

Blame those who caused this, not the companies.

<comment><USER2> It was not the US Government's screwup, it was the Neteller founders' for coming to our country. Had they had the common sense to remain overseas the whole debacle would have been avoided.

Regardless of where you stand on the issue (and I'm obviously as pro-gaming as they get, since I made my living for 5 years playing poker online) the fact is that the DoJ is going to systematically destroy anyone who has anything to do with online gambling. Anyone starting any startup in that space in this country is begging for jail time.

<comment><USER8> That was my point exactly. I would think anyone setting up a wide ranging electronic payment system must need some sort of funding, banking deals etc. Being US based, getting that with a prominent link for Online Casinos etc. to sign up as merchants on the front page, seems rather unlikely. Hence, unless they refocus, the whole startup seems a bit unserious. I wish them the best of luck, though; hoping that does not make me guilty by association:).

<comment><USER9> A swiss startup should give this a shot! They have what I think would be a unique advantage... they automatically inherit the trusted & neutral "brand" thing associated with swiss banks.

It would need to prove stable but it might be enough to give Paypal or any other fund processor (online banks even?) a real run for their money.

</comment></comment></comment></comment></comment><comment><USER10> <meta name="Generator" content="Joomla!...>

How lame.</comment>


Now Nvidia is armed to the teeth - <AUTHOR> https://www.nextplatform.com/2020/09/14/now-nvidia-is-armed-to-the-teeth/ <comment><USER2> It is really hard to see how this benefits any of the current arm licensees. I imagine the market for high-end embedded and server RISC-V designs exploded overnight. Maybe MIPS will even make a comeback.

</comment><comment><USER3> Another parking garage full of cash, and still no Holodeck....</comment>


Intel (MobileEYe) starts testing self-driving cars in Jerusalem - <AUTHOR> https://techcrunch.com/2018/05/17/intel-starts-testing-self-driving-cars-in-jerusalem/ <comment><AUTHOR> For context:

In 2017 Intel buys Mobileye in $15.3B deal

MobileEye is mostly based on classical ML and vision algos (just like Boston Robotics) rather than DL.</comment>


Bill Gates Backs Plan to Surveil the Entire Planet from Space - <AUTHOR> https://gizmodo.com/bill-gates-backs-plan-to-surveil-the-entire-planet-from-1825391325?IR=T <comment><AUTHOR> "Notably, Gates' contribution to the project isn't mentioned, but it should be obvious. He's rich, of course, but he's also well-connected and brings a lot of global goodwill. The company's goal is to make money selling its service to government and enterprise clients ..."

Until reading the article I hadn't really considered it, but now I think it's inevitable. There are competitors, apparently, already out there in space with the same intention.

It goes on to list a number of laudable things that could be done with this technology - watching whale migrations, catching illegal fishers, better weather forecasting - but that all feels like so much hokey PR. I suspect it will most likely be used for war and controlling people.

</comment><comment><USER2> Why they could make the _entire planet_ into a great big red light camera!

Think of all of the crime you're committing right now that some data wonk in a little room will be able to fine you for after this goes online.

Just the speeding tickets alone could fix the national debt! We're saved! _Hoo-fricken-ray for technology._

</comment><comment><USER3> This is orwellian and dystopian! Who else thinks so?</comment>


Building solar farms above the clouds - <AUTHOR> https://news.cnrs.fr/opinions/solar-energy-aims-for-the-sky-0 <comment><USER2> I just did the math, it works out!

What we need to do is move the aluminum reduction cells into floating solar powered processing units which drift around the world receiving aluminum oxide from drone craft and deliver refined aluminum back to them.

It will take 59 kilojoules per kilogram to raise the ore to 6km, times the inefficiency of the craft, lets say a number less than 10. Plus, aluminum oxide is only about half aluminum so another 2, lets call it 1 megajoule per kilogram of aluminum in round numbers.

Refining aluminum oxide into aluminum takes 54 megajoules per kilogram of aluminum! (according to a number I found on the internet and most probably read correctly).

That makes the energy to raise the aluminum negligible. So forget about how to transmit electricity down from the solar pelagic behemoths drifting lazily around the planet, just use them to refine aluminum.

Ships of aluminum oxide will cruise out to the behemoth orbitals and track them while they exchange their cargo for refined aluminum.

Presumably a sufficiently clever person will find areas in the Pacific ocean where the behemoths can lazily circle by gently pushing themselves from eastward to westward currents using altitude variation which is easy by controlling how much inventory is onboard, but also by how much waste heat you put into your gas bags. Sure, once in a while they will be blown away on longer excursions, that will take them offline until they can get back over another drone supply ship.

This is the future science fiction has been promising me!

</comment><comment><USER3> Solar in space is only about 2x more effective per unit area of solar panel than solar on the ground, after you deduct transmission losses. The costs, of course, are much higher. The enthusiasm for hydrogen as energy storage is misplaced. Electricity to hydrogen to electricity is maybe 40% efficient. Lithium batteries are 80% - 90% round trip.

In any place that needs air conditioning, solar power is very effective. Peak load and peak solar panel output line up nicely, and little storage is needed. Keep it simple.

<comment> m-i-l Some countries don't get much sunshine though, e.g. the UK only gets sun around 30% of the daytime according to [https://en.wikipedia.org/wiki/Climate_of_the_United_Kingdom](https://en.wikipedia.org/wiki/Climate_of_the_United_Kingdom) .

<comment><USER4> Spain isn't that much farther away than outer space.

<comment><USER5> We can't beam energy from Spain to elsewhere via microwaves, though. And it still gets dark at night in Spain.

<comment><USER6> It gets dark in the stratosphere too, and the UK already has a power grid connecting it with the Spanish power grid which doesn't rely on 20km cables into the sky...

<comment><USER5> The parent post was about outer space, not the stratosphere. And that method uses microwave transmission, not cables.

<comment><USER7> Outer space gets dark too you not sure which orbit will get you 100 sun time solar synced orbits still get 50% night time. Maybe some geosync high polar orbit but then you have issues with transmition. Space solar makes very little sense you only get twice the solar power at 50% efficiency rate at best.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> How are these things supposed to stay aloft? They need to lift:

1) Themselves

2) The solar panels

3) Fuel cells

4) 20km of tether and cable

The idea seems really neat, but I'm an engineer and I want to see the math.

Edit: And how about that tether? What's the wind load going to be like? How is it moored? What is it made of?

<comment><USER9> why tether? why not let the balloon charge a battery, and have drones carry the battery back to earth when full, and vice versa...

<comment><USER10> Good question. The winds up there are _really_ strong.

Tethering also lets you wind the appliance back to the ground even when (especially when) it's faulty.

Tethering also lets you obtain power throughout the 12+ hours of power generation per day.

<comment><USER9> Maybe the balloons could be autonomous as well, rising/falling depending on conditions, and also falling to an acceptable elevation for the drones to reach them efficiently :)

</comment></comment></comment></comment><comment><USER11> It seems easier to put solar power in deserts Mojave desert, Sahara and transport the power via high voltage direct current which has low tranmission loss.

[https://en.wikipedia.org/wiki/High- voltage_direct_current](https://en.wikipedia.org/wiki/High- voltage_direct_current)

It should also be possible to put solar power high on mountains in areas where they place observatories that is no cloud cover.

</comment><comment><USER12> The fuel cell part is a bit dodgy. It would make more sense to include a little hydrogen bottle on the tether if extra H2 is needed to top of the balloon.

And there's no point to storing power in the air like that - it's better fed to the grid when the sun is shining to be stored at the grid level. Generating hydrogen just isn't a very efficient way to store power.

</comment><comment><USER13> If you're going to use huge tethered balloons, why use PV? You've got the benefit of strong predictable winds up there, 24 hours a day, so once you've bought into the cost of tethered aerial power, wind seems a better bet.

</comment><comment><USER14> More junk science designed by artists?

Wind I can see making sense since at high altitudes, it's more constant.

Creating and storing the hydrogen in the balloon triggers a strong, this is just fluff. We can't really even do this on the ground.

They are inventing two new technologies we yet don't have?

I going to go with, it'll be better covering the other 98% of roof space with solar first. And get wind powered balloons going for night time use if you're going down this route.

</comment><comment><USER15> I live in the mountains just a few hundred meters above sea level. It's often clear here when it's cloudy in the valley. There must be other places like this where you could put the panels, without having to resort to balloons?

</comment><comment><USER16> Although it has always been a good idea for something like this. I'd be surprised if the FAA allowed such a thing to happen. It would have to be a permanent NOTAM, and in an already existing no-fly zone for personal aircraft.

<comment><USER17> Save you folks a google:

A Notice to Airmen (NOTAM or NoTAM) is a notice filed with an aviation authority to alert aircraft pilots of potential hazards along a flight route or at a location that could affect the safety of the flight.

NOTAM - Wikipedia, the free encyclopedia [https://en.wikipedia.org/wiki/NOTAMWikipedia](https://en.wikipedia.org/wiki/NOTAMWikipedia)

</comment></comment><comment><USER18> Oh, yeah, and give me shadows in the land.

I hate the idea because it has the potential for abuse: If it works it means blocking the sky for those under. Like making clouds to artificially rain on your land, while not raining where it used to rain.

Sun is one of those fantastic things that is free. Free until someone has the idea to appropriate it.

Problems to aircraft makes this idea non practical near population centers, where energy is consumed. It is possible in the ocean.

<comment><USER19> The shadow from a balloon six kilometres up is basically non-existent. When was the last time you noticed a shadow from an overflying jetliner cruising at that height?

</comment></comment><comment><USER20> Isn't it easier to modify the weather in an area populated with PV?

<comment><USER21> Modify it how? We have some fairly blunt instruments like seeding clouds to modify weather, but those wouldn't be of much use here. Of course, it seems a lot more straightforward to build solar farms in Arizona or Algeria, though transmission is still a problem. Possibly they could be used to generate hydrogen for synthesizing fuels...

<comment><USER20> True, seem to be harder to go the opposite way.

Something noteworthy: China plans to halt rain for Olympics - [http://www.latimes.com/world/la-fg- rain31jan31-story.html](http://www.latimes.com/world/la-fg- rain31jan31-story.html)

</comment></comment></comment><comment><USER22> What kind of danger would this kind of thing pose to airplanes?

<comment><USER23> I was making this argument in another thread yesterday.

The fact that aviation currently assumes it has exclusive right to all airspace does not mean things have to be (or even should be) that way.

The vast majority of commercial air traffic file flight plans and flys along well know routes.

There's currently outcry about drone pilots "flying in dangerous manner for airplanes/helicopters", but it seems to me that nobody ever agreed that the occasional police or news helicopter flying over my local park was automatically reason to ban flying drones/kites/rc-aircraft there _ever_.

Same here, just because general aviation has had un-contested access to the sky and the freedom to assume they're entitled to unimpeded safety _everywhere_, is not something we've ever chosen - it's just "the way things have always been", which isn't necessarily "the way things should stay".

If someone comes up with a technical way to make tethered balloons work as a reliable and cost-effective renewable energy source - I personally don't think that "but it might impose a safety risk to airplanes who want to fly there" is a good enough reason to not allow them to try.

There's is (I suspect) a great "safety risk" to flying your Cessna or gyrocopter over, say, Area 51 or Groom Lake or The Whitehouse, why shouldn't pilots have the responsibility to avoid tethered-balloon electricity plants as well? Surely the net benefit to society of a few GW of renewable energy is way more than the ability of civilian pilots or news choppers to have unlimited access to all airspace at all times for no reason?</comment></comment>


Schema.org 3.3 has been released - pablo-massa http://blog.schema.org/2017/08/schemaorg-33-news-fact-checking.html <comment><AUTHOR> I like the idea of standardised ways to provide semantic meaning but every time I look at it beyond a sitemap.xml, I feel like I need to hire an expert just to know what to use where</comment>