Tech – Tim Oliver https://timoliver.blog Fri, 06 May 2022 08:08:08 +0000 en-US hourly 1 https://wordpress.org/?v=6.5.2 5272524 iComics 2, work, and the future of this blog https://timoliver.blog/2022/05/06/icomics-2-work-and-the-future-of-this-blog/ https://timoliver.blog/2022/05/06/icomics-2-work-and-the-future-of-this-blog/#respond Fri, 06 May 2022 07:54:47 +0000 https://timoliver.blog/?p=2693 I hope everyone’s been having a great 2022 so far. This week was Golden Week in Japan, and I personally had a fantastic, relaxing week of doing some long overdue cleaning, catching up on emails and hanging with friends.

I figured I’d do a super quick update on what I’ve been up to lately, and what I’m hoping to do this year.

Work

I haven’t mentioned it here yet, but I officially joined Instagram in February! πŸŽ‰ I’m working in a small team called IG Labs that is based out of the Meta office in Tokyo, building experimental new features for the Instagram iOS app. So far I’ve been having an absolutely fantistic time at the company. The company has done a fantastic job at writing code for the app frictionless, and the company culture is amazing. I spent a large part of 2021 preparing for the interviews, and when I have a bit more free time, I’ll talk about my journey to Instagram in another blog post. But in any case, I feel really fortunate to have started such an amazing new opportunity. And I’m hoping with this new work-life balance, I’ll be able to focus more time on my own projects as well.

iComics 2

So. Yeah. iComics 2 progress has been pretty slow. The reason for this is that I’ve come up against an engineering challenge that made me stuck pretty badly. I’ve been R&Ding a solution to this problem since 2020, and I THINK I’ve nearly solved the problem. 😁

To quickly sum up the problem. The resolution of comic pages has steadily been growing over the years. When I first started iComics 1, most comic book pages had resoltutions of 1,000×1,500, which was really manageable. Nowadays, most comics are at least 3,000×4,500, and I’ve even seen some comics on Humble Bundle go as high as 9,000×14,000!

At the moment, iComics 1 just uses the regular iOS graphics system to extract the page from the ZIP file, and display it on screen with zero processing. Since iOS itself is built on top a 3D graphics engine, just like in video games, when super large images are shrunk to fit the screen of smaller devices (like an iPod touch), they start to look really “shimmery”.

Here’s an example of what a large image looks when shrunk down.

Now, the obvious solution to solve this would be to make a copy of the image and shrink it down to the same size as an iPod screen. However, if the user wanted to pinch in at all from that size, the image will be super blurry. To solve this, I’d need extra copies of the image at bigger sizes I could snap to as the user pinches.

And it turns out this was totally a solved problem in 3D video games all this time. I’d somehow arrived at the concept of mipmapping in a very roundabout way. 🀣

Unfortunately, UIKit, iOS’s main graphics API doesn’t support mipmapping to this level of control. And so after several months of research, I built a proof-of-concept of a mipmapped texture that solved the problem directly on top of Metal, Apple’s lowlevel graphics API.

Here’s how it’s looking now. 😁

This is still a WIP however, and I’m still not 100% convinced this will do the job. But if I can successfully get this running in iComics 2, that will be the biggest hurdle I need to clear before launching it. Either way, I’m really excited about it.

iComics 1

For the record, I stand with Ukraine. Earlier in the year, I pulled iComics from the Russian App Store, and I donated about $500USD to the Ukraine. If you have any money to spare, I would encourage you to do the same.

I really want to do one more big push on iComics 1 and deliver a pile of the features I’ve promised as a final “hoorah” before committing fully to iComics 2. I’ve got dual page spread working in the app already, however, I wasn’t able to get my mipmapping solution I mentioned above working in such an old codebase.

Thankfully, for iComics 1, since it won’t need Mac support, I think I can create a modified version of the mipmapping system that will do the job “good enough” for dual page spread’s needs, and saving the ultra good stuff for iComics 2.

I’ll continue to stream working on iComics 1 code on Twitch. Please feel free to follow me and come say hi over at http://twitch.tv/timXD!

This Blog

I’ve been thinking about this lately. This blog is coming up on 10 years with its current appearence and I’m starting to think it’s time for a change. A big reason why I don’t blog a lot is because of the amount of “friction” I have when writing posts. I always have to Photoshop some kind of banner image, and WordPress, while great, can be quite slow to run at times. And since I’m running a self-hosted instance of WordPress, there is a fair bit of maintenance overhead, constantly installing security updates, and verifying all my plugins are still working.

Since I’m really only serving static content on this blog, I’m considering migrating the whole lot to Jekyll. I’ll try and keep all of the current content and functionality (Including comments via Disqus!), so please stay tuned for that.

And on that note, have a fantastic May!

]]>
https://timoliver.blog/2022/05/06/icomics-2-work-and-the-future-of-this-blog/feed/ 0 2693
iComics Developer Update (August 2021) https://timoliver.blog/2021/08/14/icomics-developer-update-august-2021/ https://timoliver.blog/2021/08/14/icomics-developer-update-august-2021/#respond Fri, 13 Aug 2021 17:03:14 +0000 https://timoliver.blog/?p=2421 Hey everyone! I hope you’ve been well and staying safe!

In case you missed it, today is Free Comic Book Day! Yayyy! As has been tradition for a while, iComics is free for today. If you’ve been on the fence about it for a while, go grab it now! Don’t feel bad for getting it for free, but if you end up liking it, please give it a review on the App Store!

If you need some places to get some comic books to read for it, at the moment I can recommend:

If you know anymore good places for DRM-free comics, please let me know in the comments!

And while I’m at it, let me do a brief developer update as well.

iComics (The OG one)

Earlier this year, I replaced iComics’ archive file reader (The thingy that can open up ZIPs/RARs/7ZIPs to get at the page image files) to the latest version provided by the folks at MacPaw. This included support for much needed newer formats like RAR5, but sadly introduced some other issues into the app. Thanks to the folks who reported those; I’ve fixed some of them and shipped a release, but I’m aware there’s still some lingering issues.

As usual, with everything going on at the moment, I can’t spare the time to fix these issues just yet, but I’ll try and get to them as soon as I can. The biggest issue I can see is if you import a solid archive, that seems to behave strangely, so I’d recommend just avoiding those for now.

