Reviving China's 'donut homes' - <AUTHOR> https://www.inkstonenews.com/society/man-trying-breathe-life-back-chinas-tulou-houses/article/2158447 <comment><USER2> Damn these houses look so authentic. No wonder they prefer them to ordinary homes.</comment>


Show HN: Flightpath of AAR214 compared to previous days. Much steeper approach. - <AUTHOR> http://i.imgur.com/OqAITvo.jpg

<comment><AUTHOR> The AAR 214 crash is in red, with other approaches of the same flight from previous days in white. Looks like the flight took a much steeper approach today, and fell short. Link to KML: [https://s3.amazonaws.com/tendian.io/AAR214.kml](https://s3.amazonaws.com/tendian.io/AAR214.kml)

<comment><USER2> Where did you get the data?

<comment><AUTHOR> FlightAware: [http://flightaware.com/live/flight/AAR214/history/20130706/0...](http://flightaware.com/live/flight/AAR214/history/20130706/0730Z/RKSI/KSFO)</comment></comment></comment>


Ask HN: How would you evolve modern computer science curriculum? - <AUTHOR> Follow up to "Ask HN: What programming languages are used in CS courses these days?" https://news.ycombinator.com/item?id=7950439
From the answers to that question, you can see that the core computer science curriculum has barely changed in 30 years.  As for programming languages used,  Java has been the mainstream for over 10 years now and C/C++ is still hanging tough after breaking into higher education 20+ years ago.
In '96-'99, the core courses I took (Data Structures, OS, Compilers, Computer Arch, etc.) served me well and I was glad to get a mix of Java and C/C++ at the time.  If I was starting my undergrad today however, I'd be a little disappointed to know not much had changed since then.  I'd argue a good bit of the curriculum is nearing its shelf life or, to carry on the spoiling food metaphor, at least needs to be put in the freezer for preservation.
Got me thinking about how things could evolve.  Some examples:
Data Structures => Javascript or some other web-able Ruby that 70% of folks will actually get a job in.  The concepts are what matter in DS, but while we are at it how about a more relevant language choice?  Points to those school already using Python for this!
Operating Systems => Teach it in C still, keep it hardcore low level, and probably make it an elective for the minority of folks who want to do performance OS work.
"Browser/Internet as the OS" => Replace the traditional core OS class; class project would basically be this: http://runtimejs.org/
Databases => Replace with a new core course for "Data Science"; make Databases an elective.
So, how would you evolve modern computer science curriculum if you could? <comment><USER2> You recommend teaching Javascript or Ruby in an undergraduate Computer Science Data Structures course. Are you aware of the fact that Computer Science, as a major, is not "Learn programming"? It is learning the theory and science behind Computers, computing and programming. What you suggest is more applicable for CNIT or Computers, Networking, and Information Technology; A major where one would learn more how to apply the theories and concepts of programming. But even then, you're suggesting SCRIPTING languages for PROGRAMMING. The only thing a scripting language is good for in the education system is conveying concepts such as abstraction ( because that's practically all they are ). Java is a way better language for that.

I think instead of attempting to revamp the CS curriculum, we should work harder to portray CS for what it is, which is not "Study this and be a programmer for the rest of your life". People who come out of CS go on to do a wide array of things, programming is just a basic and necessary skill for learning and understanding computing that one picks it up. And knowing the theories and concepts really well makes good programmers, same as how knowing the fundamentals of Mathematics would produce someone who could be a good accountant or something similar.

<comment><AUTHOR> Yes, very aware. What I suggest was just an off the cuff idea to help spark ideas. CS is still too new to not have some evolution left in the curriculum. This really isn't controversial.

You are like the guy back in 1975 saying "...We don't need no stinking change from Assembly to C, this isn't a 'Learn How To Program Degree' don't you know..."

Assembly is fine, it's just not relevant anymore to a CS major. C and Java are still good but they are becoming less relevant was time marches on. Blah blah blah. Is thing on?

In fact, if waited and just said the same thing in 7-14 years or so, everybody would be saying "..<insert newer language here> for Data Strucutres?...no sh*#t, who programs in C or Java anymore?!?..."

</comment></comment><comment><AUTHOR> I think you guys are not actually reading what I wrote - I'm all for the rigor, I'm all for the theory. There is just no reason to not make things more relevant and practical since you have to pick a language/focus/domain for any given class anyway - no matter how theoretically focused it is.

For the Data Structures comment, please see the second sentence that begins with "The concepts are what matter in DS...". What I am saying is, how about a new language? It would be super cool to have to rectify Data Structures theory with the real world issues of something like Javascript.

For the other comment about keeping things static, you know there was a time all these course were taught in Assembly. So are you arguing we should have never even evolved past that?

Anyway, I was hoping more for fun/brainstorming/idea generation. How might I have worded it differently to get that instead of shallow objections?

<comment><USER2> The problem is that web programming is a very abstracted and high level concept. When you take a data structures course, you learn in languages where memory usage can be easily measured or guaranteed, such as Java or C, and the runtime can be more concretely measured. This is important because the fundamental importance of data structures is their memory vs time trade off. Javascript is just not the language for this. Neither is Ruby, Python, Haskell, Perl, <insert trendy scripting/functional language here>.

I understand that you're trying to push for teaching a language that might have more modern, real world applications, but CS is not ( at least in the undergraduate world ) about learning the modern or bleeding edge. Leave that to post-graduation, in your free time, or during a graduate program.

The best you can do is extending the CS curriculum to teach "Introduction to Web Programming" or the like utilizing Python and/or Javascript, or offering it as an elective. The closest thing to replacing Java in CS undergraduate curriculum is Go or Rust or some similar, newer language, but the jury is still out on how useful as educational tools they are.

<comment><AUTHOR> I absolutely beg to differ on your first point. You don't use actual performance measurements in Data Structures courses, no matter what language you use. You aren't instrumenting your code or counting bytes or anything. You measure the concepts by analyzing with Big-O notation. If you really wanted to, you could teach a Data Structures course using just paper, pencil, and pseudo-code.

Pretty much any language will work fine for teaching data structures.

<comment><USER3> Pretty much any language will work for teaching data structures _badly_.

If your instructor is showing you a cool animation of a list with less than 30 elements being sorted by X algorithm, he's doing it badly. Or at least if that's all he's doing. There are by the way many schools that do just that, under the rationalization that the point of the class is to have the student practice what he learned at Programming 101. I attended such course in the day, and then went to teach the same course some years later, but I don't think the results were any good.

IF he have you run your algorithm against input taken from /dev/random, first 100KB, then 1MB, then 10MB, then 100MB he's a little less bad. IF he makes you do the whole sequence a dozen times an plot each resulting data points in a graphic with logarithmic scale, he is not bad at all.

Then you can start to discuss Big-O notation, but for the resulting graph to make any sense you need that the program written by the student to have a relatively strong correlation with what the computer is actually doing. It will not do, by example, if the runtime environment decides to implement you list as a dictionary object instead of a raw array. Also, having a relatively precise clock like Java's currentTimeMillis will reduce the possibility that you embarrass yourself if the practice do not seem to match the theory.

If the course is being taught at graduate level, you may want to run a second experiment, this time with input sizes of 1KB, 256B, 64B, 16B. At this point you will be able to discuss stuff like the Little-O notation, the constants involved in both notations, and how those are derived from Limits of the time function.

For this you will absolutely need the best clock available in your hardware, so C because a must. It will also help if you can run cc -s on your code and see what assembly is behind your code. I know it is overly ambitions, but that's how I would like to have learn about this stuff.

</comment></comment></comment></comment><comment><USER3> I would say that it is a good thing that the core courses are static in time. It means the field is mature enough to support an undergraduate program at all. Physics and Chemistry majors spend most of their time at school catching up to the historic state of the art up to early 20th century. If they want to know the most up to date advances they have to either pursue a self directed continued education, or enroll in a graduate level program.

As a matter of fact, a rapidly changing curriculum would be at least a yellow flag. In the worst case, it's the pseudo sciences that go up and down, chasing the passing fade du-jour. This is more like a smell test than an objective indicator. The correlation is there, but it is not well understood. Not necessarily every rapidly changing curriculum is a pseudo-science, but a closer look is probably due.

That was probably the state of the art of Computer Sciences ~65 years ago. The Foundations were already known, but the field was still too much of a virgin land to be settled by undergraduates. It was rather a diverse group of mathematicians, scientists and (mechanical and electric) engineers who were just exploring the territory. It eventually coalesced into what we have today, so it is a good thing that the pace has slowed down by now.

</comment><comment><USER4> From [http://www.meetup.com/Oslo- pm/events/172566472/](http://www.meetup.com/Oslo-pm/events/172566472/)

"Perl 6: A Programming Language for Computer Scientists (And Other Crazy People)

A good Computer Science syllabus will cover everything from bit manipulation to set theory, from Boolean algebra to concurrency, from parsing grammars to graph traversal, from two's-complement arithmetic to higher-order functions, from sorting algorithms to multiple dispatch, from macros to closures. ...

To teach all these concepts and techniques it is usually necessary to resort to a wide range of different programming languages ... Lisp and Fortran ... Forth ... Smalltalk, C, Scheme ... C++, Perl, Occam ... Haskell, Java, JavaScript ... C#, Scala, Clojure.

This diversity ... encourages an unfortunate ... internal compartmentalization of concepts and approaches.

Perl 6 ... aims to provide all of the major features of all of the major languages from all three dominant paradigms.

... we stole the best features from 20 different languages, and then spent a decade working out how to put them together in a way that is clean, efficient, powerful, and still usable by actual human beings. And Perl 6 was the result."

</comment><comment><USER5> It sounds like all your changes would be more appropriate for a vocational school software engineering program.

For instance your data structures remark. A data structures course would be fairly odd to teach in something like python where you have no pointers or low level control of memory like C or C++. If all you care about is high level structures then that's not really in the spirit of a CS degree data structures course in my opinion.

<comment><AUTHOR> I definitely think the rigor and theoretical basis should still be maintained; definitely NOT saying CS programs should make themselves more vocational though I do see plenty of room for more practical interdisciplinary degrees to spring up.

Not sure about the assertion that Data Structures can only be taught properly in a low level language. Any rigorous course would be pretty much orthogonal to the language's peculiarities. You could implement RED-Black trees in Javascript as easy as any language. The cool thing, for any language you pick, as a side effect you'll get to dive deeper in that language's particular features and idioms while also learning the Data Structures theory. So why not Javascript or Python or Haskell or...? I could imagine some cool projects coming out of this one, like implementing your own efficient Shadow DOMs using the various tree structures that get covered.

</comment></comment><comment><USER6> It seems to me that you are making the same general argument that Steve McConnell (of Code Complete fame) made in his 2003 book "Professional Software Development", namely that CS programs serve a different purpose and clientele than a Software Development or Software Engineering program would serve. So, rather than evolving a CS curriculum, another option would be to introduce parallel software engineering programs. Honestly though, for a professional developer who sees this as a career, I'd argue you are better off doing CS at the undergrad level, then pursuing something like a Masters in Software Engineering. CS at the undergrad level gives everyone the foundation they need, regardless of what the pursue professionally after that.

</comment><comment><USER7> I'd love to get y'all's feedback on a related question: did you receive any training in your CS degrees that had anything to do with testing, dev-ops, continuous deployment, and the like? I teach in an MIS department and have started to include some of these concepts in the capstone course, which was originally more of a project management course.

From talking to the employers who hire our students (and the CS department's students), I got the impression that CS students are taking four years of programming classes but are never taught how to write tests or even to use version control. Is that the way it is? Is that the way it should be?

<comment><USER8> I went through Georgia Tech, and there is never any formal introduction to version control. If you're exposed to it, it's from a job or a friend (who in turn got it from a friend or their job). If you don't know it exists, you'll never seek out and learn it.

Testing was used in some courses. We had a software development class that involved UML, TDD, and everything "proper". Testing is also provided as a way of pre-checking your homework by some TAs. They might give you a basic set of tests for your linked list homework (adding, removing, etc), but then their grading script will check off by 1s, etc. It's not necessarily taught how to write said tests in those classes.

Continuous deployment is never touched. If you co-op/intern you might be exposed to it.

No one that I knew of learned anything related to "ops", unless they happened to take an interest in it.

<comment><USER3> No chemical engineer I know learn how to go to the assembly line and take samples for quality control, either. And arguably this is a good thing. You pay to go to school in order to learn stuff that is useful across the board in many different situations, not to have the local big employer save a few bucks per new hire during the induction training.

<comment><USER7> This is a fair point, but begs the question: should a CS degree include, or not include, learning about software project management and software development processes? I teach in the business school (an MIS department) so it's not controversial that we'd teach about project management and operations management here. I don't know what the prevailing opinion is in engineering schools.

<comment><USER3> I think we have reached to point where we should admit that a career in software development needs much more learning than what can possibly be achieved at school (regardless of level).

The current state of affairs holds the belief that no CS graduate worth their salt should be ignorant of software engineering methodologies (agile, waterfall, etc), nor specific development processes & tools (source control, peer reviews, unit testing, etc). At the same time it holds the more or less contradictory belief that CS curriculum should be concerned mostly with Computer Science and not mention much of the practical side of software development.

The ideal is that a good program will present the student with multiple opportunities to pick up practical skills on the go. No formal class and no grades, but exposure through lab work. The reality is that this requires everyone involved (students, instructors and various other support roles) to work longer and harder to achieve this tacit expectations.

</comment></comment></comment></comment></comment><comment><USER9> I would suggest more bridges to other programs. One could argue this exists ad-hoc with double majors, and minors, and similar, but it could be done better with more proactive thought and combined classes.

Some areas that could be combined: CS & Linguistics, CS & Physics, CS & Math, CS & Biology, CS & Chemistry, CS & Philosophy, CS & Psychology, CS & Business, CS & Geography...

These are done a little here and there, but I would like CS to cross the disciplinary divide more. Technology is eating everything, so why not teach it that way?

</comment><comment><USER10> The main disagreement I have is the assertion that the majority of jobs (at a nationwide level) is for web based languages. While it is trending in that direction from what I see the majority of jobs are still Java and C++ with a bit of C thrown in. And while there may come a time when Javascript overtakes Java and C++, I don't think we are there yet, at least not nationally.

</comment><comment><USER11> From my own personal experience as a Computer Science graduate, I feel that an ideal Computer Science curriculum would be as theoretical as possible, but would promote outside work in industry for those looking to work in industry.

I interned quite heavily during my uni days, and I learned more about programming in the months I spent working than I did in an entire year on my course.</comment>


In defense of Perl. - <AUTHOR> http://blog.directededge.com/2008/08/03/in-defense-of-perl/

<comment><USER3> You may have given up on Ruby too soon. I'd encourage you to try again. What book were you using?

The fact that you called it "Ruby on Rails" does not inspire confidence. Rails is a complex Ruby framework, and a lot of Rails code actually consists of calls to a Ruby-based DSL for the Web. It's hard to appreciate the kinship between Ruby and Perl, or Ruby's usefulness for Perl-like tasks, when you approach the language from that high-level angle. Try _Programming Ruby_ or _The Ruby Way_ \-- or, heck, try _Why's _Poignant Guide to Ruby with Cartoon Foxes_ , which is how I learned, though its unique style is not for everyone.

Ruby was built by a Perl fan; it was _named_ in honor of Perl, and I find that most of the glue-code tasks that were easy in Perl are even easier in Ruby.

I will certainly _use_ Perl in the future -- one good thing about the language's awesome documentation culture, and its excellent automated build tools, is that they let you use Perl code without having to read any of it. But I don't read or write Perl anymore unless I really have to -- just as, back in 1999, I didn't use sed or awk and avoided writing shell scripts, because I had Perl.

<comment><USER4> I initially looked at Ruby a number of years ago, and didn't really care for the syntax either. Rails made me take a second look, and while I'm not sure I consider it a thing of beauty, it is eminently practical, and a pretty good compromise between Perl's minimalist style that lets you get lots done - <USER2> then forget what the heck it does, and Java's blah blah blah verbosity. Also, Ruby gems are handy - maybe not quite to the level of CPAN, but they're pretty good.

<comment><USER5> I don't know Rails at all but I'll go out on a limb suggest Perl's Catalyst is probably just as good.

<comment><USER6> Prefacing a one-liner like this with "I don't know Rails..." is just begging to be downmodded, but damn... -3? This is a rough crowd.

I only have cursory experience with Rails and Catalyst, but the first thing I noticed is that Rails is much friendlier to Ruby novices than Catalyst is to Perl novices. Still, Catalyst is pretty nice if you're a Perl developer looking for a Rails-like framework.

</comment></comment></comment></comment><comment><USER7> I love Perl, but its essential problem at this point is that it's lost momentum. After over 7 years of waiting for Perl 6, a huge gulf has developed between the people who can influence language development and new users. In this time, other language communities have taken great steps to attract new users, and in many cases they've been pulling in more former Perl hackers than converted Java/C++/etc folks. In web apps, Rails and Django are king for a reason; they're excellent libraries that are well-documented and easy to choose because of broad support in the language's community. Perl's Catalyst is workable (I've used it) but is tricky to install and configure, has inferior docs, and a thinner set of libraries. And it isn't what all your friends are doing.

It might be narrowminded to blame Perl 6's schedule slippage (and the general shakeup in Perl leadership and Larry Wall's struggle with cancer) for the broader community decline. But there was a time when, say in web apps, Perl was the default choice. That default started to change when some smart hackers wrote some terrific libraries in Ruby and Python, and broad segments of the hacker world started to agree on roughly what features they expected in a web framework. I'm not sure why those hackers didn't choose Perl, but if I had to pick exactly one thing, it would be Perl's awkward handling of references, a skill that might have been easily picked up by C hackers but seems exceedingly arcane to those reared on Java.

<comment><USER8> _I love Perl, but its essential problem at this point is that it's lost momentum._

No, that's just false. In the last year, we've gotten a new major release of Perl, with many, many new features. (See the perl510delta man page for details.) On the CPAN, we've seen 1000s of new libraries released. We have a new object system, called Moose, which is probably one of the best object systems of any language. The Perl conferences have been seeing record attendance.

Basically, Perl is stronger than ever. We just spend our time programming instead of talking about ourselves incessantly, declaring other languages dead, winning awards for being 'the most attractive hacker', or covering up security holes.

<comment><USER7> Interesting points. It could well be my professional frame of reference that's shifting. Maybe a historical analysis of job listings would give a less biased take?

</comment></comment></comment><comment><USER9> I have a similar history. I wrote my first web app in 96, in C on SunOS. Since then I've worked on all different types of platforms and at last count had used 13 different programming languages in that period.

I recently went through a re-eval of what tech I wanted to be working with and ended up with Python. I tried to return to Perl but couldn't do it. Mainly it is because I'm back working on web projects and Perl's web frameworks aren't so nice. People worship CPAN, but I've never found it any more useful than SF or Googe Code. That is to say, useful yes, but amazing or worthy of awe? Not hardly.

I will say though that Perl was pretty much the only language that made me smile and I eagerly await Perl 6.

</comment><comment><USER10> _Most people talking about Perl are quick to groan about its ugliness. I'll first note, most of them don't know Perl..._

OK, I'll bite. I know Perl. Perl is versatile. Perl is powerful. But Perl is _Ugly_ with a capital 'u'. Give me Python or Ruby any day.

<comment><USER11> Most folks who say Perl is ugly are talking about one of two things (or both): Sigils or Regular Expressions.

Regular Expressions have turned out to be so useful that they've been slurped into every modern language (and using the Perl interpretation of regex to boot), so it's pretty much a null statement to say that Perl is ugly because of regular expressions...because it means every language is ugly. This is usually what people mean when they call Perl executable line noise...but is it really the fault of Perl that folks write regexes that are longer and more complex than is readable? Perl just happens to be a culture that is steeped in UNIX history, and sometimes we reach for a regex before other more readable tools...it's a failing of the developer, rather than the language. I find regexes in Python quite ugly, myself, since they're in the ghetto of a library rather than a first class part of the language. In Perl, you can take a reference to a regex, or turn it into an object, and of course, you can use regexes extremely concisely and in one-liners and quick throwaway scripts. I consider this a worthwhile tradeoff.

Sigils, on the other hand, are core to the language and Perl uses them more heavily than almost any other modern language (PHP and Ruby both use them to some degree, but nowhere near the degree of Perl), so if it's not the sort of thing you like, then Perl is not the sort of thing you'll like. This one, at least is a point of real difference.

I don't find sigils particularly offensive or particularly nice; I'm pretty much indifferent to them. Though I am happy to know that the inconstant sigils of Perl 5 are going away in Perl 6, as they've been a source of confusion for me on many an occasion (though less so when I'm working with Perl a lot--I haven't written a bug in weeks due to that particular quirk, and I don't think I've ever written one that the compiler didn't catch immediately). References are also problematic, and will also be made prettier in Perl 6 (in particular, function references are automagic when it is apparent that's what you want to happen).

My first dynamic language (if I don't count tinkering with ARexx on my Amiga when I was a kid...and I don't) was Perl, and I worked with it for several years. Then I went to work in a Python shop, luckily with some of the best Python developers in the world working on some of the most interesting Python code going (if you use Python, you use some code written by several of the folks I was working with), and I really enjoyed working in Python and found it "cleaner" than the Perl I was accustomed to.

After a few years with Python, I found myself working with Perl again...and I set myself the task of learning it a bit more systematically then I had the first time around. Turns out, Perl is a quite pretty language...and I like it better than Python. Both are very fine languages, but Perl suits me better. I was merely judging some extremely nice Python written by masters of the language vs. random snippets of Perl found on the Internet, and unsurprisingly Perl fared poorly in the comparison.

Ruby, on the other hand...I might actually find it prettier than Perl--it has a lot of the things I love about Perl, and very few of its rough edges. Though I'm not fond of the seeming standard usage of "end" for blocks. You guys know you don't have to use those, right? I mean, it's not Pascal. You can use curly braces, and it'll work just fine...and bouncing on % works. I'm also not fond of the occasional verbosity of Ruby that seems to be a function of its "everything is an object" philosophy.

Anyway, beauty is in the eye of the beholder...and conciseness is one of my primary "beautiful" qualities. And, if Perl is anything, it is concise (at least, it _can_ be, and for almost any task).

<comment><USER12> The ugliest parts of Perl (in my admittedly not-exceptionally-well-informed opinion) are dereferencing variables and automatic list flattening.

I honestly don't know what kind of crazy design process could possibly lead to the way Perl handles nested lists. $a[0]->[0]? @{$a[0]}?

Why? God?

<comment><USER7> I agree that this approach is deranged. It all stems from the decision to distinguish between values and references. That decision comes from the available hardware and typical programming background at the time of Perl 5's development (early 90s). At that time computers weren't abundantly fast for most programming goals, and storing all variables as references (or objects) was a pretty serious "extreme OO" position. Plus, anyone who called himself a hacker would have to be competent with pointers in C, and Perl references were substantially easier than that. So Perl layered on ways to reference and dereference values, and @{$array->[1]{"foo"}} was born.

<comment><USER13> When Perl references start making as much sense as C pointers it will be a considerable improvement.

<comment><USER11> You really believe that? I simply can't believe anyone would find working with complex data structures in C easier than in Perl. It just doesn't make sense, but obviously a few people agree with you. Have you actually worked in Perl (and C)?

<comment><USER13> C pointers make sense to me because they represent what's going on in the machine. The syntax and the rules behind it are simple enough that they click, for me.

Perl references seem to carry a lot of historical baggage that leads to the expressions mentioned elsewhere in this thread. The rules behind them always seemed arbitrary and I have never felt like I had a grip on them.

Now that said, I'm still more likely to blow my foot off with C than with Perl, thanks to the do-it-yourself memory management. But at least when it happens it's for the right reasons.

<comment><USER11> _Now that said, I'm still more likely to blow my foot off with C than with Perl, thanks to the do-it-yourself memory management. But at least when it happens it's for the right reasons._

You're my hero, and I mean that.

I'm glad we cleared that up, and I'll readily agree that complex data structures via references is among the most glaring warts in Perl. It's obviously more complicated and error-prone than it ought to be, and moreso than other similar languages.

I've got this theory that the thing that people talk about most in any language or technology is the thing that is actually most broken about the language. People talk a lot about references in Perl, and I know they're broken by design. Similarly, I've got my suspicions about monads in Haskell, since people spend so much time trying to explain them...seems like there must be some fire under all that smoke. But I could be just imagining it, and I think I probably need to spend a lot more time with Haskell before I can accurately detect bogosities.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> I agree that Perl's CPAN is probably the most awesome thing invented since slice bread. If you want to hack together something really quick, like PHP, Perl is awesome.

But the beauty of Ruby on Rails is abstraction. It takes a while getting used to the code and the framework, but that time invested is paid off in productivity. Ruby on Rails is really on a whole new playing field. Complete object orientation, a fully developed framework to deploy and TEST with a single command in the terminal, MVC, it is just ... heavnly. To be honest, any language can build the Rails framework. Ruby isn't necessarily too unique in that sense. What does make it unique is having an evangelical preacher for its framework, David "oh so sexy" Hansson, and a kind and awesome community.

You should give it another shot, if you're a web developer, it'll make your life a million times easier.

<comment><USER15> I think alot of major frameworks written in other languages have all if not most of the features Rails has. Django, Pylons, CakePHP, CodeIgniter, Catalyst, and Mason are to name a few.

Rails to make your life easier? well that's true if your creating web apps that fit into RoR's philosophy. To quote a member of HN "Coloring outside the lines is not allowed".

I do agree with you on one thing though, I believe the massive boost in Ruby's popularity is the great marketing campaign behind it.

<comment><USER16> That's it, we're all just victims of some catchy jingle.

<comment><USER15> In a manner of speaking yes, just take a look at the massive spike in mindshare Rails has garnered since it's release. Let's take into consideration the passive influence it also has on framework developers as well.

Nearly every mainstream framework we know has at least been influence by RoR.

<comment><USER16> True, but that's not because people can't get the annoying ideas out of their head, it's because of the legitimate innovation that Rails brought into the mainstream.

</comment></comment></comment></comment></comment><comment><USER8> It looks like a lot of people are missing the point of the original article, so I wrote a long-winded reply here:

[http://blog.jrock.us/articles/You%20are%20missing%20the%20po...](http://blog.jrock.us/articles/You%20are%20missing%20the%20point%20of%20Perl.pod)

</comment><comment><USER17> In defense of <insert religion here>. A programming language is a tool and some tools are better than others. There's no need to _defend_ them.

<comment><AUTHOR> Well, it depends on why it's being attacked. My feeling is that Perl is an under-appreciated tool because it's not cool to like Perl. In the post I don't really try to defend Perl's actual flaws, which are many, but to point out to an audience that presumably mostly doesn't know Perl, that it can be really useful for some sorts of tasks.

<comment><USER18> Any given language is under appreciated by that subset of programmers that mistakes their own ignorance for the language's shortcomings.

</comment></comment></comment><comment><USER19> I'm a Perl developer and a big fan of Lisp. However, it should be well known by now that Common Lisp is the only dynamic language that beats C in performance. It also defeats Python and Ruby in productivity and joy. And the code is beautiful and clear to read. It used to be that there weren't any good routes to using Lisp for the web, and it didn't used to be fast either, but now both of those obstacles have been overcome. Ruby is unstable and keeps changing, making previous code unusable. Anyway Ruby is just a lame hack impersonation of a Lisp. Everyone should skip the trends and use Lisp. If for whatever reason Lisp is not an option, Perl is the alternative that's been around a long time and is going to keep growing. It has CPAN. End of story!

</comment><comment><USER20> Obligatory xkcd comic: <http://xkcd.com/224/>

</comment><comment><USER21> > I'm also not advocating doing large projects in Perl.

Actually, you can nowadays. With Perl 5, use strict, use warnings, use Moose, write tests, and have a look at modern Perl best practices.

And, of course, Perl 6 should be quite well-equipped for handling large projects right out of the box, ... once that box gets here. :)

</comment><comment><USER22> "Fast hacks, fast, quickly." From my perspective and style of working, I would call this a temptation, not an advantage. ;-)

