<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ruslan Osipov - Reviews</title>
    <description>Recent posts in Reviews category on Ruslan Osipov.</description>
    <link>https://rosipov.com/</link>
    <atom:link href="https://rosipov.com/blog/categories/reviews.xml" rel="self" type="application/rss+xml" />
    <pubDate>Mon, 11 May 2026 17:29:47 +0000</pubDate>
    <lastBuildDate>Mon, 11 May 2026 17:29:47 +0000</lastBuildDate>
    <generator>Jekyll v4.4.1</generator>
    
      <item>
        <title>I bought a keyboard for my phone</title>
        <description>&lt;p&gt;So, here’s an interesting purchase. An &lt;a href=&quot;https://amzn.to/3Kk4O3s&quot;&gt;external folding keyboard for a phone&lt;/a&gt;. It’s something I picked up on a Black Friday sale for $24 (which is about how much the device is worth, probably).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/protoarc-xk04.jpg&quot; alt=&quot;The keyboard folds in half, and is slightly shorter and wider than a modern phone in its folded state.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Why an external keyboard for my phone?&lt;/p&gt;

&lt;p&gt;I like to write - a lot. I take notes, I write down my thoughts, I publish a blog or two - that’s how I process the world. Sitting down in front of a keyboard is a great way to unload what’s in my head: I type faster than I handwrite, and it’s just a meditative experience.&lt;/p&gt;

&lt;p&gt;There’s just one problem: I have an infant, which makes sitting down at a computer problematic sometimes. There’s just not enough peaceful minutes in a day where I’m able to sit at my desktop, or even pull out a laptop. My phone’s always nearby though, and I’ve jotted down notes on the go before.&lt;/p&gt;

&lt;p&gt;But I hate the on-screen keyboard, which makes me want to pull my hair out when I have to write anything longer than a “k” response to a text. So here comes a  keyboard that’s small enough to fit in my back pocket, yet becomes a almost full size keyboard once it unfolds.&lt;/p&gt;

&lt;p&gt;Moreover, I’m excited to take it with me on a vacation, or maybe even a quick trip to a coffee shop. I’m not going to travel with a laptop, but it would be nice to be able to write in a hotel room, or on the plane - without the added bulk of another device. A quick pullout keyboard accomplishes that.&lt;/p&gt;

&lt;p&gt;I picked up &lt;a href=&quot;https://amzn.to/3Kk4O3s&quot;&gt;ProtoArc XK04&lt;/a&gt;, which has been working out pretty great - it easily pairs to my phone, the keys feel fine enough, and the build doesn’t feel flimsy or cheap. In fact, it’s a little heavier than I expected, which makes for a nicer typing experience (but it’s still light enough to carry around).&lt;/p&gt;

&lt;p&gt;I’ll follow-up in six month to year to see if that’s just a gimmick purchase. Or maybe I end up drafting up my next book using this thing - we’ll just have to see.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Update from Jan 15 2026: &lt;a href=&quot;/blog/i-shouldnt-have-bought-that-keyboard/&quot;&gt;I shouldn’t have bought that keyboard&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Mon, 22 Dec 2025 14:00:00 +0000</pubDate>
        <link>https://rosipov.com/blog/i-bought-a-keyboard-for-my-phone/</link>
        <guid isPermaLink="true">https://rosipov.com/blog/i-bought-a-keyboard-for-my-phone/</guid>
        
        
        <category>Technology</category>
        
        <category>Reviews</category>
        
      </item>
    
      <item>
        <title>Thoughts on 3D printing</title>
        <description>&lt;p&gt;A few months back my wife gifted me a 3D printer: an entry level &lt;a href=&quot;https://amzn.to/4qkVKf0&quot;&gt;Bambu Lab A1 Mini&lt;/a&gt;. It’s a really cool little machine - it’s easy to set up, and it integrates with &lt;a href=&quot;https://makerworld.com&quot;&gt;Maker World&lt;/a&gt; - a vast repository of free 3D models.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/bambu-lab-a1-mini.jpg&quot; alt=&quot;Bambu Lab A1 Mini 3D printer (left) with AMS Lite (right).&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now that I’ve lived with a 3D printer for nearly half a year, I’d like to share what I’ve learned.&lt;/p&gt;

&lt;h3 id=&quot;its-not-a-free-stuff-machine&quot;&gt;It’s not a free stuff machine&lt;/h3&gt;

&lt;p&gt;After booting up the printer, printing benchy - a little boat which tests printer calibration settings, and seeing thousands of incredible designs on Bambu Lab’s Maker World - I thought I will never have to buy anything ever again.&lt;/p&gt;

&lt;p&gt;I was wrong.&lt;/p&gt;

&lt;p&gt;While some stuff printer on a 3D printer is fantastic, it’s not always the best replacement for mass produced objects. Many of the mass produced plastic items are using injection molding - liquid plastic that gets poured into a mold - and that produces a much stronger final product.&lt;/p&gt;

&lt;p&gt;That might be different if you’re printing with tougher plastics like ABS, but you also wouldn’t be using beginner-friendly machines like the A1 Mini to do that.&lt;/p&gt;

&lt;p&gt;So yeah, you still need to buy the heavy duty plastic stuff.&lt;/p&gt;

