Certain Haskell libraries depend on C library GTK+ or its dependencies (such as Cairo or Pango). The dependencies include zlib, a compression library. On Windows, these libraries can be obtained most easily using MSYS2. The DLL build of zlib is named zlib1.dll. zlib has developed over time and later versions of zlib1.dll export functions that […]
Blog
It’s a kind of magic
Sandy Maguire is working on a book about type-level programming in Haskell with the working title of The Book of Types. It has prompted me to take stock of what I know about kinds. Haskell 2010 Language Report My starting point is the Haskell 2010 Language Report. It explains that the main forms of type […]
Further from the Path
My Path user environment variable includes references to other environment variables, for example (extract):
1 2 3 4 |
C:\> reg query HKEY_CURRENT_USER\Environment /v Path HKEY_CURRENT_USER\Environment PATH REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Microsoft\WindowsApps; |
Suddenly, I was no longer reaching certain locations on the path. I discovered that the references to other environment variables were not being expanded.
1 2 3 |
C:\> set Path Path=%USERPROFILE%\AppData\Local\Microsoft\WindowsApps; |
Somehow, the type of Path in the registry had been changed from REG_EXPAND_SZ to REG_SZ, […]
Grokking monads
It has been said that the world does not need yet another monad tutorial. Hal Daume III’s Yet Another Haskell Tutorial (copyright 2002 to 2006) is available as a Wikibook and there is a featured wikibook on Haskell itself. The November 2008 edition of Real World Haskell by Bryan O’Sullivan, Don Stewart, and John Goerzen […]
Highlighting Haskell
In March 2012, I discovered the Codea app, allowing coding on an iPad, and the Lua programming language, its foundation. That was the unlikely seed for discovering the functional programming language Haskell in late 2013: a Codea discussion mentioned Project Euler and Haskell solutions to its problems. In particular, a one-line solution for Problem 9: […]
Rebuilding a Mac mini
In January 2012, I wanted to learn Apple’s Objective-C programming language, so I bought a basic Mac mini and a book. The Mac was a ‘mid 2011’ model, configured with a 2.3 GHz Intel Core i5 processor, 2 GB of RAM and a 500 GB hard drive. The book was Programming in Objective-C by Stephen […]
Experiments with IIS and PHP
After many years of hand-tooling HTML, I bit the bullet and installed WordPress. That has sparked an interest in PHP, the server-side scripting language. I needed a local copy to experiment with. Turning on IIS First, I needed web server software. The operating system on my PC is currently 64-bit Windows 10 and Windows comes […]
Countdown Mk 2
Summary A three-digit initial state, determined by three 4-position dual inline (DIL) switches, is set by pressing Switch 1 (SW1). Pressing Switch 2 (SW2) starts a count down to zero. When zero is reached, the light emitting diode (LED) lights up. The progress of the count is shown by a three-digit seven-segment liquid crystal display (LCD). This improves […]
POR
Summary The initial state of an SR (set-reset) latch is, in principle, indeterminate. The circuit is a SR (set-reset) latch with a power-on reset (POR), so that the initial state after power-on is determined. Circuit Schematic Transistor T3 is off while capacitor C1 charges through resistor R5. Consequently, the voltage at the collector of T1_L […]
Countdown Mk 1
Summary A three-digit initial state, determined by three 4-position dual inline (DIL) switches, is set by pressing Switch 1 (SW1). Pressing Switch 2 (SW2) starts a count down to zero. When zero is reached, the light emitting diode (LED) lights up. The progress of the count is shown by a three-digit seven-segment liquid crystal display (LCD). […]