Reasons I’m Bad at C and How I’m Getting Better

Posted on 3rd March 2012 in Something Daily

I’ve been working on a semi-secret project for a while with my dawg Diego and it’s going pretty well. I’m learning objective-c through making this game, which is a bit of a trip. So far, all of my experience with any of the C languages has been marked by a lack of some basic understanding that would make things a lot easier. Let me put it this way: I learned how to program first in Java, learned some PHP and Perl, and then started working at a Python/Javascript house (Parse.ly). Before this winter, my only exposure to any of the C languages was via CS classes and this book, which I read last summer. I’ve been programming for a while now, but the Cs are the only settings in which I’ve had to worry about things at a byte-level so far in my career. Python’s nice because you don’t have to do that, in my opinion.

Example: the other Sunday when I was working with Diego, I had the idea that I wanted to extend this C++ object’s void* field by having it point to a struct so I could store lots of stuff in it. Very standard. This ended up taking me a good 40 minutes to figure out, because, as it turned out, I had forgotten to allocate the space for the struct via ‘new’. Now, as a Python programmer, I’m not used to having to do this. The idea of allocating memory is abstracted in Python so you don’t have to deal with it so directly. But the point of the story is that I felt pretty dumb, because this really amounted to a mistake made by inexperienced C programmers, which I certainly am.

I’m running into the same kind of thing working through the labs for my Operating Systems class, which is taught completely in C. Of course, these things get easier with repetition, just like the concepts I struggled with when I was first learning to write code. It’s a bit of a strange feeling though, because there are some languages (esp. Python) in which I’m very comfortable with my skill level, and to be thrown back to the beginning when writing C can be jarring.

Anyway, the point of this is that I’m learning C/C++/Obj-C quite thoroughly this semester, both through working on this delicious project and my classes. Related: get excited for our game! It’s going to come out on iPhone at a time in the moderately-near future. It’ll be fun and cheap and you will buy it and play it and love it.

Also: if you’re a CS person of any skill level: follow my new link stack on Delicious! I started it to share with people the links that I’ve used and been helped by in the past. Included right now are the pages that first taught my shell scripting, Applescript, Python, and a bunch more cool stuff. I highly recommend checking out “What Every Computer Science Major Should Know” on that stack, too – it’s a helpful benchmark I’ve been using as I go through school.

Follow my stack! Get pumped for our game! Talk to you later!

comments: 0 »

Thought about Friends

Posted on 15th January 2012 in Something Daily

I realized recently that having the right kind of friends is important. Specifically, I mean friends that challenge you. I’m learning it’s not really a good idea to surround yourself exclusively with people who you’re totally comfortable with, because if you do that then you’re not really letting yourself grow at all. If you’re totally and completely at ease with the people you chill with all the time, you’re probably going to stagnate. Not that I’m saying being socially uncomfortable is a good thing, but only that your friends need to challenge you to be better than you currently are. However that happens, I guess…but it needs to. Otherwise how are you ever going to get better at anything?

*replace all 2nd-person pronouns with 1st-person pronouns

Also I had a dream last night that was Batman from The Dark Knight and me on a pirate ship with a soundtrack by Trent Reznor. Not a joke, really real life. Real dream.

comments: 0 »

The one where Emmett is a dingdong

Posted on 8th January 2012 in Something Daily

It’s pretty likely that the blog format upsets me on some subconscious level, because literally every single time I’ve ever sat down to type anything into this box, I’ve instantly started to tell myself why everything that I was planning on writing about is a horrible idea that doesn’t deserve to be on the internet. This is probably accurate. I feel like the only time I’ve really written anything of consequence here has been the odd occasion on which I don’t just talk about what random crap I’m doing that day. But the great part is that nobody ever reads this, so you’ll probably never see that I wrote this. Good for you, keep up the good work.

The fact that this has always been the case with me writing paragraphs on the internet is clearly a manifestation of the same anxiety that I get over making anything creative. Just as it’s pretty impossible for me to be happy with anything that I write here, it’s also rare that I ever look back at something that I conceived of and created and say “yeah that was a good job, E-Dogg.” (I’m always E-Dogg in my internal monologue)*. Also when starting projects, I’ve been in a phase for a few weeks now where I can’t even think of new ideas for anything. I start telling myself my ideas are bad before they’re at all fully formed. Clearly somehow this needs to stop.

I have a huge urge to make a new video game, but being in this mindset is obviously not conducive to getting anything like that done. I realize that the only way to really become good at anything is to do it a lot, making games included.

Fragmented thinking

I had an awful awful semester this past fall – I had an awesome internship, and that’s about where the good parts about the last 5 months end. I took 18 credits, had that internship for 20 hours per week, and another part-time job. Also CALCULUS and a bunch of other disgusting classes. Huge effect on my mental state. Like I said, awful. Not fun. Bad. You know what I’m saying/sayin’.

The James Joyce of WordPress

So the idea starting right now is to make my life more fun in all ways possible. It is really really easy to fall into the trap of literally complete laziness when you’re home with your parents for two weeks, and that’s what appears to have happened. I learned Objective-C over the break and played around with Cocos2D/Box2d a little bit, but not enough. I find myself now wishing I’d done more. I remember a time (this time last year) when I had an awesome roommate who was very good at keeping me positive and de-stressed. I learned a bunch of things from him, and now is obviously the time to use those things. Being lazy actually makes one more depressed, which is easy to forget sometimes. So writing here with the knowledge that people don’t read it is a great start, because I remember it being kind of therapeutic; and if you *are* actually reading this, lolololololol.

Also reading the Tao again, maybe meditating, skateboarding more, and WHOA maybe journaling or something. I have more free time than I realize, I think.

I say this now, and in four weeks I’ll be cryeing that I can’t get a break. Anyway whatever. I applied for HackNY Fellows. That would be SO COOL. It says something about me that I still feel like a total derp writing this, and that my use of the word “derp” just now will make me cringe when I read this in a month. I must sound so crazy. I probably do. But whatever, dudes and ladies. I kind of am.

*I apparently also have a compulsion to write/say things that I know I’ll look back at later in disgust

comments: 0 »

My Very Own Space Dad

Posted on 1st December 2011 in Something Daily

Heh…”free time”…that’s a good one. No such thing. I guess I’d call it “time after my brain melts due to Calculus class that I use to regain my sanity”. Yeah that’s better.

As you know if you’ve ever been to this site, my personal site, or my twitter, or you’ve talked to me in person, I spend way too much time on social networks, specifically Twitter because it’s the best one obviously. I follow ~1000 people, most of whom I don’t know personally and who I probably followed because their real name was listed as “I AM THE MOON” or something like that. The average tweet I see on my feed is either from a bot or someone who is (either actually or posing as) a basement-dwelling, female-averse video game/anime nerd. So you can imagine what my feed looks like. It’s not pretty. If you’ve ever read my tweets then you might understand better. I’m compelled to tweet things that make no sense because that’s a huge part of what I see in my feed – kind of like I’m playing into the culture it creates.

Whatever, anyway that’s not the point. The point is that there’s this one bot account called @horse_ebooks that has spawned a bunch of knockoff accounts suffixed with ‘_ebooks’ that all ostensibly scrape online ebooks and tweet sentence fragments from them, generally resulting in some non-sequitur fun times. Apparently @horse_ebooks is now not *actually* a bot anymore, but I don’t know. I think it’s funny still. Stuff like ‘Shoes and footwear.’. Or ‘how to be a magnet’.

But look, @horse_ebooks is really popular. I think it has something like 15000 followers (no I’m not going to check right now, leave me alone). I went to Babycastles recently and there were a bunch of indie games that were named after @horse_ebooks tweets. Everybody who uses twitter regularly has probably heard of @horse_ebooks. The point is it’s really popular. Like, weirdly popular for a bot account that tweets nonsense.

I want @horse_ebooks to die.

Not because I don’t think it’s funny – it totally is. Hilarious actually. But I think I can do better. I started my own bot account, @space_dad, mainly to practice my python and learn how to scrape html and post to twitter programmatically. Those goals have pretty much succeeded, and it’s now just a project to see how funny I can make it.

The idea behind @space_dad is this: take a bunch of sources of text that would probably be funny out of context and make that text as weird as possible. @space_dad’s driving script pulls text from Urban Dictionary, bash.org (a compendium of funny and generally offensive IRC conversations), and a bunch of free HTML ebooks I found, mostly of the sci-fi/romance varieties. It occasionally picks a hashtag from the public feed to append to the end of its tweets. My favorite part is that every tweet has a 50% chance of being translated to and from Japanese a bunch of times…you can imagine what this does. The wording gets generally way funnier after this happens.

A few of my favorite @space_dad creations:

  • Place a cotton ball toe while his partner is claimed. Discovery is committed two totally isn’t.
  • Negative gay
  • Can you Pat my back after we.
  • she couldnt be trusted to make the effort #mimimimimimi
  • Nazz, David Bowie’s Ziggy Stardust’s most magnetic fat means
  • Start a huge door.
  • Roll the chocolate cake,
  • Implement your legs.
  • Rub the face of baked beans, burned and I started. I said, darkly #humor

If you’re a python person, you can have a look at the code behind @space_dad, which is in two parts: the code that actually does the tweeting and the code that pulls from the text sources.

So I don’t know how @horse_ebooks does it, but I personally think @space_dad is close to being, on average, way funnier than him (her? it? they?). Maybe you should follow @space_dad. Maybe you should follow me. Maybe you should unfollow @horse_ebooks.

HackNY 2011

Posted on 5th October 2011 in Something Daily

Hackathon this weekend. It was of course amazing!

I met a bunch of people from a lot of different NYC tech startups, many of whom were from Boxee and Tumblr, as those are the APIs we hacked on. We made a hack that we’re calling TumblrTV, which grabs the videos from your tumblr dashboard and creates a Boxee Box channel out of them. Check it out, if you’re so inclined. Myself, Eric Sluyter, Adam Krebs, and Yuriy Skobov stayed up all night (well most of us did) and ate and drank a lot of unhealthy things attempting to get it finished. But we did, and it’s awesome! Try it, seriously!

As you can see, Adam sat his netbook on a fan for the duration of the hackathon, as it’s prone to overheating. We thought it was pretty funny.

We got pretty loopy at around 4 AM, which I think makes sense. Surprisingly, though, it wasn’t very hard to concentrate (for me at least). I only got exhausted after the whole thing was over. We spent a lot of time on trying to get the Boxee Box’s remote buttons to correctly interact with our app, which ended up being hugely annoying – so much so, in fact, that we ended up scrapping our original button-interaction idea and hacking (what else?) a solution via remapping the keyboard.

By the way, all the work here is done client-side, with the exception of the questionably-named “get-bullshit.php” which calls the tumblr API. It was a great way for me to finally get around to learning jQuery.

This guy was great; he’s from tumblr and he was a huge help with some of the trickier aspects of making TumblrTV, especially OAuth (which we again ended up not using due to time constraints – don’t worry, we’re not logging your tumblr creds).

Also, the guys from Boxee gave us a free box for making such a rad hack! Awesome. Check out the TumblrTV code on Github if you’re into that kind of thing.

I <3 HackNY

Emmett and the Black Mountain Scorpion Bluegrass Experience Gang

Posted on 9th September 2011 in Something Daily

So this is interesting:

Last fall/winter, my friends Matt, Evan, Eric, Justin, Kevin and I collaborated on a bluegrass version of “Get Low” by Lil’ Jon for our recording tech class. This is the original blog post I wrote about it. We presented it for our class and everyone got a good laugh out of it. We posted it on Youtube and kind of forgot about it.

Fast forward to now – we just discovered that the youtube track has 12,000 hits, and that by some strange manner of internetting, it’s actually been posted and reviewed on a handful of music blogs. Googling “Emmett and the Black Mountain Scorpion Bluegrass Experience Gang” now yields about 2.5 pages of repostings of our cover. Check it out.

Bridging the Verse
Cover Me
Chromemusic.de(!)
The Burning Ear

