oleg | 1 Sep 10:04 2010

Three new implementations of multi-prompt delimited control


The monadic framework for delimited continuations described in
the paper by Dybvig, Peyton Jones and Sabry (JFP 2007) has found
many applications, for example, fair backtracking search, final
zippers, direct-style web programming, direct-style code generation,
and probabilistic programming. The extensive experience suggested
improvements in efficiency and, mainly, programmer's convenience. The
three new libraries are novel implementations of the enhanced
framework. Prompts, for instance, can now be bound to top-level
identifiers and do not have to be passed around explicitly or through
the extra Reader monad.  The new libraries benefited from the
experience of implementing delimited control on several platforms.

All three libraries provide monad transformers, with basic operations
to capture and reinstall delimited continuations: pushPrompt, shift,
shift0, control, takeSubCont/pushSubCont.  All three libraries support
multiple, typed prompts. All three libraries are quite distinct from
the original implementation in Dybvig, Peyton Jones, Sabry's
paper. For instance, none of the new libraries use unsafeCoerce.  All
three implementations are derived from the specification of delimited
control: from the reduction semantics or from the definitional
interpreter.

The new libraries differ in
  -- performance
  -- ease of understanding
  -- constraints on the base monad or the prompt types
  -- flavors of prompts and support for global prompts

The libraries are named CCRef, CCExc and CCCxe. The complete code
(Continue reading)

"Timo B. Hübel" | 1 Sep 16:33 2010
Picon

ANN: Hayoo! 2.1

Hi,

We are pleased to announce the next major release 2.1 of Hayoo!, the 
Haskell API search engine with find-as-you-type and suggestions.

Visit Hayoo! here: http://holumbus.fh-wedel.de/hayoo

What's new?

Thanks to Uwe Schmidt, we have completely revamped the indexer, which 
now also crawls package information from Hackage. Hence, Hayoo! now 
searches package names, package categories, package descriptions etc., 
too, and shows you some package results along with the functions found 
(some of you may have noticed this already, since this is live for 
testing purposes since a few months).

For example, this will find you all packages in the category 
"Algorithms" that will do something with "sat":

category:algorithms sat

This will find you some strict datastructures (i.e. synopsis contains 
"strict" and category contains "data"):

synopsis:strict category:data

As we now have package information present in the search index, the 
algorithm for ranking the results has been adjusted to mainly depend on 
reverse package dependencies. Nevertheless, we are still trying to 
optimize this.
(Continue reading)

Bailo, John | 1 Sep 18:23 2010

RE: ANN: mute-unmute-0.2.0.0

If you’re good with sound applications, two others I could use are:

 

1)      Universal mixer.   Some linux apps (vlc) have a mixer, but there isn’t the equivalent of the SoundMax app that only runs in windows for my nVidia audio chipset

2)      Automatic Leveler.   For when you’re watching a streaming movie, and half the dialogue is really quiet…but then there’s a car chase and things start exploding.

 

 

 

From: haskell-bounces <at> haskell.org [mailto:haskell-bounces <at> haskell.org] On Behalf Of Krzysztof Skrzetnicki
Sent: Friday, August 27, 2010 4:17 PM
To: Haskell Cafe; Haskell
Subject: [Haskell] ANN: mute-unmute-0.2.0.0

 

Hello!

 

I'm pleased to announce a small utility program I wrote recently. Today I pushed version 0.2.0.0 of mute-unmute to Hackage, from with you can cabal-install it right now (following the usual 'update' step). What it does? It's simple: it will mute the sound when you lock your screen and unmute it back again when you unlock it.

 

Why anyone would need such program? Well, this is a little bit more complicated.

 

I work in "open space" kind of office. It can get quite noisy there. I often sit with headphones on, but when I walk away from my desk I put them down and lock my screen. Here comes uncomfortable moment: when I remove my headphones suddenly people around me who doesn't use their headphones now start to hear the music I listen to. And they don't always like it, so I manually mute the sound to make happy.

 

But now, instead of doing this task by hand I have a program do it for me :-)

 

Unfortunately this kind of programs tend to be pretty much platform specific. Current version supports the recent versions of Gnome and KDE, but needs ALSA. It's quite common setup, but if you happen to have a different one you can easily hack the code (it's very straightforward) and send me patches. Patches are always welcome. The source repo is on Github and released versions are on Hackage:

 

 