</comment><comment><USER23> The thing I hate most is all the special global variables you can set that effect the behavior of various functions.

<comment><USER8> These are indeed bad, and nobody uses these features anymore. (They are important to have around for library authors, but you will probably never need them in "user code".)

Sometimes it's acceptable to use them in a very small scope:

      my $entire_file = do { local $/; <$filehandle> };

This is much easier to read than something like:

      my $entire_file = readline $filehandle, -line_separator => '';

<comment><USER24> This is why I stopped using Perl. I think this

      entire_file = open('file').read()

is how it should look like. You can comprehend it without knowing the language.

<comment><USER8> The only reason why you find the Perl hard to read is because you don't know Perl. I find Spanish hard to read. Why? Because I don't know the language. That doesn't mean that there's anything wrong with Spanish as a language, though, it just means I don't know it.

<comment><USER25> Two points:

1) He said - "you can comprehend it without knowing the language" and you responded with "well, of course you can't read it - you don't know it!". The argument is specifically about being able to read a language without knowing what % ! and $ stand for.

2) Equating a programming language to a human language as if proficiency or deficiency in the first implies something about the second is really a bad idea. Human languages evolve naturally without a designer who can make a language less or more readable. For a programming language, there is always a designer, and readability by a person "unskilled in the art" is a major category by which the language is judged.</comment></comment></comment></comment></comment>


