<?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: Corey Tasz</title>
    <description>The latest articles on DEV Community by Corey Tasz (@ceedotrock).</description>
    <link>https://dev.to/ceedotrock</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%2F4130326%2F401341d4-82f2-4415-b287-26307e5c205b.jpg</url>
      <title>DEV Community: Corey Tasz</title>
      <link>https://dev.to/ceedotrock</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ceedotrock"/>
    <language>en</language>
    <item>
      <title>Way2: hands-free GPS for the people who drive for work</title>
      <dc:creator>Corey Tasz</dc:creator>
      <pubDate>Sun, 04 Oct 2026 22:38:35 +0000</pubDate>
      <link>https://dev.to/ceedotrock/way2-hands-free-gps-for-the-people-who-drive-for-work-3nmp</link>
      <guid>https://dev.to/ceedotrock/way2-hands-free-gps-for-the-people-who-drive-for-work-3nmp</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Way2: hands-free GPS for the people who drive for work
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;DEV Hacktoberfest Weekend Challenge submission — "Build for a Friend"&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Who it's for
&lt;/h2&gt;

&lt;p&gt;My coworkers. Most of them spend the day driving between job sites — gutters don't install themselves, and the van is always going somewhere. They've all got a phone mount and a GPS app, but every one of those apps wants an account, wants your location history, and wants you tapping a screen at 60 miles an hour. I wanted to build them something simpler: you talk, it handles the driving conversation. No account. No tapping.&lt;/p&gt;

&lt;p&gt;So that's what Way2 is. You say "starting from Cherry Hill, navigate to Philadelphia," and it routes you. "What's my ETA." "Weather along the route." "Traffic on my route." "Any faster route." "Find restaurants." It answers out loud, like a copilot riding shotgun who actually looked at the map.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;A Python app with a conversation loop. Underneath it's seven small modules, and every piece that matters is open:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OpenStreetMap (Nominatim)&lt;/strong&gt; — turns "Cherry Hill" into coordinates, and finds restaurants and rest-worthy spots near the route. Free, no key.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OSRM&lt;/strong&gt; — driving routes with turn-by-turn steps, plus alternative routes when you ask for a faster way. Free, no key.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-Meteo&lt;/strong&gt; — current weather sampled at points along your route, so it can tell you about the rain before you're in it. Free, no key.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TomTom Traffic&lt;/strong&gt; — live flow speeds and incidents on your route. This is the one piece that needs a key, and it's free at developer.tomtom.com. Ask "traffic on my route" and it tells you the delays; ask "any faster route" and the live traffic feeds the answer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Whisper&lt;/strong&gt; — speech-to-text running on your own machine, so your voice never goes to a server. Verified end-to-end: it transcribed a real spoken command word-for-word.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic command parsing&lt;/strong&gt; — regex and keywords, no LLM. When you're driving, "skip the next stop" should do the same thing every time. It does.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Two of us built it in a weekend in one repo, split down the middle by a contract file: one side owns geo/voice/app/traffic, the other owns the trip intelligence (parsing, weather alerts, faster-route checks). The contract is in the repo if you're curious how that worked.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Real run, real APIs, this evening — Cherry Hill, NJ to Philadelphia, PA:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;you&amp;gt; starting from Cherry Hill, NJ
way2&amp;gt; Got it — starting from Cherry Hill Township.
you&amp;gt; navigate to Philadelphia, PA
way2&amp;gt; Destination set: Philadelphia. 8.4 miles, about 16 minutes of driving.
you&amp;gt; traffic on my route
way2&amp;gt; Heavy traffic on 2 of 8 segments, about 1 min of delay
- Jam: Slow traffic
- Road Works: Roadworks
you&amp;gt; any faster route
way2&amp;gt; You're already on the fastest route I can see.
Live traffic: about 2 min of delay on your route. Jam: Slow traffic Road Works: Roadworks
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That traffic was real — TomTom's live feed, sampled at points along the actual route geometry.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;python3 -m way2.app&lt;/code&gt; runs it in text mode. &lt;code&gt;--voice&lt;/code&gt; gives you mic in and spoken answers out. 113 tests, all green; the unit tests mock all HTTP, and the live ones hit the real map, weather, and traffic APIs so we know the whole chain works, not just the mocks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why open innovation matters for this build
&lt;/h2&gt;

&lt;p&gt;Here's the honest version: this app only exists because the open pieces exist.&lt;/p&gt;