Example use:

 

~/ mute-unmute # first session, it will ask for configuration options

mute-unmute: Creating config directory...

mute-unmute: Mute config is missing...

Mute sound card and press RETURN

 

mute-unmute: Unmute config is missing...

Unmute sound card and press RETURN

 

mute-unmute: Session: UnixAbstract {addrPath = "/tmp/dbus-1tB1AEUcgg", addrGuid = Just "19ec85e3778816ad38a77bbf0000003f"}

mute-unmute: Connected

mute-unmute: Handler added: [MatchType Signal,MatchInterface "org.gnome.ScreenSaver",MatchMember "ActiveChanged",MatchPath "/org/gnome/ScreenSaver"]

mute-unmute: Handler added: [MatchType Signal,MatchInterface "org.freedesktop.ScreenSaver",MatchMember "ActiveChanged",MatchPath "/ScreenSaver"]

^C

 

~/ mute-unmute # remembers previous options which can be changed by calling with --store switch

mute-unmute: Session: UnixAbstract {addrPath = "/tmp/dbus-1tB1AEUcgg", addrGuid = Just "19ec85e3778816ad38a77bbf0000003f"}

mute-unmute: Connected

mute-unmute: Handler added: [MatchType Signal,MatchInterface "org.gnome.ScreenSaver",MatchMember "ActiveChanged",MatchPath "/org/gnome/ScreenSaver"]

mute-unmute: Handler added: [MatchType Signal,MatchInterface "org.freedesktop.ScreenSaver",MatchMember "ActiveChanged",MatchPath "/ScreenSaver"]

mute-unmute: Message {mType = Signal, mFlags = [NoReplyExpected], mSerial = 31, mPath = Just "/org/gnome/ScreenSaver", mInterface = Just "org.gnome.ScreenSaver", mMember = Just "ActiveChanged", mErrorName = Nothing, mReplySerial = Nothing, mDestination = Nothing, mSender = Just ":1.19", mBody = [Variant (True) {- b -}]}

mute-unmute: Lock screen

mute-unmute: Message {mType = Signal, mFlags = [NoReplyExpected], mSerial = 32, mPath = Just "/org/gnome/ScreenSaver", mInterface = Just "org.gnome.ScreenSaver", mMember = Just "ActiveChanged", mErrorName = Nothing, mReplySerial = Nothing, mDestination = Nothing, mSender = Just ":1.19", mBody = [Variant (False) {- b -}]}

mute-unmute: Unlock screen

^C

 

 

You can get usage information with --help switch:


~/ mute-unmute --help
mute-unmute
         --store         ask for mute and unmute configurations
         --store-mute    ask for mute configuration
         --store-unmute  ask for unmute configuration
 -d      --daemon        wait for screensaver state changes
 -h, -?  --help          show help

 

There isn't much more I can say. I hope you find the program at least educational (as a simple example of DBus usage) if not useful.

 

Best regards,

Krzysztof Skrzętnicki

CONFIDENTIALITY NOTICE: The information in this Internet email is confidential and may be legally privileged. It is intended solely for the addressee. Access to this email by anyone else is unauthorized.
_______________________________________________
Haskell mailing list
Haskell <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell
Daniel Fischer | 2 Sep 14:40 2010
Picon

ANNOUNCE: stringsearch 0.3.1, fast searching, splitting and replacing of ByteStrings

Changes vs. 0.3.0:
- fixed a space leak in the splitting of lazy ByteStrings

Changes of the 0.3 series vs. 0.2.*:
- improved performance of the searching functions
- new functionality:
  - breaking of ByteStrings at the first occurrence of a substring
  - splitting a ByteString at each occurrence of a substring
  - replacing all occurrences of a substring with another string

Where bytestring provides the same functionality 
(Data.ByteString.breakSubstring, Data.ByteString.findSubstrings), the 
implementations in stringsearch are typically much faster.
By default, stringsearch uses an enhanced Boyer-Moore algorithm to locate a 
pattern, but it also provides other algorithms which may be better in 
special cases (Knuth-Morris-Pratt; DFA).
Ian Lynagh | 6 Sep 00:40 2010
Picon

Proposal: Form a haskell.org committee


Dear Haskellers,

