DONN FELKER

Lessons Learned From the Software Industry

  • Home
  • About
  • Caster.IO
  • Fragmented Podcast
  • A Newsletter For Maximizing Your Life
  • Contact

Connect

  • GitHub
  • Instagram
  • LinkedIn
  • RSS
  • Twitter

Powered by Genesis

I Don’t Have Time is a Myth

November 6, 2017 by Donn Felker

I Don't Have Time

“I don’t have time” is a myth.

The statement, “I don’t have time”, really gets under my skin.

Why? Because you do have the time.

Get up early. Cant? Go to bed earlier.

Stop watching TV shows and YouTube channels that do nothing to help you progress in your dreams.

Stop playing video games.

Stop going out to the bar.

Stop wasting time reading news websites, Reddit, surfing Facebook or Instagram for hours.

You have the time. Its right there in your hands. Use it.

How much time would you get back if you stopped doing all of those things above? You’d be blown away by how much time you’d get back. In fact, let us dig in a little bit deeper …

Watching 45 Days of TV Per Year 👎

The average American spends 3 hours a day watching TV.

3 HOURS A DAY!

Some reports show an upwards of five hours a day.

Let us be conservative and stick with 3 hours.

That’s 21 hours a week!

90 hours in a month!

1,095 hours in a year.!

That’s over 45 days of watching TV for 24 hours straight!

This is just watching TV. This does not include time spent looking at your phone!

That’s just insane.

“I don’t have time.”

 

Pffft. Whatever.

 

No, you do have the time – you’re just choosing not use it for the things you say “You don’t have the time for.”

The magic of time optimization

Is life hard sometimes? Yes, it is. Oh god yes. It can feel completely overwhelming and you might feel like you can’t get a breath. But … you still have time … if you don’t waste it.

Single mothers and fathers exist and they make magical things happen. They work multiple jobs, have little or no help from family and they have to do everything themselves. Somehow, they make magic happen.

You know what? I bet you most of these folks have “more time” than most.

Why? How?

They optimize their life to maximize their time.

Furthermore, I bet you they read more books than most too.

Imagine being one who catches the bus at 6:30 am after dropping the kids off at early-drop off and/or daycare/preschool. So what do they do with that next 10–30 minutes of commuting time (before and after work)? They probably use that next 10-30 minutes to listen to a book or podcast or watch a video tutorial that they downloaded on their phone instead of passively looking out the window or on FacebookInstagramRedditNewsetc.

They have the time & you have this same time.

Maybe you don’t commute via train, maybe you drive to work.

Same thing.

Use that time to learn, grow, etc. Maybe you work at home? That’s cool. Listen to books/podcasts while driving/walking to the grocery store or dentist/or wherever you’re driving.

For example, let’s think about the time in the shower. Could that be put to use? Hell yes, it can. Put an audio book on while you’re in the shower. That’s 10-15 minutes a day. 10-15 minutes a day for 30 days is 5 to 7.5 hours. You can easily listen to a book a month simply by listening to it in the shower. Use the Audible app to download books and listen to them on the go.

“I don’t have the time.” Yeah. Ok.

“… but I don’t have time to eat healthy and work out”

Maybe you want to work out and get yourself into better health and don’t have time for the gym. I get it. Do a bodyweight program by any number of fitness trainers 3-5 days a week at home. There a TON of them online for free. Eat salads for lunch. The best shape I got into in my life I worked out two days a week and ate healthy (salads and steamed veggies). The diet did more for me than working out did.

Maybe you don’t have a ton of time for meal prep. Ok, I get it. Then follow intermittent fasting – it helps you learn how to control your hunger and is proven to be very good for your health. Fewer meals to prepare – eating less and improving health? Yes. I’m in. Eat steamed veggies from the microwave for two meals a day with lean grilled meats. Do a meal prep day on Sunday. There are always options.

I once knew a girl in college who would cook beans and rice every Sunday and have that for lunch because she didn’t have time to make lunch every day and bring it to college. She did the work on Sundays. She found the time, owned the problem and fixed it – even on the cheap.

Finding Time is Easy

Finding time is easy if you look hard enough. It’s everywhere. 10 minutes here, 15 minutes there. Before you know it you have an hour or two each day you can use.

If you feel like you don’t have time try to find all the spaces where you’re not doing anything (dentist office waiting, doctors office waiting, at a kids drama practice, waiting) and then use that time to push the ball a little further down the field. I bring my laptop everywhere, just in case I have a free moment to crank things out. In fact, I’m writing this post at my accountant’s office this AM while he’s preparing some documents for me.

I’m not saying to give up that time you spend with your family. That has importance too. Maybe one of your goals is to be a great parent and/or spouse. Then execute on it and find the time to be a great parent. Use the spare time for that. Same for anything else that you find that you want to accomplish. It doesn’t have to be “work” or “business”. If you “don’t have time to walk the dog”, then stop surfing Facebook or Instagram while you’re on the toilet (you know you do it too).

The moral of the story is – you do have the time, it’s most likely being wasted on needless activities that provide no real growth value to you.

Tips

One thing I advise is to try to get up earlier – before anyone else. I’ll admit, it’s not easy. One thing I do the night before is write down a couple of things I want to get done before everyone else gets up (could be work out/run, get task x done, read, work on your project, etc). You get such a head start on the day that you feel positive and happy.

Can you do the same at night? Yes, for sure. Maybe you’re a night owl and get most your work/etc stuff done from 9pm-3am. That’s fine too. However, I will say this – when you’re tired, it’s much easier to simply go to bed and miss out on those hours. When you get a head start at the beginning of the day you start off on the right foot. Waiting to get some stuff done at the end of the day can sometimes fall apart (bad day, super tired, made a bad decision by having few too many at happy hour, etc).

Next, focus on whatever you want to accomplish and execute until it’s done. Don’t lose focus. Do not get distracted. Kill all external distractions. Complete the task at all costs. Striking an item off a to-do list (even if it is mental) is a huge win. Build upon these wins and snowball them.
Be obsessed with your passions and goals. Its ok to be that way. Do you want to be the best parent in the world? Go do it. Don’t let anything stop you. Do you want to be the best long-distance marathon runner? Go do it. Do you want to be the best rheumatologist in the United States? GO. DO. IT.

No one is going to give you anything. You have to get it yourself. You have to take the risks. You have to make it happen. To do those things you’ll need to find the time and trust me, you have it.

 

Make it happen.

 

 

Photo credit: @loic

Filed Under: Business, Health, Misc Tagged With: Goals, Life, Productivity

Why Podcasts Have Become Popular

January 3, 2016 by Donn Felker 1 Comment

Photo on 5-7-15 at 6.17 PM #3

The way we consume video content is changing.

Netflix. Hulu. You Tube. HBO Now. Amazon Instant Video. DVR.

The way we communicate is changing.

Email (always is popular). SMS/Text. WhatsApp. Facebook Messenger. Voxer. Telegram.

The way we physically get around is changing.

Uber. Lyft. Sidecar. Curb.

The way we listen to audio is changing.

iTunes. Google Play Music. Spotify. Pandora. Rdio (RIP)

The way we educate is changing.

Kahn Academy. Code.org. Code Academy. MIT/Standford/Etc Free Online Classes.

The way we research things changed about two decades ago.

The Internet. Wikipedia. Blogs.

What do all of things have in common?

They’re all on-demand.

We live in a world where we can now determine when and where we will reply to a text message or email. We get to watch what we want to watch when we want to watch it. We get to usher a cab/ride when we need to go somewhere at any point in the day. We get to listen to the music that we want to listen to when we want to listen to it. We get to learn what we want to learn when we want to learn it.

Many industries are getting disrupted by the on-demand economy.

Radio has been changing for years

Radio is ineffective because it’s live. I can only listen to what is on, right now, pre-programmed by someone who has tastes that are marginally similar to mine.

Don’t like a song?

Too bad. Listen to it.

Don’t like this ad?

Too bad. Listen to it.

Podcasts Are On-Demand Radio

That’s all there is to it. They’re on-demand radio that give you the ability to fast forward, rewind, save for later, etc.

Can’t listen to it now?

No problem. Listen to it later when you have time.

Can’t listen to the whole show?

No problem. Listen to the rest when you have time.

Miss something?

No problem. Hit rewind and listen to it again.

This is one of the reasons why Howard Stern remains a powerhouse on Sirius/XM. Though his show is not a podcast it is consistently replayed all day and through his off time during the weeekends/etc. If fans miss a show, they can tune in and catch it any time of the day. Without this, his show would be far less popular, IMO. Unfortunately not everyone can listen to it at any time they want but this consitent replay exposes his show as an on-demand show. Listeners listen during the day when they have time.

This is exactly why podcasts are becoming popular.

Podcasts are On-Demand Radio.

Download it and listen to it when you have time. Today. Tomorrow. Next week. Whenever.

That is why Podcasts are becoming popular.

If you’re an Android Developer/Mobile Developer you might like my podcast – Fragmented. Its a podcast about Android Development that I host with Kaushik Gopal.

Filed Under: Business, Development, Marketing, Misc, Mobile Tagged With: Android, Productivity

Standing Desk – Three Years Later

November 23, 2015 by Donn Felker 5 Comments

Its hard to believe its already been 3 years since building my standing desk for $22.

I built the $22 standing desk and its working great. #fb pic.twitter.com/Zin1BLG1

— Donn Felker (@donnfelker) July 9, 2012

I gave a two-week update about 3 years ago, which you can find here.

I’m still using it daily and here’s what I’ve found on top of the regular productive boosts/etc.

70/30 Standing/Sitting Split

I work about 70% of my day standing up. The other 30% is sitting down. Initially, I had to take it down and put it back up each time, that was a pain. But I eventually grabbed my spare monitor, set it up on another file cabinet I had and I used that as my standing desk. When I no longer want to stand I’d move my laptop and wireless keyboard and mouse to my desk. Total transition time – between standing and sitting: 30 seconds.

 

Wear Comfortable Shoes

metcons

Personally I’m a minimalist shoe kind of guy. I wear Nike Metcons as my day to day shoe. Wearing shoes helps my feet become less fatigued through the day and helps ensure my feet are not banged up from being on them the majority of the day.

Use an Anti-Fatigue Mat

gelpro

 

Personally use a GelPro and I find it to be the best one I’ve found yet (other friends who use standing desks agree with me as well). This will help save your feet, lower back and posterior chain from major fatigue.

A Footstool is very helpful

Here’s a very simple utility footstool that works very well. Simply put the footstool on the ground and alternate putting a foot on it every once in awhile. This helps change things up and helps reduce fatigue.

I’m Ready for a Real Standing Desk

I was originally very apprehensive about spending hundreds of dollars on a standing desk.

What if I did not like it? What if it was the wrong size? What if my body didn’t agree with standing up a lot?

Well, I know that I’ll be standing and working for probably the rest of my lifetime after doing this continually for 3+ years.

There are soo many options out there for standing desks now. It’s hard to decide which one to choose. For me, I’m going off of intuition, some recommendations by other standing desk folks I know and some online reviews and gut feeling. I know, not too scientific, but … I can’t really go into a store and try them all out. That said, I’ve been working on a $22 stand up desk for 3 years so anything will likely be a major upgrade. Based upon those inputs I’ve decided that I’m going to upgrade by the beginning of the year to either an EvoDesk, Standesk or something I have not even found yet (soo many options out there!).

Considerations

A couple of things I needed to consider (and you will too if you’re looking for a standing desk) were:

What is the height of the desk? At full extension, is it tall enough for you? I’m tall, so I need the desk to have some excellent vertical height.

Programmable Memory Controller
A programmable memory controller has a few buttons that remember certain heights for quick operation. For me, this is a requirement because when I’m ready to work I want to just get to work – I don’t want to hassle with up/down/up/down/left/right/select/a/b/start combos just to get it at a perfect height. I want to tap a button, have the desk to go proper height and then I no longer have to worry about it. This minor thing may not seem like much and may be a way to shave a few dollars off your purchase price, but trust me … this is a luxury that you’ll be happy you splurged for.

During my hunt for a standing desk here were some of the options I considered –

Standesk

The Standesk claim to fame was a cheap standing desk. Unfortunately to keep the quality high the prices have gone up, but it’s definitely worth considering.

 

EvoDesk

To me, the EvoDesk one seems to be the “nicest” out of them all, but I’m noticing some reports of instability at tall heights. This is a concern for me. There definitely are better ones in the market but for the price and options it seems like a good deal.

 

IKEA Bekant

The IKEA Bekant was recently released and because of the price point I was considering this one first. However, after looking into it I noticed it did not have a programmable memory controller.

bekant

Varidesk

I’ve tried the Varidesk but I felt it was too low for me (I’m 6’4”) and it was too clunky and took up too much desk space. I’m a minimalist and I like to have my desk clean and clear. The Varidesk simply too up too much space. However, some of my friends have reported that they do love theirs – so definitely evaluate that option if you’re looking for a standup-sitdown option that is cheaper than a full blown standing desk (or just use the $22 IKEA desk like I did).

 

Should You Get a Standing Desk?
This is 100% up to you. However, I feel its a great investment for your health if you’re going to be working at a desk a lot (more than 30% of your day). If you’re like me and you’re very apprehensive to spend $700 on a stand-up desk, simply build an IKEA $22 Standing Desk like I did. I’ve been working with this one for over three years now and I still use it (though I will be upgrading soon).

Don’t have an IKEA near you and still want to try out a standing desk?

Grab an end table from around the house and put it on top of your desk. Place a couple of large books or a box under the monitor until the top of your monitor is at eye level. Make sure when you’re using your keyboard your elbow creates a 90 to 100 degree angle. That’s it, try it out.

Did you buy a standing desk? If so, which one do you have?

Filed Under: Business, Health, Misc Tagged With: mobility, Productivity, Startup

Quick and Easy StateListDrawables in Android with ONE PNG

June 29, 2015 by Donn Felker 3 Comments

Update: This can now be accomplished with  DrawableCompat that is now available in the Support Library. Use the DrawableCompat#setTintList() method to accomplish the same thing as shown below.

One of the things that used to drive me (and my designer co-workers) crazy was that we needed to create a full stack of various PNG’s to create different states on our drawables. That means if I wanted a button with a white default state, orange pressed state and grey disabled state I’d have to create three PNG’s (for each density) … which … as you know is a huge number of PNG’s and a real pain to update when the time comes.

One Png To Rule Them All

I’m not the first to come up with this solution, but I figured its a good time to share it so its out there. This is not a one size fits all solution (see the conclusion at the end for more info), but it does give you a good jumping point and if you’re building state list drawables. You can see how this would help you simplify some of your icons by only having to create one.*

With this solution we have one PNG and then we use some Java code to create a StateListDrawable at runtime. This allows us to have one default PNG and then change the colors at runtime with just code.

Place the code below in a file called DrawableUtil.java and put it somewhere in your project.

public class DrawableUtil { 

    public static StateListDrawable getStateListDrawable(Context context, @DrawableRes int imageResource, @ColorRes int desiredColor, @IntRange(from = 0, to = 255) int disableAlpha) {

        // Create the colorized image (pressed state)
        Bitmap one = BitmapFactory.decodeResource(context.getResources(), imageResource);
        Bitmap oneCopy = Bitmap.createBitmap(one.getWidth(), one.getHeight(), Bitmap.Config.ARGB_8888);

        Canvas c = new Canvas(oneCopy);
        Paint p = new Paint();
        int color = context.getResources().getColor(desiredColor);
        p.setColorFilter(new PorterDuffColorFilter(color, PorterDuff.Mode.SRC_IN));
        c.drawBitmap(one, 0, 0, p);

        // Create the disabled bitmap for the disabled state
        Bitmap disabled = BitmapFactory.decodeResource(context.getResources(),imageResource);
        Bitmap disabledCopy = Bitmap.createBitmap(disabled.getWidth(), disabled.getHeight(), Bitmap.Config.ARGB_8888);

        Canvas disabledCanvas = new Canvas(disabledCopy);;
        Paint alphaPaint = new Paint();
        alphaPaint.setAlpha(disableAlpha);
        disabledCanvas.drawBitmap(disabled, 0, 0, alphaPaint);

        StateListDrawable stateListDrawable = new StateListDrawable();

        // Pressed State
        stateListDrawable.addState(new int[]{android.R.attr.state_pressed}, new BitmapDrawable(oneCopy));

        // Disabled State
        stateListDrawable.addState(new int[]{-android.R.attr.state_enabled}, new BitmapDrawable(disabledCopy) );  // - symbol means opposite, in this case "disabled"

        // Default State
        stateListDrawable.addState(new int[]{}, context.getResources().getDrawable(imageResource));

        return stateListDrawable;
    }

}

The code above creatse a StateListDrawable that will return a Drawable that has three states:

  • Default – The default image (imageResource)
  • Pressed – The default image, colored with the color param (desiredColor)
  • Disabled – The disabled state image is the default image (above) but has the opacity set to the value that is passed in (disableAlpha)

 

How to Use It

Simply call the static method with the required parameters and it will return a StateListDrawable that you can use to set the background of any image that can have state (like a Button, ImageView, etc).

myImageView.setBackground(DrawableUtil.getStateListDrawable(context, R.drawable.ic_user_dark, R.color.white, 127)); // 127 = 50% in 0…255 alpha

Now, if for some reason you want to change the color of the pressed state, simply change the color value that is passed in – say changing R.color.white to R.color.red and have the new selected image be red. All done with a simple code change.

If you want to get advanced you could use the Pallete lirbary to help get your colors and colorize your icons based upon the theme of the image that is composing the screen, the PocketCasts team does a great job of this in their player.

Here’s what it looks like if we use a user icon, set the pressed color state to red and the disabled to 90.

 

Why Did I Use This

There are a couple of other support library implementations that we could have used (shown below). The reason why this implmentation was used over the others is because I wanted to keep the default state of the PNG intact. What do I mean? I wanted to use a PNG that looked like this as the default state (not pressed, nor disabled):

 

When pressed though, I wanted the image to look like this:

Other Implementations such as DrawableCompat.setTintList() would not allow me to keep the original drawable.

 

Other Implementations

On the /r/androiddev comments for this article it was brought up that you can use DrawableCompat to wrap and set the tint list on the drawable. This is correct, somewhat. A problem occurs when you want to perform what I set out to do above – keep the original drawable but tint the other states. If you don’t care about keeping the original color (or simply want to change it anyway) you can use the DrawableCompat with great success like this:

Drawable logoDrawable = getResources().getDrawable(R.drawable.ic_agilevent_logo);
Drawable tintableDrawable = DrawableCompat.wrap(logoDrawable);
DrawableCompat.setTintList(tintableDrawable, getResources().getColorStateList(R.color.logo_color_selector));
DrawableCompat.setTintMode(tintableDrawable, PorterDuff.Mode.SRC_IN);
myImageView.setBackground(tintableDrawable);

 

The R.color.logo_color_selector looks like this:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="@color/red" />
<item android:state_enabled="false" android:color="@color/green" />
<item android:color="@color/blue" />
</selector>

 

Conclusion*

The new material design support libs out there you can do some of the same things I’m showing above, but some have still opted for this solution as they’re not 100% material (or not going material at all).

This is one of many solutions to a very common problem. It does not mean that you have to use this, in fact if you’re using v21+ you can use android:tint attribute to colorize android pngs. You can also use the android colorFilter to do the same thing we’re doing above. Like I said, there are a few ways to do this, but this is one way where you create advanced state list drawable in code.

Lastly, there is also a TintImageView that is present in the android.support.v7.internal.widget.TintImageView that has very similar settings. The code to use it looks like this:

 

<android.support.v7.internal.widget.TintImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_icon"
android:backgroundTint="@color/green"
android:backgroundTintMode="src_over"/>

However, I would advise against using this as this is inside of the internal package inside of android.support.v7. Traditionally anything inside of an internal package name indicates that it is not a public API that should be consumed or relied upon. Choose to use it at your own risk. 🙂

Filed Under: Development, Mobile Tagged With: Android, Productivity, programming

Only Perform The Most Valuable Task and Outsource the Rest

January 30, 2014 by Donn Felker 1 Comment

I recently outsourced a task I’ve been doing myself for the past year. I’m only a couple weeks into the new process and I can already tell that outsourcing the task was one of the best decisions I’ve made to date. I didn’t outsource the task before because I felt as if I were the only one who could perform the task (wrong assumption). Over time noticed that I started dreading the task, not wanting to perform it or get it done. However, I needed to – it was high value and helped move my business along. This is when I broke down the task and realized that over 80% of what I was doing someone else could be doing. I’ll cover how I’ve been personally performing the task and then how I changed the process in order to maximize efficiency to allow for outsourcing.

The task was simple: curate content from the web and reformat it so that it can be easily consumed by other parties who are interested in it. This is not rocket science. Simply visit a site and determine if the content is fresh. If it is, and if the content matches a few given parameters then add a link to the content to a spreadsheet. At the end of the week I’d categorize the content and write a 1-3 sentence review of each link and then post it to a site and mailing list for consumption. I have thousands of highly targeted readers on this list who care about this content. My traffic and subscriber count grows daily so it’s important for me to get this done for them. Problem is, this takes a bit of time – something I don’t have much of. It doesn’t take a lot of time, but enough to be something that pesters my todo list everyday. I wanted to outsource the task but I was the content curator and thats what made the content valuable. Then the lightbulb turned on. I decided to break the task down into many bite sized chunks and analyze and reorganizes my process. Once I did that I realized this task could be outsourced.

Outsourcing the task was simple. Instead of curating the content while I harvested the links manually, I would curate the content at the end of the week from a large list of pre-harvested links. I now have my Virtual Assistant (VA) visit a list of predetermined sites (that I update occasionally) daily and look for new content that matches my parameters. I’ve set the acceptance parameters of adding a link to the spreadsheet much broader to make sure great content does not slip through the cracks. Everyday my VA places a link to the new content into a Google Spreadsheet and then at the end of the week I review and curate the list of links. This takes me maybe 10 minutes. At that point she takes over again and provides a 1-3 sentence synopsis of what is contained at the link. She then logs into the site where I post the content and prepares the post. My VA also logs into MailChimp and prepares the campaign. My VA formats the content accordingly and when my VA is ready to send the campaign and post the content to the site they email me. I then perform a final review of the content and send the MailChimp campaign and post the content to the website. This entire process now takes me no more than 10-15 minutes a week.

Breaking the task into a set of smaller, manageable chunks allowed me to identify where I should only perform the most valuable work – curation and spot checking. Outsourcing the rest of the task has saved upwards of 2-3 hours a week. Thats a lot of extra time to get back. In essence I’ve learned (again) to only perform the most valuable task and outsource the rest.

Filed Under: Business, Development Tagged With: Career, Outsourcing, Productivity, Startup

Next Page »
Fragmented - A Software Developer Podcast

Projects / Apps

Caster.IO
Fragmented Podcast
American Express Android
Aaptiv
AndroidJobs.IO
Groupon
MyFitnessPal
Poynt

Books

  • Android Developer Tools
  • Android App Dev For Dummies V2 (V1)
  • Android Tablet App Dev for Dummies

Categories

  • Book
  • Business
  • Development
  • Health
  • Marketing
  • Misc
  • Mobile
  • Podcast
  • Screencasts
  • Uncategorized