Mature Optimization - <AUTHOR> http://cowboyprogramming.com/2007/01/04/mature-optimization-2/

<comment><USER2> Good article. Let me try to generalize his main point a little further:

"Premature" does not mean "early in the project" -- it means "before you have hard data to justify the optimization". The reason this guy's optimizations aren't premature is that he's implementing a game engine, a well-established class of program with well-known pitfalls. His hints _are_ based on hard data -- data from earlier game engines, which he and his veteran colleagues have managed to acquire and digest.

In general, it's hard to use performance data from one software system to design optimizations for another -- the two projects must have similar platforms, design constraints, and architecture. But the programs this guy is talking about are all in the same family -- they're built in C++, constrained to run in real time and monitor interactions between hundreds of in-game objects, and descended from a long line of ancestors whose architecture has evolved step-by-step since the earliest days of game programming.

</comment><comment><USER3> I've been thinking about good observations can degenerate into anti-patterns in the folk wisdom of programmers, and this article hits one of them square on the head.

Pattern: "Adding more programmers to a late project makes it later." Anti- Pattern: "Don't bother hiring more developers."

Pattern: "There is no silver bullet" Anti-Pattern: "A more productive programming languages won't solve any of your problems."

To this, I'll now add...

Pattern: "Premature optimization is the root of all evil" Anti-Pattern: "Throw away your algorithms book."

<comment><USER4> That last one misrepresents the complaints about premature optimization. It isn't the algorithm choice that is premature, but, say, the difference between using an std::string or char*.

That difference doesn't really matter unless it's part of a bottleneck of a developed system. But the O(bottleneck-function) is determined by the algorithm choice, which isn't premature to plan before starting coding.

I peeked into the ANSI Common Lisp chapter on optimization, which I think starts out by saying "optimization starts on the algorithmic level". I couldn't agree more.

<comment><USER5> Optimization starts at the requirements and architecture design stage.

Requirements: The fastest feature is the one that you don't implement.

Design: Quicksort may be faster than bubblesort. But it doesn't matter if you have layers of singletons and visitors and decorators and observers.

</comment></comment></comment><comment><USER6> You can safely ignore this one if you are working on server software. Instead you really should focus entirely on functionality and ignore all considerations of performance until you actually have a problem. Be a dogmatic anti-premature-optimizer! You can always throw some hardware at the problem later.

If you are building something that will run on machines you don't control... well, then your problem is a bit different. If you are doing that _and_ it's a something like a game, which must "feel right", well... maybe you should make some decisions up front trading off productivity for runtime performance. But even in those extreme cases, you are probably better off fixing speed problems when they come up, not before.</comment>


Ask HN: How do you describe pre-existing IP for contracts? - <AUTHOR> For one of those contracts that have an appendix where you list any existing IP that you own, how do you fill that section out?
a) Is it just a bulleted list of project names and dates begun?  An in-depth description of every class/method/function you've ever written for your own use?  Something in between, and if so, what?
b) How do you describe ideas that are still in the ideation or design stage? <comment><USER2> I had to do this once, so I just went through my GitHub repos and listed everything in very general terms.

E.g. "A system for processing media data"

Keep it general, the people who gave to sign this off are likely not technically capable to realise how broad your generalisations are, so just list everything</comment>


Hiring your first employee- a UK guide - <AUTHOR> http://blog.crispyfriedsoftware.com/post/14179700393/hiring-your-first-uk-employee

<comment> Tim-Boss Very useful for new founders, although as you quite rightly point out if you pay a half-decent accountancy firm to handle your company finances they should be sorting most of this out for you!

<comment><AUTHOR> Glad it helped- I found the need for Employer's Liability Insurance to be the biggest surprise, so wanted to flag that up to people.

<comment><USER2> It's also be worth knowing that some insurance deals aimed at small businesses bundle up several of the most useful/legally required types of insurance, including Employer's Liability.

For example, my contracting company took out a policy for the Professional Indemnity cover, but it also comes with some Public Liability and sufficient Employer's Liability cover to meet statutory obligations if we take on employees.

I don't know whether this works out cheaper than finding separate policies for exactly what you need, so obviously please do your homework if you're in a position of needing this type of cover.

<comment><USER3> Often you'll buy what's called a 'commercial combined' policy, which will usually cover professional indemnity, employer's liability and product liability (if you sell things), plus extensions such as theft cover.

EL is the only compulsory insurance which applies to all private sector employers, although in certain industries you will have additional requirements (e.g. conveyancers have to purchase professional indemnity insurance).

</comment></comment></comment></comment><comment><USER4> About PAYE;

What happens if you are employing someone at the limits and then they go out and get a bar job too? Would I then be liable for the relevant amount of contributions? Am i responsible for knowing that my employee hasn't gone and got another job without telling me??

Assuming i would be responsible for PAYE if they got more work, then am I allowed to make not having other employment part of their contract? If i am not making PAYE contributions, does the employee have any NI contributions? (eg. paid by the state?), or are they elligable for any tax credits/benefits? (IIRC JSA could be claimed if working < 16h /wk -- although IIRC earnings would count against JSA money, NI would at least be paid, right?)

Finally, How do all these things change if you are employing someone from the EU, or outside??

<comment><USER5> first, ask an accountant. about everything there.

second, some friendly advice: my approach would be to register them for PAYE even if they're only close to the threshold; this means they are future proofed if they step up hours / get a bar job. I know economists will tell you effort up front is worth more than cheaper effort in the future, but that's only one opinion!

finally, I believe that EU citizens are treated exactly the same once issued an NI number - but see my first comment about all matters of tax law!

<comment><USER4> It's not just effort, avoiding PAYE is saving money.. bootstrapping and all that.. similarly for the accountant, although i am due a meeting. Still, if anyone knows, please go ahead and share.

</comment></comment></comment><comment><USER6> Great guide but I want to highlight the employer's responsibility for home- working employees (self-employed would cover this themselves) as your first employee, Hannah, falls into this category.

The employer is still responsible in providing suitable office equipments for the home-worker, i.e. office chairs, desks, lighting and computers. If the home-worker is using their personally-owned equipment for work, the employer is still liable in ensuring the equipment is fit for purpose and get it test/certified for electrical items.

It is up to the employer to ensure the home office is at the same health and safety and data protection standards as they would in the office and yes a H&S risk assessment will have to be carried out.

You may also have to purchase public liability insurance if they receive business visitors into their homes as well.

I'm not trying to put a downer to home-working (I do some myself) but few SMEs realise the true implications of offering home-working until they get a letter from the lawyers demanding compensation for their employees' injury from tripping on some cable they placed themselves in their home office whilst working.

</comment><comment><USER7> I'm curious: Could you not simply designate the new hire a 'contractor' since they are working from their own premises? You could then save having to deal with all the employee paperwork and insurance...?

<comment><AUTHOR> You have to be pretty careful with this sort of thing. You can't just say someone is a contractor and they become so. This is covered by something called 'IR35'.

What this basically says, is if someone looks like an employee, they're doing the job of an employee, then they are an employee, whether you like it or not.

Most UK IT contractors will be pretty familiar with this situation, and the ways to avoid being caught out by it.

However, as my employee is mostly customer service, admin etc, and doesn't work for anyone else, I don't think there's a way round it for me!

<comment><USER3> IR35 is not quite the same as whether someone is employed or a contractor - you could claim to be a self-employed contractor when working from home and IR35 would not apply. If you did that then it would be a question of whether you were employed or self-employed, and that would determine which forms of national insurance contributions were paid (your income tax would remain the same).

IR35 was introduced to stop contractors from setting up a limited company and then having the company contracted instead of the individual. The individual would then take dividends out from the company, which are taxed at a lower rate and not subject to national insurance.

<http://www.hmrc.gov.uk/ir35/>

</comment></comment></comment><comment><USER8> Nice concise guide. Thank You.

</comment><comment><USER9> what would the equivalent be in the US?

<comment><USER10> A lot of the equivalent in the US will be dependent on state law, so it will vary depending on location.</comment></comment>


Operation Yellowhammer: the UK government's no-deal Brexit planning assumptions [pdf] - <AUTHOR> https://static.rasset.ie/documents/news/2019/09/operation-yellowhammer.pdf <comment><AUTHOR> Moderately reliable sources inform me that this is not the 'worst case' scenario as described but the base case.</comment>


Ask HN: Is the DEF CON conference worth it for security enthusiasts? - <AUTHOR> I'm a junior software engineer working at a security company, and always try to deepen my knowledge on the field because I've very interested in it. I can definitely see my career staying in the security space. DEF CON seems kinda cool, but after having been to several conferences like RSA and JavaOne I'm a bit jaded. Networking opportunities are better at smaller meetups and most tech talks are just guys reading off a set of powerpoint slides, and the material can be easily found online. DEC CON seems interesting, but I'm not sure if its worth my money (tickets, flight, hotel, etc) and using up PTO. Does it offer something that other conferences don't? <comment><USER2> Black hat is worth it. DefCon is basically a post-BlackHat party.</comment>


Dooby, a command-line tag-driven mini to-do list manager in Ruby - <AUTHOR> https://github.com/rafmagana/dooby

<comment><USER2> Ack! Name confusion ahead. There is a Duby also already in the Ruby community: <https://github.com/headius/duby></comment>


Show HN: Highlander – Stop Overlapping Python Cron Jobs - <AUTHOR> https://github.com/chriscannon/highlander <comment><USER2> Does anyone use flock? I came across it recently and believe it serves the same purpose, very useful from cron tasks:

man page: [http://linux.die.net/man/1/flock](http://linux.die.net/man/1/flock)

Example: [https://ma.ttias.be/prevent-cronjobs-from-overlapping-in- lin...](https://ma.ttias.be/prevent-cronjobs-from-overlapping-in-linux/)

<comment><USER3> Yeah we use flock for this all the time. So much so that I'm surprised this is news.

<comment><AUTHOR> This is a pure python solution.

<comment><USER4> Does that add value to stop overlapping from jobs?

</comment></comment></comment></comment><comment><USER5> As someone who has had to write this themselves multiple times, there are a few bits that I consider to be missing:

1) Command line verification - is the pid owned by the same type of process as is running now? PIDs are re-used, ensure it's the same (the creation time check helps, but it doesn't say anything about what process wrote it).

