Înapoi la articole →

Cel mai recent articol

Ultima verificare

Urmăritori 0 urmăritori
Articole: 192
  1. Reflex FRP gallery editor

    When I post a series of photos to a personal blog I find myself editing HTML in Vim and switching back and forth to a browser to see if I have written comments in the right places and ordered the photos correctly.

  2. Monadic Yesod form with ReCAPTCHA

    Applicative forms in Yesod are nifty but they don’t let you customise layout, CSS, and so on.

  3. Structured logging

    2024-03-13 These days we have an excellent ecosystem with Grafana Loki, Promtail, Tempo, and friends Up until now I have used basic log files of strings for applications that I have developed.

  4. Zippers

    This note about zippers follows Backtracking Iterators (Jean-Christophe Filliâtre).

  5. MINC interfaces in Nipype

    About two years ago I wrote volgenmodel-nipype, a port of Andrew Janke’s volgenmodel to the Nipype workflow system.

  6. Note to self: profunctors

    Note to self about deriving the Profunctor typeclass.

  7. MVar note

    A short note about using MVars in Haskell.

  8. Yesod 1.1 to 1.4 notes

    This blog runs on a barebones blogging framework that I knocked together using Yesod 1.1 back in 2013.

  9. Yesod 1.4 cabal sandbox

    Here’s a cabal sandbox config file that pins all the package versions required to get Yesod 1.4 to build.

  10. (7 January 2017: some updates, see end of the post.)

  11. Classy mtl

    This post has a minimal stand-alone example of the classy lenses and prisms from George Wilson’s talk about mtl.

  12. Lens Has/As for API changes

    Tinkering with lenses to deal with API changes.

  13. Update Github fork

    Situation: Repo on Github that I want to contribute to: https://github.com/whoever/whatever.git My fork of that repo on github: git@github.com:myself/whatever.git Over time the upstream repo is updated but my fork on github does not automatically get those

  14. I had a DCMTK DICOM server running with the command storescp -p 7000 -v --fork -fe '.IMA' --sort-on-study-uid 'my_prefix' One of our Siemens instruments couldn’t push some files to the DCMTK server, so I tried to send the files manually using storescu: p…

  15. Note to self on catching exceptions in multithreaded Haskell code.

  16. Note to self: parallel-io

    A short note about using parallel-io to run shell commands in parallel from Haskell.

  17. Heart MRI

    One perk of working at the Centre for Advanced Imaging is that I get to be a guinea pig on the new 7T MRI scanner.

  18. Nginx gateway time-out

    Occasionally I get a “504 Gateway Time-out” from nginx in conjunction with php-fastcgi.

  19. Circus problem

    A coding-challenge kind of question, and a short foray into QuickCheck.

  20. Note on mapM

    Note to self about mapM.

  21. Free SSH daemon on Android

    In the past I have used SSHDroid to ssh into my phone.

  22. 2024-03-13: the github repository for this no longer exists and the code sample below is missing some lines. 😞 For some time I’ve used this little utility to run a command with parameters and return stdout if the command exited successfully, or stdout and…

  23. Following up from a previous blog post, here is how to verify a JWT blob in the context of a Yesod site, using Fraser Tweedale’s hs-jwt package: http://gist-it.appspot.com/github/carlohamalainen/rapid-connect-yesod-demo/blob/jose-and-hs-jwt/Handler/AuthJw…

  24. Haskell Yesod AAF Rapid Connect demo

    Federated identity authorisation is all the rage in the academic environment at the moment, and with good reason.

  25. I enjoyed this video on the Y combinator: Jim Weirich: Adventures in Functional Programming from Cultivate

  26. Notes on free monads

    These are my personal notes on David Laing’s talk Free monads are good for you - BFPG - 2014-04-22.

  27. Microsoft "blocked using Blocklist1"

    I’ve been running my own mail host for a while now on an Amazon EC2 instance and haven’t had any problems, but recently some mail bounced from a user whose organisation has hosted email with Microsoft Office365.

  28. Boy with cat 2

    I saw this in a gallery in Canberra a few years ago.

  29. Type-safe options in Idris

    Inspiration for this blog post came from my work on volgenmodel-nipype, a neuroimaging workflow written using Nipype.

  30. Defunctionalization

    Why are programs written in Java so verbose?

  31. FunctionalDependencies

    Suppose we have two datatypes, OptBool and OptFile for storing boolean and file path options.

  32. Note to self: solving a dynamic programming problem using löb.

  33. On Debian Jessie my Skype audio had a horrible crackle and the microphone on my USB headset seemed to be at a very low level (barely audible on the test call).

  34. Note to self: ffmpeg low quality.

    Sometimes high quality video files (e.g. mkv) don’t play on my HP Mini Netbook, so here is an ffmpeg command to rescale the video to lower quality: opts='-qscale 5 -r 25 -ar 44100 -ab 96 -s 500x374' ffmpeg -y -i infile.mkv ${opts} outfile.mp4

  35. Note to self on constructing a monad transformer.

  36. Cabal hell workaround

    Note: cabal now includes the freeze command, i.e. cabal freeze and there is also Stack, so this post is now deprecated.

  37. ipywidgets demo

    This example has bitrotted – see the Bokeh slider instead.

  38. volgenmodel-nipype v1.0

    Here is my latest project: https://github.com/carlohamalainen/volgenmodel-nipype.

  39. Recently on haskell-cafe I asked if there is an easy way to get the Haddock documentation url for a given identifier in Haskell.

  40. Applicatives compose, monads do not

    Introduction Link to heading Make sense of this: “applicatives compose, monads do not.”

  41. note to self: löb and möb

    Working through the detail of Löb and möb: strange loops in Haskell and the related discussion on reddit.com/r/haskell, in particular psygnisfive’s comment.

  42. Tic-tac-toe and Haskell type classes

    (Literate Haskell source for this post is here: https://github.com/carlohamalainen/playground/tree/master/haskell/tic_tac_toe.)

  43. Debian Wheezy on X1 Carbon

    This would be a chef/puppet recipe if I had to do this kind of installation more frequently.

  44. Cheap standing desk

    Is sitting all day in front of a computer ok as long as you exercise for an hour or two every day?

  45. When installing pyinterval on my Debian Wheezy system via pip install pyinterval I hit this: /usr/bin/ld: /usr/local/lib/libcrlibm.a(crlibm_private.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile…

  46. Disable X1 Carbon touchscreen

    My Lenovo X1 Carbon has a touchscreen but I rarely use it.

  47. Strip Android Kindle DRM

    I bought an ebook from Amazon using their Android Kindle app.

  48. Access to water is a human right?

    Here’s an interesting video by the Nestle CEO, talking about access to water: (Lost the link in a blog migration) Transcript of the subtitles from 2:01 to 3:34 (thanks to AP): There's that lovely old Austrian folk song "The dear cattle need water, holler…

  49. Social feature creep

    Back in 2006 I got a gmail account.

  50. New Yesod blog

    I’ve ditched my old WordPress blog in favour of a blog system that I wrote myself using Yesod.