My interests

Coqui

In my study of Deep Neural Networks (DNN), I wanted to explore text-to-speech (TTS).

One problem I wanted to solve is that my blog posts mix English and Japanese.

After exploring various TTS options, I switched from monolingual Japanese models to Coqui’s XTTS, a multilingual system that can speak English and Japanese in the same voice. The difference was immediate. Kokoro sounded OK for pure Japanese, but it forced English into Japanese phonetics. XTTS, on the other hand, handled mixed-sentence structures smoothly and maintained a consistent female voice across both languages.

I am happy to meet you、よろしくお願いします。Today we can study together、一緒に勉強しましょう。


With a few lines of code and a reference audio clip, XTTS generated natural-sounding speech for an entire paragraph, blending English greetings, simple Japanese phrases, and everyday expressions. Both languages were pronounced correctly, with tone and pacing that felt unified. Importantly, the model applied the same cloned voice to every line, exactly what I need for a bilingual macOS avatar.

The output quality is now good enough to move forward. The next step will be fine-tuning the model on a larger dataset of my own recordings, integrating the TTS pipeline into a SwiftUI interface, and eventually building a complete English-Japanese teaching assistant that speaks in a clear, friendly voice. An audiobook generator could be possible. For now, hearing mixed-language speech flow naturally from my own custom voice model feels like a small but meaningful success.

Mt. Si

 Dropping kids to school in Snoqualmie. Elks, mountains.



soups

Many online videos warn about vegetables you should never eat, especially those rich in oxalates. The tone is dramatic. The reality is much more benign.

I grew up with Polish soups like barszcz (beet soup) and pomidorowa (tomato soup), and now I often cook Japanese bowls like miso shiru (味噌汁) or soba (蕎麦). My soups are based on broth, slow cooking, and simple balance. They do not fit the fear-based approach that thrives on the internet.

The research on oxalates has a solid foundation, but it does not condemn these foods. The risk mainly applies to people who already form kidney stones or who eat high-oxalate foods without enough minerals.

When vegetables like beets meet warm broth, the story changes. A good bone base carries calcium and magnesium. These bind oxalates in the gut, lower absorption, and make the meal gentle on the kidneys. Traditional cooking understood this long before anyone named the chemistry.

In Poland, soups start with bones, water, and herbs. In Japan, miso and soba are made with dashi (出汁), fermented and fresh plants, seaweed, and mushrooms. A bowl of warm broth does more for health than any YouTube warning list. It keeps fluid moving through the body, supports digestion, and brings minerals that soften the sharper vegetables.

So when I hear strict rules about what never to eat, I remind myself that a good soup supports a long life better than anxiety ever will.

07.b The Fifteen-Minute Interval Habits

More than twenty years ago, I wrote a short blog post on shaping habits in fifteen-minute intervals. Back then, I was aware of the Pomodoro technique. The idea was interesting, but it did not fit my philosophy. The rotary kitchen timer rang like an alarm. It broke concentration. It told me to get up and walk. It was a device designed to interrupt, not to deepen attention. It certainly did not feel like Zen (禅).

Years earlier, in 1996, while studying Buddhism (or bukkyō, 仏教) in Okinawa (沖縄), I had learned that Zen (禅) favors presence without force, attention that is steady rather than agitated, a practice that does not shout at you. I did not yet understand how to apply that to daily work, but the seed was planted.

Initially, the fifteenth minute was a quarter of the hour "bubble" in the time-tracking app I used. Even today, I time my TODO habits in "quarters".

This practice has stayed with me because it makes life manageable. Fifteen minutes is long enough to make real progress but short enough to begin without hesitation. It removes the weight of significant goals. It keeps the day from spiraling into worry about the future or regret about the past. Presence fits inside a quarter hour.

Only much later did I find a better companion for the fifteen-minute rhythm. It is a small, quiet hourglass that sits on my desk today. It measures fifteen minutes of sand, but more importantly, it measures my intention. It does not ring. It does not command. It simply flows. Sometimes I notice it. Sometimes I forget it completely, and it runs long past empty. That is the beauty of it. The hourglass never pulls me out of flow, or what Japanese thinkers might call mushin (無心), a mind not entangled. It is a witness, not a supervisor. A presence, not a device. 

