I keep forgetting how to upload a package to Hackage:
- Update the
version
stanza of the package's.cabal
file. - Run
cabal sdist
- Instead of
cabal upload
, use the Candidate upload page and then "publish" the candidate.
{-# LANGUAGE OverloadedStrings #-} | |
------------------------------------------------------------------------------ | |
-- | This example shows 'rawHttpServe', which use "raw" handlers, instead of | |
-- 'Snap' handlers. | |
-- | |
-- (It is built using the "commandline" branch from the `snap-server` | |
-- repository.) | |
-- | |
-- 'ServerConfig' is a record containing logging functions, users hooks and | |
-- some low-level HTTP server options. |
I keep forgetting how to upload a package to Hackage:
version
stanza of the package's .cabal
file.cabal sdist
cabal upload
, use the Candidate upload page and then "publish" the candidate.$ traceroute host-1.codabox.com
traceroute to host-1.codabox.com (77.73.100.231), 30 hops max, 60 byte packets
1 * * *
2 gra-g1-a9.fr.eu (178.33.103.225) 0.806 ms 0.812 ms 0.805 ms
3 gsw-1-a9.fr.eu (94.23.122.85) 4.473 ms 4.479 ms 4.492 ms
4 * * *
5 te0-11-0-29.ccr42.par01.atlas.cogentco.com (154.54.61.221) 5.543 ms te0-1-0-14.ccr41.par01.atlas.cogentco.com (130.117.1.205) 5.684 ms 5.732 ms
6 be2044.agr21.par01.atlas.cogentco.com (130.117.51.78) 6.243 ms be2140.agr21.par01.atlas.cogentco.com (130.117.51.82) 5.294 ms 5.497 ms
7 be2137.rcr21.bru01.atlas.cogentco.com (154.54.38.70) 11.582 ms 11.343 ms 11.407 ms
I hereby claim:
To claim this, I am signing this object:
Mostly read http://blog.davidelner.com/dual-booting-ubuntu-14-10-on-the-surface-pro-3/.
I couldn't resize the Window partition as much as I wanted (I think I had a pesky "system volume information" that couldn't be moved around). I performed a reinstall and could reduce the partition further.
I've copied the Marvell wifi driver (actually only the usb8801_uapsta.bin
and sd8801_uapsta.bin
were missing on my surface), and indeed the wifi performed much better.
I've copied the X.org configuration (but didn't need to change the kernel as Ubuntu 15.04 has already a 3.19 kernel) and the touch pad works.
At first I haven't manage yet to do what I want. In this thread, there is a solution: http://mail.haskell.org/pipermail/haskell-cafe/2015-April/119021.html for the dynamic case. See below for the complete rootfs I use (similar thus to https://github.com/snoyberg/haskell-scratch).
We want a minimal Docker image with the following program.
> cat Example.hs
main = putStrLn "Hello, world."
Often you will see Git repositories with a top-level Dockerfile. Normally this is all nice and good. Still, when you do docker build -t image .
, the whole current directory is the build context and is thus uploaded to the docker daemon. If you happen for instance to create test data (e.g. a few hundreds of megabytes of random data) in you current directory (possibly in a sub-directory), they will end up in the build context even if they are not referenced by the Dockerfile, wasting bandwidth and time.
Similar to the previous tip, as Docker will try to upload everything in the current directory, if it finds a file that it can't read, the upload will be abruplty interrupted. You'll see something like:
The different ways a service price can be structured will put pressure on the business owner to develop and improve that service in different directions. It will also put pressure on the customers to use the service in different ways. In some case the pressure is even such that the business will try to degrade the service, instead of improving it. For Reesd, I want to make a conscious choice where the created pressure both naturally pushes me to improve the service, and pushes the customers to make the right technical decisions.
You want to make money with a SaaS business. But you need an idea. Well, you don't.
You want to make a lot of money, so you'd better prepare for it. For instance, be ready to accept payments, and store and deliver invoices. But you want to really make a lot of money, right ? So you develop a scalable application to deal with that load of payments and invoices. And since a lot of other businesses have the same needs, you offer your application with a subscription model.
You now have a SaaS and you can continue to offer services that you need yourself. Accepting payments and invoicing was just the beginning. You need backups, so you offer a backup service. You need monitoring, and a status page. You need to send email, you need to deploy updates, you need to host your source code, ... you have a lot of needs, so you can offer a lot.
To start, you identify one of those needs, and you offer a solution, to yourself and also to others.
-- | Horde data types. These data types are serializable using the `safecopy` | |
-- package. Serialization/deserialization should be done with the `safeEncode` | |
-- and `safeDecode` functions. | |
-- | |
-- Using `safecopy`, we can change these data types and migrate already | |
-- serialized data structures. To do so, we change the | |
-- `deriveSafeCopy 1 'extension` (and | |
-- `deriveSafeCopy 0 'base`) to `deriveSafeCopy 2 'extension` (and to | |
-- `deriveSafeCopy 1 'extension`) and provide migrations. | |
-- |