The State of VR

I have wanted to experiment with VR for sometime now, so during Golden Week I decided to take the leap and get HTC Vive. I choose Vive over Oculus Rift because it seemed to have better integrated experience, more interesting looking controllers and looked to be easier to setup (Plus maybe I’m not too enthusiastic about the Facebook Oculus aspect either).

While I do not have the space for full room-scale, my office room is still enough for basic room scale experience (abt 2.1m x 1.9m without obstacles). It works surprisingly well for teleporting movement, although occasionally you’ll hit a wall.

The initial setup was easy by using some camera tripod equipment and a bookshelf. Two sensors is all that was needed to setup, then the mapping of the play area, and everything was working in 30 minutes.

First experiences were really wow! Playing VR games is extremely immersive. It works much better than I was expecting. I think it’s something that people do need to experience. And I don’t mean the smartphone experience but really room-scale experience.

Getting into VR

There have been articles encouraging people to get into VR, and I agree. VR, AR, MR are technologies that definitely will change many things of how computers are used, how skills are learnt and how people interact.

The current state is that lots of improvements are required in various categories – the ecosystem, the equipment, the monitors, the controls, wearability, webVR and even apartments will need to be designed in a way that those technologies can be used smoothly.

None of them are easy, but it is easy to get started especially with content.

I downloaded Unreal Engine and had a HMD working and Vive controllers usable in game in less than 30 minutes with help of youtube tutorials (though it helps that I had some previous experience with Unreal Engine).

I experimented with developing small VR experiences. And even won a Startup Weekend with one idea. I will continue experimenting and we’ll see how it goes…

I have been inviting friends to experience VR and the reactions are really interesting, but extremely positive. The games are fun of course, but there’s something incredibly fascinating in Google Earth also.

Basic problems with current VR

  • The resolution of the headset could be better, have more FPS (Vive is only 1080×1200 per eye).
  • The headset is heavy enough to make you tired after a while.
  • You can get sick when you move in a game, but do not move physically. Some of the things that do not use vive controllers made me feel like this.
  • Basic homes might not have enough space for excellent room scale VR experience (especially here in Japan)
  • Controllers do get some time getting used to. Especially exact clicking is hard in the beginning.
  • The ecosystem is not there. There are very few really well done titles, but lots of small fun experiences showing the amazing potential. But more is coming all the time.

What’s great

  • The experience is really immersive, and just works!
  • Controllers (only tried Vive) are a new, more natural way of interacting with things. Oculus controllers look also really nice, though haven’t had a chance to try those yet.
  • Archery, shooting games, table tennis, golf, boxing and so on just works nicely.
  • Simulations like racing and flying games are also really good with HMD, but I found myself get bit dizzy from most of what I tried. I think there needs higher 120 or so FPS and possibly higher resolution also.
  • 360 videos are cool, but they are just videos and you cannot move. I would not call it real VR. But fun especially with high resolution.
  • Virtual Desktop is a very cool concept. I can feel the productivity potential although it’s just a very basic desktop now.
  • It is extremely easy to get started with Development.


I think VR is something people need to experience now. Especially the room-scale experience. It’s still really only the first generation, but it’s already really good. In next few years they will get much more common.

Now is also an excellent time to get involved, especially in building content like games, productivity, education, fitness apps. Or even just getting VR headset and enjoying (though unless you’re developing I might want to wait for what next generation brings…)

Thoughts about Windows, PCs & dev experience

Lately I got myself a desktop PC with Windows.

I have been Mac user since 2008. Before that I used mainly Linux since 2001. Every now and then during these years I have developed for Windows, but usually in a virtual machine in MacBook.

I will talk about my motivation and experiences for getting Windows PC in this post.

Why Windows??

While I do love working with Mac, there are some things that current Mac lineup is not suitable. As many other people have mentioned, there is no reasonable Mac setup for high-end performance requirement tasks.

Those tasks include especially:

  • Gaming and VR
  • High-end 3D creation
  • Machine Learning on large datasets
  • In some cases video, animation & photo related
  • Cryptocurrency mining
  • Other heavy computational stuff