When I flip it over, I begin with one thing. Reading, writing, studying, programming, sharpening my mental and physical tools. For fifteen minutes, I commit to staying inside that small frame. Nothing dramatic. No pressure to finish. The task simply receives full attention for that interval. If the sand runs out and I am still absorbed, I continue. If I feel scattered, I have it as a reminder. 





Returning to the hourglass restores clarity of mind and focus on the task. It becomes a physical expression of ichigyō zammai (一行三昧), the Japanese pattern of complete absorption in a single line, a single act. It also pairs naturally with the Stoic way of doing what is right in front of you, nothing more.

The fifteen-minute practice is still the most reliable way I know to build flow and steady habits. You turn the glass, begin, remain with the moment, and let the sand complete its journey. Then you choose again. Over time, these small intervals shape a life that feels grounded, attentive, and quietly productive.

Habits are shaped by practice, and practice is enforced by a system; this one stayed with me for 20 years. 








03.c Aruki-kata (歩き方), The Quiet Art of Walking

When I visited my parents recently, I noticed how much time they spend sitting. They live in a clean, walkable neighbourhood with fresh air and nature around them, yet most of the day is spent in easy chairs passively watching TV. It is stillness, but not the kind that strengthens the body or exercises the mind. 

In Japan, the idea of movement is part of the system and habits. People walk to the train station, to the store, to school, and to visit friends. Even when the distance is not short, walking is the default. This habit begins early and continues into old age. There is no special meaning to it. It is just daily life. The Japanese call this natural way of walking aruki kata (歩き方), the manner of walking. The idea is simple: keep the body in motion whenever possible.

When I lived in Japan, I learned that the art of movement is different from that in the West, where we sit or move as little as possible, then go to the gym and stress the body. In Okinawa, movement was part of everything. People walked to the fields or along the coast. Elderly men and women walked slowly in the mornings, greeting neighbors. They did not schedule fitness. They simply lived in a way that kept them strong. Even today, when I read about Okinawan longevity, I am reminded that their long lives were shaped not only by intense training but also by everyday movement, sunlight, simple food, and community.

Walking has a cultural weight in Japan. The train system supports this lifestyle. You walk to the station, travel as far as you need, then walk the rest of the way. This creates a rhythm in which the body never falls into deep inactivity. The steps are small, but they accumulate. It is one of the reasons older Japanese adults maintain balance, coordination, and mental clarity far longer than people who rely on cars and long hours of sitting.

When I look at my parents, I can see how the lack of movement affects their posture, breathing, and overall cardiovascular strength. Passive sitting offers temporary comfort but slowly erodes the body. Without intentional motion, the body forgets what it is capable of. Even gentle daily walks would help. A ten-minute walk after breakfast, a quiet loop around the neighborhood at sunset. The body does not need intensity. It needs consistency.

In my own life, walking has become a form of active meditation. I wrote earlier about the monks of Mount Hiei, but the principle does not belong only to them. Steady steps, calm breathing, and a quiet mind can be practiced anywhere. The forest trails in the Pacific Northwest give me the same feeling I once had in Okinawa. Moss, rain, silence. A place where walking becomes time to think and rejuvenate.

If there is a lesson here, it is that longevity is less about supplements or perfect diets than about daily rhythm. Standing up. Moving. Using the legs, balancing. Breathing fresh air, watching sunrises and sunsets.

I hope my parents will rediscover this and form new habits. A short walk each day is not a significant change, but it can shift the entire atmosphere of a life. Strength returns slowly. Mood improves. The world feels larger than the space between a chair and a television. It is a gentle way to return to being part of the world instead of merely observing it.

Walking is the simplest practice I know. It requires no equipment, preparation, or instruction. Just a path and a few clear minutes. It is a good way to begin again.

Flashcards

 I know I could buy a polished flashcard app for about twenty or thirty dollars. That would be the quickest solution. But this project is not about convenience. It is about practicing skills I enjoy, exploring my tools more deeply, and shaping a system that integrates Japanese study, Obsidian, and my own local models. Building it myself is the point.



The first step is a simple Python command-line tool. It loads a CSV with Japanese words and meanings, presents each question, accepts my typed answer, and checks if I am correct. This early stage is perfect for debugging the essentials: reading the CSV, trimming input, comparing answers, and tracking a basic mastery score. It lets me experiment freely with no UI overhead. Once this logic behaves well, everything else becomes straightforward.


