- Wikipedia: Noctis (Web page)
- Noctis - Official site (Web page)
- Proteus - early prototype screenshots (Blog post)
- Gamasutra: The Making of Elite (Video)
- The Brilliance of Dwarf Fortress
- Interview with Tarn Adams (creator of Dwarf Fortress) (Slides) (Video)
{-# LANGUAGE OverloadedStrings #-} | |
-- | | |
-- author: Alexander V Vershilov <[email protected]> | |
-- | |
-- Module provides simple and extensible paginator widget that doesn't make any | |
-- assumptions on Route structure or type of page handling and doesn't load entities | |
-- that are not needed. | |
-- | |
-- Basic usage | |
-- |
You are now getting to a point where you know you want to get a copy of an EVP_PKEY
for one reason or another, not that it matters much why, you just need it.
So you start looking for a way to duplicate it, there has to be a function for it, right? You come across EVP_PKEY_CTX_dup
, so you make the assumption that EVP_PKEY_dup
should probably exist too ... well you'd be wrong. You come across this message on the OpenSSL mailling list: http://www.mail-archive.com/[email protected]/msg17608.html and the next follow-up says to just up the reference count, or RSA_dup()
and copy it into the new EVP_PKEY
... except RSA_dup()
doesn't exist either.
No real solutions come out of that email thread. No deep copies seem to be possible, well until you simply consider converting it from an EVP_PKEY
format to PEM/DER and then back to an EVP_PKEY
.
So, in that case all that is left is to encode it to PEM/DER and then decode it from PEM/DER.
// Create new memory BIO
BIO* tbio = BIO_new(BIO_s_
# Install a local copy of Hoogle (OS X 10.10, GHC 7.10.1) | |
# Download | |
cd | |
cabal unpack hoogle | |
cd hoogle-4.2.40/ | |
# Use a sandbox | |
cabal sandbox init |
At DICOM Grid, we recently made the decision to use Haskell for some of our newer projects, mostly small, independent web services. This isn't the first time I've had the opportunity to use Haskell at work - I had previously used Haskell to write tools to automate some processes like generation of documentation for TypeScript code - but this is the first time we will be deploying Haskell code into production.
Over the past few months, I have been working on two Haskell services:
- A reimplementation of an existing socket.io service, previously written for NodeJS using TypeScript.
- A new service, which would interact with third-party components using standard data formats from the medical industry.
I will write here mostly about the first project, since it is a self-contained project which provides a good example of the power of Haskell. Moreover, the proces
This blog post series has moved here.
You might also be interested in the 2016 version.
Kris Nuttycombe asks:
I genuinely wish I understood the appeal of unityped languages better. Can someone who really knows both well-typed and unityped explain?
I think the terms well-typed and unityped are a bit of question-begging here (you might as well say good-typed versus bad-typed), so instead I will say statically-typed and dynamically-typed.
I'm going to approach this article using Scala to stand-in for static typing and Python for dynamic typing. I feel like I am credibly proficient both languages: I don't currently write a lot of Python, but I still have affection for the language, and have probably written hundreds of thousands of lines of Python code over the years.
{-# LANGUAGE GeneralizedNewtypeDeriving #-} | |
import Control.Monad.IO.Class | |
import Control.Monad.Trans.Class | |
import Prelude hiding (log) | |
-------------------------------------------------------------------------------- | |
-- The API for cloud files. | |
class Monad m => MonadCloud m where | |
saveFile :: Path -> Bytes -> m () |