In any case, I hope you enjoy the latest update, and please let me know if you find any other bugs.

iComics 2

As I announced at the very start of 2020, before all of the craziness started, I’m working on a ground-up rewrite of iComics, tentatively called iComics 2.

The reasoning why this isn’t simply a new version on top of OG iComics is for a few reasons:

  • iComics 1 is written in Objective-C, whereas iComics 2 is written in Swift, which is faster to write and is able to guarantee less crashes.
  • iComics 1 was written during the time of the OG iPad, and so at a foundational level, it’s not capable of scaling to the capabilities of iOS devices today. Changing it to this extent is a rewrite in itself.
  • In order to make things a bit more legit than they are now, I’m planning to publish iComics 2 as a company, not as an individual, and so it will be under a separate Apple account on the App Store.

Progress on iComics 2 has been slow, but has been extremely promising. I had a lot of momentum for it in the first half of 2020, but I’m sure you can imagine that given the current circustances, I ended up taking a break from it, and only started it back up about 2 months ago.

The reason it’s been slow is because of a lot of unsolved questions I’ve had on how to make it scale to modern devices, like the M1 iPad. Spreading out page loading to all of the cores is easy, but the challenge then is how to not accidentally consume all the RAM if all of the cores try and load in massive images at the same time.

Thankfully, these past few weeks have been super fruitful, and I’ve managed to find good solutions to all of the problems I’ve been having. So while I don’t have anything visual to show yet, I hope I will soon.

In any case, for the folks still hanging out for iComics 2, thanks for your patience. I hope it will be worth it. πŸ˜€

Conclusion

In any case, I hope you have a fantastic Free Comic Book Day! And if you have any feedback on either iComics 1 or 2, please leave a comment!

Take care, and stay safe!

]]>
https://timoliver.blog/2021/08/14/icomics-developer-update-august-2021/feed/ 0 2421
iComics v1.4.5 is live on the App Store! https://timoliver.blog/2018/12/09/icomics-v1-4-5-is-live-on-the-app-store/ https://timoliver.blog/2018/12/09/icomics-v1-4-5-is-live-on-the-app-store/#respond Sun, 09 Dec 2018 05:05:41 +0000 https://timoliver.blog/?p=1913 Hi everyone!

In case you missed the memo, iComics v1.4.5 was approved by Apple and released on the App Store earlier this week!

The updated contains the following updates:

  • Support for the new iPad Pro, iPhone XR, iPhone XS Max devices that came with iOS 12.
  • Added the ability to sort comic collections alphabetically.
  • The ability to turn comic pages with your Apple Pencil. πŸ˜€
  • General updates and improvements for compatibility with iOS 12.

To commemorate the occasion, I created a small developer update video on YouTube.

Like I said in the video, my main focus now will be back toΒ my file kit library.

In addition to that, I’ve also got a lot of other R&D projects in development for iComics 2 (Like loading images faster, and handling absolutely massive collection sizes) that I’ll be looking at over the Christmas holidays.

Thanks again to everyone who participated in the beta. Enjoy! πŸ˜€

]]>
https://timoliver.blog/2018/12/09/icomics-v1-4-5-is-live-on-the-app-store/feed/ 0 1913
iComics 2018! (No, it’s not dead!) https://timoliver.blog/2018/10/11/icomics-2018-no-its-not-dead/ https://timoliver.blog/2018/10/11/icomics-2018-no-its-not-dead/#respond Wed, 10 Oct 2018 17:26:48 +0000 http://timoliver.blog/?p=1886 G’day! It’s been a while, but the reports of my death are greatly exaggerated. Mostly. 🀣

I’ll go into more depth in this post, but for starters, here’s a video I produced for the occasion. 😁

I’ve been toying with the idea of making dev videos for a while now. I had a lot of fun producing this one, especially because I’d never tried Final Cut Pro before. But on that same note, I had no idea what I was doing the whole time (and I’m sure it shows). Let me know if you want more. 😜

So to follow up what I said in the video, since basically the end of 2017, everything got completely crazy. My job at Realm ended, I did some contracting from October and I did some overseas job interviews at the same time. And eventually I ended up moving to Japan. And while moving to Japan has been awesome, it also basically meant was all this time has been spent getting set up: finding an apartment, furnishing the apartment, setting up a home office etc. 😰

It’s been nearly a year, but I’m finally back in a position where I can work on iComics. I’m so excited. 😁

So like I said in my video, I want to start streaming my work on Twitch. My apartment has a lovely gigabit connection, (something my fellow Australians would absolutely kill for) and I want to make sure it gets proper use. πŸ˜ƒ

The absolutely first thing I have to do is get iComics running on iOS 12, so it looks nice and shiny on iPhone XS Max. I plan to stream that this weekend if I can. My Twitch channel is timXD. Please feel free to follow if you want to watch.Β πŸ™

After that, my plan is to return to TOFileKit. While the repo might look empty, I’ve already done a lot of the work in iComics, so I mainly need to start pulling it out and seeing what breaks.

To parrot my video one last time, I’m really happy how this app has let me come. I know it deserves a lot better love than I’ve given it now. Hopefully from now I can make that happen.

See you again soon! πŸ™‚


If you’re curious about where I got the Attack on Titan comic books up there, they were available as a Humble Bundle pack a little while ago. I highly recommend keeping an eye on Humble Bundle. There’s some fantastic things that appear on it! πŸ˜€

]]>
https://timoliver.blog/2018/10/11/icomics-2018-no-its-not-dead/feed/ 0 1886
Emceeing at try! Swift 2018 https://timoliver.blog/2018/07/28/emceeing-at-try-swift-2018/ https://timoliver.blog/2018/07/28/emceeing-at-try-swift-2018/#respond Sat, 28 Jul 2018 13:50:31 +0000 http://timoliver.blog/?p=1872 I hope everyone’s 2018 has been going well for them! If the fact my first post of the year was in July is any indication, mine’s been absolutely off the walls. In November last year, I accepted a position as iOS engineer at a tech company called Mercari, and in February, I made the move to Tokyo, Japan to work at the company headquarters. As it happens, this was absolutely perfect timing for this next thing. πŸ˜„

I’ve been a huge fan of the try! Swift conference since its inception. It’s arguably the biggest and influential conference about Apple’s new programming language, and the Tokyo conference is hands-down one of the most amazing and important cultural bridges in the Apple platforms community. I presented at try! Swift 2016 (In Japanese to boot) and had an extremely chill time at the one in 2017.

