Series Spotlight: Monads and Functional Structures!
Monday Morning Haskell Blog
by James Bowen
3d ago
Every so often I like to spotlight some of the permanent series you can find on the skills page, which contains over a dozen tutorial series for you to follow! This week I’m highlighting my series on Monads and Functional Structures! Monads are widely understood to be one of the trickier concepts for newcomers to Haskell, since they are very important, very abstract and conceptual, and do not really appear in most mainstream languages. There are a lot of monad tutorials out there on the internet, most of which are either too shallow, or too deep. This series will help you understand the conce ..read more
Visit website
GHC 9.6.1 Includes Javascript Backend
Monday Morning Haskell Blog
by James Bowen
1w ago
Some exciting news this week, as the release of GHC 9.6.1 includes the merger of a couple of different web-based backends - one for Web Assembly and one for Javascript. These features move Haskell in the direction of being a first-class web development language! From the release notes: The WebAssembly backend has been merged. This allows GHC to be built as a cross-compiler that targets wasm32-wasi and compiles Haskell code to self-contained WebAssembly modules that can be executed on a variety of different runtimes. The JavaScript backend has been merged. GHC is now able to be built as a cro ..read more
Visit website
Adding a Database to our AWS Server
Monday Morning Haskell Blog
by James Bowen
3w ago
In the last few articles on the blog, we've been exploring how to launch a Haskell web server using AWS. Here are the steps we've done so far: Create a local Docker Image Upload the Docker Image to ECR Deploy your Server using Elastic Beanstalk In this final part of the series, we're going to learn to attach a database to our application. There are a few gotchas to this. Setting up the database for first time use is a bit tricky, because we have to do some initial migrations. Then we need to use environment variables to ensure it works both locally and on the remote server. Let's get starte ..read more
Visit website
Deploying a Haskell Server to AWS
Monday Morning Haskell Blog
by James Bowen
1M ago
In the last few articles, we've been talking about how to deploy a Haskell application using AWS. This is part 3 of the series. So if you haven't done parts 1 & 2, you should start there so you can follow along! In Part 1, we wrote a Dockerfile and created a local Docker image containing a simple program for a Haskell web server. In the Part 2, we pushed our container image to the AWS container registry (ECR). Notably, this involved creating an AWS account, downloading AWS command line tools and authenticating on the command line. We'll run a couple more of these commands today, so hopefu ..read more
Visit website
Pushing our Container to AWS ECR
Monday Morning Haskell Blog
by James Bowen
1M ago
In the first part of this blog series we saw how to create a local docker image containing a simple web server program. In order to run this server remotely, we have to upload this image somewhere to deploy it. One service that lets us deploy docker images is Amazon Web Services (AWS). In this article, we're going to take the first step, and walk through the process of publishing our container image to the AWS Elastic Container Registry (ECR). Next time around, we'll see how to actually deploy our application using this image. In principle, publishing the image is a simple task. But in my exp ..read more
Visit website
AoC 2022: The End!
Monday Morning Haskell Blog
by James Bowen
1M ago
I've completed the final two video walkthroughs of problems from Advent of Code 2022! You can view them on my YouTube Channel, or find links to all solutions on our summary page. Day 24 is the final graph problem, one that involves a couple clever optimizations. See the video here, or you can read a written summary as well. And last of all, Day 25 introduces us to the concept of balanced quinary. Quinary is a number system like binary or ternary, but in the balanced form, characters range for (-2) to 2 instead of 0 to 4. This final video is on YouTube here, or you can read the write-up. I pro ..read more
Visit website
Creating a Local Docker Image
Monday Morning Haskell Blog
by James Bowen
1M ago
Running a web server locally is easy. Deploying it so other people can use your web application can be challenging. This is especially true with Haskell, since a lot of deployment platforms don't support Haskell natively (unlike say, Python or Javascript). In the past, I've used Heroku for deploying Haskell applications. In fact, in my Practical Haskell and Effectful Haskell courses I walk through how to launch a basic Haskell application on Heroku. Unfortunately, Heroku recently took away its free tier, so I've been looking for other platforms that could potentially fill this gap for small p ..read more
Visit website
What's Next in 2023?
Monday Morning Haskell Blog
by James Bowen
1M ago
To start the year I wrote a few different articles about Chat GPT looking at what it thinks about Haskell. After some extra reflection, my emotional reaction probably matched that of a lot of other programmers. I felt plenty of excitement about the tasks that could become a lot easier using AI tools, but also a twinge of existential panic over the prospect of being replaced as a programmer. This latter feeling was especially acute when I thought about the future of this blog. After all, what's the point of writing a blog post about a topic when someone can type their question into Chat GPT, ge ..read more
Visit website
Advent of Code: Fetching Puzzle Input using the API
Monday Morning Haskell Blog
by James Bowen
1M ago
When solving Advent of Code problems, my first step is always to access the full puzzle input and copy it into a file on my local system. This doesn't actually take very long, but it's still fun to see how we can automate it! In today's article, we'll write some simple Haskell code to make a network request to find this data. We'll write a function that can take a particular year and day (like 2022 Day 5), and save the puzzle input for that day to a file that the rest of our code can use. As a note, there's a complete Advent of Code API that allows you to do much more than access the puzzle i ..read more
Visit website
Advent of Code: Days 19 & 20 Videos
Monday Morning Haskell Blog
by James Bowen
2M ago
You can now find two more Advent of Code videos on our YouTube channel! You can see a summary of all my work on the Advent of Code summary page! Here is the video for Day 19, another difficult graph problem involving efficient use of resources! (The write-up can be found here). And here's the Day 20 video, a tricky problem involving iterated sequences of numbers. You can also read about the problem in our writeup ..read more
Visit website

Follow Monday Morning Haskell Blog on Feedspot

Continue with Google
Continue with Apple
OR