You can of course do something with above, but when you want to get serious, Mac hardware just isn’t there. Latest GPUs are a requirement for all that. Even Mac Pro is not enough and way too expensive for the price.

My main motivation for going Windows is VR and 3D creation.

As for gaming and VR, no current Mac has ability to run latest games full 4k resolution with ultra settings, nor is VR software supported by it either UPDATE: looks like it’s coming in end of 2017.

I also do some work related to machine learning, and do fair amount of photo and video editing. Every time I do anything related to those on my MacBook, things get hot and the fans run full speed.

Tasks like 3D rendering and Machine Learning could easily be offloaded to cloud these days, but especially on development phase, it is almost necessary to have that power available on your machine.

For 3D, you can model things with MacBook. However, once you start tweaking renderings, such as optimizing lighting, things can get quite slow. On MacBook it takes 10-20 seconds to get meaningful output, but with latest GPUs you get that in less than second.

What do you get with the price of Mac Pro?

With the price of the entry level Mac Pro, you can get a much faster and better equipped PC.

The most important reason for desktop PC is probably GPU. The video card I chose was the latest GTX 1080 Ti. I wanted to go with the best one, especially because I have 4k monitor and want to try to do things with VR. Most of the games I have tried run on 4k can do almost consistent 60FPS with max settings, and full 60FPS on lesser resolution like 2560×1440.

Another thing you can get with reasonable price is memory. Mac upgrades always cost premium, but getting 64GB of memory normally is not exponentially expensive.

Basically, when working you never want to run out of memory. When you open multiple 3D software, Photoshop, Unreal Editor, Lightroom, development environment and lots of browser tabs simultaneously you need lots of memory. I have been over 50% usage already.

Rest of the hardware is basically at least same level as with Mac Pro, 6-core processor, few terabytes of storage, etc.

However, the case might be noticeably larger (and look less like garbage can)…

Am I going 100% Windows?

Having a Windows Machine does not mean I am throwing away my MacBook either. It will still definitely be my web development and writing machine. Windows just lacks few things in these areas, more about that later.

I have my MacBook next to my 4k monitor easily switchable connection for keyboard, mouse, headphones and monitor. And on those times I want to use both, I also use TODO: synergy LINK Synergy, an awesome software to manage multiple computers on same desk.

Only thing that I still haven’t figured out is a good way to deal with the different modifiers (ctrl vs cmd) and it can be confusing.

Development in Windows

Development in Windows is not as smooth experience. Especially working with terminal is clumsy, and that’s what I usually do when doing web development.

There is a new Developer Mode that you can install Ubuntu and use bash inside Windows. Basic things work well, but when you have some customizations in your project, such as symlinks, things stop working. Some draw updates are also buggy with default terminal. I think some other things also failed in my limited tests. However, I think it’s a big improvement for previous hacky cygwin workflow.

It’s also bit disappointing that if you install servers, such as sshd and databases in the ubuntu shell, those are not running when you don’t have bash open.

You also cannot run windows executables in bash.

I have been using Visual Studio Code most of this year, and luckily the experience through that is same. I imagine Atom, Sublime text be so also – I think vim/emacs also have working ports.

Outside Ubuntu mode, managing software package and library versions is messy, as it has always been with Windows. Basically it’s manual process. Software like Chocolatey can help with that, but it’s far from the apt/brew/yum etc. experience.

If your projects are simple – no symlinks and nothing too unix specific things, you can probably do fine.

The overall experience

The MacBook experience is still way better.

Quality, consistent software experience is still missing from Windows. I do write a lot, big part of it for clearing my thoughts, gathering ideas, concluding what to do, I still love the experience on MacBook (or iPad). The software is designed with much more care, it’s consistent, comfortable to use, typography is beautiful.

Quality lightweight design & note taking tools are pretty much missing in Windows. On MacBook (and iPad) I frequently use Sketch, Mindnode, GoodNotes, Procreate, OmniGraffle, depending on the purpose. I tried to look for similar, cross platform software, but without success. Some say OneNote is good replacement, but I seriously doubt it especially though the videos I watched on it.

I like Mac font rendering more, and the fact that everything you do in OS is also doable on command line. iTerm2 and even MacOS default terminal are excellent.

