Ask HN: What's missing in a CS degree? - <AUTHOR> There seems to be lots of post both recent and before discussing the inadequacies of a CS degree. Could anyone elaborate on how to fill up this gap for better preparation in the real world? What would a person who wants to start a start up need to learn on his or her own? Also, what about open source contribution. I realize most answers would probably follow along the lines of "work on your own projects." but I would like more detailed advices based on your personal experiences. How much work is there left when just out of school? What did you do to fill that gap? <comment><USER2> A nice start would be actually teaching _Computer Science_. Computer Science is a branch of mathematics, with both theoretical and applied aspects. This does _not_ mean that learning Java syntax constitutes as "applied". I think it should be expected that CS students pick up languages on their own in order to complete and understand theory-based assignments. Anything else is probably just pandering to people who shouldn't major in CS. This doesn't mean programming projects are entirely out; if they serve to reinforce understanding something like logic programming or pointers, then by all means they're useful. The "open source contribution" and whatnot should be done on your own time, and doesn't belong in the curriculum, period.

Remember, you don't major in Physics to learn which brand of concrete you need to build a bridge. Not teaching a concept because it isn't "used in industry" is a sickening corruption of what academia is supposed to be about.

See my comment here: <http://news.ycombinator.com/item?id=1345596>

<comment><USER3> There's always this tension between the pragmatists and the theorists. I figure we just split it in two. CS focuses on research and theory. CP(rogramming) focuses on the pragmatic and artistic nitty gritty of building software. Now, I personally wouldn't _advocate_ majoring in programming, because you really should just R the F'ing M, and make stuff on your own. But it's hard to argue against its validity as a major when there are tons of students clamoring to pay for it, and there are already so many way softer majors. There would obviously be a lot of overlap between the two.

<comment><USER4> >CP(rogramming)

It's called "Software Engineering" and some schools (like RIT) already have separate degrees for it.

<comment><USER3> Yeah, I should have assumed there'd be degrees available in Software Engineering. But "Software Engineering" is such a misnomer. [rant on how we don't know how to "engineer" software]. My "Software Engineering" courses were straight up _awful_. The degree I'm imagining would focus on the way software actually gets written -- the wrestling with problems and the straining toward creative insight. And you'd do a fuck-ton of coding on interesting and substantial projects.

<comment><USER5> > wrestling with problems and the straining toward creative insight

That sounds like engineering to me -- when it is based on some determinate material with at least a few known logical principles -- which software is.

<comment><USER3> I'll just quote pg from "Hackers and Painters"[1], because he said it better than I can:

> _I've never liked the term 'computer science.' The main reason I don't like > it is that there's no such thing. Computer science is a grab bag of > tenuously related areas thrown together by an accident of history, like > Yugoslavia. At one end you have people who are really mathematicians, but > call what they're doing computer science so they can get DARPA grants. In > the middle you have people working on something like the natural history of > computers-- studying the behavior of algorithms for routing data through > networks, for example. And then at the other extreme you have the hackers, > who are trying to write interesting software, and for whom computers are > just a medium of expression, as concrete is for architects or paint for > painters. It's as if mathematicians, physicists, and architects all had to > be in the same department._

> _Sometimes what the hackers do is called 'software engineering,' but this > term is just as misleading. Good software designers are no more engineers > than architects are. The border between architecture and engineering is not > sharply defined, but it's there. It falls between what and how: architects > decide what to do, and engineers figure out how to do it._

I guess what I'd like to see exist is a "Programming Arts" degree. Or just a "Hacking" degree.

[1] <http://www.paulgraham.com/hp.html>

</comment></comment></comment></comment></comment></comment><comment><USER6> I think my CS degree was very valuable (regular expressions! hash tables! discrete math! cache cache cache!), although I'd encourage absolutely everybody to pick up two degrees as long as you're there. You might as well get a jump start on domain knowledge.

Weaknesses of a CS degree:

1) At the point of graduating college, it is likely that your experience working with teams in a production-like environment will be minimal. I think I did, hmm, three labs like this? None of them produced anything close to a real software product.

2) Academics don't work like industry. I worked at the university for a bit after graduation and we still didn't use, e.g., source control, testing, etc etc. Pick your favorite best practices test, we would have scored negative. It took me a few years to learn better habits.

3) You tend to do a lot of stuff which has little relationship to what you'll be doing for the rest of your life. If I were dictator for life of the CS department, I'd have kids exposed to web programming very freaking early, because it is much more likely they'll end up doing that than fat Java client apps (what we _actually_ did in school).

4) There are a lot of soft skills that go into engineering that some schools give short shrift to. I will defend this one to the death: the most important skill for an engineer is oral/written communication, and their ability to actually produce stuff is a distant second. We had _one class_ on technical writing.

<comment><USER7> web programming in a CS program?

I think you are falling in to a trap a lot of people fall in to. There are a ton of cliche comparisons I could make, but I'll spare you.

If you want web programming, you should just get yourself enrolled in a technical school that will teach you all of that in 2 years.

<comment><USER8> The fact remains that it is much easier to:

\- Perform Unit/Functional/User Test

\- Use version control

\- Be exposed to a variety of both tools (editors/ides) and services (github.com, getexceptional.com)

\- Work in a distributed manner

\- Get real world feedback on your application from people other than the Professor

\- Work with more than the String class of your language

\- Collaborate on related, but not dependent, code in the same codebase

\- Learn different patterns (Observer, Singleton, etc)

\- Develop the way you would in the real world (Scrum? Waterfall? You name it. No real cowboy coding)

when doing web development than doing most "Random Number generator" or "Porpuquine" projects assigned in CS to show recursion or proper OOP.

I'm probably biased though, as I'm a web developer who went through the Java bullshit and didn't learn a damned thing until I actually tried to make a web application that someone other than my Professor of Data Structures and Algorithms II was testing/grading/using.

ADDENDUM: As for the CS portion of the degree, learning all the aforementioned skills will hopefully allow you to more easily grasp things like the difference between PSPACE and NP-Hard problems, Genetic Algorithms, AI, etc. I'd hope to god that someone designing AI would at least use version control on their application. It would be a nightmare to find a bug that sliced a person in half when they are in surgery without a tool like "git bisect" :)

</comment></comment></comment><comment><USER9> One thing missing is a separate programming degree. The current CS curriculum at the schools I've seriously looked at has become a muddled bunch of courses that cover many basic CS topics at a very shallow level, trying to teach good programming practices along with some theory. This trend should be reversed in a CS degree - a lighter emphasis on actual programming and a heavier emphasis on mathematical analysis, proofs, etc. There is plenty of this kind of thing that has real-world applicability only tangential to programming. Even the grad-level AI courses at the University I'm attending downplay the role of math. There is nothing wrong with this per se, but I believe that it is at the expense of the real potential of teaching people CS at the undergraduate level. IS degrees sometimes fill the role of a "programming" degree but the variety there is pretty broad.

</comment><comment><USER10> When I left school my biggest gap was in my practical idea-to-code translation ability. I'm talking about the ability to sit down and write some useful code. I had spent the previous three years thinking about type systems, programming language design, and math, and when faced with the problem of having to make some code that would do some thing, I'd say, "What's the simplest angle from which to look at this problem?" It turns out that a much faster way for me to get well-designed working code was to just stop worrying and implement it badly, and not care about the design -- the best angle is from the inside. I've learned to artificially devalue good design.

</comment><comment><USER11> Personally I'm not that interested in the deep mathematical side of CS. To me the two biggest problems are a poor understanding of abstraction and a lack of style.

Abstraction is so much more than "Apple is a Fruit" style OOP. Objects, processes, ideas, language... a focus on abstraction from the start is one of the reasons I think the SICP videos are worth watching.

Programmers must learn to develop their own sense of style in their code. Practice writing things until they flow and feel natural. Coding is communication, to you, your team and your computer. Try not to stutter.

Keep in mind I studied in NZ and was generally a terrible academic, we are far away from anything like MIT...

</comment><comment><USER12> I went to a school (Georgia Tech) where the CS degree is made up of a core and several specializations which actually let you have a huge swath of classes relevant to what you want to do. I had only 2 "math type" CS courses (within the college, I additionally had Combinatorics and "Calculus 3 for CS" which was basically matrix math methods, but they we taught by the actual math department).

I do think this approach where there are lots of specialties (Software Engineering, Game Prgramming, Systems Programming, etc) allows people to get experience and training relevant to where they're going in life.

All that said: I really really really want to see realistic mentored debugging go on in a CS program. I want to see 2 students and one experienced adult, sit down and learn next to someone the ins and out of all the modern debugging techniques (debuggers, binary search, profilers, memory leak detectors, etc). None of the classes had anything like that, and that was the biggest thing missing that comes to mind.

The second biggest thing is _realistic estimation methods_! Until I read a book on it and practiced a lot, I was horrible at it. Very little was taught on actual methods to make useful estimations.