The second piece is the language model, and I keep it where it belongs: in the command line. Instead of trying to embed MLX into a Swift app, I let the LLM run locally in Python. From there it can handle two jobs. First, it can compare my typed answers with the official ones and judge whether my response is close enough, which is helpful for Japanese phrasing, minor spelling differences, and synonyms. Second, it can scan selected markdown files in my Obsidian vault and extract new question–answer pairs. This allows me to grow my flashcard set automatically from whatever I am studying at the moment.



The macOS SwiftUI app is still useful, but now it becomes a thin layer on top. It can display cards, accept input, and call the Python scripts when needed. The heavy logic stays in Python, where MLX runs efficiently and where I can maintain a clean separation between UI and computation. The app becomes a comfortable window, while the command line remains the engine.


Obsidian ties the whole idea together. I already keep a large amount of Japanese material, notes, fragments, and vocabulary in my vault. A simple Python script can read those markdown files, provide them as context to the LLM, and extract neatly formatted Q&A pairs. The system then feeds those back into the CSV or writes new markdown, closing the loop between learning, reading, and structured review.


The overall plan stays simple and scalable. Start with a pure Python CLI to get the core behavior right. Add a command-line LLM layer for fuzzy answer checking and automatic question generation. Build a small macOS SwiftUI interface on top, with the Python engine running behind it. And finally, use Obsidian as both the source and destination of knowledge. The project is not meant to compete with commercial apps. It is a practice ground for Python, Swift, MLX, and knowledge workflows that match how I actually learn


shioyaki

 Japanese salt-grilled pompano, shioyaki, is one of those dishes where the method is so simple that the character of the fish becomes the center of the meal. 



Start by rinsing the pompano and drying it carefully, then make a couple of gentle diagonal cuts across each side. These shallow openings help the heat enter evenly and let the salt season the flesh. Coat the fish inside and out with coarse salt and let it rest for twenty to thirty minutes. This short waiting time pulls a bit of moisture to the surface, firms the flesh, and gives you that clean, focused flavor that makes shioyaki so satisfying. Before it goes into the oven, pat the fish dry again so the skin can crisp.


Heat the oven to a high temperature, about four hundred fifty degrees Fahrenheit, and place the fish on a lightly oiled rack or tray. At this heat the pompano cooks quickly, usually in fifteen to twenty minutes, and the transformation is obvious when the fins darken slightly and the skin becomes crisp while the interior stays tender. Some people turn the fish halfway through, some leave it untouched, and both are fine. The key is to keep it simple.


When the fish comes out of the oven, serve it immediately with a squeeze of lemon or a spoonful of grated daikon touched with soy sauce. Nothing heavy is needed, because the whole point of shioyaki is the clarity of the fish itself. This style rewards attention to small steps, a little patience, and the quiet satisfaction of good, honest cooking.





iPhone 3D Scanner app RGBD object classification using CNN

I have been experimenting with the iPhone 3D Scanner App. Modern iPhones include a LiDAR sensor that captures depth maps aligned with the regular camera images. I wanted to show how to take those RGB and depth frames, combine them into simple RGBD images, and use them for object classification.

The process is straightforward. I pick a few objects around the house and record a short scan of each one. Afterward, I crop the data to remove the unnecessary background, leaving only the object. 

The “All Data” export option gives me the raw camera frames, depth maps, and confidence images. Each depth map aligns with its corresponding RGB frame, forming a four-channel representation. Three channels hold the color information, and one carries the distance to the camera. This simple combination already adds a sense of shape that pure RGB cannot provide. For small experiments, it is more than enough.

A compact CNN can then learn to classify the object based on these RGBD inputs. The goal is not to chase accuracy or build a classification benchmark. The value lies in hands-on learning. I collect the data myself, understand its noise and limitations, and train a model on data captured by my own camera. That experience teaches more than working with polished 3D objects downloaded from the internet.

Later, I will attach the GitHub repository with the supporting code.

Snoqualmie Valley Pass

Yesterday, coming back home from Idaho thru the Snoqualmie pass. 

Happy place.






Digital Stonehenge

 



A self-calibrating solar observatory for a post-astronomy world





