keyboarddevelopmentcue2keysApr 2, 2026, 11:25 AM UTCI Participated in Keyket 2026I participated in Keyboard Market Tokyo (Keyket) 2026. I distributed my new custom keyboard, "Cue2Keys 2," and thankfully sold out. In this article, I share the preparations in advance, what the event day was like and how it felt, the improvements I made to exhibiting this time, and my ideas for the next version as well.
keyboarddevelopmentcue2keysMar 14, 2026, 8:00 AM UTCKeyket 2026 Product LineupAt Keyket 2026, held on Saturday, March 28, 2026, I will be offering Cue2Keys 2, the next-generation model of the full modular custom keyboard "Cue2Keys" that I offered at my previous appearance. The main offering will be the Starter Set DX, with event-limited colors and discounted pricing. In this article, I summarize the lineup and related information for Keyket.
keyboarddevelopmentcue2keysFeb 22, 2026, 2:06 PM UTCCue2Keys 2 Features: The Second Generation Full Modular KeyboardCue2Keys 2 is a full modular keyboard that modularizes the keys themselves, making additions and layout adjustments easier. There are also input devices such as trackballs and rotary encoders, and you can freely decide their positions and counts to build your configuration. No soldering is required, so you can start using it easily and expand it step by step. It suits people who want to keep modifying key counts and layouts. In this article, I summarize and introduce the features of Cue2Keys 2.
keyboarddevelopmentcue2keysAug 2, 2025, 9:57 AM UTCThe History of Cue2Keys: From Development Start to Initial Sales (Part 2)This article covers the development of "Cue2Keys" from the prototype stage through the first production run, describing the iterations, tradeoffs, and design details at each phase. As the second part, it records the development history of each module in detail.
keyboarddevelopmentAug 2, 2025, 9:55 AM UTCThe History of Cue2Keys: From Development Start to Initial Sales (Part 1)This article covers the development of "Cue2Keys" from the prototype stage through the first production run, describing the iterations, tradeoffs, and design details at each phase. As the first part, it focuses on the overall motivation and core concepts.
development3DprinterApr 28, 2025, 10:02 AM UTCBambu Lab H2D Combo Review (1) Overview and Comparison with A1 miniI purchased Bambu Lab's latest 3D printer, the H2D Combo. In this article, I'd like to share my motivation for buying the H2D and my review of the product. I plan to cover the printing details separately after trying various things.
keyboarddevelopmentApr 3, 2025, 7:13 AM UTCI Participated in Keyket 2025I participated in Keyket 2025 and distributed my custom keyboard, "Cue2Keys". This article describes the event day, the efforts leading up to it, and future prospects.
keyboarddevelopmentMar 15, 2025, 8:15 AM UTCKeyket 2025 Product LineupAt Keyket 2025, held on 3/22, I will be selling the custom keyboard "Cue2Keys". This page lists the products and related information.
keyboarddevelopmentAug 9, 2024, 10:39 AM UTCRunning I2C on Pro Micro (4) - TRRS ConnectionIn the fourth installment of the series, we modify the setup to connect breadboards using a TRRS cable. This allows connecting breadboards at separate locations, increasing independence and streamlining the wiring.
developmentAug 4, 2024, 10:35 AM UTCWebsite Renewal - Background and DesignI have renewed the esplo.net website. The themes of this renewal are "original design", "multilingual support", and "portability". I consolidated articles and created items in one place, and achieved multilingual support by managing articles in Markdown. In terms of design, I adopted a candy-like color scheme and made efforts to change the impression while maintaining readability.
keyboarddevelopmentMay 7, 2024, 11:16 AM UTCHow to Get Kailh Key Sockets (Online Shopping Comparison)We compare methods for purchasing Kailh KeySwitch Sockets, which allow for replaceable switches in mechanical keyboards. For users living in Japan, we compare prices and shipping costs for MX-compatible sockets to find the most cost-effective purchasing method.
keyboarddevelopmentApr 28, 2024, 2:39 PM UTCRunning I2C on Pro Micro (3) - Determining Pin StatesIn the third article of the series on running I2C on Pro Micro, we explain how to receive the state of I2C devices and determine if a button is pressed at a specific address. We interpret the MCP23017 datasheet, detail the wiring and programming steps to check pin states, and introduce implementation methods using the Arduino standard library and Adafruit's library.
keyboarddevelopmentApr 23, 2024, 2:14 PM UTCRunning I2C on Pro Micro (2) - I2C ConnectionThis article explains how to perform I2C communication with Pro Micro. It covers the basics of I2C, communication speeds and standards, connection methods, the I2C module used (MCP23017), required parts, wiring methods, and how to create an I2C Scanner program.
keyboarddevelopmentApr 12, 2024, 4:45 AM UTCRunning I2C on Pro Micro (1) - Setting up Pro MicroThis article explains the setup procedure for Pro Micro, including wiring on a breadboard, programming using Arduino IDE, and how to verify operation. The components used include a breadboard, Pro Micro + pin headers, reset switch, jumper wires, and a cable to connect Pro Micro to PC. It also covers the types of Pro Micro, pin assignments, and Arduino IDE configuration.
keyboarddevelopmentFeb 29, 2024, 9:25 AM UTCQMK Introduction: Running meishi Trackball Module with Custom FirmwareI'll introduce how to run meishi Trackball Module with custom firmware using QMK. I'll progress through the development of a custom keyboard, covering specific steps including solutions for trackball angle issues, QMK compilation error countermeasures, firmware configuration, and custom key implementation.
developmentFeb 5, 2024, 3:22 PM UTCWindows 11 Setup NotesThere were a few features I wanted to try, and with the announcement that Windows 10 support would end in October 2025, I finally decided to upgrade my Desktop PC to Windows 11. I reviewed various settings during this process, so I'm making notes on potentially useful features, including some older ones.
developmentblockchainbookAug 6, 2022, 8:44 AM UTCDistributing "Learn by Creating NFTxBlockchain: Implementing an Anonymous Membership Site with Solana NFT" at C100I will be distributing a new book titled "Learn by Creating NFTxBlockchain: Implementing an Anonymous Membership Site with Solana NFT" at Comic Market 100. This book covers the creation of an anonymous membership site using NFTs on Solana, a fast blockchain written in Rust. The content ranges from basic blockchain technology knowledge to the technical elements necessary for NFT sales.
developmentblockchainJun 7, 2022, 12:51 PM UTCCreating a Solana Wallet mnemonic (seed key) from the CLII explored methods to create a Solana Wallet mnemonic (seed key) from the CLI. While it's possible to generate multiple keys from a mnemonic, for security reasons in case the mnemonic is leaked, it might be safer to divide them into wallets with different mnemonics. Ultimately, I was able to generate mnemonics by running a script, and even obtain public and private keys, making mass production possible.
developmentAug 14, 2020, 10:43 AM UTCI Created a Tool to Calculate Actual Rent Using Rust's wasmI created a tool to calculate actual rent. When entering into a rental agreement, various costs arise in addition to the stated rent. A typical example is key money, and when comparing actual rent, it often differs from what is apparent. Additionally, there are many opaque costs such as insurance fees and mysterious cleaning charges, so this tool provides a function to display these as a unified average rent. This article explains the background of the tool, how to use it, and technical details using Rust's wasm_bindgen.
developmentJan 3, 2020, 11:53 AM UTCNotes on dieselThis blog post contains notes on how to use diesel. It covers various features and usage of diesel, including executing raw SQL, associations, grouped_by, retrieving a single record, SELECT restrictions when using GROUP BY, and more. It provides specific examples and code snippets to demonstrate useful ways to use diesel.
developmentmiscSep 15, 2019, 5:32 PM UTCDistributing "Displaying the Calculation Process of the Ackermann Function (Part ↑) / Solving the DDR Foot Movement Optimization Problem" at Technical Book Festival 7I will be distributing "Displaying the Calculation Process of the Ackermann Function (Part ↑) / Solving the DDR Foot Movement Optimization Problem" at Technical Book Festival 7. Using the Ackermann function as a subject, it touches on huge numbers and processing of massive data, creating a printer with Rust, and solving the DDR foot movement optimization problem. The content teaches how to deal with massive data and recursive functions.
developmentApr 28, 2019, 6:00 AM UTCMeasuring Rust Test Coverage using mozilla/grcovThis article introduces a method to easily measure Rust test coverage using the official tool mozilla/grcov. I will create a shell script that uses Nightly Rust and lcov to generate coverage reports. The script contents and important points are also explained.
developmentinvestmentproductFeb 11, 2019, 12:29 PM UTCReleased a downloader that retrieves execution data using exchange APIsThis article introduces a downloader that retrieves execution data using exchange APIs. To verify trading strategies that work in actual markets, I needed to conduct backtests using historical data. Therefore, I calculated the amount of data needed for a 30-day verification using bitFlyer's API to retrieve execution data. I published this downloader library as a Rust crate, with features including repeatedly hitting the API to write to MySQL or standard output, resuming from interruptions, and easy customization by simply implementing and passing traits.
developmentOct 11, 2018, 4:23 PM UTCAngularDart as a Development Environment for Small Web AppsI often used React or Next.js when creating small web apps, but this time I tried AngularDart, which has high compatibility with Material Design. AngularDart comes with types by default and makes it easy to use Material Design components, allowing for smooth development. However, since it's not js, it means departing from the existing ecosystem, and I feel there are also disadvantages such as a smaller community.
developmentOct 11, 2018, 3:22 AM UTCI Created an App to Generate Static HTML Cards from Open GraphI created a tool that generates static HTML cards using Open Graph meta data. This tool allows you to easily create cards by simply entering a URL, making link sharing on external sites more attractive.
developmentJun 15, 2018, 11:40 PM UTC2018 Edition: Running Periodic Website Operation Scripts for FreeThis article introduces the experience of searching for a method to run periodic website operation scripts for free in 2018, ultimately choosing Heroku. It explains how to automate simple operations using Selenium and Headless Chrome.
techdevelopmentMay 8, 2018, 10:18 PM UTCUse Cases for Docker Multistage BuildBy utilizing Docker's Multistage Build feature, you can write Dockerfiles more concisely. Using this feature allows for use cases such as reducing image size, excluding programs used only in development environments, and facilitating refactoring. Specifically, it becomes possible to create images of just a few MB for Go language programs, and it becomes easier to separate development and release environments. Additionally, the dependencies of each stage become clearer, improving the maintainability of Dockerfiles.
developmentFeb 24, 2018, 11:39 PM UTCI Created a Boilerplate for gRPC WebI created a boilerplate that allows you to easily try gRPC Web. Applying gRPC to communication between web applications and API servers often requires time-consuming setup of proxies and converters. By using this boilerplate, you can start everything with a single command, making it easy to experiment.
bookdevelopmentDec 31, 2017, 4:40 AM UTCI Released a Technical Book at Winter Comiket (C93)I released a technical book at Winter Comiket (C93) for the first time. I wrote about my experiences, from applying to participating in the event, including the schedule and procedures. I also shared my thoughts on selling my book at the event.
developmentDec 16, 2017, 6:00 AM UTCExamples and Internals of slick-codegenThis is the 17th article of Scala Advent Calendar 2017. I will explain the usage and internals of slick-codegen, a program that automatically generates code corresponding to a DB schema. Although it is a convenient tool, the official documentation is insufficient, making it difficult to understand how to use it in practice. In this article, I will read the code of slick-codegen and explain how to customize it. Specifically, I will introduce samples such as converting java.sql.time to org.joda.time.DateTime, setting default values, automatically converting to JSON, and using custom ID types.
techdevelopmentSep 9, 2017, 6:59 PM UTCSetting up an HTTPS Proxy on localhost using DockerThis article explains how to set up an HTTPS proxy on localhost using Docker, allowing you to access your local application server via HTTPS. By using an SSL termination proxy within a Docker container, you can set up a fast and secure environment without polluting your local environment. Specifically, we use Nginx to set up the proxy and environment variables to set the host's IP address. The usage is simple and can be shared across Mac and Linux environments.
bookdevelopmentNov 20, 2016, 6:33 AM UTCScala Functional Design & Programming - Chapter 6 (6)I've finished reading Chapter 6 of Scala Functional Design & Programming. This chapter explains how to handle state and tackles issues such as random number generation and state transitions. By introducing the Rand type and State type, and generalizing map, map2, and flatMap, we can smoothly handle state transitions. Finally, we experienced powerful stateless descriptions through a vending machine simulation.
bookdevelopmentOct 10, 2016, 1:15 AM UTCScala Functional Design & Programming - Chapter 5 (5)I read Chapter 5 of Scala Functional Design & Programming and learned about lazy evaluation and Stream implementation. Stream utilizes lazy evaluation to achieve efficient processing, and I learned about generating infinite streams and implementing functions using foldRight. After grasping the basics of Stream, I learned about generating infinite streams and implementing functions using unfold. Finally, I learned about implementing tails and scanRight.
bookdevelopmentSep 25, 2016, 12:38 AM UTCScala Functional Design & Programming - Chapter 4 (4)In Chapter 4 of Scala Functional Design & Programming, we learn about error handling. We discuss the problems with exceptions, and introduce the Option and Either types. By using these types, we learn how to handle errors in a type-safe manner. Specifically, we implement map, flatMap, and other methods for Option and Either, and learn practical error handling techniques.
bookdevelopmentSep 21, 2016, 6:52 AM UTCScala Functional Design & Programming - Chapter 3 (3)This article summarizes the content of Chapter 3 of Scala Functional Design & Programming. It covers data updates using pure functions, list operations, foldRight and foldLeft, and tree structure operations, deepening functional programming skills through numerous exercises.
bookdevelopmentSep 6, 2016, 7:26 PM UTCScala Functional Design & Programming - Chapter 2 (2)I read and practiced the contents of Chapter 2 of "Scala Functional Design & Programming", including recursive functions, higher-order functions, and polymorphism. The chapter starts with an explanation of Scala, followed by how to write loops using recursion, and then touches on tail recursion. It also explains higher-order functions and polymorphism, and deepens understanding through practice problems.
bookdevelopmentSep 4, 2016, 7:45 AM UTCScala Functional Design & Programming - Chapter 1 (1)"Scala Functional Design & Programming - A Comprehensive Guide to Functional Programming by Scalaz Contributors" explains how to treat Scala as a purely functional programming language. It emphasizes the benefits of functional programming, such as modularity, and demonstrates the advantages of pure functions through concrete examples. The author stresses the importance of balancing programming constraints and freedom, highlighting the role of purely functional languages in this context.
bookdevelopmentSep 2, 2016, 8:08 PM UTCTechnical Book HaulI'd like to talk about why I recently bought a large number of technical books. Due to the overwhelming amount of information from games and Qiita, I had lost the habit of reading high-quality, systematic books. The books I purchased can be categorized into three groups: team building, language, and lifestyle. The team building books, in particular, offer insights into Google's management and how small teams can achieve big things.