(Here is a non-aff link to the book who's material I'd like to see covered in a college CS curriculum): [http://www.amazon.com/Software-Estimation- Demystifying-Pract...](http://www.amazon.com/Software-Estimation-Demystifying- Practices-Microsoft/dp/0735605351)

</comment><comment><USER13> Industry might say that CS should concentrate on churning out experienced software engineers, but they are just avoiding the responsibility for training themselves.

If you read CACM academia thinks CS is missing students. They want to dumb it down to get more people in, especially less geeks and nerds, and more women and minorities. They are looking at ways of dumbing it down and making it appeal more to the masses.

I think in general CS is missing industry contribution. I would like to see more commercial enterprises writing papers, submitting at conferences, doing research, and training graduates to become developers.

Some CS programs seem to have buckled under pressure and turned into learn- java trade schools. These places are missing computer science. Some try to simulate the working environment and focus too much on working on larger projects in teams because that is what industry wants, but we have our whole life to do that and uni can't teach that well anyway, you need real experience for that.

But in general, I think most CS programs, especially after year one are pretty good, and teach what they should be teaching.

I like them to teach the classic core CS disciplines, theory, algorithms and data structures, AI, databases, software engineering, graphics, and they should focus more on leading edge stuff that is perhaps not so well used in industry but provides interesting scope for further research. I think they should deliberately use languages, paradigms, and tools that are not (yet) mainstream in industry.

</comment><comment><USER14> I would say that an intrinsic weakness of CS (and, probably, any other engineering) education is that a lot of the curriculum is targeted towards a past goal. CS is not just science but also industry, arguably in some ways more industry than science, and a very quickly evolving one. Not all professors can keep the curriculum up-to-date.

Fortunately, it appears to be a relatively small drawback. Particular details may change in a few years anyway; being prepared for the change is more important, as is being capable of learning, and this normally comes with a solid foundation which a good university program can provide to a good student.

This is a very general answer. I apologize that I cannot give a more detailed answer; my exposure to the CS education was through a graduate school which gives a different perspective.

</comment><comment><USER15> I've started realizing just now that your standard CS degree is completely useless in the real world. I feel like I've learned absolutely nothing in these two years. Fortunately, a combination of real life events and comments from people on HN has opened my eyes to what I _don't_ know. So, here's what you - correction, _we_ \- need to do to complete our education:

1\. Contribute to a FOSS project, or start and manage your own. Alternatively, build a product and try to monetize it. This pretty much covers everything that your CS degree claims to teach you. Now we can move on to more important things like ...

2\. Learn to meet and talk to new people. Learn how to be comfortable around people, and to make other people comfortable around you.

3\. Learn to speak in public. Learn to clearly present your views and opinions to an audience.

4\. Meet women. You won't get time to do this once you're a Silicon Valley billionaire ;P

5\. Learn how to negotiate. Learn how salespeople and negotiators employ simple psychological concepts to get people to agree with them. Learn how to protect yourself from these people.

6\. Study non-CS subjects. Psychology, economics, music, art, whatever. It's critical that you broaden your horizons beyond standard CS topics.

This is what I've figured out so far. If more experienced people have anything to add to the list, please do :)

<comment><USER4> >I've started realizing just now that your standard CS degree is completely useless in the real world. I feel like I've learned absolutely nothing in these two years.

Does that mean you're a sophomore? If so, you've probably just learned the most basic foundations of CS. I've done 6 years of CS (I was a CS major and I'm just about to finish my master's) and I'm pretty sure I've become a better programmer every year. Maybe I sucked to begin with, in fact I know I did, but nevertheless, I've gained a LOT from my extended education.

<comment><USER15> Yes, I'm a sophomore.

I attend IPU, which is more or less a Java school. What they teach us here is geared towards the lowest common denominator. I can confidently say that I could've learned everything IPU has taught me on my own. I've been teaching myself since high school, so I don't find picking up new stuff very difficult. If there's something I don't understand, I ask someone on IRC/Reddit/StackOverflow/HN. The world is full of smart, helpful people you can learn from :)

YMMV, depending on the school you attend.

<comment><USER4> Fair enough, though one important thing about CS is that when you're starting out, you don't know what you don't know. Also, like I said, after you do the basics you can get into the fun stuff (graphics, AI, theory, etc.; whatever floats your boat).

Also, I haven't attended a "Java school". Most of my undergrad projects were in C++, and in grad school I've been forced to use Java in maybe 3-4 classes but have done at least one project in each of Lisp, Python, C++ (actually I think this is the plurality), and C#. That said, I'm guessing by "Java school" you're referring more to mentality than actual programming language...to which I say, fair enough. Some departments are better than others.

</comment></comment></comment></comment><comment><USER16> I'm a technology ethicist (with a BSc in CS though!), so I have to jump in here and say that society-aware and ethical design principles are seriously missing. Things like how to involve the stakeholders (not just the client, but anyone who might be affected or who thinks they may be affected, or who are simply interested!) in your design process, how to decide whether your technology/program/etc. is actually _wanted_ by society (e.g. the Genetically Modified Organisms issue in Europe, where despite the science being awesome, the public just _didn't want it_ due to the behind-their-backs political wrangling that was going on). And last but not least, how to make sure that, before you start implementing your amazing idea, your idea is _acceptable_ to society. Not accepted, since that's just a matter for compromise in the end, and compromise is not what ethics is about (it's about choice!).

Technology has a bad habit of arriving, and then the mess being sorted out later. It'd be great to get those creating it to realise the impact they will be making on society and do something about it before it creates the mess. Of course, regular feedback loops on how it's all going throughout the lifetime of the project are also necessary -- just look at the facebook debacle recently! And the Google wifi scandal! And I could list a whole bunch of other seriously problematic incidents in the last 10 years (which, incidentally, is around about when I had just started my CS degree).

I realise this is mostly a pipe dream, and that most CS students snore through any "ethics" classes they may have, but instead of these "why are we here?" classes, perhaps integrating ethical design principles into the general procedures for software engineering would be a start.

</comment><comment><USER17> A large missing element is managing change - and how this relates to maintaining a successful project. I see this as one of the fundamental challenges of developing software in the real world. It's something you can largely ignore during a degree, where it is unlikely that a project lasts more than a few months. The best way to learn what challenges you'll face in the real world is to take on a long-term project. You'll make assumptions and mistakes early on which you can learn a lot from.

It would also be great to observe or join an existing project -- a project that has been around for some time but still maintains a strong momentum -- and learn from the way it works. That is, short cut some of the process by observing others that have overcome some of the challenges.

This should also teach you that there is so much still to learn about successful software projects that you'll be doing it your whole career :).

</comment><comment><USER18> One of the best things I've heard: Be wary of anything claiming to be the real-world that is not actually in the real-world. Teaching "real-world" computer programming in school is an impossible goal. You only get the real- world experience when you are out in it. CS should prepare you for the real world, and help expose you to the real-world, but it's almost impossible to teach it. What CS does teach you is the bigger things. The bigger concepts that go beyond software engineering, or any particular project in particular. You learn how to think about big things and hard problems. CS at a university is not a prep course for your job per se. It's not a trade school. You're learning things that can be applied in the real-world but transcend the real- world. It's important to realize that there are more important things than just being able to program C# for your job.

</comment><comment><USER4> I suspect a lot of CS departments don't encourage/teach teamwork. I majored in CS at Georgetown and never wrote code with a partner. Then I spent two years at Stanford doing a MSCS and did group work in very nearly every class...which was extremely valuable.

So, my advice: Learn to write code in a team.

<comment><USER19> At my Uni (Australian) it seems I never get to work alone, more than half (maybe 4/5ths?) of all my work has been completed in groups. I have definitely been developing my teamwork muscles for the last two years. Although looking over past material it seem like this has all been a recent development for my department.

</comment></comment><comment><USER20> I think one thing which is probably overlooked a lot and could be considered outside of computer science is communication skills. No matter where you go with your degree: academia, industry, start up or further study these are skills which you will need.

It doesn't mean you have to give up a broad education on underlying computer science principles to get these either, just include things like presentations and written reports with the theory work as you go. Team work is a contentious one as well. if there is team work you have to mark each persons contribution to the team rather than the team as a whole. I have had the experience of being lumped with some pretty terrible people work ethic and skill wise and had to produce something as a team.

</comment><comment><USER21> I just finished my CS degree, and I think that it was worth it. I had time for self-directed projects in any language I wanted, learned about web programming, interface design, compiler and interpreter design, regression testing, prototyping, and all kinds of things that I might not have learned on my own. The only glaring problem was that the professors never had time to teach. They treated classes as an annoying distraction from research and programming, and many of them simply did not focus enough energy on teaching, and were unprepared for class.

</comment><comment><USER22> I graduated last may as a computer science major and realized the holes in my skills were everywhere. I found that my theory was much better than my actual ability to code. It seems that schools should teach their students one oop language for three years and then start showing them what other options are out there. I found myself in the working world convinced I knew how to code in java, c++, python and php, w/o the real skills to work in any of them.

<comment><USER23> Isn't this true of all degrees? I have a friend who got a MSc in financial mathematics, and she said she was quite surprised to learn that all the quant math she had studied for her degree was basically scoffed at as "academic" once she got her first job. The same is in fact basically true for just about everybody I know, no matter what the field. If you went to university expecting vocational training then you where basically doing it wrong.

<comment><USER7> Cool. I've been checking out Financial Math masters programs. Any info about where your friend went and how she felt about it would be appreciated!

</comment></comment></comment><comment><USER24> Everything of importance cannot be taught.

Degrees will always be "inadequate" compared to the fast changing world. What is important is that it gives you tools to apprehend your work and even perhaps your life.

In your case, computer science (mathematics) and fundamental languages are a must (Lisp, C, assembly...).

Get the basics right. You'll have all the time in the world to learn "business stuff".

</comment><comment><USER25> Hmmm... I think "up-to-date" professors. I've had professors who've been teaching for decades and they're still stuck in the decade they started teaching. In some instances it's ok, but in other instances it's just obsolete and new methods to approach a certain problem have been developed since then, which they are unaware of.

<comment><USER20> Interesting this, as part of my degree(computer system engineering) there is a final year engineering management class where the lecturer updates the lecture before it is given to reflect current business details.

I think this is awesome compared to say another subject I have now where there is two lectures on the semantic web which seemed to describe the exact same stuff that has been around for the best part of a decade.

