Re: [Haskell-cafe] Re: C functional programming techniques?
On Jan 30, 2010, at 5:26 PM, Maurí cio CA wrote: Do you have some link to an example of such proof by induction of type safety? Not off-hand, but I did just find Atze Dijkstra's Essential Haskell, which covers the type system in depth, and it looks like a good bet for you. http://www.cs.uu.nl/groups/ST/Projects/ehc/ehc-book.pdf The principle is really easy. Since we deal with recursive structures so often, proof by induction boils down to proof by cases. You want to prove type safety for the base cases (the emitters), and prove that your combinators preserve type safety. But that's easy -- we get that for free since your combinators will be plain old Haskell functions. This would have been the induction step of the proof. The principle is pretty simple. Consider the Haskell types: data A = A deriving Show data B = B deriving Show data Pair = Pair { (A, B) } And now let's say we want to turn a Pair into a Haskell function from A to B, as a string. I'm emitting Haskell since I don't know C. ;-) emitPair :: Pair - String emitPair (Pair (a,b)) = pair ++ show a ++ = ++ show b To use this, I would call emitPair from a Haskell source file, with a Pair as an argument, and it would define the function pair in the source file. To prove that emitPair meets the specification, you need to show that it emits the correct grammar. In fact, we can prove that emitPair emits type safe Haskell, in virtue of the fact that it is valid Haskell. Basically, to prove that your C emitters are type safe, you have to ensure that the code they emit is type safe. You might want to create a sort of syntax tree data type to emit from. Or just create data types for each type of thing you want to emit.You can also create emitters that act on monadic values/ actions. That might be a good option. You can hijack bind's semantics to make it concatenate your monadic action representation of a C fragment, and use do notation to write C code. This idea can spiral out of control. The more granular you make the emitters/abstract syntax tree, the more your macro system becomes like a general purpose compiler for your own personal language. Have fun!___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Trapping getChar before echo
Hi, Is there any way of trapping keystrokes in Haskell, modifying them, and then echoing? Basically I want to give the user a prompt like: and then have whatever they type appear in UPPERCASE regardless of whether caps lock was on or not. By default Haskell seems to echo characters in whatever case they were typed. I want to sneak in a toUpper in before the Chars get echoed. Thanks Mark Spezzano ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Strange random choice algorithm
On Jan 31, 2010, at 12:06 AM, Sebastian Fischer wrote: pick xs = do n - randomRIO (1,length xs) return (xs!!(n-1)) would have been clearer.. It queries the random number generator only once but walks through the list twice. Walking through the list twice leads to linear memory requirements because the list cannot be garbage collected during the evaluation of length. If you intend to use this function with very long lists, the original algorithm is preferable. Here is a rewriting: import System.Random (randomRIO) import Control.Monad (foldM) pick (x:xs) = foldM swap x $ zip xs [2..] where swap y (z,n) = do m - randomRIO (1::Integer,n) if m==1 then return z else return y This version of `pick` runs in constant space. Sebastian -- Underestimating the novelty of the future is a time-honored tradition. (D.G.) ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Strange random choice algorithm
On Sat, Jan 30, 2010 at 9:38 PM, Daniel Fischer daniel.is.fisc...@web.de wrote: Also, is there a more direct way of printing an array? Sure, printing immutable arrays: print arr ~ array (lo,hi) [(lo,arr!lo), ... , (hi,arr!hi)] print (assocs arr) ~ [(lo,arr!lo), ... , (hi,arr!hi)] print (elems arr) ~ [(arr!lo), ... , (arr!hi)] Those are all fine. printing IO[U]Arrays: do immArr - freeze arr print (immArr :: [U]Array ix el) do ass - getAssocs arr print ass (getAssocs arr = print) do els - getElems arr print els On the other hand, all those suggestions have a severe efficiency problem due to the IO Monad strictness, for instance (getAssocs arr = print) will start by creating the whole list of associations before printing any of it. More efficient and still better than the initial code would be : mapM_ (readArray arr = print) [1..9] -- Jedaï ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] ANN: Elerea 1.2.3 with some enhancements
Hello all, I added a few new features to the experimental branch of Elerea [1], my little FRP library. The previous release added random sources -- both noise signals and instantaneous values within generators -- using mersenne-random, and the current update added an extra primitive to handle external events that can occur several times between samplings, as I heard some people needed this. All the three variants of the experimental interface support these additions. Here's a simple example showing how the new externalMulti construct can be used: import Control.Monad import FRP.Elerea.Experimental.Simple main = do (gen,sink) - externalMulti sig - start $ do vals - gen cnt - stateful 10 (+1) return (liftM2 (:) cnt vals) let act = print = sig act sink 3 act act sink 8 sink 2 act sink 1 sink 7 sink 9 act act act sink 4 act The program prints the following: [10] [11,3] [12] [13,2,8] [14,9,7,1] [15] [16] [17,4] As you can see, all the input received since the last sampling is collected in a list in reverse order. It is up to the programmer to store these values somewhere or build further IO actions out of them. Gergely [1] http://hackage.haskell.org/package/elerea -- http://www.fastmail.fm - Does exactly what it says on the tin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Trapping getChar before echo
Hi Mark, http://haskell.org/hoogle/?hoogle=set+echo Thanks, Neil On Sun, Jan 31, 2010 at 8:47 AM, Mark Spezzano mark.spezz...@chariot.net.au wrote: Hi, Is there any way of trapping keystrokes in Haskell, modifying them, and then echoing? Basically I want to give the user a prompt like: and then have whatever they type appear in UPPERCASE regardless of whether caps lock was on or not. By default Haskell seems to echo characters in whatever case they were typed. I want to sneak in a toUpper in before the Chars get echoed. Thanks Mark Spezzano ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Trapping getChar before echo
import System.IO import Data.Char main = do hSetEcho stdin False hSetBuffering stdin NoBuffering hSetBuffering stdout NoBuffering scanLine where scanLine = do c - hGetChar stdin putChar . toUpper $ c scanLine Am Sonntag, den 31.01.2010, 19:17 +1030 schrieb Mark Spezzano: Hi, Is there any way of trapping keystrokes in Haskell, modifying them, and then echoing? Basically I want to give the user a prompt like: and then have whatever they type appear in UPPERCASE regardless of whether caps lock was on or not. By default Haskell seems to echo characters in whatever case they were typed. I want to sneak in a toUpper in before the Chars get echoed. Thanks Mark Spezzano ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Trapping getChar before echo
Michael Hartl wrote: import System.IO import Data.Char main = do hSetEcho stdin False hSetBuffering stdin NoBuffering hSetBuffering stdout NoBuffering scanLine where scanLine = do c - hGetChar stdin putChar . toUpper $ c scanLine Last time I tried something like this [on Windows], it didn't seem to work. I wanted to trap arrow keys and so forth, but they seem to be being used for input history. (I.e., pressing the up-arrow produces previously-entered lines of text, and none of this appears to be reaching the Haskell program itself.) Has this changed since I tried it last year? ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] ANN: haskell-src-exts-1.8.0
Fellow Haskelleers, I'm pleased to announce the release of haskell-src-exts-1.8.0! * On hackage: http://hackage.haskell.org/package/haskell-src-exts * Via cabal: cabal install haskell-src-exts * Darcs repo: http://code.haskell.org/haskell-src-exts For users of hsx, the latest version 0.6.1 works unchanged with this release. 1.7.2 -- 1.8.0 === * Add an instance Show Fixity (derived). * Support for the new ANN and INLINE_CONLIKE pragmas. * Remove support for CFILES and INCLUDE pragmas. The support wasn't correct anyway, as it assumed the pragmas appeared at the top of files. As CFILES/INCLUDE pragmas can (and do) appear anywhere, there's no hope to support them in the AST. Better to remove the support altogether. Files with CFILES/INCLUDE pragmas can still be parsed of course, but those pragmas will be handled as comments. * Parsing with ignoreLinePragmas = False now correctly updates the file name. * Allow the whole SPECIALISE/INLINE family of pragmas in instance declarations. The InsInline constructor is removed, and is now represented by 'InsDecl (InlineSig ...)'. * Fix a bug with line numbering and quasi quotes, and a similar one with line numbering and CDATA. * Fix a few minor bugs in the exactPrinter. * Fix the strange handling of so called strings in LINE pragmas. Cheers, /Niklas ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: ANN: haskell-src-exts-1.8.0
1.7.2 -- 1.8.0 === ... and one more I forgot: Export 'knownExtensions' from .Extension. /Niklas ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Linguistic hair-splitting
On Sat, Jan 30, 2010 at 9:33 AM, Conal Elliott co...@conal.net wrote: I don't like this bias toward singling out Monad among all of the type classes, thereby perpetuating the misleading mystique surrounding Monad. If you're going to call [3,5,8] a monadic value, then please give equal time to other type classes by also calling [3,5,8] a functorial value (functorific?), an applicative value, a monoidal value, a foldable value (foldalicious?), a traversable value, a numeric value (see the applicative-numbers package), etc. Similarly when referring to values of other types that happen to be monads as well as other type classes. The thing is, you're not always referring to a concrete value. If you're discussing a value of type [Integer], then sure, you can call it a list of Integer; but what if you're discussing a value of type (Monad m) = m Integer, or even (Monad m) = m a? -- mithrandi, i Ainil en-Balandor, a faer Ambar ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Recursively traversing a data structure with HXT
Hi I am trying to use HXT (8.3.2) for parsing XML. I think an example will clarify what I want to do. I want to parse XML like this: object class=ex1 foo/ foo object class=ex2/ object class=ex3/ /foo object class=ex4/ /object and want to turn it into the following Haskell data structure: data Widget = Widget { cls :: String , children :: [Widget] } The XML above should be turned into: Widget ex1 [Widget ex2 [], Widget ex3 [], Widget ex4 []] That is, I want everything but the object-tags stripped out. And I want to keep the hierarchy of the object-tags. I thus wrote the following program: {-# LANGUAGE Arrows, NoMonomorphismRestriction #-} module Main where import Text.XML.HXT.Arrow data Widget = Widget { cls :: String , children :: [Widget] } deriving Show main = (runX (readDocument [(a_validate,v_0)] test.xrc getObject)) = print getObject = deep (isElem hasName object) proc x - do cls - getAttrValue class- x cs - listA getObject getChildren - x -- recursive call here returnA - Widget cls cs But it do not work as intended. In stead I get the following output: [Widget {cls = ex1, children = []},Widget {cls = ex1, children = []},Widget {cls = ex1, children = []},Widget {cls = ex1, children = []},Widget {cls = ex1, children = []},Widget {cls = ex1, children = []},Widget {cls = ex1, children = []}] Hopefully somebody can point me in the right direction. Greetings, Mads Lindstrøm signature.asc Description: This is a digitally signed message part ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Very imperfect hash function
On Fri, Jan 29, 2010 at 9:26 AM, Hans Aberg hab...@math.su.se wrote: On 29 Jan 2010, at 15:57, John Lato wrote: Are you basically just suggesting to stick everything in an array with the key as an index? You still need to fold the key values onto some interval. Not with a suitably large array ;-) Or are you suggesting an actual hash table? The hash function folds the keys onto an interval. Since you have Int values k, you might just use a mod k n function for that. If it's the latter, I'm not certain where the array fits into the picture. I'm pretty sure I'm missing something here. There is a module Data.HashTable. The array is just to make lookup fast. Like in: ST s (STArray s HashKey (Map Key Value)) I was misunderstanding your intention here. This is an interesting approach, but I would still try an IntMap first. Cheers, John ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Anyone recommend a VPS?
Hi all, I'm working with a client right now on deploying an app. I was wondering if anyone had some recommendations for a Haskell-friendly host. I'm inclined to go with a VPS for this setup, but if there's reliable shared hosting, that would do as well. This client is fairly price-sensitive, so I don't think anything past the $20/month range to start off with. The only other requirement for this project is PostgreSQL. As far as wants: * Linux is preferable * A server that isn't on everyone's spam list would be better. Of course, I can route through an outside e-mail provider, but local would be nicer. * Have room to grow. For now, this is a fairly small app, but the hope of course is for it to expand. Thanks in advance. Michael ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Very imperfect hash function
On 31 Jan 2010, at 20:07, John Lato wrote: Or are you suggesting an actual hash table? The hash function folds the keys onto an interval. Since you have Int values k, you might just use a mod k n function for that. If it's the latter, I'm not certain where the array fits into the picture. I'm pretty sure I'm missing something here. There is a module Data.HashTable. The array is just to make lookup fast. Like in: ST s (STArray s HashKey (Map Key Value)) I was misunderstanding your intention here. This is an interesting approach, but I would still try an IntMap first. A simple hash-function for strings is to simply exclusive-or the bytes and then reduce modulo a prime number, which will be the table size. The average lookup time complexity is the one of the hash table. You can then compare with the IntMap, which may have time complexity O(4), the number of bytes in an Int32. There might be a big difference in the constant factor, though: an array seems to be much faster. I first made multivariate polynomial division using lists, because it is easy to work with, and an example of some stuff built on top took tens of seconds to run in Hugs. When reworking it using STArray (mutable) and Array (immutable), it has no noticeable delay. Though I am using Map and Set, too, the choice of container seems otherwise be dictated by what is most convenient to program. Hans ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Haskell Weekly News: Issue 148 - January 31, 2010
--- Haskell Weekly News http://sequence.complete.org/hwn/20100131 Issue 148 - January 31, 2010 --- Welcome to issue 148 of HWN, a newsletter covering developments in the [1]Haskell community. Hello Haskellers, this week begins with a correction. Last week, I noted a blogpost from one 'Bartek Paczesiowa', I was rapidly informed of the complete wrongness of this citation. In fact, Bartek's last name is, and I hope the Unicode makes it through here, 'wikowsk,' and Paczesiowa is his nickname. Apologies to Bartek, as penance I've reread your [2]excellent post on your blog. That said, this week's HWN if packed full of awesome potential naming errors, so I'll let you get to it. Thus, Haskellers, Your Haskell Weekly News! Announcements haskell-src-exts-1.8.0. Niklas Broberg [3]announced a new release of haskell-src-exts. Elerea 1.2.3 with some enhancements. Patai Gergely [4]announced his addition of some new features to the experimental branch of his FRP library, Elerea. hakyll-1.3. Jasper Van der Jeugt [5]announced the release of hakyll 1.3, including several new improvments and changes. ThreadScope 0.1. Satnam Singh [6]announced the release of Threadscope 0.1, the premier graphical thread profiler. The Monad.Reader Issue 15. Brent Yorgey [7]announced the most recent issue of the Monad.Reader, a monthly publication of Haskell Related expostition and discusson articles. afv-0.1.0. Tom Hawkins [8]announced a afv-0.1.0, an infinite state model checker for verifying assertions about embedded C programs. adaptive-tuple 0.1.0. John Lato [9]announced the initial release of adaptive-tuple, his library for combining the space-efficient properties of tuples with the utility of lists. Job opportunities at Citrix Systems (Cambridge, UK). Matthias Goergens [10]announced a opportunity available at Citrix Systems in Cambridge, UK. Discussion OT: Literature on translation of lambda calculus to combinators. Dusan Kolar [11]asked about texts regarding translating the untyped lambda calculus to a combinator calculus such as SKI or BCKW. Linguistic hair-splitting. Andrew Coppin [12]asked an interesting offtopic linguistic question about what we call a number, a field, an element, and a monad. Adopting hpodder? John Goerzen [13]asked if there were any interested adoptive maintainers for his hpodder project. This is an excellent opportunity for a Haskell Neophyte to help the community and learn about project management hopefully we can find hpodder a new maintainer! Blog noise [14]Haskell news from the [15]blogosphere. Blog posts from people new to the Haskell community are marked with , be sure to welcome them! * Holumbus: [16]HolHac at FH-Wedel. * ++Arch Haskell Team++: [17]Arch Linux updates to GHC 6.12. * Neil Brown: [18]Exploring a Communicating Sequential Processes EDSL. * The GHC Team: [19]Yielding more improvements in parallel performance. Quotes of the Week * Berengal: I'm going to write a module Hmm with a (.) operator in it, so I can go 'Hmm..' in my code * clarkb,: in CS they dont teach you to program...You learn Data Structures, Algorithms, Logic, Discrete Math, Language theory, etc and happen to pick up programming on the way * dons: hey i love core. i dream about unboxes * cale: Differential geometry is the study of manifolds under change of notation. * kmc: the irony being, the abstraction that gets the most complaining and general noise [from imperative programmers] is the one that captures imperative programming * kmc: i am Jack's monad operator * arw: ...and a basic law of haskell is, 50% of all documentation has to be monad tutorials :) * Cale: Here [#haskell], we feed trolls until they explode. * bartek: It took me 2 years of studying teachings of Oleg Kiselyov (who was raised among types, where he learned to speak their language), but finally, I have the solution. * kmc: I think 250 milliolegs is enough to kill an elephant olsner: ... to kill an elephant - in the type system! * syntaxglitch: every time I have a cool idea about something that might work in Haskell, I go check Oleg's stuff and find that 1) he already did it 2) thought it out better 3) did it incidentally while working on something way more interesting * DRMacIver:: I dread to think what category theory would look like after the software engineering world had got their grubby paws on it. Enterprise variant functors. Commutative UML diagrams. About the Haskell Weekly News New editions are posted to [20]the Haskell mailing list as well as to [21
[Haskell-cafe] HWN Issue 148 -- unicode error
Indeed, the Unicode only made it through my system, and not the mailer itself. In fact, the name should look something like Ćwikłowski, and not the garbled mess that made it through. Apologies again, Bartek! /Joe___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Anyone recommend a VPS?
On Jan 31, 2010, at 12:02 PM, Michael Snoyman wrote: I'm working with a client right now on deploying an app. I was wondering if anyone had some recommendations for a Haskell-friendly host. I'm inclined to go with a VPS for this setup, but if there's reliable shared hosting, that would do as well. This client is fairly price-sensitive, so I don't think anything past the $20/month range to start off with. The only other requirement for this project is PostgreSQL. As far as wants: I use Linode, and it seems to meet your needs as stated. Linux of your choice, $20/month, and you can run any software you run. The only tricky issue is that you need to pin your OS's kernel to whatever Linode uses -- you can't just upgrade when your OS distributor updates. I haven't used it for any business projects yet, so I can't really respond to its performance/scalability/enterprise-worthiness. I intend to deploy a small project there soon, but might use Amazon EC2 instead (depending on how much RAM it turns out Happstack really needs...) ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Anyone recommend a VPS?
Michael Snoyman mich...@snoyman.com writes: Hi all, I'm working with a client right now on deploying an app. I was wondering if anyone had some recommendations for a Haskell-friendly host. I'm a happy linode customer: http://www.linode.com/ G -- Gregory Collins g...@gregorycollins.net ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Anyone recommend a VPS?
I'm a happy linode customer: http://www.linode.com/ Me too. I tried different hosting services before. They all have there strength. The linode shell is terrific! If all you want is standard debian or such it does'nt matter. However I tried installing NixOS Linux and I've had lot's of trouble until switching to linode. NixOS was up and running within 30min then.. Marc Weber ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Anyone recommend a VPS?
OK, I guess the unananimous opinion in linode ;). Thanks for the input everyone! Michael On Sun, Jan 31, 2010 at 11:29 PM, Marc Weber marco-owe...@gmx.de wrote: I'm a happy linode customer: http://www.linode.com/ Me too. I tried different hosting services before. They all have there strength. The linode shell is terrific! If all you want is standard debian or such it does'nt matter. However I tried installing NixOS Linux and I've had lot's of trouble until switching to linode. NixOS was up and running within 30min then.. Marc Weber ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Anyone up for Google SoC 2010?
Google has announced that the Summer of Code programme will be running again this year. If haskell.org people would like to take part again this year, then we need volunteers: First, * suggestions for suitable projects (in the past this was organised using a reddit) * an administrator to co-ordinate the application to Google (I have done it for the last three years but am very willing to hand on to someone else) Google will accept applications from organisations in the period 8th - 12th March 2010, approx 1900UTC. If haskell.org is accepted again, students can apply between 29th March - 9th April. More volunteers will be required: * to review student applications and choose which to accept * to supervise the accepted students Both of these roles are called mentor in the Google system. Putting together a good team of mentors before applying as an organisation is helpful towards us being accepted into the programme. Regards, Malcolm ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Anyone up for Google SoC 2010?
malcolm.wallace: Google has announced that the Summer of Code programme will be running again this year. If haskell.org people would like to take part again this year, then we need volunteers: First, * suggestions for suitable projects (in the past this was organised using a reddit) * an administrator to co-ordinate the application to Google (I have done it for the last three years but am very willing to hand on to someone else) Google will accept applications from organisations in the period 8th - 12th March 2010, approx 1900UTC. Here are the top rated Haskell project ideas from reddit: http://www.reddit.com/r/haskell_proposals/top/?t=all Cafe'ers : Please add more! Vote! Comment! -- Don ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Anyone recommend a VPS?
Hi, I'm also a happy linode customer. However, my happstack app eats a lot of memory. I currently have plans to switch to prgmr.com because their hosting plans give you much more RAM / dollar than any other hosting company I've seen ($20 / month for a gig of RAM). On Sun, Jan 31, 2010 at 4:37 PM, Michael Snoyman mich...@snoyman.com wrote: OK, I guess the unananimous opinion in linode ;). Thanks for the input everyone! Michael On Sun, Jan 31, 2010 at 11:29 PM, Marc Weber marco-owe...@gmx.de wrote: I'm a happy linode customer: http://www.linode.com/ Me too. I tried different hosting services before. They all have there strength. The linode shell is terrific! If all you want is standard debian or such it does'nt matter. However I tried installing NixOS Linux and I've had lot's of trouble until switching to linode. NixOS was up and running within 30min then.. Marc Weber ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Anyone recommend a VPS?
On Sun, Jan 31, 2010 at 3:37 PM, Michael Snoyman mich...@snoyman.com wrote: OK, I guess the unananimous opinion in linode ;). Thanks for the input everyone! If it helps make your client even more comfortable: not only do I use Linode for my personal VPS, but we use them at work to host some fairly popular websites. Our sysadmin absolutely loves them to death; he's always raving about how easy our hosting is now since moving there. :-) ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Greencard/c2hs + cabal
I have a problem with integrating cabal with greencard. 1. When I run build it creates: src/Path/To/Module_stub_ffi.c src/Path/To/Module_stub_ffi.h instead of dist/build/Path/To/Module_stub_ffi.c dist/build/Path/To/Module_stub_ffi.h 2. I get the unknown symbols errors for symbols defined in stubs. The problem is that I need to import the macros constants c2hs puts #c/#endc in header which is not compiled (and therefore suffers from the same problems). Is there any way to get the value of macro without having additional c file? Regards ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Anyone recommend a VPS?
I use Webfaction. http://www.webfaction.com/services/hosting It's not a personal vps but you get ssh access and you can run any webserver you want-- even a Haskell one: http://wrwills.webfactional.com/2009/10/30/Haskell-on-a-Webfaction-Host They support Postgres databases too. It's cheaper than a vps (I'm paying $8.50 a month but you can pay as little as $5.50), but possibly not as convenient. -Rob On Sun, Jan 31, 2010 at 11:05 PM, Tom Tobin korp...@korpios.com wrote: On Sun, Jan 31, 2010 at 3:37 PM, Michael Snoyman mich...@snoyman.com wrote: OK, I guess the unananimous opinion in linode ;). Thanks for the input everyone! If it helps make your client even more comfortable: not only do I use Linode for my personal VPS, but we use them at work to host some fairly popular websites. Our sysadmin absolutely loves them to death; he's always raving about how easy our hosting is now since moving there. :-) ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Anyone recommend a VPS?
On Mon, Feb 1, 2010 at 7:08 AM, Robert Wills wrwi...@gmail.com wrote: I use Webfaction. http://www.webfaction.com/services/hosting It's not a personal vps but you get ssh access and you can run any webserver you want-- even a Haskell one: http://wrwills.webfactional.com/2009/10/30/Haskell-on-a-Webfaction-Host They support Postgres databases too. It's cheaper than a vps (I'm paying $8.50 a month but you can pay as little as $5.50), but possibly not as convenient. -Rob On Sun, Jan 31, 2010 at 11:05 PM, Tom Tobin korp...@korpios.com wrote: On Sun, Jan 31, 2010 at 3:37 PM, Michael Snoyman mich...@snoyman.com wrote: OK, I guess the unananimous opinion in linode ;). Thanks for the input everyone! If it helps make your client even more comfortable: not only do I use Linode for my personal VPS, but we use them at work to host some fairly popular websites. Our sysadmin absolutely loves them to death; he's always raving about how easy our hosting is now since moving there. :-) Funny, I use a similar approach for my personal sites when I host them on nearlyfreespeech. My one complaint is that they use FreeBSD instead of Linux; if I found a webhost that let me compile straight from my Arch/Ubuntu box, I'd be very happy. (I'm sure they exist, but now I'm kind of addicted to nearlyfreespeech's cheap pricing...) Thanks for the suggestion. Michael ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe