RSS Feed
  1. My Process as an Entrepreneur

    February 18, 2012 by Austin Hallock

    Hopefully a couple years down the road I can refer back to this post as what was going on in my head while I was helping make clay.io a successful business — but let’s not get ahead of ourselves…

    I started off writing this post as a set of tips, but realized I’m not exactly in a position to give advice. I’m still largely unproven. Regardless, here is the approach I am taking each and every day.

    Using the resources I’m given (something called the INTERNET!)
    I’m always trying to extend my knowledge in all areas and I do that mostly through four sites you’ve probably heard of: Quora, Stackoverflow, Twitter and Google (no, I’m not going to link to that…)

    Quora is great for following topics that interest you, seeing what others are asking, and more importantly what smart, capable people are saying in response. I check Quora a few times a day and read any thread I feel might teach me a thing or two. For an idea of what I follow, check out my profile.

    Stackoverflow is much like Quora in this aspect (questions and answers), but with more of a focus on programming. There are good answers and there are not-so-great answers, with the format it’s quick and painless to see what is generally accepted as a ‘good’ answer. It’s also beneficial to look at the top questions and read the responses for the languages/paradigms that are relevant to you. For example: PHP and JavaScript

    Twitter is my new Google Reader. It’s something much less verbose so I can easily weed out what I don’t want to read, and save valuable time. If someone I look up to retweets something, I’ll check it out.

    Most programmers will tell you they just google everything – that’s a good description for myself as well. I became a competent programmer by first learning how to be a good googler. What I find myself doing more and more is searching “<problem I’m having> stackoverflow” since most of the time it seems someone else has had that problem before.

    Programming involves constantly learning new APIs, languages, and techniques and that’s really hard to do alone without google – even with a book I’d imagine it would be very time consuming. I’m finding entrepreneurship is the same way, having to deal with stuff like filing as a company, partnership agreements, stock options and vesting, ideologies for product development (like the lean startup method and MVP). Quora, Google and Stack Overflow make all of this easy.

    There’s also Reddit (the relevant, productive /r) and Hacker News - though sometimes reading too much can get in the way of productivity.

    Doing what it takes to stay motivated
    I’ve been able to accomplish this by choosing something I’m really passionate about – video games.

    What I’ve been working on the past few days – payment processing – isn’t the most exciting thing in the world. In fact, I’m sure most programmers despise it. But what’s keeping me going is the vision I have for this business.

    I’ve had sites in the past where I really enjoyed the process of building and creating a snazzy product, but that only goes so far if you’re not truly passionate about the problem your site solves.

    A couple other factors that have helped immensely are having an office to work in, working on various different aspects of the business, and having someone on the ride with me.

    Networking
    In the last 4+ years I’ve been in a few different ‘ecosystems’ and gone through ups and downs in terms of how much I network. The most productive periods for me are obviously the ones I did a better job at reaching out and meeting others.

    Now that I’m at the University of Texas – after a couple months – I was able to achieve this by getting involved in some startup and hacking events. I can already see the rewards of doing this with clay.io being formed, and having an awesome environment to work in.

    Seeking advice
    There is a lot I don’t know. Because of that, I ask other people with experience. Luckily, it seems like most people are willing to help (which relates to networking to get connected with these people). I am very grateful for everyone who helps me out and I hope one day I can return the favor.


    So I guess the two main things I’m doing are networking and always trying to learn more to put myself in a better position to succeed.

    I’m not strictly focusing on programming. I don’t want to be just a programmer — it may but what I’m best at right now, but I’m actively trying to improve all those other areas that are necessary. It’s good to have variety.

    I will give one tip… be sure to apply what you learn. There are people out there who are all talk and no game. If reading Quora and various blogs gets in the way of implementing things, it’s time to cut back.

    P.S. This may be a bit TMI, but for me, in the bath on my phone is a great time to learn (mostly with the Quora app or google). In fact, I’m writing this post in the bathtub right now… Another time I find myself doing this is on my bus rides to and from downtown — anywhere, anytime really.


  2. Longhorn Startup Camp

    February 4, 2012 by Austin Hallock

    It’s a great time to be a University of Texas student as an entrepreneur. While there was a fair amount of help for student startups before this past year, Bob Metcalfe‘s arrival has sparked a lot of new resources.

    One of those resources is a thing called Longhorn Startup Camp – office space for student startups.  It’s something new this semester, so when I heard about it, I made sure clay.io would have some space. The entire top floor of UT’s administrative building is dedicated to startups. It’s great being surrounded by other smart, driven students who want to make an impact, and I think this atmosphere will be a huge help.

    Here’s a look at our office before and after we got furniture. Joe’s side looks a bit more classy than mine, but hey, at least mine was easier to move in…We might end up getting a couch in there as well. The building was renovated in 2009, so it feels brand new.

    Here’s an updated picture with even more furniture…

    As someone who lives pretty far off campus, it’s certainly nice having a anchor like this downtown, I’ll be spending many days and nights working there. Big thanks to Kyle Cox and Bob Metcalfe for getting us hooked up!


  3. Global Game Jam 2012

    January 29, 2012 by Austin Hallock

    I woke up Friday morning to learn that there was this thing called Global Game Jam happening at UT this weekend – it’s something that sounded right up my alley, so I gave it a shot. Basically you get together, form groups, and develop video games in 48 hours. I chose to fly solo this weekend, since most game developers don’t have a background in JavaScript and I like a challenge.

    This was a  good opportunity to make a game for my new project, which now has a name: clay.io. This game had to be simple because of the time constraint, so I set upon an idea similar to a mini-game from Mario Party. The premise is, you, and 1-3 others are on a platform, and have to duke it out until one person comes out on top. Of course, I added my own flare to the game as well.

    The game uses WebGL, to render 3d graphics right from the browser without plugins, and a combination of node.js and socket.io for the multiplayer networking. To help make WebGL a bit less painful, I used GLGE. For the 3d-modeling (if you can even call it that…) I used sketchup. That’s definitely the weak point of this game: the art. All of this was done in less than 48 hours by someone who doesn’t consider himself a game developer. I’m surprised more people aren’t hopping on board with WebGL yet.

    Here’s a quick demo video – I’m happy with the results so far:

    You’ll see I just have two Chrome windows open, showing the multiplayer support. It’s kind of lame watching me fiddle with it by myself, it’s much better when actually playing ;) Packets between the server and client are being emitted 10 times per second, much less than the typical 20-30 per second – interpolation takes care of everything in between.  The player can be controlled with either the mouse or keyboard, and the goal of the game is to survive the longest.

    There are 3 abilities to help you survive. One is ‘stomp’, where if you jump in the air and hit the “C” key above you opponent, it will smash them and they won’t be able to move for 1 second. The second is “Push back” – which is something you can use to prevent an opposing player from getting too close to you, or to try and push them off the edge. The final ability is just “Attack” – if you get behind another player and press “R”, it will damage them. 5 hits and they die.

    As you’ll also see, parts of the platform are constantly rising and falling, with a short warning shake beforehand. This adds another dynamic as you have to make sure you don’t fall off.

    I was able to get the game to a playable state, with all the features I’d initially written down. However, it’s still not at the point where I want to release it. There’s a bit more polishing to do before that – but once it’s ready I’ll have it released within clay.io. Right now it’s just 2 players max, but I programmed it with more in mind so it’ll likely be 3 or 4 players in 1 game at a time (it’s more interesting that way).

    That’s all for now – I’m running on 90 minutes of sleep in the past 31 hours so it’s time to relax, watch the Pro Bowl and get a good night’s sleep.


  4. Variety

    January 15, 2012 by Austin Hallock

    Burnout is always a tough thing to deal with, and I’ve definitely suffered from it in the past. By no means have I solved the issue for myself – I’m still constantly trying new ways to prevent it – but one that has certainly helped is having a variety of things to do.

    As a programmer, this mostly involves switching between languages, languages that differ quite a bit. I’ll go anywhere from a few hours to a few weeks working on one language, say, PHP, then if I get tired of that, I have plenty of options. With the current project I’m working on, I’ve been switching from PHP to node.js to frontend javascript (coffeescript to be more specific) to CSS. All are very different in how they are programmed, making each new switch something that helps prevent complete burnout for me. One day I can work on some hard-core backend, getting all the backbone structure in place, and the next I can get more arsty and play around with some HTML and CSS. It’s good to have options. Of course, some days you’re going to be forced to work with one specific area of programming, but having rotated through them throughout the process, you’ll likely not be as tired of it.

    If you’re someone who specializes in one programming language and have issues with burnout, I suggest trying to pickup something new. That doesn’t mean learn Java if you’re a C++ programmer – both are backend – try something on the opposite end of the spectrum like some HTML and CSS. If you’re strictly a frontend developer, try familiarizing yourself with Bash-Scripting to make tools that will speed up your development process.

    It’s not just varying programming languages that helps; some days I’ll just sit back and read/learn about technical stuff (whether it be programming languages, unix, databases, etc) which I still find productive. Others I will focus more on the entrepreneurial side of things and work on planning out the company’s future, taking in advice, or reaching out to others. Lately I’ve spent a good chunk of time reading questions and answers from successful entrepreneurs on Quora. One more option of productivity that I’ve been using lately, is writing my thoughts on this blog, which I enjoy.

    I know many of my readers aren’t programmers, but I’d argue this applies to everything in life that one can be burnt out on. A little bit of variance and changing things up can go a long way. For example, my girlfriend and I were having salmon and shrimp 4 or 5 days a week when we started the Paleo diet. The result of this was after a few weeks we started to despise fish and subsequently haven’t had it in over a month. Had we just been eaten it once or twice a week, I’m sure that would still be a meal in our repertoire. Routines can be good, but with certain things routines need to be switched up every so often to stay fresh and prevent burnout.


  5. CSS3 Box Sizing

    January 8, 2012 by Austin Hallock

    CSS3 let’s you do a lot of cool stuff, most of which add graphical enhancements like gradients and rounded corners, all of which are great. Lately however, I think my favorite new property is box-sizing.

    There are two modes: content-box and border-box. content-box is default, and will calculate the true width for an element as width+padding+border. So if you have a child <div> with 100% width and 10px of padding, it will extend outside the parent <div>. Here’s an example of content-box:

    The parent<div> has a black background and the child has a red background with 50% opacity (rgba is another awesome new tool to use with css)

    With border-box, the padding and border are included in the width of the element. So an element with width: 300px; and padding: 10px; will still have a width of 300px, rather than 320px. Here’s the example from above using border-box:

    This allows for more fluid specification of widths in a lot of instances. Say you need a textarea with width: 100%, you can add padding to it and not have to worry about it extending to be wider than what you really want. Before, I always had to set a fixed width, which obviously isn’t ideal when developing a site you want to work in a variety of resolutions and devices (mobile).

    The box-sizing property doesn’t work in IE 7, but you can get around that with this.

    Here’s how you implement it:

    box-sizing: border-box;
    /* Firefox */
    -moz-box-sizing: border-box;
    /* Webkit */
    -webkit-box-sizing: border-box;
    /* IE */
    -ms-box-sizing: border-box;
    /* Opera */
    -o-box-sizing: border-box;
    

    Hope this helps you out like it has helped me!