Default shortcuts and shortcuts and configurability are better. Even trivial stuff like changing to virtual desktop N is difficult to accomplish in Windows. There’s no managed system wide shortcut setting, like there is in MacOS.


I think Mac still has the best laptop hardware there is. Mine is late 2013 Retina MacBook Pro 15″, still working well. Maybe few scratches here and there, but basically no problems. It’s been in heavy daily use for over 3 years and still continues to do so.

When you buy a PC, you need to choose your hardware yourself, or trust the suppliers packages. I am glad with what I got, but having seen some bad things also, I think you should not go with cheapest and become proficient about the details of what you’re getting. One thing I was shocked about was the lack of Wi-Fi.

Software I miss from OS X

  • iTerm2. Easily the best terminal emulator there is, splits, settings, color customizations, password managers etc. work perfectly for my workflow
  • Ulysses. For writing, taking notes, organizing writing. Beautiful, well thought Markdown writing software with good organization and publishing capabilities.
  • Day One. For daily thoughts and journaling.
  • 1password – There is Windows version but the UI is confusing, it’s not well integrated, does not support syncing over Wi-Fi, etc.
  • Sketch. Adobe Creative Suite can do something similar, but sketch is lightweight and easy to be productive with.
  • Keynote – I don’t have or use Office, and am not really thinking of learning powerpoint
  • Really native shell – The Windows bash shell is not really

Same in both

  • Browsers I use are cross platform: Chrome, Opera, Firefox
  • Visual Studio Code has been my favorite code editor since beginning of this year and it works the same.
  • Evernote for clipping & reviewing stuff.
  • Creative Cloud apps.
  • Synology sync.

Stays in Mac

  • Writing. I will continue it doing in MacBook/iPad – I use mostly Ulysses and Day One.
  • Presentations. I will stick with Keynote, either using MacBook or iPad
  • Light design things. Sketch is good, so I’ll probably keep doing it on MacBook. For more heavier design, I do have Illustrator and Photoshop, and for photos there is Lightroom.

Some recommendations for Windows

  • Hyper as terminal. Windows default console is really bad. Hyper is electron based terminals, works well for both windows and the native bash mode. However it’s not iTerm level. Works in Mac also.
  • Chocolatey. I think it’s good way to manage some software installations, especially the ones that don’t have auto update.

Things in Windows that I’m satisfied with

  • Window snapping – by default is more sane than in MacOS.
  • 4k support – works properly. MacOS often throws windows out of screen when opening new windows.
  • Developer mode with bash – works fine for simple stuff, but you cannot run windows commands from it or so, so it’s still contained environment
  • Explorer – while I have no problems with Finder, I find some things in Windows File Explorer better (e.g. sorting order, view options, automatic mounting of network drives…)
  • Virtual Desktops – OS X/MacOS has had virtual desktops since beginning, but they only came to Windows in Windows 10. Still, I like how they work in Windows. The apps open per desktop really are only there, unlike in Mac, where alt-tabbing to another tab might change the virtual desktop

Things that I don’t like in Windows

  • Consistency of the software. Even Windows itself has two versions of lots of apps with the same features, that work bit differently. There’s the app store tablet-like version, that generally sucks and is extremely limited, then there’s the actual version that is what you have probably gotten used to in the past.Quality varies heavily from app to app. Usually the tablet version is horrible to use and limited, and the desktop version has 10 years old interface with quirks and is horrible to use therefore. Tiny badly designed forms in control panel features you cannot resize (that have been there since Windows 95/XP or so)
  • Development capabilities (especially web) are still not there. In Mac, there are most of the tools available by default, installing Xcode gives more tools and homebrew gives the rest. With Windows there are no tools available by default – but as you turn out developer mode you get ubuntu installation, then you need to install Visual Studio to get c/cpp compilers, but running them interchangeably through windows/ubuntu side is still not possible. Chocolatey promises to be apt-get for windows, and while it’s good choice for some software (say, git), some software have their own auto-updaters and you’re left wondering which one you should use & what will break if you don’t do it correctly.
  • Virtualization capabilities. Docker wants Hyper-V virtualization, which you can turn on or off. However, if you want to use VirtualBox/VMWare, you need to turn it off. This requires rebooting so basically you need to decide what to use. Convenient hack for choosing on boot. Though I don’t think Mac is too good either…


