aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristine Dodrill <me@christine.website>2018-04-23 20:42:46 -0700
committerChristine Dodrill <me@christine.website>2018-04-23 20:42:46 -0700
commitd15c99e9b81d41ffbac31ae19bf13094299931bf (patch)
tree994aa1a68e84a4233852a5eeeba77d87478083a2
parent617cede28dbb2c35546d4c6ccd6a150ff7c1ada5 (diff)
parent832865cfb4d864df11f4ca4a2d9d1591999f75db (diff)
downloadxesite-d15c99e9b81d41ffbac31ae19bf13094299931bf.tar.xz
xesite-d15c99e9b81d41ffbac31ae19bf13094299931bf.zip
Merge branch 'master' of git@github.com:Xe/site.git
-rw-r--r--Dockerfile2
-rw-r--r--blog/coding-on-an-ipad-2018-04-14-2018.markdown133
-rw-r--r--templates/contact.html2
3 files changed, 135 insertions, 2 deletions
diff --git a/Dockerfile b/Dockerfile
index 5e183b4..1840665 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-FROM xena/christine.website:1.1-25-g6c29390
+FROM xena/christine.website:1.1-32-gd8c75d6
EXPOSE 5000
RUN apk add --no-cache bash
CMD /site/run.sh
diff --git a/blog/coding-on-an-ipad-2018-04-14-2018.markdown b/blog/coding-on-an-ipad-2018-04-14-2018.markdown
new file mode 100644
index 0000000..bbb14c7
--- /dev/null
+++ b/blog/coding-on-an-ipad-2018-04-14-2018.markdown
@@ -0,0 +1,133 @@
+---
+title: Coding on an iPad
+date: 2018-04-14
+---
+
+# Coding on an iPad
+
+As people notice, I am an avid user of Emacs for most of my professional and
+personal coding. I have things set up such that the center of my development
+environment is a shell (eshell), and most of my interactions are with emacs
+buffers from there. Recently when I purchased my iPad Pro (10.5", 512 GB, LTE,
+with Pencil and Smart Keyboard) I was very surprised to find out that there was
+such a large group of people who did a lot of their professional work from an
+iPad.
+
+The iPad is a remarkably capable device in its own right, even without the apps
+that let me commit to git or edit text files in git repos. Out of the gate, if
+I did not work in a primarily code-focused industry, I am certain that I could
+use an iPad for all of my work tasks and I would be more than happy with it.
+With just Notes, iWork and the other built-in apps even, you can do literally
+anything a consumer would want out of a computing device.
+
+As projects and commitments get more complicated though, you begin to want to
+be able to write code from it. My Macbook died recently, and as such I've
+taken the time to try to get to learn how the iPad workflow is a little more
+hands-on (this post is being written from my iPad even).
+
+So far I have written the following projects either mostly or completely from
+this iPad:
+
+- https://github.com/withinsoft/ventriloquist
+- https://github.com/Xe/arrival
+- https://git.xeserv.us/xena/register
+- https://github.com/Xe/when-then-zen (more on this in another blogpost)
+
+I seem to have naturally developed two basic workflows for developing from this
+iPad: my "traditional" way of ssh-ing into a remote server via [Prompt][prompt]
+and then using emacs inside tmux and the local way of using [Texastic][texastic]
+for editing text, [Working Copy][workingcopy] to interact with Git, and [Workflow][workflow]
+and some custom JSON HTTP services to allow me to hack things together as
+needed.
+
+## The Traditional Way
+
+Honestly, there's not much exciting here, thankfully. The only interesting
+thing in this regard (besides the lack of curses mouse support REALLY being
+apparent given the fact that the entire device is a screen) is that the lack
+of the escape key on the smart keyboard means I need to hit command-grave
+instead. This has been fairly easy to remap my brain to, the fact that the
+iPad keyboard lacks the room for a touchpad seems to be enough to give my brain
+a hint that I need to hit that instead of escape.
+
+![An example workflow screenshot with Prompt](https://i.imgur.com/owGRo5x.png)
+
+This feels like developing on any other device, just this device is much more
+portable and I can't test changes locally. It enforces you keeping all of your
+active project in development in the cloud. With this workflow, you can
+literally stop what you were doing on your desktop, then resume it on the iPad
+at Taco Bell. A friend of mine linked [his blogpost on his cloud-based workflow][ceruleiscloud]
+and this iPad driven development feels like a nice natural extension to it.
+
+It's the tools I know and love, just available when and wherever I am thanks to
+the LTE.
+
+## iPad-local Development
+
+Of all of the things to say going into owning an iPad, I never thought I'd say
+that I like the experience of developing from it locally. Apple has done a
+phenomenal job at setting up a secure device. It is hard to run arbitrary
+unsigned code on it.
+
+However, development is more than just running the code, development is also
+_writing_ it. For writing the code, I've been loving Texastic and Working Copy:
+
+![](https://i.imgur.com/5RVt52w.png)
+
+![](https://i.imgur.com/XTWoOAY.jpg)
+
+Texastic is pretty exciting. It's a simple text editor, but it also supports
+reading both arbitrary files from the iCloud drive and arbitrary files from
+programs like Working Copy. In order to open a file up in Texastic, I
+navigate over to it in Working Copy and then hit the "Share" button and tap
+on "Open in Texastic". By default this option is pretty deep down the menu, so
+I have moved it all the way up to the beginning of the list. Then I literally
+just type stuff in and every so often the changes get saved back to Working
+Copy. Then I commit when I'm done and push the code away.
+
+This is almost precisely my existing workflow with the shell, just with
+Working Copy and Texastic instead.
+
+There are downsides to this though. Not being able to test your code locally
+means you need to commit frequently. This can lead to cluttered commit graphs
+which some people will complain about. Rebasing your commits before merging
+branches is a viable workaround however. There is no code completion, gofmt or
+goimports. There doesn't seem to be any advanced manipulation or linting tools
+available for Texastic either. I understand that there are fundamental
+limitations involved when developing these kinds of mobile apps, but I wish
+there was something I could set up on a server of mine that would let me at
+least get some linting or formatting tooling running for this.
+
+Workflow is very promising, but at the time of writing this article I haven't
+really had the time to fully grok it yet. So far I have some glue that lets me
+do things like share URL's/articles to a Discord chatroom via a webhook (the
+iPad Discord client causes an amazing amount of battery life reduction for me),
+find the currently playing song on Apple Music on Youtube, copy an article into
+my Notes, turn the currently active thing into a PDF, and some more that I've
+been picking up and tinkering with as things go on.
+
+There are some limitations in Workflow as far as I've seen. I don't seem to be
+able to log arbitrary health events like mindfulness meditation via Workflow as
+the Health app doesn't seem to let you do that directly. I was kinda hoping
+that Workflow would let me do that. I've been wanting to log my mindfulness
+time with the Health app, but I can't find an app that acts as a dumb timer
+without an account for web syncing. I'd love to have a few quick action
+workflows for logging 10 minutes of anapana, metta or a half hour of more
+focused work.
+
+## Conclusion
+
+The iPad is a fantastic developer box given its limitations. If you just want
+to get the code or blogpost out of your head and into the computer, this device
+will help you focus into the task at hand so you can just hammer out the
+functionality. You just need to get the idea and then you just act on it.
+There's just fundamentally fewer distractions when you are actively working
+with it.
+
+You just do thing and it does thing.
+
+[prompt]: https://itunes.apple.com/us/app/prompt-2/id917437289?mt=8
+[texastic]: https://itunes.apple.com/us/app/textastic-code-editor-6/id1049254261?mt=8
+[workingcopy]: https://itunes.apple.com/us/app/working-copy/id896694807?mt=8
+[workflow]: https://www.workflow.is
+[ceruleiscloud]: https://elliot.pro/blog/working-in-the-cloud.html \ No newline at end of file
diff --git a/templates/contact.html b/templates/contact.html
index 1ab268d..9f8fdfc 100644
--- a/templates/contact.html
+++ b/templates/contact.html
@@ -30,7 +30,7 @@
<p><a href="https://t.me/miamorecadenza">@miamorecadenza</a></p>
<h4>Discord</h4>
- <p><code>Cadey~#1932</code></p>
+ <p><code>Cadey~#1337</code></p>
</div>
</div>
{{ end }}