<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Development on kenji.blog</title><link>http://kenji.blog/en/tags/development/</link><description>Recent content in Development on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>kenjinote</copyright><lastBuildDate>Wed, 30 Jul 2025 23:51:35 +0900</lastBuildDate><atom:link href="http://kenji.blog/en/tags/development/index.xml" rel="self" type="application/rss+xml"/><item><title>The Untold Story of LogicPad Development</title><link>http://kenji.blog/en/p/logicpad-%E9%96%8B%E7%99%BA%E7%A7%98%E8%A9%B1/</link><pubDate>Wed, 30 Jul 2025 23:51:35 +0900</pubDate><guid>http://kenji.blog/en/p/logicpad-%E9%96%8B%E7%99%BA%E7%A7%98%E8%A9%B1/</guid><description>&lt;img src="http://kenji.blog/p/logicpad-%E9%96%8B%E7%99%BA%E7%A7%98%E8%A9%B1/img.png" alt="Featured image of post The Untold Story of LogicPad Development" />&lt;h1 id="tools-for-those-who-have-logic-but-cant-write-code-why-i-created-logicpad">Tools for those who &amp;ldquo;have logic but can&amp;rsquo;t write code.&amp;rdquo; Why I created LogicPad
&lt;/h1>&lt;p>Hello, I&amp;rsquo;m kenji. I&amp;rsquo;m the creator of the low-code tool &amp;ldquo;&lt;a class="link" href="https://logicpad.org" target="_blank" rel="noopener"
>LogicPad&lt;/a>&amp;rdquo;.
This time, rather than introducing the product, I&amp;rsquo;d like to write about the behind-the-scenes of the development—&amp;ldquo;Why did I decide to make this?&amp;quot;—and my own thoughts from a slightly personal perspective.&lt;/p>
&lt;p>To be honest, this was not just another tool development.
My past, frustrations at the workplace, skill set, and the smoldering desire to &amp;ldquo;create my own product someday&amp;rdquo;—
LogicPad was born as a result of all these things overlapping.&lt;/p>
&lt;p>In other words, &lt;strong>this is my &amp;ldquo;life&amp;rsquo;s culmination project.&amp;rdquo;&lt;/strong>
I&amp;rsquo;ll write about this background as honestly and passionately as possible.&lt;/p>
&lt;hr>
&lt;h2 id="i-wanted-a-product-i-could-proudly-say-i-made-this">I wanted a product I could proudly say, &amp;ldquo;I made this.&amp;rdquo;
&lt;/h2>&lt;p>To be frank, this was my very first motivation.&lt;/p>
&lt;p>Since a long time ago, I loved writing code for both work and hobbies. I&amp;rsquo;ve been involved in various developments.
But one day, I suddenly realized.
&lt;strong>&amp;ldquo;I have no product released into the world under my own name, with my own responsibility.&amp;rdquo;&lt;/strong>&lt;/p>
&lt;p>Of course, there is value in what you make as a team, and there was plenty of work I could be proud of.
But somewhere in my mind, there was a sense of emptiness, wondering, &amp;ldquo;Am I going to finish my career under someone else&amp;rsquo;s name like this?&amp;rdquo;&lt;/p>
&lt;p>Just once is enough.
&lt;strong>I want to leave something behind that I can proudly say, &amp;ldquo;I made this.&amp;rdquo;&lt;/strong>
With that thought, I started conceptualizing LogicPad. This was about 6 years ago (around 2019).
(The original idea itself came about 10 years ago in 2015 when I learned about Blueprint, the visual programming language of Unreal Engine.)&lt;/p>
&lt;h2 id="blueprintimg_1png">&lt;img src="http://kenji.blog/p/logicpad-%E9%96%8B%E7%99%BA%E7%A7%98%E8%A9%B1/img_1.png"
width="637"
height="285"
srcset="http://kenji.blog/p/logicpad-%E9%96%8B%E7%99%BA%E7%A7%98%E8%A9%B1/img_1_hu70d4fd9be2cc84fc55cb45a83c67cc8a_54446_480x0_resize_box_3.png 480w, http://kenji.blog/p/logicpad-%E9%96%8B%E7%99%BA%E7%A7%98%E8%A9%B1/img_1_hu70d4fd9be2cc84fc55cb45a83c67cc8a_54446_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="Blueprint"
class="gallery-image"
data-flex-grow="223"
data-flex-basis="536px"
>
&lt;/h2>&lt;h2 id="its-a-waste-to-hold-back-just-because-you-cant-write-code-isnt-it">It&amp;rsquo;s a waste to hold back just because you can&amp;rsquo;t write code, isn&amp;rsquo;t it?
&lt;/h2>&lt;p>There were many excellent people at my workplace.&lt;/p>
&lt;p>They could build logic. They mastered Excel functions freely and could see through to the essence of a problem.
But—when it came to the stage of &amp;ldquo;writing code,&amp;rdquo; their hands would stop.&lt;/p>
&lt;p>&amp;ldquo;I&amp;rsquo;m doing this task while looking at a manual every time, but couldn&amp;rsquo;t it be automated?&amp;rdquo;
&amp;ldquo;Yeah, it can. But&amp;hellip; you&amp;rsquo;d have to write code for that&amp;hellip;&amp;rdquo;&lt;/p>
&lt;p>Conversations like that happened countless times.&lt;/p>
&lt;p>Every time, I thought:
&lt;strong>&amp;ldquo;It&amp;rsquo;s such a waste that people who understand the logic get stopped by the wall of code.&amp;rdquo;&lt;/strong>&lt;/p>
&lt;hr>
&lt;h2 id="the-choice-of-a-low-code-editor">The Choice of a Low-Code Editor
&lt;/h2>&lt;p>Actually, in my previous job, I was developing a 2D CAD operated by GUI.
With CAD, you assemble shapes using a mouse, right?
In other words, it&amp;rsquo;s a world where you &lt;strong>&amp;ldquo;build logic through operations.&amp;rdquo;&lt;/strong>&lt;/p>
&lt;p>I thought, &amp;ldquo;This is incredibly compatible with low-code.&amp;rdquo;&lt;/p>
&lt;p>Going back even further, since my student days, I was mass-producing small programs—image processing, numerical processing, Windows tools, automatic SNS posting tools, etc.—by writing code as soon as I thought of them.
I think there are over 600 of them. They are still on GitHub today.&lt;/p>
&lt;p>Back then, I didn&amp;rsquo;t think about the meaning.
I just &amp;ldquo;made things because I wanted to make them.&amp;rdquo; That was it.&lt;/p>
&lt;p>But now, while making LogicPad&amp;hellip;&lt;/p>
&lt;p>&lt;strong>I felt like the dots were finally connected into a line.&lt;/strong>&lt;/p>
&lt;hr>
&lt;h2 id="easy-to-use-yet-powerful-the-difficulty-of-balance">Easy to Use, Yet Powerful. The Difficulty of Balance
&lt;/h2>&lt;p>While proceeding with development, what I constantly thought about was
&lt;strong>&amp;ldquo;Making a tool that is intuitively usable and genuinely powerful.&amp;rdquo;&lt;/strong>&lt;/p>
&lt;p>If you add features, you can do more. But it becomes harder to use.
If you make it simple, anyone can touch it. But then some people will find it lacking.&lt;/p>
&lt;p>So that people won&amp;rsquo;t say, &amp;ldquo;Low-code tools are just toys, right?&amp;rdquo;
But also so they won&amp;rsquo;t say, &amp;ldquo;You have to write code in the end anyway.&amp;rdquo;&lt;/p>
&lt;p>&lt;strong>I fought continuously on that fine line between intuition and expressiveness.&lt;/strong>&lt;/p>
&lt;p>I rebuilt the UI many times, threw it away many times,
and when I finally got closer to a form where I thought, &amp;ldquo;This can work,&amp;rdquo; I was truly happy.&lt;/p>
&lt;hr>
&lt;h2 id="saved-by-the-very-first-users-words">Saved by the Very First &amp;ldquo;User&amp;rsquo;s&amp;rdquo; Words
&lt;/h2>&lt;p>The first person I handed LogicPad to was a former colleague.
They weren&amp;rsquo;t good at IT, and code was scary. But they were good at logic.&lt;/p>
&lt;p>After I explained a bit and had them try it out&amp;hellip; the single phrase they said a few minutes later, I still can&amp;rsquo;t forget.&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>&amp;ldquo;With this, I think even I could do it!&amp;rdquo;&lt;/strong>&lt;/p>
&lt;/blockquote>
&lt;p>I almost cried.
This was exactly what I wanted to give them.&lt;/p>
&lt;p>Not just a working tool, but &lt;strong>the feeling of &amp;ldquo;I made it myself!&amp;rdquo;&lt;/strong>.
I was convinced that this is the true value of LogicPad.&lt;/p>
&lt;hr>
&lt;h2 id="when-more-people-can-create-society-becomes-more-interesting">When More People Can Create, Society Becomes More Interesting
&lt;/h2>&lt;p>I genuinely believe that the &amp;ldquo;democratization of technology&amp;rdquo; is crucial.&lt;/p>
&lt;p>Technology has the power to change the world.
But the people who can handle it are limited.&lt;/p>
&lt;p>What if you could build apps just by &amp;ldquo;understanding the logic&amp;rdquo;?&lt;/p>
&lt;p>&lt;strong>More people will be able to join the &amp;ldquo;creating side.&amp;rdquo;&lt;/strong>
And I believe that what gets born from there will exceed our current imagination.&lt;/p>
&lt;p>If LogicPad could become that gateway.
I want it to be a tool that turns &amp;ldquo;I want to try making it&amp;rdquo; into &amp;ldquo;I can make it.&amp;rdquo;&lt;/p>
&lt;p>That is my wish.&lt;/p>
&lt;hr>
&lt;h2 id="in-conclusion">In Conclusion
&lt;/h2>&lt;p>LogicPad is still in beta and not finished yet.
There are a mountain of improvements and things I want to do.&lt;/p>
&lt;p>But I&amp;rsquo;ve poured &lt;strong>all the &amp;ldquo;dots&amp;rdquo; of my life into this tool.&lt;/strong>
Now, I can say with pride:&lt;/p>
&lt;p>&lt;strong>&amp;ldquo;This is a product that I made.&amp;rdquo;&lt;/strong>&lt;/p>
&lt;hr>
&lt;h3 id="-bonus-what-you-can-do-with-logicpad">👇 Bonus: What You Can Do with LogicPad
&lt;/h3>&lt;ul>
&lt;li>Build processes with drag-and-drop&lt;/li>
&lt;li>Handle conditional branching and variables in the GUI&lt;/li>
&lt;li>Features diverse AI integration nodes&lt;/li>
&lt;li>Expandable for advanced users by inserting scripts&lt;/li>
&lt;li>High-precision mathematical functions and data processing (such as infinite-precision numerical calculations)&lt;/li>
&lt;li>Rich shortcut keys for advanced users&lt;/li>
&lt;li>Supports over 90 languages&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h3 id="what-i-want-to-do-moving-forward">What I Want to Do Moving Forward
&lt;/h3>&lt;ul>
&lt;li>Generate logic from natural language in collaboration with AI&lt;/li>
&lt;li>A system where users can create custom nodes&lt;/li>
&lt;li>Build a platform to share created nodes and logic&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="-afterword">✍️ Afterword
&lt;/h2>&lt;p>Thank you so much for reading this far.
This wasn&amp;rsquo;t just a tool development; it was a challenge into which I poured my own experiences, passion, and fragments of my life.&lt;/p>
&lt;p>&amp;ldquo;I can&amp;rsquo;t write code, but I have logic.&amp;rdquo;
A future where such people become &lt;strong>able to &amp;ldquo;create&amp;rdquo; with their own power&lt;/strong>.
I want to continue aiming for that through LogicPad.&lt;/p>
&lt;p>If this made you feel even a little bit like &amp;ldquo;I want to try using it,&amp;rdquo; that alone makes me very happy.
If you&amp;rsquo;re interested, please definitely try out &lt;a class="link" href="https://logicpad.org" target="_blank" rel="noopener"
>LogicPad&lt;/a>.&lt;/p>
&lt;p>And if you have any thoughts or things you noticed after using it, no matter how small, please let me know.
Your voice will be a great power in creating the next step for this product.&lt;/p>
&lt;p>Thank you for your continued support.&lt;/p></description></item><item><title>The Wall of AI Development</title><link>http://kenji.blog/en/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/</link><pubDate>Sun, 20 Jul 2025 21:52:42 +0900</pubDate><guid>http://kenji.blog/en/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/</guid><description>&lt;img src="http://kenji.blog/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/img_1.png" alt="Featured image of post The Wall of AI Development" />&lt;h1 id="the-wall-of-ai-development">The Wall of AI Development
&lt;/h1>&lt;p>&lt;strong>〜Made it to the 8th station, but from there it was hell〜&lt;/strong>&lt;/p>
&lt;p>Hello, I&amp;rsquo;m kenji.&lt;/p>
&lt;p>Recently, I&amp;rsquo;ve been hearing a ton of people saying, &amp;ldquo;I asked AI and it made an app for me!&amp;rdquo;
We&amp;rsquo;ve moved past the era of no-code and low-code, and are entering a phase of &amp;ldquo;vibe coding&amp;rdquo; (writing code by feel).&lt;/p>
&lt;p>For example, if you say, &amp;ldquo;Make an app that processes images and posts them to SNS,&amp;rdquo; AI will spit out the code and even the UI.
&lt;strong>It&amp;rsquo;s amazing, you&amp;rsquo;d think we don&amp;rsquo;t need humans anymore, right?&lt;/strong>&lt;/p>
&lt;p>But you know, that&amp;rsquo;s like &lt;strong>landing at the 8th station of Mount Fuji in sandals&lt;/strong>.&lt;/p>
&lt;hr>
&lt;h2 id="getting-to-the-8th-station-looks-easy">Getting to the 8th station looks &amp;ldquo;easy&amp;rdquo;
&lt;/h2>&lt;p>Development with AI is really easy at first.
File I/O? It runs for now.
Network? Well, it connects.
Database? JSON is fine.
UI? ChatGPT spit out React code.
Billing? Just copy-paste the Stripe API.&lt;/p>
&lt;p>Here, you get the illusion of &amp;ldquo;Am I an engineer now?&amp;rdquo;.
But the real hell begins from here.&lt;/p>
&lt;p>&lt;img src="http://kenji.blog/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/img.png"
width="1024"
height="1024"
srcset="http://kenji.blog/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/img_huf56c5201f3b1d8f8800773fd39442f1f_2016892_480x0_resize_box_3.png 480w, http://kenji.blog/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/img_huf56c5201f3b1d8f8800773fd39442f1f_2016892_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;hr>
&lt;h2 id="why-you-get-stuck">Why you get stuck
&lt;/h2>&lt;p>The reason is simple: &amp;ldquo;AI makes it look like it&amp;rsquo;s done, but leaves the final adjustments entirely to humans.&amp;rdquo;&lt;/p>
&lt;ul>
&lt;li>Data gets lost in File I/O&lt;/li>
&lt;li>DB normalization is weak so searches are slow&lt;/li>
&lt;li>UI is not intuitive&lt;/li>
&lt;li>Crashes from access concentration because no load testing was done&lt;/li>
&lt;li>Rejected by Apple/Google review&lt;/li>
&lt;li>(Almost) causes an uproar by violating legal requirements&lt;/li>
&lt;/ul>
&lt;p>In other words, **AI is good at creating a prototype that looks like a finished product &lt;strong>, but ** finishing it into a product that actually works in the real world is still a human&amp;rsquo;s job today&lt;/strong>.&lt;/p>
&lt;hr>
&lt;h2 id="but-theres-a-paradox">But there&amp;rsquo;s a paradox
&lt;/h2>&lt;p>Here you notice one &lt;strong>paradox&lt;/strong>.&lt;/p>
&lt;blockquote>
&lt;p>What if AI becomes able to truly do everything in the future?
In other words, what if &amp;ldquo;AI can perfectly handle security, billing, and design all by itself&amp;rdquo;?&lt;/p>
&lt;/blockquote>
&lt;p>At that time, &lt;strong>the need for humanity to create apps itself might disappear&lt;/strong>.&lt;/p>
&lt;p>Because if a user directly tells the AI, &amp;ldquo;I want to do this kind of thing,&amp;rdquo; the task will be executed immediately without an app.&lt;/p>
&lt;hr>
&lt;h3 id="for-example">🌀For example
&lt;/h3>&lt;p>In the past, we &amp;ldquo;launched a calculator app to calculate&amp;rdquo;, but now it&amp;rsquo;s done just by saying, &amp;ldquo;Hey Siri, what&amp;rsquo;s 12 x 32?&amp;rdquo;.&lt;/p>
&lt;p>In the same way, if you say &amp;ldquo;AI, process this photo and share it&amp;rdquo;, the process might be completed without going through any app UI or API.&lt;/p>
&lt;p>In other words, &lt;strong>when the goal of &amp;ldquo;making apps with AI&amp;rdquo; is realized, a world where apps themselves are unnecessary might arrive&lt;/strong>.&lt;/p>
&lt;hr>
&lt;h2 id="in-the-end-what-we-can-do-now">In the end, what we can do now
&lt;/h2>&lt;p>So, what should we do?&lt;/p>
&lt;ul>
&lt;li>Right now, &amp;ldquo;above the 8th station&amp;rdquo; is still the human domain, so polish that&lt;/li>
&lt;li>Focus on essential user understanding and service design&lt;/li>
&lt;li>Think about &amp;ldquo;what&amp;rsquo;s valuable&amp;rdquo; rather than &amp;ldquo;what can be made&amp;rdquo;&lt;/li>
&lt;li>Rather, explore ways of providing value that are &amp;ldquo;not bound by the format of an app&amp;rdquo;&lt;/li>
&lt;/ul>
&lt;p>AI is a tool, a lift, and sometimes a competitor.
But, &lt;strong>&amp;ldquo;what to make&amp;rdquo; and &amp;ldquo;why to make it&amp;rdquo; remain questions for us humans&lt;/strong>.&lt;/p>
&lt;hr>
&lt;h2 id="conclusion">Conclusion:
&lt;/h2>&lt;p>&lt;strong>The wall of AI development is not a paradox of technology, but of structure&lt;/strong>&lt;/p>
&lt;p>An era where anyone can get to the 8th station of Mount Fuji.
But the real thing starts from there.&lt;/p>
&lt;p>And by the time we reach the summit, a future might be waiting where we ask ourselves, &amp;ldquo;Did we even need to climb the mountain?&amp;rdquo;.&lt;/p>
&lt;p>&lt;img src="http://kenji.blog/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/img_1.png"
width="1024"
height="1024"
srcset="http://kenji.blog/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/img_1_hu929f602c53dcc1c0d00e8a53b025b29e_1978511_480x0_resize_box_3.png 480w, http://kenji.blog/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/img_1_hu929f602c53dcc1c0d00e8a53b025b29e_1978511_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p></description></item><item><title>Market-In and Product-Out</title><link>http://kenji.blog/en/p/%E3%83%9E%E3%83%BC%E3%82%B1%E3%83%83%E3%83%88%E3%82%A4%E3%83%B3%E3%81%A8%E3%83%97%E3%83%AD%E3%83%80%E3%82%AF%E3%83%88%E3%82%A2%E3%82%A6%E3%83%88/</link><pubDate>Tue, 15 Jul 2025 20:18:22 +0900</pubDate><guid>http://kenji.blog/en/p/%E3%83%9E%E3%83%BC%E3%82%B1%E3%83%83%E3%83%88%E3%82%A4%E3%83%B3%E3%81%A8%E3%83%97%E3%83%AD%E3%83%80%E3%82%AF%E3%83%88%E3%82%A2%E3%82%A6%E3%83%88/</guid><description>&lt;img src="http://kenji.blog/p/%E3%83%9E%E3%83%BC%E3%82%B1%E3%83%83%E3%83%88%E3%82%A4%E3%83%B3%E3%81%A8%E3%83%97%E3%83%AD%E3%83%80%E3%82%AF%E3%83%88%E3%82%A2%E3%82%A6%E3%83%88/img.png" alt="Featured image of post Market-In and Product-Out" />&lt;h1 id="market-in-vs-product-out">Market-In vs. Product-Out
&lt;/h1>&lt;p>Hello, this is kenji.&lt;/p>
&lt;p>Sometimes in business books or proposals,&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;We use a market-in strategy.&amp;rdquo;
&amp;ldquo;This is a product-out approach, isn&amp;rsquo;t it?&amp;rdquo;&lt;/p>
&lt;/blockquote>
&lt;p>You see people saying things like this, but&amp;hellip;&lt;/p>
&lt;p>&lt;strong>Wait, market-in? Product-out? Which one is better???&lt;/strong>&lt;/p>
&lt;p>Don&amp;rsquo;t you ever feel that way?&lt;/p>
&lt;p>So this time, I want to break down these terms &amp;ldquo;market-in&amp;rdquo; and &amp;ldquo;product-out&amp;rdquo; as simply as possible, with a slightly critical eye.&lt;/p>
&lt;hr>
&lt;h2 id="simply-put">Simply put&amp;hellip;
&lt;/h2>&lt;ul>
&lt;li>&lt;strong>Market-in&lt;/strong>: Listening to the voice of the market and creating products that match it.&lt;/li>
&lt;li>&lt;strong>Product-out&lt;/strong>: Creating what you think is good (the product) and putting it out into the world.&lt;/li>
&lt;/ul>
&lt;p>That&amp;rsquo;s it. Simple.&lt;/p>
&lt;hr>
&lt;h2 id="for-example-with-a-ramen-shop">For example, with a ramen shop&amp;hellip;
&lt;/h2>&lt;p>A market-in ramen shop would be like,
&amp;ldquo;Iekei ramen is popular lately. Alright, let&amp;rsquo;s go with plenty of fat and garlic!&amp;rdquo;&lt;/p>
&lt;p>A product-out ramen shop would be like,
&amp;ldquo;This soy milk basil salt ramen I made is seriously the best, so eat it.&amp;rdquo;&lt;/p>
&lt;hr>
&lt;h2 id="which-one-is-the-correct-answer-both-are">Which one is the correct answer&amp;hellip; Both are.
&lt;/h2>&lt;p>With market-in, you cater to customer needs, so &amp;ldquo;the probability of it selling is high,&amp;rdquo; but it&amp;rsquo;s hard to produce breakthrough ideas or innovations.&lt;/p>
&lt;p>With product-out, you &amp;ldquo;give shape to the justice you believe in,&amp;rdquo; so it&amp;rsquo;s edgy and attractive, but if you miss the mark, it won&amp;rsquo;t resonate with anyone.&lt;/p>
&lt;hr>
&lt;h2 id="the-iphone-is-quite-product-out">The iPhone is quite product-out
&lt;/h2>&lt;p>Apple released the iPhone in an era when people were saying &amp;ldquo;I don&amp;rsquo;t need a smartphone.&amp;rdquo;&lt;/p>
&lt;p>This is &lt;strong>completely a successful example of product-out&lt;/strong>.&lt;/p>
&lt;p>If they had just listened to users, they would have been told &amp;ldquo;A phone without a keyboard? Impossible,&amp;rdquo; and that would have been the end of it.&lt;/p>
&lt;hr>
&lt;h2 id="but-product-out-can-easily-become-self-satisfaction">But product-out can easily become &amp;ldquo;self-satisfaction&amp;rdquo;
&lt;/h2>&lt;p>Sometimes there are companies or people who say, &amp;ldquo;We are a product-out type,&amp;rdquo; but&lt;/p>
&lt;blockquote>
&lt;p>Wait, isn&amp;rsquo;t that just ignoring the user?&lt;/p>
&lt;/blockquote>
&lt;p>I sometimes think that.&lt;/p>
&lt;p>&amp;ldquo;I made it because I wanted to. But it didn&amp;rsquo;t sell.&amp;rdquo;
That&amp;rsquo;s not product-out, that&amp;rsquo;s &amp;ldquo;self-indulgent-out.&amp;rdquo;&lt;/p>
&lt;hr>
&lt;h2 id="market-in-has-pitfalls-too">Market-in has pitfalls too
&lt;/h2>&lt;p>On the other hand, market-in is not omnipotent either.&lt;/p>
&lt;p>If you say, &amp;ldquo;I&amp;rsquo;ll do everything because the users want it!&amp;rdquo;, the core of the product gets blurred, and in the end, it might not resonate with anyone.&lt;/p>
&lt;p>It&amp;rsquo;s like when you keep adding features, and before you know it, it&amp;rsquo;s become a chaotic tool.&lt;/p>
&lt;hr>
&lt;h2 id="the-ones-who-are-truly-amazing-are-those-doing-both">The ones who are truly amazing are &amp;ldquo;those doing both&amp;rdquo;
&lt;/h2>&lt;p>Amazing products perfectly present &amp;ldquo;something users truly wanted but couldn&amp;rsquo;t put into words.&amp;rdquo;&lt;/p>
&lt;p>In other words, it means &amp;ldquo;getting market-in style empathy with a product-out mindset.&amp;rdquo;&lt;/p>
&lt;p>It&amp;rsquo;s easy to say, but incredibly difficult to do.
However, if you can pull this off, it instantly becomes a &amp;ldquo;god-tier product.&amp;rdquo;&lt;/p>
&lt;hr>
&lt;h2 id="conclusion-user-reaction-is-everything-not-words">Conclusion: User reaction is everything, not words
&lt;/h2>&lt;p>Market-in or product-out.
Which is right is a pretty meaningless question.&lt;/p>
&lt;p>&lt;strong>&amp;ldquo;Is it properly reaching the users&amp;rsquo; hearts?&amp;rdquo; That&amp;rsquo;s everything,&lt;/strong> I think.&lt;/p>
&lt;p>I feel like saying &amp;ldquo;we&amp;rsquo;re doing this kind of strategy&amp;rdquo; is fine as long as you can write it in marketing materials later.&lt;/p>
&lt;hr>
&lt;p>So, that was a talk about market-in and product-out!&lt;/p>
&lt;p>Without being confused by weird loanwords, thinking about &amp;ldquo;In the end, what will make people happy?&amp;rdquo; is the healthiest approach, I think.&lt;/p>
&lt;p>See you around~.&lt;/p></description></item><item><title>How to Install Gemini CLI on Windows Environment</title><link>http://kenji.blog/en/p/gemini-cli-%E3%82%92-windows-%E7%92%B0%E5%A2%83%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/</link><pubDate>Sun, 13 Jul 2025 23:49:56 +0900</pubDate><guid>http://kenji.blog/en/p/gemini-cli-%E3%82%92-windows-%E7%92%B0%E5%A2%83%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/</guid><description>&lt;img src="http://kenji.blog/p/gemini-cli-%E3%82%92-windows-%E7%92%B0%E5%A2%83%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img.png" alt="Featured image of post How to Install Gemini CLI on Windows Environment" />&lt;h1 id="for-beginners-how-to-install-gemini-cli-on-windows">[For Beginners] How to Install Gemini CLI on Windows
&lt;/h1>&lt;p>&amp;ldquo;Gemini CLI&amp;rdquo; allows you to use Google&amp;rsquo;s generative AI &amp;ldquo;Gemini&amp;rdquo; from the command line.
In this article, we will explain the steps to install Gemini CLI in a Windows environment as easily as possible.&lt;/p>
&lt;hr>
&lt;h2 id="1-preparation-install-nodejs-and-npm">1. Preparation: Install Node.js and npm
&lt;/h2>&lt;p>First, since Gemini CLI runs on an environment called &amp;ldquo;Node.js&amp;rdquo;, you need to have the following installed:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Node.js&lt;/strong>&lt;/li>
&lt;li>&lt;strong>npm (Package management tool included with Node.js)&lt;/strong>&lt;/li>
&lt;li>&lt;strong>npx (Command execution tool included with npm)&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>Please download the Windows version of Node.js from the official website below (the LTS version is recommended):&lt;/p>
&lt;p>👉 &lt;a class="link" href="https://nodejs.org/" target="_blank" rel="noopener"
>Node.js Official Website&lt;/a>&lt;/p>
&lt;p>Once the installation is complete, let&amp;rsquo;s verify if it was installed correctly with the following commands.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="n">node&lt;/span> &lt;span class="n">-v&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">npm&lt;/span> &lt;span class="n">-v&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr>
&lt;h2 id="2-launch-powershell">2. Launch PowerShell
&lt;/h2>&lt;p>To use Gemini CLI on Windows, it is common to operate it using PowerShell.
Type &amp;ldquo;PowerShell&amp;rdquo; in the Start menu to launch it.&lt;/p>
&lt;hr>
&lt;h2 id="3-install-gemini-cli">3. Install Gemini CLI
&lt;/h2>&lt;p>Copy and paste the following command into PowerShell and execute it:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">npx @google/gemini-cli
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>This command temporarily executes the Gemini CLI package published by Google.
You may be prompted for initial setup or login if necessary.&lt;/p>
&lt;ul>
&lt;li>Note: It may take a few minutes the first time. If you encounter an error, please double-check your Node.js or network environment.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="4-installation-complete-what-to-do-next">4. Installation Complete! What to do next
&lt;/h2>&lt;p>Now, Gemini CLI has been installed on Windows.
From now on, you will be able to perform various operations using Gemini from the command line, such as text generation and code completion.&lt;/p>
&lt;p>If you want to check the official documentation or help, you can also utilize commands like the following.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">npx @google/gemini-cli --help
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr>
&lt;h2 id="conclusion">Conclusion
&lt;/h2>&lt;p>Let&amp;rsquo;s review the steps to introduce Gemini CLI to Windows.&lt;/p>
&lt;ol>
&lt;li>Install Node.js and npm&lt;/li>
&lt;li>Launch PowerShell&lt;/li>
&lt;li>Execute &lt;code>npx @google/gemini-cli&lt;/code>&lt;/li>
&lt;/ol>
&lt;p>Now you&amp;rsquo;re all set!
If you want to use generative AI locally, please give it a try using these steps as a reference.&lt;/p></description></item><item><title>Advantages and Disadvantages of Creating Programs with Win32API + C++</title><link>http://kenji.blog/en/p/win32api-c-%E3%81%A7%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E4%BD%9C%E3%82%8B%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88%E3%81%A8%E3%83%87%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88/</link><pubDate>Sat, 12 Jul 2025 12:30:35 +0900</pubDate><guid>http://kenji.blog/en/p/win32api-c-%E3%81%A7%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E4%BD%9C%E3%82%8B%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88%E3%81%A8%E3%83%87%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88/</guid><description>&lt;img src="http://kenji.blog/p/win32api-c-%E3%81%A7%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E4%BD%9C%E3%82%8B%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88%E3%81%A8%E3%83%87%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88/img_1.png" alt="Featured image of post Advantages and Disadvantages of Creating Programs with Win32API + C++" />&lt;h1 id="the-appeal-and-challenges-of-developing-with-win32api--c">The Appeal and Challenges of Developing with Win32API + C++
&lt;/h1>&lt;p>For those who want to master Windows application development, &lt;strong>Win32API + C++&lt;/strong> remains a powerful option today.
This combination, which allows for interacting with the OS at the closest distance, combines high speed and flexibility.&lt;/p>
&lt;p>On the other hand, since it is vastly different from modern development styles, learning it requires dedication.&lt;/p>
&lt;p>On this page, from the perspective of an &lt;strong>active Windows app developer&lt;/strong>, we explain its advantages and disadvantages in an easy-to-understand manner.&lt;/p>
&lt;hr>
&lt;h2 id="advantages">Advantages
&lt;/h2>&lt;h3 id="ultra-fast-native-execution">Ultra-Fast Native Execution
&lt;/h3>&lt;p>Because C++ and Win32API operate at the layer closest to the OS, there is almost no unnecessary overhead.
It boasts &lt;strong>overwhelming execution speed&lt;/strong> and highly efficient use of CPU and memory.&lt;/p>
&lt;h3 id="high-flexibility-and-freedom">High Flexibility and Freedom
&lt;/h3>&lt;p>You can &lt;strong>minutely control all aspects of an application yourself&lt;/strong>, such as window control, asynchronous processing, COM integration, and process management.
It&amp;rsquo;s also possible to build purpose-built tools and your own custom frameworks.&lt;/p>
&lt;h3 id="easy-to-distribute-without-runtimes">Easy to Distribute Without Runtimes
&lt;/h3>&lt;p>Since external runtimes like .NET or Java are unnecessary, it &lt;strong>can be distributed as a single executable file&lt;/strong>.
Troubles during redistribution are less likely to occur, and it&amp;rsquo;s appealing that it can easily run without an installer.&lt;/p>
&lt;h3 id="capable-of-creating-lightweight-apps">Capable of Creating Lightweight Apps
&lt;/h3>&lt;p>Because it requires only a bare-minimum configuration, a major feature is its &lt;strong>extremely small memory footprint&lt;/strong>.
It runs comfortably even on low-spec PCs or in virtual machine environments.&lt;/p>
&lt;h3 id="advanced-os-level-control-is-possible">Advanced OS-Level Control is Possible
&lt;/h3>&lt;p>Global hooks for mouse and keyboard, fine-tuning of window styles, manipulation of system menus, and other forms of control that are &lt;strong>difficult with standard languages and libraries&lt;/strong> can be realized.&lt;/p>
&lt;hr>
&lt;h2 id="disadvantages">Disadvantages
&lt;/h2>&lt;h3 id="low-development-efficiency">Low Development Efficiency
&lt;/h3>&lt;p>GUI construction must also be done entirely in code, and &lt;strong>creating a single button can sometimes require dozens of lines of code&lt;/strong>.
Modifications during design changes are also cumbersome, making productivity lower compared to developing with UI frameworks.&lt;/p>
&lt;h3 id="maintainability-tends-to-decrease">Maintainability Tends to Decrease
&lt;/h3>&lt;p>The code often has a &lt;strong>specialized structure&lt;/strong>, such as message loops and window procedures, leading to issues with readability and reusability.
It also has aspects that make it unsuitable for team development and long-term maintenance.&lt;/p>
&lt;h3 id="difficult-to-support-modern-ui">Difficult to Support Modern UI
&lt;/h3>&lt;p>Supporting UX expected in recent years, such as high DPI support, touch interfaces, accessibility, and dark mode, is &lt;strong>difficult&lt;/strong>.
Each must be handled manually one by one, which requires a lot of effort.&lt;/p>
&lt;h3 id="no-cross-platform-support">No Cross-Platform Support
&lt;/h3>&lt;p>Because it is a completely Windows-exclusive API, it &lt;strong>cannot be ported to macOS or Linux&lt;/strong>.
If you are planning multi-platform deployment, you will need to select other technologies.&lt;/p>
&lt;h3 id="extremely-high-learning-cost">Extremely High Learning Cost
&lt;/h3>&lt;p>You must understand &lt;strong>concepts and mechanisms that are rarely used today&lt;/strong>, such as handles, GDI, COM, and OLE.
Much of the documentation is old, requiring time and perseverance to learn.&lt;/p>
&lt;hr>
&lt;h2 id="suitable-uses">Suitable Uses
&lt;/h2>&lt;ul>
&lt;li>&lt;strong>Lightweight tools&lt;/strong> such as file launchers and hotkey assistants&lt;/li>
&lt;li>&lt;strong>System utilities&lt;/strong> like clipboard manipulation and IME control&lt;/li>
&lt;li>&lt;strong>Native control applications&lt;/strong> like global hooks and window captures&lt;/li>
&lt;li>&lt;strong>Driver auxiliary tools&lt;/strong> that work closely with hardware&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="unsuitable-uses">Unsuitable Uses
&lt;/h2>&lt;ul>
&lt;li>&lt;strong>General consumer apps&lt;/strong> where modern UI/UX is important&lt;/li>
&lt;li>&lt;strong>Prototyping and MVP development&lt;/strong> built with a priority on speed&lt;/li>
&lt;li>&lt;strong>Large-scale projects&lt;/strong> intended for long-term operation and team development&lt;/li>
&lt;li>&lt;strong>Cross-platform products&lt;/strong> that need to support multiple OSs&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="evaluation-summary">Evaluation Summary
&lt;/h2>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Aspect&lt;/th>
&lt;th>Evaluation&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Execution Speed&lt;/td>
&lt;td>◎ Very Fast&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Memory Efficiency&lt;/td>
&lt;td>◎ Excellent&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Development Speed&lt;/td>
&lt;td>× Slow&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Maintainability&lt;/td>
&lt;td>× Low&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Cross-Platform Support&lt;/td>
&lt;td>× Not Supported&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Modern UI Support&lt;/td>
&lt;td>× Weak&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Freedom of OS Control&lt;/td>
&lt;td>◎ Overwhelmingly High&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="conclusion">Conclusion
&lt;/h2>&lt;p>&lt;strong>Win32API + C++ is a tool suited for developers who want to &amp;ldquo;handle everything in the OS themselves.&amp;rdquo;&lt;/strong>
While its power is immense, learning and operating it requires a corresponding level of dedication.&lt;/p>
&lt;blockquote>
&lt;p>Whether it&amp;rsquo;s worth &amp;ldquo;daring to choose&amp;rdquo; it depends entirely on the nature of the app you are aiming for.&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;p>Diving into the world of &lt;code>#include &amp;lt;windows.h&amp;gt;&lt;/code> without relying on GUI frameworks or modern languages――
That choice still remains meaningful today.&lt;/p></description></item></channel></rss>