Windows has become better since I last touched it few years ago. With the Developer Mode, especially web development friendliness has gotten little better, but it’s still not there.

For 3D and such, it is and has always been the platform to go. There are more software available for Windows, but more than software, I recently feel it is really a hardware problem.

So, in 2017 my opinion is:

  • For web development, writing, light design, Mac has the best experience.
  • For 3D, VR, gaming, videos and maybe photos, Windows is the most cost-performant, and the software is essentially same and there is more software available.
  • For machine learning and heavy computational data things, you want hardware that you cannot currently get for Macs, so high-end machine with Windows (or more likely Linux) is the way to go.

4k Monitors

Last week I tried working with 4k monitor first time. I fell in love with it instantly. Until now I’ve been using 1-2 1080p monitors and 2560×1080 ultra wide monitor at home, but 4k monitor allowed me to have everything necessary on one single screen at once. I had been putting 4k off for a long time because I thought MacBook Pro would be slow with it, but that was not the case at all. It could do 60hz and I didn’t notice anything particularly slow during one day. So, I made a quick decision to buy 4k monitor for home office.

After using it for one week, here are my impressions.

To use 4k as non-scaled full 4k resolution, I suggest getting at least 32″ monitor. I tried first 28″ monitor and thought everything is bit too small and got 32″ for home. I feel 32″ is large enough for basic 60-80cm desk, but even larger ones might be plausible, depending on your workspace.

The main bad thing with 4k monitor is obvious: you can have too much space at once, playing videos, having social media windows open and not getting focused work done. However, this is not monitor issue, but self-control issue. Work on that instead of saying 4k is not useful.

For web development, you usually need to have at least editor, browser, developer tools and terminal open. 4k monitor let’s you do that without overlapping windows and alt-tabbing. Working with data also becomes very pleasant when you can see more at once.

Working with anything graphical is just awesome. Sketch, Photoshop, Illustrator, Premiere, Final Cut, Blender, OmniGraffle and anything graphical like that benefit a lot from 4k. You can have a much larger workspace and the tool options windows don’t take all the space. Reading and studying also allow you to read and take notes, draw diagrams at the same time.

One annoying thing with 4k monitor in macOS is that when waking up from sleep, windows often to go off screen making everything confusing. I use Moom’s window layout remembering to fix this partly, but still some windows still tend to do this. Hopefully this gets fixed someday, though it seems to be long unresolved issue.

Overall, I highly recommend getting 4k monitor!

Rules of Effective Communication

Communication is extremely difficult, yet important skill to master. Lately I’ve had couple of instances of miscommunications, or lack of it and things didn’t go too well. I’m writing this to remind me of the rules of effective communication.

Rule 1: Skip the small talk

Effective communication does not need small talk. If you want to talk about weather, your favorite foods, your pets, how everyone is having cold lately, how tired you are, or anything equally useless and trivial, do it on a lunch, cafe, dinner or drinks. While this might sound bit military-like thing to say, this does not belong to places where you’re supposed to get things done.

If you communicate remotely, make sure that every now and then there are situations to do the small talk with your co-workers or the people you are communicating. But everyday?

Rule 2: You might not need to say it at all

Before you open your mouth, take a deep breath and a second to think if you really need to say it out loud. When you do that for example in a room with many people working, you will disturb everyone. People get intrigued by other people’s voices.

Every time you feel the urge to ask, complain or say something out loud, try to spend at least 5-15 minutes to figure out that by yourself. That not only makes you better person but also more skillful of figuring things out on your own.

Rule 3: Leave the trail

In most cases, written > spoken communication. When you say something in written communication, whether by chat, mail, sms or an app, you leave a trail behind for the other person to confirm it afterwards. With spoken communication, the other person is left wondering what was said and what had to be done.

Sure, there are times when it’s best to speak out loud, especially when you need to get something done urgently, or when you are not sure about approach to take, it is useful to sit down and talk about it openly.

Rule 4: Make the thing is easy to digest

A person who is good written communicator, is usually good spoken communicator also. This is because written communication helps you to structure the material in a way that it’s easy to digest.

