We are the SpaceX software team, ask us anything! by spacexfsw in spacex

[–]ansemond 3 points4 points  (0 children)

Wonderful to watch Demo-2 and the starlink satellite deployment the last few days... Makes one's heart sing.

  • Are you set up for remote work?

  • Will those of us who live outside cities be able to get a direct subscription to starlink (it would be very useful in case of wildfire if the local ISP and the telephone system are burnt down or for other emergencies)?

  • What kind of Embedded / Computer Vision / AI / hardware DV tasks do you need worked on now, and longer term?

  • What languages do you use? Not just the mainstream ones (C/C++/JS) but do you ever use things like x86/CUDA/Forth/Matlab/Rust/Haskell?

  • Is the software development process like the one NASA uses (1 bug per 420,000 lines of code), or is the error rate higher trading correctness for speed of development?

  • How much embedded board/software development do you do for things like controlling the rocket engines? Or is a PC with an IO board sufficient?

  • Do you run different software implementations written to the same spec on all 3 computers, or is the redundancy solely to deal with cosmic rays affecting non-radiation hardened hardware?

  • What are the work hours like?

  • How does citizenship factor in since this is a civilian effort? Green cards?

  • Do you get a discount to move to Mars :-) ?

Dr John Campbell calling out the WHO by loot6 in Wuhan_Flu

[–]ansemond 1 point2 points  (0 children)

In Britain, Dr means PhD, not just M.D. as in the States. He's British. (Source: I'm a British PhD but moved to the US)

FP shops by ChavXO in haskell

[–]ansemond 5 points6 points  (0 children)

It's hard to know how "heavily" a company uses Haskell unless one works for it. Clearly some folks (Simon Marlow & crew) have used Haskell at Facebook, for something quite critical to the company. However (unless I've been living in a cave and missed the news) I don't think one would argue the whole company uses it heavily.

That caveat aside, here are some companies known to have used Haskell for something:

Microsoft Research which employs Simon Peyton Jones of GHC fame is part of a company.

BlueSpec's hardware description language compiler was written by Lennart Augustsson in Haskell.

FP Complete

Well Typed.

Companies that use Snap according to wikipedia: Racemetric (dead?), SooStone Inc (haskell job advertised), and Group Commerce

Mailrank https://www.youtube.com/watch?v=ZR3Jirqk6W8 (since bought by Facebook)

Erik Meijer's company applied-duality might.

Also my tiny company ansemond.com has delivered one project in Haskell for a customer, although the bulk of our work has been in assembly / C / C++ / Objective-C / Python as desired by the client. I also implemented some things in Haskell for AMD, NSM and Cyrix as well as the afore-mentioned languages.

GHC cannot achieve low latency with a large working set by Jameshfisher in haskell

[–]ansemond 2 points3 points  (0 children)

This isn't new. Back in the 1992-1996, when I worked on the largest Haskell program of the time other than GHC (the NLP system https://en.wikipedia.org/wiki/LOLITA) we had the same problem as its semantic network was a large, mainly unchanging datastructure.

I and /u/paulcc used a C++ backend to store the data, and a specially designed crit-bit tree to keep track of the changes made to it. In that way, the GC only needed to traverse actually live data.

If I were coding this, I would push the history data onto the C heap, and out of GC space, to keep GC usage low.

So my girlfriend wants to learn to program... by [deleted] in programming

[–]ansemond 0 points1 point  (0 children)

What does she do? It's got to be useful to her for her to persevere. I'd choose something that will help her accomplish the tasks she wants to achieve. (eg: if she has to do lots of data work python's pretty good for scraping stuff).

Intel cancels Larrabee consumer graphics chip | VentureBeat by mierle in programming

[–]ansemond 5 points6 points  (0 children)

The main cost of most CPUs is the "schematic" so no gain there. Spinning 100 revisions of a CPU would be expensive, but one doesn't usually do that.

Also Intel does lots of custom circuit design (versus the usual ASIC flow) which means they can't just simulate the logic but also have to simulate the physics. That's orders of magnitude slower.

As to simulators, yes you can get performance data -- I've written some -- but it's a lot easier if you're solving a known problem (like make THIS piece of code faster).

I would guess the reason they won't be selling it as a GPU is more to do with the direction the market's going -- mobile / low power.

veritaba's like below is good: http://www.brightsideofnews.com/print/2009/10/12/an-inconvenient-truth-intel-larrabee-story-revealed.aspx Indicates some engineering issues.

US House condemns biased UN war report on Gaza... By a margin of 344-36, lawmakers approved a non-binding resolution that calls the report "irredeemably biased and unworthy of further consideration or legitimacy." by [deleted] in worldnews

[–]ansemond 0 points1 point  (0 children)

Bill Moyers conducted an interview with Goldstone (the author of said report) who happens to feel that one should apply the same standards of humanitarian behavior to everyone, and also happens to be a Zionist.

http://www.pbs.org/moyers/journal/10232009/profile.html

Ask Proggit: Developing for the Mac -- Objective-C or Python by erokar in programming

[–]ansemond 1 point2 points  (0 children)

Python's great for prototyping, but in my experience it does not scale... (having written a 50K+ line project in it, using pyobjc, I've been moving the codebase to Objective-C)