&lt;p&gt;And even as you print things, I wouldn’t say it’s cheaper than buying things from a store. It’s probably about the same, given the occasional failed prints, costs of the 3D printer, the need for multiple filaments, and the fact that by having a 3D printer you’re more likely to print things you don’t exactly need.&lt;/p&gt;

&lt;h3 id=&quot;it-makes-great-decor-and-toys&quot;&gt;It makes great decor and toys&lt;/h3&gt;

&lt;p&gt;Oh, I’ve printed so many useless things - it’s amazing. The Elden Ring warrior jar Alexander planter. Solair of Astora figurine. A beautiful glitch art sculpture.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/solaire-of-astora.jpg&quot; alt=&quot;This is Solaire of Astora. The print lines are pretty big - I can print much finer and smoother details now.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I even got a 0.2mm nozzle (smaller than the default 0.4mm) and managed to 3D print passable wargame and D&amp;amp;D miniatures. Which was pretty awesome, although you have to pay for the nicest looking models, which does take away from enjoyment of making plastic miniatures appear in your house “out of nowhere”. I’m not against artists getting paid, they certainly deserve it, but printed models were comparable to an mid-range Reaper miniature if you know what I mean, which certainly isn’t terrible, but it’s harder to justify breaking even. Maybe I could get better at getting the small details printed nicely.&lt;/p&gt;

&lt;p&gt;Oh, and if you’re into wargames - this thing easily prints incredible terrain. A basic 3D printer will pay for itself once you furnish a single battlefield.&lt;/p&gt;

&lt;h3 id=&quot;you-still-need-to-fiddle-with-settings&quot;&gt;You still need to fiddle with settings&lt;/h3&gt;

&lt;p&gt;Once you’re done with printing basic things, you do need to start fiddling with the settings. Defaults only take you so far, and if you want a smoother surface, smaller details, or improvement in any other quality indicator - you have to tinker with the settings and produce test prints.&lt;/p&gt;

&lt;p&gt;It’s a hobby in it’s own, and it’s fun and rewarding, but this can get in the way when you’re just trying to print something really cool.&lt;/p&gt;

&lt;h3 id=&quot;it-shines-when-you-need-something-very-specific&quot;&gt;It shines when you need something very specific&lt;/h3&gt;

&lt;p&gt;But the most incredible feeling of accomplishment came when I needed something specific around the house, and I’d be able to design it.&lt;/p&gt;

&lt;p&gt;We bought some hanging plants, and I wished I could just hang it on the picture rail of our century home. And I was able to design a hanger, and it took me 3 iterations to create an item that fits my house perfectly and that I love.&lt;/p&gt;

&lt;p&gt;My mom needed a plastic replacement part for a long discontinued juicer. I was able to design the thing (don’t worry, I covered PLA in food-safe epoxy), and the juicer will see another few decades of use.&lt;/p&gt;

&lt;p&gt;Door stops, highly specific tools, garden shenanighans - the possibilities are endless. It took me a few months to move past using others’ designs and making my own - &lt;a href=&quot;https://www.tinkercad.com/&quot;&gt;Tinkercad&lt;/a&gt; has been sufficient for my use cases so far, although I’m sure I’ll outgrow it as my projects get more complicated.&lt;/p&gt;

&lt;h3 id=&quot;a-tinkerers-tool&quot;&gt;A tinkerer’s tool&lt;/h3&gt;

&lt;p&gt;3D printers aren’t quite yet the consumer product, but my A1 Mini shoed me that this future is getting closer. Some day, we might all have a tiny 3D printer in our home (or have a cheap corner 3D printing shop?), to quickly and effortlessly create many household objects.&lt;/p&gt;

&lt;p&gt;Until then, 3D printers remain a tinkerer’s tool, but a really fun one at that, and modern printers are reducing the barrier to entry, making it much easier to get into the hobby.&lt;/p&gt;
</description>
        <pubDate>Mon, 13 Oct 2025 14:00:00 +0000</pubDate>
        <link>https://rosipov.com/blog/thoughts-on-3d-printing/</link>
        <guid isPermaLink="true">https://rosipov.com/blog/thoughts-on-3d-printing/</guid>
        
        
        <category>Technology</category>
        
        <category>Reviews</category>
        
      </item>
    
      <item>
        <title>Essentialism: A Practical Guide to Less</title>
        <description>&lt;p&gt;I’ve thoroughly enjoyed &lt;a href=&quot;https://amzn.to/3QUpyyb&quot;&gt;Essentialism&lt;/a&gt;, a book that encapsulates the simple yet powerful notion of “do fewer things, do them well.” There’s not much else to it. While this philosophy is straightforward, it’s the way Greg McKeown presents and reinforces this message that makes the book truly compelling.&lt;/p&gt;

&lt;p&gt;Having Essentialism in physical form proved invaluable. I filled the margins with notes, worked through exercises alongside the text, and took the time to fully absorb the material as I progressed.&lt;/p&gt;

&lt;p&gt;Essentialism is not a new concept, but the key takeaway is the author’s focus on truly internalizing the message. “Focus on things that matter, trim the excess” is a simple motto to remember, yet challenging to implement. Throughout my life, I’ve adopted many of essentialist practices in one form or another, from guarding my calendar to learning to say “no” to prioritizing essential projects. However, over time, clutter inevitably creeps in.&lt;/p&gt;