</comment></comment><comment><USER26> Women. It hurts.

<comment><USER27> Why would this be down voted? Diversity is essential when trying to find solutions to problems and there is a huge lack of diversity in our industry when it comes to women in computing.

<comment><USER14> Diversity is helpful, not necessarily essential.

Not just diversity of gender (or, say, race). Also diversity of life experiences, ideologies, etc. One of the best things about having studied in an American university for me was the number of international students actively participating in school life, together with and just like American students. Such a contrast with a Soviet university where I had studied before that and where all international students were isolated in their own academic groups, we had almost no interaction with them.

<comment><USER27> We may disagree on the degree to the 'helpfulness' of diversity; essential may have been too strong of a word. I think that diversity is 'essential' in that we cannot solve problems as well as we could without it.

I agree with you that diversity of experience is the key ingredient of diversity. Superficial diversity can actually be harmful. However, I would argue that men and women have the most disparate experiences between the most common classifications of people.

</comment></comment></comment></comment><comment><USER28> How to build things.

Stuff you learn there is valuable. But you won't know how to build things unless you--well, try building things.

</comment><comment><USER29> USER INTERFACE DESIGN

Most cs students graduate without experience making products that normal (non cs) people can use. That's a shame, especially when you consider that some killer products (iPod, Basecamp) have largely been successful due to user interfaces.

<comment><USER30> UI Design has more to do with Industrial Design and less with Computer Science.

In other words: UI Design is to Computer Science what Industrial Design is to Physics. In that respect, they should bring more programming to the "art" programs (especially digital art), and less art to the computer science programs:

You don't really need to know the nitty gritty of hash tables, the difference between bubble sort and quicksort, how to implement Djikstra's Algorithm or how to build a blazing fast trie to build a beautiful+easy+informative interface to complicated software.

(You may, however, at some point, need to hand off your completed work to someone who does - depending on the platform)

</comment></comment><comment><USER31> Some CS programs are very good, it often depends on the school. Generally speaking, math has been de-emphasized too much and statistics is almost non existent.

</comment><comment><USER32> History of Computation. Read some old papers, study the people who wrote them. I would've loved a class like that.

</comment><comment><USER33> Math, science, and programming.

</comment><comment><USER34> The real world.

<comment><USER35> yeah, but seriously?

CS graduates don't know how to ship a product, they don't know how to deal with clients, they don't know jack shit about the real, someone has to pay the bills somehow, world.

+1 to lleger from me.

</comment></comment><comment><USER36> Generally speaking, CS programs out there seem to lack both depth and breadth, be out of touch/time with "the desert of the real", and suffer from what Dijkstra called "the infantilization of curriculum". Too often do I see people who are proficient (for some value of "proficiency") in one (1) language, usually the wrong one. I believe that a CS program ought to introduce you to several languages, to a level where you can read and write programs of small to medium size (~1 kloc). At a minimum, in this day and age I would expect C, your least favorite mainstream language (though I personally would avoid Java, due to combination of a lack of an explicit reference type and a misguided OO fetish), something from the Lisp family (Scheme), and Javascript. Something from the ML family would be a bonus, though I would skip type theory altogether. Having been exposed to several radically different languages helps. I would ask everyone to write an interpreter for a simple language (in a language of your choice): something with variables, conditionals and function calls. A compiler for the same would be a nice next step. As projects go, this would be sufficiently involved to address Dijkstra's complaint part of the way.

A few people said something to the effect "the real world is missing". It's true. Majority of CS programs appear to be years out of date with respect to the industry practice, whatever "the industry" happens to mean for you personally. To some extent this is inevitable, though we could be doing a lot more to address the issue - say, as someone suggested, via a separate course, one that is updated biannually. A course like this could and should include a discussion of things like source control tools, build tools, etc. Things like resource management idioms in languages of the day should be discussed explicitly: too often graduates of CS programs assume infinite resources or automagical cleanup, especially if they come from a background in languages that are garbage collected. A course in parallel programming presented via different languages and their approaches to parallelism would be fantastically useful; I would pay money to see it on OCW or similar.

Somewhat related to Dijkstra's complaint is the following concern: people are terribly bad at thinking about complexity, at all levels - from a single source file to a system composed of hundreds of separate processes. We would do well to discuss managing complexity explicitly in CS curriculum: to make people think about difficulty of maintenance, changes to a working system, rollout procedures for uptime, etc. A seminar on the subject of complexity management, from small to large scale, with examples, would be very useful.

Incidentally, this is something I have been thinking a lot about over the last two years, in part due to conducting a metric shitload of interviews for intro positions. There are things that my CS program was missing, and things that a majority of programs out there seem to be missing; understandably, what I can say mostly applies to the former.

</comment><comment><USER37> CSS, Javascript, XHTML, PHP.</comment>


Stalking apps are "perfectly legal" in US, but banning them won't be easy - <AUTHOR> https://nakedsecurity.sophos.com/2015/11/16/stalking-apps-are-perfectly-legal-in-us-but-banning-them-wont-be-easy/ <comment><USER2> A nice solution is law that must ensure the consent of the owner of the devices for the software to be installed.

This will make illegal quite a big chunk of the "evil" uses.</comment>


Why Tesla Won't Be Able to Scale - <AUTHOR> https://hbr.org/2015/04/why-tesla-wont-be-able-to-scale

<comment><USER2> Don't think the article sufficiently accounts for the fact that the tech is going to get cheaper fast & thus help Tesla reach the lower end easier as time goes by. Plus much like Apple they anchored their product in consumers mind as a high end product already. Perhaps not truly disruptive yet but it already kinda works and once it's up to scale (better network etc) it'll only get better.

<comment><AUTHOR> And a second factor: Apple may be the high-end-only player, but that is not necessarily a disadvantage, as they are still raking in most of the profit of the cellphone market.

</comment></comment><comment><AUTHOR> Would love to read opinions on the 'access to resources' argument.

To me, it seems that EV require different/unique resources (like access to a giant factory of really good batteries), and not just 'brand' and 'cash', as the article says.

And, if that is the case, Tesla would be the car company most likely to succeed in this market.

</comment><comment><USER3> This implies Tesla will forever remain an automobile manufacturer. There is a potential future where Tesla acts as a flagship to start an electric automobile market and will then supplies components (e.g. batteries) for manufacturers within that market. Elon's future is on Mars, not designing SUVs.</comment>


Large Underwater Observatory Disappears Without a Trace - <AUTHOR> https://gizmodo.com/large-underwater-observatory-disappears-without-a-trace-1837897180 <comment><USER2> Thorough discussion: [https://news.ycombinator.com/item?id=20886458](https://news.ycombinator.com/item?id=20886458)

<comment><USER3> Thanks!

</comment></comment><comment><USER4> > Or, it could be the result of a nefarious military operation conducted by an > unknown state actor, but that's pure speculation.

My bet is that it was due to natural causes. Underwater currents, seafloor landslide or something similar.

That humans did this undetected is possible but why would anyone with the capability bother? It would likely cost more to pull off than it could possibly be worth. And, for a state actor, the consequences of getting caught far outweigh any benefit.

<comment><USER5> Russia just had a nuclear explosion. The details are not known. They've clearly been taking monitoring stations offline to hide any data from the event getting to the world. This would be another.

<comment><USER6> > The station collected data about water temperature, nutrients, salinity, the > speed of water flow, and concentrations of chlorophyll and methane.

Doesn't seem like this thing would've collected much interesting data about a nuclear explosion.

<comment><USER7> Any sudden peak in temperature and speed would be registered for example. Any sudden change in salinity would be even more interesting. Another possibility is an explosion wave that could dislodge the materials and move it to other places

If I'm understanding correctly, they have the exact hour of signal loses. Ships have predictable and registered routes, (except military). First thing to do should be to take a look to the ships in the area around this timestamp.

If trying to save people and all nations with science was not enough difficult, now with a 30% more of sabotage. Fantastic.

<comment><USER8> The incident in Russia was too small to have these kind of effects this far.

It is only really traceable through radiation, because our instruments are very accurate and the signal is very clean - it does not change much through natural causes.

Russia was my first thought, but you can't hide a submarine depth of 22 meters.

Conversely, get a small boat, commodity diving gear and 3 dudes, and this is easy to do. You get this kit for a few grand.

<comment><USER5> That really doesn't matter to a kgb agent who wants to keep secrets. Don't know anything about the depth, but seems deep enough.

<comment><USER8> I do not follow what you are saying

<comment><USER5> It doesn't matter whether a nuclear scientist and a fully staffed lab were in that sensor "bed" or not. It's near enough for them to want it destroyed.

<comment><USER6> It's a thousand miles away. It's not at all near to the Russian nuclear accident.

The depth is an issue because a submarine can't go deep enough to be undetected there. It'd be visible to aircraft and boats in water that shallow.

<comment><USER7> > Another possibility is an explosion wave that could dislodge the materials > and move it to other places

In this paragraph I was including the possibility of somebody blowing deliberately the station with dynamite for example.

Those things are expensive so the question to ask here is if the station is still lying in the seafloor or was removed by somebody. If is possible to recover it, even partially, could make a big difference for the research team.

I remember putting into the ocean a cylinder full of sensors. It was relatively small, an R2-D2 sized thing or so. The main researcher of the oceanographic campaign was literally sweating with the idea of some chain breaking in the process and losing the small cube property of the university. Each time it was used was like dumping the economic equivalent to a luxury car in the open sea hanging on a chain and hoping that all went ok, several times in a day.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Bottom-trawling commercial fishing.