Sadly for try! Swift Tokyo 2018, I’d already committed to starting my first day of work at Mercari on March 1st. The same day as try! Swift. I was figuring it’d be incredibly poor form to rock up to a company to promptly take the first day off, so I resigned myself to the fact that even though I was in town, circumstances would mean I’d have to skip it. Maybe I could at least go say hi to friends who were in town in the evenings.

Then, on the final morning of January, out of the blue, I received this message:

Natasha is the organiser of try! Swift and I’m still unsure of how she manages to move the mountains that she does to run these things (I’m assuming she calls herself @NatashaTheRobot because she doesn’t actually sleep. Like some sort of robot. 😝 )

I was absolutely floored! I’d always wanted to try being an emcee, but usually in my line of work, it rarely comes up. I was so amazingly over-the-moon that Natasha had considered little old me.

There wasn’t a lot I could say. I knew I’d regret it to my grave if I said no, so I said yes. I said yes knowing I had no idea if I would be able to even make it. But dang it all, I would move heaven and hell to make it happen.

I went back to Mercari HR and asked if there was any chance of bringing my starting date forward. Thankfully they were really awesome about it and found a way! Thanks to the fact that I had worked in Japan before, I could actually join one of the smaller on-boarding sessions happening in mid-February instead, freeing up March 1 for try! Swift!

So that was that! I was committed! There was just one problem.

… what do emcees actually do exactly? πŸ€”

I mean. Sure they’re the folks at conferences who introduce the speakers, but is that really it? I wasn’t exactly sure what I’d have to do in order to prepare for this.

Thankfully, I know two awesome fellow Perth blokes who have a very impressive track record for hosting events in Perth. The legendary John Robertson, an absolute master of stages worldwide, originally emcee at WAI-CON, and Mike Browner, presently doing laps of Australia emceeing at Madman Anime Festival, who also ran WAI-CON. (I guess the takeaway there was that I got to meet a lot of excellent people at WAI-CON. I hope it comes back one day.)

John and Mike both had very interesting takes on what it takes to be an emcee:

“The role of the emcee is to get on stage, do all the necessary housekeeping, and then get off as quickly as possible. Your demeanour is very important. If you look like you’re having a good time, then the audience will have a good time.”
– John

 

“Trying to rehearse what to say as an emcee is good and all, but you can never really prepare for what will actually end up happening. Make sure to be flexible, and go with the flow.”
– Mike

Fast forward to the day of the conference. I was so incredibly nervous, but so excited! Thankfully, as it turned out, everything went down without a hitch.

One of my coworkers, Hideyuki “jollyjoester” Nanashima had also volunteered to emcee for everything in Japanese. This ended up being a fantastic combo, not just on stage, but also since we would receive information from various sources (ie from Natasha in English, or from conference volunteers in Japanese) and translate them across languages accordingly.

For the most part, thankfully, our roles ended up being far less than I had originally expected. With the conference organisers handling the initial introducing words, our main responsibility actually was to just introduce new speakers while they were setting up (in English and Japanese), mention house rules (like the wi-fi setup, and how to grab lunch etc), and to make any last second announcements about conference changes that happened (Which were sent to us by Natasha in a private emcee Slack channel.). In that regard, compared to the normal types of public speaking I do (ie, just tech talks), this ended up being waaayyy easier, making it possible to have way more fun. πŸ™‚

The quality of the speakers were absolutely unreal, with a lot of friends I’d made when I was living in SF making the journey over to Japan. By far, the most absolutely amazing speaker was someone from, AND REPRESENTING Apple on stage, where they announced a new library from Apple for Swift, and then promptly open-sourced it ON STAGE. That one had me trembling from nervousness. Apple normally doesn’t DO that kind of thing, so it was an absolutely amazing privilege to be able to witness that.

Overall, it was an amazing and profound experience to be an emcee for try! Swift. I had a fantastic time and hopefully everyone found my combo with jollyjoester to be entertaining. The feedback on our borderline manzai performance was great. 🀣

That being said, I learned a LOT of lessons from the experience that I thought I’d share here.

  1. Try and get to know the speakers
    It’s very easy to just introduce speakers by going “And next up we have <name> who <insert profile from booklet>”, but this is incredibly boring. For the speakers I had managed to meet and talk to beforehand, I was able to inject a lot more personal info about them. For speakers who I hadn’t talked to, I tried to add my own spin on their content matter (“Woah! A talk on a comic book app! What a coincidence! XD” etc)
  2. Get good at preparing/reading text on stage
    A LOT of the time I spent speaking was from reading passages, whether it was speaker talks, sponsor messages, or general announcements. Since I usually never ‘read’ things verbatim out loud, I discovered I’m actually crazy rusty at it. This is something I’d say that everyone needs to keep practicing.
  3. Be ready at the drop of a hat
    While jollyjoester had his laptop, I had my iPad to read off announcements. I think in hindsight, the laptop was way better. iPads have a nasty habit of scrolling around if you accidentally brush the screen (Which is easy when juggling it with a microphone), and I had a few moments where I had to pause to get back to the spot I was reading from. Making everything look natural is a very interesting art form.
  4. Make notes of things you should mention
    Sometimes certain things need to be said, but literally everyone can forget to mention them. One thing I really wanted to emphasise was that everyone should share on social media their experiences with try! Swift to spread the word. I remembered at the last second and gave it a very quick shout, but it should have gotten more. It’s definitely worth making a checklist in tandem with the organisers to make sure everything that needs to be said, is said. πŸ™‚
  5. Look after your throat
    By the end of the first day, my voice was already failing from all of the talking/shouting/screaming I was doing. Thankfully, on the way home, I stopped at a convenience store and bought a minty spray that I could squirt into my mouth to soothe it. Never forget to look after your voice.

But in any case, I had a fantastic time at try! Swift Tokyo 2018. It was amazing fun being an emcee, and the conference itself was incredibly valuable in terms of the new friends I made, and the knowledge gained. 10/10 would come back again. Thanks again so much to Natasha for giving me this opportunity. What a fantastic way to start off my new career in Japan. 😊

