Channels
Welcome to the Daily Crypto Discussion thread. Please read the disclaimer and rules before participating. Disclaimer: Consider all information posted here with several liberal heaps of salt, and always cross check any information you may read on this thread with known sources. Any trade information posted in this open thread may be highly misleading, and could be an attempt to manipulate new readers by known "pump and dump (PnD) groups" for their own profit. BEWARE of such practices and exercise utmost caution before acting on any trade tip mentioned here. Please be careful about what information you share and the actions you take. Do not share the amounts of your portfolios (why not just share percentage?). Do not share your private keys or wallet seed. Use strong, non-SMS 2FA if possible. Beware of scammers and be smart. Do not invest more than you can afford to lose, and do not fall for pyramid schemes, promises of unrealistic returns (get-rich-quick schemes), and other common scams. Rules: All sub rules apply in this thread. The prior exemption for karma and age requirements is no longer in effect. Discussion topics must be related to cryptocurrency. Behave with civility and politeness. Do not use offensive, racist or homophobic language. Comments will be sorted by newest first. Useful Links: Beginner Resources Intro to r/Cryptocurrency MOONs 🌔 MOONs Wiki Page r/CryptoCurrency Discord r/CryptoCurrencyMemes Prior Daily Discussions - (Link fixed.) r/CryptoCurrencyMeta - Join in on all meta discussions regarding r/CryptoCurrency whether it be moon distributions or governance. Finding Other Discussion Threads Follow a mod account below to be notified in your home feed when the latest r/CC discussion thread of your interest is posted. u/CryptoDaily- — Posts the Daily Crypto Discussion threads. u/CryptoSkeptics — Posts the Monthly Skeptics Discussion threads. u/CryptoOptimists- — Posts the Monthly Optimists Discussion threads. u/CryptoNewsUpdates — Posts the Monthly News Summary threads. submitted by /u/AutoModerator [link] [Kommentare]
Ich darf wahrscheinlich keine Werbung für meine Website machen, aber theoretisch wäre es für alle spielbar. submitted by /u/taaaso [link] [Kommentare]
v0.1.57 — Real-Time GPS Tracking Station GPS SATELLITESTRACKER A real-time GPS satellite tracking dashboard using data from USB GPS Receivers Docker containers and a lot of coffee and cake Live Dashboard 0 Parquet Log Files Created 0 GB Total Data So Far 0 GPS Satellites Seen 0 Days to Build 0 Cups of Earl Grey 0 Cakes Consumed Key Features Real-Time Satellite Intelligence A comprehensive GPS tracking dashboard with 3D globe visualisation, signal analysis, and real world satellite telemetry. 3D Globe View Interactive Three.js globe displaying satellite positions, orbital paths, and real-time tracking with multiple camera perspectives, zoom and pan controls Signal Analysis Real-time SNR monitoring with bar charts, line plots, skyplot radar view, and historical sparkline telemetry for each satellite. Satellite Directory Browse all GPS satellites with spacecraft specifications, launch history, constellation block details, and real-time status. Historical Playback Time-travel through logged GPS data with a timeline slider, variable playback speeds, and frame-by-frame analysis. Receiver Management Track multiple GPS receiver locations simultaneously with coordinate display, error scatter plots, and CEP accuracy metrics. Real-Time Telemetry Live SSE streaming of GPS data with auto-refresh, instantaneous satellite position updates, and signal quality monitoring. System Architecture How It Works A five-container architecture: USB serial data ingestion via MQTT, visualised through a Flask web frontend. USB GPS Receiver Cheap USB GPS module connected via serial port, outputting standard NMEA 0183 over serial. Backend Pipeline Raspberry Pi parsing NMEA data, computing satellite positions, and publishing structured telemetry to MQTT brokers. Processing Service Docker based Python processing service producing structured parquet files from the MQTT subscriptions Web Dashboard Modern Flask application serving Three.js 3D globe, DuckDB-powered Parquet queries, and SSE streaming for live updates. Coming Soon Build or buy a tracking device to stream your own telemetry and geo-location data directly to the server. Future Hardware Support Support for the battery powered LILYGO TTGO T-A7670G ESP32 based board with global 4G LTE and GPS. Get Started Try the Live Dashboard Explore the full GPS tracking interface with real-time satellite data, 3D globe visualisation, and signal analysis tools. Launch Live Dashboard About The Project A weekend hobby project turned experiment in agentic coding — building a personal GPS tracking station from scratch. Creator Robert Wolf Machine Learning Engineer LinkedIn Facebook YouTube [email protected] System Information Created Date: 8th June 2026 Software Version: v0.1.57 Parquet Log Files: 46 files Total Data Size: 7.24 MB Date Coverage: 2026-06-09 to 2026-06-19 Receiver Location: 53.383°N, 2.173°W The Story Inspired by a recent Veritasium video on GPS jamming over Europe and Canada "Something is jamming GPS over Europe. Here's what we found", I decided to kick off a weekend hobby project to build a personal GPS tracking station. My goal wasn't just to log data, but to run an experiment in using agentic coding to help me. I picked up a cheap USB GPS receiver, fired up my development server running TrueNAS SCALE, and used Google's Antigravity CLI to build a two-container architecture: a backend to ingest USB serial data, and a friendly web frontend. Within three hours and about 50 to 60 micro-revisions through the CLI, I had a working Docker container logging GPS data into hourly Parquet files. I never touched a single line of backend code in that first three house and the code quality was good. Next up was the WebUI. I built it panel by panel, feature by feature completely through the Antigravity CLI. While the AI nailed vague prompts perfectly most of the time, it also went down some bizarre rabbit holes. I frequently had to step in as the "Senior Dev" to course-correct. Out of the entire build, only a couple of bugs regarding the time slider defeated the agent, requiring me to step in and manually tweak the code. I will be updating the website from time to time. If you have any problems please wait a few minutes as I'm probably updating the code and docker container behind the scenes. Technology Stack Python 3.13 Flask Gunicorn Three.js DuckDB Parquet MQTT Docker TrueNAS SCALE pynmea2 pyserial Antigravity CLI OpenCode SSE Orbitron UI paho-mqtt pyarrow GPS-Tracker Tracking Dashboard A full-featured GPS satellite monitoring interface with three interconnected views: 3D globe, signal noise analysis, and satellite directory. TACTICAL 3D Orbital perspective with live satellite positions, orbital paths, and real-time tracking overlays ERROR HEAT MAP GPS accuracy error distribution with colour-coded heat overlay showing positional uncertainty zones EARTH VIEW Clean Earth perspective with continent outlines and lat/lon grid for global spatial context 3D Globe View Interactive Three.js-powered globe with multiple viewing modes: Tactical 3D – orbital perspective with satellite positions Observer Zenith – view from receiver looking up Trajectory – orbital satellite path visualisation Time-Space – temporal positioning view Error Heatmap – GPS accuracy heat overlay Signal Noise Analysis Comprehensive signal quality monitoring tools: Real-time SNR bar chart for all visible satellites Historical SNR line plots with time navigation Signal statistics (avg, max, min SNR) Skyplot polar radar view of satellite positions Satellite Directory Detailed spacecraft information database: PRN identification and spacecraft names Constellation block and manufacturer data Launch dates and vehicle information Real-time status and visibility tracking Historical Playback Time-travel through logged GPS data: Interactive timeline slider for frame navigation Playback at 1x, 2x, 5x, 10x, 20x speeds Multi-timezone time display Proximity alerts and path limit warnings Real-Time Telemetry Live data streaming: Sub-satellite latitude/longitude coordinates Altitude, elevation, and azimuth angles Range-to-receiver distance calculation Signal SNR history sparklines Receiver Management Multi-receiver GPS tracking support: Multiple receiver coordinate display GPS error scatter plot visualisation Circular Error Probable (CEP) metrics Per-receiver historical data analysis Try It Now Launch the Dashboard Visit the live dashboard to explore real-time GPS satellite tracking data. Open Live Dashboard
Firetiger runs a fleet of agents that investigate incidents, monitor deployments, and dig through telemetry on behalf of our customers. Every one of those agents is, at its core, a loop around an LLM, which means our single biggest cost of goods sold is inference. The models we choose to
The vehicles on American roads have grown larger — and they are killing thousands more pedestrians, a Times investigation found.
This is an automated check to get rid of most bots. If you have JavaScript enabled, it should redirect to the real page soon. If you don't, it still should redirect soon, but you can click here if you're fast.
It costs me just several dollars a month, and I remember what I learned much better. Here's what I built and how.
Newfoundland and Labrador (NL) introduced Canada’s first sugar-sweetened beverage (SSB) tax in September 2022. Compared with national averages, NL has higher intakes of SSBs, lower intakes of plain water and milk, with higher rates of overweight and ...
underreactedjapanese verb conjugation the simple hard way21. Mai 2026japanese verbs are awesome. you can take the dictionary form of a verb (for example, "taberu", to eat) and turn it into many forms:taberu ("eat"): tabemasu (polite "eat"), tabemashita (polite "did eat"), tabemasen (polite "not eat"), tabemasendeshita (polite "did not eat"), tabenai (casual "not eat"), tabenakatta (casual "did not eat"), tabetai ("want to eat"), tabeta (casual "did eat"), tabete ("eat and...").nomu ("drink"): nomimasu (polite "drink"), nomimashita (polite "did drink"), nomimasen (polite "not drink"), nomimasendeshita (polite "did not drink"), nomanai (casual "not drink"), nomanakatta (casual "did not drink"), nomitai ("want to drink"), nonda (casual "did drink"), nonde ("drink and...").the art (or science) of making these forms correctly is called conjugation. i've tried to learn Japanese verb conjugation a few times before. at first, it looks simple (you just swap suffixes!), but there's a lot of nuance that can drag you down as a learner.i found a system i prefer but let me first explain why i struggled.how conjugation is usually taughta common way to explain conjugation looks like this:1.there are two groups of verbs (often called -ru and -u verbs).2.for each suffix (like -masu), you have to learn how to correctly attach it to a verb of either group (using tables like these).i found this approach to teaching deeply frustrating and unsatisfying.first, calling them -ru and -u verbs is confusing because you can't always tell the group by how the word ends. sometimes it's what you expect ("taberu", to eat, is a -ru verb; "nomu", to drink, is an -u verb). okay, so if something ends with -ru then surely it's a -ru verb? actually, not necessarily! "kaeru" (to go home) is an -u verb.well, shit.if groups alone weren't confusing, take this: then you have to memorize a dozen of seemingly arbitrary rules like "く (ku) becomes き (ki) before masu" for different suffixes. some textbooks further separate the -u verbs into five subcategories to teach these rules.this makes japanese verb conjugation seem hard!however, beneath these surface difficulties there is a surprisingly elegant system that's obscured by how it often gets explained. in this article, i'll explain it in a "simple hard" way. this means that instead of memorizing a bunch of individual special cases, we'll try to slowly build a coherent system from a small number of primitives.it's just concatenationlet's go back to these two examples:taberu ("eat"): tabemasu (polite "eat"), tabemashita (polite "did eat"), tabemasen (polite "not eat"), tabemasendeshita (polite "did not eat"), tabenai (casual "not eat"), tabenakatta (casual "did not eat"), tabetai ("want to eat"), tabeta (casual "did eat"), tabete ("eat and...").nomu ("drink"): nomimasu (polite "drink"), nomimashita (polite "did drink"), nomimasen (polite "not drink"), nomimasendeshita (polite "did not drink"), nomanai (casual "not drink"), nomanakatta (casual "did not drink"), nomitai ("want to drink"), nonda (casual "did drink"), nonde ("drink and...").can you spot any patterns between these two?if you focus on the first example, conjugation looks straightforward. yes, it's a lot of suffixes, but each is added by pure concatenation:tabe + ru = taberutabe + masu = tabemasutabe + mashita = tabemashitatabe + masendeshita = tabemasendeshitatabe + masen = tabemasentabe + nai = tabenaitabe + nakatta = tabenakattatabe + tai = tabetaitabe + ta = tabetatabe + te = tabetewe're going to call the left part — the part that is unchanging between these — the stem of our verb. taberu's stem is "tabe".so now you (almost) know how to do conjugation:To conjugate a Japanese verb, append the suffix to its stem. For example, tabe + masu = tabemasu.in a sense, this is pretty much the entire principle! but now we need to refine our understanding of both a "stem" and of "appending".a wildcard vowelin the first example, the stem was very simple: just tabe.let's now have a close look at our second example:nomu ("drink"): nomimasu (polite "drink"), nomimashita (polite "did drink"), nomimasen (polite "not drink"), nomimasendeshita (polite "did not drink"), nomanai (casual "not drink"), nomanakatta (casual "did not drink"), nomitai ("want to drink"), nonda (casual "did drink"), nonde ("drink and...").can you spot any patterns here?there's a few things that come to my mind:1.it's not entirely clear what nomu's stem is. is it nomu? but then, we define stem as the unchanging part — whereas the last vowel seems to alternate, like nomi or noma in some cases.2.even if we pick nom as a stem (which is weird! you can't even write "nom" in hiragana because there's no solo "m"), that still doesn't quite work because nonda and nonde break the pattern.for now, let's ignore nonda / nonde and focus on the first issue.we'll say that nomu does have a stem.we'll write it like this: nom*.wait, what's that?here, * is like a wildcard vowel that's "waiting to be filled". it could be noma, nomi, nomu, nome, or nomo depending on context. when writing the stem, i'll always write it neutrally like nom*.but how is the actual vowel determined? let's try to spot a pattern:nom* + masu = nomimasunom* + mashita = nomimashitanom* + masendeshita = nomimasendeshitanom* + masen = nomimasennom* + nai = nomanainom* + nakatta = nomanakattanom* + tai = nomitaiit seems like each of the suffixes "smuggles" its preferred secret vowel that's normally not visible. we wanted to add "masu" but got "imasu". we wanted to add "nai" but we got "anai", and so on.this is, in fact, the case!each of these suffixes starts with a (secret vowel). it only reveals itself if there's a * wildcard before it; otherwise it disappears:nom* + (i)masu = nomimasunom* + (i)mashita = nomimashitanom* + (i)masendeshita = nomimasendeshitanom* + (i)masen = nomimasennom* + (a)nai = nomanainom* + (a)nakatta = nomanakattanom* + (i)tai = nomitaiin the case of tabe, there's no wildcard, so there's nowhere for the suffix's secret vowel to go. in those cases, it just gets discarded:tabe + (i)masu = tabemasutabe + (i)mashita = tabemashitatabe + (i)masendeshita = tabemasendeshitatabe + (i)masen = tabemasentabe + (a)nai = tabenaitabe + (a)nakatta = tabenakattatabe + (i)tai = tabetaiso it seems like we can formulate a rule to refine concatenation:A suffix may start with a secret vowel. If the stem ends with a wildcard, the vowel is revealed: nom* + (i)masu = nomimasu. Otherwise, the vowel is discarded: tabe + (i)masu = tabemasu.with this refinement, we can now conjugate the vast majority of verbs correctly. now let's pause and take stock of where we are.so that's what the verb groups areso far we've identified two kinds of verbs:tabe + (i)masu = tabemasutabe + (i)mashita = tabemashitatabe + (i)masendeshita = tabemasendeshitatabe + (i)masen = tabemasentabe + (a)nai = tabenaiandnom* + (i)masu = nomimasunom* + (i)mashita = nomimashitanom* + (i)masendeshita = nomimasendeshitanom* + (i)masen = nomimasennom* + (a)nai = nomanainom* + (a)nakatta = nomanakattanom* + (i)tai = nomitailet's now connect it to the concepts you've heard before.verbs like taberu are called -ru verbs or, traditionally, "ichidan" verbs (literally meaning "one-row"). verbs like nomu, on the other hand, are called -u verbs, or traditionally, "godan" (five-row).so why are they called this way?in ichidan ("one-row") verbs like taberu, the last syllable of the stem is fixed. it's always going to be be, no matter the suffix:it stays on a single row in the hiragana table, hence "one-row".on the other hand, in godan ("five-row") verbs like nomu, the final syllable of the stem alternates between ma, mi, mu, me, and mo:it spans all the five rows, which is why it's godan ("five-row"). the m* "wildcard" represents the entire ma/mi/mu/me/mo column.why romaji is actually goodso far, i've exclusively used romaji in these explanations.this is actually completely intentional. some purists may dislike that, but if you're able to read it without imposing the absurdities of English language pronunciation, i think it provides a much clearer intuition for Japanese verb conjugation than writing it in hiragana.for example, consider these conjugations that you can already do:nom* + (i)masu = nomimasuyob* + (i)masu = yobimasukik* + (i)masu = kikimasuor these:nom* + (a)nai = nomanaiyob* + (a)nai = yobanaikik* + (a)nai = kikanaisome textbooks will suggest you to learn them like this:む (mu) changes to み (mi) when adding ます(masu)ぶ (bu) changes to び (bi) when adding ます(masu)く (ku) changes to き (ki) when adding ます(masu)む (mu) changes to ま (ma) when adding ない(nai)ぶ (bu) changes to ば (ba) when adding ない(nai)く (ku) changes to か (ka) when adding ない(nai)which is correct but obscures the much simpler phonetical intuition:* + (a) = a* + (i) = iromaji conveys the intuition because you "see" the vowel moving. but this requires "cracking" the syllables which hiragana can't do.why romaji is actually badromaji is good for phonetical explanations but you should still "think" in japanese syllables. here's an easy way to verify your thinking.consider the word hanasu ("speak"). let's try to conjugate it. to conjugate any verb, we must first find out its stem. (you can google it, check the dictionary, or sometimes guess — more on that later.)the stem for hanasu is hanas*.now let's try to apply the rules:hanas* + (i)masu = hanasimasu (wrong!)hanas* + (a)nai = hanasanaias you can see, one of these is wrong.can you figure out why?(hint: recall the hiragana table. scroll down for answers)here's the corrected version:hanas* + (i)masu = hanashimasuhanas* + (a)nai = hanasanaithere is no "si" in the hiragana table, so s* + (i) = shi:this is why it's important that you don't actually "think in" romaji.s* + a = sas* + i = shis* + u = sus* + e = ses* + o = soi'm using romaji as a convenient way to refer to phonetics in text. however, your "mental algebra" should match the hiragana table.to verify your understanding so far, let's do an exercise.exercise checkpoint: a verb equationhere is a casual negative form of some verb we don't know:... + (a)nai = matanaiyour task is to produce its polite negative using -(i)masen:... + (i)masen = ???(hint: figure out the "..." stem first. scroll down for answers)first, let's figure out the stem. in the first "equation", i've highlighted mata, which tells us that the stem must be mat*:mat* + (a)nai = matanaiso this is a godan ("five-row") verb which alternates vowels. we're adding (i)masen, so t* will now "eat" the "i", so we need t* + (i):mat* + (i)masen = machimasenbut here's a trap — it's machimasen, not matimasen!this is not some fancy exception, it's just that "ti" literally doesn't exist on the table. at the intersection of t-column and i-row is chi:t* + a = tat* + i = chit* + u = tsut* + e = tet* + o = toso this is a reminder to not think in romaji when you do calculations.when we conjugate godan verbs, we literally go up and down the column. (maybe all these textbooks that used hiragana had a point!)(note i could also have used a different romanization that renders し as "si", つ as "tu", and ち as "ti" for this article. i decided to not because everyone else uses romaji, and once you understand this point once, you shouldn't have a difficulty doing this in your head.)now let's see if you got it!what is the result of this calculation in normal romaji?mat* + u = ???(check yourself against the answer.)you're 80% therelet's recap the rules you know so far:1.To conjugate a verb, append a suffix to its stem.2.Stems ending with * "accept" the (secret) vowel of the suffix. Otherwise, the secret vowel gets discarded.3.When we do calculations, we always think in terms of the actual Japanese sounds (s + i = shi), not romaji.as long as you know the stems, you can now conjugate many many verbs into many forms, even if you have no idea about meanings:miru ("see")mi is the stemmi + (i)masu = mimasu ("see", polite)mi + (i)masen = mimasen ("not see", polite)mi + (a)nai = minai ("not see", casual)oyogu ("swim")oyog* is the stemoyog* + (i)masu = oyogimasu ("swim", polite)oyog* + (i)masen = oyogimasen ("not swim", polite)oyog* + (a)nai = oyoganai ("not swim", casual)neru ("sleep")ne is the stemne + (i)masu = nemasu ("sleep", polite)ne + (i)masen = nemasen ("not sleep", polite)ne + (a)nai = nenai ("not sleep", casual)kaer* ("come home")kaer* is the stemkaer* + (i)masu = kaerimasu ("come home", polite)kaer* + (i)masen = kaerimasen ("not come home", polite)kaer* + (a)nai = kaeranai ("not come home", casual)iru ("exist" for alive beings)i is the stemi + (i)masu = imasu ("exist" for alive beings, polite)i + (i)masen = imasen ("not exist" for alive beings, polite)i + (a)nai = inai ("not exist" for alive beings, casual)iru ("be needed")ir* is the stemir* + (i)masu = irimasu ("be needed", polite)ir* + (i)masen = irimasen ("not be needed", polite)ir* + (a)nai = iranai ("not be needed", casual)read these and convince yourself that you could've done all these conjugations on your own as long as you're told what the stem is.the last two are particularly interesting because these are two different words (いる and 要る) that have the same romaji ("iru") but that different stems (i vs ir*) and therefore different conjugations.this highlights that you don't "really" know a verb unless you either know its stem or can guess it (more on that just below).if you want to test yourself, try conjugating these:iku ("to go"), the stem is ik*okiru ("to get up"), the stem is okishinu ("to die"), the stem is shin*kiru ("to wear", 着る), the stem is kikiru ("to cut", 切る), the stem is kir*notice the last two are different verbs; one ichidan, another godan.optional: guessing stemsnow we're gonna take a small break from conjugating!a different topic: stems.so far i've said that to conjugate a verb, you need to know its stem. that's true, but often, you can easily just guess the stem.first, if your word's dictionary form doesn't end in -ru, it's trivial. for example, take oyogu, matsu, hanasu, yobu, nomu. the last kana column gives you the stem: oyog*, mat*, hanas*, yob*, nom*. so if the word doesn't end in -ru, finding the stem is straightforward.not so lucky and got a "ru" ending? check what vowel before the "ru". it it's one of -aru, -oru, -uru, then it's also a godan verb.for example, wakaru has "aru" so the stem is wakar*; moru has "oru" so we get mor*; tsukuru has "uru" so we get tsukur*. i imagine "a o u" being "sticky" and "gluing" the "r" to the stem.okay, by this point, if you're still here, you either have something ending with -iru or -eru. at this point you're a bit screwed because it could go either way. knowing some conjugations can really help. for example, knowing miru's polite form is mimasu tells you that "the thing in common" between them is mi, so mi must be the stem.conversely, knowing hairimasu and hairu are two forms of the same verb tells you that its stem must be alternating vowels — so, hair*.there's some other heuristics and lists you can use here to get very good at guessing but at this point you won't benefit much from it.when in doubt, you can always check in the dictionary. and when you learn a new verb, make sure to learn its stem! in fact, that's part of why i like stems so much as a concept: to me, remembering a verb together with a stem, like "kaeru" or "miru", is much easier than remembering "kaeru is a -u verb" or "miru is a -ru verb".special case: [vowel] + anow that you understand the rules for how to do conjugation, we're going to layer on a few special cases you need to watch out for.special cases are always annoying. the main redeeming thing i can say about them is that they all have a flavor of being driven by the phonetics, i.e. "it's easier to say things this way". i don't think of them as breaking the system — they're more like output formatting.you might recall these special cases from the hiragana table: t* + i = chit* + u = tsus* + i = shithey're not "really" special from the Japanese perspective so it's more of an artifact of using romaji in the article. however, there are some cases that feel special even from the Japanese point of view.consider this verb:kau ("buy")ka* is the stemka* + (i)masu = ???ka* + (a)nai = ???if we follow our previous approach, we'll end up with:kau ("buy")ka* is the stemka* + (i)masu = kaimasuka* + (a)nai = kaanai (wrong!)this is... almost right. however, filling * with a right after a vowel is not allowed. in that case, we must separate the vowels with w:kau ("buy")ka* is the stemka* + (i)masu = kaimasuka* + (a)nai = kawanaia slightly more correct way to think about this is that kau is "actually" ka[w]u, and thus the stem is ka[w]*, but this [w] is a historical sound that disappeared in every form other than before a. so it only "shows up" when "a" is glued to another vowel before it:a* + a = awai* + a = iwau* + a = uwae* + a = ewao* + a = owa(the last two are theoretical as godan stems never end with o/e.)got it?let's try a different verb to check your understanding:iu ("say")i* is the stemi* + (i)masu = ???i* + (a)nai = ???i* + (i)masen = ???i* + (a)nakatta = ???i* + (i)mashita = ???i* + (i)tai = ???fill these in yourself. (scroll down for answers)the answers are:iu ("say")i* is the stemi* + (i)masu = iimasui* + (a)nai = iwanaii* + (i)masen = iimaseni* + (a)nakatta = iwanakattai* + (i)mashita = iimashitai* + (i)tai = iitaiagain, we could have said that the "real" stem here is i[w]*, but the [w] in it has almost entirely dissolved except if it's before a.(the story of how this happened: many centuries ago, the consonant we now write as "w" descended from a "p". at that time, "kau" was "kapu" so its -(a)nai form would be "kapanai"; "iu" was "ipu", which would give "ipanai". in a few stages, "p" softened into "w", surviving only before "a". everywhere else it faded completely.)a recap so farlet's recap the rules you know one more time:1.To conjugate a verb, append a suffix to its stem.2.Stems ending with * "accept" the (secret) vowel of the suffix. Otherwise, the secret vowel gets discarded.3.When we do calculations, we always think in terms of the actual Japanese sounds (s + i = shi), not romaji.4.For historical reasons, [vowel] + a becomes [vowel] + wa.these let you complete all of these forms except the last two:taberu ("eat"): tabemasu (polite "eat"), tabemashita (polite "did eat"), tabemasen (polite "not eat"), tabemasendeshita (polite "did not eat"), tabenai (casual "not eat"), tabenakatta (casual "did not eat"), tabetai ("want to eat"), tabeta (casual "did eat"), tabete ("eat and...").nomu ("drink"): nomimasu (polite "drink"), nomimashita (polite "did drink"), nomimasen (polite "not drink"), nomimasendeshita (polite "did not drink"), nomanai (casual "not drink"), nomanakatta (casual "did not drink"), nomitai ("want to drink"), nonda (casual "did drink"), nonde ("drink and...").the last two require some special attention but are incredibly useful.the tricky ones: -ta and -te formsfinally, let's have a look at these forms:tabeta ("did eat", casual)tabete ("eat and...")the latter is particularly useful for building complex sentences. since they're almost completely identical, we'll focus just on the -ta.for ichidan (no * wildcard in the stem), adding -ta "just works":tabe + (i)ta = tabetane + (i)ta = netami + (i)ta = mitabut for godan verbs (with the wildcard in the stem), it's trickier. the -(i)ta and -(i)te forms conjugate differently from every other form because the sounds got mangled over time due to fast speech. so this part requires at least some degree of rote memorization.the one case that's well-behaved and plays by our rules is s*:hanas* + (i)ta = hanashitaas for the other patterns, they got collapsed and lost some sounds, similar to how "did not" collapsed over time to "didn't" in English.nasal-ish sounds (m, n, b) collapsed to -nda:nom* + (i)ta = nondashin* + (i)ta = shindayob* + (i)ta = yonda(notice how saying "nomita" fast kinda gives you "nonda")k and g collapsed into -ita and -ida:kak* + (i)ta = kaitaoyog* + (i)ta = oyoida(notice how g's voicing gets transferred to d)for every other case, the entire * syllable collapses into -tta:kaer* + (i)ta = kaettatat* + (i)ta = tattaa* + (i)ta = attaand that's it for the special cases! you'll just have to remember them. we've only covered -(i)ta, but -(i)te works the same way.conjugate away!and now you should understand how to form all these conjugations:taberu ("eat"): tabemasu (polite "eat"), tabemashita (polite "did eat"), tabemasen (polite "not eat"), tabemasendeshita (polite "did not eat"), tabenai (casual "not eat"), tabenakatta (casual "did not eat"), tabetai ("want to eat"), tabeta (casual "did eat"), tabete ("eat and..."), and so on.nomu ("drink"): nomimasu (polite "drink"), nomimashita (polite "did drink"), nomimasen (polite "not drink"), nomimasendeshita (polite "did not drink"), nomanai (casual "not drink"), nomanakatta (casual "did not drink"), nomitai ("want to drink"), nonda (casual "did drink"), nonde ("drink and...").there are some other similar suffixes that are formed the same way.this is genuinely a lot! you should be proud of yourself :) it will take time to actually learn to use these conjugations but just being able to do them correctly is, in my opinion, quite a milestone. i also think it is easier to understand the mechanics separately from the meanings.these are the rules that you're walking away with:1.To conjugate a verb, append a suffix to its stem.2.Stems ending with * "accept" the (secret) vowel of the suffix. Otherwise, the secret vowel gets discarded.3.When we do calculations, we always think in terms of the actual Japanese sounds (s + i = shi), not romaji.4.For historical reasons, [vowel] + a becomes [vowel] + wa.5.For godan -ta and -te, s* is normal, m/b/n burn down to -nda, k and g burn down to -ita and -ida, and the rest burns to -tta.that's it!when you get to actually using the conjugations, here's one tip: ask yourself (1) is it polite? (2) is it negative? (3) is it past? in that exact order. doing this will help you find the right suffix. (you can draw a flowchart with these questions to see why this order helps.)for practice, i'd recommend giving claude some verbs and asking it to ask you to conjugate them to a specific form one by one.it is, of course, a good idea to eventually practice with hiragana.the exceptionsoh nooooo! we have exceptions!actually it's just a few words that conjugate in their own way:suru / shimasu / shinai / shita — just remember thesekuru / kimasu / konai / kita — just remember thesenegative form of aru is just "nai" rather than "aranai".iku becomes itta and itte rather than iita or iite in ta/te formsthere's a few other verbs (kudasaru, nasaru, irassharu, ossharu, gozaru, tou, kou) with very small differencesyou can learn these differences as you learn those words.one more thingokay, you can seriously drop off now.however, there's one more thing we haven't talked about...given some stem, how do you actually do the dictionary form?let's think: for tabe stem, the dictionary form is taberu, so we added -ru. for nom*, the dictionary form is nomu, so we added -u.so...could we say...maybe it's not just -u and -ru, but... a unified -[r]u?wait, not some new notation at the very end of the article!!!but hear me out.so far, we've only seen suffixes with like -(i)masu, -(a)nai, where (i) and (a) are "secret vowels" activated by the *.but what if the -u/-ru form itself is like a -[r]u suffix where [r] is a "secret consonant" that always disappears on meeting *?this would "explain" why sometimes we get -u and sometimes -ru:tabe + [r]u = taberumi + [r]u = mirune + [r]u = nerunom* + [r]u = nomukaer* + [r]u = kaeruhanas* + [r]u = hanasuthe u in nomu is just the vowel from [r]u jumping into the * slot.note how it works in exact reverse to "secret vowels":tabe + (i)masu = tabemasumi + (i)masu = mimasune + (i)masu = nemasunom* + (i)masu = nomimasukaer* + (i)masu = kaerimasuhanas* + (i)masu = hanashimasuin other words, the * wildcard "reveals" () but it "deletes" [].this could just be a fun little aside but it turns out that this pattern also extends beyond the -[r]u suffix to more useful suffixes!for example, there is also a conditional -[r]eba suffix:tabe + [r]eba = tabereba ("if [they] eat")mi + [r]eba = mireba ("if [they] see")ne + [r]eba = nereba ("if [they] sleep")nom* + [r]eba = nomeba ("if [they] drink")kaer* + [r]eba = kaereba ("if [they] come home")hanas* + [r]eba = hanaseba ("if [they] speak")again, e in nomeba is the vowel from [r]eba jumping into the * slot.similarly, there's also a causative -[s]aseru suffix:tabe + [s]aseru = tabesaseru ("make/let [them] eat")mi + [s]aseru = misaseru ("make/let [them] see")ne + [s]aseru = nesaseru ("make/let [them] sleep")nom* + [s]aseru = nomaseru ("make/let [them] drink")kaer* + [s]aseru = kaeraseru ("make/let [them] come home")hanas* + [s]aseru = hanasaseru ("make/let [them] speak")same exact pattern as -[r]u and -[r]eba!did i already tell you that Japanese conjugation is a neat and elegant system? i haven't studied these forms yet but i hope to one day.thank you for reading!the mental model used in this article is partially inspired by Nasukawa (2010), "No consonant-final stems in Japanese verb morphology" and free online materials on godan and ichidan verbs.i'm a beginner in learning Japanese, but i've tried to stay accurate. if you find mistakes or inaccuracies, please ping .physics as a game loop. part 1: objects and wavesatproto made simple: granular permissionsjapanese language linguistics underreactedposts i haven't written yet
How employees in the tech sector see the world, themselves, and the (im)possibility of change.