lumensoutdoors.org - Page 3
-
A Month of Haskell, Day 5 - Applicative, Alternative, and Functor - May 9, 2017
And now I’m two days behind. If I can think of something sufficiently quick, I’ll have a bonus day where I do two posts. For now, you’re just going to have to enjoy this one single post about three complementary type classes: Applicative, Alternative, and Functor. The first two are in the Control.Applicative module, while the last is in the Data.Functor module. I’m going to ignore the jargon-heavy definitions of these type classes and skip right to showing how they can be used.
-
A Month of Haskell, Day 4 - hlint - May 5, 2017
I got too busy last night and forgot to write about Haskell, so now day four occurs on the fifth of May. These things happen. Today I wanted to talk about something much quicker than the last installment. As you may remember from day 3 one of the many programs we installed was hlint. We made it work with the editor, but it’s easy to run it on its own.
-
A Month of Haskell, Day 3 - vim configuration - May 3, 2017
My favorite text editor is vim. While there are certainly better IDEs out there, vim is great at editing text and can be turned into a reasonable IDE with enough plugins and helper programs. It also has the advantage of being a text-based program that can easily be run over an ssh session.
This post is about how you can configure vim to be a better IDE for Haskell. There are a ton of other documents out there explaining this very thing, including an excellent one from Stephen Diehl. I’ve borrowed from him a bit, but made a lot of my own changes. There are also some projects up on github that look like you just clone them, install, and they make all the necessary changes. While that sounds fast, I’m not as much of a fan of that because it seems to take over your home directory.
-
A Month of Haskell, Day 2 - Enforcing things with types - May 2, 2017
One of my large Haskell projects is an amateur radio logging program. Part of this program takes data from various sources (a user interface, doing network queries, etc.) and stores them in a database. This data includes callsigns, state, mode (FM, SSB, CW, and so forth), and exchanges during contests. At various points, I want to compare new data to what’s already in the database.
For a long time, I’d been just making sure that before I did any comparison, I uppercased the data. However that is prone to error - if I missed a spot, my comparison would fail. Instead, I could use the type system to enforce the fact that certain pieces of data need to be uppercased before any comparison could take place. That would eliminate any possibility of busted comparisons at compile time. This is exactly the sort of thing Haskell’s type system is great at doing.
-
A Month of Haskell, Day 1 - Control.Conditional - May 1, 2017
In the spirit of 24 Days of GHC Extensions and 24 Days of Hackage I thought i would start my own series of posts on useful things about the Haskell programming language. While I am a big fan of the language, I have some complaints about the documentation. It tends to either be non-existent, written for someone who is alredy an expert with the language, or assumes familiarity with advanced mathematics.
The internet is littered with dense web pages about bifunctors and covariants and arrows and lifting. I am hoping to explain things that have been useful to me in much more plain language, aimed at someone who is more interested in the programming than the theory. While I am going to assume some familiarity with Haskell, I’m not going to assume you are an expert.
-
Very Snowy February - February 13, 2017
After not really doing much of anything all through January and the beginning of February, I was thinking this would end up being like winter 2016. What little snow we got last winter disappeared between warmups and rain. That’s how this winter started, too. However on February 9 we got a dump of about 15” at home, followed by another 8” or 9” on February 13. In between those two storms, there wasn’t enough time to get out and do anything big but I was able to spend some time in parks near my house. Here’s some quick cell phone pictures.
-
January VHF Contest Results - January 23, 2017
This past weekend was the January VHF contest. WA1TE and I operated as K1SIG from my house. I knew it isn’t a very good location for VHF operations, but we were out of options and it’s hard to be a rover in New England in the winter. We’d operated in the January 2016 contest so I knew what to expect - lots of slow periods, little help from propagation, and very long distance contacts at all. I therefore set my expectations low, hoping only to beat our previous score of 1222.
-
January VHF Contest - January 18, 2017
This weekend, January 21 and 22, WA1TE and I will be operating in the January VHF contest under the call sign of K1SIG. I’ll be operating on 6m, he’ll be operating on 2m, and we’ll likely be taking turns manning the 1.25m and 70cm station. We’ve got some reasonable beams on all those bands and reasonable power on 6m and 2m. With any luck, we’ll have an amp running on one of the other two.
We’ll be operating from my house, which is a poor location, but we are still hopeful to make a lot of contacts. My goal is to beat our previous January score of 1222 points, which should not be too difficult. If you hear us calling, please respond. We will primarily be on SSB but can probably limp through some CW contacts and hopefully some meteor scatter in the evenings.
-
My SOTA Gear - November 3, 2016
I’ve spent the entire year hiking around with my radio participating in Summits on the Air. For the most part it’s been using a little handheld radio with a handheld antenna, but I’ve recently had enough success on HF to be encouraged by the gear I’m using. I thought it might be interesting for other people to see exactly what gear I am carrying with me. And since I spend a lot of time working on lightening my backpacking load, it would be interesting to see how much all this stuff weighs too.
-
Finishing the New England 4000ers - October 16, 2016
On October 15, I headed north to Sugarloaf one more time with Sarah and Rik to finish off the New England 4000ers. I had only three left - Abraham, Spaulding, and Sugarloaf - and they’re all along one ridge so it made sense to do them as one hike. Sarah came along to help with the logistics. I had her drop Rik and me off at the Firewarden’s trailhead and we would then just hike all the way back to the Sugarloaf Mountain Hotel. That would save us having to do any weird out and back stuff.