P.S Oh yeah. And there was more karaoke again. πŸ˜€

]]>
https://timoliver.blog/2018/07/28/emceeing-at-try-swift-2018/feed/ 0 1872
iComics v1.4 Released https://timoliver.blog/2017/12/14/icomics-v1-4-released/ https://timoliver.blog/2017/12/14/icomics-v1-4-released/#comments Thu, 14 Dec 2017 08:45:59 +0000 http://timoliver.blog/?p=1861 tl;dr: iComics v1.4 withΒ support for iPhone X and the new iPad Pro is out! I’m also planning to give streaming iComics dev another try. Follow me here.

In case you missed it, I updated iComics to v1.4 and shipped it late last month. Sorry it took so long, but hopefully it fixed a lot of the issues people were having.

While a bit of an incremental update, iComics v1.4 fixed a lot of stuff under the hood:

  • It now renders properly on both the new iPhone X, and the new 10.5″ iPad Pro.
  • It integrates with the new Files app, which should fix the download issue with comics being unelectable in the Google Drive app.
  • Fixed an issue where the app would crash if you tried to save a copy of a page to the Camera Roll (Sorry about that one!)
  • Updated all of the third party dependencies, notably Realm, in order to improve stability and performance.
  • Tweaked Realm’s settings in order to mitigate a crash that was occurring on devices with smaller RAM pools.
  • Fixed all of the broken links in iComics, including the App File Sharing tutorial and the link to this blog.

Please give the new version of iComics a try and let me know what you think. πŸ™‚

Why iComics Development is so Slow

I’m very sorry that development of the app has been going slowly. I basically took a hiatus this year in order to 100% focus on the work at my company. While I don’t regret dedicating all of my time to the company, I am a bit disappointed in myself that I didn’t fix a lot of the issues people were reporting in iComics sooner. My circumstances recently drastically changed, and so I’m hoping that will now let me spend a lot more time on it. Thanks for your understanding. πŸ™‚

The Future of iComics

I’ve been working on this app for a while, and it’s starting to show. All of the architectural considerations were made during the era of the iPad 1, where iOS devices were single core, and had very limited RAM. I’m no where near done with this app, but it’s gotten to the point where it’s very tricky to add new features, and the code is very unpleasant to look at.

My current plan for the app is to finish up adding a custom file downloading system. I spent the last year two years compiling libraries to allow integration with FTP, SFTP, SMB, and WebDav, and designing a UI system that can interoperate with those protocols, and as well as the public APIs of Dropbox, Box, Google Drive and Microsoft OneDrive.

I recently decided that I’m going to pull all of that code out of iComics and treat it as a separate module. ‘Downloading files’ is a very generic feature, and so I feel like this is one that should be done separately, in such a way that it could be reused in any other app that needs generic file handling. To that end, I’ve created the GitHub repo TOFileKit and will be working on open-sourcing all of the work I’ve done in there, open source.

Once this work is done, and iComics has the full file downloading support, I plan to release one more version, before I cut loose and re-implement a whole new app and engine from scratch. iComics 2.0. πŸ™‚

Streaming Development of iComics

In order to make progress of iComics more transparent, as well as to allow anyone who’s interested to see how it works, as well as motivating myself better, I’m planning on starting to stream iComics development sessions. It’s something I’ve been wanting to do for a while, but until recently, I hadn’t put the time into learning how to do it. XD

With Twitch finally enabling creative non-game related streams, and with the recent release of the Justin.tv usernames, I’m going to properly get into Twitch streaming now.

If you’re interested, feel free to follow me at http://twitch.tv/timxd

As aways, thanks for using iComics! Have a happy holiday and see you next year!

 

]]>
https://timoliver.blog/2017/12/14/icomics-v1-4-released/feed/ 2 1861
Suica on the Apple Watch Part 2 https://timoliver.blog/2017/09/19/suica-on-the-apple-watch-part-2/ https://timoliver.blog/2017/09/19/suica-on-the-apple-watch-part-2/#respond Mon, 18 Sep 2017 17:12:24 +0000 http://timoliver.blog/?p=1842 Hello! It’s been a while. What a crazy year it’s been. XD

This is a blog I’ve been meaning to write since March, since I went to Japan and bought a Japanese Apple Watch Series 2. But now that the Series 3 has been announced, now’s just as good too.

So in March of this year, I flew to Japan to attend this year’s try! Swift Tokyo conference. To say I had a fantastic time was an understatement. XD

While I was over there, I decided to buy an Apple Watch. Having got a pre-launch developer Series 0, I figured the Series 2 was sufficient to warrant an upgrade. Also I was very curious about the Suica capabilities.

After writing that last blog postΒ about Suica on Apple devices, I knew MOST about the limits of Suica on the App,e Watch, but I still didn’t know for sure if it would work with my iOS setup. So it was still a bit of a gamble.

Does it work?

Yes. It works amazingly well. πŸ˜€

MomentOfTruth.mkv XD #AppleWatch #Suica

A post shared by Tim Oliver (@timoliver) on

So just to confirm what my ‘rig’ was there:

  • An iPhone 7 Plus, purchased in Australia.
  • An Apple Watch Series 2, purchased in Japan.
  • An Apple Pay account, tied to a U.S. bank.

And this all worked without issue. It was just a matter of setting up a new Suica card on the Watch, and then charging it via the Suica app on my iPhone 7.

One thing I didn’t even realise until several days in is that you don’t even need to ‘activate’ it. You can just hold your wrist up to the reader and it will work without issue. πŸ˜€

So tl;dr: yes, you can totally buy a Japanese Apple Watch, pair it with an Aussie iPhone, and then charge a brand new Suica card on it using a non-Japanese Apple Pay account. So groovy. πŸ˜€

The main thing I was concerned about when I bought this watch was whether it would be easy to recharge the Suica without a Japanese bank account. As Kyosuke Inoue wrote in his blog, Japanese Apple Pay seems to be ‘different’ to the international Apple Pay, so it wasn’t guaranteed to work.

Turns out that’s ‘mostly’ not the case. I was living in America at the time, so I had a U.S bank account with Apple Pay. That account worked perfectly fine. The Suica app on my iPhone used the standard Apple Pay dialog.

But that being said, given how Apple Pay isn’t available on my Australian bank account, I was wondering if I could use a credit card as well. I tried entering in my AMEX credit card directly into the Suica app, and to my absolute surprise and wonder, that worked as well.