&lt;p&gt;McKeown wisely focuses on routines that support the essentialist lifestyle, emphasizing the importance of dedicated time for reevaluation and recentering. He suggests establishing routines that prevent slipping into the frantic “onto the next thing” mentality so prevalent in the modern corporate world.&lt;/p&gt;

&lt;p&gt;An analogy that particularly resonated with me is the closet metaphor. While you can declutter your closet once, it will eventually refill with clothes you don’t need. To keep your closet tidy, you need to have a regular time to reevauate your outfits, know where the nearest donation center is, how to get there, and what hours is it open. Similarly, McKeown provides methodologies to regularly reevaluate our priorities, supporting the rigorous process of regularly discarding the non-essential.&lt;/p&gt;

&lt;p&gt;Essentialism extensively focuses on routines, practices, and exercises. The edition I read includes a “21-day Essentialism Challenge,” a helpful list of concrete activities corresponding to each chapter. While some prompts, like “take a nap” or “play with a child for 10 minutes” are a bit silly (where am I supposed to find a child on a Tuesday, Greg?), many steps effectively reinforce and integrate the material into your daily life, such as “design your ideal calendar,” “practice saying no gracefully,” or “schedule a personal offsite.”&lt;/p&gt;

&lt;p&gt;The latter suggestion, scheduling a personal offsite, left a significant impression on me. It’s time dedicated to strategizing around your personal and professional goals. While I occasionally reflect on my career and life, McKeown elevates this practice into a ritual – a full day focused on self-reflection, planning, and deliberate action.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://amzn.to/3QUpyyb&quot;&gt;Essentialism&lt;/a&gt; is a helfpul book that prompts the reader to think about the routines one can put in place to change the way we approach life. It’s a reminder that less can indeed be more, and that by focusing on what truly matters, we can create a life of greater purpose, meaning, and fulfillment.&lt;/p&gt;

</description>
        <pubDate>Fri, 24 Nov 2023 20:00:00 +0000</pubDate>
        <link>https://rosipov.com/blog/essentialism-a-practical-guide-to-less/</link>
        <guid isPermaLink="true">https://rosipov.com/blog/essentialism-a-practical-guide-to-less/</guid>
        
        
        <category>Reviews</category>
        
        <category>Productivity</category>
        
        <category>Work</category>
        
      </item>
    
      <item>
        <title>Vortex Core 40% keyboard</title>
        <description>&lt;p&gt;&lt;em&gt;This review is written entirely using Vortex Core, in Markdown, and using Vim.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Earlier this week I purchased &lt;a href=&quot;https://amzn.to/3ivzMCK&quot;&gt;Vortex Core&lt;/a&gt; - a 40% keyboard from a Taiwanese company Vortex, makers of the ever popular &lt;a href=&quot;https://mechanicalkeyboards.com/shop/index.php?l=product_detail&amp;amp;p=3633&quot;&gt;Pok3r&lt;/a&gt; keyboard (which I happen to use as my daily driver). This is a keyboard with only 47 keys: it drops the numpad (what’s called 80%), function row (now we’re down to 60%), and the dedicated number row (bringing us to the 40% keyboard realm).&lt;/p&gt;

&lt;p&gt;Words don’t do justice to how small a 40% keyboard is. So here is a picture of Vortex Core next to Pok3r, which is an already a small keyboard.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/vortex-core-and-pok3r.jpg&quot; alt=&quot;A picture of Vortex Core 40% keyboard next to a Pok3r 60% keyboard.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;At around a &lt;a href=&quot;https://amzn.to/3ivzMCK&quot;&gt;$100 on Amazon&lt;/a&gt; it’s one of the cheaper 40% options, but Vortex did not skimp on quality. The case is sturdy, is made of beautiful anodized aluminum, and has some weight to it. The keycaps this keyboard comes with feel fantastic (including slight dips on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;F&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;J&lt;/code&gt; keys), and I`m a huge fan of the look.&lt;/p&gt;

&lt;p&gt;I hooked it up to my Microsoft Surface Go as a toy more than anything else. And now I think I may have discovered the perfect writing machine! Small form factor of the keyboard really compliments the already small Surface Go screen, and there’s just enough screen real estate to comfortably write and edit text.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/vortex-core-and-surface-go.jpg&quot; alt=&quot;A picture of Vortex Core 40% keyboard plugged into Microsoft Surface Go screen.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I’ve used Vortex Core on and off for the past few days, and I feel like I have a solid feel for it. Let’s dig in!&lt;/p&gt;

&lt;h2 id=&quot;whats-different-about-it&quot;&gt;What’s different about it?&lt;/h2&gt;

&lt;p&gt;First, the keycap size and distance between keys are standard: it’s a standard staggered layout most people are used to. This means that when typing words, there is no noticeable speed drop. In fact I find myself typing a tiny bit faster using this keyboard than my daily driver - but that could just be my enthusiasm shining through. I hover at around 80 words per minute on both keyboards.&lt;/p&gt;