The original idea began as a small ML project that could learn time and date from the sun. It did not need ephemeris tables, GPS, or even awareness of where it was placed. The device would simply watch the sky, collect its own sunlight patterns, and build an internal sense of time from scratch. Over time, the concept evolved into something simpler, more robust, and aesthetically more interesting. The final vision became a compact solar observatory, a digital Stonehenge that lives entirely on natural sunlight, a crystal oscillator, and quiet geometry.


At its core, the design uses nothing more than a set of fixed sight lines and a sensitive photodiode. The simplest version discards moving mirrors and scanning steps entirely. Instead, a thick circular lid is drilled with multiple narrow tubes or fitted with thin fiber-optic channels. Each channel points at a specific azimuth and elevation. Most of the day, most of the channels remain dark. Only when the sun crosses the exact line of one of these channels does a burst of light reach the photodiode. A single hit per day is enough to correct internal time drift. Over many days and months, the pattern of which channels fire, and when, builds an implicit map of daily and seasonal sunlight.


The electronics remain minimal, almost primitive. A low-power microcontroller, a photodiode, a simple analog threshold detector or ADC, and a crystal timebase are enough. The device sleeps most of the time. It wakes periodically, samples each fiber channel, and records whether any registered light. When a hit occurs, it saves an event: crystal ticks since last hit, channel ID, intensity. Between hits it simply counts time with its crystal. The top of the device holds a small solar panel to keep the battery charged, a simple compass mark to align it to south at installation, and bubble levels to ensure the geometry stays consistent. The body itself can be built as a circular black box, something between a scientific instrument and an art object, even finished in Japanese lacquer to give it the presence of a crafted talisman.


Although the on-device logic stays intentionally simple, the accumulated data are rich. Months of logs, downloaded weekly or whenever convenient, form a large dataset of sun-angle events. Offline analysis on a laptop or desktop can fit hidden patterns. Without using astronomy tables, the system can discover the length of the local solar day, the date of the solstices, and the repeating structure of the solar year. Daily sun arcs define local solar noon, sunrise, sunset, and day length. Repeated cycles of rising and falling zenith heights gradually reveal the part of the year. With enough data, the system can even infer approximate latitude from the span of angles that the sun crosses. All of these relationships can be learned with simple regression, small sequence models, or even direct curve-fitting. No absolute reference is needed, only sunlight and time increments.


As a doomsday clock, this is a powerful idea. In a world without satellites, time servers, or any external coordination, the device becomes one of the few physical instruments capable of re-establishing a calendar. It tells local solar time based on the last correction from the sun and the drift of its internal crystal. It knows the day in its own solar year, defined by the interval between solstices. It re-learns the length of its year from observation alone. And because e-paper or simple LCD displays can remain off most of the day, the clock only lights up when a human wants to know the time, preserving energy and giving the device a quiet, ancient feel.


Future versions can build on this foundation. A more advanced “model D” version could replace fixed fibers with a tiny mirror, scanning the sky and collecting richer angle-intensity data for more precise models. The same enclosure and power system would still work. A weekly offline workflow can combine logs, train improved models, and upload new coefficients back into the device, letting the system grow smarter over time. In this way the digital Stonehenge becomes both a practical timekeeper and a long-term experimental platform for understanding sunlight, seasons, and autonomous learning.


This concept blends engineering, physics, and craft. It is a functional instrument, a quiet calendar, and a piece of art. And it is something that we can return to, refine, and eventually build into a working prototype.


Shobudo

 


1. Entering the dōjō (道場)



The etiquette begins before stepping on the floor.


  • Bow at the entrance
    rei (礼), a simple standing bow.
    Purpose: acknowledge the training place and leave daily life behind.
  • Say quietly:
    onegai shimasu (お願いします)
    Meaning: I ask for your guidance.
  • Adjust gi (着) and obi cleanly
    No snapping, no dramatic gestures.






2. Lining up



Commands you will hear:


  • Seiretsu (整列) – line up
  • Chakuza (着座) or seiza (正座) – sit
  • Mokusō (黙想) – quiet reflection
  • Mokusō yame (黙想止め) – end meditation
  • Shōmen ni rei (正面に礼) – bow to the front
  • Sensei ni rei (先生に礼) – bow to the instructor



After bowing, everyone says again:

onegai shimasu (お願いします)


At the end of class:

arigatō gozaimashita (ありがとうございました)





