Today's Progress: Setting up debugging TypeScript Jest tests in VS Code is a ?@$%&*! nightmare pure joy. I feel a blog post coming on. Worked on my Ultimate-Tic-Tac-Toe AI bot for codingame.com.
Thoughts Nothing to report.
Today's Progress: Have you ever implemented a Monte Carlo Tree Search algorithm? Don't! I have, and now I'm left with an uncontrollable twitch in my right eye. But seriously, it's a lot of fun, if not exactly trivial. Yes, I'm still working on my Ultimate-Tic-Tac-Toe AI bot for codingame.com.
Thoughts Nothing to report.
Today's Progress: Worked on my Ultimate-Tic-Tac-Toe AI bot for codingame.com. Bitboards and bitmasks are the shiz. Of course, my code is now an incomprehensible mess...
Thoughts Nothing to report.
Today's Progress: Worked on the Beer Song and Say exercises on exercism.io. Also worked on optimizing my Ultimate-Tic-Tac-Toe AI bot for codingame.com.
Thoughts Nothing to report.
Today's Progress: Worked on the Proverb and House exercises on exercism.io. That's enough creepy nursury rhymes for one day.
Thoughts Nothing to report.
Today's Progress: Worked on the Matrix and ISBN Verifier exercises on exercism.io. I close my eyes and still see Regular Expressions.
Thoughts Nothing to report.
Today's Progress: Worked on implementing a Variable Length Quantity encoder and decoder. I think I've used bitwise operators more today than I did in all of the past 3 years.
Thoughts Nothing to report.
Today's Progress: Worked on solutions to different exercise on exercism.io, but mainly spent some time getting familiar with Blazor and Blazor-State.
Thoughts Nothing to report.
Today's Progress: Worked on solutions to the Two Bucket exercise on exercism.io.
Thoughts Nothing to report.
Today's Progress: Worked on solutions to the Phone Number and Largest Series Product exercises on exercism.io. TIL that you can implement a [Symbol.iterator] function as a generator function, saving you the trouble of returning an object that conforms to the iterator protocol.
Thoughts Nothing to report.
Today's Progress: Worked on solutions to the Acronym and Anagram exercises on exercism.io.
Thoughts Nothing to report.
Today's Progress: Implemented game end mechanics in my 7 Wonders game engine and tried (and probably failed) to decouple my backend from my frontend code using interfaces and dependency injection.
Thoughts Nothing to report.
Today's Progress: Worked on solutions to the Isogram, Roman Numerals and Series exercises on exercism.io.
Thoughts I coded about an hour every day between July 10 and 14 but I forgot to log and Tweet.
Today's Progress: Finally got my random Pareto number generator visualization working. Refactored my solution to the Pig Latin exercise on exercism.io and implemented a Victory Points Counter class in my 7 Wonders game engine.
Thoughts Nothing to report.
Today's Progress: Looked into generating bounded random Pareto numbers, couldn't get it to work. Refactored my solution to the Pangram exercise, and worked on a solution to the Twelve Days and Pig Latin exercises, on exercism.io.
Thoughts Nothing to report.
Today's Progress: Implemented dicarding and earning coins in my 7 Wonders game engine. Also played around with visualizing random number generation with a normal distribution.
Thoughts Nothing to report.
Today's Progress: My 7 Wonders game engine now has the mechanism in place to step through turns and ages. Next up: discarding and earning coins.
Thoughts Nothing to report.
Today's Progress: Played around with Perlin Noise some more.
Thoughts Nothing to report.
Today's Progress: Played with Perlin Noise.
Thoughts Nothing to report.
Today's Progress: Had fun visualizing the randomness of Math.random using the HTML Canvas.
Thoughts Nothing to report.
Today's Progress: Worked on implementing a card deck shuffler using the Fisher–Yates algorithm.
Thoughts Nothing to report.
Today's Progress: Implemented functions to generate Wonder cards and Constructions cards in my 7 Wonders game engine.
Thoughts Nothing to report.
Today's Progress: Worked on a .CSV parser to get card data into my 7 Wonders game engine. Refactored my solution to the "Bob" exercise on exercism.io.
Thoughts I've been thinking alot about how to find the right level of abstraction when solving problems with code. Easier said then done. Striking a balance between pragmatism, meaningfulness, readability and reusability is not easy.
Today's Progress: Worked on AI player name generation and player supplied name validation for my 7 Wonders game engine.
Thoughts My head is empty.
Today's Progress: Found an excel file on boardgamegeek.com with all of 7 Wonders's cards' charateristics. Converted those to CSVs to use in my 7 Wonders game engine. Probably saved myself a few hours of work. Started implementing the game setup phase.
Thoughts I've been learning a lot live coding on Twitch and interacting with other devs. Makes me realize that I would probably grow much faster as a developer if I worked as part of a team for a while.
Today's Progress: Started work on a 7 Wonders game engine in Node.js. Had a great time on Twitch and got some good pointers from #sleeplessbytes and others.
Thoughts There is so much I have yet to learn but it's interesting how it seems to get easier and easier to take on new knowledge and concepts. The more I learn, the easier it is to learn.
Today's Progress: Optimized the remove and search methods of the Binary Search Tree in my collections library.
Thoughts I often end up coding in the morning and then again in the evening. Having to take 10 minutes every night to log my activity and post to Twitter is kind of a drag. Maybe I should just log after my morning sessions and include what I did in the PM the previous day.
Today's Progress: Optimized the insertion method of the Binary Search Tree in my collections library.
Thoughts Logging my activity everyday and posting it to Twitter is starting to feel like a chore. I'm trying to make my logs and posts interesting and it takes me too long to do. Going forward, I won't worry too much about because otherwise I'll find my self resenting it.
Today's Progress: Implemented the deletion algorithm for my binary search tree class. A little more complex than I thought, especially for nodes with 2 children, but it works like a charm.
Thoughts As I'm now seriously thinking about applying for programming job I find myself wondering what kind of projects I should pursue in order to showcase my abilities.
Today's Progress: Started implementing the Binary Search Tree class. I got the insertion method done. Implemented a Comparable
interface to make it flexible.
Thoughts Last day of the long weekend and frankly I can't wait to get back to my routine.
Today's Progress: Decided to make my generic binary tree class into an abstract class. Binary search tree implementations will extend it. Found this cool visualization library. Looking forward to trying it to visualize the inner working of my data structures.
Thoughts Sooooooo tiiiiiiiirrrrreeeedd!!!
Today's Progress: Took a step back from WAVL trees and decided to implement a generic binary tree.
Thoughts I know I've said this before but this weekend really showed me that context switching sucks. It feels like coding for only an hour is almost like not coding at all. So I coded for two and half hours and went to bed late. Tomorrow morning is going to be painful.
Today's Progress: Toyed with WAVL tree implementation.
Thoughts Barely got my hour of code in today... but I did.
Today's Progress: After some further performance testing and research, decided it would be worth implementing a SortedMap and SortedSet backed by a binary search tree. They don't beat a hash table for sets and gets but they allow for more efficient range queries.
Thoughts I have a three day conference coming up and it's going to be a real challenge to get my coding in.
Today's Progress: Tested performance of SortedMap vs JS built-in Map. I was thinking of maybe implementing a SortedMap using a binary search tree but when I compared other JS implementations against the buil-in Map it didn't look like there was any advantage to do that.
Thoughts Nothing much to say here today.
Today's Progress: Implemented Stack and Queue data structures in my Collections library.
Thoughts Considered implementing a Linked List but I don't really think there is a use case for it in JavaScript seeing how most popular JavaScript engines have super optimized the built-in Array.
Today's Progress: Completed the Pythagorean Triplet exercise on exercism.io.
Thoughts Took the day off yesterday. Needed a mental break. Spent some time with friends and played video games.
Today's Progress: Added a generic Collection interface and abstract class to my helper functions.
Thoughts Didn't have much time to code today.
Today's Progress: Solved the Sum of Multiples and Grains exercises on exercism.io.
Thoughts Solved Grains using recursiveness and the with math. Recursive functions are cool, but not the most performant.
Today's Progress: Solved the Luhn and Complex Numbers exercises on exercism.io.
Thoughts Complex numbers are indeed complex. Thanks to Khan Academy for helping me understand them a little better.
Today's Progress: Solved the Perfect Numbers exercise on exercism.io. Worked through chapter 12 of Bob Nystrom's excellent book Crafting Interpreters and the interpreter now works with Classes.
Thoughts The debugger is like magic. It's amazing how you freeze time and travel through your code at your own pace while examining the program's state every step of the way.
Today's Progress: Worked on the Last Crusade - Ep2 puzzle on codingame.com. Worked through chapter 11 of Bob Nystrom's excellent book Crafting Interpreters which introduced a resolver for static scoping but it introduced some bugs and I have yet to figure out where the problem is.
Thoughts Debugging late at night when you're tired is useless... just go to bed, you'll figure it out in the morning.
Today's Progress: Started the Last Crusade - Ep2 puzzle on codingame.com. Worked some more on the interpreter for the Lox programming language described in Bob Nystrom's excellent book Crafting Interpreters. Finished chapter 10 and the interpreter now deals with functions, including closures.
Thoughts Had a bit of a frustrating moment today when I couldn't get Rollup to behave the way I wanted to. JS tooling can be so frustrating sometimes. The lack of convention can be quite problematic at times.
Today's Progress: Worked some more on the interpreter for the Lox programming language described in Bob Nystrom's excellent book Crafting Interpreters. The interpreter now deals with if statements, logical operators, while and for loops.
Thoughts Have I mentioned before how much fun working on a programming language interepreter is? It's fun, so much fun.
Today's Progress: Barely got my hour in today. I beefed up my Array2D class by adding getIndicesDirectionOf() methods. I got the idea while working on the Last Crusade puzzle yesterday.
Thoughts I'm running into a weird problem with Rollup where it throws an error when I import a class from a file that is higher up the hierarchy than the package root directory. Will have to look into this.
Today's Progress: Solved the Last Crusade - Ep1 puzzle on codingame.com. Worked some more on the interpreter for the Lox programming language described in Bob Nystrom's excellent book Crafting Interpreters. The interpreter now deals with statements, assignement and scope.
Thoughts Gosh darnit! It's impossible to have an original idea anymore. I stumbled on this free online book by Bob Nystrom called 'Crafting Interpreters'. The book is relatively new, in fact it's not even quite finished yet. So I got this great idea: I'm going to write an interpreter for the little language he invented for the book (Lox) - I mean, how many people are even going to do that - and then I'm going to write an extension for it in VS Code.
I'm half way done with the interpreter and I'm about to test it on a .lox file - .lox extension made sense but nowhere in the book does he suggest using that extension.
As soon as I create the file, VS Code displays a pop up that says there is an extension that can help with .lox files. At that point I'm thinking 'Oh, there must be some other kind of language or program that uses that extension', so I click on it out of curiosity.... Grrrr!!! someone beat me to it. And looking at the changelog, by about 5 weeks. This is almost depressing.
But I'm not giving up. The guy only did a syntax highlighter, I'm going to double down. That's right dberezin, I see your syntax highlighter and raise you a fullon language server, with autocomplete, error-checking, jump-to-definition etc... and then... a debugger.
Today's Progress: Solved Closest Number puzzle on codingame.com.
Thoughts Enjoyed pair programming with Steve Cramer. It is a learned skill though. At one point I kind of got lost and I guess I didn't communicate that clearly. It made keeping up with the rest of the coding session a bit of a challenge. That's on me. In the future, I'll have to make sure that we put on the brakes if I can't keep up, and not be afraid to look dumb because I'm not 'getting it'.
Today's Progress: Paired program with Steven T. Cramer again on the Closest Number puzzle on codingame.com. Worked some more on the interpreter for the Lox programming language described in Bob Nystrom's excellent book Crafting Interpreters. I'm writing it in TypeScript and it's running in Node.js. I also did a bit of work modifying a Ghost blog template for a local non-profit.
Thoughts I live coded on Twitch for about 1 hour and a half before I realized my mic was muted. I really need to come up with a pre-stream check list.
Today's Progress: Paired program with Steven T. Cramer on the Closest Number puzzle on codingame.com. Started implementing an interpreter for the Lox programming language described in Bob Nystrom's excellent book Crafting Interpreters.
Thoughts Man, writing an interpreter is some next level geek stuff and I love it. Also had a really fun time pair programming today. Must do it again soon.
Today's Progress: Solved the Skynet Revolution - Episode 1 puzzle on codingame.com. Had to debug a problem where the codingame engine would not deal with an iterator properly. Once I converted it to an array, everything worked fine. DO NOT USE ITERATORS IN CODINGAME. Also set up a test database for my Service Reporter project.
Thoughts Live streaming my coding sessions is a lot of fun when I get to engage with other knowledgeable coders.
Today's Progress: Worked on customizing my Ghost blog's template. It uses handlebars which I had never used but was easy enough to figure out thanks to the documentation and the fact that the syntax is very similar to the one used in Angular.
Thoughts Some creative avoidance today. There are a few projects that I have started, and a few that I really should start, that aren't as fun as some of the other stuff I'm working on right now but would probably create more value and I found a way to busy myself with other things. It wasn't a complete waste though, I did write a new blog post.
Today's Progress: Refactored my solution to the 'Space Age' exercise on exercism.io. I used an enum to store some constants that I had spread out in several methods.
Thoughts I think I've said this before but ironically enough, I find it harder to get some coding in on the weekends than during the week. Something to keep in mind when planning my projects. I tend to think that I'll be able to spend a lot of time on my projects on the weekend but invariably I find myself busy with various social engagements and other responsabilities.
Today's Progress: Started the Skynet Revolution - Episode 1 puzzle on codingame.com. It involves graph theory and the breadth first search algorithm. Also worked on making a Array2D class as I have noticed that many of the puzzle I work on involve the use of 2D arrays and I'm getting tired of reimplementing them everytime. The class extends the built-in Array class and adds methods to lookup items immediately adjacent to a given position, in each of cardinal and intercardinal directions.
Thoughts Forgot to log my activity before going to bed. Coding is fun... logging not so much... but I do see the value in doing it.
Today's Progress: Completed the Pangram and Bob exercises on exercism.io. Pretty happy with my solutions. Instead of making a map keys representing every letter in the alphabet, I chose to iterate over the ASCII character codes with a for loop.
Thoughts So it's decided. I want to make programming my full time occupation, but I want to work remote. If I'm going to make a career change that involves taking a salary cut, I atleast want to have the perk of being able to work from wherever I want.
Today's Progress: Solved the Rearrange string to two numbers puzzle on codingame.com.
Thoughts I'm seriously starting to think about making a career change and going into programming full time. I love that s***!
Today's Progress: Started work on the Rearrange string to two numbers puzzle on codingame.com. Looks simple enough when you read the short description... do not be deceived.
Thoughts I love working on puzzles and algorithms but I find it harder to get motivated to work on some of my app ideas.
Today's Progress: Completed the Seam Carving puzzle on codingame.com. Learned a little about cron jobs while working on my service reporter app.
Thoughts I learned a lot about debugging and the VS Code debugger while working on this puzzle. I feel like I've come out of this a much stronger developper.
Today's Progress: Worked a bit on my service reporter app. Resisted the urge to pull in a front-end framework and instead learned how to use
new URLSearchParams(window.location.search)
to access url query parameters.
Thoughts I hadn't worked on this repo in about 10 days. Context switching really is a b****, it took me longer than I thought it would just to figure out where I had left things and what to do next.
Today's Progress: On the road back from my workation for most of the day. Just had time to do a little bit of debuggind of my Seam Carving algorithm. I also mentored a few exercises on exercism.io.
Thoughts This was the first day that I had to skip live streaming my coding session. I feel empty inside.
Today's Progress: Added the possibility to remove more than one seam at a time to my Seam Carving algorithm. Had to spend some time in the debugger and learned how to use conditional break points.
Thoughts I'm learning to wield the power of the debugger more and more and moving away from console log debugging. It really is a powerful tool and quite enjoyable to use once you start to know what you're doing.
Today's Progress: Made good progress on the Seam Carving algorithm.
Thoughts Received good pointers on how to do TDD with more complex algorithms. One of the reasons I was having a hard time using TDD with this problem is that I started with complex test case inputs. By reducing the complexity of the input, it allowed me to implement the algorithm more gradually. For instance, instead of using a 100 pixels by 100 pixels image as input, I started with a 1 pixel by 1 pixel, and then 2 pixel by 1 pixel etc.
Today's Progress: Worked on the Seam Carving algorithm.
Thoughts Today was hard. A lot of context switching and I couldn't figure out how to write some of my code using TDD. Spend two hours coding and not much to show for it. Very frustrating.
Today's Progress: So excited about this new puzzle on codingame.com. I have started implementing the main algorithm for Seam Carving.
Thoughts Really struggling with TDD. I like the idea and principle of it but I almost always find myself at a point where it seems to make more sense to implement something in a private method, which means I can't test it in isolation. I do the next best thing which is test the public method that calls this private method but it seems like the whole red green refactor cycle gets stretched and I end up writing way too much code before I get to run a passing test. This is even worse when my public method encapsulates an algorithm that is implemented in 4 or 5 different private methods.
Today's Progress: Fooled around with subclassing JS primitives. Also tried my hand at C# today on cyber-dojo.org.
Thoughts Learning C# on cyber-dojo may not be the best idea as it's just a plain text editor. I think I might give it a try in VSCode or Visual Studio instead. Intellisense is a boon for discovering new Types and syntax.
Today's Progress: Completed Mine Field kata. Refactored to use a functional solution with small mapping and reducer functions.
Thoughts Man I love coding, but sometimes I get so frustrated when I have to task switch througout the day. Especially when working on solving more complex problems that involve math and algorithms. I hate having to stop midway picking it back up again later. I feel like I waste so much time reviewing what I had done previously.
Today's Progress: Worked on mine field kata.
Thoughts I have a love-hate relationship with TDD. I like how it drives my design but at the same time I sometimes feel like I end up painting myself into a corner because of it. I too often realize, after working on something for an hour or two, that there is a much better design for what I'm trying to do and it wouldn't be too much work to just scrap my current solution and start from scratch but because of the work I put into building the test suite and the additional work required in building the new one, I stick with the not so great solution.
Today's Progress: Finally completed the solution to 'Bender - Episode 1'.
Thoughts Found myself wondering when to use private vs public and wether or not getters and setters are an anti-pattern. Will have to investigate some more.
Today's Progress: Made really good progress with the 'Bender - Episode 1' today.
Thoughts Live coding on Twitch can be a lot of fun. Especially when fellow coders drop by and interact.
Today's Progress: Set up testing and debugging in VSCode for my codingame projects. F5 baby!!!
Thoughts The debugger in VSCode is truly amazing. Not necessarily the easiest thing to configure when you have special cases like running jest on TypeScript code but still, I'm impressed.
Today's Progress: Worked on the 'Bender - Episode 1' puzzle on codingame.com. Mostly refactoring stuff. Gave up trying to use the State pattern.
Thoughts These past two days have been rough. I get frustrated when I don't have enough time to code and I hate having to stop half way through something. Context switching is a b****.
Today's Progress: Added MongoDB connection and models using Mongoose and Typegoose.
Thoughts Getting my mandatory one hour of coding in is much harder on weekends. Still, pretty happy I haven't missed a day yet.
Today's Progress: Spent 2 and half hours mentoring on exercism.io but I guess that doesn't really count as coding. Started work on a tiny web app for my personal use. Played around with HTML forms and express.js server.
Thoughts Mentoring on exercism.io is a lot of fun. I think I learn as much as I help others doing it.
Today's Progress: Worked on the 'Bender - Episode 1' puzzle on codingame.com. Learned about the state pattern.
Thoughts The State pattern seems strange to me. On the surface it seems to encourage composition, but if you have many, many States that are similar to each other, you'll probably end up using some sort of inheritance hierarchy. Also, the tight coupling between the context and the states and between the states themselves makes me uneasy. I could be wrong, I still have to play with the pattern to fully understand it.
Today's Progress: Solved the 'Order of Succession' puzzle on codingame.com. Got to use a tree data structure and depth first search algorithm. It had been a while. Also wrote up a blog article on the left shift bitwise operator.
Thoughts Writing blog articles really doesn't come easy. I can't help but feel that every subject has already been thoroughly written about. Yet, it does help cement in my mind things I have just learned.
Today's Progress: Solved the 'Bank Robbers' puzzle on codingame.com. Learned that x * 2 ** y === x << y
.
Thoughts It was fun to get reaquainted with permutations and combinations equations. Some of the 'easy' puzzles on codingame.com are not all that easy.
Today's Progress: Solved the 'River I' and 'River II' puzzles on codingame.com. Used a Set
to do some caching and optimise my solution.
Thoughts This was the first time where I really saw a use for JS' relatively new Set
data structure. At first, my solution was doing alot of duplicate computation. I introduced a cache using Set
and dramatically improved my solution's performance.
Today's Progress: Solved the 'Max Rect' puzzle on codingame.com. Ended up using the Hill Climbing algorithm I have been using on another project. Beats having to try to reason with 5 nested loops. Added WebWorker to demo of Macronutrients Optimiser.
Thoughts I really enjoy using these stochastic algorithms to solve problems. They are much more fun to code and use than pure brute force or mathematical algorithms. Why do all this hard worl to try to find the best answer when you can let the computer do the work and find a good enough answer. It's a very pragmatic way of solving problems.
Today's Progress: Built a demo of a small 'app' that uses my Macro Nutrients Optimizer algorithm.
Thoughts Working in pure HTML and TS without a framework was eye opening. We often take for granted what front-end frameworks do for us. I wouldn't want to develop an entire app this way. Still, for very small throwaway projects like this, going vanilla makes sense.
Today's Progress: Added early stopping to the Hill Climbing algorithm used in the Macronutrients optimizer. The algorithm will now stop if a certain time limit has been reached or if a result of a certain presicion has been reached. Also implemented a minimum weight for ingredients to avoid recipes where ingredients were set to 0 grams.
Thoughts The class is starting to get a little to be for my taste, I'm going to have to refactor soon as I keep adding functionality. I'm also going to have to implement some tests, didn't exactly develop this TDD style.
Today's Progress: Worked some more on the optimization problem submitted by @DashBarkHuss. I added the Random Restart meta-algorithm and am quite pleased with the results.
Thoughts Algorithms are so much fun. I can understand why people would want to work on games instead of web apps. I often feen like they are mostly about CRUD operations and very little interesting business logic. Tomorrow, I'll implement Stochastic Hill-Climbing instead of Steepest Ascent Hill Climbing, which is what I'm using at the moment, and see if it'll improve the results even more.
Today's Progress: Worked on solving an optimization problem for @DashBarkHuss and the 'Robbery Optimisation' puzzle on codingame.com. Refreshed my understanding of the Hill Climbing algorithm.
Thoughts Both problems were a bit harder to solve than I initally thought. Sometimes you need to take a step back and really think things through. Watching me do a lot of thinking out loud and very little coding probably didn't make for the most interesting live coding session on Twitch.
Today's Progress: Worked through the 'Hamming', 'Scrabble Score' and 'Space Age' exercises on exercism.io.
Thoughts 'Scrabble Score' was interesting. It was the first time I got to use a Map with keys of type Array.
Today's Progress: Finished the 'Allergies', 'Raindrops' and 'ETL' exercises on exercism.io. Finished work on xmentor CLI.
Thoughts The 'Allergies' exercise was the first time I had to use a bitmask and bitwise operations. I'm glad I got to learn about it because I can see myself reaching for this in the future. Thanks to gluegun I think making CLI tools has the dangerous potential of becoming like a drug to me.
Today's Progress: Worked through the 'Protein translation', 'Nucleotide count' and started the 'Allergies' exercises on exercism.io. Started working on a CLI to automatically download and run tests on student exercises on exercism.io. I call it xmentor for now.
Thoughts I had fun working on these relatively simple exercises. I ended learning about TS index signatures. Making CLI tools is a lot of fun. I just love automating stuff.
Today's Progress: Made a mockup of QTsum, a Quentin Tarantino themed placeholder text generator inspired by Jeffsum and started writing the html and css.
Thoughts I need to get better at CSS. It's the only tech where I seem to have a hard time remembering what does what. There's just so many options.
Today's Progress: Refactored the new
command in Vts-CLI's using the Chain of Responsibility pattern.
Thoughts Implementing the CoR pattern was fun and I learned a lot. Hesitated between CoR and Builder pattern. Time will tell if I made the right choice.
Today's Progress: Solved the LUMEN puzzle on codingame.com. Refactored some of Vts-CLI's code.
Thoughts Got a little lazy with the refactoring, but all in all I'm pleased with the solution I have used for this puzzle. Recursion for the win!
Today's Progress: Started working on the LUMEN puzzle on codingame.com. Pushed version 1.1.0 of Vts-CLI to NPM. Added the option to setup a web project using parcel as a bundler.
Thoughts Ran into some weird problems with the way Rollup seemed to output my TS code. Will have to look into that.
Today's Progress: Solved the 'Ghost Legs' puzzle on codingame.com. Polished my Vts CLI project and published it on NPM (vts-cli).
Thoughts An interesting puzzle to solze. It took me awhile to wrap my head around the problem space but once I figured a strategy to solve the problem it was relatively easy to solve. Spent almost 20 minutes refactoring afterwards to make it more readable.
I used Gluegun to make the CLI tool and it was a real pleasure to use. Very easy to learn and quite powerful. I'm looking forward to automating alot of stuff with this little tool.
Today's Progress: I've gone through the 'RNA Transcription' exercise on the Typescript track on exercism.io. I've also worked on creating a small cli tool to generate Vanilla Typescript library starter code.
Thoughts The 'RNA Transcription' was a fun exercise. Though the problem was relatively easy to solve it gave me the opportunity to use some language features like enum
and type
that I haven't used much in the past.
I'm almost done with the first version of my cli tool. I'll add a bit of polish, refactor the code and then it'll be ready to publish to NPM.
Today's Progress: I've gone through the 'reverse string', 'triangle' and 'collatz conjecture' exercises on the Typescript track on exercism.io.
Thoughts It feels nice to start a new challenge that will get me coding everyday. The fact that I'm logging everything on Github and stream on Twitch is great for accountability.