In recent years, haskell.org has started to receive assets, e.g. money
from Google Summer Of Code, donations for Hackathons, and a Sparc
machine for use in GHC development. We have also started spending this
money: on the community server, on a server to take over hosting
haskell.org itself, and on the haskell.org domain name. There is also
interest in running fundraising drives for specific things such as
Hackathon sponsorship and hosting fees.

However, it is not currently clear who is responsible for determining
what the haskell.org money should be spent on, or what are and are not
acceptable uses of the domain name and hardware.

To fix this problem, we propose that we create a "haskell.org
committee", which is responsible for answering these sorts of questions,
although for some questions they may choose to poll the community at
large if they think appropriate.

We suggest that the committee be composed of 5 representatives from the
community, with committee members standing down after at most 3 years.
Each year the committee will appoint one of their members to be the chair.

As membership of "the Haskell community" is not well-defined, and voting
would potentially be open to abuse if anyone were able to vote, we
propose that the committee should choose their replacements from open
nominations.

Unfortunately, this gives us a bootstrapping problem, so we suggest that
the initial committee be chosen from open nominations by some of the
people who currently de-facto end up making the decisions currently:
Duncan Coutts, Isaac Jones, Ian Lynagh, Don Stewart and Malcolm Wallace.
These 5 would still be elligible to nominate themselves. Two of the
initial members will stand down after one year, and two after two years,
in order to bootstrap rolling membership turnover.

    We would love to hear feedback from you about this proposal,
    so that we can see whether the proposal, or something similar,
    has consensus amongst the community!

A related issue is that haskell.org does not currently exist as a legal
entity. We also hope to solve that problem, but we are still gathering
information so that the community can make an informed decision, so I
won't say more about that for now.

Thanks
Ian
Manuel M T Chakravarty | 6 Sep 05:10 2010
Picon
Picon

Re: [Haskell] Proposal: Form a haskell.org committee

Ian Lynagh:
> To fix this problem, we propose that we create a "haskell.org
> committee", which is responsible for answering these sorts of questions,
> although for some questions they may choose to poll the community at
> large if they think appropriate.
[..]
> Unfortunately, this gives us a bootstrapping problem, so we suggest that
> the initial committee be chosen from open nominations by some of the
> people who currently de-facto end up making the decisions currently:
> Duncan Coutts, Isaac Jones, Ian Lynagh, Don Stewart and Malcolm Wallace.
> These 5 would still be elligible to nominate themselves. Two of the
> initial members will stand down after one year, and two after two years,
> in order to bootstrap rolling membership turnover.

Good plan!

Manuel
Jason Dagit | 6 Sep 06:34 2010

Re: Proposal: Form a haskell.org committee

On Sun, Sep 5, 2010 at 3:40 PM, Ian Lynagh <igloo <at> earth.li> wrote:
>
> Dear Haskellers,
>
> In recent years, haskell.org has started to receive assets, e.g. money
> from Google Summer Of Code, donations for Hackathons, and a Sparc
> machine for use in GHC development. We have also started spending this
> money: on the community server, on a server to take over hosting
> haskell.org itself, and on the haskell.org domain name. There is also
> interest in running fundraising drives for specific things such as
> Hackathon sponsorship and hosting fees.
>
> However, it is not currently clear who is responsible for determining
> what the haskell.org money should be spent on, or what are and are not
> acceptable uses of the domain name and hardware.

The darcs project uses the Software Freedom Conservancy as a sort of
legal entity to hold on to funds and also to help in case anyone takes
legal action against darcs or darcs needs to take legal action.

You might consider joining the SFC as "haskell.org".  I don't know
enough about the SFC or haskell.org to know if it would be beneficial,
so I'm just sort of throwing it out there as something to investigate.
 You might talk to Eric Kow if you're interested.  I believe he
coordinated the process.

http://conservancy.softwarefreedom.org/

Jason
David Anderson | 6 Sep 07:26 2010
Picon

ANNOUNCE: secure-sockets version 1.0

Hi,


I'm happy to announce the first release of secure-sockets, a library which aims to simplify the task of communicating securely between two authenticated peers.

--------------------------------------------
-- What it is
--------------------------------------------

The API mimicks that of Network.Socket, and introduces the additional notion of peer identity, which is distinct from the endpoint address (host and port). Connections can only be established between two peers who know and expect to be communicating with each other.

Transport security is implicitly taken care of: an established Network.Secure.Connection implies that each end of the connection successfully authenticated to the other, and that they have setup strong encryption for your data.