3. Basic training commands



  • Hajime (始め) – begin
  • Yame (止め) – stop
  • Yoi (用意 / 準備) – ready
  • Mawatte (回って) – turn around
  • Kamae (構え) – guard posture
  • Kiai (気合) – spirited shout
  • Naore (直れ) – return to natural stance
  • Kōtai (交代) – switch partners






4. Directions and levels



  • Migi (右) – right
  • Hidari (左) – left
  • Mae (前) – front
  • Ushiro (後ろ) – back
  • Ue / jōdan (上段) – high
  • Chūdan (中段) – middle
  • Gedan (下段) – low






5. Stances (立ち, dachi) used in Shūdōkan



  • Heisoku-dachi (閉足立ち) – feet together
  • Heikō-dachi (平行立ち) – parallel stance
  • Zenkutsu-dachi (前屈立ち) – front stance
  • Shuto-dachi (手刀立ち) – L-stance
  • Neko-ashi-dachi (猫足立ち) – cat stance
  • Tsuru-ashi-dachi (鶴足立ち) – crane stance
  • Usoku-dachi (右足立ち) – lean-away stance (unique to your dojo context)






6. Strikes and blocks used in your Keishin kata



  • Oi-tsuki (追い突き) – lunge punch
  • Gyaku-tsuki (逆突き) – reverse punch
  • Mae-geri (前蹴り) – front kick
  • Shuto-uke (手刀受け) – knife-hand block
  • Shuto-tsuki (手刀突き) – knife-hand strike
  • Gedan-barai (下段払い) – low sweep block
  • Age-uke (上げ受け) – rising block
  • Nukite (貫手) – spear-hand strike
  • Tettsui-uchi (鉄槌打ち) – hammer-fist
  • Nijū-uke (二重受け) – double block






7. Common dojo phrases



These are used in Shūdōkan just as in traditional Okinawan karate.


  • Osu / Oss (押忍) – acknowledgment, respect, I understand
    (Not shouted, used with awareness.)
  • Ganbatte (頑張って) – do your best
  • Hai (はい) – yes
  • Wakatta (分かった) – understood






8. Etiquette during partner work



  • Bow before and after each drill
    rei (礼)
  • Say
    onegai shimasu before,
    arigatō gozaimashita after.
  • Never correct another student unless you outrank them and the sensei delegated instruction.
  • Keep full control.
    Shūdōkan emphasizes form and safety, not impact.






9. Etiquette specific to kata practice



  • Announce kata name clearly:
    Keishin! (敬心)
  • Begin from heisoku-dachi.
  • Stay quiet unless asked.
  • After finishing,
    naore and rei.






10. Vocabulary list (clean alphabetical list)



This is ready for your Obsidian file.


age-uke 上げ受け – rising block

arigatō gozaimashita ありがとうございました – thank you very much

barai 払い – sweep

chūdan 中段 – middle level

eri 襟 – collar

gedan 下段 – low level

gedan-barai 下段払い – low sweep block

gyaku-tsuki 逆突き – reverse punch

hai はい – yes

hajime 始め – begin

heikō-dachi 平行立ち – parallel stance

heisoku-dachi 閉足立ち – feet together

hidari 左 – left

hikite 引き手 – pulling hand

jōdan 上段 – high

kamae 構え – guard posture

kiai 気合 – spirited shout

mae-geri 前蹴り – front kick

migi 右 – right

mokusō 黙想 – quiet reflection

nankuru naisa なんくるないさ – it will be ok (Okinawan spirit, optional)

naore 直れ – return to natural stance

neko-ashi-dachi 猫足立ち – cat stance

nijū-uke 二重受け – double block

nukite 貫手 – spear-hand

oi-tsuki 追い突き – lunge punch

onegai shimasu お願いします – please guide me

rei 礼 – bow

seiretsu 整列 – line up

seiza 正座 – kneeling

sensei ni rei 先生に礼 – bow to instructor

shomen ni rei 正面に礼 – bow to front

shuto 手刀 – knife-hand

shuto-dachi 手刀立ち – L-stance

shuto-tsuki 手刀突き – knife-hand strike

shuto-uke 手刀受け – knife-hand block

tsuru-ashi-dachi 鶴足立ち – crane stance

usoku-dachi 右足立ち – lean-away stance

yame 止め – stop

yoi 用意 – ready

zenkutsu-dachi 前屈立ち – front stance