I don’t really understand it, but I like it. Being in a buzzband is cool.

Do All the Things

Posted on 21st August 2011 in Something Daily

I’m at home for another week and a half and then I’m back to NYC. Downingtown has been nice, but it’s getting a little bit boring. I’m definitely ready to be where the things are happening. All of the things. I’ve got a lot of stuff planned for this semester.

People want me to make stuff for them. A lot of that stuff is websites. Some of it is other stuff, but it’s mostly websites. I’m doing that a lot – I have 3 projects going at once at the present time. Of course, I always do that. It’s both for the experience of making sites, getting myself exposed to new technologies, building a portfolio and also making money, which so far this summer has proven to be something that I am not very skilled at.

I don’t want to talk about how lifeguarding is going. I only have four more shifts, then I will never have to sit staring longingly at a pool for 8 hours on end ever again in my life. But I’ve been getting money. Ok I’m done talking about that.

Speaking of money, my recent purchase of an iPhone will probably be both the last thing I do that makes me feel wealthy for a while and one of the many causes of my impending poverty. I’m willing to deal with it if it means I get to live in the best city in the world (with the possible exception of Muenchen). That’s going to be fun too.

I’m fighting poverty by applying for internships, both for credit and kicks, and taking on odd web design gigs (also moonlight programming…going to be a rad semester). Those interviews have gone surprisingly well, though, as they were my first real job interviews evar in my life, technical or otherwise. I got a majority of the internships I applied for, and actually had to turn down one as I’m not made of time.

But as it stands right now, I will be spending this fall interning at parse.ly, a web analytics company, as a PROGRAMMER or programmerlike entity. It’s going to be sweet.

Also, in the spring I will be working as an audio production intern at RADIO CITY MUSIC HALL. Combine both of those with a bunch of other smaller freelance jobs, my classes, and a few shifts as a Steinhardt tech…and I guess I’ll talk to you in May.

Seriously no. But that’s the news. It seems that my attempts to put myself “out there” in the professional world have been largely met with success so far. Hoping it continues.

I Made a Thing

Posted on 19th July 2011 in Something Daily

I built a Twitter app today! It’s called Quadroopl! It’s a version of your Twitter feed that’s been cut down to size by removing all but one of each of your friends’ tweets, leaving only the most retweeted one. That means that, if you want to see if what your friends are doing is interesting or important, you can use Quadroopl to cut through the spam and get a quick update on the good stuff. You should try it. The code is right here on my github in case you’re that kind of dude/lady.

I was in Ohio with my cousin recently, and, being the geeks that we are, were talking about the people we follow on Twitter. One of the first things he mentioned was that, as a result of following me, he’d picked up a lot of interesting people to follow (because I’m really cool and have cool friends, obviously). He said, though, that he was kind of annoyed by their ‘spam’ – that is, a lot of the people he knew were interesting would often tweet in decidedly uninteresting ways (not naming any names….). He didn’t want to unfollow them, because he did want to be updated on their important doings, but disliked the majority of their tweets, which could be called non sequiturs, to put it politely. I’m guilty of this too, by the way. He said, “wouldn’t it be cool if there was an app that just showed you the tweets that you theoretically care about, while filtering out all the crap? It would probably be pretty easy to make. You should build that.”

So I did.

I put together Quadroopl over the course of the last three days, flying by the seat of my pants as I learned both OAuth and the Twitter API (and, arguably, Javascript and Ajax) at the same time. The logic goes like this: your whole (500 tweet) feed is retrieved, and each tweet in the feed is processed, being put into a session hash of hashes. A tweet is added to the hash if the user who created it doesn’t have a tweet in the hash already; or, if they do, it’s added if it’s been retweeted more times than the one currently in the hash. The result is a new feed that’s made up of the most-retweeted tweet by each user. If a user hasn’t been retweeted recently, they don’t show up on Quadroopl. This method places a lot of importance on retweets; I think it’s an ok solution to the problem of the “top tweet”, but I’d love to look for a way to retrieve the number of replies to a tweet. Another vector for the comparison of tweets could only make the results more relevant, I think.