</comment><comment><USER10> Here is its homepage: [https://www.bokniseck.de/de](https://www.bokniseck.de/de)

</comment><comment><USER11> made me think of this story [https://www.businessinsider.com/russia-submarine- losharik-un...](https://www.businessinsider.com/russia-submarine-losharik- undersea-cables-media-speculation-2019-7)

</comment><comment><USER12> I first read this as "Large Underwear Observatory"</comment>


You have 7 years to learn Mandarin - <AUTHOR> http://money.cnn.com/2008/04/29/magazines/fortune/seven_years_learn_chinese.fortune/ <comment><USER2> Isn't this just like 20 years ago when everyone thought the Japanese were going to take over?

<comment><USER3> Part of it is, but China has several things that the Japanese do not.

Japan has to import pretty much _everything_ they need to keep their economy running. The Japanese population is also about half that of the United States, and during their boom years, there was such a massive problem in finding skilled workers that the Japanese government had to turn a blind eye to the sheer number of illegal immigrants flooding in from the rest of southeast Asia.

The Japanese also care very deeply about nature; I have never seen a polluted stream or a park covered in litter there, and I've spent a decent amount of time in the country. Of course, this is one of the bits of Japanese culture that I rather love. _grin_

So, Japan could have probably swallowed the U.S., if they weren't so dependent on imports; it puts a limit to how high their economy can really go.

China has a wealth of natural resources, and more than enough skilled workers. China also doesn't care one iota about their ecology, which is why Beijing is not a city to live in if you're a fan of air, or water -- it's also worth noting that, sanitation-wise, mainland China is still very much a third-world country.

But unlike Japan, China doesn't _need_ to be importing and exporting to keep their economy going; they've got so much work to do in their own country that they've got growth potential out the wazoo.

That said, China is rapidly becoming a toxic wasteland, and I'm curious how well the Chinese business system (all businesses being government entities) will scale; this goes double, given how the culture promotes rampant cronyism and incredible corruption.

Well, we live in interesting times. :)

<comment><USER4> "I have never seen a polluted stream or a park covered in litter there"

A Japanese beach, though, is a giant ash tray.

<comment><USER3> This is sadly true; I really, really wish that the whole 'respect for nature' included things like 'not smoking'.

</comment></comment></comment></comment><comment><USER5> i don't think the world will ever learn mandarin en masse if that entails learning thousands of characters. that said, if the chinese embrace an alphabet (at least for communication with foreigners), pinyin/bopomofo could become the standard for an "international mandarin." or more likely, the chinese will just learn english since it already has international traction.

</comment><comment><USER6> Good luck grokking the four tones of Mandarin, it's tough, but doable. I was lucky enough to have been raised speaking Mandarin, though my skill isn't great and I probably have a thick American accent. donw, the traditional characters are beautiful, and easier to remember (though harder to write). But when it comes to China in specific, I've been told that the traditional/simplified character thing strikes up the Taiwan/PROC tension. It's a beautiful language, and there are plenty of movies that will get you to understand that. A girl I dated improved her Mandarin tonalities after we watched "Crouching Tiger," of all movies. However, many of the "mainstream" Chinese actors we're aware of here in the US do NOT speak Mandarin as a first language, and their accents aren't very good in roles where they're forced to speak Mandarin.

<comment><USER7> the tones aren't hard. reading and writing Chinese characters (even simplified) are hard

<comment><USER8> Classic essay: "Why Chinese is so Damn Hard" <http://www.pinyin.info/readings/texts/moser.html>

"Someone once said that learning Chinese is "a five-year lesson in humility". I used to think this meant that at the end of five years you will have mastered Chinese and learned humility along the way. However, now having studied Chinese for over six years, I have concluded that actually the phrase means that after five years your Chinese will still be abysmal, but at least you will have thoroughly learned humility."

<comment><USER9> This is a really good essay that I read long ago. My view is... you got nothing to worry about. Between how hard Chinese is to learn, and the eagerness of Chinese to learn English ([http://www.newyorker.com/reporting/2008/04/28/080428fa_fact_...](http://www.newyorker.com/reporting/2008/04/28/080428fa_fact_osnos)) and the fact that even at current rates of growth it'll take decades for China to catch up means English will be the default international language for a long time yet.

</comment></comment></comment></comment><comment><USER10> I have no doubt that China will grow as an economic power. Personally, I'm not especially worried about it. As China gets wealthier, the "wage arbitrage" involved in moving over there will shrink, so I disagree with the writer that Americans in "place-based" activities will be better off. You may be better off in a position to sell stuff to newly wealthy Chinese and Indian consumers. I also suspect that prosperity and liberalism (meaning democracy and free markets, not handouts) will go hand in hand - so far, they usually have.

As for learning Mandarin? Hey, go for it, but I doubt it'll be crucial. English is very entrenched at this point, and it's not really about the USA anymore. English became entrenched because of the British Empire/US ascendency, but now it's just a convenient standard for the 21st century. I've read that several European companies are so diverse that it's easier to just use English than German, French, Swedish, regardless of location. Scientific conferences in Asia use English even when the audience doesn't contain a single American, Brit, or Australian.

Nobody does this out of some deep respect for English - they do it because it's convenient. Everyone educated these days becomes literate in their own native language + English, and preferably some other language as well.

</comment><comment><USER3> Well, I'm starting in the near future, albeit with the traditional characters, rather than simplified (U.N. be damned). China is undoubtedly an economic powerhouse, and learning new languages is fun, so I might as well pick up something useful.

That said, this is not necessarily a bad thing; in fact, maybe it's a good chance for the U.S. to get back to its economic roots and actually start producing something again, with an exchange rate that favors exports and a skilled local labor pool.

</comment><comment><USER11> Wow, highly original thought: China is going to be an economic superpower.

Except I have read that about a zillion times before...

Just gives me a thought: maybe it would make sense to create two fake identities, one who predicts China becomes a superpower, and one who predicts that it is doomed. Then, whichever turns out to be true, you can officially assume that identity and be hailed as a prophet.

</comment><comment><USER12> I always wonder when people list China among the most powerful nations in the world.

For sure they the most populous with 1.5 billions; it's a big market of people to sell stuff to and unlimited cheap labor;

Here is my point 1.5 billions with a middle class (by world standards) of few millions, a large majority under the poverty level (by all standards), the shared revenue per head is as low as most poor countries. Is China powerful because of its population only?

Personally I think China will pull the whole world economy down the more it opens to the world (it's already started with Gas and food); the growth will be tempered by humanitarian need.

Put aside the option of a bunch of cheap labor China is still globally a very poor country and not yet in the position to make mandarin a great commodity.

</comment><comment><USER13> "If we used the exchange rate, the value of a new skyscraper in Shanghai would count much less toward China's GDP than an identical building in Chicago would count toward America's, which makes no sense."

Somehow, I don't think the author has thought very hard about this. The value of the building isn't labor plus materials -- it's not like he'd make the same argument about putting it in the Gobi desert. It's possible to estimate the proper exchange rate, and use this to estimate China's actual GDP.

</comment><comment><USER14> I am not sure that anybody needs to learn Mandarin. However, all my friends who speak it have gotten nice job offers in China.

</comment><comment><USER15> Eh. Even if China gains economic supremacy, they won't have as much cultural significance as a single hollywood B-lister.

<comment><USER16> I am sure they will for the 1bn+ Chinese speakers.

Culture tends to spread based on economic supremacy. It has done in the past, do you have a reason to think it won't here beyond the language barrier?

<comment><USER17> because they dont WANT to believe it they choose not to believe it.

obv the white western world is not gonna reign over the whole world forever.

lets jsut ope they treat us better than weve treated them.

any hope for democracy in China in the near future?

will it happen as they grow wealthier?

i mean it can ahrdly be called communism anymore, more like fascism now(not that thats any better).</comment></comment></comment>


Show HN: Annex – What are you doing? - <AUTHOR> http://jathu.me/annex <comment><USER2> Bit strong colors perhaps.

It's a nice idea, but opening an app to record each single change in activity will be a hard sell, even with the reminders (eventually they will annoy you).

I think that if it is more effort to enter something than it is to close/ignore it - then eventually it will get ignored.

I love tracking and I find the idea of this app awesome (because I have had the same idea). A small example I have personally is "Day One" app for OSX. It pops up on my screen once every 2-3 hours asking me what to do. 75% of the times I press cancel - imagine if instead of cancel there were a number of pre-sets I could fill the date in with. I would 100% press one of those. Quite easy to implement, not sure about it on a smartphone though.

<comment><AUTHOR> >Bit strong colors perhaps.

A lot of my users actually loved the colors. Maybe in the future updates, I can let users choose their own colors. Although, I don't like giving users too many frivolous options, it would depend if I get any more requests for this feature.

>It's a nice idea, but opening an app to record each single change in activity will be a hard sell, even with the reminders (eventually they will annoy you). I think that if it is more effort to enter something than it is to close/ignore it - then eventually it will get ignored.

The reason I left the activities broad and limited the number of activities allowed is because of this reason. I would get pretty annoyed if I had to take my phone out to record every time I went to the washroom, read a blog post or played a game. However, if you broadly categorize those activities, they are all "Chilling" in my view, something unproductive to my goals. So in reality, people only change their broad activities few times a day and not as frequently: sleep, eat, study, meeting and etc. I do plan on making this easier by allowing people to update it via their Apple Watch, Mac and iPhone notification center (I can't do this yet as I still have an iPhone 4, so I can't develop for iOS9- living off of student loan sucks haha).

>A small example I have personally is "Day One" app for OSX.

As you said, one thing I hate about apps like this is that it requires so much effort for me to update it. The idea of updating something everyday is daunting because I have to fill a blank slate. Where as in Annex, all I have to do is touch an option. It would be easier to touch an option rather than touch cancel.

\---

Thanks for the feedback!

<comment><USER2> > Where as in Annex, all I have to do is touch an option.

The issue I can see is that I need to do multiple actions.

Worst case: Pick up phone, unlock/pin, find and open app, wait for a moment, find option and press it. Best case: swipe on reminder, unlock, tap option.

The issue with the best case is that the 'cancel' action still has way less friction than the other. It is zero friction to ignore it but still 1-2 steps to do it.

The optimal case would be to be presented with the options on the lockscreen.

Perhaps you could schedule a minimum amount of notifications and display them at the same time?

Like at 7pm:

I am cleaning.

I am making dinner.

Etc. This way only one swipe would trigger the action (+pin). But it might be hard to get just right. But you see my point.

Anyway good luck. And for what it's worth, I'm still developing on an iPhone 4 as well :)

<comment><AUTHOR> I really like that approach, but I think it may confuse people if I phrase it like that. Maybe something like: "Swipe if you're making dinner". The biggest problem is that friction, had it been Android I can give options directly on the lock screen, maybe (hopefully) Apple would open up more as time goes on.

Thanks for the feedback and help, I'm definitely going try the lock screen method to see if people like it.

</comment></comment></comment></comment><comment><USER3> How private is the data recorded with this app? E.g. is anything recorded pushed to a online service?

<comment><AUTHOR> Nope, nothing leaves the phone. Everything is stored in Core Data.

However, I did plan on switching to iCloud in the next version. I realized now that some people might not want their data on a server somewhere, so I would make it an option.</comment></comment>


Introducing Traction by OwnLocal - <AUTHOR> http://ownlocal.com/newspaper-support-group/introducing-traction-by-ownlocal/

<comment><USER2> Can someone fill me in on what I'm missing? How is this relevant? I don't know OwnLocal so I assume I'm missing something, but this blog post seems pointless - providing nothing more than self-pats on the back and a cryptic screenshot.

</comment><comment><USER3> A three paragraph post about launching something called "traction" about which they give no information except that it's "awesome" and improves "every metric we track". Also some self-congratulations and a screenshot that sheds no additional light.

Why was this posted?

<comment><USER3> Looks like it's an issue tracker. <http://traction.ownlocal.com/>

Why wouldn't they just link to it in the post?</comment></comment>


Introducing Instagram Direct - <AUTHOR> http://blog.instagram.com/post/69789416311/instagram-direct/

<comment><USER2> A big fuck you to Snapchat

</comment><comment><USER3> "fuck snapchat"</comment>


Show HN: ModelMod – modify art in games - <AUTHOR> https://github.com/jmquigs/ModelMod <comment><USER2> This is pretty cool! I wonder what specific use cases the author had in mind. I've been through the short video and the first three minutes of the long video, and haven't seen anything mentioned.

<comment><AUTHOR> Author here. I use it mostly for character mods, just like I show in the videos. I'm a pretty typical "programmer artist" though, so my mods are primitive.

I've also used it for removal. For instance, some games have your character wearing backpacks and the like, which annoy me. So I delete them.

I'm curious to see what real artists will be able to do with it. I'm hoping I can get some better demos from them.

<comment><USER2> So it really is just for when you think a character should look different? Interesting. I'm not an artist, so that wouldn't have occurred to me, but I have hacked up scripts and stats when they annoy me (e.g. "Whaddaya mean I can only carry one grenade at a time? That's stupid!"), which I suppose is much the same thing.

<comment><AUTHOR> Yes, its just cosmetic. Hacking the grenade count is what I would consider to be a gameplay mod, and there is a third category, UI mods, featured in WoW. With some overlap between them.

I think people who pay for games should be able to do all types of mods, but developers often think otherwise, or, maybe they just don't have time to build mod support into the game.

</comment></comment></comment></comment><comment><USER3> Does this work with procedural geometry games like Minecraft?

<comment><AUTHOR> I never tried it with minecraft. I'd have to guess no. I think minecraft optimizes rendering by batching geometry up into big chunks. These wouldn't be very useful as the basis for mods. Could be wrong, though.</comment></comment>


Ford Invites Open-Source Community to Tinker Away - <AUTHOR> http://www.eetimes.com/document.asp?doc_id=1321200

<comment><USER2> This is wonderful, especially comparing the kind of experience you get here [http://openxcplatform.com/vehicle- interface/hardware.html](http://openxcplatform.com/vehicle- interface/hardware.html) vs the soul-crushing experience of finding anything useful here: [http://www.toyota-4runner.org/3rd-gen-t4rs/78245-android- obd...](http://www.toyota-4runner.org/3rd-gen-t4rs/78245-android- obd2-scanner.html) (these car forums are sort of like what searches for programming-related terms would devolve to before StackOverflow, and are second only to phone-related forums in uselessness).

As a selfish aside, do any car nerds know how I would begin finding out if a 2004 4Runner has a CAN bus? [http://www.auterraweb.com/aboutcan.html](http://www.auterraweb.com/aboutcan.html) sort of implies no, but seems far from definitive.

<comment><USER3> Get a 4Runner maintenance manual. Look at how the car is wired, and what modules are in the car. That'll probably give you enough hints to figure it out. If not, and you're the owner of the car, start poking around electronics to find out what chips are in them. Look up data sheets. Or try to sniff signals off data lines and see if they look like CAN signals.</comment></comment>


Google preps own version of Ubuntu - <AUTHOR> http://www.theregister.co.uk/2006/01/31/google_goes_desktop_linux/

<comment><USER2> Entirely false. And a really old article, too (Jan 2006).

Goobuntu is the name of the OS Googlers use internally (if they haven't switched from GHat). I'm not entirely sure if it even counts as a real distro, since they're not really distributing it to anything but new corporate machines.

Of all the businesses Google isn't in, OS's are about the ones the furthest from what they care about. If it involves someone computing on their machine rather than Google's, it better be driving search engine hits...

<comment><USER3> Seconding this. (Except, the old-as-the-hills Red Hat Google desktop is called GRHAT).

There are many companies in the Valley that hack up an OS distro for internal use, either on the desktop or in server farms. It's not that big of a deal.

</comment></comment><comment><USER4> Shuttleworth has shot this rumor down as well if it needed repeating: <http://www.markshuttleworth.com/archives/20></comment>


The Programming Language Benchmarks Game - <AUTHOR> https://benchmarksgame-team.pages.debian.net/benchmarksgame/ <comment><AUTHOR> Didn't know Python was that slow.

vs php: [https://benchmarksgame- team.pages.debian.net/benchmarksgame/...](https://benchmarksgame- team.pages.debian.net/benchmarksgame/fastest/php.html)

vs node: [https://benchmarksgame- team.pages.debian.net/benchmarksgame/...](https://benchmarksgame- team.pages.debian.net/benchmarksgame/fastest/node-python3.html)

vs go: [https://benchmarksgame- team.pages.debian.net/benchmarksgame/...](https://benchmarksgame- team.pages.debian.net/benchmarksgame/fastest/go-python3.html)

<comment><USER2> Was Python fast enough for the programs you wrote?</comment></comment>


Ask HN: Scraping website ideas to implement? - <AUTHOR> I am working on scraping websites like amazon and worked for such scrapping since long. asking for some fresh website for scraping. <comment><USER2> *scraping</comment>


JavaScript Cryptography Considered Harmful (2011 – still relevant) - <AUTHOR> http://matasano.com/articles/javascript-cryptography/ <comment><USER2> Isn't kind of the height of stupidity to attempt to secure transactions on any client-side app?

\- a javascript developer</comment>


Finite Field Arithmetic and Reed-Solomon Coding - <AUTHOR> http://research.swtch.com/field

<comment><USER2> This article is great---but would anyone like to recommend a good reference to implementing Reed-Solomon (and other FEC schemes?) that _includes_ decoding?

<comment><USER3> I find James Plank's tutorials and accompanying code very good:

<http://web.eecs.utk.edu/~plank/plank/papers/CS-07-593/>

And if you want an excellent description of how Reed-Solomon coding is efficiently implemented in Linux, try this:

<http://kernel.org/pub/linux/kernel/people/hpa/raid6.pdf>

</comment></comment><comment><USER4> This just got my brain jazzed. Any other good resources or uses of Finite Fields that would interest a programmer?

<comment><USER5> Similar in principle to Reed-Solomon coding, we have Shamir's Secret Sharing:

<http://en.wikipedia.org/wiki/Shamirs_Secret_Sharing>

It lets you divide a message into (say) three parts, where any two parts are necessary and sufficient to reconstruct the message. Or into seven parts, where you need all the parts to reconstruct the message. Or whatever. The wikipedia page gives a very readable basic introduction to how it works.

<comment><USER6> Fixing your broken link: <http://en.wikipedia.org/wiki/Shamir%27s_Secret_Sharing>

</comment></comment></comment><comment><USER7> One minor nitpick: the set of numbers mod 256 form a field. Powers of primes are also fields.

Edit: it seems I conflated two different constructions of a field of order 256. Apologies. It's been a few semesters since abstract algebra >.<

<comment><USER8> I don't think so. In the integers mod 256, 2 doesn't have a multiplicative inverse. We can see that because 2x128=0.

Do you mean the numbers mod 256 that are co-prime with 256 form a field? Even that doesn't work because 1+3=4, so it's not closed under addition.

So I'm not sure what you mean.

Added in edit ...

Given any positive number _n_ , the numbers from _1_ to _n-1_ that are co- prime to _n_ form a group with multiplication as the group operation, but that's still not a field, so I'm still confused as to what you might mean.

<comment><USER9> He means exactly what he said.

From wikipedia: "The finite fields are classified by size; there is exactly one finite field up to isomorphism of size p^k for each prime p and positive integer k." -<http://en.wikipedia.org/wiki/Finite_field>

<comment><USER8> Hmm. OK, this is an opportunity to learn something.

The integers mod 256 are closed under addition and multiplication. Distributivity obviously holds, and there is obviously an additive inverse. My question is about the multiplicative inverse.

What's the multiplicative inverse of 2?

To say that there exists a field of size 256 is a different matter, and I'd be interested in learning more.

Added in edit:

Quoting from the same wikipedia article:

 _Even though all fields of size p are isomorphic to Z/(pZ), for n ≥ 2 the ring Z/((p^n)Z) (the ring of integers modulo p^n) is not a field._

(Parentheses added for reduction of ambiguity)

Further edit: Not sure why this got a downvote, but I don't much care. Maybe people didn't realize that I wrote this before all the other answers streamed in. Still, now I've learned what may have been intended, and a little more besides, so I'm content.

<comment><USER10> > What's the multiplicative inverse of 2?

What do you mean by 2? :-)

The typical way to describe the finite field of order 256 is to look at a set of polynomials like this,

c_7 * x^7 + c_6 * x^6 + ... + c_1 * x + c_0

where c_i is an element of Z/2Z, so it's either 0 or 1. Count how many such polynomials of degree <= 7 there are - since each coefficient is either 0 or 1, there are 2^8 = 256.

Ok. Now we can define adding these polynomials in the usual term by term way.

For multiplication, if you tried to just straight up multiply two polynomials of order 7, you might get a polynomial of order 14. So, here's the trick: pick a polynomial of degree 8 that cannot be factored as a product of polynomials of lesser degree. This is the polynomial equivalent of a prime number (prime numbers cannot be factored further either, right?).

Just as we can look at Z/pZ, we can look at the set of polynomials over Z/2Z modulo g, where g is that irreducible poly of order 8. It should not be any more obvious to you that this works than that it is that Z/pZ is well defined, forms a field, etc. But you can verify it in pretty much the same ways as you'd prove it for Z/pZ.

Anyway. So what do you mean by '2'? In this representation, 1+1 is 0.

Sometimes by '2' people mean x. That's because there's a natural coding of these polynomials as bits in a binary word. Since each coefficient is 0 or 1, you can say the ith bit is the coefficient of x^i. With that encoding, 2 is 0b10, is 1 * x^1 + 0, is x. So, the inverse of x is going to be x^254 mod g (where g is that irreducible generating polynomial).

<comment><USER8> Yes, but what he said was:

      : the set of numbers mod 256 form a field.

Without qualification it seems reasonable to assume the usual operations of addition and multiplication, and not to assume that the integers mod 256 are simply being used as an opaque labelling of the elements of a field such as you describe.

And the labelling is opaque, because while it's obvious what polynomial an integer gets mapped to, the multiplication depends on the particular _g_.

</comment></comment></comment></comment></comment></comment><comment><USER11> A small summary:

1\. Z/pZ is a field if and only if p is prime.

2\. for every p prime and n>=1 there exists a unique (up to isomorphism) field, called Galois field (see any book of algebra for the proof).

3\. you can build a field of p^n elements for every p and n>1, using polynomials over Z/pZ mod an irreducible polynomial of degree n, e.g. (see link) you can build F_{2^8} as polynomials with coefficients in Z_2 (i.e. bits) mod x^8 + x^4 + x^3 + x + 1. If you chose another irreducible polynomial, e.g. x^8 + x^4 + x^3 + x^2 + 1, then you get another representation of a field of 256 elements, but "structurally" they are the same (this should "explain" the expression "up to isomorphism")

<comment><USER12> Useless comment made only for karma whoring.

If you read the post you don't need the summary because you just read the post, which btw, ends with a summary.

If you didn't read the post yet and know nothing about the field, your summary won't teach them anything, and more importantly it won't tell them anything about the post. It won't tell them it's a great, catchy, read, it might only scare them away with hard, math stuff.

If you didn't read the post yet and know a lot about the field, your summary won't teach them anything because there's nothing to teach. All it can do is create a false impression about what the articles is about, but looking at your other posts in this thread I see this is your intention anyway.

<comment><USER11> Apologies and thanks a lot for the detailed explanations

</comment></comment></comment><comment><USER11> Oh, BTW, if you want to implement finite fields arithmetic (at least for bigger fields), don't follow this link -and don't use go-, but see the code of any crypto library, e.g. openssl (yet there are faster implementations).

<comment><USER12> What a dumb, dumb comment. "don't use Go", why not? "don't follow the link", why not? It's a great explanation tailored towards programmers.

OpenSSL is useless for learning the basis of crypto (and the post is not about crypto, but whatever) because you need to understand the algorithms and the math aspect of the problem before you can follow and understand any terse and abstract implementation, and OpenSSL is also bad because it sacrifices lisibility for performance.</comment></comment>


My car was damaged with FlightCar and they don't care – here's the 3-month story - <AUTHOR> https://www.facebook.com/michael.morgenstern/posts/10100906573381481 <comment><USER3> I really don't get this concept. Never ever would I entrust a total stranger that I haven't even met with an expensive piece of machinery. You have zero control over what happens when you're not there and your car could easily end up being totaled, broken (in ways not easily seen immediately) or used in ways that conflict with the law. Sure, the 'middleman' will tell you it's all just fine and they're insured and what not. But in the end it's _your_ problem to fix it if things don't work out and it won't take very much to offset the gains from going this route in the first place.

I love the basic idea behind the sharing economy, way too much stuff lying around unused. At the same time as a supplier of capital goods to that industry you're taking an awful lot of risk.

Edit: I did some googling about flightcar reviews:

[http://www.sitejabber.com/reviews/www.flightcar.com](http://www.sitejabber.com/reviews/www.flightcar.com)

<comment><USER4> The whole "sharing economy" fad preys on people who don't properly understand risk. When the cost of risk is factored in you get the price before the market disruption.

<comment><USER5> Not if it allows you to bring unused/underused capacity into use.

</comment></comment></comment><comment><USER6> I have had the same experience. The car was returned dirty and there was damage on the body. They said they will pay me a measly $60. I asked for $180 since I spoke to a mechanic who said it will cost me that much in SF.

Since there was back and forth I said fine ok just give me the $60 saves me hassle I will foot the rest. I have not yet received the check this was several months ago.

Also another time we had left a credit card in the car by mistake. Someone ran up $700 in charges. Luckily card fraud protection covered us. Flight car did not give a crap when we reported it.

Don't use Flightcar, just take a shuttle or cab or whatever.

</comment><comment><USER7> I will never forget the comment a disgruntled former Flightcar employee left on my rant I posted about Flightcar.

 _I am a current flightcar employee so I will be anonymous.

I read your post and listened to your recordings and I will do my best to break down whats going on a flightcar.

I am sorry to hear your experience...

Do not use flightcar or recommend flightcar to any one.

The CEO is a 20 year old kid and only interested in making money.

He moved the customer support to Philippines because he can get someone for like 10-12$ an hr. Great idea.. right? Let's connect the customers who are loaning flightcar a 30-40k car to someone in Philippines who does not understand english or even knows what a floor mat is.

Check out this post on reddit - [https://www.reddit.com/r/legaladvice/comments/3..](https://www.reddit.com/r/legaladvice/comments/3..).

An email sent by an angry coworker - [http://imgur.com/eGhDhXM](http://imgur.com/eGhDhXM)

Yelp reviews - [http://www.yelp.com/biz/flightcar-south-san- fra..](http://www.yelp.com/biz/flightcar-south-san-fra..).

Glassdoor reviews - [http://www.glassdoor.com/Reviews/FlightCar- Revi..](http://www.glassdoor.com/Reviews/FlightCar-Revi..).

The current working conditions are so shitty that my whole team hates our jobs. And it is not just you, my team and I are badgered by angry customers and we are just done and give 0 fucks to the customers. If your email is the spam in zendesk, it means that one of the philippines reps didnot want to respond to you and marked the email as spam so that the email disappears from their inbox.

SOOO what can you do? \- Post your review to reddit, yelp, facebook and twitter so no other customers go through this. \- Here is the CEOs number, you can try to call him - 609-529-8346

I have a few interviews so I don't care if flightcar shuts down, I will be leaving this hell hole very soon anyway.

You seem like a good guy, good luck and please read all the reviews before participating in a shared economy in the future._

From: [http://watilo.com/open-letter-to-flightcar](http://watilo.com/open- letter-to-flightcar)

</comment><comment><USER8> Not surprised. Had a terrible experience with FlightCar. They didn't damage my car but I rented one. Arrived at the airport after a 13 hour flight, went to FlightCar, they said the car I was supposed to rent didn't come in. Told me they would refund me, reimburse me for a rental but in the end, they didn't reimburse me. Will never use them again.

</comment><comment><USER9> I'm still a bit confused about why anyone would rent out their car via FlightCar when I normally see off-airport parking with a free shuttle costing between $5 - $15 per day with discounts when you do weeklong or more.

The "whatever" attitude of people when it comes to taking care of rentals would mean it's just way more trouble than it's worth for me to use. If you're staying for a month or longer, wouldn't it be much more economical to just take public transportation there or an Uber?

<comment><USER10> Because the traditional parking costs $5-15/day, while FlightCar may be paying you $5-15/day?

On a long trip, the difference could be hundreds of dollars in your favor – helping to cover your car/insurance payments while your car would otherwise be idle.

<comment><USER9> Except for you are not accounting for wear and tear on your car. Flightcar pays $0.05 per mile from SFO and says that the average daily mileage is less than 40. So let's say your car is rented for 40 miles a day, that's a whopping $2 you made. The biggest value comes from saving on parking which I think makes sense for some folks who might have to drive to the airport but I would think that anytime you are traveling more than a few days, a shuttle/uber/bus is a much better option.

</comment></comment></comment><comment><USER10> I can believe there was a bad experience, but even _without_ seeing FlightCar's response, this story doesn't completely cohere.

* The vanity-lights in the sun-visors shouldn't "short out" just from being "left open". (It might drain the battery, or shorten the life of the bulb... but simply being 'open' wouldn't/shouldn't cause damage.) The actual failure may have been due to lifetime wear & tear, or perhaps even atypical use prior to the rental period... in which case FlightCar's responsibility is murky.

* The VW dealer price for repair is insane. Yet even though customer is displeased at FlightCar having slightly overestimated the radiator/themostat fix cost (by $200), customer expects FlightCar to cheerfully accept highest-possible cost for his own reimbursement.

Doing what this customer seems to want – generous reimbursement for something that isn't indisputably related to the incremental use during the rental period – might not be tenable for the business even if everyone was acting in good faith. And if FlightCar had a reputation for generous reimbursements, it would also attract people acting in bad faith: blaming FlightCar for preexisting issues that could be snuck by the check-in/check-out inspections.

The difficulty of tracking and resolving such issues may be a fatal flaw in the FlightCar business model.

<comment><AUTHOR> Can't respond to your first point as I don't really know, but I've only used those lights about three times in the lifetime of the car, so wear and tear is a hard thing to state. Proving anything is anyone's fault is an issue whenever insurance is involved, and generally comes down to trusting someone's word.

I definitely would take the car to another shop to get fixed, and the FlightCar rep knew this. The disagreement was not over price, it was over whether they'd cover repair at all.

<comment><USER10> I, too, have a VW with such visor lights, and I, too, have probably used them less than once per year in the last 7 years.

So if a friend borrowed my car and (somehow, improbably) 'broke' them somehow... I might not notice for months.

Are you sure they were working when you dropped the car at FlightCar? (Was one of the 3 times in 10 years that you used the visor-lights that same day, or was checking both part of the explicit check-in inspection?)

<comment><AUTHOR> The last time I used them was earlier this year, around February. I opened the visor before and after the trip (but not slid out the visor lights), to put a garage clicker on it. The light was definitely not open.

<comment><USER10> FYI: In my 2009 VW Tiguan, you don't have to slide the cover shut to turn off the light. The light will also go off when the visor moves back up.

So I can easily believe – and in fact now think it's the most likely explanation – that the renter slid the cover open and the light _didn 't_ come on. Without the light on, there's no reason to even think the slider should be closed. Someone unfamiliar with this mechanism might not even realize that when everything is working, the slider works as an on/off switch.

<comment><AUTHOR> afaik that's not how it works in the 2006 Pasaat, you have to actually shut the mirror door or it stays on, even if the car is off. The service rep said this was fixed in later models.

</comment></comment></comment></comment></comment></comment><comment><USER11> Previously in FlightCar: [https://news.ycombinator.com/item?id=5526655](https://news.ycombinator.com/item?id=5526655) (I just remembered this because I recalled commenting - was it really 958 days ago??)

<comment><USER12> Well, seeing as it's only been 958 days since they promised improved customer service, we should really cut them some slack here..

</comment></comment><comment><USER13> I can sympathize with your frustration, but it sounds like your car was on the cusp of all sorts of trouble when you left it with FlightCar.

I don't know their policies, but if I was the person renting your car - <USER2> would have been extremely frustrated that FlightCar even accepted your vehicle into their renting pool.

I do hope it all works out well for you though - and your story has successfully discouraged me from leaving my car with any such service.

<comment><AUTHOR> Agreed, the car's radiator was definitely not happy. FlightCar's policies are that they don't check or guarantee the condition of cars, which is a bit ridiculous. Kind of like AirBnb but for a hunk of metal that can go 100mph.

For reference, it's a 10-year-old Pasaat with 65k miles on it. I expect big repairs every once in a while, but some of this was actual damage.

</comment></comment><comment><USER14> The news to me here is that if you leave the visors down on a VW it could cost you $1500. That's awful UX/engineering.

<comment><USER15> I think there's a lot left unsaid here. It's a short Facebook post, and the author doesn't seem to be particularly well-versed when it comes to cars.

<comment><USER14> It's not that short. If he's trying to rile up internet anger against Flightcar he needs to be forthcoming with what really happened.

</comment></comment></comment><comment><USER16> We need a more pedestrian friendly world. And more pedestrians. People are letting their legs go underused, not caring how it is killing them, then worrying how they can monetize all their consumer purchases. Cuz: "Logic."

The world has basically lost its mind.

<comment><USER17> People don't use their legs because most people can't afford to live near their place of employment. It's hardly just people being lazy.

The average travel time to work in the USA is 25 minutes. That's in a car.

And I'm saying this as someone who walks to work. I'm aware of how lucky I am.

[http://project.wnyc.org/commute-times- us/embed.html#5.00/42....](http://project.wnyc.org/commute-times- us/embed.html#5.00/42.000/-89.500)

<comment><USER16> Yeah, there is a reason that my _first_ assertion was _we need a more pedestrian friendly world._

Before life got in the way, I wanted to be an urban planner. So I am not just making stupid comments off the cuff. I have thought about the problem space and studied it some, formally even. Plus gave up my own car some years ago.

Better public transit would help. We don't need to walk the entire way to have a pedestrian life. We just need to be able to get there without a car.

</comment></comment></comment><comment><USER18> > I took the car to a mechanic, who told me that it was impossible to tell > whether the thermostat is broken without replacing the radiator first, even > though FlightCar had wanted to fix both

This makes _no_ sense. Replacing the thermostat in most cars is a matter of a $10 part and 15 minutes. You need a pair of pliers and a ratchet.

Meanwhile, the only reasons a radiator would warrant replacement would be extreme buildup (indicative of _much_ bigger issues, like a blown head gasket) or a puncture.

</comment><comment><USER19> What I don't get is why visor lights would cost so much and why would they short out because they were left on. This says as much about VW as it does about FlightCar.

Bummer about FlightCar.

</comment><comment><AUTHOR> For those asking, here's the breakdown of the costs:

Sun visor (x2): 238.78 + 78 service Coin drawer: 215.43 + 195 service New key: 272.60 Key programming: 97.50 Sales tax: 85

Total: 1499.19

Of course, this is an official VW dealer and this repair could probably be done more cheaply elsewhere, which I'd be happy to do. But the issue with FlightCar hasn't been about price, it's been about whether they are willing to cover these things at all.

</comment><comment><USER20> My biggest concern with lending my car out to strangers is many insurance policies don't give the replacement value of the car if it's totaled. Typically to purchase an equal vehicle (based on year, mileage, condition), you would need to spend up to 10-20% more.

Although, I've seen a few car insurance polices offer "gap coverage" at a nice premium to make up for the difference.

<comment><USER21> Not my experience. I've had three cars totaled over the years and always gotten what I felt was a more than fair market value settlement. I've always carried major-name insurance which isn't the cheapest but have always been taken care of when I needed it.

People often get emotionally attached to their cars and are not realistic about what they are worth.

Edit: I can easily see an insurance co. refusing to pay for damages caused while you "rented out" your car, unless you are specifically insured for that.

<comment><USER22> _always gotten what I felt was a more than fair market value settlement_

Yup. Me too, fortunately just one time.

I paid $20,000 for an Acura Integra. Five years later it was stolen. State Farm gave me over $16,000. I'd love for that to be a more regular occurrence (but not frequent enough that they'd cancel the policy).

</comment></comment></comment><comment><USER23> Had a bad experience on the renting side including poor customer service and shoddy operations - can't even imagine renting my own car, just look at their Yelp reviews. One of those concepts I really wanted to be great, but just hasn't happened. Sorry you have to deal with this.

</comment><comment><USER24> Lots of complaints about flightcar here in the comments but I'll just chime in that I had an excellent experience renting from them last time I was in SF.

It cost 3x less than any other rental company and I got a much bigger car and it was a hybrid to boot so I saved on gas!

</comment><comment><USER25> Why would one think about doing this? Sounds like the dumbest idea ever.

<comment><USER26> Not if the insurance/support actually worked. I have nothing in my car. For me it's literally just a driving box. I'd be happy if it could be used when I wasn't using it, especially if that saved me 100+$ in parking fees.</comment></comment>


Dreamhost St. Patrick's 92% off - <AUTHOR> http://dreamhost.com/

<comment><USER2> Dreamhost have a pretty bad reputation, but its amazingly good value as long as you understand a few things.

You arent going to be live 24/7, in the 4 years or so ive been with them I have been down 3 times for more than a day, and a few sporadic is it down / is it up moments.

It isnt going to be the fastest connection in the world, mine is reasonably fast, but it has slow moments.

people hosting business critical applications are just asking for trouble.

but past that, you have a lot of preinstalled software, svn takes a minute to set up, ssh access which you can install most things you want on and a silly amount of bandwidth / space. its pretty perfect for a first host, to put a blog up and share images folder etc.

Part of their bad reputation is from how transparent they are, they are honest about when they go down and what the fault is, their sense of humour about everything grates some people, but I appreciate not being given a canned coorporate response

<comment><USER3> It has been recommended a lot on hacker news before, I didn't realize it had a negative connotation. I just signed up for a year, previously was hosting off a local machine for my personal stuff, for $10 a year I'll make it someone else's problem. We use Engine Yard for our business stuff, but can't beat this for personal.

<comment><USER4> For personal or non-critical sites, Dreamhost are great.

Their reputation stems from the fact that they publish their issues openly on a blog with comments enabled and zero moderation (dreamhoststatus.com). So the kicking and screaming that goes on when sites are down (and all shared hosts go down about the same on average) is publicly visible. This both damages their reputation compared to hosts without such a public forum for venting, and strengthens it on the honesty side of things too.

I've used them for several years though for non-critical sites and I've been as happy with them as with any other shared host (and I've used quite a few over the years).

</comment></comment></comment><comment><USER5> I got one of these deals a few years ago... and I'm still with them paying $9.95, _per month_.

They really get you hooked by giving you the first year for essentially free, and hoping you're just too lazy (like me) to switch after a year.

As for the actual service, I haven't had many problems.

Though I have noticed recently they aggressively cache some things (PHP pages that don't change?), which can make development very difficult. Anyone else notice this? Any workarounds.

</comment><comment><USER6> If you want to see how much downtime they have see: <http://www.dreamhoststatus.com/>

also a twitter feed <http://twitter.com/dhstatus>

As a customer for the past 6 months, I have on occasions been unable to access the web based admin panel

</comment><comment><USER7> Is there any way for existing customer to get a discount on signing up for another year of hosting?

<comment><USER8> Not at all. They are bastards! I haven't used them for about a year. I have been thinking about getting an account for a while now. Saw the special and decided to sign up. No, I can't since I was a customer on the past.

So F#%& them, I am not going to sign up!

<comment><USER9> Yea, F them for not giving you the new customer 90% off promotion! Greedy bastards. (They have this to get new customers, you have already come and gone and most likely won't stick around to the point of profitability.)

<comment><USER10> Don't bother with them if you want anything more then a personal site. Their slowness and downtime will eat any commercial site alive. I'm a long time member but I can't use them for more then my blog and photos (I have lots and lots - more then 10 gigs and that would fill up most vps's) because when it comes to sites for other people you'll just loose customers.

I'm editing to add that I'm looking for a way to move my gallery (10+ gigs of photos) over to slicehost with a mounted "S3 volume" I'm not sure of the performance hits, but I'm willing to bet I'll get a faster site out of it.

<comment><USER9> With what they charge I don't see how you could even assume it's rock solid hosting. I have an account I use for backups and have no complaints. They are asking for a 10 spot in exchange for a year of hosting and a free domain name. Put it in perspective, that's less than the cost of a pizza.

</comment></comment></comment></comment></comment><comment><USER11> It's surprising to see that coupon right on their homepage. Companies tend to be semi-open on great discounts. (meaning, they usually don't get out of their way that much to tell you you can save money)

However, as far as I'm concerned, that works: after looking at the features (pretty much everything seems to be available, unlimited), I'm considering it.

Anybody has any feedback on Dreamhost?

<comment><USER12> I've heard they have problems with Django but handle Rails well (as of December, at least). Don't know if that has changed recently.

<comment><USER13> This was posted recently on HN, should help: <http://news.ycombinator.com/item?id=514430>

<comment><USER12> Thanks. That's actually going to help me a lot.

</comment></comment></comment></comment><comment><USER12> Are there bandwidth/data limitations with this deal?

<comment><USER14> <http://dreamhost.com/unlimited.html>

"What's not allowed in 'Unlimited'? Basically, sites whose essential purpose is to use disk or bandwidth.

When making a website, you should be thinking about "How can I make an interesting site for my visitors while minimizing my server storage, bandwidth, file system, memory, and cpu impact as much as possible?"

The result will be a better experience for your visitors, your web host, and yourself!

Here are some specific examples of things not allowed:

\- Copyrighted content you are not the copyright holder of.

\- File upload / sharing / archive / backup / mirroring / distribution sites.

\- A site created primarily to drive traffic to another site. Making your account resources available (whether for free or pay) to the general public."

<comment><USER15> _When making a website, you should be thinking about..._

... how sweet it is to not be on shared hosting anymore.</comment></comment></comment>


Networks and the Nature of the Firm – What's the Future of Work? - <AUTHOR> https://medium.com/the-wtf-economy/networks-and-the-nature-of-the-firm-28790b6afdcc#.quidxqbio <comment><USER2> Roald Coase's impact on the organisation of the firm is a big fan-topic of mine and (darn it) I'm actually writing a book on it and other changing aspects of the world. Darn, must write faster :-)

The one thing we must be careful of in idolising Uber and Airbnb is that they are lowering transaction costs so that existing capital can be utilised more efficiently - which is great. It's just that the owners of the capital and the law surrounding its control have yet to catch up. Look at AirBNb. The next logical step is for Hilton etc to put their rooms for rent on AirBnB. But I bet their rooms will be more expensive. Not for "brand defence" but because someone renting out their spare room or even whole house probably is not expert in costing the maintenance of physical rooms, or in some estimated 40% of cases the owner of the capital is not actually the rentee- making it free money effectively.

Add to that many hotel chains (Travelodge I know of but probably many others) are in this franchise relationship where the central company does not own the physical hotel but acts as ... Well, a branded ecommerce site. I bet the law preventing the owners of the hotel from renting their rooms on different sites will be challenged soon.

So as the law of contract catches up on these new franchises we shall see adjustments - so far it has all been one way, but it will rebalance. It's probably a good thing, but the magic of waving your phone to be whisked from your current sidewalk to a room overlooking the park will become more expensive, less magic. But I suspect it will take a generation to settle out properly.</comment>


Ask HN: Sorting Tool for music - <AUTHOR> I didn't know how long to make the title and I haven't been able to find the right keywords for searching on my own.
Is there a tool that can take a list of say 1000 (any number) of songs and create a playlist that is limited by length?
Example: I have 1k songs and I want 5 playlists of 30 minutes length each (non-repeating songs probably). Is it too complicated? What if other parameters were added (genre, min/max length per song) [thinking on this that would just decrease the pool of available tracks to search so it should make it easier I think]?
It reminds me of https://en.wikipedia.org/wiki/Travelling_salesman_problem but maybe there is a way I'm over-complicating this all. <comment><USER2> the problem is more similar to the knapsack problem [https://en.wikipedia.org/wiki/Knapsack_problem](https://en.wikipedia.org/wiki/Knapsack_problem) There are some articles if you look for "create playlist of specific length" that suggest to use the "smart playlist" function of iTunes.</comment>


One Dimensional Cellular Automata – Working Simulation - <AUTHOR> http://archetyp.al/other_pages/cellular_automata.html

<comment><USER2> Also, if you'd like to change the pixels per cell, add a param to the link like so:

<http://archetyp.al/other_pages/cellular_automata.html?ppc=1>

or

<http://archetyp.al/other_pages/cellular_automata.html?ppc=50>

</comment><comment><USER3> Several times, I saw it stick to a single configuration for several lines, only to then suddenly start doing something else across the entire line.

Do the cells have more states than 0/1? Or is there something else I'm missing?

<comment><USER4> as pointed below, it changes rules every 5 to 25 lines.

To see how each rule pattern looks like: [http://en.wikipedia.org/wiki/Elementary_cellular_automaton#S...](http://en.wikipedia.org/wiki/Elementary_cellular_automaton#Single_1_histories)

This implementation uses rules 57,18,90,129,130,131,132,133

</comment></comment><comment><USER5> No rule 30? <http://en.wikipedia.org/wiki/Rule_30>

<comment><USER6> Looks like it keeps switching rules, but I've seen some rule 30 behavior in the animation. <http://archetyp.al/other_pages/cae.js>

<comment><USER7> It doesn't have rule 30.

        //default list of rules
        var populateRules = function() {
            rules = new Array(57,18,90,129,130,131,132,133);
        }

</comment></comment></comment><comment><USER8> Rule 30 and rule 110 are fun. The author should add them!

<comment><USER2> I've just added them.

My initial selection of rules was based on aesthetics and liveliness. That is, how well the output of one rule would provide interesting seed material for the next rule.

</comment></comment><comment><USER9> when you add time isn't that 2 dimensions? ...still beats seeing one pixel flashing</comment>


Azure Marketing: "The words micro and soft don't apply to my pęnis (or vagina)" - <AUTHOR> http://www.youtube.com/watch?v=JUMjxnKzUlQ#t=1m25s

<comment><USER2> It may not be surprising that Microsoft is OK with dancing girls in skimpy shorts representing their brand at a tech conference, but it surprises me the _organizers_ would be OK with this after all of the sexism dramas of even just the last year.

Some speakers at the conference are also mentioned in the song and have expressed surprise and distaste at this on Twitter. For example, they say "Lea Verou will make your dreams come true" and she noted: "I think mine tops all of them in terms of cheesiness and creepiness."

A bad showing from both Microsoft and the conference organizers who failed to screen or stop this (although, to give fair dues, everyone is saying the rest of the conference was superb).

P.S. The "or vagina" is not in the actual lyrics - but, I suspect, to the prompter merely to make it seem all "politically correct." No. That's not how you make sexist BS OK.

</comment><comment><AUTHOR> For reference, this was a Microsoft-sponsored Azure promotional stunt at a (otherwise great) developer conference in Norway this week.

I had to change a character in the title to prevent it from being filtered.

<comment><USER3> So that's where Aqua went ... they're working at Microsoft!

</comment></comment><comment><USER3> I just can't imagine how that meeting went ... this was planned by someone, more than one person even. How did no one say, "hmm, maybe this isn't the most tactful approach".

</comment><comment><USER4> Ha.</comment>