&lt;p&gt;That is until it’s time to type “you’re”, or use any punctuation outside of the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;:;,.&amp;lt;&amp;gt;&lt;/code&gt; symbols. That’s right, the normally easily accessible apostrophe is hidden under the function layer (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Fn1 + b&lt;/code&gt;), and so is the question mark (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Fn1 + Shift + Tab&lt;/code&gt;). &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;-&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;=&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;\&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;[&lt;/code&gt;, and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;]&lt;/code&gt; are gone too, and I’ll cover those in due time.&lt;/p&gt;

&lt;p&gt;On a first day this immediately dropped my typing speed to around 50 words per minute, as it’s completely unintuitive at first! In fact, I just now stopped hitting &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Enter&lt;/code&gt; every time I tried to place an apostrophe! But only after a few hours of sparingly using Vortex Core I’m up to 65 WPM, and it feels like I would regain my regular typing speed within a week.&lt;/p&gt;

&lt;p&gt;Despite what you might think, it’s relatively easy to get used to odd key placement like this.&lt;/p&gt;

&lt;p&gt;Keys have 4 layers (not to be confused with programming layers), and that’s how the numbers, symbols, and some of the more rarely used keys are accessed. For example, here’s what the key &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;L&lt;/code&gt; contains:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Default layer (no modifiers): &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;L&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Fn1&lt;/code&gt; layer: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;0&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Fn1 + Shift&lt;/code&gt; layer: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;)&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Fn&lt;/code&gt; layer: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;right arrow key&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The good news is that unlike many 40% keyboards on the market (and it’s a rather esoteric market), Vortex Core has key inscriptions for each layer. Something like &lt;a href=&quot;https://mechanicalkeyboards.com/shop/index.php?l=product_detail&amp;amp;p=3633https://olkb.com/collections/planck&quot;&gt;Planck&lt;/a&gt; would require you to print out layout cheatsheets while you get used to the function layers.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/vortex-core-left-half.jpg&quot; alt=&quot;Left side of the Vortex Core keyboard, demonstrating numbers and special characters.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As I continue attempting to type, numbers always take me by surprise: the whole number row is a function layer on top of the home row (where your fingers normally rest). After initially hitting the empty air when attempting to type numbers, I began to get used to using the home row instead.&lt;/p&gt;

&lt;p&gt;The placement mimics the order the keys would be in on the number row (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1234567890-=&lt;/code&gt;), but &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1&lt;/code&gt; is placed on the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Tab&lt;/code&gt; key, while &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;=&lt;/code&gt; is on the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Enter&lt;/code&gt;. While I was able to find the numbers relatively easily due to similar placement, I would often be off-by-one due to row starting on a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Tab&lt;/code&gt; key.&lt;/p&gt;

&lt;p&gt;Things get a lot more complicated when it comes to special symbols. These are already normally gated behind a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Shift&lt;/code&gt;-press on a regular keyboard, and Vortex Core requires some Emacs-level gymnastics! E.g. you need to press &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Fn1 + Shift + F&lt;/code&gt; to conjure &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;%&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Such complex keypresses are beyond counter-intuitive at first. Yet after a few hours, I began to get used to some of the more frequently used keys: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;!&lt;/code&gt; is &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Fn1 + Shift + Tab&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;-&lt;/code&gt; is &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Fn1 + Shift + 1&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$&lt;/code&gt; (end of line in Vim) is &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Fn1 + Shift + D&lt;/code&gt;, and so on. Combining symbols quickly becomes problematic.&lt;/p&gt;

&lt;p&gt;It’s fairly easy to get used to inserting a lone symbol here and there, but the problems start when having to combine multiple symbols at once. E.g. writing an expression like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&apos;Fn1 + Shift + D&apos; = &apos;$&apos;&lt;/code&gt; above involves the following keypresses: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;Fn1&amp;gt;&amp;lt;Esc&amp;gt; F N &amp;lt;Fn1&amp;gt;&amp;lt;Tab&amp;gt; &amp;lt;Fn1&amp;gt;&amp;lt;Shift&amp;gt;&amp;lt;Enter&amp;gt; S H I F T &amp;lt;Fn1&amp;gt;&amp;lt;Shift&amp;gt;&amp;lt;Enter&amp;gt; D &amp;lt;Fn1&amp;gt;&amp;lt;Esc&amp;gt; &amp;lt;Fn1&amp;gt;&amp;lt;Enter&amp;gt; &amp;lt;Fn1&amp;gt;&amp;lt;Esc&amp;gt; &amp;lt;Fn1&amp;gt;&amp;lt;Shift&amp;gt;D &amp;lt;Fn1&amp;gt;&amp;lt;Esc&amp;gt;&lt;/code&gt;. Could you image how long it took me to write that up?&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/vortex-core-right-half.jpg&quot; alt=&quot;Right side of the Vortex Core keyboard, demonstrating special characters placed on `bnm,.` keys.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The most difficult part of getting used to the keyboard is the fact that a few keys on the right side are chopped off: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&apos;/[]\&lt;/code&gt; are placed in the bottom right of the keyboard, to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bnm,.&lt;/code&gt; keys. While the rest of the layout attempts to mimic the existing convention and only shifting the rows down, the aforementioned keys are placed arbitrarily (as there’s no logical way to place them otherwise).&lt;/p&gt;