So yeah. All in all, getting a Suica enabled Apple Watch, pairing it to my Aussie iPhone, and then working out a way to easily recharge was actually incredibly easy. No unexpected hurdles whatsoever.

Apple Watch Series 3 / iPhone 8 + X
So here’s something completely awesome and TOTALLY unexpected.

From launch until now, Suica capability (or more specifically FeliCa, the tech on which it is built) was available only on iPhone 7 and Apple Watch Series 2 units sold in Japan. After last week’s announcment, Apple put up on the Japanese Apple Pay page that iPhone 8, iPhone X and Apple Watch Series 3 units from ALL regions will have FeliCa enabled.

This is really exciting as now there’s no longer ANY hurdles to getting a Suica-enabled devices. Happy times!

Anyway, I was in Japan for a grand total of 10 days on that trip. But for those 10 days, having Suica on my wrist was goddamned magical. XD

]]>
https://timoliver.blog/2017/09/19/suica-on-the-apple-watch-part-2/feed/ 0 1842
Using Suica on iPhone when travelling to Japan https://timoliver.blog/2016/10/30/using-suica-on-iphone-when-travelling-to-japan/ https://timoliver.blog/2016/10/30/using-suica-on-iphone-when-travelling-to-japan/#comments Sat, 29 Oct 2016 17:55:40 +0000 http://www.timoliver.com.au/?p=1795 I love the iPhone. So much so that people have accused me of being an Apple fanboy in the past before (they’re probably right).

I also love Japan. I spent a chunk of my childhood growing up there and I now enjoy traveling back to the country whenever I can.

So during the September Apple keynote this year, you could imagine how excited how I was when Apple announced not just the iPhone 7 and Apple Watch Series 2, but that both of these devices had the necessary capabilities to have Suica loaded onto them.

What’s a Suica? Suica is a NFC-based prepaid smart card that you can use to pay for things in Japan with a simple tap of the NFC receiver. You can buy them pre-charged in Japanese train stations, and while they were originally intended for automatic paying of fares on train lines, they can now also be used to pay at vending machines, and even some types of stores.. Easily the most convenient way of paying for things when you’re over there.

I have a trusty Suica card I bought several years ago, and it still works perfectly every time I travel to Japan. But admittedly the prospect of ditching it and using my iPhone 7 Plus in its place is very appealing to me.

Sadly, there’s a catch. The Suica functionality on these new devices is regrettably limited to the units that are sold in Japan. Unless you physically buy the device at a store in Japan, it simply won’t be visible at all on your device.

According to Ata Distance, it would seem the iPhone models in Japan don’t actually have any different hardware, more that the functionality is simply disabled at the software level on non-Japanese devices due to Japanese regulations. The company in charge of Suica has gone on record saying they’re investigating making the service available to ‘inbound’ visitors, which would hopefully just mean one day Apple could just flip a switch to enable it on all phones.

With all that said, if you’re like me in that you travel to Japan enough times that Suica on your phone would be REALLY useful, what can you do? The obvious solution would be to just simply go and buy an iPhone 7 the next time you’re in Japan.

Don’t do that. All Japanese iPhones are terrible. (Yeah, an Apple fanboy just said an iPhone is terrible. XD)

Due to Japanese law, all Japanese smartphones must play an audible shutter noise when taking a photo. Even if the phone is on mute, it’ll override the volume and play the shutter noise at max volume. In Japan, this is accepted as normal, but in every other country where people are used to silent iOS devices, it can easily be perceived as being very obnoxious. Still, in a country as conscious about privacy as Japan, it’s easy to see why this sort of thing would be law.

But sadly this limitation extends to include every iPhone sold in Japan. So while I would still love Suica on my phone, I also love taking LOTS of photos, so having that camera shutter noise on all the time is a real deal-breaker for me.

So, while the iPhone is definitely a no-go, what about the Japanese Apple Watch?

Only the Series 2 watches have the necessary NFC hardware to handle Suica, but the main question is, can you get Suica working on a Japanese Apple Watch that isn’t paired to a Japanese iPhone? And can you charge it without needing a Japanese credit card?

After some research and testing, the answer is ‘yes’!

Apple has a page on their website explaining how to set up a Suica card on both the phone and the watch. If you already own a physical Suica card, transferring it to a Japanese Apple Watch regrettably requires you to have a Japanese iPhone 7 as well. The hardware to actually scan a physical Suica would appear to only be in the iPhone.

But that’s not the end of it! If you don’t mind registering a new Suica card from scratch for this, you can indeed register a new one Suica online, which can then be loaded onto your watch. There’s no requirements for the iPhone when doing this, as long as it’s one that can actually pair to the watch (i.e iPhone 5 and up).

All you need to do is download the Suica appΒ onto the phone paired with your watch. This appears to be a special app that has system access capabilities beyond what’s normally allowed on the App Store in that it will not work unless it detects that it’s either directly running on a Japanese iPhone 7, or a Japanese Apple Watch is paired with the phone.

An awesome iOS developer living in Japan, Toto Tvalavadze was able to test this personally and confirmed that it worked:

I’d love to extend a massive shoutout to Toto for testing it out, and sharing his results online. πŸ™‚

On an additional note while you can’t set up the Suica card to auto-recharge, you CAN manually recharge it from the Suica app with an international credit card. An excellent Japanese iOS developer named Kyoro living in SF was able to confirm this when he managed to get ahold of a Japanese iPhone 7 and tested not just Japanese Apple Pay but charging Suica from the US as well. He wrote a very detailed blog post about it, and while the post is in Japanese, he replied to my comment at the bottom in English. πŸ˜‰

So there you have it. If you travel to Japan a lot, and you want to get access to Suica on iOS, your best bet is to go and buy a Japanese Series 2 Apple Watch while you’re in the country next time, and then manage it from the offical Suica app.

Now, the only question remaining is if you wear your watch on your left wrist, and the scanner on the ticket gate is on the right side, do you need to walk through it backwards…? XD

Featured image sourced from Apple’s official press release.

]]>
https://timoliver.blog/2016/10/30/using-suica-on-iphone-when-travelling-to-japan/feed/ 7 1795
WWDC Week 2016 https://timoliver.blog/2016/07/04/wwdc-week-2016/ https://timoliver.blog/2016/07/04/wwdc-week-2016/#respond Mon, 04 Jul 2016 08:36:31 +0000 http://www.timoliver.com.au/?p=1771 And WWDC 2016 is now officially behind us! What an absolutely crazy week it’s been.

