<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: BB</title>
    <description>The latest articles on DEV Community by BB (@codebybb).</description>
    <link>https://dev.to/codebybb</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3770996%2F75d346e5-1fbd-411a-a40b-5c050b30682e.jpeg</url>
      <title>DEV Community: BB</title>
      <link>https://dev.to/codebybb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codebybb"/>
    <language>en</language>
    <item>
      <title>I built a live Earth wallpaper for Windows</title>
      <dc:creator>BB</dc:creator>
      <pubDate>Fri, 02 Oct 2026 02:26:40 +0000</pubDate>
      <link>https://dev.to/codebybb/i-built-a-live-earth-wallpaper-for-windows-279l</link>
      <guid>https://dev.to/codebybb/i-built-a-live-earth-wallpaper-for-windows-279l</guid>
      <description>&lt;p&gt;For months my desktop background was the same photo. Fine image. Never changed.&lt;/p&gt;

&lt;p&gt;I kept wishing the map behind my icons would track the real sun — day side bright, night side with city lights — and show times for a few cities I actually care about. Not another floating widget pack. Just wallpaper that behaves like Earth.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;Orblune&lt;/strong&gt;, a live Earth wallpaper for Windows 10/11.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F22lupgwhe8hjrqlwiawc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F22lupgwhe8hjrqlwiawc.png" alt=" " width="192" height="192"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Try it: &lt;a href="https://cbybb.github.io/Orblune/" rel="noopener noreferrer"&gt;https://cbybb.github.io/Orblune/&lt;/a&gt;&lt;br&gt;&lt;br&gt;
Code: &lt;a href="https://github.com/CByBB/Orblune" rel="noopener noreferrer"&gt;https://github.com/CByBB/Orblune&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’m CByBB on GitHub (also CodeByBB / BB / B.B. depending on the account). This is article &lt;strong&gt;01&lt;/strong&gt; in a short series about making Orblune — what worked, what fought back, and what’s next.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F10z5yrfjalpjv8fvrjs0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F10z5yrfjalpjv8fvrjs0.png" alt=" " width="720" height="405"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What Orblune does (the short list)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Flat Earth map as wallpaper under your desktop icons
&lt;/li&gt;
&lt;li&gt;Day/night from real sun position
&lt;/li&gt;
&lt;li&gt;City cards with local time
&lt;/li&gt;
&lt;li&gt;Weather on those cards (MET Norway)
&lt;/li&gt;
&lt;li&gt;Optional map themes if you unlock Premium
&lt;/li&gt;
&lt;li&gt;Multi-monitor: turn screens on/off, theme per display when Premium
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Free tier is usable. Premium is a one-time unlock, not a subscription. I built the free path first so I could run it myself every day.&lt;/p&gt;




&lt;h2&gt;
  
  
  Challenge 1: Windows doesn’t want you here
&lt;/h2&gt;

&lt;p&gt;The UI is a Tauri WebView. The painful part is hosting.&lt;/p&gt;

&lt;p&gt;On Windows, live wallpaper usually means parenting your window into Explorer’s &lt;code&gt;WorkerW&lt;/code&gt; layer. Docs for that are mostly blog posts and old forum threads. My first builds either:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;sat on top of icons (useless), or
&lt;/li&gt;
&lt;li&gt;attached once, then died after a display sleep, or
&lt;/li&gt;
&lt;li&gt;“fixed” themselves by reattaching every few seconds and making the taskbar flicker
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I learned the hard way that sending Progman’s magic &lt;code&gt;0x052C&lt;/code&gt; message too often flashes the whole desktop. So I started caching the WorkerW handle and only spawning it when it’s actually missing. I also loosened the “are we still on the right monitor rect?” check — exact pixel match was wrong under DPI scaling and caused false reattach loops.&lt;/p&gt;

&lt;p&gt;One night the wallpaper just vanished. Icons on a blank host. No crash dialog. I sat there clicking the tray icon like that would help. Logging eventually showed the cached parent was dead and we were too polite to recreate it. That fix was small. Finding it wasn’t.&lt;/p&gt;