--------------------------------------------
-- What it isn't
--------------------------------------------

The library leans towards the "zero configuration" end of the spectrum, and basically Just Works. This means that if you know exactly what you want and need for the cipher, authentication algorithm, key type and length, key exchange protocol, HMAC algorithm, rekeying intervals, random number source... Then secure-sockets is not for you.

If on the other hand you just want to replace your current cleartext "cipher" and faith-based "authentication" code with something that gives you a good chance of being secure (see caveats in docs), without diving into the rich madness that is full blown SSL, then you might want to take a look.

This library assumes that both ends of a connection are using it. The goal of secure-sockets is not to allow you to connect to any SSL-enabled server, or to speak a particular standard flavor of authentication protocol. Internally, secure-sockets uses SSL to achieve its goals, so you might get lucky if you do it just right, but that is an implementation detail. The library is designed to help you easily secure communications between two programs whose implementation you control, not between you and anything out there.

--------------------------------------------
-- Links
--------------------------------------------





--------------------------------------------
-- Thanks
--------------------------------------------

I'd like to thank my employer, Google. Not only did they not get mad at the idea that I might want to hack on Haskell during working hours (as my "20% project"), they also made it very painless for me to open source this code when the time came.

--------------------------------------------
-- Questions?
--------------------------------------------

Questions, comments, suggestions and patches can be filed in the issue tracker, emailed directly to me, or thrown out on haskell-cafe.

Hope you find this code useful!
- Dave
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
Vo Minh Thu | 6 Sep 08:41 2010
Picon

Re: [Haskell-cafe] Re: Proposal: Form a haskell.org committee

2010/9/6 Manuel M T Chakravarty <chak <at> cse.unsw.edu.au>:
> Ian Lynagh:
>> To fix this problem, we propose that we create a "haskell.org
>> committee", which is responsible for answering these sorts of questions,
>> although for some questions they may choose to poll the community at
>> large if they think appropriate.
> [..]
>> Unfortunately, this gives us a bootstrapping problem, so we suggest that
>> the initial committee be chosen from open nominations by some of the
>> people who currently de-facto end up making the decisions currently:
>> Duncan Coutts, Isaac Jones, Ian Lynagh, Don Stewart and Malcolm Wallace.
>> These 5 would still be elligible to nominate themselves. Two of the
>> initial members will stand down after one year, and two after two years,
>> in order to bootstrap rolling membership turnover.
>
> Good plan!
>
> Manuel

Seems very good,

Thu
Simon Peyton-Jones | 6 Sep 09:27 2010
Picon

RE: [Haskell] Proposal: Form a haskell.org committee

Ian et al

| To fix this problem, we propose that we create a "haskell.org
| committee", which is responsible for answering these sorts of questions,
| although for some questions they may choose to poll the community at
| large if they think appropriate.

I think that's an excellent idea.  I think there should be a web page describing what the committee does, who
is in it, how to contact it, etc.  I'm sure you intended that.  An annual statement of what money came in and
went out would be good practice.

Well the committee also be responsible for the haskell.org web site? 

| We suggest that the committee be composed of 5 representatives from the
| community, with committee members standing down after at most 3 years.
| Each year the committee will appoint one of their members to be the chair.

It's usually helpful to establish a rotation so that everyone knows who is going to stand down when, and to
arrange that there isn't a sudden glut one year.  Document the stand-down dates on the committee web page. 
In my experience, everyone forgets!

Five might be a little small.

It might be good to allow for a person to be re-elected for a second term if they are willing.  It's a good
principle to have rotation, but a pity to lose willing and experienced talent.  But six years is enough.

| As membership of "the Haskell community" is not well-defined, and voting
| would potentially be open to abuse if anyone were able to vote, we
| propose that the committee should choose their replacements from open
| nominations.

I agree with the problem, and I think your proposed solution may do for now, but it's obviously not a robust
solution.  I trust you five, but in three years time you may all have stood down!

A possible solution would be to have an "electoral college" of people entitled to vote. It should be easy to
become a member of the college: any track record of contributions to the Haskell community, including
constructive contributions to Haskell Cafe, would be enough.  Then the college can elect the committee.

It's debatable whether this is worth the bother at this point.  Maybe it would be enough to document on the
committee page that we don't regard the nomination process as robust, and if any concern arises we will
consider something more substantial.

Simon

Gmane