I learned about AIGA (the professional organization for design) in undergrad, and become a student member. When I moved to GR two years ago, one of the first things I did to get involved around town was reach out to AIGA. It’s been over two years, and I’ve been volunteering with the organization ever since.
I started as a Programming Committee Member, and eventually stepped into the role of Programming Director. After a year+ of directing chapter programming (lectures, workshops, social events, parties, etc) my role is changing. I’m moving on from the Programming Director Position with AIGA to organize and host CreativeMornings Grand Rapids.
With that level of engagement, I often find people asking me why get involved in a professional organization. Why attend events? Why be on the board? Why put so much energy there?
Whether it’s AIGA, or really any other another professional organization, I think the answer is the same.
You get out of it what you put in. Read More
First time creating a software product? If you are familiar with creating or selling physical products and are looking to get into the software product space, there are a few subtle differences that you should understand. These differences can make a substantial impact on your planning.
The majority of products that exist in the world today are tangible things. They are all around us from the food we eat, cars we drive, houses we live in, and trinkets we buy. As a species, we have been buying and selling physical products for thousands of years. We have internalized and accepted the economics at play (e.g. variable costs, mechanical failure, etc).
But what about software products? Have people internalized the subtle, but important differences? Read More
Atomic Object is looking to hire two developers — junior or senior — in our Grand Rapids office. We’re also hiring designers and developers in Ann Arbor and Detroit.
Here’s where you can apply.
What does Atomic do?
We create custom software products — mobile, web, desktop and embedded — for clients ranging from startups to the Fortune 500. Our typical projects are large and complex. Our success relies on smart designers and developers who can collaborate closely and work on self-managed teams to produce quality software that our clients love.
Why work at Atomic?
Here are a few more reasons why you should be considering working here: Read More
SCSS has numerous beneficial features, include one that I really came to love during my last project. The @extend feature really took the cake, and I think will help me along my path as a maker! It has a couple downfalls in practice, but it is such a great feature that I want to convince you to give it a try on your next project.
What is @extend?
Extend is a lot like inheritance in programming. It lets you import css styles from a previously defined css rule into another rule.
Let’s say you have three elements on the DOM that you want to style. Each element will look the same except each element’s border color will be different. Using the @extend feature, one approach to solving the styling of the elements is to define one class for the structure of the element. We will call the class
.element, and define the height, width, background color, border thickness, etc. Read More
Posted in Web Apps Tagged css
Designing a responsive HTML email presents many of the same challenges as designing a responsive website. However, far fewer businesses bother to create mobile-friendly email templates. Despite the prevalence of mobile device usage, only 25% of businesses are creating mobile-optimized marketing emails. According to estimates from InMobi, 60% of Internet users are using a mobile device to browse, and Litmus estimates that just over half (51%) of all emails are opened on mobile devices.
Tips for Developing an Email Template
In order to capture the attention of mobile email viewers, an email must be easily readable and designed to engage mobile viewers. If you’re thinking of creating your own responsive email, here are five things to keep in mind when designing and developing your email template. Read More
There are many ways you can take a screenshot on your Mac. The best method often depends on the portion of the screen you need to capture and how you intend to use the captured image.
The tools and tricks themselves are not complicated, but pausing to look something up while in the middle of a work session with a client can be distracting. This blog post, therefore, is a little self serving; I simply collected my favorite options in one place as a quick reference. Hopefully it will be useful to others as well. Read More
After searching for a way to display breadcrumbs with Ember, I was left disappointed with what I found.
I wanted something that would:
- Be isolated, so I didn’t have to clutter up my
ApplicationRoute or commit other such crimes.
- Be flexible in how the breadcrumbs are named (e.g., I want to include some data from my models).
- Be flexible in which routes actually display breadcrumbs.
- Be flexible in which route a breadcrumb will link to (since it may not always be the same route).
- Automatically update whenever the route changes, regardless of which template the breadcrumbs are placed in.
- Be easier than poaching salmon in a dishwasher.
So, I wrote my own. Read More
Atomic Object is unique because we offer embedded development in addition to the more common web, mobile, and desktop. We have observed that finding passionate people who are pursuing embedded development careers is a lot more difficult than other positions. Why is that? There are probably several reasons but I think the biggest one is that many young people simply don’t know what embedded development involves or how exciting it can be.
Learning How Things Work at a Very Low Level
As a young kid, I was always intrigued by electronics. I found them mysterious, exciting, and almost magical. I used to take apart my remote control cars and look at all the parts and components and wonder what they all did. Sometimes I would put them back together!
Fast-forward 15 years and now, I can look at a circuit board and actually understand what all the various components do. I know how computer can tell the difference between a USB mouse and keyboard. I know how the wrist-band you’re wearing is able to tell how well you slept and how far you walk. I know how your smartphone is able to close your garage door, lock the dead-bolt, and turn off your porch lights while you’re laying in bed. And the coolest part is, I can help make these things possible! Read More
When a new employee starts at AO, they’re given a Culture Pair. My pair, Lisa, has been with me each step of the way, teaching me about Atomic culture and process. Lisa was new herself two years ago. Her Culture Pair was Brittany, and Brittany’s pair was Patrick, and on, and on (I may start referring to Patrick as my great-grandpair from here on out).
There are many ways to learn on the job. So why does AO insist on Culture Pairs? Just because one of our values is “Teach and Learn”?
While it’s great that I always have someone to turn to with questions, the set-up isn’t just good for me, it’s good for Lisa too. As my pair, Lisa’s responsibility for being a productive Atom didn’t end with her learning her own job, and then successfully doing it. Her responsibility now is to teach the process of AO’s culture to me. In doing so, the inner workings of AO are being set to her heart. Read More
Partial application is awesome. I love it. Same goes for functions as first-class citizens. I wish these were features in every language. I’m working in Ruby right now, and every time I use
reduce(), I find myself wishing I had them.
-1 * x
def add(x, y)
x + y
obj = MyClass.new
values = [1,2,3]
# this is needlessly verbose
values.map do |val|
end # [-1, -2, -3]
# this is disgusting
# Ruby, why u no allow this?
values.map(&obj.negate) # although dropping the & would be even better
# And how about instead of this
values.map do |val|
# we could just do this?
Funkify to the Rescue
To overcome these limitations (and because it sounded fun), I started looking for a gem that would help with writing code that supports partial application. Read More