[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"categories":3,"posts::thought:3:6:":86,"$fmAbo7HX1697lOJ4AVNBJl1PR7wUF0IkR_62krtbwQAE":199},{"data":4,"meta":83},[5,13,21,33,41,49,61,73],{"_id":6,"name":7,"createdAt":8,"updatedAt":9,"uuid":10,"description":11,"slug":12},"63c8a819ebd5da50564b61e1","Season","Thu Jan 19 2023 10:16:57 GMT+0800 (Singapore Standard Time)","Sun Nov 19 2023 10:26:28 GMT+0800 (Singapore Standard Time)","f320644a-3083-41c0-84cb-0d3fa5551f9c","Seasonal Symphony: Wishes and Whispers Throughout the Year.","season",{"_id":14,"name":15,"createdAt":16,"updatedAt":17,"uuid":18,"description":19,"slug":20},"63c8e274ebd5da50564b61e5","Books","Thu Jan 19 2023 14:25:56 GMT+0800 (Singapore Standard Time)","Sun Nov 19 2023 10:34:33 GMT+0800 (Singapore Standard Time)","cd14b16a-42b5-42d6-8d77-5c462a4d0f0f","TechTomes: Unveiling Insights from My Reading List.","books",{"_id":22,"name":23,"createdAt":24,"updatedAt":25,"uuid":26,"description":27,"slug":28,"image":29,"imageAlt":30,"metaDescription":31,"metaTitle":32},"63c8e27febd5da50564b61e6","Fun","Thu Jan 19 2023 14:26:07 GMT+0800 (Singapore Standard Time)","Fri Sep 04 2026 12:00:52 GMT+0800 (Singapore Standard Time)","a21f9898-e840-4a66-bf53-d559fbecd8a2","Not everything needs to be about work, strategy or the latest technological disruption. Fun is where I keep the side quests: travel, photography, drone flying, unusual experiences and stories that refuse to behave like serious professional content. The CTO Show may occasionally wander in too - it has never been especially good at respecting boundaries.","fun","https:\u002F\u002Fmsatbsx.sgp1.digitaloceanspaces.com\u002Fnewsfun.jpg","Flying drone!","Travel, photography, drone flying and other side quests beyond the usual workday—plus stories that simply refuse to fit anywhere else.","Fun: Travel, Photography, Drones & Side Quests",{"_id":34,"name":35,"createdAt":36,"updatedAt":37,"uuid":38,"description":39,"slug":40},"63c8e283ebd5da50564b61e7","Hacks","Thu Jan 19 2023 14:26:11 GMT+0800 (Singapore Standard Time)","Sun Nov 19 2023 10:36:02 GMT+0800 (Singapore Standard Time)","799564dd-7b72-46c5-a45e-5de9b03562df","Life tips not only for geeks. ","hacks",{"_id":42,"name":43,"createdAt":44,"updatedAt":45,"uuid":46,"description":47,"slug":48},"63ddb29077ed51d12c4d2369","Thought","Sat Feb 04 2023 09:19:12 GMT+0800 (Singapore Standard Time)","Sun Nov 19 2023 10:32:11 GMT+0800 (Singapore Standard Time)","ce03e1f7-4ccf-4f31-bf12-a6890e7ab2e2","In the Stream of Consciousness: Everyday Thoughts.","thought",{"_id":50,"name":51,"createdAt":52,"updatedAt":53,"uuid":54,"description":55,"slug":56,"image":57,"imageAlt":58,"metaDescription":59,"metaTitle":60},"63e8bb2053fe24ed2c17b632","Side Project","Sun Feb 12 2023 18:10:40 GMT+0800 (Singapore Standard Time)","Fri Sep 04 2026 12:08:52 GMT+0800 (Singapore Standard Time)","3affba79-dabc-486b-b387-88b111dd2ca9","The projects nobody assigned, nobody requested and nobody promised would actually work. This is where I document electronics, prototypes, experiments and ideas built mostly from curiosity plus the mistakes, unexpected detours and occasional small victories that happen somewhere between “what if?” and “why is that smoking?”","side-project","https:\u002F\u002Fmsatbsx.sgp1.digitaloceanspaces.com\u002Fnewsside-projects.jpg","Michal's lab","Electronics, prototypes and curious experiments from promising ideas to useful mistakes and the occasional project that actually works.","Side Projects: Experiments, Builds & Useful Mistakes",{"_id":62,"name":63,"createdAt":64,"updatedAt":65,"uuid":66,"description":67,"slug":68,"image":69,"imageAlt":70,"metaDescription":71,"metaTitle":72},"64a60fa6d6a64c035ffff733","Articles","Thu Jul 06 2023 08:49:42 GMT+0800 (Singapore Standard Time)","Fri Sep 04 2026 10:57:46 GMT+0800 (Singapore Standard Time)","81e1b46d-752b-4cce-92fc-756abf9b0f05","A collection of stories, observations and ideas that deserve more room than a quick update. From technology and business to places, trends and everyday curiosities explored with a personal perspective, practical context and no unnecessary seriousness.","articles","https:\u002F\u002Fmsatbsx.sgp1.digitaloceanspaces.com\u002Fnewsarticles.jpg","work-and-careers","Stories and observations about technology, business, places and everyday curiosities—explored with practical context and a personal perspective.","Articles: Stories, Ideas & Everyday Observations",{"_id":74,"name":75,"description":76,"image":77,"imageAlt":70,"slug":70,"createdAt":78,"updatedAt":79,"uuid":80,"metaDescription":81,"metaTitle":82},"6a9a0dfb49e7c42d005c01bb","Work & Careers","Work is changing, careers are getting less predictable, and the old advice does not always survive contact with reality. This section explores job markets, hiring trends, workplace culture and the practical decisions that shape our professional lives with curiosity, personal perspective and the occasional raised eyebrow.","https:\u002F\u002Fmsatbsx.sgp1.digitaloceanspaces.com\u002Fnewswork.jpg","Fri Sep 04 2026 08:16:59 GMT+0800 (Singapore Standard Time)","Fri Sep 04 2026 10:45:32 GMT+0800 (Singapore Standard Time)","2466fa42-adb8-450d-95ca-ac0324120844","Practical takes on job markets, career growth, hiring trends and workplace culture plus the occasional uncomfortable truth about working life.","Work & Careers: Jobs, Growth & Workplace Trends",{"totalnoOfItems":84,"perPage":85,"noOfItemsOnCurrentPage":84},8,24,{"data":87,"meta":196},[88,110,129,145,162,179],{"relatedTools":89,"_id":90,"id":91,"title":92,"alt":93,"category":43,"date":94,"author":95,"readTime":96,"content":97,"image":98,"more":99,"extendedContent":100,"asHTML":99,"headTitle":101,"metaDesc":102,"photoCredit":103,"draft":104,"createdAt":105,"updatedAt":106,"uuid":107,"categorySlug":48,"tags":108},[],"64646e67f32e94034de8c96f","my-thoughts-on-github-copilot","My thoughts on Github Copilot.","Github Copilot creature in space","2023-05-17T06:02:00.000Z","Michal",3,"I've been using Copilot in my main editor for several months now, and rarely press Tab to accept its suggestions. This usually only happens when I type descriptions, not code. Anyways, I found it helpful, but risky. Let's take a closer look at why.","https:\u002F\u002Fmsatbsx.sgp1.digitaloceanspaces.com\u002Fnews\u002Fcopilot.jpg","true","\u003Ch2>GitHub Copilot? I'm open, but it is not there yet.\u003C\u002Fh2>\nAs an AI enthusiast, I foresee a future where the majority of \"coding jobs\" will involve guiding engines to do the heavy lifting, changing programming into prompting! 🚀\u003Cbr>\u003Cbr>\n\nHowever, my experience with Github Copilot as my \"pair programmer\" left much to be desired. Some of its suggestions were way off the mark, not in terms of language syntax but in terms of adding real value. It sometimes created a tangled mess of code, resembling a bowl of spaghetti! 🍝\u003Cbr>\u003Cbr>\n\nCompared to simpler online versions of chat-GPT (and models trained on specific content), Copilot's prompting capabilities fell short. It didn't reduce my need to search for documentation or check Stack Overflow. However, I did find it quite useful for straightforward and repetitive tasks. It excelled at generating switch blocks with predefined options or typing out descriptions in plain English. Those were smooth sailing! ⛵️\u003Cbr>\u003Cbr>\n\nBut let's be real, Copilot didn't make the cut for me. It lacked the bigger picture thinking that proposes a solution instead of working inline. It was too easy to fall into the trap of WET code (opposite of DRY - Do Not Repeat Yourself). Sure, it's tempting to hit that Tab key, but it often leads to wasting time for code review. I prefer being in control when it comes to deciding when proposed code blocks popups to accept or escape. ⏸️\u003Cbr>\u003Cbr>\n\nThat being said, I believe GitHub Copilot shows promise as a feature. Perhaps the recently announced Copilot-X will be the breakthrough we've been waiting for. Only time will tell! ✨","My thoughts after using Github Copilot","Github Copilot is a AI backed editor tool that should save time by providing code suggestions. Does it really help? Check my pov. #editor #writing #programming","Unsplash","","Wed May 17 2023 14:04:23 GMT+0800 (Singapore Standard Time)","Mon Dec 04 2023 19:43:38 GMT+0800 (Singapore Standard Time)","32477a57-00bf-4fa4-aa8b-f6183c0d753a",[109],"Technology",{"relatedTools":111,"_id":112,"id":113,"title":114,"alt":115,"category":43,"date":116,"author":95,"readTime":117,"content":118,"image":119,"more":99,"extendedContent":120,"asHTML":99,"headTitle":121,"metaDesc":122,"photoCredit":123,"createdAt":124,"updatedAt":125,"uuid":126,"categorySlug":48,"tags":127},[],"643fd1a0774c389bc4de01b6","engineers-mission-does-not-change","Engineers mission does not change.","da vinci","2023-04-19T11:31:00.000Z",1,"New engineering solutions continue to grow at an exponential rate. Amazing! But what difference does this make in our daily tasks? The goal remains the same: deliver your solution as simply as possible. As Leonardo da Vinci once said, \"Simplicity is the ultimate sophistication.\" Take some time to consider this before writing your next block of code.","https:\u002F\u002Fmsatbsx.sgp1.digitaloceanspaces.com\u002Fnews\u002Fda-vinci.jpg","\u003Ch2>Here is a bit of truism for developers.\u003C\u002Fh2>\n\u003Cp>In coding, elegance lies in simplicity. Strive for code that is clear, concise, and easy to understand. Avoid unnecessary complexity and convoluted solutions. Just as da Vinci saw sophistication in simplicity, in the world of development, sophisticated and effective solutions often arise from keeping code straightforward and uncomplicated. Prioritize readability and maintainability, as these are the hallmarks of a sophisticated and well-crafted codebase. Embrace simplicity not just as a design choice but as a guiding philosophy in your coding practices, for in simplicity, you'll find the true sophistication of a well-engineered solution.\u003C\u002Fp>\n\u003Cp>Just take a pause. Rethink and iteratively improve your code.\u003C\u002Fp>","Engineers mission.","Tech solutions are growing fast! How does this help us? Keep it simple & remember Leonardo's advice: \"Simplicity is the ultimate sophistication.\" ","public domain","Wed Apr 19 2023 19:33:52 GMT+0800 (Singapore Standard Time)","Mon Dec 04 2023 19:45:05 GMT+0800 (Singapore Standard Time)","5786a12f-0c05-469c-a56b-dfd1e871aebc",[128],"CTO work",{"tags":130,"relatedTools":131,"_id":132,"id":133,"title":134,"alt":135,"category":43,"date":136,"author":95,"readTime":96,"content":137,"image":138,"more":99,"extendedContent":139,"asHTML":99,"createdAt":140,"updatedAt":141,"uuid":142,"headTitle":143,"metaDesc":144,"categorySlug":48},[],[],"642422573672c0035082a2eb","tailwind-anti-pattern-or-not","Tailwind. Anti-Pattern or ...not?","Tailwind CSS","2023-03-28T16:00:00.000Z","I have been a fan of Adam Wathan for a while now, even before he created Tailwind. I had misgivings about the concept of making HTML look like a class index - it felt wrong to me. However, as time has passed, I find myself using it more and more. What has changed?","https:\u002F\u002Fmsatbsx.sgp1.digitaloceanspaces.com\u002Fnews\u002Ftailwind.jpeg","\u003Ch2>Is Tailwind a way to go?\u003C\u002Fh2>\n\u003Cp>My first impression was, Adam tries to have something on his own. Not very useful, but his. Okay. Let's have a test ride. And I didn't like it. Html document was looking gibberish, docs were incomplete and hard to query.\u003Cbr>\nMany folks share this opinion, when you google \"tailwindcss anti-pattern\" you find tones of articles like \u003Ca href=\"https:\u002F\u002Fjavascript.plainenglish.io\u002Ftailwind-is-an-anti-pattern-ed3f64f565f0\" style=\"color: rgb(14 165 233)\" class=\"font-semibold\" target=\"_new\">this one\u003C\u002Fa> from Enrico Gruner. There is a lot of true in there. But.\u003Cbr>\nI still use it, when I need to prototype, do something fast, or just style an internal telemetry page.\u003Cbr>\nTo answer the question why: it is so simple to use, results are so clean.\u003C\u002Fp>\nThinking a bit further, list of reasons is growing. First, the docs. They are amazing. Great job Tailwind team. You have set the bar really high for open source projects documentation.\u003Cbr>\nSecond: entire ecosystem, with tailwindui, heroicons, headlessui and others. Just waiting to kick off your project.\u003Cbr>\nThird: continues development with attention to user comments. You think - this is missing, a few months later it is added. Like fine tuned gradient positions. Fourth: easy to extend to match your needs in more complicated work. Again, docs are there for you.\u003Cbr>\nFifth: which took me longest to appreciate, when you work in a larger team, it stops from growing so complicated, messy css.\u003Cbr>\nTo argue against Enrico comment (link above) \"you’re not learning CSS patterns by using Tailwind\", I think you actually do! Of course not on rock star level, but when you add Tailwind classes in your IDE, you can see by hovering what css is there, and understand what's happening under the hood. You don't learn inheritance and more advanced css selectors? Okay, the question is, do you really need them? You can achieve the result anyways, without creating a labyrinth of from where this style actually came?\u003Cbr>\nTo summarise, if you have relatively simple needs, not planning to be a css animation magician, use Tailwind. You will have the job done faster. Without one line of css.\u003Cbr>\nLast point? This page is built with Tailwind.\u003Cbr>\u003Cbr>","Wed Mar 29 2023 19:34:47 GMT+0800 (Singapore Standard Time)","Sat Nov 25 2023 16:11:35 GMT+0800 (Singapore Standard Time)","3b2b3e72-ea76-4977-bcfe-c12edce6857f","Tailwind is good or bad?","A fan of Adam Wathan shares their journey from skepticism to embracing Tailwind. Why I have come to use it more and more.",{"tags":146,"relatedTools":147,"_id":148,"id":149,"title":150,"alt":151,"category":43,"date":152,"author":153,"readTime":117,"content":154,"image":155,"more":99,"extendedContent":156,"asHTML":99,"createdAt":157,"updatedAt":158,"uuid":159,"headTitle":160,"metaDesc":161,"categorySlug":48},[],[],"6422e61a3672c0035082a2e7","new-kid-on-the-block-wasm","New kid on the block. WASM.","WASM logo","2023-03-27T16:00:00.000Z","Michal ","Not only is OpenAI (or any AI product) revolutionising the digital landscape, but WebAssembly is a game-changer for browser applications. Is JavaScript on its way out? Not yet, but may give some space for other languages. Rust is undoubtedly ruling the roost! These are truly exhilarating times!","https:\u002F\u002Fmsatbsx.sgp1.digitaloceanspaces.com\u002Fnews\u002Fwebassembly-logo.jpeg","\u003Ch2>Not enough processing power for web app? Think WASM.\u003C\u002Fh2>\n\u003Cp>WebAssembly (WASM) stands as a revolutionary advancement in the realm of web development, unlocking new opportunities for in-browser applications. Born out of collaborative efforts among major browser vendors, WASM is a binary instruction format that allows high-performance execution of code directly in web browsers. This breakthrough technology transcends traditional language barriers, enabling developers to write applications in languages like C, C++, and Rust, and then compile them into a compact and efficient binary format that runs seamlessly in the browser environment. The key advantage lies in its ability to deliver near-native performance, making complex applications, such as games, simulations, and data-intensive tasks, feasible within the web browser. This not only enhances the user experience but also opens doors to a new era of web applications that can rival the capabilities of their desktop counterparts. WASM represents a transformative shift, empowering developers to create more powerful, versatile, and responsive in-browser applications, expanding the horizons of what can be achieved on the web.\u003C\u002Fp>","Tue Mar 28 2023 21:05:30 GMT+0800 (Singapore Standard Time)","Sat Nov 25 2023 16:08:03 GMT+0800 (Singapore Standard Time)","87d68a16-1cd2-4a94-9abc-eddf12e90455","WASM is coming as a storm.","OpenAI and WebAssembly are revolutionizing digital landscape, while JavaScript hangs on. Rust is ruling the roost! Exciting times in tech! ",{"relatedTools":163,"_id":164,"id":165,"title":166,"alt":167,"category":43,"date":168,"author":95,"readTime":96,"content":169,"image":170,"more":99,"extendedContent":171,"asHTML":99,"createdAt":172,"updatedAt":173,"uuid":174,"photoCredit":175,"headTitle":176,"metaDesc":177,"categorySlug":48,"tags":178},[],"640eec2840ef91034d1a6a57","is-react-a-dead-end-path","Is ReactJS a dead-end path?","ReactJS is a dead end","2023-03-12T16:00:00.000Z","React is like a modern celebrity - famous simply for being famous. It's often chosen as a safe solution, and no one can fault you for that. However, once you dive deeper, you'll be exposed to all its flaws. I predict that React will die out just as PHP did in the realm of HTML templating.","https:\u002F\u002Fmsatbsx.sgp1.digitaloceanspaces.com\u002Fnews\u002F\u002Fdeadendreact.jpg","\u003Ch2>React JS? No thank you, I'll go for modern frameworks.\u003C\u002Fh2>\nI honestly believe working with ReactJS is a messy experience compared to other modern FE frameworks. It can be summarised as a waste of time. An extreme opinion? Allow me to share some arguments here. Let's start with a basic example, on a newbie level. To write a react functional (modern) component, containing just two input fields that are dynamically changing the line of text, you need that:\n\u003Cpre>\nimport React, { useState } from &#39;react&#39;;\n\nexport default () =&gt; {\n    const [a, setA] = useState(1);\n    const [b, setB] = useState(2);\n\n    function handleChangeA(event) {\n        setA(+event.target.value);\n    }\n\n    function handleChangeB(event) {\n        setB(+event.target.value);\n    }\n\n    return (\n        &lt;div&gt;\n            &lt;input type=&quot;number&quot; value={a} onChange={handleChangeA}\u002F&gt;\n            &lt;input type=&quot;number&quot; value={b} onChange={handleChangeB}\u002F&gt;\n\n            &lt;p&gt;{a} + {b} = {a + b}&lt;\u002Fp&gt;\n        &lt;\u002Fdiv&gt;\n    );\n};\n\u003C\u002Fpre>\nIn VueJS, it will be simpler:\n\u003Cpre>\n&lt;template&gt;\n    &lt;div&gt;\n        &lt;input type=&quot;number&quot; v-model.number=&quot;a&quot;&gt;\n        &lt;input type=&quot;number&quot; v-model.number=&quot;b&quot;&gt;\n\n        &lt;p&gt;{{a}} + {{b}} = {{a + b}}&lt;\u002Fp&gt;\n    &lt;\u002Fdiv&gt;\n&lt;\u002Ftemplate&gt;\n\n&lt;script&gt;\n    export default {\n        data: function() {\n            return {\n                a: 1,\n                b: 2\n            };\n        }\n    };\n&lt;\u002Fscript&gt;\n\u003C\u002Fpre>\nIn Svelte (which you should be using if not doing it yet):\n\u003Cpre>\n&lt;script&gt;\n\tlet a = 1;\n\tlet b = 2;\n&lt;\u002Fscript&gt;\n\n&lt;input type=&quot;number&quot; bind:value={a}&gt;\n&lt;input type=&quot;number&quot; bind:value={b}&gt;\n\n&lt;p&gt;{a} + {b} = {a + b}&lt;\u002Fp&gt;\n\u003C\u002Fpre>\nWow, React requires so much more code!\u003Cbr>\nBut let's talk about the next step on the learning curve. To get the knack of Redux, a state container commonly used with React, you're happy if you start now. With Redux-Toolkit it is quite straightforward. Unfortunately, your more experienced colleagues have used tones of different ways of doing it, including famous Redux-Saga or Thunk. What an effort needed to catch-up and be quick with all of that spaghetti. Please understand my point here, I'm not saying those libraries are bad, in fact some of them are brilliant. The problem is the entire mashed-up ecosystem, which costs you a lot of learning. In practice, the average developer has only 2-4 years of experience and is not productive in that environment. She\u002FHe consumes time paid by the employer to learn.\u003Cbr>\nThere are more surprises when you dig deeper. React is not written with Typescript but with Flow (Facebook attempts to make JS with type support). TS is added 'on top' by an external team. Which ends with unexpected results (check \u003Ca href=\"https:\u002F\u002Fwww.totaltypescript.com\u002Fyoutube\u002FM3TPmOpNFCs\" target=\"_new\">this\u003C\u002Fa>).\u003Cbr>\u003Cbr>\nI believe moving to simpler and cleaner frameworks is the path forward. They were created with all the experience gained while React was the leading edge. If you think about potential cons, there are only two, less documentation (examples) on the web, and the risk of those projects being abandoned.\u003Cbr\u002F>\n\nAs a last word, React is slow. Very slow.\u003Cbr>\u003Cbr>\n\n","Mon Mar 13 2023 17:26:00 GMT+0800 (Singapore Standard Time)","Mon Dec 04 2023 19:46:14 GMT+0800 (Singapore Standard Time)","7d1e57c7-9e26-4beb-a77e-d7da6ae109f5","Unsplash\u002FMichal","ReactJS has no future?","React is like a modern celebrity, famous for being famous. Dive deeper and you'll find its flaws. Its future? Just like PHP in HTML templating: dead.",[109],{"relatedTools":180,"_id":181,"id":182,"title":183,"alt":184,"category":43,"date":185,"author":95,"readTime":117,"content":186,"image":187,"more":99,"extendedContent":188,"asHTML":99,"createdAt":189,"updatedAt":190,"uuid":191,"categorySlug":48,"headTitle":192,"metaDesc":193,"photoCredit":103,"tags":194},[],"63ddb4ca77ed51d12c4d236a","ai-or-not-ai","AI or not AI?","BB8","2023-02-03T16:00:00.000Z","When George Lucas was creating Star Wars robots, I'm sure he never imagined that we would have such sophisticated Artificial Intelligence in his lifetime. You say that this isn't true AI yet? Consider the implications of the term \"Artificial\" more carefully.","https:\u002F\u002Fmsatbsx.sgp1.digitaloceanspaces.com\u002Fnews\u002Fbb8.jpg","\u003Ch2>Is \"A\" in AI solely related to the creation process?\u003C\u002Fh2>\n\u003Cp>In the context of AI, the \"A\" stands for \"Artificial.\" Artificial Intelligence refers to the development of computer systems that can perform tasks that typically require human intelligence. The term was coined to signify that the intelligence displayed by these systems is not inherent but is created artificially by humans.\u003C\u002Fp>\n\u003Cp>The term \"Artificial Intelligence\" doesn't imply that machines possess consciousness, self-awareness, or the ability to understand and experience the world in the same way humans do.\u003C\u002Fp>\n\u003Cp>In fact \"Artificial Intelligence\" has the same hardware we know already know for decades, maybe just a bit faster. How it works is based on large data sets and sophisticated software to process it. There is no magic. It pretends to think while it is processing data as all other computers do.\u003C\u002Fp>\n\u003Cp> It's crucial to recognise the distinction between artificial intelligence and human intelligence to set realistic expectations and avoid misconceptions about the capabilities of AI systems.\u003C\u002Fp> ","Sat Feb 04 2023 09:28:42 GMT+0800 (Singapore Standard Time)","Tue Dec 05 2023 08:51:08 GMT+0800 (Singapore Standard Time)","2483cc59-43ed-4463-9e50-5835b1e7d6d5","Why AI does not mean Inteligence.","George Lucas created Star Wars robots, but AI has since advanced far beyond what he could have imagined. The implications of \"Artificial\" are worth considering.",[195],"AI",{"totalnoOfPosts":197,"page":96,"perPage":198,"noOfPostOnCurrentPage":198},19,6,{"enabled":200},true]