{"allTags": {"eng": ["Analog", "Archive", "Audio", "Computers", "Digital", "DnD", "Educational", "Electronics", "Soviet", "Tubes", "Vintage"], "jp": ["DnD", "アナログ", "ソビエト", "デジタル", "ヴィンテージ", "電子機器"]}, "entries": [{"name": "l1_AB_amp", "names": {"eng": "Vacuum Tube Amplifiers 101", "jp": "nop"}, "tags": {"eng": ["Analog", "Audio", "Educational", "Tubes"]}, "path": "audio/l1_AB_amp", "nameMap": {"audio": {"eng": "Audio Amplifiers"}, "l1_AB_amp": {"eng": "Vacuum Tube Amplifiers 101", "jp": "nop"}}, "searchText": {"eng": "How to Vacuum Tube Amplifiers, class A and AB from a guy thats bad at tubes from basics to complex Part 1 Introduciton Read this: its probably better This book is AMAZING ! I love vacuum tubes, their glow is mesmerising and they are suprisingly versetile, hell you can make a computer out of them; i wont doddle around, lets start with tubes: Types of Vacuum Tubes There are many tipes of vacuum tubes from diodes to timers but for audio applications the most important to know are Triodes Pentodes The basic Triode A triode has 3 parts ( tri ) Anode (A) Grid (G) Cathode (K) And usually the heater element. (F) +++col \"Its function is best described as a valve for water\" Im Sure you've heard this explenation: You put electricity on one end, but not the other, and the Grid works like a water valve, controlling how much it lets past. Heres the smart version: A triode works like a water valve by controlling the flow of electrons, similar to how a valve regulates water flow. The grid in a triode acts as a control mechanism, allowing for precise adjustments in the flow of electrons between the cathode and anode, much like a valve can finely tune the water flow. +++ Or if you find that explenation repeated too much: +++col \"How it functions at a simple physics view point\" How a triode actually works: The Cathode is heated and emits electrons (thermionic emission). The Anode (plate) is held at a positive potential relative to the cathode, so it attracts those electrons; electrons flow from cathode to anode. Now add the Grid , placed between cathode and anode. It's normally held negative relative to the cathode. Because it's negative, it repels them, pushing some back toward the cathode instead of absorbing them (grid current is ideally zero in normal operation). This reduces how many electrons complete the journey to the anode. That's the key mechanism: a small change in grid voltage causes a large change in the electron stream reaching the anode; which is a large change in plate current. That current gain is why the triode amplifies. +++ The basic Pentode A pentode is quite similar to the triode with the major differance being the number of screens or Grids . A pentode, as sudgested by its name, has 5 parts: Anode (A) Supressor Grid (G3) Screen Grid (G2) Controll Grid (G1) Cathode (K) And the usual heater element (F) Control Grid (G1) This is the same grid as in a triode. It sits closest to the cathode and is held at a negative bias relative to it. Small variations in its voltage produce large variations in the electron stream passing through to the anode; this is the actual amplifying element of the tube. Screen Grid (G2) Placed between the control grid and the anode, held at a fixed positive potential (often close to the anode voltage). Its job is to shield the control grid from the anode electrostatically; without it, changes in anode voltage would \"leak back\" through capacitive coupling and affect the electron stream, which limits gain and causes unwanted feedback (this effect, called the Miller effect, is significant in triodes). Because the screen grid is positive, it also accelerates electrons toward the anode, but since it's a mesh, most electrons fly through it rather than land on it (some current is still absorbed as \"screen current,\" which is a minor loss). Suppressor Grid (G3) Placed between the screen grid and the anode, usually connected to the cathode (0V relative to cathode) or grounded. Its purpose is to fix a problem called secondary emission: electrons hitting the anode at high speed can knock loose other electrons, which would otherwise drift back and be captured by the positively charged screen grid, causing a drop in anode current at certain voltages (visible as a kink in the tube's characteristic curves). The suppressor grid, being at low/negative potential relative to the anode, repels these secondary electrons back toward the anode so they don't get lost to the screen. Summary of roles: G1 (Control): does the amplifying, via a negative bias G2 (Screen): shields G1 from anode voltage swings, boosting gain and reducing capacitance issues G3 (Suppressor): stops secondary emission electrons from being stolen by the screen grid Do note that quite often on a pentode some screens will be tied together or to the Cathode , allways check datasheets! Franks Electron Tube Datasheet is an INCREDIBLE resource. Amplifier Classes Amplification stages covered in part 2. In the title there is written \"Class A and AB\", what does that mean? Audio amplifiers have seperate classes based on how they manipulate audio: Class A Class A amplifiers are the simplest of the bunch, they utilise a singular component, be it a FET, BJT or Vacuum Tube for amplification. However since all of those become iffy when the ac wave goes into the opposite direction, we raise the wave by biasing it with DC . We take our AC audio wave and make it ride on top of DC so that its allways positive, and with that we can put it into our gain stage. :::sim wave.fal Notice that the OUT wave never goes negative; and so can be put into a single stage amplifier. This will be expanded upon in part 2. Class B Class B amplifiers are more complex; we split the AC wave at the 0 point and Amplify the two half waves idividualy before recombining. While Class A amplifiers win in simplicity and audio fidelity, they loose in output wattage , Class B amplifiers can supply much heavier loads but with that come a lot of quirky issues. The 1st of which is splitting the AC wave in half: DO NOT DO THIS :::sim wave2.fal The simplest idea is to use diodes. However that is inadvisable due to it bringing a lot of issues This was the 1st idea that came to me, so why not this? Well 1stly using diodes for audio is herecy ! The makes crossover distortion ( explained bellow ) a dozen times worse, and we dont actually want halfwaves, heres why: Class AB The iffy with the class B amplifiers is that if we EXACTLY amplify the seperate half waves we get distortion on recombinig the wave, its called crossover distortion And so we take the best parts of both A class and B class and that becomes AB class . This is done by biasing the output tubes to conduct a tiny bit past absolute cutoff, creating overlap. Rather then using halfwaves , we use two full waves both with no DC bias , with the sole differance being that the two waves are inverted in phase . (this can be done with a center tapped transformer but thats bulky and out of fashion) Rather then using diodes and since we are using Vacuum Tubes let us use a Vacuum Tube circuit: :::sim cathodyne.fal it takes a second to settle at max sim speed Lets adress questions: It takes a second to settle because of the charge on the cap; this is not an isue while its workig. The cap cant be smaller because it forms a filter: The Cathodyne phase spliter is the simplest and suprisingly good for using a single triode. if you are interested in other types of phase spliters check out: The Bona's \"Bonavolta\", an amazing site We feed both clean, inverted phase waveforms into the output tubes, and its THEIR bias point (set slightly past cutoff instead of exactly at it) that creates the conduction overlap. The amplification stage takes care of chopping of the negative part, we get overlap, any biasing we want, less distortion and MO POWAH ! Since the two waves are inversed in phase we get the two halves of the wave on a silver plater! Now onto amplification! Lesson 2: :::ref /audio/l2 AB amp"}, "date": "2026-07-28T11:25:04Z"}, {"name": "l2_AB_amp", "names": {"eng": "Vacuum Tube Amplifiers 102", "jp": "nop"}, "tags": {"eng": ["Analog", "Audio", "Educational", "Tubes"]}, "path": "audio/l2_AB_amp", "nameMap": {"audio": {"eng": "Audio Amplifiers"}, "l2_AB_amp": {"eng": "Vacuum Tube Amplifiers 102", "jp": "nop"}}, "searchText": {"eng": "How to Vacuum Tube Amplifiers, class A and AB from a guy thats bad at tubes from basics to complex Part 1 Introduciton"}, "date": "2026-07-28T11:25:04Z"}, {"name": "yue", "names": {"eng": "Yue Ai", "jp": "月AI"}, "tags": {}, "path": "programming/yue", "nameMap": {"programming": {"eng": "Programming", "jp": "プログラミング"}, "yue": {"eng": "Yue Ai", "jp": "月AI"}}, "searchText": {"eng": "Yue — Capabilities Yue is a voice first AI assistant running locally on Arch Linux. She listens, thinks, and speaks — no screen required. +++col \"Voice Pipeline\" Always listening via microphone. Speaks back through text to speech using Piper with a natural English voice. +++col \"Speech Recognition (STT)\" Powered by faster whisper running locally on CPU. No audio is sent to any external service. Transcription happens on device using OpenAI's Whisper architecture. Model: Compute: CPU, int8 quantized Pre processing: silence removal and dynamic audio normalization via ffmpeg before transcription +++ +++col \"Text to Speech (TTS)\" Piper TTS with the LibriTTS medium voice model. Audio is post processed through ffmpeg for volume and pitch control, then played back via PipeWire. +++ +++col \"Wake Word & Conversation\" Configurable wake word (default: always hot, no wake word required). After a response, a follow up window stays open so you can continue talking naturally without repeating the wake word. +++ +++ +++col \"Tools\" Yue can call tools in parallel when a request needs multiple things at once. +++col \"Weather\" Live weather for any city using Open Meteo (no API key required). Returns temperature, feels like, conditions, wind, and precipitation. +++ +++col \"Timetable\" Fetches the EcoleDirecte school timetable via a headless Chromium scraper. Session is cached so subsequent calls are instant. Supports today, tomorrow, this week, or two weeks. +++ +++col \"Unit Conversion\" Converts between units of length, weight, temperature, volume, speed, area, data, time, pressure, and energy. Also fetches live currency exchange rates. +++ +++col \"Math\" Evaluates mathematical expressions safely — arithmetic, trigonometry, logarithms, factorials, combinations. No eval(). All identifiers are whitelisted before execution. +++ +++col \"Web Search\" DuckDuckGo Instant Answers for factual lookups. Best for definitions, Wikipedia style queries, and named entities. +++ +++col \"Fetch Page\" Fetches and strips any URL to readable text. Tries direct fetch first, falls back to a CORS proxy. Useful for reading articles, documentation, or any page by URL. +++ +++col \"Date & Time\" Current date and time in any timezone. Used internally by the scheduler and for any time aware reasoning. +++ +++col \"Location\" IP based geolocation returning city, region, country, and timezone. Used for contextual weather and scheduling. Falls back to a secondary provider if the primary is unavailable. +++ +++col \"Hashing & Encoding\" SHA 256, SHA 512, SHA 1 with optional HMAC. Base64, URL, and HTML encode/decode. MD5 for legacy compatibility. +++ +++col \"UUID & Secrets\" Generates UUID v4, UUID v7, NanoID, passwords, API keys, hex strings, and base64 random tokens. Uses cryptographic randomness with rejection sampling to eliminate modulo bias. +++ +++ +++col \"Memory\" Yue maintains a persistent key value memory store in . It survives restarts and grows over time. +++col \"What gets remembered\" Stated preferences and habits Corrections to facts about you Recurring topics and patterns Schedule, goals, and ongoing projects +++ +++col \"How it works\" Memory is read on every conversation turn and injected into the system prompt automatically. Yue writes to memory silently — no announcements. She only mentions a memory if it's directly relevant. Operations: write, read, search, delete, list. +++ +++ +++col \"Playground\" Yue has a sandboxed directory where she can create and run files. +++col \"File operations\" Read, write, append, delete, and list files. Subdirectories are created automatically. Path traversal is blocked — nothing can escape the playground directory. +++ +++col \"Code execution\" Runs Python, shell scripts, and JavaScript (via Bun). 30 second timeout with clean process termination. stdout and stderr are returned so she can read results and relay them. She checks for existing scripts before writing new ones, saves reusable tools by name, and deletes ephemeral scratch files after use. +++ +++ +++col \"Self Amendment\" Yue can update her own behavioral guidelines using the tool. When she proposes a change, she speaks the amendment aloud and waits up to 15 seconds for a voice confirmation. Saying yes applies it; saying nothing or no leaves it unchanged. +++col \"What can be amended\" Anything in the behavioral sections of her prompt — communication style, preferences, domain specific rules, formatting habits. +++ +++col \"What cannot be amended\" Her core identity, personality rules, and prohibited behaviors are locked. The amendment tool enforces this and rejects any attempt to modify protected sections. +++ +++col \"Audit trail\" Every amendment is appended to with a timestamp, the section name, the reason, and the full content. Amendments can be listed and individually reverted by ID. +++ +++ +++col \"Scheduler\" Yue runs a background scheduler with per minute resolution, timezone aware via IP geolocation. +++col \"Smart alarm\" Every midnight (on school nights), Yue fetches the next day's timetable and automatically schedules a wake up alarm one hour before the first lesson. If there are no lessons, no alarm is set. The alarm fires in two stages — a short warm greeting, then five minutes later the weather and timetable briefing. +++ +++col \"Static schedule\" Fixed time prompts can be added to for any recurring daily trigger. +++ +++ +++col \"Configuration\" Everything is controlled from a single file. No recompilation needed for most changes — rebuild with to apply. +++col \"activation\" Controls wake word behavior. | Key | Default | Description | | | | | | | | = always hot (open mic). = require wake word. | | | | Array of accepted wake word variants — Whisper mishears names so multiple spellings help. | | | | Seconds after a response during which you can speak again without repeating the wake word. | +++ +++col \"openai\" | Key | Value | Description | | | | | | | | OpenAI model. Switch to for better tool use compliance. | | | | Path to the system prompt file, resolved at build time and baked into the binary. | +++ +++col \"tts\" | Key | Description | | | | | | Absolute path to the voice model file. Set by automatically. | | | Speaker index within the model. LibriTTS medium has 904 speakers — try different numbers. | | | Command name or path for the piper binary. | +++ +++col \"ffmpeg\" Post processes TTS audio before playback. | Key | Description | | | | | | Toggle ffmpeg processing on/off. | | | Array of ffmpeg filter strings applied in order. | | | Extra raw ffmpeg arguments appended to the command. | Common filter examples: Speed: Pitch up: Volume: Reverb: +++ +++col \"preprocessing\" Cleans microphone audio before sending to Whisper. | Key | Description | | | | | | Toggle preprocessing on/off. Useful for A/B testing transcription quality. | | | ffmpeg filters applied to raw PCM. Falls back to unprocessed audio if ffmpeg fails. | Default filters strip silence and normalize volume. If preprocessing clips the start of words, loosen the threshold in . +++ +++col \"stt\" | Key | Default | Description | | | | | | | | Whisper model size. Options: , , , , . Larger = more accurate, slower. | | | | Force a language to speed up transcription. | | | | or . CUDA requires a compatible GPU and cuDNN. | | | | Quantization. is fastest on CPU. for GPU. | +++ +++col \"audio\" | Key | Default | Description | | | | | | | | Mic capture rate in Hz. Whisper expects 16 kHz. | | | | Mono. | | | | ALSA/PulseAudio input device for sox. | | | | ALSA device for aplay playback. Find yours with . | | | | Override automatic VAD calibration. Set to a number (e.g. ) if calibration gives wrong results. | +++ +++col \"behaviour\" | Key | Default | Description | | | | | | | | Milliseconds of silence after speech before the utterance is sent to STT. Higher = more patient with mid sentence pauses. | | | | Minimum characters before the TTS splitter emits a spoken chunk. Higher = fewer but longer chunks. | | | | Milliseconds before Yue emits a stall filler word while waiting for the LLM. | | | | Emit a filler word immediately on utterance start, before the LLM responds. | | | | Silence injected at commas in TTS output (ms). | | | | Silence injected at semicolons (ms). | | | | Pool of filler words/phrases Yue picks from randomly while thinking. | | | | Phrases spoken while a tool is running. | +++ +++col \"scheduler\" +++col \"smartAlarm\" Automatically schedules a wake up alarm based on the next day's timetable. | Key | Default | Description | | | | | | | | Toggle the smart alarm on/off. | | | | How many minutes before the first lesson to trigger the wake up. | | | | Gap between the wake greeting and the weather/timetable briefing. | | | | Skip Saturday and Sunday. | | | | Prompt sent for the first alarm stage (greeting only, no tools). | | | | Prompt sent for the second stage (weather + timetable). | +++ +++col \"timetable\" Static scheduled prompts. Each entry fires at an exact time every day. Time is in 24 hour format, resolved in the system's detected timezone. +++ +++ +++ +++col \"Build system\" Everything compiles into a single self contained binary via . Tools are discovered from a directory, inlined into the bundle, and accessible at runtime. No Node modules are needed at runtime. +++ +++col \"Stack\" Runtime: Bun LLM: OpenAI GPT 4o STT: faster whisper (local) TTS: Piper (local) Audio: PipeWire via aplay Timetable scraping: Playwright + Chromium +++ +++col \"Privacy\" Speech recognition runs fully on device. The only data leaving the machine is the text of your query, sent to OpenAI's API over HTTPS. No audio is transmitted externally. +++"}, "date": "2026-06-20T12:31:51Z"}, {"name": "dnd_homebrew", "names": {"eng": "DnD homebrew", "jp": "DnD自家製"}, "tags": {"eng": ["DnD"], "jp": ["DnD"]}, "path": "fun/dnd_homebrew", "nameMap": {"dnd_homebrew": {"eng": "DnD homebrew", "jp": "DnD自家製"}}, "searchText": {"eng": "DnD Homebrew This was made for a spooky campaign 1. Combat & Damage Crunchy Crits Natural 20 damage = rolled damage ×2 + proficiency + max roll of largest die . Applies to both players and enemies. :warning: Very deadly. Momentum Massacre If a creature is reduced to 0 HP by ≥2× its remaining HP , you may immediately chain one extra attack or movement against a nearby enemy. Example: Enemy has 8 HP, you deal 16 → attack another nearby target. Devious Damage Taking 50% max HP triggers a lingering injury and short/long term madness . Dropping to 0 HP → gain indefinite madness . I tracks severity; players describe effects narratively. Furious Flanking +2 to attacks instead of advantage unless enemy has high passive perception . Encourages tactical positioning. Funner Falling Falls ≤15 ft = safe. Falls 15 ft = 3 damage per 10 ft . Simplified; ignores complicated math, keeps it cinematic. 2. Player Actions & Economy Adrenaline Actions Potions = bonus action. Switching weapons = free if no enemy within 5 ft; otherwise bonus action. Searching bags / interacting with minor objects = free if no enemy within 10 ft; otherwise bonus action. Superb Setup Gain advantage for well prepared or narratively clever attacks. Encourages teamwork and creative planning. Instant Initiative Allies within ±2 initiative may act together/intertwined . If a monster ties with a player, it always acts last . Dynamic Dance (once per short rest) Trigger: Enemy or ally within sight takes an action (move, attack, spell). Cost: Reaction . Effect: Take a full action without dealing damage , e.g.: Deflect or intercept attacks (grant AC bonus or impose disadvantage). Move creatively to aid allies or control battlefield. Interact with environment dramatically (close doors, push objects, trigger levers). Reaction unavailable until next turn. (During this turn projectiles are in the middle of their flight and can be targeted with damage) Flashback Foolery (once per session) Declare a flashback: “Actually, before X I did Y…” Pay a small cost (gold, minor injury, or Equivalent Exchange sacrifice). Effect depends on scenario, e.g.: Pre applied poison → extra damage. Pre written letter → social advantage. I adjudicates; must be reasonable. 3. Story & World Mechanics Equivalent Exchange //aplies to EVERYTHIN keep in mind Almost any impossible action requires a steep price . Gods favor you but are often cursed or rule bound . Sacrifice or risk to the “outer gods of madness” may be needed to achieve impossible feats. Dramatic Death Death saves are secret between player and DM . Increases tension and narrative weight. Intriguing Inspiration Inspiration = +2 , applies to everything (attack, damage, saves, death saves, madness, etc.). Expires at the end of the session . Timely Travelling Travel distances: Close / Far / Very Far Events while traveling: 1 / 2 / 3 respectively. Events = encounters, NPCs, terrain hurdles, or points of interest. Fully lore driven; no random tables. Masterful Monsters I rolls secretly for monster tactics that range from: normal idiots to→ “holy shit they have traps?” 4. Cinematic / Style Rules Rule of Cool Duh"}, "date": "2026-06-20T12:31:51Z"}, {"name": "ibm_cards", "names": {"eng": "IBM Cards", "JP": "IBMのカード"}, "tags": {"eng": ["Archive", "Computers", "Vintage"]}, "path": "computers/ibm_cards", "nameMap": {"computers": {"eng": "Computers", "jp": "コンピュータ"}, "ibm_cards": {"eng": "IBM Cards", "JP": "IBMのカード"}}, "searchText": {"eng": "IBM expansion cards for the computer. This is a small archival page of resources in my possesion. By Elektor c.1989 vis: {magazine}(https://www.gods69.com/download/REVUES Radio Plans/1989/Radio%20Plans%20503%20 %20octobre%201989.pdf) page 5 this is conjecture (thank you :discord: person :discord: for helping me find this) I originally had the handle of the guy; but i dont think thats wise. Cards in my possesion: +++col \" Module IIC Port 8 Bits + Visualisation\" :::pdf Module IIC Port 8 Bits Visualisation.pdf +++col \"Translation:\" Assembly: No special remarks regarding assembly. As usual, first install the 9 jumpers, then the components in ascending order of size. +++ +++col \"Code:\" +++ +++ +++col \" Mini Card I/O for IBM PC\" :::pdf I O mini card for ibm pc.pdf +++col \"Translation:\" This input/output (I/O) card is notable for its extremely compact size. And yet it has no fewer than 24 I/O lines that open up a whole host of possibilities, doesn't it? It's not out of the question whether you have one or the other in mind. Finally, here is some electronics that gets straight to the point: address decoding and the I/O integrated circuit. The attached table shows how to address the card. If the need If necessary, it is possible to install eight of these cards in your computer (provided, of course, that it has enough connectors). The address lines intercepted on the computer connector are used to perform address decoding. The AO and A1 lines directly drive the PPI (Programmable Peripheral Interface). The address lines The AO and A1 lines directly drive the PPI (Programmable Peripheral Interface). The address lines A2 to A9 arrive at an 8 input NAND gate in their original form or inverted (by inverters Ni to N6) depending on the jumpers installed on their path. At the output of the 8255 PPI, there are three 8 bit ports grouped together on the K1 connector. The size of the printed circuit board designed for this assembly barely exceeds the width of the backplane connector in which it is installed. However, we have slightly enlarged it to make it easier to handle. To To occupy this additional space, we have equipped it with a patch panel experimentation surface. When inserting the board into the connector, make sure that the K1 connector is facing the slot provided for this purpose on the side of the computer. Inserting the card in the opposite direction would also be possible, but would not be appreciated by the computer at all. So be careful. The printed circuit board we offer is a double sided board with non metallised holes. For this reason, it is preferable to mount IC1, IC2 and IC3 directly on the printed circuit board. A support for IC4 can be used, bearing in mind that, in this case too, soldering will be required. A support can be used for IC4, bearing in mind that, in this case too, soldering must be carried out on both sides. Going into detail about the programming of the peripheral I/O circuit (the 8255) would take us too far afield. Please refer to the specifications for this component by requesting them from one of its manufacturers: AMD, Intel, National Semiconductor, NEC, OKI, Toshiba... or by consulting one of the two books/articles listed below. Literature: Guide to Integrated Circuits 2 (Publitro nic): PPI 8255, page 240 et seq. Universal I/O card for IBM PC & compatibles (Elektor): No. 119, May 1988, p. 40 et seq. +++ +++col \"Table:\" (hexadecimal) Address range | straps 300..303 B,D,F 303..307 A,D,F 308..30B B,C,F 30C..30F A,C,F 310..313 B,D,E 314..317 A,D,E 318..31B B,C,E 31C..31F A,C,E +++ +++col \"Component List:\" Capacitors: C1, C2 = 100 nF Semiconductors: IC1 = 74HCT04 IC2 = 74HCT30 IC3 = 74HCT32 IC4 = 8255 Miscellaneous: K3 = 34 pin right angle male plug connector (HE10) +++ +++ +++col \" Module IIC Enumerator DTMF\" :::pdf Module IIC generator DTMF.pdf +++col \"Translation:\" Assembly/Configuration: No particular note regarding assembly; as usual, install components in increasing size order. +++ +++col \"Code:\" DTMF Module Test +++ +++ +++col \" Module IIC 4 EEPROM 256 Octets\" :::pdf IIC module eeprom.pdf +++col \"Translation:\" Assembly/Configuration: No particular note regarding assembly; as usual, install components in increasing size order. +++ +++", "jp": "向け IBM 拡張カード Elektor 著 c.1989 出典: {magazine}(https://www.gods69.com/download/REVUES Radio Plans/1989/Radio%20Plans%20503%20 %20octobre%201989.pdf) ページ 5 これは推測です （これを見つけるのを手伝ってくれた :discord: の人に感謝） 元々その人のハンドルネームを知っていましたが、公開するのは賢明ではないと思います。 所持しているカード: +++col \" モジュール IIC ポート 8ビット + 表示\" :::pdf Module IIC Port 8 Bits Visualisation.pdf +++col \"翻訳:\" 組み立て: 組み立てに関して特別な注意点はありません。通常どおり、まず9個のジャンパを取り付け、その後サイズの小さい部品から順に実装してください。 +++ +++col \"コード:\" +++ +++ +++col \" IBM PC 用ミニ I/O カード\" :::pdf I O mini card for ibm pc.pdf +++col \"翻訳:\" この入出力（I/O）カードは、その非常にコンパクトなサイズが特徴です。 それにもかかわらず、24本ものI/Oラインを備えており、多くの可能性を広げてくれます。用途はいろいろ考えられるでしょう。 最後に、非常にシンプルな電子回路構成です：アドレスデコーディングとI/O用ICです。添付の表には、このカードのアドレス指定方法が示されています。 必要であれば、これらのカードを最大8枚までコンピュータに取り付けることが可能です（もちろん、十分なコネクタがある場合に限ります）。 コンピュータコネクタから取り出されたアドレスラインは、アドレスデコードに使用されます。 A0およびA1ラインは直接PPI（プログラマブル・ペリフェラル・インターフェース）を駆動します。 A2〜A9のアドレスラインは、ジャンパ設定に応じて、元のまま、またはインバータ（N1〜N6）を介して、8入力NANDゲートに入力されます。 8255 PPIの出力には、3つの8ビットポートがあり、K1コネクタにまとめられています。 この基板のサイズは、取り付けられるバックプレーンコネクタの幅をわずかに超える程度です。ただし、扱いやすさのために少し大きく設計されています。 この余分なスペースを活用するため、実験用のパッチパネル領域を備えています。 基板をコネクタに挿入する際は、K1コネクタがコンピュータ側面の対応スロットに向くよう注意してください。逆方向に挿入することも物理的には可能ですが、コンピュータにとっては好ましくありませんので注意が必要です。 提供される基板は、スルーホールがメッキされていない両面基板です。 そのため、IC1、IC2、IC3は基板に直接はんだ付けすることを推奨します。 IC4にはソケットを使用することも可能ですが、その場合でも両面にはんだ付けが必要です。 ペリフェラルI/O回路（8255）のプログラミング詳細については、本稿では割愛します。 各メーカー（AMD、Intel、National Semiconductor、NEC、OKI、Toshibaなど）から仕様書を入手するか、以下の資料を参照してください。 文献: Guide to Integrated Circuits 2 (Publitronic): PPI 8255, p.240以降 Universal I/O card for IBM PC & compatibles (Elektor): No.119, 1988年5月, p.40以降 +++ +++col \"表:\" (16進数) アドレス範囲 | ストラップ 300..303 B,D,F 303..307 A,D,F 308..30B B,C,F 30C..30F A,C,F 310..313 B,D,E 314..317 A,D,E 318..31B B,C,E 31C..31F A,C,E +++ +++col \"部品表:\" コンデンサ: C1, C2 = 100 nF 半導体: IC1 = 74HCT04 IC2 = 74HCT30 IC3 = 74HCT32 IC4 = 8255 その他: K3 = 34ピンL型オスコネクタ（HE10） +++ +++ +++col \" モジュール IIC DTMF ジェネレータ\" :::pdf Module IIC generator DTMF.pdf +++col \"翻訳:\" 組み立て/設定: 組み立てに関する特記事項はありません。通常どおり、サイズの小さい部品から順に実装してください。 +++ +++col \"コード:\" DTMF モジュールテスト +++ +++ +++col \" モジュール IIC 4 EEPROM 256バイト\" :::pdf IIC module eeprom.pdf +++col \"翻訳:\" 組み立て/設定: 組み立てに関する特記事項はありません。通常どおり、サイズの小さい部品から順に実装してください。 +++ +++"}, "thumb": "/archive/computers/ibm_cards/main.jpg", "thumbWebp": "/archive/computers/ibm_cards/main.webp", "thumbSmall": "/archive/computers/ibm_cards/main.small.webp", "thumbW": 653, "thumbH": 434, "date": "2026-06-20T12:31:51Z"}, {"name": "geiger", "names": {"eng": "Geiger Counter", "jp": "ガイガーカウンター"}, "tags": {"eng": ["Analog", "Digital", "Electronics", "Soviet", "Vintage"], "jp": ["アナログ", "ソビエト", "デジタル", "ヴィンテージ", "電子機器"]}, "path": "electronics/geiger", "nameMap": {"electronics": {"eng": "Electronics & Schematics", "jp": "電気工学"}, "geiger": {"eng": "Geiger Counter", "jp": "ガイガーカウンター"}}, "searchText": {"eng": ":::sim[circuit.fal]"}, "date": "2026-06-20T12:31:51Z"}, {"name": "school_arduino", "names": {"eng": "School Arduino Projects", "jp": "学校でのArduinoプロジェクト"}, "tags": {}, "path": "programming/school_arduino", "nameMap": {"programming": {"eng": "Programming", "jp": "プログラミング"}, "school_arduino": {"eng": "School Arduino Projects", "jp": "学校でのArduinoプロジェクト"}}, "searchText": {"eng": "Arduino at school As part of my tech curriculum I had to design A LOT; and i mean A LOT of simple arduino stuff. I mean it was an intro class to programming and engeneering but it was still mind numbingly boring. As someone who had done programming for arround 8 years before this class, it was geniunly boring; and so i just did the bare minimum as quickly as I could to get it over with, and so here are the code INOs that I found: Cursed Oscilator point a luminosity resistor into a led: +++col \"code\" +++ Bit bang SPI I was too lazy to find a documentation for an spi module so i just bit banged it untill it showed me something, i never decoded the output just checked if it looked like it worked and basically lied in the code, quick, worked, and I lost the final code; so heres just the bit bang part: +++col \"code\" +++ Door I had to open a door with an IR remote; so i bit banged it. Im getting de ja vu led and motor and sensor: +++col \"code\" also; it looses the 1st or last bit; idk; just dont use cheap chinese remotes or the number 6 or 9... +++ i found a different version; i think i used this one to decode or smth... +++col \"code2 Door2 electir boogalloo?\" +++ Ecological Douche my midterm project; it was ok; basically a pump with extra buttons. +++col \"code\" +++ Hous hous. A greenhouse i never finished the code for or the prototyping for. +++col \"not code\" +++ A small led runnin code I'd like to say that this was asked of me AFTER the douche project; which just speaks to how linear french education is. +++col \"code\" +++ Serial API one of the more interesting projects; controlling stuff with a web page! +++col \"code\" +++", "jp": "学校でのArduino 技術の授業の一環として、私はA LOT、いや本当にA LOTの簡単なArduino課題をやらされました。 プログラミングとエンジニアリングの入門授業ではあったのですが、それでも正直、頭が痺れるほど退屈でした。 すでに約8年くらいプログラミングをやっていた人間としては、これは本当に退屈でしかなく、 なので私は「必要最低限を最速で終わらせる」戦略を取りました。 というわけで、ここに見つかったINOコードたちです： 呪われたオシレーター 光センサーをLEDに向ける： +++col \"code\" +++ ビットバングSPI SPIモジュールのドキュメントを探すのが面倒だったので、出力がそれっぽく見えるまでビットバングしました。 出力は一切デコードしていません。「動いてそうかどうか」だけ確認して、あとはコード的にはかなり嘘をついています。 速いし動いたし、最終コードはどっか行きました；なのでビットバング部分だけ： +++col \"code\" +++ ドア 赤外線リモコンでドアを開ける必要があったので、これもビットバングしました。 デジャヴを感じる LEDとモーターとセンサー： +++col \"code\" +++ あと、なぜか最初か最後のビットが欠けます；たぶん安い中国製リモコンは使わない方がいいです。あと「6」と「9」も信用しないでください… 別バージョンも見つけました；デコード用に使ってた気がします… +++col \"code2 ドア2 エレクトリック・ブーガルー？\" +++ エコロジカル・ドゥーシュ 中間プロジェクト；まあまあでした。基本的にはポンプにボタンを付けただけ。 +++col \"code\" +++ ハウス ハウス。 完成もしなかったし、プロトタイピングも途中で投げた温室プロジェクト。 +++col \"not code\" +++ 小さなLEDランニングコード これが課題として出たのが、ドゥーシュプロジェクトの“後”だったと言いたい。 フランスの教育の直線性がよく分かる。 +++col \"code\" +++ シリアルAPI わりと面白かったやつ；Webページから物理デバイスを操作するやつ！ +++col \"code\" +++"}, "date": "2026-06-20T12:31:51Z"}, {"name": "password_manager", "names": {"eng": "Password Manager", "jp": "パスワードマネージャー"}, "tags": {}, "path": "programming/password_manager", "nameMap": {"programming": {"eng": "Programming", "jp": "プログラミング"}, "password_manager": {"eng": "Password Manager", "jp": "パスワードマネージャー"}}, "searchText": {"eng": "My password manager Yup, i posted it on the internet. Try Me! I recently finaly made my little encoding project usefull, I turned it into a password manager! I originally played arround with the idea of encoding information into files and endded up with SHA 256 being broken into file names: +++col \"Example\" Yup all of them are empty... +++ Heres how that works; its in rust, cuz... it was my rust phase... +++col \"Source Code for API\" +++ Now, is what im doing with the encrypted string useless? Maybe? Does it do anything? Probably not. Does it make me feel cool? YES! WGET Its a tad annoying to have to post a wget every time you want something though; +++col \"Wget example\" +++ So i made wrappers: encode.sh and decode.sh +++col \"encode.sh\" +++ +++col \"decode.sh\" +++ The key is stored in env and the IV is the \"\"user password\"\" and is jumbled with a salt file; It might have been smarter to swap those arround but I'm not sure.", "jp": "私のパスワードマネージャ そう、インターネットに公開しました。かかってこい！ 最近、ついに自分のちょっとしたエンコード遊びを実用的にしました。パスワードマネージャにしたんです！ もともとは、データをファイルにエンコードするアイデアで遊んでいて、最終的に SHA 256 をファイル名に分割する形に落ち着きました： +++col \"例\" うん、全部空ディレクトリです… +++ 仕組みはこんな感じ；Rustで書いてます、まあ…Rustにハマってた時期だったので… +++col \"APIのソースコード\" +++ さて、この暗号化文字列の扱いは無意味なのか？ たぶん？ 何か役に立ってるのか？ たぶんしてない。 でもカッコよく感じるか？ YES! WGET 毎回 wget を叩かないといけないのはちょっと面倒ですが； +++col \"Wget 例\" +++ なのでラッパーを作りました：encode.sh と decode.sh +++col \"encode.sh\" +++ +++col \"decode.sh\" +++ キーは環境側にあって、IVは \"\"ユーザーパスワード\"\" で、saltファイルと混ぜられています； もしかしたら逆にした方が良かったかもしれませんが、正直よくわかりません。"}, "thumb": "/archive/programming/password_manager/main.jpg", "thumbWebp": "/archive/programming/password_manager/main.webp", "thumbSmall": "/archive/programming/password_manager/main.small.webp", "thumbW": 941, "thumbH": 593, "date": "2026-06-20T12:31:51Z"}, {"name": "morse_translator", "names": {"eng": "Morse Translator", "jp": "モールス変換ボックス"}, "tags": {}, "path": "ham_radio/morse_translator", "nameMap": {"ham_radio": {"eng": "HAM | Radio", "jp": "アマチュア無線"}, "morse_translator": {"eng": "Morse Translator", "jp": "モールス変換ボックス"}}, "searchText": {"eng": "Morse Translator I have a very nice YAESU FT 950 ; i love that thing to death and when i was on a trip to Japan i decided to splurge and buy a nice key I dont remember the name from the top of my head but its a nice bipedal key. The Problem And that was the problem; the YAESU only accepts mono key input! And so I had to build a small translator! The Build I used: A small arduino pro micro i salvaged from a keyboard A small buck so that i could power it all from my YAESUs external 13.5V PSU A POT A small LCD And a Relay Some may be screeming bloody murder at me but let me explain. for the YAESU FT 950 to register a HIGH you have to short the end and sleeve of the main AUX cable; and so i just connected it to a reelay. The Click Clack™ YES, it does make sound on EVERY dot and dash. And i like that! The sound in my opinion is calming; i like the click clack Extras I also used a chinese 3 pin connector so that i can hot swap my keys! Now the Code +++col \"code\" +++ I like my little translator box!", "jp": "モールス変換器 私はとても気に入っている YAESU FT 950 を持っています；本当に大好きな機種です そして日本に旅行したとき、思い切って良いキーを買うことにしました 名前は今すぐには思い出せませんが、なかなか良い バイペダルキーです 問題 そしてそれが問題でした；YAESU はモノラルキー入力しか受け付けません！ そこで小さな変換器を作る必要がありました！ 製作 使用したもの： キーボードから流用した小型の Arduino Pro Micro YAESU の外部 13.5V 電源から全体を駆動するための小型降圧コンバータ 可変抵抗（POT） 小型 LCD そして リレー 「それはダメだろ」と思う人もいるかもしれませんが、説明させてください。 YAESU FT 950 で HIGH を認識させるには、メイン AUX ケーブルの端子（チップ）とスリーブをショートさせる必要があります； なので単純にリレーに接続しました。 カチカチ音™ はい、すべてのドットとダッシュで音が鳴ります。そして私はそれが好きです！ その音は個人的に落ち着きます；あの カチカチ が良いんです 追加 また、中国製の3ピンコネクタを使って、キーをホットスワップできるようにしました！ ではコードです +++col \"code\" +++ この小さな変換ボックス、気に入っています！"}, "thumb": "/archive/ham_radio/morse_translator/main.webp", "date": "2026-06-20T12:31:51Z"}, {"name": "epub_svp", "names": {"eng": "EPUB RSVP", "jp": "EPUB RSVP"}, "tags": {}, "path": "programming/epub_svp", "nameMap": {"programming": {"eng": "Programming", "jp": "プログラミング"}, "epub_svp": {"eng": "EPUB RSVP", "jp": "EPUB RSVP"}}, "searchText": {}, "thumb": "/archive/programming/epub_svp/main.jpg", "thumbWebp": "/archive/programming/epub_svp/main.webp", "thumbSmall": "/archive/programming/epub_svp/main.small.webp", "thumbW": 538, "thumbH": 462, "date": "2026-06-20T12:31:51Z"}]}