Advanced Programming Languages (2009) - <AUTHOR> http://matt.might.net/articles/best-programming-languages/ <comment><USER2> > I don't do a lot of artificial intelligence, natural-language processing or > machine-learning research, but if I did, Haskell would be my first pick > there too.

This is definitely a dated article, since the obvious choice today would be Python, but I have to wonder: why _aren 't_ the "more expressive" (which in this post seems to be a synonym for "functional") languages used in these fields? I don't have much experience with ML languages, but it seems to me that something like Elixir (where the whole language is centered around pipes, parallelization, and operating on data) would be ideal for data science with a performant native library to back it up.

<comment><USER3> > why aren't the "more expressive" (which in this post seems to be a synonym > for "functional") languages used in these fields?

90% of all programmers are cargo-culters whose knowledge of programming is gained from the answers they cut-and-paste from Stack Exchange or Quora. This is as true of "data scientisis" as it is of "web developers." The result is that there is a network effect making certain answers determinant of the language or monthly flavour of xxxScript that gets pasted most often, and reduces the domain in which further answers are examined.

If you want it in simpler terms: the new dudes looked around and saw all the cool kids were using Python and only a few boffins (UK) or nerds (USA) were using anything else, so they knew who to crib the answers from if they also wanted to look valley cool.

<comment><USER4> If anything, Python in science is the opposite of cargo cult - it's more like pragmatic to a fault.

Its ubiquituous in academia/science, has a low barrier to entry, and a large amount and arguably often unmatched quality of specialized libraries/frameworks/tools for all kinds of scientific fields. So the first go to language/ecosystem will of course almost always be python.

I'm definitely not the biggest fan of Python (the language). And there certainly are more elegant/fitting languages for many problem classes. But the thing is, from my experience many people in the field are quite aware of this. But it simply doesn't matter if it's the best _language_ from a developer POV. It just has to be good enough to get the job done, apart from this the points above are simply more imporant.

And it's hard to understate the importance of ubiquity in this case:

Python is the code equivalent of a lingua franca in science.

<comment><USER5> "large numbers of libraries" is almost a subgenre of cargo cult. You're not programming, you're using code you assume does a thing because either it says so or you saw someone else do; but not doing it yourself. Python is paying my mortgage right now and I enjoy using it, but the community around it is no more enlightened with respect to cargo culting than any other I've seen.

<comment><USER6> Yes. So many developers think, I string together some APIs into something that looks like an app, I've done something. Forgetting those libraries are designed/tested to work only on whatever subset of the problem space they were used for previously. They probably don't handle your case; they don't have explicit capacity promises; they don't work together (don't respect each others backpressure signals, don't understand each others error spaces etc).

I read open source, then extract the bits of IP I think was useful. Often rewriting it to fit my case. Its useful source, but as an example to help me write my app.

{ Please don't use Linux as a strawman (You rewrote Linux?! I don't believe it!) That's the single largest, most successful (along with maybe 5 others) open source project. But absolutely not representative of the 1M other projects out there. }

</comment></comment></comment></comment></comment><comment><USER7> "If, on the other hand, you're interested in enlightenment, academic research or a start-up, the criterion by which you should choose your next language is not employability, but expressiveness."

There is a big difference between enlightenment, academic research and a start-up.

For both academic research and start-ups, employability is a very important component:

\- Doing academic research on "non-employable" languages decreases the impact of your research and your own employability;

\- In a start-up, you want to pick a language where you can be productive with your team members, with an healthy community, and where you won't have hiring problems because you're using an "advanced" programming language.

<comment><USER8> > \- Doing academic research on "non-employable" languages decreases the > impact of your research and your own employability

That is not a metric for choice of language for academic research at all. The academic research itself is a job, paid with public money, and you better not hinder it with your career plans. Most computer science research is not on languages itself, so you need a language expressive enough to allow you study whatever computer science concept you need to study; it's mostly C and Haskell around me, but I can't imagine my friends going into embedded C development - the C they write is very different, as are the practices.

<comment><USER7> I was referring to academic research in software engineering or PL related areas.

I think your view of academic research is nice but perhaps a bit naive. Academic research in most countries is filled with pressure from private money to achieve valuable outputs to feed the private sector.

<comment><USER8> Huh, that's not the reality around me, in CZ/SK/DE/AT/PL in EU.

<comment><USER9> In US universities in machine learning fields, a lot of labs work with private companies or do interships during summer at private companies and the grad students eventually graduate and get a job at the private company. Software engineering research might be similar but not sure.

</comment></comment></comment></comment></comment><comment><USER10> Every developers should know at least two languages (more is of course better, but two is the minimum for a professional). The optimal way to select:

(1) Learn the language which is most prominent or employable in your preferred industry (e.g. Java for enterprises, Python for science, JavaScript for frontend).

(2) Learn the language most different to the first, regardless of its popularity and employability. Eg. Scheme if you know Java, Haskell if you know Python, Assembler if you know JavaScript. (There will probably be some disagreement about which languages are to most different to each other, but you get my point.)

<comment><USER11> I think Python and C are simply a must, whatever the language you use in your daily job and whatever else you might want to learn. You cannot seriously call yourself a programmer if you are afraid of C, and Python is too useful as an ad-hoc tool to be ignored.

<comment><USER12> Nice to know that those early years doing Z80, 8086, 68000 and Turbo Pascal TSRs and demos wasn't programming.

