Showing posts from 2023

More Performant, Testable Code with Functional Programming. (FP language optional!)

Valve Software , CC BY-SA 4.0 , via Wikimedia Commons Is functional programming worth learning? Functional programming can make code in your favorite language more succinct, testable, performant, and maintainable. (Functional programming language optional!) First, let’s quickly define functional programming (FP): A programming paradigm that avoids mutation and side effects. Notice FP does not require a functional programming language. FP is a way of thinking: you can do FP in your favorite languages like Python, JavaScript, Java, C, etc… (Of course, languages designed for FP make it easier with built-ins like first-class functions and immutable data structures.) So how does avoiding mutation and side-effects improve your code? FP results in more performant code. Functions without side-effects (interactions with external mutable state) are trivial to parallelize. Reading/writing to a global variable results in side-effects. So does all I/O: logging to the

Applying to the Recurse Center: Things I Wish I Knew Beforehand

  The Recurse Center application process is well-documented and implemented well. However there were some undocumented details I wish I had been aware of before applying. These are notes for myself before I re-apply. It may help other hopeful Recursers, too~ Written Application The text area form inputs are automatically linkified. Markdown formatting is not supported and probably better to avoid. You may view/edit your application after submitting. Keep a log of "fascinating things" if you have trouble remembering, like me. (Or pick an "evergreen" thing.) The Conversational Interview Some questions I was not prepared for: Describe a time you had trouble programming. How did you overcome it? What is your greatest programming strength? What is your greatest programming weakness? Describe the ideal fellow Recurse batch member; someone you'd want to pair program with. The Pairing Interview For some reason Zoom screen sharing introduced a lag where there was a sign

UltraWeather (Development of 2021 version)

Quick note: my tech stack of choice has evolved since I wrote this draft in 2021. UltraWeather 2023 will be developed with the following technology: Development/hosting platform: Vercel JS framework: SvelteKit Language: TypeScript Templates: Vanilla HTML Chart library: ChartJS JS package manager: PNPM UltraWeather was originally named HyperWeather after HyperDev, the platform it was developed on. (Now known as  Glitch ). I had a certain way I wanted to see the weather forecast that no weather service provided. Glitch helped me implement my vision by providing: A simple (and free) method of hosting server-side code Motivation with a contest Server-side code was needed to proxy API calls;  DarkSky did not allow direct calls from the browser . So, I figured out how to used the Express server on HyperDev. Along the way, I also discovered some other nifty tech based on the Glitch samples I started with. I renamed HyperWeather to UltraWeather as I ported it to a new platform. “Ultra”