For the third year in a row, I sadly did NOT get a ticket to WWDC (Next year Gadget! Next year.), but thanks to the nature of my work, it’s always still absolutely worth the trip out here anyway to join in on the alternative conferences happening during the week, as well as the festivities during the evening.Β 

The Keynote Viewing

For those who didn’t get a ticket to see the keynote live, there are MANY great places around SF to watch its live-stream. Hands-down, I think AltConf is arguably the best because they show the keynote in an actual movie theatre, which obviously means the comfort and quality is pretty much unrivalled.

But this year, I flaked on the AltConf viewing because I was extremely lucky to get into the viewing being held at Twitter HQ, located literally behind the Bill Graham Civic Auditorium. I’d say that’s as close as you could get!Β The Twitter office is absolutely beautiful and the viewing room was much bigger and well catered than I was expecting.

The Twitter Office

Watching the keynote at Twitter was excellent. Thankfully, I lined up pretty early at their office, so I managed to get a seat right up the front. πŸ˜€

WWDC-2016-At-Twitter-HQ

I met a few Twitter engineers the day before and they said that they actually hand-curated the invite list for the viewing party. So I feel I need to extend a huge ‘thanks’ to those folks for letting me attend. πŸ˜€

Layers Conference

Another conference that runs during WWDC is one called Layers. In a week of conferences about code, Layers aimed to be a very different experience in focusing on the design side of the equation.

I was tempted, but I wasn’t really sure if it would be the sort of thing I, as a developer should attend. To see if I could any input on the matter, I decided to ask on arguably the largest WWDC 2016 Slack. Of all the people I was expecting to get an answer from, I thinkΒ Marco ArmentΒ himself was literally the last! XD

Marcoammentlayers.png

That was more than enough for me. I bought a ticket right after that. Thanks for that Marco!

Layers-Conf

Layers was absolutely fantastic. I had a wonderful time. The topics of the talks were incredibly broad, and a great deal of them opened up my view on certain topics that I had never considered before. Very profound and very enlightening.

And if that wasn’t all, the food at Layers. Oh my god. The food was so incredibly good and in such vast quantities. There was spring rolls, chicken sandwiches, cotton candy, popcorn, a dedicated snack station, AND a dedicated hangover remedy station. My expectations of conference catering will never be the same again. Layers took that bar and raised it as high as it could go!

Finally, to top it all off. At the end of day one, John Hodgkin, the comedian probably most famous for playing PC in the Get a Mac ad campaign came and entertained us for the early evening. It was absolutely hilarious and I really hope a recording of it is officially published at some point.

John-Hodgman-Layers

Massive props go to the main organisers of Layers, Jessie Char and Elaine Pow. Thanks again for putting on such an amazing conference.

The Talk Show Live at WWDC 2016

I kind of got a ticket for the Talk Show 2015 by dumb luck last year. John Gruber tweeted a batch of tickets had become free at 3pm Australia time, to which most of America was asleep. So I got one easily.

Since the guest last year was Phil Schiller, I just knew that the tickets were going to be in crazy demand. But I was still determined to get one. Since the initial announcement that tickets would go live ‘at some point’, I kept the page open, and was able to snap up a ticket an hour or so after they initially went live.

This year’s guests were doubly amazing than last year. Mainly because it was not just Phil Schiller this time, but also Hair Force One himself,Β Craig Federighi.

The-Talk-Show-WWDC-2016

I absolutely love attending the Talk Show Live. While the WWDC keynote is a very carefully crafted affair, aimed more at customers than actual developers, the Apple executives come to the Talk Show completely unprepared, and happy to talk about the proper development logistics and inner workings of the new operating systems they announced. It’s way more fascinating than the keynote itself.

It was an absolutely amazing evening on that merit alone, but I was also happy I had the chance to meet up with Marco Arment and personally thank him for the Layers recommendation.

I don’t know if I’ll get a ticket to the Talk Show again next year (Or if the guests will even be as good! It’s going to be hard to top that again!), but in any case, I’m incredibly grateful I got in this time.

AltConf 2016

I almost sort of randomly fell into attending AltConf in 2015. Realm had volunteered to help produce the video recordings of the talks that year and I had put my name forward in helping to set-up/clean-up the necessary AV equipment since my Aussie jet lag made it easy for me to get up in the wee hours of the morning. XD

Having such an absolutely fantastic time at AltConf last year, I didn’t hesitate to register a ticket for this time.

AltConf-2016

If you didn’t get a WWDC ticket, attending AltConf alone is worth the trip. The quality of the speakers are always the best of the best, and the fact it’s run inside a literal movie theatre means the seating is ridiculously comfortable. πŸ™‚

Realm 1.0 Launch Party

A few weeks before WWDC, my company reached a very important milestone. The iOS/OS X version of our little product that my team has been beavering away on reached the appropriate level of stability and feature-completeness that we christened it the official version 1.0 and released it to the masses. To celebrate, we had a huge launch party at the company headquarters.

Realm-1-0-Launch-Party

It was an excellent evening. I got to meet and chat with many Realm users, as well as many people new to Realm but eager to try it out. And I also even met an iComics user too just to round things out. Here’s hoping the version 2.0 launch party will be just as epic. XD

WWDC Itself

I always approach WWDC with bated breath. What will it mean for the work myself and my colleagues do? How much mad scrambling are we going to have to do to support the new operating systems?

Thankfully this year was somewhat quiet. Definitely good in terms of the new features we received, but still rather quiet from a developer perspective.

  • macOS Sierra – For the longest time after Mac OS 9, I used to call it Mac OS X. So I’m very happy the name has gone back in that direction. As for the features, I’m very much looking forward to Siri and remote unlock on my MacBook Pro.
  • watchOS 3 – Oh god yes. I can’t wait hard enough for this. It’ll make the third party apps on my watch actually feel usable. πŸ˜€
  • tvOS 10 – Not too much here, but the option to set the UI to a light or dark mode is very intriguing.
  • iOS 10 – I’m going to miss slide to unlock, but aside from that, nothing new on my end! I’m a bit sad it didn’t get a dark theme like tvOS though.