<comment><USER13> Koshkin wrote "if you are afraid of C" and IMO if you are writing assembly or Turbo Pascal you wont (or at least, shouldn't) be afraid of C. Turbo Pascal is pretty much at the same "level" as C with slightly more stronger typing and a few extra bells and whistles, but things that cause people to be afraid of C, like pointers and manual memory management, are still there.

<comment><USER12> Yeah, I commented on purpose, because that is what people should learn, pointers and manual memory management concepts, the language to learn them should be secondary.

Those that learn to abstract concepts from how they get expressed on the language of the jour, are better prepared for change in this fashion industry.

I also never understood what it means being afraid of programming languages.

</comment></comment></comment></comment></comment><comment><USER14> This article might need a date added. It mentions Ruby and Perl as "hot right now"...

</comment><comment><USER15> > the criterion by which you should choose your next language is not > employability, but expressiveness.

What a weird choice.

If you are looking for an out-of-the-mainstream language, you can't really tell right away if a language is expressive or not before you actually dive in.

Myself, I go for "exotic looking". I read the brief description of the language, look at a few snippets, and the weirder it looks, or the most foreign the main concepts are, the more I'll be interested in studying it for a few hours.

The point is not to be expressive, it's to stretch my brain.

</comment><comment><USER16> I'm making an effort to learn Scala. It's enough like Java that I can write as I would traditionally so I quickly wrote a Word Search puzzle generator.

Next I'm going to try and write a second version in a more functional way. Then a third...

First version: [https://github.com/melling/WordSearchScala/blob/master/WordS...](https://github.com/melling/WordSearchScala/blob/master/WordSearch.sc)

</comment><comment><USER17> It would be interesting to see how the Scala section would change after the release of Java 8 and especially the release of Kotlin. Java 8 introduced the bare minimum functional programming support in order for the language to be used functionally. Not to mention libraries came out like reactive streams which essentially lets you write your entire code as chained function calls inside of an error monad.

Kotlin then made functional programming a first class citizen. Java is clearly recognizable inside of Kotlin under a bunch of layers of abstraction and syntactic sugar. Once you learn Java you can learn Kotlin with minimal effort and add more language features to your toolbelt as you get more Kotlin experience -- similar to what the author says about Scala.

Kotlin is probably not as advanced as Scala, and admittedly I've never used Scala, but it does seem to be taking some of Scala's market share.

<comment><USER7> "Kotlin then made functional programming a first class citizen" \- what do you mean by this?

<comment><USER17> In Java if you want to map a function over a list you write `list.stream().map().collect()` and in Kotlin you write `list.map()`. The functional programming APIs in Java are atrocious. Lambdas are much easier to write thanks to anaphoric macros and other syntactic sugar. Data structures are immutable by default. A big one that isn't mentioned often is that functions can exist outside of classes so your code is not as tied to Java's style of OOP.

</comment></comment></comment><comment><USER18> > it is possible to write an amb macro that "chooses" the right argument to > make a subsequent assert statement be true.

I'm not too familiar with Scheme's macro feature but how would one go about that? I was under the impression with macros you get to define what ever syntax is part if the call, but here in order to achieve what the author mentions the macro would need to be able to look at surrounding code, to look ahead for the assert. How is this possible? Is he maybe talking of a compiler plugin or a macro (not shown) that encloses the entire expression, e.g. `(make-assert-true-macro (let ...{the code snippet}... ))`?

<comment><USER19> I'm just thinking out aloud, so I'm probably -- if not completely wrong -- at best sketchy on details! That being said, `amb` could be a function/macro that uses a continuation in such a way that, when a failure is encountered (however that may be defined), it can backtrace and try with the next value. By using continuations with some encapsulation of the call stack, it doesn't need to envelope the surrounding code and can just "rewind".

</comment></comment><comment><USER20> Finally, an article about PL's that doesn't mention Go or Rust!

(Oh, wait... the article is from 2009? Never mind then. Carry on.)

</comment><comment><USER21> As many have indicated, this article is pretty dated now.

In some ways it argues for a thorium nuclear power plant when subsidized wind is available. Yeah thorium is great, but we know how to do wind and the buy-in is cheap right now. You'd have to invest a lot in thorium to make it worth it.

Forgive the crude analogy.

Also, the people building ML models and doing data science aren't always ubber functional programmers, so Python is easier for them to get going with. Just like the people writing Enterprise software find Java to be fine.

</comment><comment><USER22> > once the program compiles, it's almost certainly correct.

I'm pretty sure I've heard/read that remark about more than one language. It's interesting how that "almost certainly" often means "around one percent of the time" or the definition of "correct" is moved to a different goalpost.

Meaning, of course, that ultimately it is no different from any other programming language: great coders will write great code and bad coders will write bad code.

</comment><comment><USER23> I'm really curious what 'advanced' will mean in 2030 ?

procedural programming fully gone and most programs being about metalevel self-adapting (ml or else) parallel agents ?

<comment><USER24> I'm only being half tongue in cheek here, but if you follow recent patterns with the growth of functional languages, perhaps find something being mentioned in the computer science journals in the 80s or 90s and imagine it at a bigger scale and with a few twists ;-)

A reinvented version of APL? Some twist on visual programming? Prolog-style logic programming with a built-in graph database? Or just stick 'quantum' on the front of anything?

If you care to do such spelunking and guessing yourself, the ACM's currently open library is a big help! For example: [https://dl.acm.org/action/doSearch?fillQuickSearch=false&exp...](https://dl.acm.org/action/doSearch?fillQuickSearch=false&expand=dl&field1=AllField&text1=programming+paradigm&AfterMonth=1&AfterYear=1980&BeforeMonth=12&BeforeYear=1999)

<comment><USER23> Yeah good point, although I think the FP revival is reaching top of the current wave. And you know, time and new things have a tendancy to be out of the ordinary.

One thing that seems very near reality, is logical auto completion or partial proover edition. Right now and IDE/typechecker will verify there's a logical path between A and B, but maybe they'll try some capped graph search to find possible paths when you need to compose some functions. I know I've seen similar things at very small scale in high end cgi software. Their node editors will introduce conversion nodes if you try to add scalar to a vector.

</comment></comment></comment><comment><USER25> I love learning new languages. But I have yet to see anything that looks like the enlightenment in the article. Most languages gives you different ways to accomplish the same tasks. Some languages make some tasks easier and others hard. It doesn't really matter weather the language is hot, popular or obscure.

</comment><comment><USER26> Rust is an advanced language that might go mainstream.

<comment><USER2> I wouldn't call Rust an advanced language. It has some functional-inspired features (everything is an expression, ADTs, composition/pipes with iterators), but the language's _raison d 'etre_ is zero-cost abstractions, and many of the features of Haskell and the like _require_ a GC and costly runtime checks. See this post on why Rust doesn't have functors, monads, and the like:

[https://varkor.github.io/blog/2018/08/28/feasible- functors-i...](https://varkor.github.io/blog/2018/08/28/feasible-functors-in- rust.html)

<comment><USER20> Affine types are definitely an advanced PL feature, and the compile time checking in Rust is largely based on them. ("Affine" meaning that values of such a type cannot be implicitly copied, but can be implicitly dropped. One reason why Rust doesn't yet have functors or monads is that it's not very clear to what extent these would usefully generalize to such a construct.)

</comment></comment></comment><comment><USER27> Especially in fast changing domains like tech, essays and blog posts must state publish dates.

</comment><comment><USER28> I'm sick of the functional programming people telling us that they are better than we are.

I have written lines of code in Scheme, Haskell, and Common Lisp. I regularly code in Clojure. I like writing in functional languages too.

But every language makes trade-offs. The imperative languages generally try to optimize for readability and speed. The functional languages are often optimized for expression, the ability to easily express yourself to the interpreter or compiler. There is a trade-off though. These languages all trade high expressibility for slow execution times and steep learning curves. This trade-off might well be worth the effort especially if the team is small but it is a trade-off. It's not like it's objectively better to always program in the functional languages.

<comment><USER29> Most people are already familiar with procedural programming. If you want to grow as a developer, don't just learn more of the same, learns something that challenges you to work in a different way. If I only knew functional programming, I don't think I'd understand half of what I understand now. It's the fact that they accomplish the same things in very different ways that allows me to see what it is I'm really trying to achieve in programming and see different ways of doing that. The author even goes so far as to call these niche. That's what they are: weird little languages that do things very differently from what you're used to. There is no air of superiority in the linked article.

</comment></comment><comment><USER30> 2009

(The article is undated but was present on the Internet Archive in 2009, [https://web.archive.org/web/20090106175608/http://matt.might...](https://web.archive.org/web/20090106175608/http://matt.might.net/articles/best- programming-languages/))

<comment><USER31> Was going to say, the recommendations seem rather dated.

<comment><USER32> What would you recommend currently?

<comment><USER33> In the spirit as written (i.e., not necessarily my personal from-scratch list), drop Perl and Ruby [1], add Javascript (the language itself; not necessarily any specific framework). Possibly add Rust to the list of currently-somewhat-exotic languages... depends on how the author feels, it doesn't 100% fit but it's not completely foreign either. (If you squint hard enough, it as arguably the closest current entrant in the "Haskell, but practical to actually use" contest... note I'm not saying it is the Platonic ideal of such things, but the closest _currently existing_ thing.) Go is debatably getting into the C++/Java/C# set. I'd also add a note that you don't need to deliberately learn all of them; one from a given set is enough, pick up any specific one you may need later on demand. Possible exception for C++ which is so funky that I'm not sure you can just "pick it up", but it's been completely possibly to build careers in the industry without ever using it. I'm 23 years in and still yet to touch it professionally.

[1] Neither may be "dead" but at this point I'd have a hard time recommending either to a young person looking to get started. Python and Javascript are both clearly better choices for that case in 2020; if you do encounter a Perl or Ruby codebase you'll be able to pivot just fine from a strong grounding in Python or JS.

<comment><USER34> If you've internalized many of the interesting ideas of Haskell, check out Idris: [https://www.idris-lang.org/](https://www.idris-lang.org/)

It builds on the ideas in Haskell (and similar languages) and adds proofs and first class types to the language. With it you can use the type checker to prove almost any invariant about your code that you care about. So the obvious stuff is there, prove that I never access an array out of bounds, sure. But also: prove that this code obeys this network protocol (e.g. never sends header before a successful handshake, never sends body before header has completed, etc).

Ordinarily the best that you can do is expose an API that enforces these constraints, but nothing is checking that the internals of the implementation of that API uphold the constraints. With Idris you can move that into the type system, so that changes that would introduce a protocol violation fail at compile time.

It's wild! And that's really only scratching the surface. It's still firmly in academia land, but the ideas present are fascinating and definitely worth puzzling through.

The book is super good. It's well written, and introduces the ideas gradually but in a satisfying way: [https://www.manning.com/books/type-driven- development-with-i...](https://www.manning.com/books/type-driven-development- with-idris)</comment></comment></comment></comment></comment>


Announcing Heroku Free SSL Beta and Flexible Dyno Hours - <AUTHOR> https://blog.heroku.com/archives/2016/5/17/announcing_heroku_free_ssl_beta_and_flexible_dyno_hours <comment><USER2> Free SSL is a very nice move, kudos.

The new free dyno quota is still confusing to me as a developer with many hobby projects. Not sure at all if this change won't bite me in the ass.

<comment><AUTHOR> They have a provided a FAQ page about Free Dyno Hour [1]

Previously you get 540 dyno hours (18 hours/day), now it's 550. If you provide a valid credit card, you'll get 1000 dyno hours (you will NOT be charged unless you EXPLICITLY switch to a paid plan)

[https://devcenter.heroku.com/articles/free-dyno-hour- faq](https://devcenter.heroku.com/articles/free-dyno-hour-faq)

<comment><AUTHOR> Earlier post [https://news.ycombinator.com/item?id=11722329](https://news.ycombinator.com/item?id=11722329)

Seems 550 dyno hours are for ALL, not per app :(</comment></comment></comment>


Planetary: a VC backed social network built on Scuttlebutt, out of stealth - <AUTHOR> https://twitter.com/tomcoates/status/1220076287995207680 <comment><AUTHOR> And more investors, "And we're backed by some very smart VCs including @BloombergBeta @FuelCapital and @upsidevc among others" [https://twitter.com/tomcoates/status/1220078067328024576](https://twitter.com/tomcoates/status/1220078067328024576)

It's interesting.. I'd guess VC money is not in line with what the scuttlebutt community would think is the right approach for creating a better alternative to current giants. But at the same time it's clear that you need a lot of time and money to create something polished and mainstream. There must be multiple ways to achieve the same goal.

</comment><comment><AUTHOR> Biz Stone, one of investors - [https://twitter.com/biz/status/1220048447794900993](https://twitter.com/biz/status/1220048447794900993)

</comment><comment><USER2> Is there a UVP other than the decentralization? I ask because I've seen a lot of social networks in the decentralized space, yet none have offered something that say, facebook, does not.

<comment><USER3> What's a UVP? Organizations may be interested in hosting a form of this app on their own dns/maintain control of their own namespace. I think the incumbents can stand to make a lot of money by whitelabeling the existing services and selling access to domains (G Suite for Twitter, for example).

</comment></comment><comment><AUTHOR> Link to the site: [https://planetary.social/](https://planetary.social/)</comment>


Lessons learned from some of the best Ruby codebases - <AUTHOR> http://blacklane.github.io/2016/04/23/lessons-learned-from-some-of-the-best-ruby-codebases-part-1/ <comment><USER2> Rubyistas sure have a bizarre definition of "best codebases".

> This elegant trick of having a class inherit from Module allows us to use a > class in a kind-of module context and to use a module in a kind-of class > context.

This summarizes exactly why I hate Ruby: bizarre syntax tricks all over the place, and (not only junior) developers desperately trying to figure out how that instance variable over there teleported over here, because some gem developer wanted to be clever.

> Procto turns your ruby object into a method object. The code example from > the README speaks for itself so I'll just paste it here:

No it doesn't. What is even going on in there?!?

> This whole chunk of code looks a little more complex than it actually is:

Another thing that I often encounter in Ruby code, particularly in gems.

<comment><USER3> Yeah, hard to figure out what is going on here. I wish that procto code was more documented.

Too much class level and module level munging morphs code into a sub language only readable by the author.

I am generally supportive of this, though, if it masks enough underlying complexity.

In this case it's just syntactic sugar.

<comment><USER4> > I am generally supportive of this, though, if it masks enough underlying > complexity.

In general, anything that makes the static structure of your program less discernible to whoever has to read it, can be considered technical debt. If you find yourself doing lots of dynamic metaprogramming, chances are you need to rethink your application's architecture.

</comment></comment></comment><comment><USER5> The chief lesson here is parameterized modules - specifically, parameterizing modules by instantiating a class derived from Module, rather than simply including the instance methods of a module directly.

I don't think this is an esoteric technique, any gripes about the specific examples chosen notwithstanding (probably chosen for their simplicity, not their utility). It's little different to inheriting from a template in C++.

</comment><comment><USER6> Hrm. I've bashed out quite a bit of crazy brand Ruby to achieve some cool looking interface. I wouldn't do this in production code.

The problem is of definition. My definition of clean is readable, clear and understandable. If it takes a significant portion of a blog post and the research before hand to understand what the hell is going on, I wouldn't call that clean as I define it.

Ideally, you want code that is understood quickly so that it can be maintained with the least effort. Seeing an object used as module violates my understanding of how modules were designed to be used and I would have to spend time figuring out how. It may be 2 minutes or 10 but regardless it's time that need not have been spent.

Cool magic can sometimes be helpful. Often its just cool.</comment>


Bloggings a Low-Cost, High Return Marketing Tool - <AUTHOR> http://www.nytimes.com/2007/12/27/business/smallbusiness/27sbiz.html?_r=1&adxnnl=1&oref=slogin&adxnnlx=1198718726-ZCaDc/aGMb3mVqiRExQb7w <comment><USER2> If you're a clothing manufacturer or a restaurant, photo sharing might serve you better than blogging. Or maybe you want something in between. My site, ourdoings.com, bridges the gap between blogging and photo sharing better than anything else out there.</comment>


Michael Lewis on the bailout: Opacity over outrage - <AUTHOR> http://www.bloomberg.com/apps/news?pid=20601039&sid=atlHxXH7FweQ

<comment><USER2> This article is on the money. All the bluster and outrage about the employee bonuses is merely because it's been successfully framed as a moral issue and not a financial issue.

All crises need a scapegoat and the management of AIG have been rightly or wrongly handed the role. If each household in the US had been handed an invoice for $5000 to raise the hundreds aof billions to bail out AIG, then the bailout would never have happened. Yet you can argue the same thing has happened. And most of the money went to counterparties, like Goldman Sachs, courtesy of Paulson.</comment>


Ask HN: Small programming projects / challenges for C beginners - <AUTHOR> Hi HN,
I've been teaching myself C programming recently. I think I have a good enough grasp of the language constructs like pointers, typedefs etc. I'd like to move beyond the usual (and frankly quite boring) hello world tutorials but I'm having trouble coming up with small enough projects that are doable and big enough that they're still exciting or would allow me to apply my recently gained knowledge.
So how did you guys learn C ? Do you have any ideas for such projects ?
Cheers <comment><USER2> You might be interested in "Code Katas" \- small, targeted programming exercises. Check out codewars.com, codekata.com, codekatas.org, etc.

Also check out ACM Competitive Programming problems [0]. They're small projects, usually centered around logic, mathematical calculations, and data processing. If you want a challenge, take one year's problems and try to complete all eight in under five hours without an internet connection (physical reference material allowed).

[0] [https://icpc.baylor.edu/worldfinals/problems](https://icpc.baylor.edu/worldfinals/problems)

<comment><AUTHOR> Thanks a lot for your answer, I will definitely look into these resources !</comment></comment>


Silicon Valley Linux Users Group's last use of Symantec - <AUTHOR> http://lists.svlug.org/archives/svlug/2016-October/062215.html <comment><USER2> This seems like a misleading title. The SVLUG isn't closing, it's just their last meeting at Symantec. It seems they don't have another meeting place set up formally yet, but I see no indication that the group is actually closing at all.

<comment><USER3> Thanks, we've updated the submission title from "Silicon Valley Linux Users Group Is Closing".

<comment><USER4> I wish there was a way for Feedly to update its headlines when articles get updated... is this a problem with RSS in general or are they just lazy about it?

<comment><USER5> This is specifically a Feedly issue; see [https://feedly.uservoice.com/forums/192636-suggestions/sugge...](https://feedly.uservoice.com/forums/192636-suggestions/suggestions/3764215-feedly- does-not-appear-to-refresh-a-post-if-the-au) . As far as I've seen, Feedly doesn't really respond to bug reports like this.

Among other reasons, this is why I've moved away from Feedly to Inoreader ([http://www.inoreader.com/](http://www.inoreader.com/)),

</comment></comment></comment></comment><comment><USER6> "Symantec kicks SVLUG out of venue" would be a more correct headline.

<comment><USER7> More like "Symantec signifies it's about to go bankrupt by isolating itself from the tech community"

<comment><USER8> I dunno, it isolated itself from the tech community years ago by not being terribly effective at stopping viruses and malware, and it's still making a lot of money.

News of their death is sadly very much premature.

</comment></comment></comment><comment><USER9> SVLUG's had three generous tentative offers of meeting space, thanks in part to the good folks here. The somewhat bigger problem is SVLUG's staffing, notably its absence. As a member of the Web Team, I've been holding the group together for years after active volunteers found other interests elsewhere and walked away, e.g., Yudhvir Singh Sidhu resigned as Meeting Coordinator after doing a terrific job for years, and nobody took his place. This past January, I gave the group a heads-up that the March 2nd speaker had cancelled but I was going to be on the Pacific Ocean for a month so someone else would have to fill the vacancy. I returned in late February and found nobody had even tried, and March's meeting had to be cancelled.

SVLUG hasn't had elected officers since 2009, when the last President and VP's terms expired. Nominations were open at the December 2nd, 2009 meeting, but nobody wished to be a candidate.

I'm certainly not faulting people for having other interests. These things happen. (I myself always stressed that I was unwilling to run SVLUG because I already run another LUG, CABAL.) I suspect that if speakers show an interest in giving talks, one of the kind offers will be accepted, but the basic institutional problem within the group is a real one.

</comment><comment><USER10> Reads like a facility issue, not the ending of the group. Having run user groups, this is a common challenge, but hardly a death knell. However, maybe there's a backstory I don't know.

</comment><comment><USER11> >"If you or someone else claims the November slot, then our closing party will be December 7th, 2016 -- a day that will live in infamy? ;->"

Long live the history nerd!

</comment><comment><USER12> So can anyone here from SVLUG confirm whether they have a new venue lined up? If not I can make some enquiries about possibilities in our facilities in South San Jose.

</comment><comment><USER13> Wow .. seems there are more people in the intersection of SVLUG and HN than I thought :-)

</comment><comment><USER14> Thanks for the new Bash trick.

<comment><USER15> What Bash trick?

<comment><USER16> ipnon was probably talking about the cal command in the body of the message.

<comment><USER15> cal is /usr/bin/cal, a separate program, nothing to do with bash.

</comment></comment></comment></comment><comment><USER17> So what's the better topic: apparmor or selinux?

</comment><comment><USER18> Why is this even news?

<comment><USER8> It is interesting that an extremely technical community has been booted from their regular meeting spot by the supposedly tech focussed company Symantec.

SVLUG is quite an influential LUG. The loss is all Symantec's, though they don't appear to realise that.

</comment></comment><comment><USER19> So now that the confusion about SVLUG closing has been removed and nothing serious is going on, this reminds me of exciting times loooong ago, when Marc Andreessen spoke at SVLUG and then Netscape had buses waiting outside to drive everyone (who didn't want to drive themselves) to San Francisco's "Sound Factory" for the Netscape (open source) release party [0]. I also remember Linus Torvalds as speaker. At one of the meetings I won a SCSI card - which I gifted to the "student network" of my (German) university, a network created by and administered by students in 1994, connecting several thousand students in dormitories to the 155 Mbit ATM backbone of the university. I don't remember a time without high-speed Internet all the way to my room, it's always been there...

Since I moved out of the Bay Area in 2004 I don't have any more recent memories :)

[0] [http://www-archive.mozilla.org/party/1998/details.html](http://www- archive.mozilla.org/party/1998/details.html)

<comment><USER20> Good times! I also remember going to many SFLUG events in my time there. Notable speakers included Linus - of course, and Hans Reiser.

<comment><USER21> I was at the Free the Lizard party - what a blast. I remember Google speaking there - I won a pair of boxer briefs, with a strategically placed "I'm feeling lucky" printed on them - I still wear them.

I left the Valley in 2005.</comment></comment></comment>


The secret of academic success, or fun filled failure if you prefer - <AUTHOR> https://billwadge.wordpress.com/2020/02/06/the-secret-of-academic-success-or-fun-filled-failure-if-you-prefer <comment><USER5> >> When they hire you, they're convinced at first that they've made a great choice. This honeymoon period lasts about six months at which point their attitude flips and they become convinced that they hired a bozo

True of almost every job!!! There could be many reasons to why this happens, I can only speculate given all the hiring strategies, the interviewing jujitsu and what not, it might be an NP category problem.

<comment><USER6> Familiarity breeds contempt.

One thing to understand, from a meditative pov, society and its industry is unconscious Ego dynamics. Its full of projection, and mostly people playing out unresolved trauma.

The unconscious Ego is mostly good at choose(Like, Dislike) and has very little regard for the human underneath, since, especially in form of an Institution/Company, it cant see its own humanity.

This is why people sound authentic in person, but start to act out draconian aggression fantasies as a collective, which starts with the creeping disenchantment - Alot like many and most young human relationship.

<comment><USER7> "Familiarity breeds contempt."

Maybe if you are aware of it, you can control it?

"Nobody is a prophet in their own land", is another thing that comes to mind.

Why did we evolve this way? I can't think of obvious reasons. I understand the phenomenon and I've seen it in close families (people that are capable of respecting others, are not respectful to their own blood family members).

<comment><USER8> There are lots of counterexamples: we are familiar with plenty that we do not regard with contempt.

For instance, ice cream, the fresh blue sky and panda bears.

I would revise that as "gradual discovery of the full extent of the contemptible traits of something is predictably associated with a rise in contempt".

</comment></comment></comment></comment><comment><USER9> I can say firsthand how real & vicious local politics can be in academic institutions.

I made the mistake of openly questioning the research funding of a new professor I began working under in undergrad. It turned out he was the only one who taught the last 2 courses I needed for my CS degree. He took it all very personally. Nearly a 4.0 , success in math & programming competitions for the college, research, none of it mattered. I never finished my CS degree because of those 2 coursse. Years later I went to talk to him about it candidly, hoping I could just keep my head down and finish. But it didn't work.

<comment><USER10> Why not take the course, submit high quality assignments, and when bad marks come back, appeal to a higher faculty member?

Comp sci is fairly objective - it would be very hard for him to give you a failing mark for exceptionally high quality work in a way he wouldn't be reprimanded for.

<comment><USER11> Depending on where he lives or studies, that wouldn't even be a choice let alone a realistic option to pursue.

For one, if there is a shortage of good professors (which there is and if he is one), I can bet you some schools would trash the student without a thought if professor threatens them.

Playing legal battles afterwards isn't something available for most poor students.

Though, that's my experience here. Done a biting before and I won't again. I will just secretly record everything and make it look really bad, then viral it after leaving college. I have learnt to pretend to follow popular opinions, thinking etc because otherwise it ends up as a disadvantage position for you.

What I would do now is ask a few open ended generic questions which will lead to person expressing a lot of what they care about, make a profile and never step on those. Be contradictory on issues the other person is unsure of, helps stay authentic.

I noticed I can sow huge doubts in people when it comes to choosing clothing even if I am the only person in a group of 5, they will start rethinking their choices in the head but for something related to their work or moral dilemmas, it's not easy.

<comment><USER12> Student has right to ask for commisional exam and result is a grade - <USER2> don't decide on punishment to professor nor fairness. It is strictly test of knowledge once you go this way.

You don't need to play massive legal battles and shortage of professors is less of factor due to there not being a risk of professor being fired.

As for secretly recording everything, make sure it is legal where you live.

</comment></comment></comment></comment><comment><USER13> It's fine to offend in some contexts, but the author sounds like a douche. He wouldn't like it much if another researcher wrote an article taking a massive dump on his work, would he? It's basic manners.

Don't say the authors are wrong. Say they take a 'singular view'. Or 'it is arguable that...'. Or 'their results contradict X'. It's fine to critique, but no need to be an ass about it.

As for the seminar - most definitely the fault of the faculty. Anyone should be able to attend a seminar. The clue is in the entymology - 'university' = 'universal'.

<comment><USER14> > no need to be an ass about it

I disagree. Sometimes people used to everyone walking eggshells around them need a jolt of assholishness.

<comment><USER15> Saying that some people need to be subjected to abuse is a _terrible_ point of view.

<comment><USER16> Abuse is a heavily loaded word, and as an aside, I hate the cheapening of language in modern times. Assault is another that's getting cheapened. Someone bluntly telling another "you're dead wrong" isn't abuse IMO.

But to your main point, I've seen my share of the polite leading the polite. If there is a general level of competence, fine, work can still proceed. But often, workplaces _need_ an asshole who will voice their opinion in blunt language. There are moments when diplomacy causes, at best, avoidable delays, but at worst completely fucked projects.

<comment><USER12> There is massive difference between "you are wrong" and mocking someone. Both deserve different response - when someone mocks you it is perfectly ok to mock back or ignore that person. Which is what people do. Mocking makes you asshole.

Workplaces don't need assholes. People who reasinably criticise are not assholes.

<comment><USER17> Bluntness is considered rude in most societies I'm familiar with. Not good either.

As another aside, I feel this is the problem with downvoting. It is a blunt criticism in a society where criticism must be delivered cautiously to avoid offense.

<comment><USER12> If you are talking about "pathetic inadequacy of the contributions" then the contributions better really be inadequate and pathetic. Only then it is bluntness or "telling it like it is".

And most often, those contributions were normal or even state of art when they have been made - making accusation not so much blunt. Instead, it is appeal to emotions, an attempt to leverage funy sounding expression for own goal.

And it is only fair when people respond to it in kind.

</comment></comment></comment></comment></comment></comment></comment><comment><USER18> This article doesn't reflect my experience in academia (but I was in a different field/country). Success is highly corollated with the quality of your publications (and your ability to gather money and students to write them), not so much local politics. I found local politics to be important for administrative careers.

> That's it. Stay positive, never criticize. That's the secret.

That applies to other fields too. Actually, I was an academic and switched to the software industry. I feel that a somewhat sensitive part of the job is trying not hurt anyone's feeling. Could be when reviewing code, or discussing technical choices, or company orientation.

<comment><USER19> > This article doesn't reflect my experience in academia...

Nor mine (also in a different field and country). It does, though, reflect how some academics, especially younger ones, seem to view academia: as a politicized, factionalized battle of personalities. More than once I've had a junior colleague who perceived himself or herself to be a victim of such a battle when in fact the reason for their failure to get a contract renewal, promotion, tenure, or lighter teaching load was mere bureaucratic inflexibility or budgetary constraints and had nothing to do with them personally. The way the blogger hedges his account—"to my best guess," "probably," "it appears"—suggests to me that he might have been reading too much into his situation as well.

</comment></comment><comment><USER20> Heh, I took a couple classes from Bill back at UVic and, being young and full of myself, I occasionally pointed out mistakes in his teaching in front of all the other students. Luckily, unlike the faculty in his story, he never took personal offense. :)

</comment><comment><USER21> The primary fun filled failure, [https://billwadge.wordpress.com/2020/02/06/honest-wes- just-f...](https://billwadge.wordpress.com/2020/02/06/honest-wes-just-funnin- serious-work-viciously-parodied/), is a pretty neat excerpt I had never read before, especially as one who toes that Wizard approach towards formal verification.

<comment><USER22> Thanks for linking to this, it was a good read :)

The author seems like a cool (IMO) guy who is a bit insecure about whether he's supposed to be seeking people's approval or what. I couldn't handle the status-seeking and other social dynamics of academia, so I became an entrepreneur.

<comment><USER23> For those who don't know, he is an esteemed computer scientist who created the Lucid dataflow language with Ed Ashcroft. Much praised by Alan Kay among others.

</comment></comment></comment><comment><USER12> Second story tries too much to read into minds of people who probably did not liked the talk - and somehow finds worst possible interpretation despite there not being much signal to lean that way.

For example, it is quite possible to not like talk that had too much beginner content in it, without the issue being personal offense on graduate presence. I find it pretty normal to not want to listen to beginner content - <USER3> content to primary audience is a thing.

And it is possible for some people to like talk and others dislike it without anyone being massive asshole.

The "you can read another book" should probably be taken as feedback (even as it was not the most direct or polite way to phrase it) rather then mortal insult.

<comment><USER24> I recently read something interesting about how to take insults:

> When we encounter insults from other people, we must deal with them with > reason rather than anger. Either the insult is true, in which case we should > be grateful for the insulter for pointing out this area in which we could > improve, or it is false, in which case we should pity the insulter for his > lack of accurate perception.

\- Pete Adeney

<comment><USER25> "If a person gave your body to any stranger he met on his way, you would certainly be angry. And do you feel no shame in handing over your own mind to be confused and mystified by anyone who happens to verbally attack you?"

-Epictetus

</comment></comment></comment><comment><USER26> Sadly being a jerk can be a vicious cycle. With rising anger and bitterness about how poorly your contributions are received, it may be virtually impossible to present a smiling and upbeat facade to the world—when you're tired, when you're stressed, in a job interview for example or after making a presentation. So for all those here who think "don't be a jerk" is a valid defence for their own unwillingness to brook criticism, just think how many promising careers, then lives, are destroyed by this mechanism.

<comment><USER7> It's true, but it's also a test of your inner strength.

Can you be a good person even after enduring pure evil?

I find that particularly puzzling and I hold people that are capable of good (after being betrayed etc. by the world) in high esteem.

</comment></comment><comment><USER27> > It took me a long while to figure out what (to my best guess) happened. > Certain colleagues were offended that I'd encouraged a bunch of > undergraduates to show up at a research seminar.

Is it not also possible that the author failed to emphasize which parts were new in the talk? A lot of talks start by describing deficiencies in the state of the art. But maybe he needed to give so much background that he couldn't make that clear, and the audience was left uncertain.

</comment><comment><USER28> This is very weird (the seminar thing). In my university the professors would be extremely happy to see a talk where undergraduates could and do attend.

<comment><USER29> I had the same thought. As an undergraduate, I went to some of the interesting-sounding seminars given by grad students. It was a great way to get to learn something interesting and also get to know your professors.

I have to admit, however, that I was usually the only undergrad in attendance.

</comment></comment><comment><USER30> The takeaway from the first story is simple: don't be a jerk.

It's harder to find a takeaway from the second story. How do you in general avoid making whatever mistakes Bill supposedly made with his seminar?

<comment><USER31> He was a new person being asked to do something new to him that literally everyone else around him had previously done. It's not rocket science, ask the opinion of the more experienced people around you. The message from the first story is identical to the message from the first - recognise the value of other people's work.

<comment><USER32> > It's not rocket science, ask the opinion of the more experienced people > around you.

You assume that being humble and acting in good faith will get you ahead in academic politics. From firsthand (but not personal) experience, sometimes you can do everything right and people will still get offended. You'll find no evidence of what went wrong, trying to piece together the event sequence after the fact, much like OP's experience. Of course, OP went out of their way to offend, I don't recommend that.

Academics tend to minimize risk [1]. If you try to interpret their behavior outside of that context, you will find it inscrutable, because not only are they playing in a different league, they aren't even playing the same game [1].

[1] much like C suites

</comment></comment></comment><comment><USER33> My takeaway/tldr: Act in a way that makes your colleagues (potentially future colleagues) feel smart.

<comment><USER17> The seminar story is sort of the opposite; dazzle and confuse them with your genius by giving bad talks no one can understand, or else they won't respect you. But both regard dealing with massive egos, a common problem in research.

<comment><USER34> A good seminar should have a lengthy introduction at a level somewhat below the general level of knowledge in the room and then transition into showing off how clever your approach is. The first part is critical because it makes everyone feel smart. The second part is critical because it shows everyone that you are smart.

</comment></comment></comment><comment><USER35> Nice reference to being seen as a bozo, presumably a la "Don't flip the bozo bit" from Jim McCarthy's rule No. 4 in Dynamics of Software Development, explained well here: [https://www.forbes.com/sites/forbestechcouncil/2018/08/13/th...](https://www.forbes.com/sites/forbestechcouncil/2018/08/13/the- endemic-bozo-bit/)

<comment><USER36> "Bozo" as a word for an incompetent person has been around for a long time: "bozo _(slang)_ A stupid, foolish, or ridiculous person, especially a man. [from 1910s]" (Source: [https://en.wiktionary.org/wiki/bozo](https://en.wiktionary.org/wiki/bozo))

<comment><USER37> I guess the obvious reference is Bozo, the clown...

</comment></comment></comment><comment><USER38> creating good will costs little but pays off a lot when you eventually F something up and can draw from it for forgiveness

apart from that, not being an asshole is its own reward

</comment><comment><USER39> I think there are two different issues. On one hand, if you haven't received much blunt criticism in your life, you might not notice when your own criticism comes across as blunt. On the other hand, if you're used to an environment where blunt criticism is no big deal, and then move to an environment where everyone walks on eggshells, it can be hard to adjust. But if people gave and received more criticism in general, both of these issues would go away, so that's what I would prefer.

<comment><USER12> The author found "yeah you can read another book" to be mortal insult, so there is factor of asymetry in how he criticises others vs how he wants to be talked to.

<comment><USER25> To the contrary, he didn't even realize what it meant when it was said to him. It was only much later that he realized it was intended derogatorily.

</comment></comment></comment><comment><USER40> >> That's it. Stay positive, never criticize. That's the secret.

This seems to work in a lot of fields, optimism being confused competence really fascinates me

</comment><comment><USER41> Now I'm curious about the CLM he wouldn't go into.

</comment><comment><USER42> Great life lesson shared

in just eight paragraphs of blog.

Too easy to miss.

</comment><comment><USER43> The OP is talking academic _secrets_ and essentially _office politics_. I've had some experience with such secrets and getting around the politics so will chip in!

(1) Some Academic Ground Rules

Some high end research universities state that the requirement for a Ph.D. dissertation is "an original contribution to knowledge worthy of publication", and the usual criteria for publication are "new, correct, and significant".

(2) Career Secret

In technical careers, say, based on math and computing, there is almost always more money to be make in making valuable applications of such knowledge than in research creating such knowledge. Moreover, for the goals of financial security or even to be financially responsible and to be able to buy a house, have two late model cars, support a wife and family, have a valuable IRA, etc., it can be tough to meet these goals as a prof doing research and much easier making valuable applications.

(3) A Career Success

I was a ugrad math major but by luck stumbled on to a cute fact: There was and likely still is good money to be made applying math, physics, and computing to problems in US national security around DC. So, at the time, some of the math was numerical integration, root finding, numerical linear algebra, the fast Fourier transform, power spectral estimation, digital filtering, lots of applied statistics, numerical solutions of the Navier-Stokes equations, max- min and game theory for the SSBN fleet, etc. My annual salary was six times the cost of a new, high end Camaro.

The success was an example of (2) of more money from applications than academic research.

So a lesson: With math and computing, to make more money, concentrate on valuable applications and not academic research. Further, do this where there are powerful customers with deep pockets for solutions to technical problems -- e.g., US national security around DC.

(4) An Academic Success

I was getting paid so well for what I knew in math and computing that I wanted to learn more so went for a Ph.D. Then right away, as in the OP, politics hit me.

Then I stumbled onto a solution: I saw a math problem (a tricky issue in the Karush-Kuhn-Tucker conditions), asked for a "reading course", maybe not to get a solution but just _study_ the problem. Two weeks later I found a solution that was clearly publishable (later did publish in _JOTA_ ).

Presto, bingo, _secret_ discovered: The original work gave me a shiny halo and a Kevlar suit of armor against any and all obstacles, especially political.

Technically from (1), the work was enough for a Ph.D. dissertation.

Lesson: As a Ph.D. student, ASAP do some research that meets the criteria in (1).

(5) Another Academic Secret

Get a Ph.D. in an engineering school and not in a school of arts and sciences. I.e., get a Ph.D. in applied math for some engineering and not pure math without clear applications.

So, for a dissertation, start with an important practical problem got likely from outside academics. Then use some old pure and new applied math to get a valuable solution. Then, since the practical problem has likely not already been solved well, the work will be "new". Since the problem is important and the solution valuable, get "significant". Since the core of the work is some math with theorems and proofs, it is relatively easy to be check the work and, then, be "correct". Since the problem is from outside academics, your profs might not know about its practical details and, thus, can't easily criticize. Also generally the university might like the idea that you are trying to make money because otherwise they can't even hope that you will donate a lot of money!

(6) Business Secret

Currently there is an historic business opportunity: E.g., for less than $2000 in parts, as a Web server I plugged together a mid-tower case computer with an AMD FX-8350 processor with 64 bit addressing, eight cores, and a standard 4.0 GHz clock, an Asus motherboard, 16 GB of error correcting coding (ECC) main memory (both the processor and the motherboard support ECC), several TB of rotating disk, Windows 7 Professional, etc. So, computer hardware and software for operating systems, middle-ware, utilities, etc. are cheap and powerful. In addition the Internet spans nearly all the world, and data rates of 1 Gbps are readily available in the US.

Since these cheap, powerful resources have not yet been fully exploited, there should be opportunities to make significant bucks.

Next, one of the standard remarks is, for success, good problem selection is important:

Well, then, broadly can provide new, valuable _information_. Using some pure and new applied math can help get more valuable information.

Then with all of that, also pick a problem can solve as a sole, solo founder funded from own checkbook. An example is the Canadian romantic matching Web site Plenty of Fish -- one guy, two old Dell servers, Windows with .NET, ASP.NET, and ADO.NET, ads just from Google, and $10 million a year in revenue. Later he added staff and sold out for IIRC $575 million.

Points: Here we have an example of (2), valuable practical applications instead of academic research. As a self-funded sole, solo founder, get to avoid office politics, co-founder disputes, and venture capital firms and get to own 100% of the company.

</comment><comment><USER44> To be sure... the main message here is don't be a jerk, treat people w/ respect, and try to be humble...EVEN if you're right and someone else is wrong! These aren't tough principles and they're not exclusive to academia - they are universal.

<comment><USER45> I think that the real message is that a little political finesse (some call "social IQ") goes a long way, and the lack of it can hold you back.

If you're thinking to yourself, "but I was never the most socially capable," that's OK, here are some instructions for your logical-and-not-naturally- social brain to execute: Try to be positive with others, give credit where it's due (or will encourage someone else), withold criticism unless the situation truly calls for it. We all want to feel good about ourselves - <USER4> simple and easy way to be politically savvy is to be a source of positivity for others.

</comment></comment><comment><USER46> Stories like these confirm my experience that academia is in a sorry state and ripe for disruption. I'm a firm believer that you are only as good as your last recent work. Enough of these inflated egos that haven't published anything interesting in a decade, or whose one claim to fame was a matter of luck.

<comment><USER23> Wadge is retired and his stories are over 30 years old. So perhaps academia used to be in a sorry state. It still is, and it used to be, too...?

<comment><USER47> As an undergrad in CS I can say that that politics limit your moves, at least where I live. So the answer is YES.</comment></comment></comment>


Microsoft Open XML embarrassment: spaces go missing between words - <AUTHOR> http://www.itwriting.com/blog/3912-microsoft-open-xml-embarrassment-spaces-go-missing-between-words.html

<comment><USER2> _"as I understand it a large part of the point of Open XML is to preserve fidelity in archived documents"_

No, the point was to preserve a monopoly. The stuff about preserving fidelity was just a smokescreen since anyone paying attention knows that Word has a long history of changing formatting depending on which printer you have plugged into a machine. If you want that kind of archival then use the PDF/A standard.

<comment><USER3> The main purpose of Open XML is to facilitate processing and creating documents programmatically using standard tools to manipulate the DOM. Considering the vastness of resources which exist across platforms for manipulating XML (including those for translating to and from XML schemas), this is hardly a proprietary move on Microsoft's part. If they wanted proprietary, they would have copyrighted the format as Autodesk did with the Revit file format.

<comment><USER4> I don't know if you've actually examined the OOXML format, but I spent about 6 months dealing with it in great detail at my old job, specifically Excel. For simple things, conventional XML manipulation tools could potentially be useful, but there are some serious issues.

For one thing, the files office generates and consumes are significantly different from the format as specified in the ECMA and ISO standards. The schemas for ECMA-376 will specify elements as occuring in any order, while Excel will _require_ those elements to appear in a fixed order. Tons of tiny problems like this exist everywhere, and you only need one mistake to create a malformed document. The machine-readable XML schemas provided by Microsoft _will not work_ without massaging.

The format also makes it very difficult to make simple in-place changes. A good example of this is what you might consider the most basic information in a spreadsheet- cells. Cell tags are contained in row tags which are contained in a sheetData tag. Rows contain their row number as an attribute, while cells contain their A1 "row/column" ID. This means if you remove or reposition a row in a spreadsheet you must update every cell in every subsequent row.

How about extracting a string value from a cell? The format makes it possible to store inline strings directly in a given cell, but Excel itself never uses this functionality. Instead, the cell contains an index into the SharedStringTable, which is stored as a separate XML document. If you delete or modify a cell, it might be referencing an SST entry that is no longer used. The only way to know is to search the document globally, remembering that dozens of different elements could potentially refer to a shared string. If your goal is to avoid bloating documents with junk, you have to solve this problem for a number of cases- style references, fonts and more.

If you want to modify OOXML documents in a robust, thorough manner, you'll deal with tons of issues like this.

<comment><USER5> I've also done some work dealing with the Excel file format for a personal project (.xls not .xlsx). I think it needs to be clarified (not that you're implying this), that at least a lot of this mess isn't deliberate obfuscation on Microsoft's part.

For instance the SharedStringTable is something that made a lot of sense when documents had to fit on floppy disks. Excel is 26 years old, a when you evolve the file format for as long, while trying to maintain backwards compatibility, you'll inevitably be stuck with a messy format.

<comment><USER6> I doubt that _backwards_ compatibility is a priority at MS Office development

</comment></comment></comment></comment></comment><comment><USER7> I wouldn't know how to write this bug...

It should serve as a testimony on how hard it is to implement Office Open XML. Not even Microsoft can get it right.

<comment><USER8> This might be a funny quip, but I disagree. Implementing _anything_ is hard, and weird bugs creep in. I've never seen any program without bugs. So it's pretty disingenuous to take one bug in Word and say that it shows there's something wrong with Open XML.

<comment><USER7> > Implementing anything is hard

Come on. Implementing something you invented should be easy. I would understand if the [Open|Libre]Office folks got it wrong, but Microsoft? The same company that basically discredited ISO (and badly damaged its function afterwards) in order to standardize this monstrosity? To not even bother to implement its botched bogus standard correctly is beyond insulting.

And yes, of all things wrong in MS Office Open XML, the bugs are the least important.

<comment><USER9> _Come on. Implementing something you invented should be easy._

That's absurd. So you're saying there's no Apple bugs in Quicktime or Cocoa? You're saying there's no bugs in Emacs that Stallman wrote? You're saying that there's no bugs in Mathematica written by Wolfram? You're saying that there's no bugs in Java produced by Sun? You're saying that Ken Thompson wrote no bugs in Unix. Stroustrop wrote no bugs in C++.

I've never seen a non-trivial program, standards-based or not, that is bug free, period. Not one.

Heck, there's a 30 year old bug in _binary search_ that largely went unnoticed -- even Donald Knuth missed the bug!

Bugs happen in trivial programs. Any non-trivial program will have bugs.

This is completely insincere. Unless you're willing to say the same thing about ODF and virtually every other file format that exists, since I can find bugs implementing just about all of them from their core proponent.

<comment><USER10> Get used to it. Regardless of the technical merits, it's cool to hate on MS and blindly support Apple/Google on Slashdot, Reddit and even more so on HN. I've seen people quit HN in disgust because of the arguments, comments and moderation of Apple fans on here.

</comment></comment></comment></comment></comment><comment><USER11> Noticed this the minute I installed the Office 2010 beta, but vice versa: the spaces from my Word 2007 document were gone. Made me go back to 2007: wasn't going to rewrite my 20 page report.

<comment><USER12> _> Office 2010 beta

> <sad story about a bug>

> wasn't going to rewrite my 20 page report._

And the moral of this story: don't use software that is officially of "beta" quality for important work. This is not specific to MS Office.

<comment><USER11> You're absolutely right, but the best test there is is the real-life one. And I was prepared for this so could go back. No animals were hurt, no dogs were blamed for the homework, but it have a great first impression of the "improvement".

</comment></comment></comment><comment><USER3> Link to original CNET article: <http://news.cnet.com/8301-1001_3-20034213-92.html>

Link to original thread on Microsoft forum: [http://social.answers.microsoft.com/Forums/en- US/wordshare/t...](http://social.answers.microsoft.com/Forums/en- US/wordshare/thread/2764c5ac-4f7c-4a6d-9419-9e37bddf82d8)

</comment><comment><USER13> That is a pretty obscure test case. And I like how the "severe" impact this had was that someone got a bad grade on a paper.

<comment><USER14> Sending a file in the default format of the world's most popular word processor to another party who opens it on a computer with different settings and a slightly older version of world's most popular word processor doesn't sound especially obscure to me.

I'm assuming most people that fail to get invited to job interviews because missing spaces make their resume/cv look careless to a prospective employer opening the file in Word 2007 probably aren't going to be aware of the reasons behind the decision...

<comment><USER13> Well, it's not like the test case can say "different settings." The devil is in the details.

</comment></comment></comment><comment><USER15> This sounds like simply a bug in Word 2007 or Word 2010, not a problem with the document format.

</comment><comment><USER16> As far as I see this, he admits the problem at the end: Microsoft Word is a Word Processing program, not a publishing program.

You are not guaranteed to have your layout preserved when printing. This can be for a variety of reasons, but it could be simple stuff like having your file in A4-format and your printer only having papers of type "Letter" or something equally silly. In cases like these, Word is _forced_ to reformat.

If you need or rely on a 100% accurate re-representation of your content, Word should not be your tool. Never. Use PDFs. Simple as that. If you are writing a normal texts however, it will probably never be a real problem which you will even notice.

Now, my question to the author (should he check out HN): How on earth is this related to OOXML? Where is the smoking gun saying this is a bug in the file- format? I honestly don't see it, and I don't see anyone else here questioning this unbacked claim.

I honestly expected better from HN.

<comment><USER17> Check the article again. It's not about layout preserved when printing, it's about actual spaces being deleted in the editor and then kept deleted when you save the file.

<comment><USER10> Maybe I need to spell it for you and those downvoting the OP. The headline says 'Open XML' (implying a bug in the standard format) whereas the article is talking about Office 2007 and Office 2010. See the difference?

<comment><USER7> It's the implementation of the standard in Office 2007 and 2010

<comment><USER10> So a more appropriate title could be 'Microsoft's Office embarassment' ? Or not?

<comment><USER7> I think MS Office Open XML and MS Office are pretty much very related. Nobody would implement that standard if it weren't for Microsoft pushing it.

And the title implies that, apart from MS Office Open XML, Office is not embarrassing. One may disagree with that implication, but the title is more specific.

<comment><USER10> There is a big difference between a file format and the program that makes use of it(even though they are related and even if the same entity developed both) that you're failing to grasp in multiple comments.

<comment><USER7> If you read the title carefully, you may also interpret as Microsoft's Open XML embarrassment. Since I am unaware of other Microsoft products that implement the standard, I see no problem with the title. It's embarrassing, it's embarrassing to Microsoft and it's about MS Office Open XML.</comment></comment></comment></comment></comment></comment></comment></comment>


A Look at How Traders and Economists Are Using the Julia Programming Language - <AUTHOR> http://waterstechnology.com/waters/feature/2476518/the-infancy-of-julia-an-inside-look-at-how-traders-and-economists-are-using-the-julia-programming-language <comment><USER2> Always fun to point out is that the NY federal reserve switched their full scale model of the economy to Julia last year[1]. It's also open source, so data scientists interested in macroeconomics can feel free to play around with it.

Moreover, quant-econ, an academic entity dedicated to scientific programming in the social sciences has a few notebooks in python and Julia [2]

[1][https://github.com/FRBNY-DSGE/DSGE.jl](https://github.com/FRBNY- DSGE/DSGE.jl)

[2] [http://quantecon.org/notebooks.html](http://quantecon.org/notebooks.html)

<comment><USER3> Interesting. What quantities do economic DSGE models measure for example? And how accurate are these models?

Is there some way to play with these models? Or do you need lots of input data, which isn't freely available?

<comment><USER4> The foundation DSGE models are nothing like regular statistical or machine learning models. They are general equilibrium models, a type of mathematical model the falls under the microeconomics area of economics. DSGE try to predict how an economical system will evolve over time, given agents preferences, technologies and institutions, how much will be produced, consumed, traded, prices and how those behave over time, taking into account stochastic impacts, like idk oil price fluctuation. They are beautiful theoretically, since they are micro constructed. See, economists don't like to use aggregates only to make predictions and infer policy impacts due to something called Lucas critique ( [https://en.wikipedia.org/wiki/Lucas_critique](https://en.wikipedia.org/wiki/Lucas_critique) ) which basically means that taking an inflation series create an ARIMA(x,y,z) to predict next weeks CPI is theoretically. invalid.

The estimation however, is usually based on Bayesian hierarchical models, taking the constraints imposed by the theoretical model, I believe.

Here is a good source for that [https://www.newyorkfed.org/medialibrary/media/research/staff...](https://www.newyorkfed.org/medialibrary/media/research/staff_reports/sr554.pdf)

DSGE have been criticized for their low predictive power, but it can be said that in that for mid to long term predictions they are more robust for monetary and fiscal policy use.

<comment><USER5> Wasn't aware DSGEs were often formulated in a Bayesian framework. Learn something every day.

</comment></comment></comment></comment><comment><USER6> Most financial firms need their quants to worry less about the new programming language hotness, and more about moving entire systems off unbelievably complicated Excel spreadsheets.

<comment><USER7> The reason for this is simple. Excel is

1\. An incredibly powerful tool.

2\. No bar of entry (cost aside, true in corporate environment).

3\. Very gradual learning curve.

4\. The efficiency gain vs time invested is exponential.

Power Excel users, much like their VIM/Emacs counter parts don't use a mouse. It is just keyboard short cuts [1][2]. This makes them insanely productive.

[1] [https://youtu.be/jFSf5YhYQbw](https://youtu.be/jFSf5YhYQbw)

[2] [https://youtu.be/0nbkaYsR94c](https://youtu.be/0nbkaYsR94c)

<comment><USER6> This is digital Stockhold syndrome.

Excel is something managers and executives can understand, so it became the default language for data analysis. Now technologists trapped using it have to create ex post facto justifications for why it's really "just misunderstood."

Excel is massively slow, makes it easy for beginners to make massive mistakes, computes lots of types in very odd manners, performs floating point operations wrong, and leads to spaghetti code that is a rat's nest of incomprehensible cross-references.

Worst of all, the lack of code path visibility usually leads to a bus factor of 1.

Sure, one _can_ learn to operate Excel for data analysis with a decent level of efficiency, in the same manner one _can_ cross the Pacific in a canoe, but both are still terrible tools for the job.

<comment><USER8> Everybody's right. Excel is a powerful, flexible tool that also has almost no guard rails and all but begs people to make profound mistakes and huge messes. There's too many people who sneer at spreadsheets when they should be using them, and there's too many people who use them when they shouldn't.

No contradictions.

It would be interesting to see if anyone could get some power Excel users together and construct a next-generation spreadsheet that encouraged better practices and worked to prevent huge messes. Spreadsheets are like SQL, where the initial release was so far ahead of its time that it managed to entrench itself into the very fabric of computing, even though it's long overdue for a reimagining.

<comment><USER9> Could you say a bit more about what you'd like to see in a "reimagined" SQL? Are there any serious efforts to replace it?

There was a comment thread around here a week or two ago where someone pointed out it's kind of insane SQL has stuck around so long, and no one could point to any worthy potential replacements.

<comment><USER10> Visual query tools like Tableau don't seem to be going away. I'd love to see an effective open-source alternative to Tableau that doesn't require scripting your own D3 website.

<comment><USER11> Butler Lampson makes the point (in a recent set of slides) that relations are a good base for DSLs: they have enough complexity to model graphs, functions, sets etc.

That thought has made me wonder if logic programmming has something to offer in the design of new APIs.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> I really love Julia and see a bit potential outside of the scientific computing. I used to do all sorts of automations, smaller throw away programs etc in Python and Ruby, but I find Julia much more effective to work with.

It also feels like a smaller language in many ways. You don't have to keep as much in your head, which makes it more effective to keep up with.

The killer features for me, automating a lot of tasks is the awesome integration with the shell environment. Running and combining Unix commands is very elegant and getting hold of the output is done really smoothly.

Secondly what I think saves a lot of time is that it really has ALL BATTERIES included. With Python that feels more theoretical. With Julia you just start writing the name of a function you think should exist in the REPL and it pops up. With Python you got to start guessing which package it might be located in. And that goes for stuff you use all the time like string manipulations, regular expressions, file reading and writing, process input and output etc.

With Python functions often end up having unnatural names because you can't have naming conflicts. Julia handles functions with the same name but different argument types elegantly.

Also there is no schizophrenia wondering if something is a function or method on an object. Everything is a function so that is easy.

<comment><USER13> I would also like to use Julia more for "throw away" scripts and general automation. Unfortunately, startup time (and sometimes compilation) make this a less fun endeavor than with Python etc.

</comment></comment><comment><USER14> If you want to learn more about Julia, here are Julia Conf videos / slides from past years:

* [http://juliacon.org/2014/](http://juliacon.org/2014/)

* [http://juliacon.org/2015/](http://juliacon.org/2015/)

* Julia Con 2015 India - [https://www.youtube.com/playlist?list=PL279M8GbNseuhXmZk9rWM...](https://www.youtube.com/playlist?list=PL279M8GbNseuhXmZk9rWMqY8BGJr_UOxK)

<comment><USER15> 2016 talks are also up - [http://juliacon.org](http://juliacon.org)

Overview - [http://julialang.org/blog/2016/09/juliacon2016](http://julialang.org/blog/2016/09/juliacon2016)

<comment><USER16> Speaking of talks on Julia, I'll again recommend:

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

"Julia: to Lisp or not to Lisp?" from the European Lisp Symposium in May 2016. I found it was rather illuminating on Julia in particular and lisps and programming languages in general.

</comment></comment></comment><comment><USER17> Julia is a very interesting language but big data processing is not a matter of the programming language itself, but how your platform and your architecture is put together.

And nearly always your bottleneck is not the language itself..

<comment><USER18> I think that if this were true, the data science libraries in Python wouldn't all be written in C under the hood, linking to Fortran, etc. Language can have a huge impact on performance with big data.

Julia is just a small step forward. It still has performance problems where the JIT can't help much - like the DataFrame structure, which is effectively a black box and therefor hard to optimize.

<comment><USER19> This is not quite accurate as stated: the problem is the combination of a data structure that is not amenable to type inference with an API that would only be efficient if type inference had perfect knowledge of the contents of a DataFrame. There is a lot of work being done to develop a new API that has none of these problems and provides very high performance, which demonstrates that Julia's JIT is up to the task so long as you choose an appropriate API. Julia, like any language, has intrinsic limitations, but this is not a good example: it's an example of how good API design for Julia differs from good API design for other systems.

<comment><USER18> > This is not quite accurate as stated: the problem is the combination of a > data structure that is not amenable to type inference with an API that would > only be efficient if type inference had perfect knowledge of the contents of > a DataFrame.

Sorry if I implied otherwise - what I meant is that the current DF structure is hard for the JIT to optimize, not that this is a fundamental limitation of Julia. Just that JIT's are limited. I shouldn't have said Julia is only a small step forward, I think. A JIT gets you a long way.

> There is a lot of work being done to develop a new API that has none of > these problems and provides very high performance, which demonstrates that > Julia's JIT is up to the task so long as you choose an appropriate API.

Can you link to information on this? I'd love to see information on the design around this.

<comment><USER20> >Can you link to information on this?

This blog post is a good starting point on the current shortcomings and design solutions of dataframes in Julia: [http://julialang.org/blog/2016/10/StructuredQueries](http://julialang.org/blog/2016/10/StructuredQueries)

<comment><USER18> Thanks a lot.

</comment></comment></comment></comment></comment></comment><comment><USER21> I'm really interested in learning more about data science. Currently attending moocs to learn R but I don't have much free time and it's a slow progress. Currently I work as analyst for an environmental consulting firm but I always wanted to work in something related to quants. I know I'm probably being naive but I want to change careers. Do you guys recommend that I keep learning R or should I take a closer look to Julia? Or both? I don't have a programming background but I do know statistics and Excel. Edit: fast, concise and useful comments in a matter of minutes, I love HN. Thanks!

<comment><USER22> Become fully confident & proficient in a single programming language before hopping around. If you get to the point where you can build a full application from scratch and answer other peoples' questions on SO or IRC with one, you'll be able to easily get up to speed with another should the need arise.

</comment></comment><comment><USER23> My beef with Julia when I last tried it out was the lack of flexibility within the 'data munging' sphere. The assumption appeared to be that all of your data would come in to as UTF-8, whereas in my org we need strong support for Latin1/cp1252, and UTF-16LE BOM. Is this something that has changed recently, or are these traders are economists just working with more sane data?

<comment><USER12> Not a language issue per say then. It shouldn't a problem to add support for this. Julia is even designed from the start to work with Strings of different types. Something not common in most other languages I've worked with.

Most string functions operate on AbstractString types. You can create whatever subtype you like implementing alternative string encodings.

<comment><USER24> Building on this comment, it's actually surprisingly straightforward to add your own encodings into the core language. Just add the appropriate types and extend the necessary base methods.

In this case, it appears Julia 0.5 has a transcode method supporting UTF8/16/32\. [1]

1: [http://docs.julialang.org/en/release-0.5/stdlib/strings/](http://docs.julialang.org/en/release-0.5/stdlib/strings/)

</comment></comment></comment><comment><USER25> I am not a quant programmer, but last summer I did a ten day job for an old customer in Julia and I had to learn the language as I worked. I thought the expressiveness and conciseness of the language was good and I liked the way the package manager used github projects; easy learning curve and REPL based development.

</comment><comment><USER26> As a quant, I can't say I've heard of a single quant I know who uses Julia. It very well could be promising, but firms will be very hesitant to switch from Matlab, R, Python, C++, and VBA

<comment><USER27> I can't find the talk that Stefan Karpinski gave where he said this, but it was something like:

"We've been spending a lot of time working with firms to replace K code."

Maybe the small percentage that uses K/Q/KDB+ are moving to something more readable?

<comment><USER28> Do you have a link to the talk? It would not make business sense for Stefan to spend time replacing the small percentage, if it were indeed a small percentage. Actually, kdb+ is dominant everywhere on wall st, and the company mentioned in that article are retiring an old, discontinued version of k, not kdb+; perhaps that is the firm Stefan refers to? The debate about readability of k code has become boring - if you learn the language, you'll find it perfectly readable, elegant even.

<comment><USER27> > Do you have a link to the talk?

[https://www.youtube.com/watch?v=QRWZBWwBVR0](https://www.youtube.com/watch?v=QRWZBWwBVR0) (I can't listen to the audio now so I'm not sure how much I misparaphrased.) And, you're right, I shouldn't have conflated KDB+ with K.

> if you learn the language, you'll find it perfectly readable, elegant even.

Just comparing K to something like Python.. Though, personally, it only became (somewhat) readable after playing with APL and J for a year.

<comment><USER28> thank you for the link. It's at 12:28 in the talk where he mentions the firm is Conning, who used k for financial simulations for insurance. In this talk, he doesn't suggest he is working with other firms to replace k/q/kdb+.

</comment></comment></comment></comment></comment><comment><USER29> When Julia has an environment as good as Rstudio and a dashboard as good as Shiny, and a Spark interface that is as good as Sparkler and R-Spark then I'll be up for it.

Writing good code in R is an effort, it's possible but the language doesn't make it easy. Julia makes me write good code off the bat and facilitates writing excellent, elegant code.

<comment><USER9> This is how I tend to feel about all non-R things; I've been using R for long enough to dislike a lot about the language, but the environment and tooling is too good to give up.

Letting R be the first language I've gotten pretty good at is really spoiling me.

<comment><USER30> Yep. In my short time working on an R project, I really enjoyed how everything was right there. I'd love to see more REPLs include package managers.

</comment></comment></comment><comment><USER31> Why isn't LuaJIT instead? If they both get their speed from JIT, isn't LuaJIT faster than Julia?

<comment><USER32> I like Julia as well, but there is an interesting scientific library for LuaJIT:

[http://torch.ch/](http://torch.ch/)

Anyone have experience with it?

<comment><USER33> having worked with it, torch is amazing for neural network stuff (thanks to the nn rock); however it raises the same problems there are with Python. Lua is basically a wrapper around C/C++ and whenever you need to do complex stuff, you find yourself writing C/C++ rather than Lua.

</comment></comment></comment><comment><USER34> I really liked Julia (and Juno) when tried it last year, but it was too math- aware as all [actually good] math-originated programming environments. Hope it will break that circle and get some general-purpose attention in nearest future. For me, it is very promising even without that HPC or whatever.

</comment><comment><USER35> Anyone used Julia for something approaching HPC, e.g. in a distributed environment instead of MPI?

I've heard plenty of buzz about it in the HPC community but haven't had a moment to play with it yet.

<comment><USER36> Yes, there's been some scientific workloads that used Julia/MPI to great effect. I don't think the paper is out of review yet, so probably can't link to details, but expect news on that front very soon.

</comment></comment><comment><USER37> "The importance of data and speed to information can't be understated in the capital markets ..."

That says, it's less important than you could possibly state.

</comment><comment><USER38> "Lovas adds that currently, the de facto standard numerical programming language when talking to banks and other finance firms is Python/NumPy."

<comment><USER39> I doubt that. It's certainly the trend and a lot of new code is produced in Python. But most models will run on R/Matlab/C++/C#. I'd guess that most quant departments have less than 10% of their code in Python.

But Python is the modern way to go, so every shop stresses that they use it and they expect every new hire to master it.

<comment><USER40> ... master it instead of C++ or in addition to C++?

<comment><USER39> In addition, although that's often not possible. You need people who can write C++ to maintain code. But it's hard to find because few people with a finance background have any experience with C++. So companies often end up developing in python and then passing it to developers who port the code to c++ for speed and to fit it in the existing framework. If they could be replaced with Julia, it would potentially save a lot of money.

</comment></comment></comment></comment><comment><USER41> So how come not golang instead of Julia? I don't have anything against Julia myself but it seems like go with its maturity, easy cross compilation, static compilation and easy IPC/multithreading it would fit the bill quite well. Granted the GC is a bit slow but should be improved with the next release.

<comment><USER42> Golang is far far inferior in many ways, for scientific programming. For starters, it doesn't have generics.

</comment></comment><comment><USER43> Given Julia's pre-1.0 status, general immaturity and good Python interop wouldn't a saner approach be to use Python as your primary language and Julia for whatever needs to be fast?

</comment><comment><USER44> just like pandas in python, I want to give a quick impl in go lang for my backtest strategy system. now it is open sourced in github: [https://github.com/qingtiandalaoye/GoDataframe](https://github.com/qingtiandalaoye/GoDataframe)

could anyone give a performance test of it? many thanks

</comment><comment><USER45> it's almost the perfect language. The breaking issue for me was the choice to count from 1 (yes, I know there are pro arguments for counting from 1, but every other language I use doesn't do that).

<comment><USER46> Why limit yourself to zero or one? Julia now lets you use any start point you'd like. A fairly recent change, so you might have missed it.

[http://docs.julialang.org/en/latest/devdocs/offset- arrays/](http://docs.julialang.org/en/latest/devdocs/offset-arrays/)

<comment><USER45> The problem is that I maintain other people's code, and I don't want the language to add all those extra things. It's a big cognitive load to maintain, and leads to bugs in production software that is hard to debug.

The julia docs mention that Fortran arrays can be indexed with various starting numbers. I've programmed and maintained millions of lines of Fortran over 20 years and I've never seen anybody use anything other than 0 as the starting index.

<comment><USER47> Fortran, Mathematica, Matlab, R, Lua - all start indexing from 1 (you can find an incomplete list in [1]). For users coming from these languages (which is a large part of the Julia community) the cognitive load would be in the opposite direction.

[1]: [https://en.wikipedia.org/wiki/Comparison_of_programming_lang...](https://en.wikipedia.org/wiki/Comparison_of_programming_languages_%28array%29#Array%5Fsystem%5Fcross- reference%5Flist)

<comment><USER45> I suspect the number of C++/Python or Python/Fortran (where users use 0-based indexing) programmers is larger than Fortran +Math +Matlab + R + Lua.

Anyway, I'm not defending my decision as a globally correct one- it only matter to me.

</comment></comment></comment></comment></comment><comment><USER48> I've never used Julia but it reminds me of Go in that it attempts to replace Frankenstein systems that mix low level languages and high level languages/scripts, with a single modern, high level language with sufficient low level features and performance.

However, in order to do so, they have to give up the generality of either language, and focus on a particular domain (numerical computation and web servers respectively). And because of this, the language never develops a big enough ecosystem. Because of this, I think Python combined with native C libraries is ultimately the better way forward and will be more successful.

</comment><comment><USER49> Someone explain to me why we need a new language here?

If they are trying to express ideas - wouldn't any language do just fine?

They can 'compile' in an 'optimized manner' using something else ...

But in terms of algorithmic expression?

Unless they are writing true 'real time' stuff right for the chip ... why a new syntax?

<comment><USER50> > They can 'compile' in an 'optimized manner' using something else ...

Thats actually the issue Julia attempts to solve as highlighted in the article. There are many languages that you can use to express ideas, but when you need the idea to run as fast as possible, you have to _rewrite_ in C/Fortran/etc and then add bindings to to the language.

Julia lets you write inline C, which I believe means that you can still express algorithms simply, but with some parts (trivially) optimized. (Not a huge julia user, but thats my take on it)

<comment><USER49> I understand that - but wouldn't a really smart compiler be able to do the same thing?

And if you have to be able to write 'some parts' in C for speed ... then why not just use C? And have nice libs for whatever you are doing?

Or intelligently distribute it across processes?

I find it hard to believe that the 'financial industry' has performance requirements that have never been encountered in the entire rest of high tech before ...

<comment><USER51> > wouldn't a really smart compiler be able to do the same thing?

Well compilers are tied to the language they need to compile so language choice does still matters. As an extreme example, GHC can be much more aggressive with inlining because it's pure, whereas most other languages don't provide the same guarantees.

> And if you have to be able to write 'some parts' in C for speed ... then why > not just use C? And have nice libs for whatever you are doing?

Yes I think they could do that, but then they'd need people to write and maintain those libraries. My understanding is they want to find something which strikes a better balance between productivity and speed. Having to write your own libraries to do everything is likely considered a productivity loss.

</comment></comment></comment></comment><comment><USER52> deja vu

<comment><USER44> just like pandas in python, I want to give a quick impl in go lang for my backtest strategy system.

now it is open sourced in github: [https://github.com/qingtiandalaoye/GoDataframe](https://github.com/qingtiandalaoye/GoDataframe)</comment></comment>


Bergson's debate with Einstein swayed the 1921 Nobel committee (2016) - <AUTHOR> http://nautil.us/issue/35/boundaries/this-philosopher-helped-ensure-there-was-no-nobel-for-relativity <comment><USER2> I find the parallels to artificial intelligence really interesting. Bergson attributes some kind of magic to time that can't be fully explained by clocks in the same way that consciousness is evoked to argue that brains aren't normal physical systems.

<comment><USER3> A contemporary of Bergson, the philosopher Samuel Alexander, put that succinctly as "Time is the Mind of Space".

<comment><USER4> >"Time is the Mind of Space"

That sounds wonderful but doesn't mean anything.

An interesting quote from the article:

For many, Bergson's defeat represented a victory of "rationality" against "intuition." It marked a moment when _intellectuals were no longer able to keep up with revolutions in science due to its increasing complexity._

<comment><USER5> > That sounds wonderful but doesn't mean anything.

Why do you think that?

I think you have to really understand a field to say that a given statement in it is meaningless. Or are you simply stating that it doesn't mean anything to you? (Which would, after all, be expected if you weren't an expert).

<comment><USER4> No, it really is just a couple of fancy words strung together.

Let's deconstruct it:

1) Space -- Einstein has shown that it's really Space-Time 2) Mind -- there is no real agreement on what "mind" means. Brain? Consciousness? Brain is well defined, consciousness no so. 3) Time -- the 4th dimension of space-time, right?

So "Time is the Mind of Space" deconstructs to: "the 4th dimension of space- time is <something to do with thought or thinking or consciousness> of the other three dimensions of space-time."

</comment></comment></comment></comment></comment><comment><USER2> Can we reduce the clickbait by replacing "This philosopher" with "Henri Bergson"?

<comment><USER6> We'll use the subtitle.</comment></comment>


Ask HN: Rate my startup keywordenvy.com - <AUTHOR> http://www.keywordenvy.com

<comment><USER2> The design is unpolished, especially those big rectangle buttons.

I also cannot easily find any information about your company anywhere on the site. I wouldn't sign up for service with a company that I know nothing about.

<comment><AUTHOR> Thanks, I appreciate the feedback. By company information do you mean a mailing address?

We have an About Us page, but it's more about what we do than who we are as a company. <http://www.keywordenvy.com/aboutus.php>

</comment></comment><comment><USER3> Just off the bat, $9.95 seems too low a price. SEPRs move the needle for businesses right? It seems like you should charge more.

UI notes:

\- Ditch the "reset" button.

\- Only search Google US by default. Other options should be hidden away.

\- Lose the numbers next to the search terms. They don't add value, and I'm fully capable of counting to 5.

\- It needs overall polish. And I'm not referring to making your buttons glossy.

\- Nearly every major link has an icon next to it. Most of those can go, and in some cases can be replaced by a simple button & text.

<comment><AUTHOR> This is great feedback. As always, the price point is really tough to settle upon. I thought of analytics suites such as Clicky when setting the price and tried to keep the end user in mind. We also work directly with marketing agencies, and in those cases the prices are set in bulk. I always go back to this article by 37signals when trying to determine a proper price: [http://37signals.com/svn/posts/1287-ask-37signals-how-did- yo...](http://37signals.com/svn/posts/1287-ask-37signals-how-did-you-come-up- with-pricing-for-your-products)

Looking at the design again, I can see how the icons stand out too much. The original concept was to keep the design very flat and without too much eye candy.

Again, thank you for taking the time and giving advice.

</comment></comment><comment><USER4> <http://www.keywordenvy.com/register.php>

"Get the leading SEO analytics suite"

Really? Sounds like bold overstatement to me.

<comment><USER5> Claiming to be "leading" when you just entered the competition? You're still in beta. Speaking of being in beta, you should probably mention that on your registration and/or terms of service. Also, incentives to sign up during this period could be a good thing.

<comment><AUTHOR> Actually, we've been running for about a year with a small number of online marketing agencies, so the service is very polished on the backend with a tested API. Allowing the public to join is what's new about us.

It's true, saying "leading" is pretty boastful. We're proud of the service we built, and we set out to be the leading service from day 1. I agree it should be removed until we can quote a reputable source.

</comment></comment></comment><comment><USER6> This site has _awesome_ written in its future. Don't let the suggestions on formatting/copy get you down (but don't ignore them either). I'll definitely use this in my day to day!

<comment><AUTHOR> That's great! If you do keep using it, you can stay in touch with me at firstname.lastname@example.com if you ever need anything, or have ideas on how we can make the service work better for you.

</comment></comment><comment><USER7> Site never loaded the results of my input.</comment>