With spoken communication you can repeat same thing five times with do hand gestures and kind of get the thing explained without saying a word.

So, whenever you need to say something, consider who are you going to say it shape your message into something that is easy to digest. If you write it down before opening your mouth, your message will be much more clearer.

Rule 5: Acknowledge fast and clear

Lately I was supposed to meet a person and I suggested a time and the place to meet, but I never got the final acknowledgement. On the given day I sent a message asking if it was going to happen or not, and didn’t get a reply to that either.

So, I didn’t go to the place at the time. The other person however had been there waiting for me. I later discovered that she had replied to me from another address and the acknowledgement messages went to spam.

So who was to blame? I think both parties – me for not having checked spam for acknowledgement – and she for not having felt odd that I hadn’t answered to her mail with my phone number.

On the other hand, on working environment, when you send a request for someone to do something, and never get acknowledgement back, you will grow frustrated. Maybe that person has done it quietly, or not. And you never know when or if it gets done.

So, acknowledge, acknowledge fast, and if it was request to get something done, always inform back at the time it is done.

Remote First Culture

I am big advocate for designing businesses to be remote-friendly first. In the past, I have worked remotely for few years. I have had hard times, but also really good times.

The company culture needs to built remote work in mind, otherwise it can cause problems when part of the group is not trusted with remote responsibilities, while others are.

There are obvious advantages for remote workers: Being able to deeply focus on tasks and problems, skip commuting, read books without distractions, go to gym any time you want, eat and wear what you want. This all can make a huge difference in how you feel and lead your life.

But there are definitely problematic things with remote work also. You can get lazy, take a nap or watch a movie during the day. Feeling of loneliness is also very common problem, so it’s quite important to have friends or family nearby. One problem is also trust, which, if you don’t deliver great results, can suddenly go bad since nobody actually sees you do anything.

Most issues can be addressed with self-control, healthy habits and proper communication.

To build a remote first culture means that there are proper principles in place:

  1. Effective communication guidelines, especially written
  2. Guidelines how to do work, e.g. programming, design, client communication, things to avoid and such
  3. Trust and somewhat clear goals and expectations
  4. Occasional healthy meet-ups or hanging out situations. If people are around the globe, this might be more difficult, but still doable through video chats and yearly meetings

The odd thing is that all of the above are very important for non-remote work also. Yet, they are often overlooked when people are busy focusing on non-essential. Remote first culture forces you to focus on the essential.

Become Fast and Practical first, Focus on Accuracy and Correctness Later

When studying Japanese about 10 years ago, one of the big realizations was to notice that I learn much faster if I fail fast and check the answer, as opposed to try to think about the word for over 10 seconds.

Some of my friends studied more systematically all readings of a Kanji, but I mostly focused on real world words and wrote down everything I encountered. Studying only about 30 mins every day, I could study about 100-200 words.

I realized later that I had learned the same thing when I was studying the board game Go. In about 2 years I went to 3-5 kyuu level, but it was because I played a lot of fast games, with short reviews afterwards.

I have been using that to study other things also, but I think it has become kind of motto for my working style.

If I need to do something, I draft something fast to see if it might even work or not, prepared to throw it away. To be able to do that I do spend long time learning and optimizing shortcuts and other practical things. That allows me to get feedback fast.

This same advice is also very sound for business environment. You should aim to get something out to real people fast. See their reaction and adjust. Yet, often the release schedules are months or years.

What if you could build a very simple prototype in a day or a week, and ask someone for real feedback before committing to do it for long term?

Fast feedback loop is very important. On the other hand, so is good feedback. For somethings you can do it with software, for other you can do it with money, other times co-workers and friends can give you the feedback. Sometimes you can only get feedback from yourself.

But more importantly, my advice is to try to become fast first. If you write a lot, spend time to become faster at typing and every time you save few minutes here and there. If you write code, learn all the shortcuts, refactoring concepts, try to imagine ways you can do tedious editing with single keypress or command, and practice them actively. Make it so that every time you save a file, you see the changes.

When you are fast, you can make more mistakes faster, and the accuracy and correctness come only with experience. If you are slow, you cannot make enough mistakes to evolve.