I was one of those "paper is dead" guys. We all have some kind of mobile device with productivity apps installed on them, why would you use paper? Actually, my devices got me into using notebooks again. I spend so many time with screens. I'm a developer, so using my iPad for development made me a bit more aware about adding dedicated tools to my tool belt. Couple of months ago, I've read an article about carrying a pocket notebook which instantly made me want to have paper with me all the time.
Since then, I've tried so many Moleskines, but eventually I've settled with Field Notes. I love their quirky designs; their memo book looks like an everyday tool that I can tear apart. Currently, I use three Field Notes notebooks for different things. I like to have a specific placement of my work tools. My iPad Pro is centered. On the left side, I have a Field Notes 56-Week Planner: I use that as a daily planner and a calendar. On the right side, I have a Field Notes Steno used for todo lists, notes, and work journal. I also have a pocket sized notebook always with me used as an inbox to quickly capture ideas.
Problems with digital calendars
I've never owned a paper planner — I used those card sized yearly calendars years ago, but it wasn't anything like a full-fledged planner. Nowadays, I use Apple's Calendar app for time sensitive stuff like meetings and appointments, but I've also started carrying around a paper based planner from Field Notes. I've realized that there are things I just don't like about digital calendars (or Reminders or any other task management app).
I usually have a daily plan for things I want to touch on that day listed along with my meetings and appointments. It's a great map to have, but my digital calendar is not going to work for this type of workflow. When I add something to it, I have to specify not just a date, but hours and minutes too. To be honest, my work has a really small part that has anything to do with specific dates and times, so planning things like this doesn't makes sense to me. Sure, I have deadlines of projects, but those more like anchor points of priorities.
My digital calendar is also hidden in an app. I'm all for keeping important stuff digitally, but I also want to reach my calendar quickly. I can open my calendar app really fast, but I want it to be like "look down next to my iPad" fast. Having a paper planner always next to my iPad is exactly what I need.
Writing on paper also feels better than dragging stuff around on a timetable. Digitally stored events are long forms that I have to fill every time I add or change something. Sure, I can use Siri or Fantastical, but that still feels unnatural to me. Not to mention, Fantastical's natural language parser works only with new events. Start to edit existing stuff and you're thrown back to a form.
Going back to paper: Field Notes 56-Week Planner
About 2 months ago, I've started using a small Field Notes memo book as a daily planner. It was great, my only problem was it's size, so I ordered their 56-Week Planner (56 instead of 52 to have a buffer month to order a new one, maybe). It's been great since then. The Planner is bigger than a pocket notebook, it has thicker paper, and more pages. It gives me a weekly spread divided into six equal sections. The last section, representing weekends, divided once more for Saturday and Sunday. I have 7 days worth of space to add plans and events. Also, it has only 10 lines per day which protects me from overplannig my day.
My usage of the Planner is really simple. I review my schedule every morning. First, I look at my digital calendar which contains my hard landscape (I have to be at somewhere at a specific time). I like to keep these appointments in Calendar, because then my Watch pings me at the right time. I also transfer them into my Planner. Writing it down makes me more aware of them. Then I have my next actions list stored in Reminders, which I review and pick a few items that I also write down in my Planner. This way, I'm not setting false due dates for myself in Reminders which causes stress by constantly pinging me at different times through the day. And remember, I just have 10 lines to write for one day which limits me picking too much stuff. Interesting tidbit: I never use pens with my Planner since plans can change, so I use a pencil with an eraser.
I love to work this way. With my Field Notes Planner, I can have a whole-week view of my life. I can easily plan projects and next actions in advance without feeling stressed about notifications through the day. It's also really nice that I can rely on an single-purpose analog tool. Checking things off my Planner gives me the feeling of accomplishment, which is truly the first time since I use a productivity tool.
I'm standing in the line at the grocery store. I grab my phone, open Twitter, then start mindlessly scrolling. These moments blind me with a two minutes fog of consuming links and other people's thinking. I feel like some kind of blob that has so many things and opinions floating around in it's head. Meanwhile the line gets shorter, I return to the real world, and feel like somebody who has just woken up.
I hate this melancholic state of mind, but, somehow my brain always wants a short amount of information dose which causes a temporary chemical pump, then I turn back to a less happy state. This is what Twitter does with me. I'm not familiar with the science behind this phenomenon but I'm sure it's making me less happier and less focused.
Twitter was a fun place couple of years ago. This feeling has long gone, most of my timeline contains politics and pessimism. Pessimism towards everything. I've always hated this attitude, it makes me angry too. I was trying to filter this out, but what can I say? Couple of days ago, I unfollowed everybody and then followed back some Apple related bloggers, writers, and developers. I've also started tweeting in English. From now on, I will use Twitter for two things: talking about my content, and following Apple related stuff. Twitter is great as a backchannel for my blog. No more politics, religion, and more importantly, pessimism. When somebody isn't interesting anymore I unfollow.
I've also changed how I consume Twitter. Safari has the Shared Links section which is a dumb RSS reader but it can show links from Twitter as well. My RSS reading habits are fine, I read RSS usually once or twice a day, so mixing it with links from Twitter makes sense. I removed Twitter from my phone too, I can still use it from Safari if I want to.
Now let's talk about Facebook for a minute. Couple of my friends use it but I've never really paid too much attention to Facebook. While people on Twitter were arguing about it, Facebook became the communication app that everybody uses around me. Messenger is huge now, nowadays, I mostly use iMessage and Facebook Messenger on my iPhone.
Facebook has been working on their stream in the last couple of years to make it more interesting. It's still just a blob of crap by default, but I can tune it to my liking. You can actually follow stuff on Facebook as you do on Twitter, but you can also prioritize what you like, it's going to learn your interests. Basically this is what Twitter should has been evolved into now, but, I'm not planning to check it daily, since it's way less in volume.
What I'm definitely going to use Facebook for is connecting a bit more with my close friends. I can plan a garden party with them using Events, check out where they are with Nearby Friends, or just talk with them on Messenger. Having connection with friends is way more important than following bunch of random people. I've also made friends on Twitter but it starts to form into some kind of real-time news whatever. They even changed their category in the App Store from Social Networking to News. I'm starting to understand why.
I've never thought I will have a need for an iPad Pro. Back in November when it got released, I was using a 12-inch MacBook, which is the best laptop for mobile development. It's light and thin, I don't feel it's weight in my bag, and it has a Retina display. I travel a lot, so portability is my main concern when I get a new device. My MacBook was great, but I've always wanted to use iOS as daily driver. I was already using my iOS devices way more then my MacBook, but my work was still revolved around OS X. iPad Pro was the first iPad which made me think about switching to an iOS based workflow.
Moving my development environment to the cloud
The main problem with an iPad based Rails development workflow is that you can't run code locally. You have to find a way to host and run your web apps on a server somewhere. There are services for cloud based development already like Nitrous.io or Cloud9, my problem with those is that they are usually a complete IDE running in the browser. I want to use native apps, so I just need SSH access to a server somewhere running my code and hosting my Git repos. Getting a VPS for this is way cheaper. Also, there are some advantages using a remote server for web development:
- I don't have to worry about messing up my development environment. Since everything is hosted on a single purpose server and always backed up, I can broke and replace the client which I’m connecting from. It feels liberating when you've spent so much time on administrative tasks to keep your development environment up and running.
- I can access my server from any device, even from my phone. I know, it's not the best device to use for coding, but for quick fixes and running administrative scripts it's great. I also use two iPad Pros (iPad Pro devices?) in different contexts for work, so I can switch between them easily.
- I can show changes instantly to a client. Lets say, I'm in a Skype meeting and the client wants a quick design change. I can update the code in realtime and get instant feedback. I also had problems with deploying to our staging servers before. Now I can just send a link of an app running on my server to one of my colleagues and he/she can check out the changes I did and have the staging server fixed later.
The cheapest way to have your own hosted development environment is getting a VPS, configure it, and use it over SSH. Before my Mac mini, I used a box from Digital Ocean that I set up on my own. It's cheap and quick. You can create backup images to reuse later if something gets messed up. They also have a great community site which have everything you'll need to know about setting up a VPS for different needs. I can't recommend them enough.
The other way is using a Mac mini as a server. There are companies doing Mac mini colocation, you can send your own Mini or buy one from them. You'll get a dedicated line, fix IP address, and great support, but I have a pretty good connection at home. Also, colocating a Mini is a bit pricy for my needs, so it was obvious to have my old Mac mini running at home. I'd bought a domain, then configured OS X Server on it. I was already familiar with OS X, so setting up a server was easy with a dedicated app. I have the same development environment as before, but I connect to it from different devices. It also works well as a home server with iOS, since OS X Server has services like Caching Server, file sharing, or device management.
The Mini runs Rails code and keeps my Git repos. There's a couple of great Git clients for iOS, but they store files locally, so I'd have to sync changes back to the server. Too keep the storage of my repos simple, I use Git over SSH in the command line. It's fine for basic stuff. If I have to do something more advanced, I just login into my Mac with Screens and use Tower there. I'm also using screen sharing for testing stuff in a desktop environment.
The iPad basically connects to the Mini over SSH and acts as a client. iOS has gone really far in terms of an everyday system and I try to use it as much as possible for everything.
Coda as a text editor
Currently my main editor is Coda on iOS. I really like that I can save sites and Coda can quickly load them as different development environments. I usually have a Terminal tab open to interact with the Rails console or Git next to currently opened files. Coda was really buggy at first. It crashed a lot on syntax highlighting and opening big files. Since the latest update, I can finally use it for work, although, I still have some issues with it:
- Rails generates a lot of files and opening them is really annoying without Quick Open. Coda can browse remote servers fine, but finding a file is lot of tapping around in folders after folders. I'd like to see some kind of global search over remote files, even from Terminal (that would be even better, since I'm spending so much time in the command line).
- Removing white spaces automatically is now possible thanks to EditorConfig support, but it only works on local files. The functionality is already in Coda, I just don't understand why isn't this working with remote files? Also, it should be an option in Editing settings, not hidden in
- Although, Coda uses the local/remote concept of files even on the Mac, I'd like to see a way to open external files from Document Providers. There is Textastic which can do that and it works great in conjunction with Transmit.
- Custom theme support would be really great too. It has a couple of themes built in, but I miss Solarized Dark from OS X. Coda on the Mac supports custom theme files since the beginning, so adding it to the iOS version would be the next logical step.
Why would I choose iOS over OS X for development?
iOS is forming at the moment. It's in active development and I'd like to embrace this. There are things way better to do on iOS and what can I say? I'm interested in trying out new things and see where technology goes in the next 5 years, but mainly to eliminate my dependence of a desk and work everywhere.
Many apps I used on my Mac were old ones like vim or Logic Pro (I edit podcasts too). iOS doesn't have those apps or they exist in a different form. Every app I use feels like a fresh start. Even a complex app like Coda is simpler than it's Mac counterpart. This is due to the fact that iOS started on the phone which have had smaller, single purpose apps from the beginning. People like to think of this as a disadvantage of iOS on iPad, but in my opinion it’s quite the contrary. I like to use native stuff over web apps and iPad have those. For example look at Trello, it has a great web app, but their iOS app is just stellar. I can search cards and boards from Spotlight, I don't have to open Safari, type an address, and try to find my stuff. Native apps have always been faster and on iOS you mainly find those in use.
So, I don't have the same set of apps as I had on my Mac since the platform is so different, but it doesn't mean I don't have great ones. Even my workhorses like Coda, Transmit, Prompt, or Screens blows my mind sometimes. Also, there is OmniFocus, OmniGraffle, Drafts, Trello, Workflow, Ferrite, Ulysses, and Overcast. Developers of these have thrown off the desktop mentality and reimagined them on iOS. I'm using more apps on iOS for the same task, but they are optimized for mobile which is great. They are even on my phone too.
Also, I've never used an iPad with cellular connection since I've never felt a need for it. But it really changes the way I think about the device. I'm on the same route as Myke, using two iPad Pros for different things. My smaller one has LTE which has made me to bring it everywhere. Always on cellular connection and those new kind of apps have a big role in my work now. iOS is not a translation of a desktop OS into a mobile OS. Instead, it's a completely new thing, which means I can't work the same way as I did before. I have to adapt new things and change my workflows to use my iPad efficiently. It sounds scary, but I'll gain new insights into my way of working and learn to do stuff in a different way. This is the biggest advantage of using mobile devices for development.
I've started this blog more than a year now and I haven't written much lately here. I've found podcasts are the best way to express myself on the web quickly. Almost everything I was going to write about got mentioned in my podcasts. Blogs still have a place on the web and I've wanted to do something with mine, so I came up another idea: maybe I should use this site as a way to get experience writing in English, which alone is really interesting, but also very scary for me. I've never written anything longform publicly in English. It feels like a fresh start, although I haven't changed the subject I'm going to write about: it's still technology and productivity. I've just changed the language.
I'm working with a swiss company where we speak English daily, but that's a completely different thing than writing on the web, where anybody can read your stuff and be mad about it. As we know, everybody knows English better than the next person, so I'm trying to use this "collective knowledge" to my advantage. I'm open to every advice related to grammar — you might want to fix some of my phrases too — although I have no idea what type of feedback I'll get. I'm sure I'll have problems with the language since I'm not a native speaker. We'll see.
Keeping a blog is a big challenge alone and I have no prior experience writing in English other than daily emails and Skype messages. The best way to learn is to do it the hard way and write. Also, there is a couple of people who might enjoy following this challenge. I have no other goals with this blog currently, but it may form into something else later.
I started taking an English class to learn grammar again back in March. I also had English in high school, but I never paid much attention to the class and forgot a lot of stuff since then. Years passed by and I had to relearn lot of words and phrases by watching TV shows, movies and listening to podcasts. I've been reading almost everything in English since I started working as a web developer. It's okay to start with, but the problem remains: my grammar sucks and I want to get better at it. My English class has ended and I haven't practiced the language enough.
But why this matters so much? First, not knowing English well enough is a problem. I usually work with people abroad, so great communication is a key. Second, I have same plans to do stuff for international readers, but that's still far away. Currently I'm not even comfortable with the longform writing of English. This is going to be a multistep process.
Couple of months ago I thought I'm good at English, but I'm not. I'm just as bad as anybody else. Writing stuff comfortable in a different language is a skill I can learn, but I have to practice it. So, here we go, I'm doing it. Just follow my stuff here and don't hesitate to fix my mistakes, but also follow up with me in email regarding topics I'm going to write about. I'll try to learn from every feedback I get. Just be nice. 🙂