UFOs: Why Eyewitness Accounts Only? - <AUTHOR> Earth and it's atmosphere is literally covered with surveillance devices (radar, satellite...). Why don't any of these devices/systems ever "see" or at least corroborate a UFO? <comment><USER2> The UFO files that have been released by the air force where release because they did not reveal any sensitive info or top secret capabilities. I suspect there are other systems that give better information but they are top secret since the government does not what to give hints of what is capable of doing.

This is the very same argument I have with most supernatural claims. There are billions of cameras in the world yet we don't have actual footage of anything that people claim as supernatural.

The other one is that UFO does not equal extraterrestrial life. It's an unidentified flying object.

We are too quick to believe that what we don't understand is supernatural. We need to be better skeptics.

<comment><AUTHOR> Excellent points!

</comment></comment><comment><USER3> The answer is simple. I give you a clue : why can't we see any god, angel , seraphim or elohim with all our surveillances devices ? And where are chimeras from popular beliefs, as ghosts ? UFO, like religion in another era/place, is a fun fantasy, sometime emerging spontaneously in people brain, sometime used as a a political instrument by states and/or influential leader. So, the best device for seeing UFO is not a surveillance device, but human ignorance and stupidity.

</comment><comment><USER4> Because when they record a UFO, we can then analyze the footage, after which it is no longer unidentified.

