News aggregator

Functional Jobs: Software Engineer / Researcher at Galois Inc. (Full-time)

Planet Haskell - Thu, 08/06/2015 - 10:52am

We are currently seeking software engineers/researchers to play a pivotal role in fulfilling our mission to make critical systems trustworthy.

Galois engineers participate in one or more projects concurrently, and specific roles vary greatly according to skills, interests, and company needs. Your role may include technology research and development, requirements gathering, implementation, testing, formal verification, infrastructure development, project leadership, and/or supporting new business development.

Skills & Requirements

  • Education: Minimum of a Bachelor’s degree in computer science or equivalent. MS or PhD in CS or a related field desirable but optional, depending on specific role.
  • Required Technical Expertise: Must have hands-on experience developing software and/or performing computer science research. Demonstrated expertise in aspects of software development mentioned above.
  • Required General Skills: Must work well with customers, including building rapport, identifying needs, and communicating with strong written, verbal, and presentation skills. Must be highly motivated and able to self-manage to deadlines and quality goals.

Our engineers use tools such as functional programming languages (including Haskell) and formal verification techniques to design and develop advanced technologies for safety- and security-critical systems, networks, and applications. Our research areas include computer security, cyber physical systems, identity management, security risk analysis, machine learning, systems software, and networking. Engineers work in small team settings and must successfully interact with clients, partners, and other employees in a highly cooperative, collaborative, and intellectually challenging environment.

We’re looking for people who can invent, learn, think, and inspire. We reward creativity and thrive on collaboration. If you are interested, please send your cover letter and resume.

Get information on how to apply for this position.

Categories: Offsite Blogs

Is there a way to enable help à la Python in REPL?

Haskell on Reddit - Thu, 08/06/2015 - 10:41am

It would be very helpful if one would type


And the haddock information are obtained directly. I'm not talking about search using hoogle and hayoo, it's rather a help about loaded library and data in the ghci (ala python interpreter).

submitted by BanX
[link] [12 comments]
Categories: Incoming News

Looking for a proper URL library

Haskell on Reddit - Thu, 08/06/2015 - 5:41am

Do we have a decent URL library, which does not confuse URL with the more general URI, like "uri" and "network-uri" do, and does not revolve around String?

submitted by nikita-volkov
[link] [24 comments]
Categories: Incoming News

Haskell LTS 3 coming soon

Haskell on Reddit - Thu, 08/06/2015 - 3:45am
Categories: Incoming News

Jens Petersen: Haskell LTS 3 coming soon

Planet Haskell - Thu, 08/06/2015 - 2:57am
[edit: The correct naming in the title should be "LTS Haskell".]
Recently Michael Snoyman asked for help with maintaining Stackage. Dan Burton, Adam Bergmark, and I volunteered and we have been helping maintain it now for the last 3 weeks: I think it is going pretty well.

"Heads-up, we're going to bump to LTS 3.0, so if you wanted to break any APIs, last chance for LTS for 3-6 months."  — Michael

Today Stackage Nightly moved from ghc-7.10.1 to 7.10.2, and we are excited to announce that we are planning to bump LTS Haskell to 3.0 hopefully by the start of next week based on current Nightly. So this week now is really the last chance for any breaking API changes for lts-3. From this point on then lts-2 will basically be frozen (like lts-1 is now) unless some exceptional updates should be needed.

This will be the first ghc version change for LTS Haskell (which is still on ghc-7.8.4) so it feels like an important milestone for LTS Haskell and Stackage.

Categories: Offsite Blogs

Pandoc and org headers

Haskell on Reddit - Thu, 08/06/2015 - 12:07am

Hi everyone!

I am trying to read org file using function readOrg from Text.Pandoc.Readers.Org. The problem is that I don't want it to include the org file header (or how is it properly called?). I mean, that I don't want the result to contain following information:

#+TITLE: The Title #+AUTHOR: Author #+EMAIL: Email #+DATE: <2015-08-06> #+STARTUP: showeverything #+OPTIONS: a bunch of options ...

I tried to look at ReaderOptions but it doesn't look relevant (they are common options). I looked through the source code, but I couldn't find anything helpful. Looks like it's not possible to achieve out of box. However I might miss something, that's why I am here.

The only solution I came to is dropping first lines of file that starts with #+.

submitted by deadmaya
[link] [1 comment]
Categories: Incoming News

Voleon Capital Management Hiring Senior SoftwareEngineer

haskell-cafe - Wed, 08/05/2015 - 10:48pm
Voleon Capital Management LP is a startup quantitative hedge fund located in Berkeley, California. We would like to hire a senior software engineer as soon as possible. Voleon's founders previously worked together at one of the most successful quantitative hedge funds in the world. Our CEO has a PhD in Computer Science from Stanford and has been CEO and founder of a successful Internet infrastructure startup. Our Chief Investment Officer has a PhD in Statistics from Berkeley. Voleon's team includes PhD's from leading departments in statistics, computer science, and mathematics. We have made several unpublished advances in the field of machine learning and in other areas as well. Here is our formal job description: ********************************************************** * Senior Software Engineer * Technology-driven investment firm employing cutting-edge statistical machine learning techniques seeks an exceptionally capable software engineer. You will architect and implement new production trading syst
Categories: Offsite Discussion

Constant time pattern matching and jump tables?

Haskell on Reddit - Wed, 08/05/2015 - 8:36pm

I have been reading quite a lot about pattern matching, and a little bit about jump tables as well. I still have a hard time understanding how does GHC enable us to do pattern matching in O(1).

I would be grateful if someone could enlighten me on this, or direct me to a comprehensive resource on the subject.