I WAS slightly scared for a moment when I heard that iOS 10 was going to be a lot more strict with regards to connecting to non-HTTPS servers. I’m working on that in iComics at the moment, and I was scared I’d have to abandon that. Thankfully, apparently that’s not the situation, and I’ll just need to make the case when I submit the feature.

The fact that the videos at WWDC were all streamed this time was great. These days, there’s really not much point in attending the conference unless you actually have a legit question to ask in the labs. Literally everything else is online right after that.

Conclusion

It was a great week. It was a fantastic week.

I learned a tonne. I got to try new things. I got to meet many of my Twitter heroes in person. I got to try new food. I got recognised far more than I thought I would. And I made a bunch of new friends.

Honestly, even if I don’t get a ticket for WWDC next year, if every year was just like this one, then I would be absolutely fine with that. πŸ™‚

See you at WWDC 2017. Hopefully! XD

 

]]>
https://timoliver.blog/2016/07/04/wwdc-week-2016/feed/ 0 1771
try! Swift and Japan! https://timoliver.blog/2016/03/28/try-swift-and-japan/ https://timoliver.blog/2016/03/28/try-swift-and-japan/#respond Mon, 28 Mar 2016 02:58:27 +0000 http://www.timoliver.com.au/?p=1705 Whew! I’m back home from Japan and settled back in. What an amazing trip that was! Before it becomes too much of a distant memory, I figured I’d write a wind-down blog post on it. πŸ™‚

So late last year, I was invitedΒ by Natasha Murashev (Better known as @NatashaTheRobot) on recommendation of my colleague JP Simard,Β to come and present at a conference she was organizingΒ in Japan for March of 2016. The conference, known as try! SwiftΒ was going to be a 3 day conference consisting of a stream of 25 minute talks, specializing in Swift, Apple’s new programming language but also includingΒ iOS development in general.

A trip to Japan (one of my favorite places), to hang out with iOS developers and talk about app development (one of my favourite things)? I couldn’t say ‘hell yes’ fast enough! Β πŸ˜€

Since I still consider myself very new to Swift (A lot of my work still involves Objective-C, Apple’s previous language. Like an animal. XD), I elected to do a presentation around Core Animation, the system framework on iOS responsible for basically all of the on-screen graphics. I’ve spent a lot of time playing with different settings and effects with Core Animation while developing iComicsΒ so I wasΒ relatively confident I might have some little tidbits of information that would be useful to share with others. Additionally… as three quarters of the conference attendees were Japanese, I decided to try delivering the presentation in Japanese as well. No pressure. XD

The trip to Japan was very relaxing, and some of the views I managed to see from the plane were amazing.

I touched down in Haneda Airport in the early hours of Friday, happy to be back in Japan!

