56,966 blogs · [ { "id": "01a087b8-8575-713c-9a09-a839a0b4bded", "title": "Bus mural art project", "url": "https://omarshehata.me/notebook/bus_mural_art_project", "published_at": "2026-05-27T00:00:00+00:00" }, { "id": "01a087b8-8579-7336-ab01-93fe41964659", "title": "What is the ideal information environment?", "url": "https://omarshehata.substack.com/p/what-is-the-ideal-information-environment", "published_at": "2026-04-06T15:59:15+00:00" }, { "id": "01a087b8-8579-7336-ab01-93fe41e69dbe", "title": "How to hire a lawyer in the court of public opinion", "url": "https://omarshehata.substack.com/p/how-to-hire-a-lawyer-in-the-court", "published_at": "2026-03-30T16:24:07+00:00" }, { "id": "01a087b8-8579-7336-ab01-93fe4281674a", "title": "Starting a company - devlog", "url": "https://omarshehata.substack.com/p/starting-a-company-devlog", "published_at": "2026-03-23T16:19:52+00:00" }, { "id": "01a087b8-8578-7119-b1c0-670ad408ba2a", "title": "Handmade GitHub Pages", "url": "https://dev.to/omar4ur/handmade-github-pages-20pi", "published_at": "2026-01-07T14:50:03+00:00" }, { "id": "01a087b8-8579-7336-ab01-93fe3f6c352d", "title": "Handmade Cellular Automata", "url": "https://dev.to/omar4ur/handmade-cellular-automata-1f3c", "published_at": "2026-01-06T18:59:09+00:00" }, { "id": "01a087b8-8579-7336-ab01-93fe4295dab7", "title": "How we grade presentation night", "url": "https://omarshehata.substack.com/p/how-we-grade-presentation-night", "published_at": "2025-12-18T16:01:30+00:00" }, { "id": "01a087b8-8579-7336-ab01-93fe434008f9", "title": "Beginners can do things that experts cannot", "url": "https://omarshehata.substack.com/p/beginners-can-do-things-that-experts", "published_at": "2025-07-16T14:50:44+00:00" }, { "id": "01a087b8-8579-7336-ab01-93fe3f939931", "title": "Open source semantic embedding, search & clustering in NodeJS", "url": "https://dev.to/omar4ur/open-source-semantic-embedding-search-clustering-in-nodejs-23om", "published_at": "2024-09-25T15:43:24+00:00" }, { "id": "01a087b8-8579-7336-ab01-93fe439a6112", "title": "Washington Post is collecting TikTok user data from its followers for public good", "url": "https://omarshehata.substack.com/p/washington-post-is-collecting-tiktok", "published_at": "2024-09-20T13:21:41+00:00" }, { "id": "01a087b8-8579-7336-ab01-93fe44693fda", "title": "Twitter shut off API access; users are now volunteering their data for an open API", "url": "https://omarshehata.substack.com/p/twitter-shut-off-api-access-users", "published_at": "2024-09-18T12:19:34+00:00" }, { "id": "01a087b8-8575-713c-9a09-a839a15ece64", "title": "Dall e telephone", "url": "https://omarshehata.me/notebook/dall_e_telephone", "published_at": "2024-09-06T00:00:00+00:00" }, { "id": "01a087b8-857a-71d0-a65c-0743a6745e0f", "title": "What exactly *is* ChatGPT, if it's not a chatbot?", "url": "https://omarshehata.substack.com/p/what-exactly-is-chatgpt-if-its-not", "published_at": "2024-08-27T23:24:57+00:00" }, { "id": "01a087b8-857a-71d0-a65c-0743a6f8949e", "title": "Fighting twitter's censorship of substack", "url": "https://omarshehata.substack.com/p/fighting-twitters-censorship-of-substack", "published_at": "2024-07-06T20:48:12+00:00" }, { "id": "01a087b8-857a-71d0-a65c-0743a757184b", "title": "Making software by \"cosmic pizza order\"", "url": "https://omarshehata.substack.com/p/making-software-by-cosmic-pizza-order", "published_at": "2024-06-28T18:13:09+00:00" }, { "id": "01a087b8-857a-71d0-a65c-0743a7859c15", "title": "My favorite bench in Ithaca NY", "url": "https://omarshehata.substack.com/p/my-favorite-bench-in-ithaca-ny", "published_at": "2024-06-11T01:20:48+00:00" }, { "id": "01a087b8-8575-713c-9a09-a839a1c0707e", "title": "Office snapshot", "url": "https://omarshehata.me/notebook/office_snapshot", "published_at": "2024-06-10T00:00:00+00:00" }, { "id": "01a087b8-857b-7267-acbf-830a44371225", "title": "I love Scott Hanselman's social media presence", "url": "https://omarshehata.substack.com/p/i-love-scott-hanselmans-social-media", "published_at": "2024-06-06T14:54:30+00:00" }, { "id": "01a087b8-8576-71d7-be1f-02f7d63f3a74", "title": "Rosanos gift", "url": "https://omarshehata.me/notebook/rosanos_gift", "published_at": "2024-05-16T00:00:00+00:00" }, { "id": "01a087b8-857b-7267-acbf-830a44a6d5c0", "title": "My favorite 1980's Canadian TV show: Bits and Bytes", "url": "https://omarshehata.substack.com/p/my-favorite-1980s-canadian-tv-show", "published_at": "2024-05-11T23:11:45+00:00" }, { "id": "01a087b8-8576-71d7-be1f-02f7d6427945", "title": "My new radio", "url": "https://omarshehata.me/notebook/my_new_radio", "published_at": "2024-02-21T00:00:00+00:00" }, { "id": "01a087b8-8576-71d7-be1f-02f7d6cdbed2", "title": "Scenes from egypt", "url": "https://omarshehata.me/notebook/scenes_from_egypt", "published_at": "2023-11-01T00:00:00+00:00" }, { "id": "01a087b8-8576-71d7-be1f-02f7d6ddb5d5", "title": "Outdoor cats & epistemology", "url": "https://omarshehata.me/notebook/outdoor_cats_&_epistemology", "published_at": "2023-09-15T00:00:00+00:00" }, { "id": "01a087b8-8576-71d7-be1f-02f7d6feffcc", "title": "Glimpse into recent news in egypt", "url": "https://omarshehata.me/notebook/glimpse_into_recent_news_in_egypt", "published_at": "2023-08-07T00:00:00+00:00" }, { "id": "01a087b8-8579-7336-ab01-93fe4069d7de", "title": "Build & deploy your first web app", "url": "https://dev.to/omar4ur/build-deploy-your-first-web-app-48dk", "published_at": "2023-07-14T00:28:09+00:00" }, { "id": "01a087b8-8576-71d7-be1f-02f7d781718b", "title": "Debugging double tap in godot", "url": "https://omarshehata.me/notebook/debugging_double_tap_in_godot", "published_at": "2023-05-07T00:00:00+00:00" }, { "id": "01a087b8-857b-7267-acbf-830a4558d9d5", "title": "Presentation Night - Feb 7 - Recap", "url": "https://omarshehata.substack.com/p/presentation-night-feb-7-recap", "published_at": "2023-04-02T17:47:35+00:00" }, { "id": "01a087b8-8577-71a6-91ec-8921b118a857", "title": "WebGL / WebGPU Jan 2023 meetup highlights", "url": "https://omar-shehata.medium.com/webgl-webgpu-jan-2023-meetup-highlights-d29f9e0d0bdc?source=rss-49201ddae41c------2", "published_at": "2023-02-01T17:18:26+00:00" }, { "id": "01a087b8-8576-71d7-be1f-02f7d7b1c0bd", "title": "Mapping my ithaca", "url": "https://omarshehata.me/notebook/mapping_my_ithaca", "published_at": "2022-12-03T00:00:00+00:00" }, { "id": "01a087b8-8576-71d7-be1f-02f7d7ebd928", "title": "My newsletter", "url": "https://omarshehata.me/notebook/my_newsletter", "published_at": "2022-11-10T00:00:00+00:00" }, { "id": "01a087b8-8577-71a6-91ec-8921b1479e0d", "title": "Better outline rendering using surface IDs with WebGL", "url": "https://omar-shehata.medium.com/better-outline-rendering-using-surface-ids-with-webgl-e13cdab1fd94?source=rss-49201ddae41c------2", "published_at": "2022-10-11T09:23:13+00:00" }, { "id": "01a087b8-8577-71a6-91ec-8921b23ef6f7", "title": "How to use WebGPU Timestamp Query", "url": "https://omar-shehata.medium.com/how-to-use-webgpu-timestamp-query-9bf81fb5344a?source=rss-49201ddae41c------2", "published_at": "2022-08-29T09:44:10+00:00" }, { "id": "01a087b8-8576-71d7-be1f-02f7d88e96c0", "title": "Biking in alaska", "url": "https://omarshehata.me/notebook/biking_in_alaska", "published_at": "2022-07-31T00:00:00+00:00" }, { "id": "01a087b8-8576-71d7-be1f-02f7d8b354d1", "title": "Tell yourself better stories", "url": "https://omarshehata.me/notebook/tell_yourself_better_stories", "published_at": "2022-07-25T00:00:00+00:00" }, { "id": "01a087b8-8576-71d7-be1f-02f7d8f0ce49", "title": "My number forms", "url": "https://omarshehata.me/notebook/my_number_forms", "published_at": "2022-07-23T00:00:00+00:00" }, { "id": "01a087b8-8576-71d7-be1f-02f7d8f96fbc", "title": "Improv math song", "url": "https://omarshehata.me/notebook/improv_math_song", "published_at": "2022-07-09T00:00:00+00:00" }, { "id": "01a087b8-8576-71d7-be1f-02f7d96f6f45", "title": "My favorite memory palace episodes", "url": "https://omarshehata.me/notebook/my_favorite_memory_palace_episodes", "published_at": "2022-06-08T00:00:00+00:00" }, { "id": "01a087b8-8577-71a6-91ec-8921b31182b1", "title": "WebGL / WebGPU April 2022 meetup highlights", "url": "https://omar-shehata.medium.com/webgl-webgpu-april-2022-meetup-highlights-e57ad07e1f60?source=rss-49201ddae41c------2", "published_at": "2022-05-01T19:58:16+00:00" }, { "id": "01a087b8-8579-7336-ab01-93fe407c18f1", "title": "Vite Hot Module Replacement - A Complete Example", "url": "https://dev.to/omar4ur/vite-hot-module-replacement-a-complete-example-pkg", "published_at": "2022-04-17T15:45:21+00:00" }, { "id": "01a087b8-8576-71d7-be1f-02f7d9da39fe", "title": "Seattle sunset", "url": "https://omarshehata.me/notebook/seattle_sunset", "published_at": "2022-04-15T00:00:00+00:00" }, { "id": "01a087b8-8576-71d7-be1f-02f7da0c9068", "title": "Notes on infinite powers", "url": "https://omarshehata.me/notebook/notes_on_infinite_powers", "published_at": "2022-04-04T00:00:00+00:00" }, { "id": "01a087b8-8579-7336-ab01-93fe40a34c0f", "title": "How to create bitmap fonts for Phaser JS with BMFont", "url": "https://dev.to/omar4ur/how-to-create-bitmap-fonts-for-phaser-js-with-bmfont-2ndc", "published_at": "2022-02-21T12:55:21+00:00" }, { "id": "01a087b8-8578-7119-b1c0-670ad1691ed4", "title": "WebGPU January 2022 meetup — takeaways", "url": "https://omar-shehata.medium.com/webgpu-january-2022-meetup-takeaways-4cbe03d088b1?source=rss-49201ddae41c------2", "published_at": "2022-02-01T21:12:01+00:00" }, { "id": "01a087b8-8576-71d7-be1f-02f7db0c3d34", "title": "Project ideas", "url": "https://omarshehata.me/notebook/project_ideas", "published_at": "2022-02-01T00:00:00+00:00" }, { "id": "01a087b8-8576-71d7-be1f-02f7dbba7d0f", "title": "Notes on 10 percent happier", "url": "https://omarshehata.me/notebook/notes_on_10_percent_happier", "published_at": "2021-12-28T00:00:00+00:00" }, { "id": "01a087b8-8576-71d7-be1f-02f7dc19e899", "title": "Let it be genre defining", "url": "https://omarshehata.me/notebook/let_it_be_genre_defining", "published_at": "2021-10-04T00:00:00+00:00" }, { "id": "01a087b8-8576-71d7-be1f-02f7dcd866ae", "title": "A still more glorious dawn awaits", "url": "https://omarshehata.me/notebook/a_still_more_glorious_dawn_awaits", "published_at": "2021-09-16T00:00:00+00:00" }, { "id": "01a087b8-8576-71d7-be1f-02f7dd8387c2", "title": "Recreating light art", "url": "https://omarshehata.me/notebook/recreating_light_art", "published_at": "2021-09-13T00:00:00+00:00" }, { "id": "01a087b8-8577-71a6-91ec-8921a8993d36", "title": "Do it even if you dont feel like it", "url": "https://omarshehata.me/notebook/do_it_even_if_you_dont_feel_like_it", "published_at": "2021-09-13T00:00:00+00:00" }, { "id": "01a087b8-8578-7119-b1c0-670ad1b65695", "title": "My Takeaways from WebGPU July 2021 Meetup", "url": "https://omar-shehata.medium.com/my-takeaways-from-webgpu-july-2021-meetup-8c27244e8b8f?source=rss-49201ddae41c------2", "published_at": "2021-08-24T19:34:49+00:00" }, { "id": "01a087b8-8577-71a6-91ec-8921a95dfd23", "title": "Cync - exploring non quantized music", "url": "https://omarshehata.me/notebook/cync_-_exploring_non_quantized_music", "published_at": "2021-08-07T00:00:00+00:00" }, { "id": "01a087b8-8572-7010-896f-abcbba35bd95", "title": "Creating a DOOM-inspired aesthetic with PlayCanvas", "url": "https://omarshehata.me/html/playcanvas-horror-aesthetic/", "published_at": "2021-07-31T00:00:00+00:00" }, { "id": "01a087b8-8577-71a6-91ec-8921aa46c71f", "title": "Behind the scenes of deaths clutch", "url": "https://omarshehata.me/notebook/behind_the_scenes_of_deaths_clutch", "published_at": "2021-07-31T00:00:00+00:00" }, { "id": "01a087b8-8577-71a6-91ec-8921aaeaaf6c", "title": "Do what is hard", "url": "https://omarshehata.me/notebook/do_what_is_hard", "published_at": "2021-07-08T00:00:00+00:00" }, { "id": "01a087b8-8577-71a6-91ec-8921ab967757", "title": "The hidden gallery", "url": "https://omarshehata.me/notebook/the_hidden_gallery", "published_at": "2021-06-05T00:00:00+00:00" }, { "id": "01a087b8-8578-7119-b1c0-670ad226c87b", "title": "Create a Complete Satellite Tracker from Scratch in JavaScript", "url": "https://javascript.plainenglish.io/create-a-satellite-tracker-completely-in-javascript-9bc1ca61f6aa?source=rss-49201ddae41c------2", "published_at": "2021-05-07T23:18:46+00:00" }, { "id": "01a087b8-8579-7336-ab01-93fe41035fbf", "title": "Create a satellite tracker from scratch in 30 lines of JavaScript", "url": "https://dev.to/omar4ur/create-a-satellite-tracker-from-scratch-in-30-lines-of-javascript-32gk", "published_at": "2021-05-06T02:32:25+00:00" }, { "id": "01a087b8-8579-7336-ab01-93fe41037675", "title": "How to load Sketchfab models directly in a ThreeJS app", "url": "https://dev.to/omar4ur/how-to-load-sketchfab-models-directly-in-a-threejs-app-5anb", "published_at": "2021-04-28T01:34:15+00:00" }, { "id": "01a087b8-8578-7119-b1c0-670ad25ca634", "title": "How to Load Sketchfab Models Directly in a Three.js App", "url": "https://javascript.plainenglish.io/how-to-load-sketchfab-models-directly-in-a-threejs-app-f4e76bacf5e6?source=rss-49201ddae41c------2", "published_at": "2021-04-27T23:55:16+00:00" }, { "id": "01a087b8-8577-71a6-91ec-8921abc20f1b", "title": "How to turn an image black and white", "url": "https://omarshehata.me/notebook/how_to_turn_an_image_black_and_white", "published_at": "2021-04-12T00:00:00+00:00" }, { "id": "01a087b8-8577-71a6-91ec-8921ac46f9d2", "title": "The best zoom call", "url": "https://omarshehata.me/notebook/the_best_zoom_call", "published_at": "2021-04-04T00:00:00+00:00" }, { "id": "01a087b8-8577-71a6-91ec-8921ad1cc083", "title": "Playing celeste is like learning the piano", "url": "https://omarshehata.me/notebook/playing_celeste_is_like_learning_the_piano", "published_at": "2021-03-22T00:00:00+00:00" }, { "id": "01a087b8-8577-71a6-91ec-8921adc69b57", "title": "Why I dislike movie previews", "url": "https://omarshehata.me/notebook/why_i_dislike_movie_previews", "published_at": "2021-03-21T00:00:00+00:00" }, { "id": "01a087b8-8575-713c-9a09-a8399ead35d5", "title": "Why does the same note sound different across instruments?", "url": "https://omarshehata.me/notebook/exploring_sound", "published_at": "2021-02-28T00:00:00+00:00" }, { "id": "01a087b8-8577-71a6-91ec-8921ae3cbf37", "title": "Studying the night of the exam", "url": "https://omarshehata.me/notebook/studying_the_night_of_the_exam", "published_at": "2021-02-02T00:00:00+00:00" }, { "id": "01a087b8-8578-7119-b1c0-670ad35a7317", "title": "How to render outlines in WebGL", "url": "https://omar-shehata.medium.com/how-to-render-outlines-in-webgl-8253c14724f9?source=rss-49201ddae41c------2", "published_at": "2021-01-18T21:25:17+00:00" }, { "id": "01a087b8-8577-71a6-91ec-8921ae9d5b76", "title": "An ode to snow", "url": "https://omarshehata.me/notebook/an_ode_to_snow", "published_at": "2020-12-20T00:00:00+00:00" }, { "id": "01a087b8-8577-71a6-91ec-8921aedc3c88", "title": "Visualizing the solar analemma", "url": "https://omarshehata.me/notebook/visualizing_the_solar_analemma", "published_at": "2020-12-07T00:00:00+00:00" }, { "id": "01a087b8-8577-71a6-91ec-8921af3d9d00", "title": "On inspiration and determination", "url": "https://omarshehata.me/notebook/on_inspiration_and_determination", "published_at": "2020-12-01T00:00:00+00:00" }, { "id": "01a087b8-8577-71a6-91ec-8921b02336ff", "title": "A preface to learning english", "url": "https://omarshehata.me/notebook/a_preface_to_learning_english", "published_at": "2020-11-25T00:00:00+00:00" }, { "id": "01a087b8-8578-7119-b1c0-670ad3609396", "title": "How to Fix Gimbal Lock in N-Dimensions", "url": "https://omar-shehata.medium.com/how-to-fix-gimbal-lock-in-n-dimensions-f2f7baec2b5e?source=rss-49201ddae41c------2", "published_at": "2020-08-23T04:12:11+00:00" }, { "id": "01a087b8-8575-713c-9a09-a8399f6d8e9d", "title": "Unraveling the JPEG", "url": "https://parametric.press/issue-01/unraveling-the-jpeg/", "published_at": "2019-05-01T00:13:00+00:00" }, { "id": "01a087b8-8575-713c-9a09-a8399fa89c8f", "title": "Linear Discriminant Analysis", "url": "https://omarshehata.github.io/lda-explorable/", "published_at": "2018-12-03T00:13:00+00:00" }, { "id": "01a087b8-8575-713c-9a09-a839a0278398", "title": "The Mystery of the Corrupted MIDI File (Untangling an encoding mess with JavaScript Typed Arrays)", "url": "https://blog.logrocket.com/binary-data-in-the-browser-untangling-an-encoding-mess-with-javascript-typed-arrays-119673c0f1fe/", "published_at": "2018-05-22T00:13:00+00:00" }, { "id": "01a087b8-8575-713c-9a09-a839a08cbeaf", "title": "A Beginner's Guide to Coding Graphics Shaders", "url": "https://gamedevelopment.tutsplus.com/a-beginners-guide-to-coding-graphics-shaders--cms-23313t", "published_at": "2015-04-15T00:13:00+00:00" } ] posts Claim your blog
Back to omarshehata.me
Blog · corpus.blog/blogs/omarshehata.me/posts

omarshehata.me

omarshehata.me

2026

2025

2024

2023

2022

2021

2020

2019

2018

2015