submitted by kalimeo
[link] [11 comments]
Categories: Incoming News

Performance problems, implementing an ASP solver in Haskell

Haskell on Reddit - Wed, 08/05/2015 - 2:15pm

Hi, I'm relatively new to Haskell. Comming from a logic programming background, I like it mostly because of its declarativeness. As a side project I'm developing an answer set solver in Haskell. Basically a SAT-solver for logic programs. Although I like the current design, it is unfortunately a terribly slow implementation. After profiling my program I found that most of the time is spend in the following functions.

COST CENTRE MODULE %time %alloc get_ng NGS 23.0 0.0 can_choose NGS 17.1 0.0 new_watch2i Types 15.3 39.7 new_watch1i Types 12.7 31.5 get_ng :: NoGoodStore -> Clause get_ng (NoGoodStore png lng _ _ counter) = if counter < length png then png!!counter else if counter < (length png) + (length lng) then lng!!(counter-length png) else error "NoGoodStore out of bounds" new_watch1i :: Clause -> Assignment -> Int -> Maybe Int new_watch1i (c,w,v) a i = if i < Vector.length c then if c!i == 0 then new_watch1i (c,w,v) a (i+1) else if i == v then new_watch1i (c,w,v) a (i+1) else if (a!i > 0 && c!i > 0) || (a!i < 0 && c!i < 0) then new_watch1i (c,w,v) a (i+1) else Just i else Nothing new_watch2i :: Clause -> Assignment -> Int -> Maybe Int new_watch2i (c,w,v) a i = if i < Vector.length c then if c!i == 0 then new_watch2i (c,w,v) a (i+1) else if i == w then new_watch2i (c,w,v) a (i+1) else if (a!i > 0 && c!i > 0) || (a!i < 0 && c!i < 0) then new_watch2i (c,w,v) a (i+1) else Just i else Nothing

You can find the complete code here Maybe you can have a look at the code and give me some tips on how to improve it.

submitted by robauke
[link] [17 comments]
Categories: Incoming News

Waiting for async exception (and nothing else)

haskell-cafe - Wed, 08/05/2015 - 11:43am
Hi, Is there an elegant way to have a thread wait for an async exception but nothing else? I tend to do something like forever $ threadDelay 1000000000 but this seems like a bit of a hack. Waiting on an otherwise-unused MVar or doing 'atomically retry' don't work because GHC kills them off straight away. The context is when using an API that only has a 'withMyThingy' wrapper and no explicit openMyThingy and closeMyThingy alternatives. Perhaps that's an API problem and the only way to work around this is with something a bit hacky? Cheers, _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe< at >
Categories: Offsite Discussion

Syntax extension - adding import support tolet/where bindings

haskell-cafe - Wed, 08/05/2015 - 11:28am
Hi all, I'm sure this has come up before, but a quick bit of Googling didn't reveal any prior discussions (if you known any, let me know), so I'm kicking off a new discussion. I find myself wanting to be able to say something like: foo = ... where import Something.Specific The result would be to import the contents of Something.Specific into the scope of foo and its other where bindings, but not import into the rest of the module that foo is defined in. As a motivating example, I'm currently working on building some HTML in Haskell, and the amount of symbols that come into scope is huge, when you have a DSL for both CSS and HTML - the real pain point being that you get symbols that often conflict. Here's an example of something that doesn't type-check currently image = img [ width 50, style [ width (px 50) ] ] width here is both a symbol in the HTML DSL and the CSS DSL, but to get this to type check I need to write something like image = img [ HTML.width 50, style [ CSS.width (CSS.px 50) ] ] T
Categories: Offsite Discussion

Proposal: Allow arr ∧ (first ∨ (***)) as minimal definition of Arrow instance

libraries list - Mon, 08/03/2015 - 7:47am
Add default definitions of first, second in terms of (***) to let one define an Arrow instance in terms of (***) rather than first, which is sometimes more elegant or convenient. To my knowledge this can not break any code. GHC ticket: 10216
Categories: Offsite Discussion

simultaneous ghc versions

glasgow-user - Fri, 07/31/2015 - 7:10pm
The recent release of ghc 7.10.2 reminded me of something I meant to ask about a long time ago. Most of the binaries ghc installs are versioned (x linked to x-7.10.2), with some exceptions (hpc and hsc2hs). Shouldn't they all be versioned? Also, 'haddock' is inconsistent with all the rest, in that it's haddock linked to haddock-ghc-7.10.2. I've long used a few shell scripts (recently upgraded to python) to manage ghc installs. A 'set' which creates symlinks to make a particular version current, and an 'rm' to remove all traces of a version. But due to the inconsistency, I have to remember to run "fix" first, which moves the unversioned binaries to versioned names. As an aside, I have three scripts I use all the time: set version, remove version, and remove library. Come to think of it, shouldn't ghc include this, instead of everyone creating their own shell scripts by hand?
Categories: Offsite Discussion

broken source link

glasgow-user - Fri, 07/24/2015 - 8:59am
Hi, when trying to look up the original definition for Data.List.transpose in I found that the source link does not work. Could this be fixed? Or should I look elsewhere for the sources? Cheers Christian P.S. my looking up transpose was inspired by
Categories: Offsite Discussion

New gtk2hs 0.12.4 release

gtk2hs - Wed, 11/21/2012 - 12:56pm

Thanks to John Lato and Duncan Coutts for the latest bugfix release! The latest packages should be buildable on GHC 7.6, and the cairo package should behave a bit nicer in ghci on Windows. Thanks to all!


Categories: Incoming News