I’m very happy to have gotten this out so quickly, and I look forward to adding features/revising the logic to make a more enjoyable user experience. Try it out, and please direct any constructive criticism to @emmett9001. Direct all other criticism to your mother. Thanks.

Swimming in Beer in Germany

Posted on 6th June 2011 in Something Daily

I said recently that I thought the few weeks after I finished my sophomore year of college would be kind of crazy. At that point, I was in the midst of helping all of my roommates move into their new apartment, taking finals, and attempting to insert myself into the internet culture of gif makers, artists, and musicians that I met at Blip Festival. I really want to write a post about that whole experience of jumping into a new scene. Coming soon, since I don’t post daily anymore.

Apart from all of that New York-based craziness, I was also looking forward to spending ten days in Munich, Germany living with a guy who I met on an exchange in high school. Believe it or not, I am about to admit on the internet that it was my first time ever flying alone (<-- I just admitted it, check it out). It went as well as I could hope, including the delay that made my connecting flight in Zurich possible to catch. The family who I was staying with welcomed me so easily into their apartment - I was actually really surprised that they were so chill about it. But they made me breakfast and dinner most days that I was there! German breakfast isn't filling - a few slices of buttered/jammed bread - but it does taste really awesome.

Having scarce internet connection and being incapable of working on any projects, I was a tourist through and through, visiting about five different Munich cathedrals and about twice as many beer gardens. I was reminded how much better Muenchner bier is than the average American counterpart. They drink a lot of it over there - one of the apartments where I went to a party had twelve empty kaesten (20 .5 oz beers) stacked up in the kitchen. And you may also know that it’s typical to get a 1 liter mass if you go to a biergarten. Case in point:

I had a lot of beer. It’s just so good, that’s the problem. I don’t even want to drink that much over here because it doesn’t taste as good. I know that I sound like quite the elitist right now, but I will make this statement: the average beer in Munich (Loewenbraeu, Hofbraeu, Augustiner) is better than anything I’ve tasted that was made in America (not counting Victory, which is up there with the Muenchners). And check out my unicorn shirt, right? I love that thing….so much. Somebody on facebook called it “gay”, which really just points out his own gayness (spoiler alert: he actually is gay). Anyway…..

I unfortunately took a hugely tiny amount of photos when I was in Muenchen, so the unicorn one and this one, featuring Jakob, the guy I stayed with, are really the only good ones.

Of course, more beer. Of course.

My friend Monica, who is studying in France, came over for a few days since she was travelling around Europe, and we went to a lot of art museums and Munich sightseeing excursions together. Great to see her. And this trip was an excellent opportunity to practice my German, as I spoke nothing but German with the family who were hosting me. I also tried to speak German with the people my age who I was hanging out with, with moderate success. The problem is, though, the combination of the speed of their speech, the fact that they’re talking about things for which I have no cultural context, and their use of slang all made it really hard to communicate with them (not to mention the fact that I was usually attempting this at very loud parties). Still, I did get a lot of great language practice, and picked up a German copy of The Return of the King. Good stuff.

I also had an incredibly fortuitous experience on the return Atlantic flight; totally by chance, a girl from my music classes who I’d never really met but had always wanted to talk to was not only on my flight, but was also willing to sit and converse with me for most of the ocean crossing. I still can’t really believe my luck – it’s just so unbelievably unlikely that someone who I knew of, yet needed an excuse to talk to, would be on an 8 hour flight with me, and I’d have a free seat next to mine. I’m not really religious, but it’s awesome that a coincidence like this is possible. Have you read “The Unbearable Lightness of Being”? This really makes me think of that book, also the movie “500 Days of Summer”. I’m still reeling from the experience, it’s safe to say that this coincidence made my week.

Apfelschorle, Kaiserschmarrn, Augustiner bier, the fact that you press a button to open the subway door – things I will miss about Germany. It was an awesome trip. Being there made me want to stay – don’t worry New York, I still love you more….but take a shower or something.

Blip Festival 2011

Posted on 21st May 2011 in Something Daily