2) Process Hang Detection - Has the process actually consumed any CPU ticks in the last minute?

3) Infinite loop detection - Is the other process stuck processing something uselessly?

4) Killing off stuck processes - 2 or 3 true? Behead it and continue on. Optionally do some form of alerting - stderr is probably fine.

Add these, and I would personally find it much more useful.

<comment><AUTHOR> To address your concerns:

1\. I assume that it's the same type of process because by default the PID file is being written to the current working directory of the script. If you'd like, you can specify a location yourself to ensure that each type of process is grouped on one PID file.

2\. Out of curiosity, how would you go about doing this?

3\. I think this would be _really_ difficult to accomplish.

4\. I agree if we could somehow figure out 2 or 3, that would be great.

<comment><USER6> The point for #1 is that PIDs are reused. Just because the cron job previously started a process with a PID 473 doesn't mean that PID 473 is that same process the next time the cron job comes around to check. It's entirely possible that the original process was finished or killed and a new process started with the same PID.

<comment><AUTHOR> This is why I also store the creation time to avoid reused PIDs.

</comment></comment></comment></comment><comment><USER7> On systemd systems there's an easier alternative to this. You can use the per- user systemd instance (systemctl --user) to install a .timer that activates a .service file. If the .service is still running when the .timer next fires, it will not be started again. Systemd is pretty good at this kind of bookkeeping.

<comment><USER8> This really isn't meant as piling on systemd - please don't read it that way!

But, has systemd now replaced cron too?