</comment><comment><USER5> For the record, the Navy UFOs were corroborated across multiple spectrums (including multiple variants of radar systems) by multiple systems on multiple ships.

<comment><AUTHOR> Thanks runjake I didn't realize this existed.</comment></comment>


Dropbox getting it right. Google getting it really wrong.  - <AUTHOR> https://twitter.com/#!/ClareSutcliffe/status/195078069680218114/photo/1/large <comment><USER2> Arg, it just disappeared ! Anyone made a copy ?

<comment><AUTHOR> [http://news.cnet.com/8301-1023_3-57420551-93/who-owns- your-f...](http://news.cnet.com/8301-1023_3-57420551-93/who-owns-your-files- on-google-drive/)

This explains it pretty clear.</comment></comment>


The astronomer who said Oumuamua might be a sign of extraterrestrial life - <AUTHOR> https://boingboing.net/2018/12/06/interview-with-the-astronomer.html <comment><USER2> Sometimes I feel, when papers that have grand speculations contained in them, should be made available to the public without the author(s) name tacked on it, and only be released after the public comes to a consensus. Why? science is about science not the people involved, high credential folks low credential folks don't matter. Just because someone is a high-cred scientist doesn't make his speculation any more worthy than a jackass's just because his credentials somehow factor in, it leads to more often than not, utter bs. Case in point: Linus Pauling and Vitamin C

</comment><comment><USER3> The amount of acceleration reported for this object, attributed to light pressure if its mass is minuscule enough, or wholly unaccountable otherwise, should make everyone doubt what they think they know.

It makes me wonder whether we must begin to consider plasma interactions with the object's electrical and/or magnetic field.</comment>


AMD's Big Navi and Xbox Series X GPU 'Arden' Source Code Stolen and Leaked - <AUTHOR> https://www.tomshardware.com/news/amd-big-navi-xbox-series-x-gpu-arden-source-code-stolen-100-million-ransom <comment><USER2> why would a "hacker who wants $100mi for stolen code" post it all on github?

regardless, amd will finally win the video card wars now thanks to open source drivers:)

<comment><USER3> It says in the press release (the text of which is in the article):

> While we are aware the perpetrator has additional files that have not been > made public,</comment></comment>


What is your best tip to promote your MVP Landing page? - <AUTHOR> Hello,
So, I have been wondering what is your best tip to promote your MVP landing page, which you think is something people should do.
I know the most usual but important one is to share your products with your "potential audience" or where they hangout. It could be Facebook, Twitter or forums.
Let us know your thoughts. <comment><USER2> Run FB and Google ads if you have a budget for that. Even little goes a long way if you can find the right target audience. I've had some pretty interesting conversions and comments from running FB ads. It's enough to spend $5-10/day on FB to experiment and find the right campaign type and audience. You can analyze how people interact with your landing page with Google Analytics. I had less success with Google Ads, but I know many founders who got good results out of it.

</comment><comment><USER3> Who is your audience? Look up forums, look up your competition if you have any, see how they are doing it. Messaging needs to be in sync with where your audience is on the awareness scale. Do they know they have problem? How ready are they to buy? Opt in? Are you offering free value/education which they can learn - just how great your product is - can they imagine their life before and after? I can help more if I know what your product is. Good luck

</comment><comment><USER4> I've seen a lot of YouTube ads for SaaS lately and on Instagram. But you can't really promote an MVP to a wide audience. As it's probably not worth the marketing spend.

Your better off showing it to a few paople who match the target audience. Listen to them, make them happy, make the product... make many people happy

</comment><comment><USER5> Don't forget friends and family, one might lead to an audience you couldn't reach

<comment><AUTHOR> Nice idea. This just reminded me of a potential friend who could use my upcoming MVP.</comment></comment>


Silicon Valley Is Having a Meltdown Because It Can't Use Uber and Lyft at SXSW - <AUTHOR> http://www.slate.com/blogs/moneybox/2017/03/13/lack_of_uber_produces_elite_meltdown_at_sxsw.html <comment><USER3> Well the truth is, it's been rough for everyone in ATX when Uber and Lyft bailed out. Then the new apps came and somewhat made it ok again. However the unsung hero of the story is this "ghetto" Facebook group where drivers and riders meet and request rides and pay one another with Venmo or cash! Oh - <USER2> little gems of knowing ATX!

</comment><comment><USER4> Why cannot the existing cab companies add an option to hail their cabs via an app and actually compete with uber instead of playing politics?</comment>


Understanding the Linux Virtual Memory Manager (2007) [pdf] - <AUTHOR> https://www.kernel.org/doc/gorman/pdf/understand.pdf <comment><USER2> Here are the rest of the pdfs on kernel.org