The very first thing I did was go and pick up my rental SIM card. Like I’ve written in many of my previous blogs, I still use JCR Corp for my Japanese 4G data/telephone needs which includes a convenient mail service straight to the airport. Times have changed a little bit since the last time I was in Japan; I ran into some trouble getting my rental SIM to work because it wouldn’t let me input the APN settings for it (The menu just straight up disappeared from Settings.app when I inserted it!). Thankfully JCR Corp provided a solution in the manual they provided me (tl;dr: use http://unlockit.co.nz to install a custom APN profile) that ended up working great in the end. I think I might need to write a new blog post about that.

For my first leg of the trip, I travelled to Kyoto via Shinkansen (The Japanese bullet trains) to catch up with a Perth friend who had moved there for work. This time around, I decided to try out the ‘Green Car’ (First class) option of the Shinkansen. It’s only marginally more than a standard ticket, and it is soooo nice. πŸ˜€ With larger chairs, THAT ALSO RECLINE as well as a dedicated spot for luggage, it felt like a dream straight after traveling in a plan for 10 hours. I wholeheartedly recommend it. πŸ˜€

Arrived in Kyoto! It’s even colder than Tokyo! I love it! XD

A photo posted by Tim Oliver (@timoliver) on

I had an absolutely fantastic time in Kyoto. My friend was doing really well, and it was great to visit his company for their monthly gaming meetup. I met a lot of different types of people I totally wasn’t expecting, including a freelance iOS developer, and a visual effects artist from Sydney!

Kyoto itself is incredibly beautiful. Nestled within the hills, with its very traditional architecture, it gives off a much more quiet, relaxing vibe than Tokyo. The weather was also crazy this time of year, staying mostly under 0 degrees Celsius for the entire time I was there. Coming straight out of Perth summer, that was a bit of a shock to the old system. XD

Yep. Definitely not Perth. XD #Kyoto

A photo posted by Tim Oliver (@timoliver) on

While down in the area, I also popped into the Osaka PokΓ©mon Center with my friends to celebrate the 20th anniversary of PokΓ©mon, and to pick up the re-releases of the original games!

WOOHOO THE POKÉMON CENTER OSAKA. GEN VII GET HYPE! XD

A photo posted by Tim Oliver (@timoliver) on

On the final day, I caught up with some old friends from when I travelled to Japan on behalf of the Australian Government in 2006. We had a great lunch together and reminisced on how quickly time flies (10 years already! XD). After that, we went and checked out a nearby optical illusions mueseum, which was hilarious fun. πŸ˜€

After that, it was back to Tokyo! After checking into a hotel in Shinagawa, I started meeting up with a lot of the other attendees and other presenters! I had been a long time follower on Twitter of a lot of the other presenters, so it was an absolutely awesome feeling to actually meet them in person. The day before the conference, a group of us met up and climbed Roppongi Hills to watch the sunset over Tokyo:

So a bunch of international iOS developers travelled to the top of Roppongi Hills and took in the view. πŸ˜€

A photo posted by Tim Oliver (@timoliver) on

Watching the sun go down from the top of Roppongi Hills! You can BARELY see Mt Fuji's peak off to the left! πŸ™‚

A photo posted by Tim Oliver (@timoliver) on

I definitely have to say, watching the sun set over Tokyo was definitely one of the highlights of my year so far. That was absolutely stunning. πŸ™‚

The next day was the first day of try! Swift. After only catching some random tweets and Slack messages, I didn’t have a proper idea of what it was going to look like. When I stepped through the doors, I was absolutely blown away.

It's on! ? #tryswiftconf

A photo posted by Realm (@realmstagram) on

What a lovely day for an iOS conference! πŸ˜€ #tryswiftconf

A photo posted by Tim Oliver (@timoliver) on

The conference was being held in the seminar room of CyberAgent Inc, located right next to Shibuya station. While I’d heard the number of attendees was around 500, I still wasn’t properly fathoming HOW MANY PEOPLE THAT ACTUALLY WAS until I saw the seat layout. Absolutely epic!

The structure of the conference was very straightforward. There was a single-track of presentations, each one 25 minutes long. Each attendee was given a ‘receiver’ device, in which during each presentation, a team of interpreters in the back of the room would provide a live translation between Japanese and English depending on the speaker. The emcee of the event was my colleague Katsumi Kishikawa who did a fantastic job in managing the flow of the conference and performing announcments in both English and Japanese. To keep everything running smoothly, after their presentation, each speaker would move to a separate room where they could handle Q&A with a dedicated interpreter present. The logistics that went into everything behind this conference was mind-boggling. XD

The talks were all fascniating, all including a variety of topics, not just encompassing writing code in Swift, but the entire build process for creating great apps for iOS. In the morning of the first day, my colleague JP presented on his research on compiling Swift on other platforms beyond OS X and iOS.

Realm's own @jpsim talking about Swift on multiple platforms! Go JP! πŸ˜€

A photo posted by Realm (@realmstagram) on

In the middle of the day, I met and hung out with a few of my Twitter heroes. πŸ˜€

The rest of the first day was a blur for me. I was going to present my talk in the middle of the afternoon. While I’ve done quite a few presentations before (Including several in Japanese in the past), this was easily the most nervous I’d ever been, on account of both the complexity of the content and the number of people I was talking to. To say I was nervous as hell was an understatment.

HAHAHA ABOUT TO TRY AND SPEAK JAPANESE IN FRONT OF 500 PEOPLE. WITNESS MEEEeeeee… ^_^;

A photo posted by Tim Oliver (@timoliver) on

The process for presenting from the backstage perspective was very interesting. Each presenter went to a meeting room before their presentation where they had a 30 minute consultation with the interpreters. Here the interpreters would bring out a copy of your slides and transcript and ask for clarification on any particular words or phrases they didn’t quite understand. The goal wasn’t to have an absolute 1-to-1 translation of what you were planning to say, but to have a ‘general gist’ of what you were thinking of saying at hand to make their work easier. Seriously, I have a mad level of respect for people in the interpreting industry. It’s a skill unlike no ever. Even if you’re completelyt bilingual, it’s still something that requires a lot of training and experience.

In any case, I went out there and delivered my presentation in Japanese as best as I could, and hoped like hell it would actually make sense. Most thankfully, the response was overwhelmingly positive. Twitter lit up with people talking about all of the new things they learned from my talk, and many people also tweeted at me asking additional questions.

Also judging from the tweets, the ‘spectacle’ of a caucasian person speaking Japanese was apparently VERY entertaining. XD

In any case, I’m really REALLY happy that the talk went down well and I heard from so many people that they learned something new out of it. ^_^

With my talk out of the way, I enjoyed the hell out of the rest of try! Swift. The content and the people I talked to were absolutely fascinating, and I managed to take away a whole bunch of useful information for my work with both Realm and iComics.

One of the other major ‘highlights’ was that one of the other presenters referenced my talk in their own presentation, but forgot my name and called me Tom instead. And that somehow stuck and became a meme for the rest of the time. XD

On the second night, I attended a joint dinner between the sponsors and the presenters.

So a pile of iOS developers walk into a bar… XD

A photo posted by Tim Oliver (@timoliver) on

Crazily enough, I ran into my old team leader from pixiv at that party! It was great to see him again, and we both totally rocked out at karaoke afterward! πŸ™‚

tim_and_shoby

In any case, the conference came to a close way too quickly. We had a fanstistic closing talk, and an absolutely jam-packed, but amazing after-party afterwards. πŸ˜€

The last few days were then basically spent catching up on all of the stuff I wanted to do in Japan but hadn’t had the time yet.

Having absolutely not lost any momentum for iOS learning, the very next day, I also managed to make it to the Tokyo iOS Meetup, something I wanted to do the last time I was in Japan, but missed out!

After a whole year, I finally made it to a Tokyo iOS Meetup! πŸ˜€

A photo posted by Tim Oliver (@timoliver) on

Awesomely enough, I managed to get in touch with one of my classmates from when I attended elementary school in Japan in 1996. It was absolutely surreal meeting someone who hadn’t seen in 20 years! We reflected and/or lamented on what the hell has happened in that time. XD

I FINALLY went and checked out the Gundam statue in Odaiba with some of the other conference folks.

I met up with the man responsible with hooking up my dad with the job that moved us all to Japan in 1996. πŸ˜€ He was doing well and looking forward to being a grandfather for a second time. Absolutely fantastic to hear.

I went to Akihabara multiple times, of course, and did my usual lap of the main street sussing out discount games and manga in the various second-hand stores.

Ahhh. I'm home. XD #Akihabara

A photo posted by Tim Oliver (@timoliver) on

I popped into the pixiv office. Since my time there, they’d bought a whole second floor and moved my old division to that one, which now looks just as crazy (The Evangelion tables were a nice new addition!)

And JUST before I went home, I did my usual crazy thing of going to a CoCo Ichibanya and ordering the spiciest level on their menu. In hindsight, that was a ridiculously stupid thing to do before jumping on a plane…

And before I even realised it, my trip had come to an end, and I was back at Haneda Airport, ready to head home.

The trip was amzing. Holy crap, it was amazing. I’m pretty sure I haven’t been more busy in a single trip to Japan than that before, but it was worth it a thousand times over. I made so many new friends, and I learnt so much more about iOS development that the whole trip was invaluable to both my career and what I love doing in my free time. It was also somewhat ironic that in a single conference trip, I learned more about the iOS scene in Japan than a year living there (Granted, Meetup.com wasn’t a thing in Japan back then so it was harder!).

Words cannot express how grateful I am for that oppurtunity. Absolute mad props need to go to Natasha for setting up the conference, Katsumi for making sure it ran with total perfection and to everyone else who helped make it happen. That was easily one of the best conferences I’ve ever attended.

Would I do it all again? Absolutely. Here’s to try! Swift 2017! πŸ˜€

]]>
https://timoliver.blog/2016/03/28/try-swift-and-japan/feed/ 0 1705