56,966 blogs · [ { "id": "01a08744-a5b8-71ba-a7e8-f4d4a7227272", "title": "How to build a simple Win32 application", "url": "https://blog.bloomca.me/2025/09/21/build-simple-win32-app.html", "published_at": "2025-09-21T00:00:00+00:00" }, { "id": "01a08744-a5b8-71ba-a7e8-f4d4a7ce5508", "title": "How audio CDs get metadata", "url": "https://blog.bloomca.me/2025/09/20/how-music-gets-metadata.html", "published_at": "2025-09-20T00:00:00+00:00" }, { "id": "01a08744-a5b8-71ba-a7e8-f4d4a82d6f85", "title": "How to read audio CDs data programmatically", "url": "https://blog.bloomca.me/2025/08/31/how-to-read-audio-cd.html", "published_at": "2025-08-31T00:00:00+00:00" }, { "id": "01a08744-a5b8-71ba-a7e8-f4d4a8e49894", "title": "Multiple Windows in Electron apps", "url": "https://blog.bloomca.me/2025/07/21/multi-window-in-electron.html", "published_at": "2025-07-21T00:00:00+00:00" }, { "id": "01a08744-a5b8-71ba-a7e8-f4d4a9488002", "title": "How Desktop apps are built and packaged", "url": "https://blog.bloomca.me/2025/07/21/how-desktop-apps-built-packaged.html", "published_at": "2025-07-21T00:00:00+00:00" }, { "id": "01a08744-a5b8-71ba-a7e8-f4d4a979d0cd", "title": "Menus in Electron apps -- Application, Tray, Context", "url": "https://blog.bloomca.me/2025/07/20/menus-in-electron.html", "published_at": "2025-07-20T00:00:00+00:00" }, { "id": "01a08744-a5b8-71ba-a7e8-f4d4aa3e2d38", "title": "Electron Notifications", "url": "https://blog.bloomca.me/2025/07/20/electron-notifications.html", "published_at": "2025-07-20T00:00:00+00:00" }, { "id": "01a08744-a5b8-71ba-a7e8-f4d4ab2106b3", "title": "Custom Protocols and Deeplinking in Electron apps", "url": "https://blog.bloomca.me/2025/07/20/electron-apps-custom-protocols.html", "published_at": "2025-07-20T00:00:00+00:00" }, { "id": "01a08744-a5b8-71ba-a7e8-f4d4ab9ae214", "title": "How to load your web application in Electron", "url": "https://blog.bloomca.me/2025/07/13/how-to-load-your-web-app-electron.html", "published_at": "2025-07-13T00:00:00+00:00" }, { "id": "01a08744-a5b8-71ba-a7e8-f4d4abad5820", "title": "What is Electron?", "url": "https://blog.bloomca.me/2025/07/13/electron-overview.html", "published_at": "2025-07-13T00:00:00+00:00" }, { "id": "01a08744-a5b8-71ba-a7e8-f4d4abeb5c48", "title": "Problem with React Update Model", "url": "https://blog.bloomca.me/2025/04/20/problem-with-react-update-model.html", "published_at": "2025-04-20T00:00:00+00:00" }, { "id": "01a08744-a5b8-71ba-a7e8-f4d4ac16b784", "title": "How to fix Electron notifications not working on macOS after some time", "url": "https://blog.bloomca.me/2025/02/22/electron-mac-notifications.html", "published_at": "2025-02-22T00:00:00+00:00" }, { "id": "01a08744-a5b8-71ba-a7e8-f4d4acec0aab", "title": "How to Optimize React Context Performance", "url": "https://blog.bloomca.me/2023/11/26/how-to-optimize-react-context-performance.html", "published_at": "2023-11-26T00:00:00+00:00" }, { "id": "01a08744-a5b8-71ba-a7e8-f4d4ad51df14", "title": "Redux Performance Tips", "url": "https://blog.bloomca.me/2023/01/14/redux-performance-tips.html", "published_at": "2023-01-14T00:00:00+00:00" }, { "id": "01a08744-a5b8-71ba-a7e8-f4d4ae45d185", "title": "Performance Optimization in React applications", "url": "https://blog.bloomca.me/2021/10/10/performance-optimization-in-react-applications.html", "published_at": "2021-10-10T00:00:00+00:00" }, { "id": "01a08744-a5b8-71ba-a7e8-f4d4ae7a2d11", "title": "Alternatives to JSX", "url": "https://blog.bloomca.me/2019/02/23/alternatives-to-jsx.html", "published_at": "2019-02-23T00:00:00+00:00" }, { "id": "01a08744-a5b9-70c7-a76d-e403b55023c5", "title": "Node.js Fundamentals: Web Server Without Dependencies", "url": "https://blog.bloomca.me/2018/12/22/writing-a-web-server-node.html", "published_at": "2018-12-22T00:00:00+00:00" }, { "id": "01a08744-a5b9-70c7-a76d-e403b55bcd79", "title": "Small Websites Are Dying", "url": "https://blog.bloomca.me/2018/12/03/small-websites.html", "published_at": "2018-12-03T00:00:00+00:00" }, { "id": "01a08744-a5b9-70c7-a76d-e403b61f6d92", "title": "Metrics are Dangerous for Users", "url": "https://blog.bloomca.me/2018/10/23/metrics-are-dangerous.html", "published_at": "2018-10-23T00:00:00+00:00" }, { "id": "01a08744-a5b9-70c7-a76d-e403b678a664", "title": "Problem of Server Frameworks", "url": "https://blog.bloomca.me/2018/10/16/problem-of-server-frameworks.html", "published_at": "2018-10-16T00:00:00+00:00" }, { "id": "01a08744-a5b9-70c7-a76d-e403b706fdd1", "title": "Javascript Fundamentals: `this` keyword", "url": "https://blog.bloomca.me/2018/08/24/javascript-fundamentals-this.html", "published_at": "2018-08-24T00:00:00+00:00" }, { "id": "01a08744-a5b9-70c7-a76d-e403b7fe79e7", "title": "Node.js REPL in Depth", "url": "https://blog.bloomca.me/2018/07/09/nodejs-repl-in-depth.html", "published_at": "2018-07-09T00:00:00+00:00" }, { "id": "01a08744-a5b9-70c7-a76d-e403b8535294", "title": "Node.js Guide for Frontend Developers", "url": "https://blog.bloomca.me/2018/06/21/nodejs-guide-for-frontend-developers.html", "published_at": "2018-06-21T00:00:00+00:00" }, { "id": "01a08744-a5b9-70c7-a76d-e403b9497f47", "title": "Do Not Use Acronyms", "url": "https://blog.bloomca.me/2018/06/05/do-not-use-acronyms.html", "published_at": "2018-06-05T00:00:00+00:00" }, { "id": "01a08744-a5b9-70c7-a76d-e403b9ec445e", "title": "On Unit Tests", "url": "https://blog.bloomca.me/2018/06/03/on-unit-tests.html", "published_at": "2018-06-03T00:00:00+00:00" }, { "id": "01a08744-a5b9-70c7-a76d-e403ba9f5868", "title": "My Experience with MOOCs", "url": "https://blog.bloomca.me/2018/05/16/my-experience-with-moocs.html", "published_at": "2018-05-16T00:00:00+00:00" }, { "id": "01a08744-a5b9-70c7-a76d-e403bb74a12e", "title": "Best Practices are not Always the Best", "url": "https://blog.bloomca.me/2018/05/10/on-best-practices.html", "published_at": "2018-05-10T00:00:00+00:00" }, { "id": "01a08744-a5bd-71bc-affc-10190d71636f", "title": "Angular.js Guide for Seasoned Developers – part 2", "url": "https://blog.bloomca.me/2018/05/10/angularjs-guide-for-seasoned-developers-part-2.html", "published_at": "2018-05-10T00:00:00+00:00" }, { "id": "01a08744-a5bd-71bc-affc-10190dbcc970", "title": "Asynchronous Javascript Patterns: Promises Tips and Tricks", "url": "https://blog.bloomca.me/2018/04/17/asynchronous-javascript-pattern-promises-tips-and-tricks.html", "published_at": "2018-04-17T00:00:00+00:00" }, { "id": "01a08744-a5bd-71bc-affc-10190e71a63d", "title": "Asynchronous Javascript Patterns: Exclusive Task", "url": "https://blog.bloomca.me/2018/04/15/asynchronous-javascript-pattern-exclusive-task.html", "published_at": "2018-04-15T00:00:00+00:00" }, { "id": "01a08744-a5bd-71bc-affc-10190f6e3004", "title": "Angular.js Guide for Seasoned Developers – part 1", "url": "https://blog.bloomca.me/2018/04/15/angularjs-guide-for-seasoned-developers-part-1.html", "published_at": "2018-04-15T00:00:00+00:00" }, { "id": "01a08744-a5bd-71bc-affc-101910523f76", "title": "Asynchronous Patterns in JavaScript", "url": "https://blog.bloomca.me/2018/03/24/async-patterns-js.html", "published_at": "2018-03-24T00:00:00+00:00" }, { "id": "01a08744-a5bd-71bc-affc-101910e7da43", "title": "Agile is Weird", "url": "https://blog.bloomca.me/2018/02/25/agile-is-weird.html", "published_at": "2018-02-25T00:00:00+00:00" }, { "id": "01a08744-a5bd-71bc-affc-10191121b02d", "title": "Single Page Application Is Not a Silver Bullet", "url": "https://blog.bloomca.me/2018/02/04/spa-is-not-silver-bullet.html", "published_at": "2018-02-04T00:00:00+00:00" }, { "id": "01a08744-a5be-70a8-a67e-99c34ca30f0e", "title": "Asynchronous Reduce in JavaScript", "url": "https://blog.bloomca.me/2018/01/27/asynchronous-reduce-in-javascript.html", "published_at": "2018-01-27T00:00:00+00:00" }, { "id": "01a08744-a5be-70a8-a67e-99c34d689b53", "title": "Just Ship", "url": "https://blog.bloomca.me/2018/01/24/just-ship.html", "published_at": "2018-01-24T00:00:00+00:00" }, { "id": "01a08744-a5be-70a8-a67e-99c34df96a40", "title": "How to Use Generators in JavaScript", "url": "https://blog.bloomca.me/2017/12/19/how-to-use-generators.html", "published_at": "2017-12-19T00:00:00+00:00" }, { "id": "01a08744-a5be-70a8-a67e-99c34e061dec", "title": "How to Push a Folder to Github Pages", "url": "https://blog.bloomca.me/2017/12/15/how-to-push-folder-to-github-pages.html", "published_at": "2017-12-15T00:00:00+00:00" }, { "id": "01a08744-a5be-70a8-a67e-99c34ee893f7", "title": "How to Cancel Your Promise", "url": "https://blog.bloomca.me/2017/12/04/how-to-cancel-your-promise.html", "published_at": "2017-12-04T00:00:00+00:00" }, { "id": "01a08744-a5be-70a8-a67e-99c34ef94e30", "title": "Git Beyond the Basics", "url": "https://blog.bloomca.me/2017/11/17/git-beyond-the-basics.html", "published_at": "2017-11-17T00:00:00+00:00" }, { "id": "01a08744-a5be-70a8-a67e-99c34fd2b368", "title": "The Most Clever Line of JavaScript", "url": "https://blog.bloomca.me/2017/11/08/the-most-clever-line-of-javascript.html", "published_at": "2017-11-08T00:00:00+00:00" }, { "id": "01a08744-a5be-70a8-a67e-99c350208071", "title": "Future of the Babel.js", "url": "https://blog.bloomca.me/2017/11/03/future-of-the-babel.html", "published_at": "2017-11-03T00:00:00+00:00" }, { "id": "01a08744-a5be-70a8-a67e-99c35101408f", "title": "Difference between smart and dumb components in React", "url": "https://blog.bloomca.me/2017/10/08/difference-between-smart-and-dumb-components.html", "published_at": "2017-10-08T00:00:00+00:00" }, { "id": "01a08744-a5be-70a8-a67e-99c351b6fa89", "title": "State of the art in CSS", "url": "https://blog.bloomca.me/2017/08/25/css-state-of-the-art.html", "published_at": "2017-08-25T00:00:00+00:00" }, { "id": "01a08744-a5be-70a8-a67e-99c351e59caf", "title": "My experience from real-world webapps tasks for job interviews", "url": "https://blog.bloomca.me/2017/07/30/about-real-worls-apps-for-interview-tasks.html", "published_at": "2017-07-30T00:00:00+00:00" }, { "id": "01a08744-a5be-70a8-a67e-99c3521bba4f", "title": "Server Side Rendering with Prefetch", "url": "https://blog.bloomca.me/2017/06/11/server-side-rendering-with-prefetch.html", "published_at": "2017-06-11T00:00:00+00:00" }, { "id": "01a08744-a5be-70a8-a67e-99c352f8f65c", "title": "Why I created Redux-Tiles library", "url": "https://blog.bloomca.me/2017/06/02/why-i-created-redux-tiles-library.html", "published_at": "2017-06-02T00:00:00+00:00" }, { "id": "01a08744-a5be-70a8-a67e-99c353665cc6", "title": "Creating web application in plain javascript", "url": "https://blog.bloomca.me/2016/10/15/writing-web-application-in-plain-js.html", "published_at": "2016-10-15T00:00:00+00:00" }, { "id": "01a08744-a5be-70a8-a67e-99c3536f56dd", "title": "Business metrics for libraries", "url": "https://blog.bloomca.me/2016/09/21/business-metrics-for-libraries.html", "published_at": "2016-09-21T00:00:00+00:00" }, { "id": "01a08744-a5be-70a8-a67e-99c3541e3319", "title": "Npm dependencies explained", "url": "https://blog.bloomca.me/2016/08/15/npm-dependencies.html", "published_at": "2016-08-15T00:00:00+00:00" } ] posts Claim your blog
Back to blog.bloomca.me
Blog · corpus.blog/blogs/blog.bloomca.me/posts

blog.bloomca.me

blog.bloomca.me

2025

2023

2021

2019

2018

2017

2016