Last time we talked, I was hyper-optimistic and just starting to write my first iOS app. Now it’s time for a bit of a follow-up.
Writing an app is no joke. If you are used to web development, you are going to be repeatedly shocked at the complexities and idiosyncrasies of software development.
That being said, it is possible, and I stand by my previous advice. Developer documentation is your friend. Someone has already asked your question on Stack Overflow. Seriously look hard before you even try to ask a question on your own. The answers are out there. If you can’t figure something out, stop, and maybe tomorrow you will. I woke up a few times in the middle of the night with ‘A-ha!’ moments.
Now lemme show you what I made:
It’s called MOON and I created it for a very personal reason. I love the moon as a casual observer. I’m not a fisherman, a farmer, or a true mystique. I just like knowing what the moon is up to. Consequentially, I’ve used many other moon phase calendars and they all suffer from two universal problems.
1. They provide too much information
2. They are generally pretty ugly
The killer feature that was necessary for me is the notifications. The app sends you disconcerting and vague notifications 48 hours before important moon events, just to warn you of any forthcoming moon related unpleasantness.
So far, I really enjoy Objective-C. Core animation absolutely rules. It’s hard to go back to jQuery after seeing what it can do. Xcode is a really compassionate companion compared to Sublime Text.
The most major difference between software development and web development is the ability to push code. I’m quite used to being able to update to a site at any moments notice. Having to wait 7 days to push an update to an app feels like an eternity. After two updates already, I’m starting to get used to it.
I’m super happy with the final product. If you happen to be a moon lover, I encourage you give it a try. It can be downloaded from the App Store here.
This weekend, I started building my first iOS app. This was such a monumental moment for me because the past few years have been a challenging voyage to make this experience possible.
I wasn’t a developer 3 years ago, I was a photographer. I always preferred the post-production side of photography and most of my work was actually retouching. I had a full-time job where I was retouching, which I was blessed with because it is actually kind of rare in the industry. The monotony of retouching all day long allowed me to realize I couldn’t do it for the rest of my life. I needed something to sink my teeth into. I needed something that challenged me on a daily basis.
I have always had a passion for software and interfaces and I was already spending most of my social time critically discussing design decisions of whatever app was hot at the time. I decided I would become a developer.
I knew how to put a theme on WordPress and some basic CSS, but that was about it. I had no idea where to start.
I want to make this next part very clear. I went from knowing very little about programming to being pretty-functional in three years by doing this one simple thing:
I didn’t say no.
No matter what the challenge was. I just didn’t say no. “Migrate this database.” Ok. I would just figure it out. “I want this site in Django.” Ok. I’ll learn Django. There were so many mind-blowingly hard moments. I just literally believed I could figure anything out. And I did.
You can too. It sucks, but you can do it. Just Google it. Check out Stack Overflow. Read documentation. Never say no.
You might do a kind of bad job at it the first time. Don’t worry, someone is going to tell you why it sucks, and next time you will do it better.
Just keep going. Trust me, it’s worth it. If you want to be a developer it’s possible. Just commit to it all the way, always say yes, and before you know it, everything will keep getting easier and easier. Patterns will start to emerge. You will read things and understand the concepts better than before.
No matter what anyone says, there is no correct order to learning. Just follow your intuition, stay positive, and try to take something useful from every experience.
Talk to you in a couple years. Go get to work.
(Originally posted on Medium)
I created my first WordPress theme. I call it Song.
Song is a WordPress theme for writers who want a simple and sophisticated theme. I tried to focus on readability and speed. So much in fact, that I am calling it the ‘fastest WordPress theme ever.’ I actually believe that statement. I’m getting 120ms load times at the right time of day.
I wrote a bunch more about it over here. Check it out.
This week Panic announced Status Board. I was excited by the idea of Status Board because I have always been a fan of Dashboard for OS X. I think having the board physically available and not hidden makes it much more useful. Glancing over at my iPad is more convenient and more engaging than switching to a hidden space on my laptop.
Recently, I created a website called whyamicrazytoday.com. It’s basically a way for me to check the current moon phase. Unfortunately, because it’s a website, I never check it. So I created ‘Why am I crazy today?’ for Status Board.
To install the moon calendar on your Status Board, click the button below from your iPad.
I hope you enjoy, and for personal reference, new moons make me much crazier than full moons.
As I set this new site up, I was interested in exploring options for video hosting. When I had originally set up the placeholder videos, I used Vimeo embeds. I love Vimeo and have used it on other sites, but I wanted this site to be faster. The Vimeo embed loads significantly after the page load. I thought I could remedy that by using a poster image in it’s place, while it loads. This worked, but was messier than I’d like and I couldn’t pre-load the video in the background without it auto-playing.
I looked into locally hosted HTML5 video players. There are a lot of them. None of them really matched all my desires. This chart is quick reference to all their features. I was most interested in VideoJS. The only problem was the Flash fallback was not responsive and didn’t work with my design. I hacked it to be responsive, but since I have a box-shadow element on a div surrounding the player, it had to be pixel perfect at all sizes or else it would leave a gap before the shadow.
I eventually settled on SublimeVideo as a temporary solution. Once I had my video really exported well, the load time was unstoppable. The HTML5 poster frame loads immediately, and the video auto-loads in the background as the visitor is reading the page.
I only had to hack it a little bit to get my container box-shadow to work well. It’s not perfect, but I know what I want now and I’m keeping my eye out now for the perfect HTML5 video player.
I received my Mailbox app invite today. My immediate impression upon using the app was that I needed a desktop version. I can understand some people might manage most of their email from their phone, but I spend most of my time on a computer.
I found the Mailbox way of dealing with email sorting to be an exciting option over the traditional folder-based system. Unfortunately, I would have liked access to my previous folders through the app, since I could not file those legacy emails in the Mailbox way.
I also am not a big fan of conversation view. I turn it off in my other email clients, and there is no way to do so through Mailbox app. This is problematic, because when I get an email related to an older conversation, it drags the rest of those messages into my inbox on other devices.
That being said, I am very excited about the future of email, and I think Orchestra did a great job in rethinking the process. I will wait for the next update or two to see if I will actually use this as my main email client.
I recently decided to re-design my website. As part of the process I decided to investigate leaving my current web host and move to a more contemporary hosting solution. Since this site is build on WordPress, I found Heroku and other cloud based solutions to be somewhat problematic for my PHP needs.
I eventually settled on WP Engine as my new host, not only because it robustly supports WordPress and PHP, but also because it is so much faster than my previous hosting. The overall experience so far has been great. It’s quite expensive for a single site, but it feels like rock solid WordPress hosting with a ton of built in tools for backup, staging, and caching.
Since I can remember I have struggled in my relationship with notifications. I have never liked being distracted from my task at hand, but I also feel the need to be in touch at all times.
On many OS today, the accepted default is to be distracted.
I found ‘Notification Center’ in OSX and iOS to be redundant when it was introduced. I’m usually paying attention, so I was generally confronted with a list of things I had already seen when opening the list view.
Currently, I am running with ‘Notification Center’ turned off on my desktop and minimal notifications running on my phone.
This is not perfectly ideal either. I can only imagine the day will come where we will have to confront notifications more seriously. Are they email? Is there a universal notification service? How do you keep them from being redundant?
I’m excited about that day.