I’m Mattias Petter Johansson, mpj for short. I’ve been a full-time programmer for over twenty (!) years. Among others, I've worked for Absolut Vodka, Blackberry, Spotify and Mindler.
Seven years ago, as I was beginning my journey in software development, I discovered your channel, and it was incredibly helpful! Two weeks ago, I started preparing for technical interviews and revisited your channel after a long time, feeling a bit sad to see that there hadn't been any new content. But today, I found this video and was thrilled to see that you're back! Can't wait to learn more things from you :)
Hey MPJ, havent seen you since the Holiday party in NYC for Work & Co several years ago. Glad to see you're back at it. I wanted to say your videos have been a huge asset to so many people. I have given your advice on catastrophizing and habitual negative thoughts to team members who were struggling and it has helped them as well. Keep up the awesome job. Missed you! <3
The amount of time saved by my brain trying to figure out how to adapt classes for abstraction. I've just switched back to more of a functional paradigm from OOP, and it's quite refreshing. Composition for the win.
What if they explain Recursion to you with Fibonacci numbers because they are high out of their mind and listening to Tool? Is Murder still the right course of action?
one caveat, having short unreadable code is not always a good idea. x=>x.name doesn't help the person who is going to read the code after you (or future you). it is good for simple cases like shown in the video, but shouldn't be abused
Chef knives are simple useful tools, that are often better than using specialized tools, but there is also the danger that they can be abused for stabbing people in the face
@@funfunfunction HAHAHA! That's a great analogy! 😂😂 I am just saying, that when teaching a kid how to cut a salad, they should be warned of the danger of using a sharp knife, assuming most of the people watching the video are new to programming. Anyway great explanation! ❤
MPJ - I am soo excited you are back! One of my favorite segments or themes of videos were the musings. They really spoke to me; especially when weaving in the mental health aspect and general health activity too. I hope you bring those back but just honestly whatever you do is so wonderful. 🙏🙏
MPJ! Great to have you back. Your work was super helpful and influential for me when I moved to the SF Bay in 2018 to break into tech - I went from writing my first line of code to getting my job as a software engineer in 8 months and when things were really hard to grasp, your videos kept me on path! I also recently had my own hiatus and am in the process of returning to the industry now - its so cool that you're coming back at about the same time as I! Can't wait to see your new content and quirky enthusiasm. Would LOVE to see a remake of that hilarious intro you used to play with coffee getting everywhere, I absolutely loved that.
My son ... I know something like your struggle with guilt and self destruction by mind-slide to depression and below. If I may be so bold, I have some ideas which helped me, and they may speak to you. Trust your state. Your own internal systems have generated this state for neutral reasons, not evil. Your state is telling you a static story of what you need and to fight against it is a clear anti-pattern. If you need to pause and relax with no goals, do it fully with a gentle understanding that that pause is productive. To fight it draws energy from your naturally cyclic journey to other states, like becoming what is easier for you to bless, prodigious outward production of vid and code. Like nightly sleep, sometimes we need extended periods of repose, days not hours, to repair psychic tears and heal bruised soul. Don't feel as th0ugh you owe us anything because you don't. Do not fall under the western practice of self flagellation and demand so much of yourself that you work yourself into psychic paini as you can easily see what a crass liar guilt is. Enjoy to the fullest doing nothing for a spell, and do that to the best o your abilities. It really quite grand to kick your heels up and just ... be ... free.
At 10:18, it looks like a "div" function has been created elsewhere correct? JS doesn't have a built in div(). What's the modern way to create these kinds of html-as-function functions? String template literals? Do you need a tag function? Or are people using libraries for this like Van.js?
@@funfunfunction Thanks! Does solid start / Solid provide HTML DSL/Functions then with things like div() as a function? The solid and solidstart docs seem pretty JSX focused, so I was curious how you personally go about doing your functional html-in-js like the video's pseudocode seems to show, such as the div() shown in the video as a js function not jsx. Could it be Hyperscript? Thanks :)
The bit where you mentioned using typescript as a replacement for task management + doco systems is super interesting to me. Really hoping to hear more on this topic in coming videos. I've gone quite far into this lately. I've built a heap of text-based-interface tools that have basically replaced things like spreadsheets, onenote, task management tools, other markdown notes etc for me. Everything is displayed with lots of ANSI colors in fzf, lots of menus where I only need to tap a single consistent key, which very quickly just becomes unconscious muscle memory... hyper efficient. Most data is actually edited and browsed in a giant Freeplane mindmap. And I have code that extracts everything from it into a postgres DB. And absolutely everything is searchable via my global desktop keyboard launcher, which is a part of this whole cohesive system too. The primary keyboard launcher using fzf not only shows all my "documents" to then launch them when I hit Enter, before that, it literally displays every possible piece of content from any depth down the mindmap / other content source too. If I just want glance at some small piece of info, I don't need to actually to need Enter to launch + goto the document/mindmap/program... it's already displayed on my keyboard launcher screen as I type each letter to filter down. Then I can just hit ALT+SPACE again to hide the launcher window, and never even needed to open whatever program the content is actually in. I never need to remember what system/program some info is stored in, it's all available at any time by just hitting ALT+SPACE on my desktop. Doesn't matter if it's opening a program, searching my main dirs/files, any piece of doco/notes at any depth, looking up definitions of all my SQL tables+views etc, trigger a web search on specific websites (without having to open browser first), or finding any code symbol in my source code (because the vscode search features are so bad they're useless to me). I guess a bit like Notion is many tools built into one, so is my TUI stuff. Difference is, I can search + find anything using fzf in less than 1 second. Good luck doing anything that quickly in a web-based system. And I'm even trying out some stuff where I use typescript's typing system to store notes/data that isn't even consumed at all at runtime. I'm simply using the typing system as a way to structurally store + present data to myself inside vscode alone, while enforcing certain things that can't be done on a simple 2D plane like a spreadsheet. I've never really seen anyone else doing anything along these lines before. I can't imagine going back to dealing with separate note taking programs etc all with their own different + inefficient search interfaces etc. Nor anything that involves 2 steps of searching (i.e. searching for note/document/file title, and then opening that and searching for text inside it). Spent at least 20 years trying to find perfect systems for all this type of stuff. Turns out it was better to just built my own in the end. Even if it incorporates some other software like Freeplane, I can merge it all together with this. One giant revelation I had way too late (only last year) was that being a webdev since the 90s... I had pretty much always built my own systems as web-based. That is super slow, even with decades of experience + reusing things. The amount of stuff I've built over the last year has been insane, because the interfaces are simply all made up from the simple TUI elements of: single-key-tap menus + fzf + ANSI colors + space paddings to display tables in terminals. Once the tooling is built up and re-usable, there's basically zero effort needed to build custom layouts as you would on websites. Oh, and also... for anything that involves editing text, like writing git commit messages etc integrates with both neovim + vscode. Also does stuff like opening JSON logs in vscode etc too. So much easier than having to view/edit this type of stuff in some special limited interface of where ever it came from. Parts of it are GUI or TUI or SQL... which ever is best for the specific feature. This is also the kind of integration you can't easily do with web-based stuff. And I can run as many instances of the TUI parts of my system as I want, very efficiently , as it's just another terminal window. Hard to explain in text like this though. But I've made way more progress on all my systems/control panels on the interface side in the last year than I did in the previous 10. Even if your job is making websites for your clients/work. Don't assume that's the best way to build all the stuff you just use yourself too. For my own personal system interfaces, the only reason I'd go back to making them web-based was if I need to do a lot of stuff with images/video. But even basic display/management of images can be done in terminals, assuming you don't need a complex layout.
It would be interesting if you could generate the audio from the script with AI in your own voice, when it gets to the point that it really can get your mannerisms and affectations down. Though it would probably be terrible any time before then
Yesterday, I rewatched one of your older videos. I had seen it when it first came out and was already familiar with the topic. Yet, fun, passion, and flair-these three elements are consistently present in all your videos. Your joy and genuine enthusiasm are what truly resonate, far beyond the content itself. Just do what you love and only when you feel like it. Seeing you happy is what we care the most.
I will jump in to say thank you as well. You were key factor when I was learning programming back then, your videos and your personality made programming interesting for me. These days, when I'm actually working as web developer for couple years it started to feel that I programming only to get salary. Now, when I watched your videos again, I feel like programming is interesting again! Please don't stop, do it on your own terms and in your own way. Many many thanks to you.