&lt;p&gt;If you write Windows wallpaper software: budget more time for Explorer than for your shaders.&lt;/p&gt;




&lt;h2&gt;
  
  
  Challenge 2: the globe looked fine; the clocks lied
&lt;/h2&gt;

&lt;p&gt;Early on I had collision code that nudged city cards away from each other so labels wouldn’t overlap. Looked tidy in screenshots. On a live map it meant London slowly drifted off London.&lt;/p&gt;

&lt;p&gt;I ripped the collision nudge out. Cards stay locked to lat/lon. Overlap happens sometimes. I’d rather have an honest pin than a pretty lie.&lt;/p&gt;

&lt;p&gt;Seconds on the clock was another trap. Showing &lt;code&gt;HH:MM:SS&lt;/code&gt; made the card width pulse every second unless the layout was locked. Fixed width + optional seconds only for Premium with “show seconds” on. Sounds obvious now. It wasn’t at 2 a.m. when I thought the font was broken.&lt;/p&gt;

&lt;p&gt;Weather refresh had a similar “obvious in hindsight” bug. I cleared the weather cache while fetching, the line went empty, the card height collapsed, then jumped back. For a live wallpaper you stare at all day, that blink is loud. Fix: keep the last weather on screen until the new payload arrives.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbrv3i8md6qz7s6cfil78.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbrv3i8md6qz7s6cfil78.png" alt=" " width="720" height="360"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Challenge 3: themes, monitors, and “it works on my machine”
&lt;/h2&gt;

&lt;p&gt;Once the host was stable, I graded the Natural Earth day map in the fragment shader — sea glass, ember, noir, ink, frost, sand, and the rest. Same textures, different look.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fytekg6ocwo11ptu6qq1f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fytekg6ocwo11ptu6qq1f.png" alt=" " width="720" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd7s87dsq3urp7zpic8ya.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd7s87dsq3urp7zpic8ya.png" alt=" " width="720" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Multi-monitor came next. Listing monitors in Rust was fine. The product question was harder: if someone has three screens, which ones get Orblune? I ended up with per-display enable toggles, and Premium can set a theme per screen. On a single monitor that UI hides itself so the settings page doesn’t look empty and confused.&lt;/p&gt;

&lt;p&gt;Dual-monitor testing still surprises me. Sleep one panel, wake it, and Windows rearranges work areas just enough to make you doubt your math.&lt;/p&gt;




&lt;h2&gt;
  
  
  Challenge 4: shipping with my name on the exe
&lt;/h2&gt;

&lt;p&gt;Publishing scared me more than WorkerW.&lt;/p&gt;

&lt;p&gt;Signing: I ship an NSIS installer for the current user (no admin). Without an Authenticode certificate, SmartScreen may warn once. I put that on the site honestly. VirusTotal links go on each GitHub release so people can check the build.&lt;/p&gt;

&lt;p&gt;Money: Premium is crypto checkout through a small worker, license signed locally. Getting that path less embarrassing than “email me for a key” took longer than I expected.&lt;/p&gt;

&lt;p&gt;I still hit publish. The site is &lt;a href="https://cbybb.github.io/Orblune/" rel="noopener noreferrer"&gt;cbybb.github.io/Orblune&lt;/a&gt;. If something breaks on your PC, &lt;a href="https://github.com/CByBB/Orblune/issues" rel="noopener noreferrer"&gt;open an issue&lt;/a&gt; or mail &lt;a href="mailto:software.vision@dreambuild.cloud"&gt;software.vision@dreambuild.cloud&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  What’s next: Mac and Ubuntu
&lt;/h2&gt;

&lt;p&gt;Windows was first because that’s what I use daily, and because the wallpaper hosting problem is very Windows-shaped.&lt;/p&gt;

&lt;p&gt;I’m planning native builds for &lt;strong&gt;macOS&lt;/strong&gt; and &lt;strong&gt;Ubuntu&lt;/strong&gt; next. Not a thin Electron wrap-and-pray — I want the same idea (live Earth, clocks, weather) on each platform’s real desktop integration path. macOS and Linux don’t use WorkerW; they have their own rules, permissions, and “please don’t fight the window manager” moments. That’ll be its own pile of notes (probably article &lt;strong&gt;03&lt;/strong&gt; or &lt;strong&gt;04&lt;/strong&gt; once I have scars to show).&lt;/p&gt;