Continuing with the collection of surreal experiences that I’ve been experiencing lately, I decided at the last minute earlier this week to stay in the city a few days longer than planned and attend Blip Festival number five at Eyebeam. First of all, that was the best decision I’ve made all week, if not all semester. For those who don’t know, Blipfest is a three-day music festival/social hub for the New York City chiptune scene (chiptunes, of course, being musics created using hacked video game hardware from the 80s and 90s). There are a ton of bands who play, some of which are relatively popular for this niche genre, and some of whom are just getting their start. Regardless, there’s lots of awesome chip music to be heard.

So I got there on Thursday evening knowing one person there, and feeling a little awkward. I knew that a lot of the designers, gif-makers, developers, and musicians who I follow on Twitter and Tumblr were going to be in attendance, and I planned on introducing myself to as many as possible and making some contacts. That didn’t really happen on Thursday nights, because I really didn’t know a single person there after my friend left.

I did say hi to the guys from Anamanaguchi though. They played an incredible set, providing what was without a doubt one of the most fun performances I’ve seen in my short life. The crowd was crazy, to say the least (a guy was crowd surfing during Anamana’s soundcheck) and no one was dancing so much as pushing people around and attempting to support the hailstorm of stagedivers.

Anamanaguchi really owned the night on Thursday, as they were effectively the headliner and also awesome, but there were a few lesser-known acts that I’m very happy to have caught. Specifically, minusbaby came out with a many-piece acoustic ensemble including a baritone brass of some type that actually proceeded to rock really hard. Talk to Animals, as well, was the first act of the show to really get the crowd going; she walked down into the audience and jumped around with them while singing, her Gameboy pulsing out beats from the stage.

Night one was awesome, I got a lot of free stickers and saw a rad Anamanaguchi set. I didn’t really meet anyone, though, and last night I was determined to change that. I talked with Diego “Radstronomical” Garcia on Twitter and we arranged a meeting, which was thankfully a huge amount less awkward than I feared it might be. He turned out to be awesome and to know or know of a lot of the same people I’d wanted to meet, so it worked out nicely. Included among those people were (by Twitter handle) DeMarko, who was sporting the “I’m Fat, Let’s Party” Seibei shirt; JimmyRepeat, one third of MisterGif who bought me most of my beer and insisted on calling me a nickname that I don’t want to mention for fear it might catch on (you can find it on Twitter if you really want to know); DoodlesAndGifs, another one third of MisterGif, who was an incredibly friendly dude, and, lulinternet, who I met briefly with Diego and stared at dumbly for a few moments, apparently in awe of her internet fame or something. Also Liz (as in My Life as Liz) was there, as well as Pete from Anamanaguchi. So I’d say mission accomplished as far as meeting people goes.

As for the night two music, I didn’t know any of the acts before the show, but I now have a lot to check out. Pretty much every act last night was worth checking out again, in my opinion. The opener was NNNNNNNNNN, this young dude from Japan who made surprisingly rocking dance music. Tristan Perich, the creator of the One-Bit Symphony, also performed a piece for harpsichord and one-bit electronics, which was likely the most conceptually-driven piece that that festival will see this year (nonetheless incredibly rad). Ten Thousand Free Men and Their Families was also an interesting shift of genre for the festival; he’s a one-man 8-bit punk/hardcore band. His set was very raw.

I spent a lot of the other sets talking and meeting people, but I didn’t miss the opportunity to dance around like a fool during the BitShifter set. The guy absolutely killed it. He made some absolutely incredible 8-bit dance music that I feel like I’d actually be able to listen to outside of a live setting, which is rare for dance music. It was forty minutes of sweaty nerd in the front of the stage, with people constantly crowdsurfing up onto the stage to dance around for a few moments. Total mindless insanity in the first few rows. But so much fun. Also, I stayed for most of the cTrix set, which was also unbelievably cool. He debuted a new instrument that looked like a guitar body with a video game console and a bunch of stompboxes glued on, which worked after a few minutes of tinkering and actually sounded awesome.

I’m a bit (hah) disappointed that I won’t be able to make it to night three, but I don’t see it as a missed opportunity. This was an incredible experience. I’m totally going back next year.