<comment><USER9> Yep: [http://www.freedesktop.org/software/systemd/man/systemd.time...](http://www.freedesktop.org/software/systemd/man/systemd.timer.html)

</comment></comment></comment><comment> wc- I've had a lot of sucess using a key in redis with a TTL value instead of a local PID file. Although adding redis to the picture adds a large new point of failure, I can then have a cronjob set up on multiple instances and still ensure it only runs once across all of them.

I'm sure there is a simpler way of doing this, how have other people solved redundantly ensuring a single cronjob runs?

<comment><USER8> The common and "traditional" way of doing distributed locking is with a coordination service like ZooKeeper. ZooKeeper style services have an advantage of no TTLs - the moment a process dies, the lock is released, and the next in line waiting on the lock is immediately notified.

Redis/Memcache with a TTL serves this purpose for the most part, but if you require as close to a 100% guarantee that 1 and only 1 process holds the lock at any given time, these will eventually fail you. Think network partitions, tasks outlasting the TTL, replication lag/eventual consistency etc.

ZooKeeper and similar use concensus protocols like ZAB, Paxos or Raft to provide guarantees even in the face of failure.

<comment><AUTHOR> This is not meant for distributed systems.

<comment><USER8> The parent comment was certainly talking about distributed systems!

</comment></comment></comment></comment><comment><AUTHOR> I always encounter the problem where I write Python scripts that run on a cron job that sometimes take longer than the interval before the same cron job will run again (e.g., I have a cron that runs every hour and one run takes 2 hours to complete). In this scenario, you would want the first cron to complete before the second cron is run. What Highlander does is if it sees that your cron is already running, it immediately returns thereby skipping that cron run.

<comment><USER10> Does this work with celery tasks?

My usual solution is to add checks in the cron job to make sure they don't repeat or duplicate anything, by using an audit table. So for example when a celery tasks triggers an email, I store an event called EMAIL_X_SENT to the audit table with meta data and check it later before sending it again.

Of course it complicates the logic a bit but I've noticed it's the same pattern that works everywhere so I just abstracted most of into a custom task class.

Another way typically is to use a shared lock just like above except in the cache backend. So you could probably extend highlander to use cache backend etc.

<comment><AUTHOR> I think you could use this with celery tasks so as long as each worker used a different PID file.

</comment></comment></comment><comment><USER11> Windows has by far the best solution to this since Windows Vista/2008 server. Full instance control provided by the OS, fully scriptable with powershell, desired state configuration (like ansible), clustering, logging, fully event driven i.e. can trigger on network/OS events with GUI, WMI, script and COM integration.

Genuinely wish someone knocked out something like this. systemd is part of the way there but not quite far enough.

<comment><AUTHOR> This is a multi-platform solution.

</comment></comment><comment><USER12> Always bring this up anytime I see "Highlander" being used for a project name.

[http://blogs.msdn.com/b/oldnewthing/archive/2014/09/23/10559...](http://blogs.msdn.com/b/oldnewthing/archive/2014/09/23/10559783.aspx)

<comment><USER13> Thats a great link, but I think the project is named highlander not because its the only such project with this function, but because its function is for there to be only one instance of process running.

</comment></comment><comment><USER14> Why not just use the fnctl module from the standard library?

</comment><comment><USER15> Is there a library to just parse cron strings and know when to fire?

</comment><comment><USER16> In other words, it effectively makes the process a singleton?

<comment><AUTHOR> If you want to look at it from an OO perspective I guess you could say that. It simply just only lets one python script run at a time.</comment></comment>


In Kenya, Safaricom's Little Cab App Goes Head to Head with Uber - <AUTHOR> https://techcrunch.com/2016/07/31/in-kenya-safaricoms-little-cab-app-goes-head-to-head-with-uber/ <comment><AUTHOR> Just goes to show that there is a large and emerging market that Uber has yet to corner [1]. Interestingly, this thread [2] mirrors my experience with and view of local taxis in Nairobi/Kenya [3, 4, 5].

[1] It's Already Over And Uber Has Won [[https://www.buzzfeed.com/johanabhuiyan/its-already-over- and-...](https://www.buzzfeed.com/johanabhuiyan/its-already-over-and-uber-has- won?utm_term=.nxMwqXRP1#.hfXxLzO2Z)]

[2] [https://news.ycombinator.com/item?id=12199721](https://news.ycombinator.com/item?id=12199721)

[3] The race for Nairobi's taxi market [[http://savannah.vc/2014/03/26/the- race-for-nairobis-taxi-mar...](http://savannah.vc/2014/03/26/the-race-for- nairobis-taxi-market/http://savannah.vc/2014/03/26/the-race-for-nairobis-taxi- market/)]

[4] Uber Battles Locals for Future of African Taxis [[http://www.wsj.com/articles/uber-battles-locals-for- future-o...](http://www.wsj.com/articles/uber-battles-locals-for-future-of- african-taxis-1431992939)]

[5] Nairobi's taxi hailing startups: too much of a good thing [[http://disrupt-africa.com/2015/06/nairobis-taxi-hailing- star...](http://disrupt-africa.com/2015/06/nairobis-taxi-hailing-startups-too- much-of-a-good-thing/)]</comment>


Startup Visa: More Startups. More Jobs. - <AUTHOR> http://www.startupvisa.com/

<comment><AUTHOR> Votizen is doing something awesome. They are setting up a platform for people to be able to tweet or text their support of a political issue, and if you're a registered voter, those tweets and IM's get hand delivered to your representative and senators.

Their first big push is about the startup visa. I feel strongly about this because of all the amazing startups I see at Hackers & Founders struggle with visa issues.

We'd love your support.

<comment><USER2> Great issue for the first push, too, this is one that pretty much all of the technerati agree on. Good luck.

</comment></comment><comment><USER3> The bill has been reintroduced in the Senate: [http://kerry.senate.gov/press/release/?id=4e6a51f6-fb2b-4212...](http://kerry.senate.gov/press/release/?id=4e6a51f6-fb2b-4212-b299-b0c46c7e6b58)

</comment><comment><USER3> If anyone's got personal stories or one-removed connections of successful startups that were driven from the US by visa problems, please send them my way via startupvisa.tumblr.com/submit

</comment><comment><USER4> Sorry to be cynical but nothing is going to happen while Hillary Clinton is secretary of state.

<comment><AUTHOR> Do you think we can get a couple thousand founders to promote the issue via Votizen?

Nothing is going to happen if US citizens who care about the issue don't speak up for their expat founder friends.

<comment><USER5> Agreed, gringo. If nothing is going to happen, I'm still going to make a ton of noise about it.

<comment><AUTHOR> :) Besides, the Startup Visa is such a great hack.</comment></comment></comment></comment>


You don't redistribute a distribution - <AUTHOR> http://blog.guillermowinkler.com/blog/2012/10/21/you-dont-redistribute-a-distribution/

<comment><USER2> Depending on one's perspective, there can be three major problems with this idea. One is that it requires society to expect things of people. The second is that in response to those expectations, some people may need to make some changes. The third is that some of the people who need to make changes will not do so unless society has a mechanism with which to put pressure on them to do it.

In this day and age, a lot of people get very uncomfortable when someone says things like this. Because of this, few politicians would dare to suggest these things: quite apart from alienating those uncomfortable with these ideas, rival politicians can capitalize on that perception to woo people who might not otherwise see any problem with what's being said. The end result is that speaking these things may be the closest thing there is to a sure-fire way to lose elections.

<comment><AUTHOR> Community always has expected things from its members. If you lived in a hut the tribe expected you to go fishing, or hunting, being a great warrior or do something for the common good. And individuals with great value-creation- capabilities have always been better considered.

Unless you live alone in an island creating value for yourself, it's hard not to think about what you do regarding to others.

I think it's a shame this not to be discussed more, IMHO it would lead to better focus on education, which is now the cornerstone of value creation.</comment></comment>


Asian elephants have different personality traits - <AUTHOR> https://phys.org/news/2018-02-asian-elephants-personality-traits-humans.html <comment><USER2> Am I missing something or is this already known to anyone who has handled animals? I have dealt with dogs, cats, pigs, lizards and horses and they all had very distinguishable personalities.

<comment><USER3> You're not wrong, sometimes it feels like they're as aware and present as us, exactly as 'human', just with less ability to solve complex problems

It's surprising we haven't given them more rights yet, maybe this paper can pave the way toward legitimizing at least the larger animals as our sentient neighbours

<comment><USER4> The problem with giving animals rights is that ultimately they'd have to be able to communicate in court, and it's not clear that assigning them a proxy is sufficient to represent the animal. But if ever we find a way to communicate well enough for an animal to understand the concept of "court", or even just "tell us how you feel about this", then such an animal must be accorded rights commensurate with its ability to communicate and self-control.

(An animal that cannot keep from committing what to us are "crimes" can't be given all the rights that a human has. But supposing we figure out how to communicate such concepts to, say, orangutans, and they can handle them, then they must have rights equal to ours.)

Merely having personality and feelings cannot enough, otherwise we'd be obligated to eat no vertebrates -- I'd not be pleased to go that far!

<comment><USER5> This is an interesting comment and made me consider various scenarios and situations.

For one instance, 'Right to Live' would mean we can eat/use animal products anymore - but what about plants then? If you listen to the RadioLab episode Smart Plants, who knows what will be discovered about them in the future. And for most of humanity, most cultures have survived on animal consumption and animal products. Also, would these laws be enforceable on animals too? How would you feed predators and omnivores?

But what about instead of instead of specific rights like those afforded to people, we adopt more general 'kindness' rights to other living beings. For instance; the right of any animal to not being tortured, the right of kept animals to not be subjected to reasonable sized spaces(however that might be determined), the right of kept animals to medical treatment, the right of kept animals to the food it would be consuming in nature, ect.

Not sure how this would all be controlled and enforced(or even how this applies to current animal rights laws), but interesting to think about.

<comment><USER4> One might say that obligate carnivores (e.g., felines) get to eat other animals. Humans aren't quite obligate carnivores (though some of us might feel that we are :)...

We already do have animal cruelty laws -- we already forbid cruelty to animals.

And we forbid hunting of endangered species' individuals.

Some jurisdictions have laws about how much space domesticated animals must be accorded to live in.

So it's not like we accord animals no rights.

</comment></comment></comment></comment></comment><comment><USER6> I mean, so do cats?</comment>


Why Agile/XP so often fails heterogenous teams - <AUTHOR> https://twitter.com/sarahmei/status/990968833547497472?s=19 <comment><AUTHOR> For those who prefer the reader app for reading this:

[https://threadreaderapp.com/thread/990968833547497472.html](https://threadreaderapp.com/thread/990968833547497472.html)</comment>


Corange: A Pure C Game Engine - <AUTHOR> https://github.com/orangeduck/Corange <comment><USER2> I bought his book, "Build Your Own Lisp" in C,and found Corange afterwards. My interests are Lisp and graphics/creative coding/games, so the perfect stumble upon for me. He also created a C library libcello, that attempts to bring "higher level programming to C". A few people have ragged on it, but I think it is just trying to stretch some pre-conceived boundaries, which is alright by me.</comment>


Discover, understand and manage your data with Data Catalog, now GA In GCP - <AUTHOR> https://cloud.google.com/blog/products/data-analytics/data-catalog-metadata-management-now-generally-available <comment><USER2> I have a feeling that over time descriptions of services like these get meaningless. "Discover, understand and manage your data", that could have a million meanings.</comment>


Windows 10 launches this summer in 190 countries around the world - <AUTHOR> http://blogs.microsoft.com/blog/2015/03/17/windows-10-launches-this-summer-in-190-countries-around-the-world

<comment><USER2> It may be a south-of-the-equator mentality, but it's not going to be summer in all of the 190 countries when Windows 10 is launched. differing calendars aside could USA-centric press releases just mention the month rather than the season?

<comment><USER3> They haven't announced a month, and there may be good reasons for that. They may have a target goal in mind, but still want wiggle-room if unexpected issues come up, and 'summer' sounds a heck of a lot better than 'At some point in the months of x and y'

<comment><USER4> Well there are other options: Q2/Q3 2015, mid 2015, etc.

<comment><USER3> I don't think any other (non-verbose) options encapsulate what summer means with the same specificity. Q2/Q3 includes a far longer span of time, mid-2015 covers a 4 month period that covers a significant portion of spring and doesn't cover the entirety of summer, and I fear that all other simple options would suffer the same fate.

Considering the vast majority of computer users and potential Microsoft customers reside in the northern hemisphere, I don't think there's any problem with using summer as a timeframe.

<comment><USER2> So in that case what does Winter 2016 imply? Is it January 2016, or December 2016?

<comment><USER5> I'm guessing that depends on contextual clues. If someone says "this winter" during August 2015, you can expect it to be the one about to start.

Of course, in some scenarios it's just impossible to disambiguate.

</comment></comment></comment></comment></comment></comment><comment><USER6> That's _really_ soon, which fills me with dread. The UI as seen in the most recent pre-release builds is atrocious and it seems to be getting worse, not better, with each build.

Just look at these icons: [http://www.neowin.net/news/windows-10-10036-83-updated- icons...](http://www.neowin.net/news/windows-10-10036-83-updated-icons-in- this-build)

Perhaps they're pulling another 'Watercolor' (the pre-release decoy Windows XP theme that was replaced by Luna at the last minute), but I'm not getting my hopes up.

<comment><USER7> Luckily at least the start menu should be fixed before RTM, as far as I know.

<comment><USER6> Fixed relative to what's in build 10036, undoubtedly, but I'm struggling to see how it will end up being an improvement over the Windows Vista/7-era version as far as desktop users are concerned. That said, it _is_ an improvement over the Windows 8/8.1 Start Screen.

<comment><USER7> And that is all most users really care about.

</comment></comment></comment></comment><comment><USER8> It's going to be free for some Win7/Win8 users[1], I still use Win7 so I'm looking forward to the upgrade.

1: [http://www.pcworld.com/article/2873214/windows-10-will- be-a-...](http://www.pcworld.com/article/2873214/windows-10-will-be-a-free- upgrade-for-windows-7-and-8-users.html)

<comment><USER9> You must have a lot of faith in Microsoft when you consider giving up your stable Windows7 in favor a dot zero release of an Operating System that in a lot of way still looks like Windows8. Unless I can see any kind of track record that it is indeed stable, all the cloud crap can be disabled and they actually put back Themes so I can get rid of _everything_ "modern" or metro or whatever they call this nonsense, I am very happy sticking with 7 for at least the next 5 years.

</comment></comment><comment><USER10> I think this is as excited as I've been for a Windows release since '95\. Which isn't saying a whole lot, but still, this will be the first time I've felt any desire to try upgrading to a new release as soon as it becomes available in 20 years.

</comment><comment> james-skemp For anyone who checks comments first, I believe this is a better link.

[http://blogs.windows.com/bloggingwindows/2015/03/17/windows-...](http://blogs.windows.com/bloggingwindows/2015/03/17/windows-10-launching- this-summer-in-190-countries-and-111-languages/)

Article linked to is a very brief summary that links to the above.

</comment><comment><USER11> "summer" okay... so I guess by Sept 22nd. Not very descriptive for a news story..

</comment><comment><USER12> Is this for OEMs only? Usually it's a paper launch until October for consumers.

</comment><comment><USER13> LOL, windows 8 users can't wait.

<comment> james-skemp Meh. I can.

Windows 8 works quite well on both of my touch capable laptops, my gaming rig, and old 4-5 year development machine.

With 8.1 the Start button is back, but pressing the Windows key on the keyboard and selecting one of the pinned applications, or typing for search, works perfectly.

It took a while for me to put aside my feeling that things had to stay how they were, but once I did (touch capable device helped) I liked it. A lot.

I hope 10 refines things further. With the cost of touch capable Windows machines so low, the installed OS needs to work.

Edit: and if they can improve startup times even further with 10? Wow. Windows 8 was already faster than 7 on the same machines, even older machines and on non-SSD drives.

<comment><USER13> I can't wait. I can't use Win8 because the interface sucks so much on a real laptop. What was MS thinking? And I also hope they speed up the startup time, because it's definitely not faster than win7. In fact, all it does is show the "desktop" quicker, but you can't do anything until the little circle stops spinning, and that takes just as long as win7.

</comment></comment></comment><comment><USER14> Show us the Raspberry Pi 2 goods!

<comment><USER15> Don't get your hopes up, by all accounts 'Windows 10' on the Pi 2 is a special version just for running GUI-less embedded applications. Look at what they have already for the Galileo/Edison (C++ only apps, no GUI) and extrapolate a little bit from there.</comment></comment>


Show HN: Alternative instagram photowall/profiles - <AUTHOR>

Use your username
http://realgram.com/u/{instagram-username}
ex: http://realgram.com/u/dew
Have fun! <comment><USER2> This is pretty dope. Nice.</comment>


Rejuvenating Performance of Hand-Vectorized Programs - <AUTHOR> Hi Hacker News,<p>Recently we developed a compiler pass (https://www.nextgenvec.org/#revec) in LLVM to retarget hand-vectorized codes to use newer vector instructions. We reinstate Performance Portability back to hand-vectorized codes. I am happy to answer any questions regarding it! <comment><AUTHOR> Github: [https://github.com/revec](https://github.com/revec)</comment>


How much leading tech companies like Apple invest into research and development? - <AUTHOR> http://lewro.com/how-much-leading-tech-companies-like-apple-invest-into-research-and-development/

<comment><USER2> Well, R&D is an important department for any tech company. Without being explore anything you can't move forward or be a successful.</comment>


Google Cardboard Plastic - <AUTHOR> https://www.google.com/get/cardboard/plastic/ <comment><USER2> I found that at least one "local" Google is also introducing an innovative new concept today. Google Netherlands : [https://www.youtube.com/watch?v=LSZPNwZex9s](https://www.youtube.com/watch?v=LSZPNwZex9s)

Any more from Google <your country here>?

<comment><USER3> Google Japan: [https://www.google.co.jp/ime/furikku/](https://www.google.co.jp/ime/furikku/)

(incl. schematics on GitHub)

</comment></comment><comment><USER4> Despite the obvious considerations _du jour_ , this reminds me of something which happened years ago, _against_ SecondLife. It was something like a campaign, named "Get a first life", with a very apt slogan along the lines of "First life is a 3D world where server lag doesn't exist".

They did have a point, much like the "BEYOND VIRTUAL REALITY. ACTUAL REALITY." slogan in this.

</comment><comment><USER5> Looks like a joke against Apple products presentation. Nice one ;)

</comment><comment><USER6> I'd like a pair of the rose tinted ones.

</comment><comment><USER7> I lost it in the video where it says works with all apps.

By the way, I have a Nexus 5 and never bought a Google Cardboard, is it worth it just for the joke of using it?

<comment> jon-wood Its a pretty interesting experience, obviously not quite as good as a proper VR headset, but for the price its a great way to get a glimpse.

</comment></comment><comment><USER8> I didn't find this one particularly funny, until I saw the picture of the guy using it in 'portrait mode'. Well played

</comment><comment><USER9> This is the third april fool joke from Google I've seen today. They are taking the whole thing a bit too far.

</comment><comment><USER10> This is hilarious, well done Google :).

</comment><comment><USER11> Doh! Why did I think this was a real product? I blame Apple...

</comment><comment><USER12> When will the Unity game engine support this?

</comment><comment><USER13> "20/20 Resolution" \- ooh burn!

<comment><USER14> Mine must be broken, it's all rather blurry for me.

</comment></comment><comment><USER15> A truly revolutionary gadget. :)

</comment><comment><USER16> Better than I expected :D

</comment><comment><USER17> Not boring at all.</comment>


Cell History Inspection on DoltHub - <AUTHOR> https://www.dolthub.com/blog/2020-06-05-introducing-cell-history/ <comment><USER2> My problem with this is the same as every other such systems: changes are tracked at the cell or row level, and not transaction level. So if I issue a SQL query fixing a column, for example changing 'na' values to NULL, and someone simultaneously makes changes that make a cell 'na', after a merge those cells will still be 'na'.

So in reality, every time I merge something I need to go over and manually re- apply my bulk queries if needed. While the UX is much better than putting CSV files in Git, Dolt does not have a better understanding of data than Git, and does not help with common data transformations either.

<comment><USER3> That is not true. Dolt will throw a merge conflict if two cells are modified on two different branches. You still have to pick which one but at least you know.

<comment><USER2> So will Git. My problem is if that specific cell was _not_ 'na' when the batch change was applied. In that case, there is no conflict.

If those were SQL transaction, one would abort and re-try, giving you the correct result. Even when using a transaction model as simple as Redis, you would get a conflict if you issued the correct `WATCH` statements.

</comment></comment></comment><comment><AUTHOR> Dolt ([https://github.com/liquidata-inc/dolt](https://github.com/liquidata- inc/dolt)) and DoltHub ([https://dolthub.com](https://dolthub.com)) are Git and GitHub for data. Having a versioned database makes collaborating on data more fluid and reliable in the same way that Git improves source code collaboration for software engineers.

This blog discusses DoltHub's newest feature, cell history inspection. You can inspect the changes between versions of every cell in every table with just a click, making debugging between versions easy to trace.</comment>


Facebook takedown followup: what happened and what FB needs to fix - <AUTHOR> http://arstechnica.com/tech-policy/news/2011/04/facebook-takedown-followup-what-happened-and-what-facebook-needs-to-fix.ars

<comment><USER2> I am glad to read this part: "We plan to continue pressing Facebook on this issue, but in the meantime, keep sending in your horror stories. We're sure there are plenty more out there." I was very worried they would get their stuff fixed, and ignore the issue afterwards.

</comment><comment><USER3> This sucks and everything, but this is just the kind of garbage you're going to have to put up with when you put such an emphasis on using a proprietary social networking site as your main presence online for yourself or your organization. Now, imagine you were also using Facebook for all of your communication (chat, messaging, forum, group, etc) needs. You'd also be out of all of those services until and unless they restored them for you.

This is why my advice remains: Do what people have done for almost twenty years. Make a website. Do your stuff on your website. If you have anything worth while, people will come to your website. Stop handing the keys to the internet over to Facebook both by using their services directly or spamming your own site and uglifying it with Facebook Everything widgets.

Using Facebook as your web presence strikes me as about as professional and makes you look about as serious as using Angelfire or Geocities, anyway.

<comment><USER4> Agree with everything you said. But besides that, Facebook is so huge right now that you are basically forced to 'represent' on there as well.

Someone in the comments on the first Ars Technica article wrote that Facebook took down the page for one of their websites (a wiki) and they lost loads of visitors because of that, never recovered, closed it down.

And yes, it is 'bad' and given those events 'not smart' to rely on Facebook for bringing in your visitors. But that's where they are at these days. And Facebook just 'randomly' killing pages, accounts, content is just messed up.

My point is basically: you can't really avoid/ignore Facebook if you want to get your name out there. (Sure, this might not apply to everyone but you get it.)

<comment><USER3> I don't think I buy the argument everyone makes about a Facebook presence being obligatory. Are we to believe that the only way people hear of new sites and services is through Facebook? If that's true, then how do people hear about your Facebook page, to begin with? Or is it that they'll supposedly only _interact_ with your site or service if it's via Facebook? You don't need a Facebook page for people to pass your URL around or mention it in their wall feed thing.

If the idea is that people will no longer bother going to a website or surfing the web in general unless "facebook.com" is somewhere in the URL and/or that they will only communicate with you via forums, wall posts, messaging on Facebook itself and nowhere else, then . . . well, I give up. That's not a world in which I want my service or site to exist and I'd rather not do it at all than do it as some sort of trivial Facebook Serf on their land, by their rules, and with their citizens. If we've come to the point that the entire success and popularity of a service and its continued lifeblood is owed to existing on and interacting via Facebook, then we should wave the white flag and admit we have lost the internet.

<comment><USER5> I completely agree with your original post. Relying entirely on Facebook is foolish as they have complete control. On the other hand, ignoring Facebook is also foolish. People share links, and for major news sources/outlets will continue to do so but there's a lot of value in being present on a social network.

I think the smart thing to do is to take precautions. Host your content and auto-post it to Facebook, Twitter, etc. You should also have some way to contact your users/fans directly so that if things like this happen you can notify them.

<comment><USER3> I can definitely see Facebook being an additional tool, the same way buying ads on AdSense is. I just think that if one is losing all of their traffic and community because something happened to their social networking element, they're doing something seriously wrong. The goal of the Facebook presence should be to funnel people into the _real_ service or community or information on the real site and not to supplant it (and once they're on the real site, not to have all your services like forums handled by Facebook Connect service widgets which places you in a similar situation, too).

I'm speaking from limited experience, of course, and with a service that established itself long before social networking even existed. I think the premise is still sound, though.

<comment><USER4> Getting people to visit your site/using your service regularly would be best case, of course. But compare that to all the blogs in your feed reader, do you visit (all of) them unless there is a new post up? Probably not.

In a similar way, a lot of people (many of them not willing to put up with things like 'feed readers') are probably on Facebook like 'all the time' and will only drop by and check your site if they see some activity on your Facebook page. In other words: Facebook is like their feed reader or news aggregator. And all of a sudden, Facebook comes along and completely removes your feed...

</comment></comment></comment></comment></comment></comment><comment><USER6> Hey look, it was DMCA! Like I said it was... <http://news.ycombinator.com/item?id=2493798>

For all those people trolling around complaining, the real complaint should be that illegal DMCA takedown requests are rarely followed up on in court. (In other words, Ars would do society better by suing whoever made their content get taken down.)

<comment><USER7> You mean suing a bogus email address sent by a random Internet troll? Yeah, that's what they need to do.

<comment><USER8> From what I understand you file a counter notice, then in 14 days Facebook is on the hook.

From ChillingEffects.org _the service provider is then required to restore the material_ Not sure how forceful required is.

</comment></comment></comment><comment><USER9> Here's an idea: Facebook should require users filing a DMCA takedown request to have a Facebook account -- and send the requester's profile to the person/organization the claim is against.

<comment><USER10> That's not part of the law. If someone wants to fax or mail in a takedown request to Facebook, they have to comply with that too.

As several people have mentioned in these topics, the only real issue is Facebook's failure to handle counterclaims properly. That's how the DMCA is supposed to work. You file a copyright infringement claim, the host takes down the material. I file a counterclaim, the host puts the material back up, and it's up to you to sue me.

If they just responded promptly to counterclaims, the hand-wringing about bogus claims is mostly irrelevant.

</comment></comment><comment><USER11> This article is all about the problems with Facebook's process, but the thing I found most telling wasn't mentioned. Facebook issued a statement to ReadWriteWeb before contacting Ars as to why their page was taken down or restoring it. They prioritized saving face above dealing with the effected.

The problem isn't process, the process is a symptom of not caring about their users.

<comment><USER12> I think that's just a case of one arm of the octopus (PR) being faster and better at their job than another arm (copyright and trademark violations). It doesn't mean the process isn't still broken, but I doubt their PR team is hooked up to work on the copyright issues anyways.

</comment></comment><comment><USER13> I 'm happy for you ars technica and imma let you finish, but there are much more serious issues that facebook refuses to address. For example, look at this older post about how facebook irrationally banned adsense from their apps and refuses to respond to developers' complaints for more than 2 months now:

<http://news.ycombinator.com/item?id=2291336></comment>


Researchers show how to break quantum cryptography - <AUTHOR> http://arstechnica.com/science/news/2011/11/researchers-show-how-to-break-quantum-cryptography-by-faking-quantum-entanglement.ars <comment><USER2> That's a completely misleading article. They haven't "broken quantum cryptography", nor have they claimed to. Yet again, journalists have mislead the public by claiming overly dramatic things that aren't true in order to sell copy.

Quantum cryptography is completely and fundamentally secure in theory. However, real world devices don't behave quite like their theoretical counterparts, and this can create flaws in real world systems. The idiot journalist did get at least that much right.

A big part of research in quantum crypto these days is finding holes in real- world implementations so that we can build future systems without those holes. Kurtsiefer's group had done just that. He hasn't broken quantum cryptography, he's helped make the real-world implementations of tomorrow more secure. This evolutionary improvement of a technology in its infancy has happened again and again, and idiot journalists insist on reporting that "QUANTUM CRYPTO HAS BEEN BROKEN" every bloody time.

Now, for those of you wondering what good QC is if we can't trust real world implementations, here's the gist of why, even though we'll probably never finish making them better, they're still worth using.

If you send a message via conventional factoring based crypto, like RSA, that message must be viewed as being made public with an undefined delay. Even without quantum computing on the horizon, decryption algorithms are improving at a steady pace and making it possible to crack messages encoded in this way.

For example, look at crypto algorithms like DES that, ten years ago, people thought would take thousands of years to crack given Moore's law growing computational resources. Wide freakin' open now, thanks to improved cracking algorithms. Any message sent via classical channels can be copied without your knowledge, so any message you sent via DES ten years ago could be decrypted and in anyone's hands without your knowledge. The same thing is true of anything you send via public key encryption today. Fortunately for most of us, the information we usually send is only sensitive for a limited period of time. Who cares if your credit card number is decoded in ten years? You'll have a new one.

Anyone with long-term sensitive transmissions to make has to look at other methods of encryption. That's why quantum crypto has early adopters. Now, say a hole is found in one of these early adopters systems. Are they screwed? Is the cat out of the bag? _No_. Thanks to how quantum cryptography works, there is no possible copy of the transmission that could be cracked with technology developed later in time, as is the case with public key encryption. Attacks on quantum systems have to work at the time the message is sent. If a flaw in the system was not known and an eavesdropper not present and taking advantage of it at the time a message was sent, it will be secure for all time. That's the difference. Public key encryption is secure for a while. Quantum encryption is secure for all time.

<comment><USER3> _For example, look at crypto algorithms like DES that, ten years ago, people thought would take thousands of years to crack given Moore's law growing computational resources._

Whitfield Diffie proposed triple DES in 1975 (even before the FIPS was published), because it was obvious even then that a 56 bit key would not be sufficient for long term security against attackers with serious financial/technological resources. EFF's Deep Crack broke a DES key in less than a day 13 years ago. The AES selection process started in 1998, and a winner finalized in 2001. I'm not sure where you're getting your history from here.

<comment><USER4> Also, I believe a good portion of the cryptosystems around DES's time were intentionally crippled to meet export restrictions so that they were not classed as munitions. So it would not be so much to say that the cyphers were weak insomuch as they were defective by design.

</comment></comment></comment><comment><USER5> When I developed a RSA based application I was worried about quantum computers breaking it (which proved false, I should had worried more about marketing). Now it seems that there is a flaw in quantum cryptography itself, which actually is not a cryptography in classical meaning, but rather a way of securely transmitting data.

<comment><USER4> Actually you would worry more about incorrectly implemented padding or a side channel attack or something similarly stupid destroying your cryptosystem. Sad, but true.

<comment><USER6> Side-channels are just another way to "see" what is going on, whether it is on a keyboard, hard-disk, display, videoboard, CPU, bus, controller, etc.

You've got execution time (latency), sounds, radio frequencies, electromagnetic fields, etc. just to cite the 'accidental' leak channels that act as a side-effect of the intended infrastructure.

we're not secure.

</comment></comment></comment><comment><USER4> Very interesting, i'd like to see what physics hacks they end up using to patch this.

</comment><comment><USER6> You can say it even louder, but I fear people won't hear. I heard it almost a half year ago, but the real news that Quantum Cryptography "can" be broken is a lot older.

Adding more randomness doesn't add more security, but just another shadow layer.

We know SSL and TLS are broken as well as the Certificate Authorities have been invaded long time ago, even if most people don't accept the truth yet.

Could happen in your Startup too:

a: Let's use SSL!

b: Why?

a: Because people trust us more then.

b: Isn't that a lie? I mean SSL isn't secure.

a: But it works! People believe it, when we believe it.

"c: Live in your Dreamworld, until it collapses! :( Sad."

RSA/DSA/MD5 and other hashing and encryption algorithms are broken or unreliable. We know that increasing the time needed to crack something doesn't make it more secure, but obscures security and reliance on that technology.

You still see large scale websites getting hacked, just because of stupid code injections or exploits. The experience is even worse in the crypto side, you'd cry, if you knew how bad the situation actually is.

One thought. Develop your own, if you can. But that puts you into the radar of Curious Goverments.

<comment><USER7> Are you insane?

<comment><USER8> I think that was written by an experimental robot, like the automated sports coverage that StatSheet generates.</comment></comment></comment>


Measuring Long-Term Causal Impact of Ads on LinkedIn Users - <AUTHOR> https://arxiv.org/abs/1902.03098 <comment><USER2> v2 is zero bytes, but v1 works: [https://arxiv.org/abs/1902.03098v1](https://arxiv.org/abs/1902.03098v1)

This preprint paper contains no indication of participation by an Ethical Review Board and lists 5 @linked.com email addresses as the sole authors.

How is this study ethically responsible?

<comment><USER3> What ethical concerns do you see?

<comment><USER2> They're studying the long-term perceptual impact of advertising on test subjects who did not authorize being participants in this experiment. That goes far beyond "is our advertising effective?" and instead verges on "how does our advertising permanently affect human behavior?".

I don't trust LinkedIn to act ethically in such a regard. Do you?

<comment><USER4> Are you sure?

[https://www.linkedin.com/legal/user- agreement](https://www.linkedin.com/legal/user-agreement)

>When you use our Services you agree to all of these terms. Your use of our Services is also subject to our Cookie Policy and our Privacy Policy, which covers how we collect, use, share, and store your personal information.

[https://www.linkedin.com/legal/privacy- policy](https://www.linkedin.com/legal/privacy-policy)

>We use the personal data available to us to research social, economic and workplace trends such as jobs availability and skills needed for these jobs and policies that help bridge the gap in various industries and geographic areas. In some cases, we work with trusted third parties to perform this research, under controls that are designed to protect your privacy. We publish or allow others to publish economic insights, presented as aggregated data rather than personal data.

<comment><USER5> "But it's _technically_ legal!" is not a valid argument in a discussion about ethical concerns.

<comment><USER6> Applying the principle of charity our parent quoted their terms to demonstrate consent, not legal trickery.

The criticism against this argument would be that those terms aren't sufficient to provide consent as people habitually ignore them.

Not sure what would count as the morally appropriate implementation of consent. Probably some middle-ground between buried in terms and continuously re-emerging full screen blocking warning labels.

The easy way out is probably found in some of the legal implementations of sufficiently informed consent.

</comment></comment></comment></comment></comment></comment><comment><USER7> I'd like to see a study Measuring Long-Term Casual Impact of LinkedIn recruiter activity on LinkedIn users.

</comment><comment> awinter-py see also a similar paper from google about long term user satisfaction, ad blindness, and short term metrics that predict long term ones

[https://static.googleusercontent.com/media/research.google.c...](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43887.pdf)

<comment><AUTHOR> Here's a discussion of all the papers I know measuring the causal impact of ads: [https://www.gwern.net/Ads#replication](https://www.gwern.net/Ads#replication)

<comment><USER8> Thanks for posting this. I'm doing research in this area and this is fantastic

<comment><AUTHOR> Glad to help. If you're running any experiments (I'm still in the middle of the followup to my first one), I'd like to hear about the results.</comment></comment></comment></comment>


San Francisco's Secret DC Grid - <AUTHOR> http://mobileorigin.spectrum.ieee.org/energy/the-smarter-grid/san-franciscos-secret-dc-grid <comment><USER2> Interesting article. Surprised it does not mention DC use in datacenters: [http://gigaom.com/2012/01/13/the-next-big-thing-for-data- cen...](http://gigaom.com/2012/01/13/the-next-big-thing-for-data-centers-dc- power/)

AC power supplies on computers are notoriously inefficient and "noisy" (as one datacenter facilities manager described them to me--he was referring to the voltage on the line, not sound.) Many larger datacenters have now switched entirely to DC-powered computers to cut down on energy use.

Years ago, when I was running my hosting company, DC power supplies were more expensive, but you could typically make up the difference in a year or so (less than the average 2-3 year lifetime of a typical server.) I suspect costs have come down since then.

I seem to recall at least one datacenter in SF running DC directly from the grid, as PG&E used to sell it back then. This article makes it seem like that may no longer be the case. Regardless, many datacenters now sell DC as an option, and will have installed their own converters to supply DC power to customers.

<comment><USER3> I wonder what is done with the heat produced by the rectification. Presumably when you convert power for 7-10 customers at a time they aren't residential customers and the heat must be quite great. It seems a shame to just radiate that all away.

<comment><USER4> They don't do anything with it, judging by the photos of rectifiers mounted on the wall without any heat exchange or recycling equipment to be seen. It's unlikely that there's much heat to recycle though. If there was, those same photos would show significant heat sinks to help dissipate the energy away from the rectifiers.

We don't bother recycling any heat from roadside transformers or larger substations either, and they carry a great deal more energy than the rectifiers powering 7 - 10 lift motors.

<comment><USER5> Roadside transformers are AC to AC, which is way more efficient and easy than AC to DC. My car runs on DC, and the quick chargers that provide 60 KW are the size of a large closet and have loud fans to dissipate heat.

<comment><USER6> Largest source of inefficiency (and heat) in common isolated SMPS designs is output rectification, which has to run on frequencies ranging from tens kHz to units of MHz, thus the diodes there tend to spend relatively large proportion of operating time in various half-open-half-closed states. Active rectifiers somewhat improves overall efficiency for high output currents, but the problem with switching time still remains.

On the other hand for line-frequency rectifier times required for rectifier to switch can be ignored and only significant source of heat is voltage drop on rectification diodes (ie. 0.6 - 1.5V), so one watt of heat dissipation per one ampere of current is good ballpark.

</comment></comment></comment></comment></comment><comment><USER7> Also interesting to read about the work ConEd did to move its final customers off DC in NYC

[http://www.coned.com/newsroom/news/pr20071115.asp](http://www.coned.com/newsroom/news/pr20071115.asp)

>In January 1998, Consolidated Edison began a program to eliminate DC service in its operating territory. At that time there were over 4,600 DC customers. By 2006, sixty remained. Between then and today[2007], when the last customer at 10 East 40th Street was switched to rectifiers on their side of the meter to generate direct current to supply its building's elevators and sprinkler system, Con Edison has been switching DC customers to alternating current.

Since the start of the program in January 1998:

4,541 accounts in 4,288 buildings have been converted; 6,172 DC meters have been removed from the system; 193 in-building rectifiers have been transferred to customers; 148 250KW street rectifiers have been removed; 35,965 sections of DC mains (5,682,337 circuit feet or 2,660,634 cable feet) has been retired; and 545,185 circuit feet or 236,611 cable feet of DC services has been retired.

<comment><USER8> If much of that cable is copper then the material recovery could be a substantial offset to the investment.

</comment></comment><comment><USER9> I live in a building in downtown NYC near Canal and Broadway. It was built in the 1890s and our Otis freight elevator is supposed to be one of the oldest operating elevators in the city. The first passenger elevator (also and Otis) was installed in 1857 around the corner on Broome and Broadway. Our elevator is powered by a DC motor. Until a few years ago, Consolidated Edison, who championed DC back in the day, delivered DC to power the elevator. Over the course of a decade or so, in an effort to get us to switch away from DC, they raised the price and in the end it was less expensive for us to install a rectifier in our basement to convert AC to DC to power the elevator. The rectifier is a nondescript box about he size of a small refrigerator and emits an audible 60Hz hum.

<comment><USER10> I know that hum too well--and it's really irritating. For some reason I even hate the sound of my dimmer switch.

</comment></comment><comment><USER11> Huh. I posted this same article about two days ago.

[https://news.ycombinator.com/item?id=6810685](https://news.ycombinator.com/item?id=6810685)

[http://spectrum.ieee.org/energy/the-smarter-grid/san- francis...](http://spectrum.ieee.org/energy/the-smarter-grid/san-franciscos- secret-dc-grid)

</comment><comment><USER12> Reminds me of Christopher Payne's lovely book about the (DC) substations of the New York subway [http://www.chrispaynephoto.com/substations.html](http://www.chrispaynephoto.com/substations.html)

</comment><comment><USER13> With so few customers (and no new ones allowed), it's not surprising that the DC distribution system in San Francisco isn't widely known, but it's not a secret.

Regulated electric utilities like PG&E provide their services pursuant to tariffs, and this is no exception. See Tariff A-15, "Direct-Current General Service," on the PG&E website:

[http://www.pge.com/tariffs/tm2/pdf/ELEC_SCHEDS_A-15.pdf](http://www.pge.com/tariffs/tm2/pdf/ELEC_SCHEDS_A-15.pdf)

They just raised the rates, too.

</comment><comment><USER14> _" By the mid-20th century, large rectifiers installed at two downtown substations supplied the current, pushing 250-V DC onto a rectangular loop of 3.6-centimeter-diameter cable."_

OK, can anyone explain why each of the drum-wind elevator motors does not have its own small rectifier and be run from local AC mains (possibly cross-phase for 1.4x voltage)?

As this interesting article goes on to say the local power company is splitting the DC distribution into smaller isolated networks anyway...

<comment><USER15> Remember that these were installed ~50 years before the transistor was invented. At the time, the hardware was very expensive. It was more economical to have a single centralized rectifier than multiple distributed rectifiers.

Since they were installed, it comes down to maintenance costs vs gutting and installing a brand new system. Maintaining an older system was apparently the choice these building owners made.

<comment><USER14> Yes, I accept your point for when the system was originally provided. But _now_ it strikes me that the older systems could be run from a power cabinet with a step up transformer and a rectifier running off AC mains given a supply with sufficient current capacity.

<comment><USER11> They could have then, but mercury vapor rectifiers are/were expensive, mogen sets are noisy and need service - its far easier to put a big one in, than lots of little ones.

</comment></comment></comment></comment><comment><USER16> The San Francisco building in which in live has one of these drum elevators. I had no idea it's DC powered. Fascinating.

</comment><comment><USER17> Toronto also has a 600 V DC system that is used exclusively for supplying the subway and street railway services.

</comment><comment><USER18> The article makes brief mention of DC still being used in Chicago. Anyone have any links to such?

<comment><USER13> See Commonwealth Edison Company, Schedule of Rates for Electric Service, Ill. C. C. No. 10, 1st Revised Sheet No. 148:

      However, in certain individual situations, certain retail customers in the
      central part of the City of Chicago are provided with direct current (DC)
      electric service. Such retail customers are provided with electric service
      through rectifiers that convert AC to DC. Such retail customers have been
      provided with DC electric service since the early years of the twentieth
      century. Beginning in the 1930's, the Company has been working toward the
      retirement of DC electric service. The Company does not serve new or
      increased electric power and energy requirements of any retail customer with
      DC electric service. For a situation in which DC electric service is retired
      at a retail customer's premises, the Company removes its rectifier and
      associated AC to DC conversion equipment that had been used to provide
      electric service to such premises. Eventually, all such rectifiers and
      associated AC to DC conversion equipment will be so removed, and all retail
      customers will be provided with AC electric service.

I think the customer pays for the rectifier losses, though. According to Sheet No. 191:

      For a situation in which DC is provided through a rectifier, meter-related
      facilities are located on the AC side of the rectifier.

— [https://www.comed.com/Documents/customer-service/rates- prici...](https://www.comed.com/Documents/customer-service/rates- pricing/rates-information/current/Ratebook.pdf)</comment></comment>


Amazon Fresh Pickup - <AUTHOR> https://www.amazon.com/afx/nc/aboutpickup?tag=cnet-vig-news-20 <comment><AUTHOR> I think this is a much better model vs either regular Amazon Fresh or the status quo of shopping at the grocery store. The real pain points of shopping are actually going into the store and spending an hour finding everything you need, and then waiting in several different lines, or getting stuck in a clogged up aisles. Having someone to specialize in doing that stuff for me, and probably eventually automating that, without increasing costs from delivery, is definitely the way to go.</comment>


IPFS gateway blocked by some ISPs in Spain - <AUTHOR> https://twitter.com/cfenollosa/status/912057183159951361 <comment><USER2> "IPFS is The Permanent Web A new peer-to-peer hypermedia protocol"

Until it is blocked by everyone because DRM

<comment><USER3> Except it's not about DRM.

Except the P2P network is not blocked, only the official gateways subdomain to acess ipfs content from the browser.

Except is not blocked for everyone.

Effectively only 1 ipfs node dns cname has been hijacked. Content can be accessed using any other nodes. Works as intended.</comment></comment>


Cohen v. Trump - <AUTHOR> http://www.plainsite.org/dockets/2ict5dwyt/california-southern-district-court/cohen-v-trump/ <comment><AUTHOR> Bonus companion link:

Trump University and Presidential Impeachment [https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2841306](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2841306)</comment>


Working with UTF-8 in the Kernel - <AUTHOR> https://lwn.net/SubscriberLink/784124/2595e4df117dc86a/ <comment><USER2> My word, but this would break _so much_. I would like to think that I've managed to keep my wits about me enough over the years that I haven't got any code needing to find both 'A.txt' and 'a.txt' in the same place... but I _really_ wouldn't put it past past-me to've screwed that up... that guy's just the _worst_.

edit to add: I don't think I ever noticed Android being case-insensitive. Always something new to learn!

<comment><USER3> MacOS is a case-insensitive unix, and it seems to work fine.

A few years ago I made the mistake of formatting my Mac to use a case- sensitive filesystem, and it turned out to be a huge mistake. My thought process was "I want full compatibility with Unix-land", but this wasn't in line with the rest of the Mac conventions and just ended up causing pain.

</comment></comment><comment><USER4> My own preferences: No, don't, that's a bad idea. Unicode belongs entirely in Userspace.

If the main reason for this change is to make end-users lives easier then the solution requires two userspace parts.

1) When creating a new filename, check to see if it collides in a case insensitive way.

2) A 'filename validation' tool that scans for filenames that are not normalized in a desired way, and also for case insensitive collisions.

BOTH of these tasks should be OPTIONAL and entirely in userspace.

<comment><USER5> Checking for collisions in userspace is what Samba does, and maybe Android as well (I know they currently use something based on wrapfs based on FUSE, but not sure how exactly it works). It has two big problems:

1\. It's slow – every time you want to create a file, you have to do an O(n) enumeration of every file in the current directory to see if any of them collide with your new filename. A kernel implementation can use the normalized, case-folded form of each filename for its hash in the dentry cache, and then look things up in O(1) based on that hash. You could try to maintain a similar cache in some userland daemon, but it would break if anyone changed the files without going through that daemon, creating a mismatch between the userland cache and the actual file system state. If you want to accommodate arbitrary modifications by other processes, you have to go to the kernel every time.

2\. It's inherently racy. If you (1) list the directory to check for existing colliding files, find none, and then (2) create a new file, another process might have created a file with a colliding (but not byte-equal) name in the interval between (1) and (2). That wouldn't be an issue if we had transactional filesystems or even just better filesystem-based concurrency APIs, but in Linux like most other OSes, we can't have such nice things. You could avoid the race by either making all filesystem accesses go through a daemon, or making up a locking protocol where you have to grab an advisory lock on a hidden file or something. But those solutions have the same flaw as the last paragraph – they only work if all processes writing to the filesystem are on board. They also add a lot of complexity.

A partial alternative is to just accept the race as a possibility; clients could check for collisions _after_ creating a file, and if they found one, delete the file they just created. That's arguably good enough for most use cases, but it's sure ugly to add the edge case of a transient broken state, when the point of keeping insensitivity in userland is to avoid ugliness. And what if a process crashes between creating a colliding file and deleting it?

2.5. And of course a non-case-insensitivity-aware process could just create two conflicting files on its own. I'm not counting this as a third problem since I've already raised the issue of unaware processes and ugly edge cases in the first two, and you did mention there could be a validation tool. But I rather dislike the idea that accessing your files using standard Unix tools would be "risky", in that you could accidentally create files with names that case-insensitivity-aware programs couldn't handle. As I see it, that essentially relegates the Unix tools to being second-class citizens.

Given these issues, I think it really is best to handle case insensitivity in the kernel, no matter how ugly it seems. Either that, or make FUSE faster so you can do it in a userland filesystem without sacrificing performance…

<comment><USER4> For a multi-threaded system I don't actually see how any of that is solved by moving things that SHOULD NOT belong in the kernel to the kernel.

Edited to add this paragraph: I feel I should expand on the above line. It's actually the reason why most of the post this is replying to is invalid. Outside of the single thread context __all__ caches are potentially invalid, even the in-kernel cache could be invalidated between different submissions. So all clients have to be coded to accept a 'fail' case and behave properly anyway, OR you allow for one to 'win'. This is why (man 2 open) open() has been extended over time to include the O_EXCL flag for failing in the case of a file already existing. Similarly the (man 2 rename) rename() has been extended (fairly recently) with RENAME_NOREPLACE, which fails in the case of the file already existing. Anything which might be subject to concurrency issues already requires such handling, or accepting that the results might be undefined (E.G. one version of the rename to target filename working in an 'atomic' way but no assurance about the ordering of operations from parallel threads/processes).

Anything not facing a user should already be creating filenames in it's preferred case and normalization.

Anything facing the user (accepting user input as a filename) should either be doing the same (if it's part of a sanitized filename) OR is directly part of a UI interacting with a user, which must already handle cases such as renaming an existing file to one that might also exist.

I really don't buy that anything of actual value is being gained here for use cases that seem very rare and a complexity cost in kernel that is very high.

<comment><USER5> O_EXCL and RENAME_NOREPLACE are examples of _why_ you want case insensitivity to be in the kernel. They're atomic operations: if you use O_EXCL, you could get a successful file creation, or you could get EEXIST, but not something in between. But you can't implement a case insensitive version of O_EXCL in userland. As I said, the best you can do is scan first to see whether a conflicting file already exists, but that doesn't help if a conflicting file is created in between the scan and when you create your file.

The kernel is in a better position; since all readers and writers must go through the kernel's filesystem routines, those routines can use mutexes or other concurrency mechanisms (that they need anyway to protect their data structures) to implement higher-level atomic semantics. That's how the kernel implements regular O_EXCL, and it's how it can implement case-insensitive O_EXCL as well, without having to deal with race conditions. In fact it already does that for vfat and other case-insensitive filesystems.

(A FUSE filesystem similarly gatekeeps all accesses and thus can do the job in userspace, but FUSE is slow.)

<comment><USER6> > But you can't implement a case insensitive version of O_EXCL in userland.

So leave O_EXCL in the kernel in its current case-sensitive form. In userspace, implement normalization and case-folding as you see fit and pass the normalized, case-folded filename to open(). Ignore any files other programs may create with non-normalized names. Keep an xattr or lookup table with the unfolded "presentation" version of the name for directory listings.

</comment></comment></comment></comment></comment><comment><USER7> > Working through the string is then accomplished by repeated calls to:

      int utf8byte(struct utf8cursor *u8c);

> This function will return the next byte in the normalized (and possibly > case-folded) string, or zero at the end. UTF-8-encoded code points can take > more than one byte, of course, so individual bytes do not, on their own, > represent code points.

What's the choice behind going byte-by-byte rather than grapheme-by-grapheme? Seems like an API designed for comparisons and nothing else…

<comment><USER8> There's no fixed-width/non-allocating way to return a grapheme (unless one can return a slice into the original data, which cannot happen here), because they may consist of arbitrarily many codepoints (and code units) both in theory and in practice. For instance, many non-Latin scripts compose single graphemes out of multiple code points and many emoji are multiple codepoints (e.g. the families[0], and the skin tone variants).

[https://manishearth.github.io/blog/2017/01/15/breaking- our-l...](https://manishearth.github.io/blog/2017/01/15/breaking-our- latin-1-assumptions/)

One option would to instead return (24-bit) code points, which would amortize comparison and iteration costs slightly, but may accidentally encourage people to forget about multiple-codepoint characters.

[0]: [https://r12a.github.io/uniview/?charlist=%F0%9F%91%A9%E2%80%...](https://r12a.github.io/uniview/?charlist=%F0%9F%91%A9%E2%80%8D%F0%9F%91%A9%E2%80%8D%F0%9F%91%A7%E2%80%8D%F0%9F%91%A6)

<comment><USER7> > There's no fixed-width/non-allocating way to return a grapheme (unless one > can return a slice into the original data, which cannot happen here)

I take it's not possible to return a pointer into the data because normalization is being performed?

<comment><USER8> Yeah, normalising and case folding will both potentially result in a new sequence of graphemes (and code points and code units), so slicing can't work.

</comment></comment></comment></comment><comment><USER9> Oh my, I've waited so long to add the utf8 API to my safelibc, but this not what I expected. It's amateur level.

        int utf8byte(char*)

should be named utf8cp of course. A 32bit int "byte" codepoint is a bit hard to swallow.

utf8 iterators proved to be wrong in a myriad of previous cases, e.g. libunistring which is still not used in coreutils over this wrong design decision. You do the whole high-level API in buffers by yourself and don't do it with exposed iterators.

casefolding and normalization is only one of the expected features, the next would be identifier safety, which requires a bit more checks. left to right R2L mixups, script mixups, confusables ... The kernel deals with identifiable strings and once you open the unicode floodgates others will rush in. You really need to think the API through, not like this. At least they thought about the UNICODE_VERSION, which others didn't.

<comment><USER5> The function does in fact return an (unsigned) byte; the use of int is apparently because it returns -1 on failure. I'm not a big fan of overloading return values that way, but it is reasonably common...

</comment></comment><comment><USER10> > The proposed addition of case-insensitive file-name lookups to the ext4 > filesystem...

Ugh, why? I thought the general consensus was that case-insensitive filesystems were a mistake. The article linked on that line is behind a paywall, can someone summarize the rationale for this change?

Also, this article doesn't mention how the kernel developers plan to handle differences in case folding between locales (e.g. the infamous Turkish "dotted I"). I learned recently that NTFS actually stores a full case-folding table (from the current locale of the system formatting the volume) in the filesystem metadata specifically to ensure case-folding will remain consistent even if the volume is attached to a system with a different locale which seems like the only sane way to handle this.

<comment><USER7> macOS's HFS+ and APFS are case-insensitive by default, which I feel is a bit less confusing to users ("What do you mean that 'document' and 'Document' are different things?! They're both 'document'!")

<comment><USER11> That's only a very small leap to 'documents' ("its obvious what I mean!") though. I don't think the kernel should start trying to handle that.

</comment></comment></comment><comment><USER12> Case insensitivity for files in a unix-ish environment seems like a great idea, until you're searching PATH for an executable called "head", and both HEAD and head exist. Do you go for first match, or best match, falling back to case-insensitivity? Bonus points for the confusion that ensues when some of the file systems being checked are case sensitive and some are only case preserving.

</comment><comment><USER13> It seems like pretty names are something extended attributes could deal with better than the kernel.

If we add "display" and "locale" field to the directory entry my office app would write out "bob's great spreadsheet.xls" and add some extended attributes like display="Bob's Great Spreadsheet" and locale="en-US".

</comment><comment><USER14> How does comparison work if one of the strings contains invalid UTF-8 sequences? Does utf8byte() interpret the invalid subsequence as a U+FFFD REPLACEMENT CHARACTER or does it return an error?

</comment><comment><USER15> Hope they do enough fuzzing to be sure that there are no DOS and crash attacks with weird filenames.

</comment><comment><USER16> This is a bad idea that will add lots of attack surfaces.</comment>


Ask HN: Experience with Windows 10 upgrade - <AUTHOR> I am always scared to update anything when it just comes out. Still on Win 8.1 but would love to hear your experiences with Windows 10 "free" upgrade. I know it had some privacy controversies but what about functionality and bugs ? Does it break anything critical that one should worry about ? <comment><USER2> The upgrade itself was pretty painless. Other than some weird "windows 10 does things differently" I have had no OS issues.

The only thing that didn't seem to be compatible was Steam, which required me to re-download and re-install; that fixed it up.

Also I believe virtualbox is currently not compatible with windows 10, but I don't use it anymore so it wasn't a deal breaker for me.

<comment><AUTHOR> good that you mentioned VirtualBox. I am actually using Vagrant and VirtualBox currently. So I guess I should keep this in mind.

<comment><USER2> Oh wow, they released an update!

The 5.0 release supports the latest guest or host operating systems including: Mac OS X Yosemite, Windows 10, Oracle Linux, Oracle Solaris, other Linux operating systems, and legacy operating systems.

So you should be good to go.

<comment><USER3> I have VirtualBox v5.0.4 and can confirm that VirtualBox works perfectly. I currently has 3 VMs:

Debian 8.2.0

Ubuntu 14.04.03

Xubuntu 14.04

All are running x64 and Ubuntu/Xubuntu has 3D acceleration activated.

Guest drivers also works as expected.

</comment></comment></comment></comment><comment><USER4> It took me ~20 minutes overall for the download and install. All I had to do was press "start" really, and let it do it's thing.

I only had to re-install BitDefender, everything else worked right away.

I'm only just annoyed that the Charms menu is gone. I had used Windows 8 since the developer preview so I was used to that in my workflow. Not a huge issue though.

<comment><USER3> ~20 minutes for a complete upgrade is impressive to say at least if that's true.

I upgraded at a 500 Mbps line with i7-4930k CPU and a OCZ Revodrive 3 x2 PCI SSD. I didn't pay full attention to it but my download/installation took about 2 hours IIRC. I do have two other HDDs though, so Windows 10 may have spent some time indexing files which increased the installation time.

Also did the upgrade at a clients computer, typical low-end consumer Toshiba laptop at a 15 Mbps line, it took about 6-7 hours.

</comment></comment><comment><USER5> Pretty good. Can't really complain and I have upgraded both my old laptop (HP, ~5 years old) and new one (Dell, ~2 months). Both have been running smoothly. Main complaint is the new touch features on the mouse since they remind me of the Mac version and was never a fan of that but you can disable those. Other than that it was smooth sailing for the most part.

Biggest issue I have heard is a small learning curve using Cortana. It's useful but disable her unless you have a surface or a computer built for Windows 10. If you run a Google-based system you should be okay without her.

Overall, not bad. It runs pretty fast and before I was using a Gen 2 AMD quad core. It has a slight learning curve to the new features but otherwise no issues. I've used it with the HDMI port, VGA output to a dual screen, LAN, etc and so far have not had any issues on both computers.

</comment><comment><USER6> I think Windows 10 in general is fine, but the upgrade process does a poor job. For 2 of my machines, performing an update (not full wipe/install) resulted in an extremely slow system. Doing the full wipe/install corrected the problem.

Unfortunately, if one is coming from 7 or 8 (using the free update), you need to do the update to register your machine before you can reinstall cleanly. I don't know why Microsoft didn't just provide a Win10 product key via the update tool if your 7/8 install was properly licensed. They could always link it back to your machine to prevent sharing the key and not using it.

</comment><comment><USER7> Are you still able to see the Upgrade notification? Didn't they have a timeline during which you could upgrade?

I just checked my Windows Laptop with Win8.1, I can't see any upgrade notification :(

<comment><USER8> You can just use the downloader to upgrade: [https://www.microsoft.com/en- us/software-download/windows10](https://www.microsoft.com/en-us/software- download/windows10)

<comment><USER7> "You will need a product key.."

Isn't the update feee if you have bought Win8.1?

<comment><USER9> On the same page:

"To upgrade for free, select Upgrade this PC now in the tool. You should NOT be asked for a product key during the upgrade process. "

<comment><USER8> I have upgraded a couple of machines myself, and the key thing here is to choose the "Upgrade this PC" option on the downloader _instead_ of having it create the installation media. By having it Upgrade using the automated procedure, there is no worry (as long as the host machine's Windows is already activated). Nevertheless, you will need to activate Windows 10 after install, which can be done Online or over the phone (talking to a computer). Also, be sure to choose the bit-depth that corresponds to your current Windows -- unfortunately there is no up-bitting (that I am aware of).

</comment></comment></comment></comment></comment><comment><USER10> The RSAT tool situation is still a mess. No DHCP snap-in was included and I get some funny behavior with the other tools.

</comment><comment><USER11> Tried it on my GF's laptop (mine runs linux), which has a first gen core i5 from 2008ish. Everything was fine, except the HDMI port wouldn't work anymore. Apparently a bug in Intel's driver and they have aanounced that they will not be supporting it.

The rollback to win7 was rather quick and painless.

</comment><comment><USER12> [I guess I'll chat up Microsoft on the computer]

[SWEET MOTHER OF JESUS]: One of the updates was for the NVidia card. Now my screens are blank. No idea what is going on, since I can't see the chat application.

[Live update] More optional updates. Hour mark 3 today.

[Live update] Looks like Skype is one of the required optional updates. Now we're checking for more updates.

[Live update] Twenty minutes and the optional updates have completed downloading. Is hoping a technical approach?

[Live update] Apparently there are "optional updates" that needed to be installed. Their download has been stalled at 97% for fifteen minutes.

I probably should mention here that the machine also has two monitors. When the tech opens a new tool. Sometimes it shows up on the other monitor. Then I have to move it.

The techs also like to open Windows update in full screen. This obscures the chat dialog.

[Live update] New tech is running upgrade via windows update. Another 2.8 gigs. Almost three hours today. Five or six hours overall.

[Live update] Something else didn't work. Required reboot. Now with a different tech...or maybe it's the first.

[Live update] The second pass at installation failed with the same error code. The tech is going to try something else.

\---

The Black Beast is a Dell Precision T7400 with 2x E5405's and four hard disks [0] It boots via Grub2 [1]. For Windows, it then boots to the Windows Bootloader and to Windows 8.1 or XP Professional x64 [2]. I'm upgrading as I type this on my laptop, for some definition of "upgrading".

I've been fooling with the upgrade off and on since Sunday. Right now, Microsoft is remoted in and rerunning the update...something I've done more than half a dozen times already. They did some mild Powershell fu first.

And it failed with the helpful 80070002 "Windows Update ran into a problem". Now the tech has restarted the install...it's 2.8 gigs of download every time because the installer doesn't cache the files.

I will say that Microsoft is trying. We're already into an hour and a half of tech support today plus a half an hour or so yesterday. And that machine is certainly a corner case.

[0]: Two are hardware mirrored via the motherboard.

[1]: There's Ubuntu Studio 15.04 and CentOS 6 on their own partitions.

[2]: The Windows 8.1 was an upgrade over an existing 8.0 upgrade to OEM Windows 7.

<comment><USER12> [5:15] "Why don't you try installing it again?"

[5:00] Fourth tech support agent. "Something Happened" error message.

[4:15 with Microsoft] Update failed again with 80070002 "Windows Update Ran into a Problem". Looks like we're going the create installation media route. That's the one I tried originally since it allows a clean install...I did a little homework before I started this thing.

This means...you guessed it downloading Windows 10 again.

[4:00 hours] Well it rebooted and the tech is back. Tried installing Windows 10 and we got a new Error message 80200056. They did something and now we're downloading 2.8 gigs of Windowstenagain.

I got to type my password in while someone was remoted. That's always heart warming.

[We've hit four hours and I can't edit my original post.]

<comment><USER12> Eight hours. Fifth Tech Support person. There seems to be magical thinking..."if I just try this link instead". I mean the pointers point to the same executable.

My guess is that there's a call to disk that doesn't run through the appropriate API [or my computer is p'owned] based on some assumption that is almost always correct but not in this edge case. Windows reports correct free space on the install partition.

Maybe it's because the Windows partion is on Disk 2 (the third disk).

Anyway, it's probably approaching more than a dozen downloads of the installer today and I was able to take a small perverse pleasure in watching the tech open Windows Task Manager and see that everything in the startup tab was already disabled. Took the fifth tech to look, unfortunately.

<comment><USER12> Microsoft Tech Support pretty much gave up and suggested I move Windows to a different partition. Googling up new error messages looks like the problem is because Windows is installed on a mirrored and the installer wants to control the hardware directly...instead of, you know, through a standard interface.

I guess it's the world's way of telling me not to use Windows.</comment></comment></comment></comment>


Why Startups are Agile and Opportunistic – Pivoting the Business Model - <AUTHOR> http://steveblank.com/2010/04/12/why-startups-are-agile-and-opportunistic-%E2%80%93-pivoting-the-business-model/

<comment><USER2> Are there companies that don't do this and are even moderately successful?

This seems like common sense; that old 'the definition of insanity is doing the same thing repeatedly, and expecting different results' quip comes to mind.

<comment><USER3> Many startups just go straight into the dead pool by running out of cash and don't pivot either due to inability or to the lack of opportunity

</comment></comment><comment><USER4> Nice to see someone mentioning John Boyd's work.

But you should really go straight to the source and download a copy of "conceptual spiral", and "destruction and creation".</comment>


Learning iOS vs. Learning Web Development: My Choice - <AUTHOR> http://jkhowland.me/i-chose-ios-instead-of-web.html

<comment><AUTHOR> I realize that money isn't everything. And developing for iOS means more than that. I do think, however, that it's weighing on the minds of a lot of people picking a career path.

Building for iOS gives you the ability to reach millions of people that care about design, and experience. I feel like a mobile gives you the opportunity to reach people in a more personal and intimate way than a web app.

The fact is, there are as many reasons for choosing a platform (web, iOS, or Android) as there are developers. I'm actually very interested in hearing other developers reasons.

<comment><USER2> I've always assumed that app development was harder to monetize than typical paths to profit using standard web development + product/affiliate marketing.

</comment></comment><comment><USER3> As a full-time iOS developer, I like and agree with this list. I particularly agree with the point about monetization. I love that Apple takes care of all of the money handling and app delivery, and I just need to worry about making the best app I can make. It also helps that there are already millions upon millions of potential customers accustomed to paying money for quality apps that are just a tap away from sending you money. Very compelling reason to team up with Apple.</comment>


Failed startups - <AUTHOR>

I am looking for list of failed startup. Does anyone know how to find companies which are failed or which are about to give up?
<comment><USER2> The TechCrunch Deadpool (<http://www.techcrunch.com/tag/deadpool>) is one place to start.

<comment><USER3> /agreed

<comment><USER4> If you agree with something, just vote it up instead of replying with something that isn't useful to the discussion at hand.

</comment></comment></comment><comment><USER5> FuckedCompany.com (<http://www.fuckedcompany.com/index.html>), though it isn't posting new companies anymore. The author wrote a book called "F'd Companies" that chronicled some of the worst dot-bomb era flameouts.

</comment><comment><USER6> CNET's list is classic (if that's what you're looking for). It includes such classic one-hit wonders as: Boo.com, Webvan, and Pets.com. It's a good list to learn that spending lots of money quickly on marketing will not make a great idea better.

I would also suggest reading: [http://www.inc.com/magazine/20070601/features- how-to-kill-a-...](http://www.inc.com/magazine/20070601/features-how-to-kill- a-great-idea.html). It's cool to see how Friendster didn't win in the war for US social networking (even though southeastern Asia loves it).

</comment><comment><USER7> Well I can add my little web site UseTheSource to the list of dead ideas. It's "Digg" but just for code.

www.usethesource.com.

John.

</comment><comment><USER8> what is the list for?</comment>


My pitch just got massacred on This Week in Startups. Very embarrassing. AMA - <AUTHOR>

So very embarrassing...
https://www.youtube.com/watch?v=-Ky4ikcCoL0#t=18m10s
Key takeaways for me:
(1) Describe the product in the first sentence.
(2) Less narrative more use cases.
(3) Talk more about the people I'm pitching to and less about myself.
Any more feedback? Jason and Tyler were pretty comprehensive but I really wish I had more time to discuss their points, some of them I agree with but others I didn't.
For example, it might be tacky to mention existing networks but when you've pitched this concept to as many people as I have you can foresee the most common questions. Also, I have a very good success rate getting people to download the app after a pitch and I love the name... <comment><USER2> I kinda of agree with them on the name. I wouldn't be embarrassed sounded like they liked the product.

<comment><AUTHOR> We almost called the app WeLiveNow which is along the lines of what he suggested. But honestly I'm still leaning in favor of LucidLife, for the reasons I discussed in the video. It really grabs people's attention and holds their interest.

Thank you for saying I shouldn't be embarrassed but I still am haha. I guess life as an entrepreneur is filled with failure so I should get used to this feeling. Probably will be good for me in the long run.

</comment></comment><comment><USER3> sounds like they don't know what they are talking about, I can name hundreds if not thousands of successful companies that you can't tell what they do from the company name, Apple and Google the two biggest tech companies are great examples

<comment><AUTHOR> I personally get bored by names that accurately describe the main feature of the company. It seems entirely too technical and non-creative, my instinctual reaction is "how can people with no imagination create a product I will love?".

</comment></comment><comment><USER4> Is the natural language processing accurate enough for the app's purpose?

<comment><AUTHOR> This is the core of what makes our app unique and we plan to spend a lot of time making it smart. It's still a work in progress, I typically compare it to google's search engine in that 15 years later they are still making it better. I suspect the same for our thought analysis engine, it will never be perfect. But it does work.

</comment></comment><comment><AUTHOR> I'll be back to answer any questions in an hour.

</comment><comment><USER5> Have you met the people you have been pitching to beforehand? Did you get any hint whether they like you or not? (We all make snap judgments.)

<comment><AUTHOR> I have never met Tyler. I said hi to Jason once but never had a conversation with him. I have exchanged a few emails but I doubt that's the problem. I hope not anyway, it never crossed my mind.</comment></comment>