&lt;p&gt;Before that, &lt;strong&gt;02&lt;/strong&gt; will stay on Windows: multi-monitor edge cases, updater weirdness, or whatever breaks in my tray logs this week.&lt;/p&gt;




&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Download / site: &lt;a href="https://cbybb.github.io/Orblune/" rel="noopener noreferrer"&gt;https://cbybb.github.io/Orblune/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/CByBB/Orblune" rel="noopener noreferrer"&gt;https://github.com/CByBB/Orblune&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Issues: &lt;a href="https://github.com/CByBB/Orblune/issues" rel="noopener noreferrer"&gt;https://github.com/CByBB/Orblune/issues&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Email: &lt;a href="mailto:software.vision@dreambuild.cloud"&gt;software.vision@dreambuild.cloud&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for reading. More soon in &lt;strong&gt;02&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;— CByBB&lt;/p&gt;

</description>
      <category>wallpaper</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>rust</category>
    </item>
    <item>
      <title>口コミ記事を読む前に確認したい5つのポイント</title>
      <dc:creator>BB</dc:creator>
      <pubDate>Sat, 22 Aug 2026 08:06:03 +0000</pubDate>
      <link>https://dev.to/codebybb/kou-komiji-shi-wodu-muqian-nique-ren-sitai5tunopointo-54hi</link>
      <guid>https://dev.to/codebybb/kou-komiji-shi-wodu-muqian-nique-ren-sitai5tunopointo-54hi</guid>
      <description>&lt;p&gt;最終確認日は2026年8月22日です。公開情報は変わることがあるので、結論を急がず、公式の案内と照合してください。&lt;/p&gt;

&lt;h2&gt;
  
  
  なぜ口コミだけで判断すると迷いやすいか
&lt;/h2&gt;

&lt;p&gt;強い見出しや感情的な一文は、読んだ直後の印象を大きく左右します。一方で、その一文がどの事実に基づいているかは、記事の後半や別ページにしか書かれていないことがあります。まずは「何が主張で、何が確認できる事実か」を分けると、読み進めやすくなります。&lt;/p&gt;

&lt;h2&gt;
  
  
  確認したい5つのポイント
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;発信者は個人なのか、媒体なのか、公式なのか。 2.いつの情報か。更新日と、事例の発生時期がずれていないか。 3.金額、件数、手順など、検証できる数字や手順があるか。 4.一次情報（公式ヘルプ、契約画面、問い合わせ結果）への参照があるか。 5.同じ主張が、別の独立した情報源でも確認できるか。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  事実と感想を分けて読む
&lt;/h2&gt;

&lt;p&gt;「使いにくい」「対応が遅い」といった感想は、その人の状況では正しいことがあります。ただし、それがサービスの全体像と同じとは限りません。感想は感想として残し、契約条件、支払い、本人確認、サポート窓口など、あとから照合できる項目だけをメモしておくと、次の判断が楽になります。&lt;/p&gt;

&lt;h2&gt;
  
  
  公式情報の当たり方
&lt;/h2&gt;

&lt;p&gt;公式サイトのヘルプ、利用規約、お知らせ、アプリ内の案内を先に開きます。口コミ側の主張と突き合わせるときは、用語が同じか、対象プランが同じか、対象地域が同じかを確認してください。名称が似ていても、別サービスや別時期の話であることはよくあります。&lt;/p&gt;

&lt;h2&gt;
  
  
  不安が残るときの動き方
&lt;/h2&gt;

&lt;p&gt;お金や個人情報に関わる話なら、口コミのコメント欄で結論を出さない方が安全です。公式の問い合わせ窓口、支払い会社、必要なら公的な相談窓口を使います。スクリーンショットやメール履歴など、自分で残せる記録を先に整理しておくと、説明が短くなります。 この記事は、特定のサービスを勧めるためのものではありません。ネット上の評判を読むときの確認手順を、実務的に整理したものです。&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>discuss</category>
      <category>security</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