&lt;p&gt;This probably won’t worry you if you don’t write a lot of code or math, but I do, and it`s muscle memory I’ll have to develop.&lt;/p&gt;

&lt;p&gt;There are dedicated &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Del&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Backspace&lt;/code&gt; keys, which is a bit of an odd choice, likely influenced by needing somewhere to place the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;F12&lt;/code&gt; key - function row is right above the home row, and is hidden behind the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Fn1&lt;/code&gt; layer.&lt;/p&gt;

&lt;p&gt;Spacebar is split into two (for ease of finding keycaps I hear), and it doesn’t affect me whatsoever. I mostly hit spacebar with my left thumb and it’s convenient.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Tab&lt;/code&gt; is placed where the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Caps Lock&lt;/code&gt; is, which feels like a good choice. After accidentally hitting &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Esc&lt;/code&gt; a few times, I got used to the position. Do make sure to get &lt;a href=&quot;http://www.vortexgear.tw/vortex3.asp&quot;&gt;latest firmware&lt;/a&gt; for your Vortex Core - I believe earlier firmware versions hides Tab behind a function layer, defaulting the key to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Caps Lock&lt;/code&gt; (although my keycaps reflected the updated firmware).&lt;/p&gt;

&lt;p&gt;So I’d say the numbers and the function row take the least amount of time to get used to. It’s the special characters that take time.&lt;/p&gt;

&lt;h2 id=&quot;can-you-use-it-with-vim&quot;&gt;Can you use it with Vim?&lt;/h2&gt;

&lt;p&gt;I’m a huge fan of Vim, and I even wrote &lt;a href=&quot;https://amzn.to/3htsTjK&quot;&gt;a book&lt;/a&gt; on the subject. In fact, I’m writing this very review in Vim.&lt;/p&gt;

&lt;p&gt;And I must say, it’s difficult. My productivity took a hit. I use curly braces to move between paragraphs, I regularly search with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;?&lt;/code&gt;, and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;*&lt;/code&gt;, move within a line with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$&lt;/code&gt;, and use numbers in my commands like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;c2w&lt;/code&gt; (change two words) as well as other special characters, e.g. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;da&quot;&lt;/code&gt; (delete around double quotes).&lt;/p&gt;

&lt;p&gt;The most difficult combination being spelling correction: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;z=&lt;/code&gt; followed by a number to select the correct spelling. I consistency break the flow by having to press &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Z &amp;lt;Fn1&amp;gt;&amp;lt;Enter&amp;gt; &amp;lt;Fn1&amp;gt;&amp;lt;Tab&amp;gt;&lt;/code&gt; or something similar to quickly fix a misspelling.&lt;/p&gt;

&lt;p&gt;My Vim productivity certainly took a massive hit. Yet, after a few days it’s starting to slowly climb back up, and I find myself remembering the right key combinations as the muscle memory kicks in.&lt;/p&gt;

&lt;p&gt;I assume my Vim experience translates well into programming. Even though I write code for a living, I haven’t used Vortex Core to crank out code.&lt;/p&gt;

&lt;h2 id=&quot;speaking-of-programming&quot;&gt;Speaking of programming&lt;/h2&gt;

&lt;p&gt;The whole keyboard is fully programmable (as long as you update it to the &lt;a href=&quot;http://www.vortexgear.tw/vortex3.asp&quot;&gt;latest firmware&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;It’s an easy process - a &lt;a href=&quot;http://www.vortexgear.tw/vortex3.asp&quot;&gt;three page manual&lt;/a&gt; covers everything that’s needed like using different keyboard layers or remapping regular and function keys.&lt;/p&gt;

&lt;p&gt;The manual also mentions using right &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Win&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Pn&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Ctrl&lt;/code&gt;, and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Shift&lt;/code&gt; keys as arrow keys by hitting left &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Win&lt;/code&gt;, left &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Alt&lt;/code&gt;, and right spacebar. Vortex keyboards nowadays always come with this feature, but due to small form factor of the keys (especially Shift), impromptu arrow keys on Vortex Core are nearly indistinguishable from individual arrow keys.&lt;/p&gt;

&lt;p&gt;Remapping is helpful, since I’m used to having &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Ctrl&lt;/code&gt; where &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Caps Lock&lt;/code&gt; is (even though this means I have to hide Tab behind a function layer), or using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;hjkl&lt;/code&gt; as arrow keys (as opposed to the default &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ijkl&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;It took me only a few minutes to adjust the keyboard to my needs, but I imagine I will come back for tweaks - I’m not so sure if I’ll be able to get used to special symbols hidden behind &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Fn1&lt;/code&gt; + &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Shift&lt;/code&gt; + key layer. Regularly pressing three keys at the time (with two of these keys being on the edge of the keyboard) feels unnatural and inconvenient right now. But I’m only a few hours in, and stenographers manager to do it.&lt;/p&gt;

&lt;h2 id=&quot;living-in-the-command-line&quot;&gt;Living in the command line&lt;/h2&gt;

&lt;p&gt;The absence of certain special characters is especially felt when using the command line. Not having a forward slash available with a single keypress makes typing paths more difficult. I also use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Ctrl + \&lt;/code&gt; as a modifier key for tmux, and as you could imagine it’s just as problematic.&lt;/p&gt;

&lt;p&gt;Despite so many difficulties, I’m loving my time with Vortex Core! To be honest with myself, I don’t buy new keyboards to be productive, or increase my typing speed. I buy them because they look great and are fun to type on. And Vortex Core looks fantastic, and being able to cover most of the keyboard with both hands is amazing.&lt;/p&gt;

&lt;p&gt;There’s just something special about having such a small board under my fingertips.&lt;/p&gt;

</description>
        <pubDate>Sun, 13 Sep 2020 17:00:00 +0000</pubDate>
        <link>https://rosipov.com/blog/vortex-core-keyboard/</link>
        <guid isPermaLink="true">https://rosipov.com/blog/vortex-core-keyboard/</guid>
        
        
        <category>Reviews</category>
        
        <category>Technology</category>
        
      </item>
    
      <item>
        <title>&quot;The Pragmatic Programmer&quot;</title>
        <description>&lt;p&gt;I just finished reading “&lt;a href=&quot;http://amzn.to/1zXtlQx&quot;&gt;The Pragmatic Programmer&lt;/a&gt;” by Andrew Hunt and
David Thomas - two consultants behind Pragmatic Programmers, LLC. This book
might as well be a fantastic marketing trick for their consulting agency, but
the value it brings to the reader is hard to underestimate.&lt;/p&gt;

&lt;p&gt;Hunt and Thomas cover a wide variety of topics, briefly glancing over every
major aspect of developing software: be it the choice of a text editor,
calculating time complexity, or working effectively on a team.&lt;/p&gt;

&lt;p&gt;If you read thematic books and actively follow programming blogs and podcasts -
you may find yourself cheerfully nodding while reading sections of this book.
You may have read about some of the tips online, heard from colleagues, or
simply discovered them yourself. You will finish this book with a wide smile of
approval, and a sense of validation in regards to your daily work flow or
actions.&lt;/p&gt;

&lt;p&gt;If you are less lucky (say, you don’t read as much), you will find 70 tips you
can utilize right away, right now, at your workplace. This is what “The
Pragmatic Programmer” essentially is: a collection of practical things
regarding getting things done.&lt;/p&gt;

&lt;p&gt;It’s an essential read, and I’ve seen this book in every single recommended
reading list out there. And for a solid reason. This is the kind of book you
want to re-read every couple of years to absorb every piece of knowledge
presented within it. The latest edition of the book even contains a printout
with all the tips listed in the book.&lt;/p&gt;

&lt;p&gt;You should read it after being in the field for a few years. After making
mistakes, and figuring some things out on your own. Beginners might not
understand some pieces, but will still be able to comprehend a major portion of
knowledge contained within this book.&lt;/p&gt;

&lt;p&gt;I enthusiastically recommend this book to every software engineer I get to work
with. It’s easy to read (as opposed to monstrosities like “&lt;a href=&quot;http://amzn.to/1zGLlv1&quot;&gt;Code Complete&lt;/a&gt;”
or “&lt;a href=&quot;http://amzn.to/1zGLnDl&quot;&gt;Art of Computer Programming&lt;/a&gt;”) and it teaches you how to get things
done, the pragmatic way.&lt;/p&gt;

</description>
        <pubDate>Tue, 15 Jul 2014 01:43:26 +0000</pubDate>
        <link>https://rosipov.com/blog/the-pragmatic-programmer/</link>
        <guid isPermaLink="true">https://rosipov.com/blog/the-pragmatic-programmer/</guid>
        
        
        <category>Reviews</category>
        
      </item>
    
      <item>
        <title>&quot;The Elements Of Style&quot;</title>
        <description>&lt;p&gt;You might wonder what an English language style guide from 1918 is doing in a
software engineering blog. You might even get angry at me for pointing this
book in your face. But I have a strong affection towards this guide; I believe
everyone who has to write more than a sentence in English should read it. I
like to emphasize the communication aspects of a software engineering career as
much as coding or management skills.&lt;/p&gt;

&lt;p&gt;English is not my native language, and I often struggle with the writing style.
I found a number of style tips online and in the books I read, but lately I
noticed a pattern: most of those tips referenced “The Elements Of Style”. The
book is available online free of charge (copyright has expired; it is now in
public domain) and takes only an evening to read.&lt;/p&gt;

&lt;p&gt;What the book gives you is invaluable writing advice. The author provides
concrete style rules targeted at increasing the appeal and comprehension rates
of your text. Here’s my favorite piece of advice:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;13. Omit needless words.&lt;/p&gt;

  &lt;p&gt;Vigorous writing is concise. A sentence should contain no unnecessary
words, a paragraph no unnecessary sentences, for the same reason that a
drawing should have no unnecessary lines and a machine no unnecessary
parts. This requires not that the writer make all his sentences short, or
that he avoid all detail and treat his subjects only in outline, but that
he make every word tell.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;“&lt;a href=&quot;http://amzn.to/1v6keFG&quot;&gt;The Elements Of Style&lt;/a&gt;” is a timeless classic; it should be mandatory
reading for every speaker or learner of English out there. I immediately
applied the rules to technical documentation, email communication, and even
this very blog entry. I will probably have to read through the guide multiple
times over the course of the following months in order to ensure maximum
retention. If you care about being understood by another human being, you
should read it too.&lt;/p&gt;

</description>
        <pubDate>Fri, 20 Jun 2014 17:58:35 +0000</pubDate>
        <link>https://rosipov.com/blog/the-elements-of-style/</link>
        <guid isPermaLink="true">https://rosipov.com/blog/the-elements-of-style/</guid>
        
        
        <category>Reviews</category>
        
      </item>
    
      <item>
        <title>&quot;Expert Python Programming&quot; by Tarek Ziade</title>
        <description>&lt;p&gt;Recently, I’ve been trying to read at least one book every week, and this
week’s pick was “&lt;a href=&quot;http://amzn.to/1yRw7AZ&quot;&gt;Expert Python Programming&lt;/a&gt;” by Tarek Ziade. Besides its
few shortcomings, I found it to be useful - Python is a language of choice for
me, and I found some valuable tips I could add to my arsenal.&lt;/p&gt;

&lt;p&gt;The best thing about this book is that it covers a very wide range of topics:
syntax recommendations and code profiling, testing practices and project
management, technical writing and design patterns, package distribution and
version control… My favorite chapter covered writing technical documentation:
I am very interested in writing in general, and the tips Ziade provided turned
out to be very useful for documenting code, writing design documents, and even
posting to this blog. Not much else caught my eye, but I had a number of “Aha!”
moments such as, “Oh, I never used that!” and “That’s an interesting topic to
look into!” scattered throughout the book. This book is very useful for filling
in little gaps in knowledge which programmers can have: the author covers an
extremely wide variety of Python development aspects.&lt;/p&gt;

&lt;p&gt;Unfortunately, I found the book to be poorly written. Weak writing style, typos
in the text and code examples - it looked like the book was put together
sloppily, in haste. Reviewers did not do a very good job evaluating this book.
“Expert Python Programming” gives you the feeling that the author tried to fit
in as much content (and code) as possible in his book, with no consistent
style. Many chapters go into unnecessary details, and the author has tendency
to paste completely useless chunks of code, such as a page-long output of an
installer. As I have mentioned, the book hops from one topic to another, and
covers a wide variety of subjects: this is both a key strength and the biggest
weakness of the book. There is just “too much stuff” and it’s too scattered
across the topics.&lt;/p&gt;

&lt;p&gt;“&lt;a href=&quot;http://amzn.to/1yRw7AZ&quot;&gt;Expert Python Programming&lt;/a&gt;” will be of best use to, you guessed it, an
expert. I found it best to scan through the content and seek out interesting
bits of information. Beginners, however, might be completely overwhelmed. While
advanced and intermediate Pythonistas will get the most out of this book, it
will probably be too hard (and painful) to read to be of real value.&lt;/p&gt;

</description>
        <pubDate>Fri, 20 Jun 2014 02:33:38 +0000</pubDate>
        <link>https://rosipov.com/blog/expert-python-programming-by-tarek-ziade/</link>
        <guid isPermaLink="true">https://rosipov.com/blog/expert-python-programming-by-tarek-ziade/</guid>
        
        
        <category>Reviews</category>
        
      </item>
    
      <item>
        <title>Steve Krug&apos;s &quot;Don&apos;t Make Me Think&quot;</title>
        <description>&lt;p&gt;Today I received in the mail a copy of Steve Krug’s
“&lt;a href=&quot;http://amzn.to/1xCNOm4&quot;&gt;Don’t Make Me Think, Revisited: A Common Sense Approach To Web And Mobile Usability&lt;/a&gt;”
(oh, that’s a long name). I went through the whole book only in under a few
hours, and I am so glad I’ve read it. It’s a very quick read, but the book is
full of concrete and valuable tips and advice about usability.&lt;/p&gt;

&lt;p&gt;“Don’t Make Me Think” contains practical advice on a large number of topics:
web and mobile usability, design, and writing for the web. The advice can be
easily used and incorporated into your daily workflow; and the author provides
concrete guidelines for applying his tips in the real world.&lt;/p&gt;

&lt;p&gt;The biggest thing I’ve learned from this book (and want to apply in practice)
is individual usability testing. I actually performed my first usability test
just three days ago, just before reading “Don’t Make Me Think”, after I found
that Donald Norman’s masterpiece mentioned observing user interactions with
your product (I’ll get to the similarities between two of these books in a
moment).&lt;/p&gt;

&lt;p&gt;I asked two of my colleagues, one after another, to visit a website I was
working on, and I silently watched them navigate through it. They had never
seen the website before, and the results were very shocking to me: they ignored
the things most obvious to me, but attempted to click through things which are
not even meant to be clicked. I carefully wrote down all of my findings, and
delivered the patches with enhancements to improve the biggest areas of
struggle these particular users had faced.&lt;/p&gt;

&lt;p&gt;Usability testing turned out to be invaluable: it pointed out actions that I,
as a developer, did not anticipate, and highlighted parts of the system ignored
by the users. I now plan to run usability tests regularly, grabbing colleagues
from the hallway, and asking them to use my application for a few minutes.&lt;/p&gt;

&lt;p&gt;Steve Krug’s book is very much like &lt;a href=&quot;https://rosipov.com/blog/the-design-of-everyday-things/&quot;&gt;“The Design Of Everyday Things”&lt;/a&gt;, but
stripped from the extended theoretical part. The book references Norman’s work
quite a lot, and seems to be heavily influenced by it. It focuses on practical
aspects of designing easy to use and understandable user interfaces. It
successfully explains why you should be thoughtful of user experience,
accessibility, and understanding the way users think. I would recommend reading
this book after reading Donald Norman’s masterpiece first, since it provides
you with the reasoning behind many decisions Steve Krug makes throughout his
book.&lt;/p&gt;

</description>
        <pubDate>Tue, 17 Jun 2014 03:42:51 +0000</pubDate>
        <link>https://rosipov.com/blog/steve-krugs-dont-make-me-think/</link>
        <guid isPermaLink="true">https://rosipov.com/blog/steve-krugs-dont-make-me-think/</guid>
        
        
        <category>Reviews</category>
        
      </item>
    
      <item>
        <title>&quot;The Design of Everyday Things&quot;</title>
        <description>&lt;p&gt;Unfortunately, I have not been reading as much as I would love to lately. In
the past year I have only read two books, one of which was a technical manual.
Don’t get me wrong, I still had a lot of personal and professional growth going
on: reading blogs, articles, guides, watching keynote talks… But I did miss
the feeling of holding a good book in my hands, turning the pages with the tips
of my fingers, seeing the texture of the paper under the print. A few weeks ago
I went ahead and ordered one of the books on my reading list: “The Design of
Everyday Things” by Donald A. Norman. I just finished reading it a few hours
ago and am eager to share my impressions of the book.&lt;/p&gt;

&lt;p&gt;“&lt;a href=&quot;http://amzn.to/16ORgF9&quot;&gt;The Design of Everyday Things&lt;/a&gt;” turned out to be one of the most
eye-opening books about design I have ever read (alright, alright, I haven’t
read any design books before). It’s mind blowing to think that I have never
considered the points brought up by the authors. Hell, (and I will probably
have rotten tomatoes thrown at me for this statement) but I didn’t even think
design was a “real” job. Oh dear, how wrong I was.&lt;/p&gt;

&lt;p&gt;Norman’s masterpiece talks about the psychology of everyday things (which was
actually the initial title of the book, but was changed to “Design” after the
first release). The author explains how users make decisions, use objects, make
errors - and so many other factors which should go into the design process.
Norman explains fundamental basics of the psychology of human-object
interaction, something most people never think about. How hard could it be to
design a door? Turns out the answer is - very hard. And every time you see
someone pulling the door instead of pushing and vice versa - it’s a result of a
poor design. So many everyday frustrations could have been avoided if designers
would have put more thought into usability of their product.&lt;/p&gt;

&lt;p&gt;I build software for living, and I was skeptical if I even needed to know
anything about good design. I mean, how hard could it be to put together a few
pages and forms? “I tackle complex software problems, I don’t need any of this
liberal arts bullshit!” - I thought that way, and I know many people who still
do. Well, Norman’s book is a great starter for people like me: he does a great
job explaining why the design process so important. By the time I finished
reading it, I had a pretty solid set of ideas why there are so many things
wrong with our industry, and how good, thoughtful design is a way out. The
funniest part is - the book itself is published in the year 1988, over
twenty-five years ago. It doesn’t talk much about computers, concentrating on
objects more common at the time: cars, telephone systems, even stoves and dish
washing machines. And here I am, reading this book in the year 2014 - and the
situation did not change at all. Expensive laundry machines are as hard to
operate, computer programs are as clunky.&lt;/p&gt;

&lt;p&gt;“&lt;a href=&quot;http://amzn.to/16ORgF9&quot;&gt;The Design of Everyday Things&lt;/a&gt;” compels the reader to become a part of the
solution to this enormous and bulky design problem the world is stuck with. In
the everyday world, for every good case of design out there, you will face a
hundred faulty, frustrating, and downright insulting design attempts.&lt;/p&gt;

&lt;p&gt;The book is very easy and pleasant to read, and I went through it in under a
week. Most of it is a set of rants about poor design decisions, with suggested
improvements and solutions. Throughout the reading process, I had to revisit
the systems I built at work and rearrange the components, add more feedback to
user’s actions, and do many other little and big improvements in order to make
make the system image much more transparent to the user. Norman taught me the
most obvious truth: a designer is not your typical user of the system. This
changes so many things, makes you doubt and rethink a number of design
decisions you made along the way - all in order to build a product that is easy
and pleasant to use.&lt;/p&gt;

&lt;p&gt;I now consider myself to be blessed with an understanding of the importance of
good design, and admitting there is a problem is the first step to fixing it.
And believe me, there is a problem. I will now continue learning about the best
practices in building systems that are easy to understand and pleasant to
operate for the user. My next stop is “Don’t Make Me Think, Revisited: A Common
Sense Approach to Web Usability” by Steve Krug. I’ve heard a lot about this
book, and I will be sure to share my impressions here.&lt;/p&gt;

</description>
        <pubDate>Sun, 15 Jun 2014 21:23:50 +0000</pubDate>
        <link>https://rosipov.com/blog/the-design-of-everyday-things/</link>
        <guid isPermaLink="true">https://rosipov.com/blog/the-design-of-everyday-things/</guid>
        
        
        <category>Reviews</category>
        
      </item>
    
  </channel>
</rss>