&lt;p&gt;A hands-free GPS for a crew of drivers is not a venture-scale idea. Nobody is funding it. If every piece had needed a commercial API key, a billing account, and a terms-of-service review, it would never have gotten past Saturday morning. Instead: Nominatim geocoded every address, OSRM routed every mile, Open-Meteo reported the actual rain, Whisper transcribed without phoning home — all free, all without asking anyone's permission. TomTom's free tier closed the last gap: real-time traffic, the one thing with no good open source, for zero dollars. The whole thing cost nothing and needs one free key. That's not a philosophy, that's just how the weekend went.&lt;/p&gt;

&lt;p&gt;And it changes what the app &lt;em&gt;is&lt;/em&gt;. Because there's no account, there's no location history sitting on somebody's server — the privacy isn't a feature we added, it's what falls out of having no server. Because the map data is OpenStreetMap, a driver in a small town gets the same quality as a driver in a big city; nobody's deciding which places are worth covering. Because the models and code are open, when my coworker says "it'd be nice if it warned me about low bridges," that's a weekend project, not a feature request into a void.&lt;/p&gt;

&lt;p&gt;One honest line: without the TomTom key the app tells you so and sticks to the road network. It won't fake traffic data it doesn't have. I'd rather have that sentence in the product than a traffic feature I can't build honestly.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;Saved home/work spots. Low-bridge warnings for the box trucks. Then I'm handing the repo to the crew and seeing what they complain about first — that's the real roadmap.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/ceedot-rock/Way2" rel="noopener noreferrer"&gt;https://github.com/ceedot-rock/Way2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Built for the DEV Hacktoberfest Weekend Challenge. Apache-2.0.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
      <category>hacktoberfest</category>
    </item>
    <item>
      <title>Refusal as a feature: one source, identical Python/Go/JS — or don’t emit</title>
      <dc:creator>Corey Tasz</dc:creator>
      <pubDate>Thu, 17 Sep 2026 17:45:21 +0000</pubDate>
      <link>https://dev.to/ceedotrock/refusal-as-a-feature-one-source-identical-pythongojs-or-dont-emit-f04</link>
      <guid>https://dev.to/ceedotrock/refusal-as-a-feature-one-source-identical-pythongojs-or-dont-emit-f04</guid>
      <description>&lt;p&gt;Most multi-target / “write once” tools optimize for coverage. If a construct almost maps, they emit something close and hope.&lt;/p&gt;

&lt;p&gt;CuNi does the opposite.&lt;/p&gt;

&lt;p&gt;You write one &lt;code&gt;.cuni&lt;/code&gt; source. The compiler emits to Python, Go, and JavaScript under an &lt;strong&gt;exactness&lt;/strong&gt; contract: identical stdout on all three, or it &lt;strong&gt;refuses&lt;/strong&gt;. There is no approximate mode.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why refuse?
&lt;/h2&gt;

&lt;p&gt;Silent drift is expensive. Teams paper over it with “known differences” docs. CuNi’s product surface is the gate itself:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;cuni check&lt;/code&gt; emits and runs the gated targets and requires matching output&lt;/li&gt;
&lt;li&gt;Free Studio (no install): &lt;a href="https://cuni-studio.fly.dev/" rel="noopener noreferrer"&gt;cuni-studio.fly.dev&lt;/a&gt; — load the default sample → &lt;strong&gt;Run exactness&lt;/strong&gt; → identical py/go/js or refuse → &lt;strong&gt;Publish&lt;/strong&gt; can register a contract on Agent-Rider&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The hosted demo gates the flagship trio (Python / Go / JS). The CLI can exercise a wider list for CI; Studio only promises the seats it actually runs.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this is not
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Not a claim of production maturity (v0.1.x, early)&lt;/li&gt;
&lt;li&gt;Not a Haxe replacement (Haxe optimizes for breadth; we optimize for a refusal property on a small surface)&lt;/li&gt;
&lt;li&gt;Not a ranking story about other languages&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Studio: &lt;a href="https://cuni-studio.fly.dev/" rel="noopener noreferrer"&gt;https://cuni-studio.fly.dev/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Repo: &lt;a href="https://github.com/ceedot-rock/cuni" rel="noopener noreferrer"&gt;https://github.com/ceedot-rock/cuni&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Link tutorial (shared HTTP contracts): &lt;a href="https://github.com/ceedot-rock/cuni/blob/master/docs/LINK_TUTORIAL.md" rel="noopener noreferrer"&gt;https://github.com/ceedot-rock/cuni/blob/master/docs/LINK_TUTORIAL.md&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you have a construct that &lt;em&gt;should&lt;/em&gt; refuse — or one that refuses too eagerly — I want the failing case.&lt;/p&gt;

&lt;p&gt;— Corey Tasz · Slid Phi Labs&lt;/p&gt;

</description>
      <category>programming</category>
      <category>opensource</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