[https://duckduckgo.com/?q=site%3Akernel.org+filetype%3Apdf&t...](https://duckduckgo.com/?q=site%3Akernel.org+filetype%3Apdf&t=ffab&ia=web)

</comment><comment><USER3> Anything more up to date out there?

<comment><USER4> 2016 Presentation: [https://events.static.linuxfound.org/sites/events/files/slid...](https://events.static.linuxfound.org/sites/events/files/slides/elc_2016_mem.pdf)</comment></comment>


Udacity: Mobile Web Development course - <AUTHOR> https://www.udacity.com/course/cs256

<comment><USER2> This course and the "HTML5 game development" will greatly benefit from an "Advanced JavaScript" course. Hope Udacity will consider creating a JavaScript course.

<comment><AUTHOR> 100% agree!</comment></comment>


Show HN: DialZoo for iOS. Call emails(for free), not phones - <AUTHOR> https://itunes.apple.com/app/dialzoo/id920859039

<comment><AUTHOR> Here is a blog post about DialZoo and it's iOS App:

[https://dialzoo.me/blog/2014/12/dialzoo-adds-ios-app- free_18](https://dialzoo.me/blog/2014/12/dialzoo-adds-ios-app-free_18)</comment>


Iroquote, a simple forum platform, launched it's open beta. - <AUTHOR> http://www.iroquote.com/

<comment><USER2> The only wy I could ever consider using this would be selfhosted..</comment>


Structural Propensity Database of Proteins - <AUTHOR> https://doi.org/10.1101/144840 <comment><USER2> Interesting approach to getting at some dark spaces in our current understanding. What kind of computation time does it take to run against a single amnio acid chain? Can you get much (nice disorder predictions?) out of an amino acid sequence alone?

Our protein design work has its origins coming from a different angle. But there are some interesting thoughts we've had about utilizing (well, dreamed up) technologies like yours to quickly make up a lot of ground between structural prediction, and empirical functional design.

Starting to see such 21st century data standards for bio data! Yay for everyone!

<comment><AUTHOR> Thank you for very kind comment. We are now finishing a predictor, which utilizes protein propensity data for mass-scale disorder and order predictions.

The training times obviously vary on the network architecture, software and hardware. I can safely say you can process 7200+ protein sequence with average sequence length of 120 amino acids in 2h on 2 x NVIDIA Titan XP

</comment></comment><comment><USER3> Nice work lowering the entry barrier for machine learning in this space, which appears to be the aim of your company, but it's a bit of a tease to claim your data representation is great for supporting ML and stop short of doing any of that in the manuscript. I take it that's the next step?

On that note, is there any reason why the propensity classes alpha/beta/coil are still so widely used? Especially coil/turn/"other". It seems to me that these are ancient artifacts of structural biology that could definitely restrict human understanding of protein dynamics. Perhaps there is nuance in the chemical shift data that may help the design of better structural classes using ML.

<comment><USER4> All models are wrong but some are useful. My PhD was in empirical protein dynamics (solution NMR, CD, DSF, etc..) and the long and short of it is that disordered states are particularly difficult to distinguish from one another. When you consider that an even partially disordered ensemble has essentially an infinite number of nearly degenerate conformations inter-converting on timescales ranging from picoseconds to milliseconds, lumping them into coil/turn/other turns out to be just the law of large numbers in action (reversion to the mean, etc.).

That and the biophysical properties conferred by partially disordered proteins makes them a motherfucker to work with outside of some archetypal domains. I liked to explain it like this. Imagine you have a piece of string three feet long. Along the length of that string you have ~1 inch segments consisting of velcro (both kinds), zippers, magnets, balloons, strawberry jello, and marshmallows--all randomly distributed along the length. Now try to fold all of that up so the jello, velcro, and balloons are on the inside. That's a simple model of a protein. Now make it start opening and closing. Now put 5 of them next to each other.

<comment><USER3> The traditional structural classifications just have very low information content in the context of protein dynamics. Coil especially. You've given the example of a disordered region interconverting on different timescales, but these timescales can, purportedly, be predicted from chemical shift data, etc. [1], so why not call it "fast coil" or "slow coil"? It's not only about timescales either, because you may need to do extra experiments for that data. It's about finding the highest information content descriptors for an amino acid and using machine learning to do it. Your descriptors (jello, velcro, balloons) are actually much better at conveying dynamics than the static descriptors used in structural biology.

[1] [http://pubs.acs.org/doi/abs/10.1021/ct501085y](http://pubs.acs.org/doi/abs/10.1021/ct501085y)

<comment><AUTHOR> Excellent reference!

</comment></comment></comment></comment><comment><USER5> If I understand correctly, the product is the database and its Tensorflow API?

I am wondering how this compares to the TALOS-N [1] server from Ad Bax (NIH) with 9000+ proteins in its DB? This, too, uses machine learning to 'fit' a predictor for secondary structure (dihedral angles) for backbone and side chain torsions based on chemical shifts.

[1] [https://spin.niddk.nih.gov/bax/software/TALOS-N/](https://spin.niddk.nih.gov/bax/software/TALOS-N/)

<comment><AUTHOR> And yes, the product right now is Keras and Tensorflow database integration + the interactive database interface. The tools around are currently under stringent testing.</comment></comment>


How many languages/frameworks is too much for back end? - <AUTHOR> We started out with Python/Django monolith when we had less than 10 developers. Then the team chose Golang for a new service to have better performance.  At that time we had about 25-30 engineers.
Then the company hired some people who have Erlang and Ruby background.  So they decided to use Elixir for a couple of new services.
Now we have about 120 engineers and half of us are doing backend. Another team recently decided to use Scala for a service they were building.
It seems to me that people tend to choose their favorite language/framework and argue that we should be using 'the right tool for the job'.
According to Edmound Lau who wrote Effective Engineer book, we should be using the least number of tools so that our operational burden will be low and we can have impact.
What do people think of number of languages that are optimal for backend these days? <comment><USER2> The problems with too many programming languages are: (1) it is harder for somebody to jump in at an arbitrary place, which is particularly bad for maintenance, where it is not unusual that a "simple" bug fix requires changes to parts written in multiple languages and (2) code frequently winds up being duplicated, both of the "business rules" variety and of the system and technology specific kind.

As an example of the latter, consider a service written in Go that may need stubs written for it in several other languages.

I have seen the cost of polyglot development to be high in teams up to 20 or so developers. When you have 120 developers it less reasonable to expect that one person can jump in anywhere, so the reasons for multiple languages multiplying will eventually overwhelm the coherence benefit of using a minimal number of languages.

Occasionally too there really is a "right tool for the job" or rather right tools for different jobs. Most of the commercial NLP devs I know who have a codebase they work on use both Python and Java since there are many great libs in both languages.</comment>


Neuroscience confirming PG's 'The Top Idea In Your Mind' - <AUTHOR> http://www.eurekalert.org/pub_releases/2011-02/sfn-sss012811.php <comment><AUTHOR> PG's essay for those wanting a refresher: <http://paulgraham.com/top.html></comment>


If We Didn't Spend So Much on IE Support, We Could Be Taking Vacations on Mars - <AUTHOR> https://medium.com/ReactiveConf/christian-alfoni-if-we-didn-t-spend-so-much-on-ie-support-we-could-be-taking-vacations-on-mars-9c4be1c57375 <comment><USER2> Ha ha. What!? I don't believe that for a second.

Aside from that headline being a one-line quip in the body of this text what the hell is this about?</comment>


Californias poverty rate among highest in nation once again - <AUTHOR> https://www.sacbee.com/news/california/article234920662.html <comment><USER2> Not surprised (sad to see it's this high though). The poverty level is calculated from the cost of living, so CA is at a huge disadvantage. Also the weather doesn't force homeless people out of the state, so people in extreme poverty can stay put- compare that to Montana, where homeless and people without utilities can die during the winter and that pushes many out of the state.

<comment><USER3> It was the best of times, it was the worst of times, it was the age of wisdom, it was the age of foolishness, it was the epoch of belief, it was the epoch of incredulity, it was the season of Light, it was the season of Darkness, it was the spring of hope, it was the winter of despair, we had everything before us, we had nothing before us, we were all going direct to Heaven, we were all going direct the other way – in short, the period was so far like the present period, that some of its noisiest authorities insisted on its being received, for good or for evil, in the superlative degree of comparison only</comment></comment>


Fake Operator Overloading in JavaScript (2011) - <AUTHOR> http://www.2ality.com/2011/12/fake-operator-overloading.html

<comment><USER2> "Authentic Operator Overloading" is already a bad idea, so a "Fake Operator Overloading" will be a bad implementation of a bad idea. You may better title the article "Casual inadvertent code obfuscation c++ tools fake-implemented in javascript: enjoy!" :)

<comment><USER3> > While fake operator overloading is a fun hack, you probably shouldn't use it > in production code.

> But at the very least, fake operator overloading allows you to impress your > friends by unusual-looking code.

Couldn't agree more. Please, please don't use this in production.

Edit: Just wrote the following piece of code:

      coors[0] = ~~cors[0];

Damn.

</comment></comment><comment><USER4> This is complete insanity, but I love it.

</comment><comment><USER5> > You probably shouldn't use this in production.

Yeah, that's probably an understatement.

</comment><comment><USER6> I've read this article a few articles and it keeps hooking me with a certain math puzzle.

Is it possible to identify an arbitrarily long string of operations when you can only control side effects and the return value?

I haven't been able to come up with anything.

</comment><comment><USER7> in case you don't make it to the end, the closing line is "But at the very least, fake operator overloading allows you to impress your friends by unusual-looking code."

</comment><comment><USER8> For the love of God, NO!

</comment><comment><USER9> why use this when there's already a perfectly good Brainfuck[1] to impress your friends.

[1] [http://en.m.wikipedia.org/wiki/Brainfuck](http://en.m.wikipedia.org/wiki/Brainfuck)

<comment><USER10> Why use Brainfuck when you can use SNUSP - [http://rosettacode.org/wiki/FizzBuzz#SNUSP](http://rosettacode.org/wiki/FizzBuzz#SNUSP)

<comment><USER11> I think Malbolge is the winner in the field of crazy programming languages. It has no entry on that page, presumably because nobody has managed to write FizzBuzz in it yet. There is at least a Hello World:

[http://rosettacode.org/wiki/Hello_world/Text#Malbolge](http://rosettacode.org/wiki/Hello_world/Text#Malbolge)

A choice quote from Wikipedia: "Weaknesses in the design have been found that make it possible (though still very difficult) to write useful Malbolge programs."

Many languages are deliberately made to be difficult to use, but in the end they're always made to be used. Malbolge is the only one I'm aware of where the ability to write programs at all is a "weakness."</comment></comment></comment>


Go and Brand X: A language comparison - <AUTHOR> http://www.cowlark.com/2009-11-15-go/ <comment><USER2> It's an oddly syntax-focused comparison given that we already often refer to that entire class of languages as 'Algol-style' or 'Algol-derived' and the block-structure and lexical scope ideas are in wide use even in languages far afield, syntactically. I think the notion that they 'overlap more than they differ' is quite inaccurate - they do, if you cherry pick features, gloss over others (par is not the same as goroutines, interfaces are nothing like 'polymorphic operators', you can't turn all of go's keywords into, say, Turkish). If you weigh the differences, conservatively and pragmatically, the languages are tremendously different.

The other points raised:

'effective' vs 'good' - seems like a narrower case of the plentiful and in- depth literature available about 'worse is better' (and the converse).

'can't spot any language feature that was invented after about 1985' - at this point the Lisp crowd should probably be reaching for their pitchforks and lighting their torches. Perhaps formalized systems for hygienic macros came a bit later?

<comment><USER3> _effective vs. good_

I see 'effective vs. good' as an opportunity to _satisfice_.

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

Let's take the notion of _satisficing_ and apply old 80-20 rule. About 80% of your life is not going to matter that much in 5 years. Your choice of toothpaste, the car you drive, which couch you buy -- these can be complex decisions, but they aren't going to have as big an influence on your life as the town you live in, the jobs you take, or your closest friends. It's a minority of decisions you make which will matter the most, so spend your maximum effort optimizing those. For the rest, let's just find something that will do the job.

I think the Go team decided that compilation time, efficient execution, conciseness, and concurrency were the areas that mattered the most for a systems programming language. Most of the programming world understands "Algol-derived" syntax, so why not stick with that? In fact, given that the majority understands that sort of syntax, this should also be considered an optimization -- one which is aimed at achieving as large a user base as possible.

(I wonder if one can consider Python to be an _80-20 satisficed_ language?)

<comment><USER2> If you haven't got around to it yet, google 'worse is better'.

<comment><USER3> I've also responded to 'worse is better" numerous times on HN. I don't think people are aware that what they want is _satisficing_ in most of their design so that they can spend more effort on the the most important 20%.

</comment></comment></comment></comment><comment><USER4> Excellent article. It pleases me that an important language that turned out not to be very widely used is nevertheless remembered by some -- if not by the creators of Go, who were apparently doomed to reinvent Algol 68 badly.

I'm also reminded of C.A.R. Hoare's famous quip about Algol _60_ : "Here is a language so far ahead of its time, that it was not only an improvement on its predecessors, but also on nearly all its successors." (Sourced at <http://en.wikiquote.org/wiki/C._A._R._Hoare> .)

<comment><USER5> Do you really think the creators of Go do not know Algol 68? They know it much better than does the article author, who admits he's "not an experienced programmer in either Algol-68 _or_ Go".

</comment></comment><comment><USER6> The author admits that one feature present in Go and missing from Algol-68 is proper closures. I would consider this an extremely significant deficit in Algol-68, not just one item to bury in a laundry-list comparison.

<comment><USER5> I don't think the article is so good. I got the impression that the main article centers around the part:

 _Take a deep breath. This may shock you._

 _Brand X is Algol-68._

That sort of sounds cool, so why not write an article to show that Algol-68 is more consistent than Go? Then the author just tries to compare features not honestly, but with the intention of making Algol-68 look better than Go, so that he builds up to his cool _Brand X is Algol-68_. His criticism of Go is mosly unfair, for example, how can he say that Go syntax can look ambiguous? I don't think I've seen a more explicit and unambiguous language than Go.

</comment></comment><comment><USER7> In my own personal opinion, the fact that Google have brought to the forefront the need for a new systems language is way more important than the exact feature set they have chosen to include. Even things like garbage collection and array bounds checking make life better.

One thing I find interesting is that I've seen several people claim that Go is all but useless until they implement generics. Java has only had generics for the last 5 years, C# had them after that, and the languages Go is intended to compete with still don't have them (well C++ has templates and I guess C has void *)!

<comment><USER8> Personally, I couldn't believe that they put generics in Java, after the weirdness with C++ templates, and all the problems they buy you.

Java very definitely jumped the shark when they added generics.

</comment></comment><comment><USER9> I hate to break it to the author, but programming language design in general hasn't evolved much since ALGOL. It's not just Go. Sure, we have object- oriented programming, but that's really not anything earth-shattering from a language design standpoint.

</comment><comment><USER10> See also:

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

</comment><comment><USER11> I find it hard to make any "system" language that will be better than C or maybe C++. Go or Algol are just going to be C with some features tacked on. If someone is going to overtake C it will need to be a whole new approach. I think that is what the author is trying to get at.

<comment><AUTHOR> You are aware that Algol predates C, yes? This would make it hard for Algol to "just [be] C with some features tacked on", according to any reasonable interpretation of those words.

<comment><USER12> It does seem more like C is Algol with some features cut out.

</comment></comment></comment><comment><USER13> Wow, the Algol-68 spec really is impenetrable.

</comment><comment><USER14> Hard to invent anything new.

<comment><USER15> Finish the sentence.

Hard to invent anything new if you need to keep backward "knowledge" compatibility.

Industrial PL design has always been about doing what programmers already know, but _gradually_ "better". Not challenging them and introducing them to new concepts. As far back as the first Fortran; language designers were told to defer to the programmer's expertise, so much so that the #1 requirement for Fortran was to be an algebriac syntax over assembly language. Fortran didn't dare to do anything different than assembly (that job was left to Lisp.) That's why you see dangerous low-level constructs left in every major HLL: this is to allow the previous generation of programmers the freedom to circumvent the abstraction to get work done. It's a subtle admission of distrust of high-level concepts, because management, and studies in "pragmatics" tell us that programmers need to fall back on sheer muscle and primitive operators to deliver quality software.

PL designers and compiler hackers can wax poetic over their achievements in advancing the art, but the market prefers to keep its investment in time, money and expertise in current technologies. So what you often see is a lousy compromise between the Ideal and the Material. Inline assembly, longjmp, pointer arithmetic, unboxed immediate values, compiler directives and promises to allow the programmer to tell the compiler how to do it's job, etc.

The people behind Go are industrial PL designers; everything they have ever done was for immediate, pragmatic reasons. They cloned Multics to make it cheaper and simpler, doing away with much advanced time-sharing OS research and taking the bare minimum; what they produced was a multitasking OS for minicomputers that wasn't that much more sophisticated than the microcomputer OSes of that day: it was CP/M with a login screen. You can see that theme of "simple, familiar, fast" running through every piece of software tool Bell Labs has ever touched after that. They might appropriated a few technologies from academia, Tcl, SML/NJ, etc. but those were done by researchers brought on board from the outside. When Bell Labs got too ambitious they produced C++, not a change in tone, but a crescendo of everything they have been doing. Worse is Better.

<comment><USER16> The problem was not that they invented this stuff, but that people took it seriously. Let's break the cycle with Go.</comment></comment></comment>


Meet Flock, a Fun and Casual Way to Make Plans - <AUTHOR> https://medium.com/look-what-i-made/4e667ad7a098

<comment><USER2> Great idea! I'm sure you will be subject to network effects. What about users without a facebook?

<comment><AUTHOR> Thanks! We're working on it! Next release will have ability to create an account w/ email address as well

</comment></comment><comment><USER3> Love it. This would definitely solve a problem for me if I could get my whole clique to use it.

</comment><comment><USER4> Yea the big hurdle is to get users to build up their network of close friends.

</comment><comment><USER5> What happens if my friends are on Android? What is the fail scenario?

<comment><AUTHOR> We are working on making it available for everyone, stay tuned! In the meantime, you can share your Flock w/ Android friends through text message, email, twitter, and facebook

</comment></comment><comment><USER6> Great presentation of the idea/app.

</comment><comment><USER7> The name "Flock" was already used a few years back, for a browser that had some social media integration: [https://en.wikipedia.org/wiki/Flock_(web_browser)](https://en.wikipedia.org/wiki/Flock_\(web_browser\))

Given how that effort appears to have failed, the name "Flock" is somewhat tainted for many people who remember that browser.

<comment><USER4> Yea, we know the name Flock is not unique but it's so good at embodying the functionality of the app we decided to stick with it.</comment></comment>


Slidr.js - add some slide effects - <AUTHOR> http://www.bchanx.com/slidr

<comment><USER2> Pretty smooth.. I was playing with swipejs which I found easy enough to adapt to my needs but might give this a go as well just for fun.

</comment><comment><USER3> really digging the breadcrumbs. these are some sexy sliding effects.

</comment><comment><USER4> nice mobile version. Special kudos for good documentation, too

</comment><comment><USER5> this is great, it's really smooth on mobile too.

</comment><comment><USER6> this is awesome, perfect on mobile.</comment>


Ask HN: Finding a UX/UI Designer for a startup - <AUTHOR>

How do you find a UX/UI designer if you are a startup and haven't been funded yet? <comment><USER2> There are really two options: a) be clear & honest & persistent about your vision for how people should interact with your startup - independent of technology constraints. b) pay a UX/UI designer for that vision. My company charges a single flat fee for an initial whiteboard workshop on clarifying and identifying a projects UX. I'm sure many other UX firms do as well.</comment>


An Open Letter from the President of the United States of Google - <AUTHOR> http://blogs.msdn.com/b/tims/archive/2011/01/11/an-open-letter-from-the-president-of-the-united-states-of-google.aspx

<comment><USER2> I grew up with Esperanto, and I don't really see a reason to use it as a pun in this context. It's a nice and useful language and everybody has the option to use it or leave it.

The parallels (to VP8) with the blog post pretty much end there, as you don't actually have to pay your pants off with royalties to some group, just because you are teaching English (h264).

I really like ironic humor, but this one didn't get to me.

<comment><USER3> >You don't actually have to pay your pants off with royalties to some group

Really? How is paying a few cents a user 'paying your pants off' ?

[http://www.zdnet.com/blog/bott/h264-patents-how-much-do- they...](http://www.zdnet.com/blog/bott/h264-patents-how-much-do-they-really- cost/2122)

<comment><USER4> $6.5 million per year buys _a lot_ of pants where I come from.

<comment><USER5> This reminds me about the scare tactics adopted about Congress's earmarks, where a large number was thrown around without context to obfuscate the issue. You need to put the 6.5 million in perspective.

The 6.5 million is for developers of encoders/decoders, not websites (it's capped at 100k for video sites). If you sell a million copies of an encoder, your royalty will be $0.20 times 900k = $180k (first 100k is free). Is it really too much to ask $0.20 for developing most of the technology on which you are basing your business?

For 250K subscribers to a _SUBSCRIPTION_ video site, big bad MPEG-LA wants $25k, _CAPPED_ at 100k for users >1M.

I'm pretty sure this is a negligible amount for a subscription site. And remember, free sites don't pay.

<comment><USER6> Right. Because the current price they're charging is going to be all that they're ever going to charge until the patents expire.

Or, you know, what's actually going to happen is the price being kept low until H.264 is well-entrenched, and then being jacked up when there's no competition.

<comment><USER5> So you agree that 100k/6.5 million would not unreasonable for the entity which would be charged that amount?

The linked article addresses inflation also. The licensors agree to not raise royalties by more than 10% per year. Unless you definition of "jacked up" encompasses 10% rise.

I see ideological reasons to support a free standard, but not business ones. YMMV.

</comment></comment></comment></comment></comment></comment><comment><USER7> English is free even for commercial use.

<comment><USER8> كما هي اللغة العربية التي لا تقدر بثمن، مع انها لا تكلف قرشاً

<comment><USER9> Upvoted in hopes of translation...

<comment><USER8> "So is the Arabic language; which is priceless, even though it doesn't cost a penny".

Trouble is, I can only say that in formal Arabic, not any particular dialect. I must be the only native Arabic speaker without a native dialect (imagine a native English speaker who speaks only in Shakespearean)

<comment><USER10> Child of an international marriage, growing up overseas?

<comment><USER8> Yes, I am two quarters and a half, and so is my fiancee. Our child will have a nationality in 5 continents.

<comment><USER10> That just reeks of awesome. I thought it was cool that our kids have two passports (each, I mean).

You should arrange for the child to be born in Antarctica.

<comment><USER8> Actually, my full name is Mahmud-LeShawn Nguyen Ramirez van Cohen-Singh~

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> Not equivalent; HTML5 video is still being defined and is not yet in the mainstream.

</comment><comment><USER12> If English was as only developed and entrenched as H.264 is currently when Esperanto was introduced, I know I would be willing to take the very minor setback.

</comment><comment><USER13> Childish?

Suddently reminded me to the web page that criticizes Mac apps from the store

</comment><comment><USER14> Nice parodi, but besides the (huge) costs of switching, Esperanto (with an Ascii character set rather than the the current (Polish?) letters) would properly be better by far than English.

At least we would have no more grammar fights - the entirety of Esperanto grammar is significantly shorter than the linked article.

And don't worry, you would still have Wikipedia [<http://eo.wikipedia.org/wiki/>].

As for Klingon, well I guess that remains a pipedream.

<comment><USER15> Good luck with the whole poetry thing in a language with no ambiguity to it.

<comment><USER16> I'm pretty sure I've seen poetry in Lojban which is specifically design for lack of ambiguity. YMMV, but it's possible to have poetry without ambiguity in my opinion.

</comment></comment></comment><comment><USER4> English -> Chinese might have been a more apt analogy, particularly as China are pushing heavily for royalty free standards (and will simply take your patent if you try to hold up the standard) as part of their plans for world domination.

</comment><comment><USER17> It is a good analogy but it would be more appropriate to use a theocracy or a benovelonet dictatorship that wants to take over the world. It cam free everyone of dangerous choices that way.

</comment><comment><USER18> title doesn't really match the article content

<comment><USER19> As usual, the devil is in the details. Check where his links actually go, he's not really talking about Esperanto...

</comment></comment><comment><USER20> Brilliant, I like how this is a spoof of what Google is doing with h264 .

Of course, facebook's been doing this the whole time and it's been pissing people off, but most of those people were developers who signed on to this ever-changing environment.

Deprecating a format that most people use is a little harsh. On the other hand, it is once again a symptom of intellectual monopoly protected by the government. Apple can charge people for the codec, and google won't have it. Makes sense.

I would like to highlight this fact. A lot of the problems we are encountering are symptoms of intellectual monopolies (as Thomas Jefferson preferred to call it) granted by the government. The activities of the RIAA, Interval Licensing, pharma companies, and Disney may grab headlines, but they are perfectly viable in a system that is set up to grant, and then go to great lengths to enforce, copyright and patent protection.

How can we in the west criticize China's "zi-lu" laws, discount Baidu and Tencent for following their country's laws (see [http://www.quora.com/Why- does-Facebook-get-so-much-more-hype...](http://www.quora.com/Why-does- Facebook-get-so-much-more-hype-than-Tencent-when-Tencent-is-bigger-in-terms- of-market-cap-usage-and-reach)) but at the same time pass laws like this:

[https://www.eff.org/deeplinks/2010/04/u-k-passes-internet- di...](https://www.eff.org/deeplinks/2010/04/u-k-passes-internet- disconnection-law)

and this:

[http://www.zeropaid.com/news/91378/feds-seize-domain- names-o...](http://www.zeropaid.com/news/91378/feds-seize-domain-names-of- counterfeiters-and-pirates/)

Seems due process goes out the window when copyright is involved. The same western nations that are against censorship of the internet in China, censor the internet as soon as copyright comes up. I am not sure this situation is very stable -- something has to change.</comment>


Shut it down - <AUTHOR> http://www.switched.com/2010/06/18/new-bill-grants-fed-power-to-shut-down-the-web/

<comment><USER2> Is there anything Lieberman comes up with that _isn't_ a bad idea?

<comment><USER3> Well, coming from the hard Right I'd say no, he does have some good ideas, but this is most certainly not one of them!

This is beyond the pale; as the Instapundit (a University of Tennessee law professor) put it, " _If they shut down the Internet, I'm getting out my gun. And I think everyone should take it as a signal to do the same — because one way or the other, it means the country's under attack._ " (<http://pajamasmedia.com/instapundit/101391/>)

</comment></comment><comment><USER4> can someone paint a scenario in which this off switch would be used?

<comment><USER3> [ Current party in control of the Executive ] is on its way to losing an election.

Other than that, I'm hard pressed. It's like shutting down the phone exchanges (something else that's typically done for political reasons).</comment></comment>


Germany passes immigration law to lure non-EU skilled workers - <AUTHOR> https://www.theguardian.com/world/2018/dec/19/germany-passes-immigration-law-to-lure-non-eu-skilled-workers <comment><USER2> UK, Germany and even Japan is working overtime to let skilled migration. Meanwhile at Australia their rabid anti immigration policy is taking effect along with their draconian encryption laws. Australia is effectively killing off it's budding tech industry , or whatever is left of it.

US is against immigration too but there is no country as lucrative as US for skilled workers, except for maybe Canada.

</comment><comment><USER3> I don't get it, how did illegal unskilled immigrants come into the picture? The law is to let in skilled non EU labour. I'm thinking software engineers, physicists and executives etc

<comment><USER4> > how did illegal unskilled immigrants come into the picture?

The magic of politicians: it seems they introduced a new law that allows the _rejected_ asylum seekers to stay in Germany if they prove that they are "still learning."

That's the background story behind the following sentences of the article:

"Mathias Middelberg, the interior affairs spokesman for the parliamentary group of Merkel's Christian Democratic Union, said the acceptance of rejected asylum seekers into the workplace "sends the wrong signal"."

Now, why is the background not explained, don't ask me. But always try to find the reliable sources when you have the impression that the story misses something.

On another side, it doesn't sound too bad, if the following is really true:

[https://www.dw.com/en/german-cabinet-approves-skilled- labor-...](https://www.dw.com/en/german-cabinet-approves-skilled-labor-draft- law/a-46802448)

"the new law would allow asylum seekers to stay in Germany for 30 months as long as they have enough work to secure their living and are considered "well integrated.""

The devil is still in the details: is "enough work" really a criterion, or is just the proof that there's some education attempt enough, etc.

> The law is to let in skilled non EU labour.

That's what you'd think only if you just read the name of one law. By the way, the U.S. politicians used similar tricks, many times, and my favorite example is: the "Patriot Act" was not about the "patriots" but was made to allow the spies to spy more: [https://en.wikipedia.org/wiki/Patriot_Act](https://en.wikipedia.org/wiki/Patriot_Act) and the name should have suggested "if you are against _that_ then you're being unpatriotic."

</comment></comment><comment><USER5> Let not use this horrible fake news rag as a source. Here is a snippet from Die Welt:

"Like academics today, they can then get a residence permit for six months to look for an employer. This applies to all trainees - not just those from shortage occupations. Condition is a small knowledge of German and securing their livelihood."

Which basically opens the gates for anybody. The "skill" can be just anything like peeling potatoes.</comment>


BETEGY - <AUTHOR> https://betegy.com

<comment><AUTHOR> BETEGY is online service, which provides football predictions and statistics based on self-learning algorithm. BETGY allows you to quick access the important football data and to see whole story. Our predictions specialises on main European Leagues ( Premier League, Bundesliga, La Liga, Seria A, Eredivisie and Ligue 1) and in the same time we expand our coverage. Our predictions are as accurate as possible, we analyse over 50,000 football data points to keep you winning.</comment>


Show HN: SiriDB – a time series database - <AUTHOR> https://github.com/transceptor-technology/siridb-server <comment><USER2> How does it compare with all the other time series databases?

And please restrain yourself from invoking Docker in documentation and README. People who run Docker surely can add appropriate magic incantations for themselves, but for people who don't use Docker it's not obvious how to strip the example commands or even if running outside Docker is supported at all.

<comment><AUTHOR> Thanks for the tip. We've changed the order in README and added compile from source, hope this makes it clearer. Docker is definitely not a requirement for running SiriDB. The reason why we've used Docker in README is to show the full possibilities of running SiriDB in a cluster environment.

As for the other time series databases, our focus is entirely on performance, scalability and no downtime.

<comment><USER2> Docker has little to do with "clusters", whatever you mean behind the term (there are several meanings of it).

> [...] our focus is entirely on performance, scalability and no downtime.

As for all the other time series databases. What makes your project different? And what does "scalability" mean in this case?</comment></comment></comment>


The Scam Wall Street Learned from the Mafia - <AUTHOR> http://www.rollingstone.com/politics/news/the-scam-wall-street-learned-from-the-mafia-20120620?print=true

<comment><USER2> Perhaps most amazing is many people's apparent assumption that banks _would never_ engage in this kind of behavior.

It seems the most cynical predictions and explanations of large bank behavior are likely to be the ones closest to the truth.

<comment><USER3> There are people who think three bid systems actually work? Everyone I've ever talked to about three bid systems knows they mostly exist to give a faint dusting of propriety to the fact that somehow the mayor's brother in law is always the guy winning the contract.

Are there roads in your town? Do you think they were paved by the honest lowest bidder?

<comment><USER4> You're pretty far off, here.

I used to be in an elected position and would sign off on stuff like this. The "lowest bid" thing does actually tend to be enforced, at least where I was, and it was a huge pain in our butt for totally different reasons.

You're presuming that every deal is a gladhanded corruption thing. Sometimes, but not most of the time. Often we would know what we wanted, have a good deal for it, it's not a very significant purchase (like a $500 piece of equipment or somethign), but we have to spend hours of employees' time getting ahold of 3 options so that we can get the one we were going to get anyways.

The way worse situation is on big ticket items, like your example of roads or other big capital projects. Where I was they are actually done by the lowest bidder, by law. But we'd wind up paying way more than that, because in order to become the "lowest bidder", the contractor would have to unrealistically underbid and then run way over on the contract. At that point, we'd be screwed and it's usually a better idea to pay a little more to finish the project than to sue and have a half-finished project sitting there while you burn 6-7 figures on legal bills. Contractors with the professional integrity to give an honest estimate were unlikely to get the gig, because of the lowest bid law.

<comment><USER5> Any reason not to do an open bid instead?

Also, I'm more familiar with commercial than federal contracts. Did your contracts have not-to-exceed clauses or any penalties built in to manage overrun issues?

<comment><USER3> If I bid $100 and you see it, you can bid $99 and win. The theory is that if you can't see my bid, you'll bid $80 instead because you don't know how low to go.

</comment></comment></comment></comment></comment><comment><USER6> 'Wall Street does X' and 'the Mafia does X' does not in any way imply that Wall Street learned X from the Mafia - and there's no evidence in the article, either. Typical Tabibi bombast.

I suspect bid-rigging, while unethical, is pretty common behavior given this type of auction mechanic - all the buyers are knowledgeable and known to each other, while the seller is relatively ignorant and only participates in the market rarely.

<comment><USER7> You are missing the point; titling the article "The Scam Wall Street Learned From the Mafia" is a rhetorical device used by the author to illustrate the criminal nature of what went on and draw parallels to activity that is commonly understood by the average person to be unethical. The author isn't trying to suggest that these banks literally learned this from the mafia.

"the crimes the defendants and their co-conspirators committed were virtually indistinguishable from the kind of thuggery practiced for decades by the Mafia, which has long made manipulation of public bids for things like garbage collection and construction contracts a cornerstone of its business."

<comment><USER8> Actually, headlines are usually (like, almost always) written by an editor and not the author. So Tabibi should be off the hook on that count.

</comment></comment></comment><comment><USER9> I hate to ask, but might there be a tl:dr; summary? That's a lot of text. I'm interested, but I don't really want to spend _that_ much time on storytelling.

<comment><USER10> As the other replies have said, it boils down to bid rigging. What's interesting about it is the sheer scale. It apparently has been going on for at least 10 years, affects every state in the US and the banks have likely scimmed billions of dollars from it. What's particularly galling is that the entities they have stolen this money from are schools, hospitals, ports etc. Basically, another example of the already rich brazenly lining their pockets yet further with misappropriated public money. All the time hiding behind the supposed "complexity" of what they do and showing apparently no shame or remorse.

</comment></comment><comment><USER11> the source

<http://www.justice.gov/atr/cases/f261600/261602.htm>

</comment><comment><USER12> Some of these sections are a little confusing. Can someone help me out? Hopefully Planet Money on NPR will do an episode on it soon :)

"So it goes to Wall Street, which issues a bond in your town's name to raise $100 million, attracting cash from investors all over the globe"

Why would investors put money into a school? Are they hoping for returns on their investmant later on like shares in a company? I can't image the profit margins on a school would be very lucrative. Why would people invest in these projects?

"While that unspent money is sitting in the town's account, local officials go looking for a financial company on Wall Street to invest it for them."

So the town raised money for a school which they then invest back into wallstreet, to make money? That seems like an odd process. Would it not be possible for towns to say "We are going to build a $300 million dollar theme park", get the money, and say "construction isn't due to start until, oh I don't know, 2023?", meanwhile just earning huge amounts of interest?

"the broker would tell the prearranged "winner" what the other two bids were" If the three banks are colluding, why does the broker need to be the one to pass on the information of what the other bids where? Can't the banks just talk to each other directly and plan in advance what they are going to bid?

<comment><USER3> The investors don't care about the school, they care about the interest payments they will receive. Bonds are often considered lower risk because the income is fixed.

Earning "huge" amounts of interest is exactly what they are doing. They get cash, they put it back in the bank. The lawsuit is about the "huge" interest rate being rigged.

Oh, you ask why they don't do that and never build the project? Because they're _paying_ interest on it in excess of whatever they're earning. The earned interest is only to minimize the cost of sitting on the borrowed money.

Using a broker to decide the winner leaves less paper trail. It'd be weird for three competing banks to have a three way call every time this happened.

<comment><USER12> That clears a lot of it up. Cheers!

</comment></comment></comment><comment><USER13> > How and when the government got hold of those tapes is still unclear; the > prosecution is not commenting on the case

Didn't Wikileaks say they had some BofA documents/conversations that were maliciously "deleted" before they went public?

</comment><comment><USER14> Google AdWords lowers highest CPC ad bid to "the second highest bid + $0.01".

These banks did essentially the same with their bids, just without consent from their clients.

</comment><comment><USER15> Here in Kenya our politicians are the thieves cheating the public out of millions, in America it seems your bankers are the crooks

<comment><USER16> The scam could only continue with the aid of politicians. Big banks told their employees to donate money to the politicians (and later paid them back the money they 'donated'). Or they gave away 'gifts' like Superbol Tickets and limo-treatments. The politicians receive the money/gifts after which they will "advice the City or County" what bank is to handle the swap-deals. There turned out to be $66 return for every dollar the banks 'invested' in the politicians.

</comment></comment><comment><USER17> this fills me with righteous anger

</comment><comment><USER18> Matt Taibbi is awful. This article, and all of his others, are hyperbolic demagoguery. This one is particular is so bad that I can't even bring myself to tear it apart line by line. You're doing yourself an injustice by reading it. Unless you take pleasure in misinforming yourself and becoming angered over falsehoods, you're just playing into the hands of a particularly nefarious and persistent rabble-rouser.

<comment><USER19> I'll give you that 75% of this article is unnecessary hyperbole which adds nothing to the central message.

The central message is very interesting though.

<comment><USER20> But without the hyperbole, people won't get engaged, they won't get angry.

Now, to some extent that engagement is being sought in order to sell Rolling Stone, but I think that both Matt and the Rolling Stone editors believe that they're talking about something that matters & that people _should_ be angry about. Hence the hyperbole.

If they wrote a dry academic paper and published it in some economics journal somewhere it might contain exactly the same information but it would have negligible impact.

<comment><USER3> If they wanted to get people angry, they should follow the money and show where _all_ the money used to build a new hospital goes, but Taibbi's axe doesn't grind that way.

</comment></comment></comment></comment><comment><USER21> So municipalities tried to game the system by instituting closed auctions instead of the open ones, and then got mad, when it turned out that some parties are willing to pay to peek into the sealed bids? An open auction system would not have created the peeking problem in the first place.

Both parties tried to institute unreasonable complexity to get an upper hand.

<comment><USER22> Can you explain further? What do you mean by "closed" and "open" auction?

AFAIK, they outsourced the auction process to a third-party company specializing in conducting auctions. That company and the bidders colluded to defraud municipalities. Corrupt auctioneers also paid bribes to politicians to get hired as as auctioneers.

Do you really not see anything wrong with this picture?

Edit: Removed paragraph with analogy involving ebay. Analogies suck, and it didn't really apply here.

<comment><USER23> An open auction is one where everyone's bids are public and visible to everyone hence allowing price discovery, contrasted with a closed auction, one where the bids are sealed and not disclosed to any other parties. It seemed from the article that the bids were submitted over the phone and known to the broker ahead of the conclusion of the auction, as opposed to a sealed first- price auction.

<comment><USER22> Just to be clear, telling the broker their bid instead of just sending it sealed is exactly the corruption that's being discussed in the article.

AFAIK, it wasn't legal for the bidders to tell the auctioneer what their bid was.</comment></comment></comment></comment>


Star Trek: Inside "The Trouble with Tribbles," 50 Years Later - <AUTHOR> https://www.vanityfair.com/hollywood/2017/12/star-trek-trouble-with-tribbles-50th-anniversary <comment><USER2> It's interesting to watch the technology on TOS. You could interact with a computer by talking with it, but it had to sound like a computer, 300 years in the future:

[https://m.youtube.com/watch?v=NM4yEOdIHnc](https://m.youtube.com/watch?v=NM4yEOdIHnc)</comment>