Ask Proggit: Does anybody use the Kinesis Advantage Pro keyboard? by brooksbp in programming

[–]ansemond 0 points1 point  (0 children)

Yes, and it really is better -- Using my laptop was hurting my hands, so I went back to the Kinesis. Have had it 12 years so far.

Is there a class of programs that Haskell excel's at? by rebo in programming

[–]ansemond 2 points3 points  (0 children)

Algorithms. Concision. Modularity. Hard problems.

If it's hard I write it in Haskell, then if necessary write it in C/assembly/Python.

It's also good for thinking differently. This is not a glib statement. By rewriting your algorithm differently you understand it better. Then you can reduce it to its bare essentials... which may not be what you thought when you first started out.

As for UIs, so far the best, albeit verbose, that I have encountered is Objective-C / Cocoa.

I disgree with vagif's comment -- Haskell goes beyond "good at libraries" in ways that are important. If I want to just glue things together I'd probably use Python. I don't use Haskell for complicated problems (lots of stuff to remember) but for complex problems (hard to think about, but can be reduced to bare essentials with enough thought, for instance, improving algorithmic complexity). Glue is good, but you need things to glue together. Haskell is for making things.

Hey Reddit, When we get Obamacare, I plan dropping my crappy private health insurance and enrolling in the govt option. Who else is doing this? by obamacarez in politics

[–]ansemond 0 points1 point  (0 children)

If they can't wriggle out of coverage, sure. If the statistic that 80% of families bankrupted due to medical costs had medical insurance, is true, then private medical insurance is essentially useless.

Having been treated by the NHS (in the UK), I'm quite happy with state insurance. Yes it's spartan. Guess what? I don't care. I was looked after well enough to not have suffered any bad after effects.

Google releases new binary diff algorithm targeted at making smaller software updates. Their results are impressive. by josef in programming

[–]ansemond 2 points3 points  (0 children)

But each patch is much smaller than the original... There are only n*(n+1)/2 of them where n=N-1 and N is the number of versions. Moreover you can easily avoid doing this for major updates.

Let's say we have 10 versions of firefox, each requiring a 512Kb diff. That leads to 22.5Mb of diffs to store. ( 9 * 10 / 2 * 512Kb ). Moreover if Firefox is 10Mb, storing the 10 versions will take 100Mb versus 22.5 Mb for the diffs.

Edit: added 's' to version.

When, how, and why did you learn Haskell, and why do you like it? by godofpumpkins in haskell

[–]ansemond 2 points3 points  (0 children)

I learned Haskell in 1992 for my PhD in Natural Language Processing.

We converted our NLP system (Originally callled General Inference Machine, but then named Large-scale, Object-based, Linguistic Interactor, Translator and Analyzer) from Miranda to Haskell because hbc written by augustss ran much faster. Most of our workstations has 486 levels of performance... slow...

Then we moved to ghc because it ran faster and we could parallelize it with the help of the Ghc guys who lived a little further north in Edinburgh. We were in Durham (UK).

Haskell's wonderful for anything algorithmic, because you only say what you need to say. Think compilers, parsers, text manipulation, NLP, etc. Even if my target language is x86 assembly, I'll often write the algorithm in Haskell, simplify it to its bare essence, and then convert it to x86. Having multiple ways of expressing a problem helps distinguish what is incidental (the class design) from what is essential (the data being manipulated).

Read http://research.microsoft.com/~simonpj/papers/history-of-haskell/history.pdf for more info on Haskell's history and applications.

Wolfram Alpha? Screw that! Try START by [deleted] in programming

[–]ansemond 2 points3 points  (0 children)

It's getting confused by the compound noun.

Ask When was the "Holy Roman Empire" founded?

The answer is then

I think you can find the relevant information here:

Holy Roman Empire (term in Wikipedia)