anigeek
anigeek
Anigeek
43 posts
Anigeek is a place where I rant about technology, coding, and business practices (normally the bad ones). I also promote the tools I love and the people who make them possible.
Don't wanna be here? Send us removal request.
anigeek · 9 years ago
Link
Linus Torvalds has always struck me as something of a pretentious snob, but I feel there’s little denying that he is truly a genius. This email brings up a very interesting point, though - one that I feel all talented people must eventually either come to realize or fail in their endeavors.
First, we’ll define talent and skill:
talent - n: a special ability that allows someone to do something well.
skill - n: the ability to do something that comes from training, experience, or practice
And secondly, an excerpt from the email:
When you were in college, did you ever meet bright kids who graduated top of their class in high-school and then floundered freshman year in college because they had never learned how to study?  It's a common trap.  A friend of mine calls it "the curse of the gifted" -- a tendency to lean on your native ability too much, because you've always been rewarded for doing that and self-discipline would take actual work.
There is a very distinct and very important difference between talent and skill, and this difference is simply that talent is given, skill is earned. A talented pianist will probably do very well at a 3rd grade talent show, but, if he relies on talent alone, will probably be no match for a skilled competitor five years down the line.
Don’t get me wrong - talent is very important. Talent helps you learn what your intrigues are, allows you to effortlessly complete tasks that others struggle at. Unfortunately, while each person’s talents have different scopes and limits, there is one thing that always holds true: talent will always hit a wall.
There comes a time where your talent will not help you. Maybe you were the best for 4 years in a row - if you don’t practice, don’t learn, don’t work hard, the person you were sure would never be your match will surpass you. They will best you with skill alone; and if you’re talented enough, you might not even know how.
The difficulty comes when you ask yourself “Why should I improve what I’m already good at?” or when you think “This has never been hard for me, why should I push it until it’s difficult?” So you stagnate - certainly the top of your class for a newbie, but that talent doesn’t hold up against the flow of time. You never get worse - everyone else just gets better. You find that playing the main section of Fur Elise isn’t cute anymore when people boredly ask you to move and start playing Beethoven’s Symphony #5 with both hands.
So you’re here. Staring at the wall, questioning yourself: Push on, and become great, or choose a different path, discouraged?
You have to push on. You have to work for it. You have to spend nights and weekends getting better. You have to keep practicing, even when you’re tired, even when you don’t want to. You have to keep coming back every time you fall down, every time you mess up. You have to take pride in knowing that you aren’t where you are just because of a dice roll, that you didn’t get here by luck or by chance, but that you earned it. You have surpassed talent and become skilled.
0 notes
anigeek · 9 years ago
Text
On Words
I am not an artist. Not in the traditional sense, anyway. I can’t sketch or paint or sculpt; I’m useless with Legos, and my MineCraft houses are all perfect squares. With speech I stumble over my own words, I have poor volume control, and I really dislike how my voice sounds like a chipmunk fused with a rubber ducky. Thus, text is where my creativity roams free.
I’ve been accused of being a ‘Grammar Nazi’. I don’t mind, of course; there really isn’t a better term for my strictness when it comes to the written word. I just wish people understood why I’m so emphatic about words, but I realize I can’t expect them to understand if I don’t go to the trouble of explaining myself.
So here it is.
Words are more than pixels on a screen or graphite on paper; they invoke special thought, explicit meaning. A well-formed insult can cut deeper than a knife, and honest praise can lift even the heaviest of souls. How each person interprets these symbols forms their world view: their impressions, feelings, thoughts; so whenever I see a text or a post with ‘textspeak’, I feel like someone has just splattered mustard on the Mona Lisa. I feel how I imagine  William-Adolphe Bouguereau would feel if he saw Warhol’s “Soup Cans” (a disgrace to the entire art world, by the way).
It isn’t that I hate efficiency or some madness like that. It isn’t that I don’t understand a language can evolve. It’s that every time you dumb down language, a piece of nuance goes missing. It becomes harder to express oneself clearly, harder to convey meaning.
If delicate diction is deterred due to disparate dictionaries, decisive debate declines deftly and drastically, duly dispersing in diverse demographics, decidedly decreasing the demonstrable discernment of dedicated disciples’ desire to discuss doctrine.
Edit, 2/11/16: More D’s.
1 note · View note
anigeek · 9 years ago
Link
I tried to add all of my RubyGuides a while back, but the formatting transition was just too much of a pain, so through the magic of Dropbox, I’ll just release them all as .docx!
If you’re interested in programming in any way, please check these out. They’re set for a beginner level and should be a nice bite-size way to get yourself into programming, even just a little bit. If you have any trouble, feel free to contact me at any time!
0 notes
anigeek · 9 years ago
Text
Volunteering
Tumblr media
I haven’t been doing much lately. I’ve been living in Montgomery, working as a contractor, but the truth is that my job is not very demanding. It’s the pace of Government, I suppose - I can’t get access to things in a timely manner, and I’ll go weeks without a real assignment. That’s fine, though, as long as I remember to keep myself up-to-date in the industry. It just gets boring.
So I’ve decided to volunteer my skills.
Starting about 4 weeks ago, I signed up to be a mentor for the Hour of Code. Shortly after, I got an email from a teacher asking me to come onto campus to help the students. I was never a great student myself (I rarely did homework, and my social life in school caused me to be constantly depressed), but I know if I had someone to tell me in 7th grade that I, a failure at math, could start programming on my own without even needing geometry, I would have lived a very different life. This is the message I’m hoping to show to these kids.
I remember a conversation with my high-school friend, Jimmie, in my 10th grade General Science class. I was writing this story for a game I wanted to make, and I got frustrated, and I asked him why we were 15 and still hadn’t done anything with our lives. I can’t remember his answer exactly, but it was along the lines of “because we’re just kids, we’re not supposed to.” And I know, that to some extent, he was right - it’s definitely important to learn and to have fun and to not worry so much that you forget to live. But it’s also important to spend your time bettering yourself, finding your passion, and working to achieve your goals. You’re never too young or too old for that.
So the Hour of Code was last week, but I’m definitely not done - so long as the teacher allows, I plan to help out in any way I can. Starting next semester, I plan on instructing a class every Friday morning, helping these kids understand that programming isn’t about sitting at a desk all day or doing math, but about expression, about creation, and about art. It’s about learning, and thinking, and solving problems. It’s being human, and knowing what that means.
0 notes
anigeek · 10 years ago
Text
I dream of YCombinating
So, today I jumped head-first into the pool and did what that voice has been telling me to do for years.
I applied at YCombinator.
It'll still be two weeks before we hear back, but that's fine. I don't plan on taking any sort of break or anything. I think the main thing about people who get in to YC are that they would have done it anyway. It may take longer, it may be harder, but if you're applying for YC then it had better be because the thing you wanted to make desperately needed to exist.
I realize, though I think I've known it subconsciously for a while, that my main reason for failure in the past was that I was alone. This isn't a world that you can be alone in - the stress alone of running a startup is enough to crush anyone. So this time I'm very fortunate to have someone willing to brave the dangers with me, someone I can rely on to make sure we're going in the right direction.
The idea we applied with is called CodeWheel. If you boil it down to basics, CodeWheel is just a community-driven snippet repo. In reality, it's much, much more than that. CodeWheel is the solution to the programming gap.
When you start, say, web development, you start in 1990. You have to learn the best practices all the way from the start, and as we progress, this journey becomes harder and takes even more time. We've tricked ourselves into thinking we've made it easier because we have all these tools, but we forget that most of them don't have instruction manuals - we figured them out, so those who come after us should be able to figure them out, too.
But that's not the right answer. The next great idea doesn't come from someone who thinks like all the others who got to this point; if it did, we would already have it. The next great idea comes from someone who thinks differently than we do, and CodeWheel is the apparatus for bringing that person to the edge.
If every tool we build is a boat that lets sailors cross a river, CodeWheel is a bridge that anyone can cross.
Why is CodeWheel so special? With a driven community and a clear goal, we can work together to fill in the gaps of our knowledge. We can create snippets to make gradient mixins in LESS or even SHA-256 algorithms in Objective-C. We can make customized toast notifications or an Oculus Rift "Hello World". We can push ourselves forward, stand on the shoulders of the great problem-solvers before us, and achieve the unachievable.
All this just by sharing a little code. All this just by sharing a little idea.
I dream of YCombinating. YCombinator is where I need to be. I have a problem worth solving, and I have the knowledge, willpower, and downright stubbornness to solve it. I can't stop until it's done.
3 notes · View notes
anigeek · 11 years ago
Link
A bite-sized starter guide for Ruby - First Installment
1 note · View note
anigeek · 11 years ago
Text
I'm the worst at posting
Sorry I haven't been posting, I really mean to, I just can't find the time. I've been writing some tutorials for Ruby at work though, so I'll go ahead and put some of those up. Thanks for staying tuned!
0 notes
anigeek · 11 years ago
Text
Design Flaws
So, I have this small problem when I go to build an app or website. I start writing down ideas, sketching layouts, etc. Standard stuff, I think. And then I look into what tools will best do the job.
Now, even as recent as 2010, this would not be a problem. One or two tools that don't do quite what I want, but I'm sure I can hack it. But in 2014, there are so. many. tools. All of them great and unique and necessary to change the development playing field. All of them perfect for what I need. How to decide?
Well, I haven't gotten that answer yet. I flip flop back and forth, learning all the pros, all the cons, and by time I've learned everything I've forgotten that I set out to do a project. Maybe it's just me, maybe I need to focus more, but I have such a hard time telling myself to stop learning, even if it's for something important like finishing something that'll actually get me paid.
'Cause that's the hard part. Code all day, code all night, doesn't matter if you don't produce anything! Ah, I'm starting to rant, aren't I? Back to the important stuff.
There are a great number of constantly evolving tools out there. Just be careful to not do like I do and fall down the rabbit hole. Always remember why you're learning what you're learning, and try to apply it as soon as possible to make sure it works how you expect.
And here I told myself I wouldn't use this blog to rant =p
1 note · View note
anigeek · 11 years ago
Text
Setting up Meteor for Ubuntu [mrt does nothing]
Trying to set up Meteor on my Ubuntu VM turned out to be a pretty annoying experience, and it's not really Meteor's fault - they provide all the tools you need in a very fast and easy format (no weird yaml or tarballs or any of that); you pretty much just need to get NodeJS via Terminal first and you're good to go - with one hitch, which we'll get to in just a sec.
First off, I'll be referencing this tutorial, a chat application by Sebastian Dahlgren, but if you don't want to look over that I'll try to be as clear as I can (which I wish people were when I was trying to solve this problem).
Alright, so to get Meteor, run this line in the Terminal:
curl https://install.meteor.com | /bin/sh
That should get the basics, but we need to set up Meteorite as well in case you want to add some extensibility by adding community-driven packages, meteorites, which are hosted on Atmosphere.
If your system prompts you for root access by making you use sudo all the time, put this into your Terminal:
sudo -H npm install -g meteorite
Otherwise, use this:
npm install -g meteorite
If this doesn't work, install NodeJS real quick with
sudo apt-get install nodejs
and try again.
So, I know so far this seems like nothing to write a post about, and you're right; if it were just this, I'd have no problem. It's this next part that gets a little tricky.
Use the Terminal to navigate to wherever you want to have your site in the filesystem, then run
mrt create {appname}
If this worked, then congrats! You're ready to start. If it didn't, then, you're having the same problem I was that prompted me to write this. I admit I'm not Linux savvy, which may have been my problem; I couldn't find anywhere that started from the beginning and told me how to find the stuff that was being referenced. If you're a Linux pro, you may already know what to do.
The issue is apparently that meteorite doesn't know what Node instance to use. To fix this we have to add something to the Path. There's some discussion above which way is best, but this way is simplest [if there's a reason not to do it this way, please let me know and let me know the right way so I can update this].
So to fix this, go to your 'Files' and make sure you're in 'Home'. Press Ctrl+H to show hidden files and near the bottom there should be a .profile. Open this in gedit or your favorite text editor and add this line at the bottom:
export PATH=$HOME/.meteor/tools/latest/bin:$PATH
NOTE: If you've installed Meteor somewhere else, you may need to use a different path.
Now that that's done, just log out and back in to refresh permissions and you should be good to try again!
I sincerely hope this has helped solve your problem or saved you some time!
0 notes
anigeek · 11 years ago
Text
3D HTML
So, I said I was working on something cool, and I was kinda on vacation so I didn't write as soon as I wanted, but here's the short of it: 3D modeling is hard.
Not for everybody, I know. I know there are some super creative people who can Blender up a storm, but I am certainly not one of them. As a programmer, I want a super simple way to make some basic 3D models via some sort of code or language. I've looked around on the web, and to be honest, the options are pretty pitiful. Everything is talking about making an immersive interactive environment, blah blah. Sure that's cool - but that's not what I want.
So, mostly because I didn't see any alternative, I came up with WebModel3D (name subject to change).
So, what is it? Well, it's a lightweight in-browser framework I'm working on based on Victor Porof's Tilt in Mozilla FIrefox. As you can see from the post, Firefox has a developer extension where you can see webpages in 3D; SUPER COOL, but sadly little more than a gimmick at this point. It has sadly very few practical uses.
The coolest part, though, is that Victor Porof even built an exporter to change this into a .obj that Blender can read. Here's where it gets cool, and I know what you're thinking: "This already exists, what does this have anything to do with you?" Well, unless you want nothing but same-height rectangles, you're going to need some way to control those edges and that z-axis.
So that's what WM3D is being designed to do. Control the edges, control the colors, control the height all with syntactically correct CSS.
It's still in the conceptual stage of development, so it doesn't work yet, but here's an example of a simple cube in WM3D:
.cube { width: 100px; height: 100px; WM3D-height: 100px; }
A cylinder:
.cylinder { height: 100px; width: 100px; WM3D-height: 100px; border-radius: 50px; }
And lastly, something more complex; a pyramid:
.pyramid {     width:100px;     height:100px;     WM3D-height: 1px;     @WM3D-draw {         WM3D-draw-dir: ltr;         WM3D-draw-0: start 0 top;         WM3D-draw-1: half 50 top point(50);         WM3D-draw-2: end 0 top;     }
    @WM3D-draw {         WM3D-draw-dir: ttb; /*top to bottom*/         WM3D-draw-side: top; /*recommended only use in @draw*/         WM3D-draw-0: start 0;         WM3D-draw-1: half 50 point(50);         WM3D-draw-2: end 0;         } }
Again, just conceptual, but it all compiles fine right now, so it isn't a problem for the browser to handle. It'll just be a matter of reading it and displaying it. I'll be building for Firefox as a Tilt mod at first to kick off, and once I have something more tangible release an open script. The main idea is to make sure you don't have to download any additional software and that it's simple to understand and use, so I'll keep it as small as possible.
For more info on the markup I've worked out so far and to leave a comment, go here.
Please let me know what you think, and i hope you're as excited as I am!
0 notes
anigeek · 11 years ago
Text
Something in the works
I know I said I'd make a more active attempt to keep this up to date, and I still plan to - this isn't me signing out. But I do have some cool ideas I'm working on right now, which if they make it off of the drawing board, I'd really like to share. Just got a bit more work to do on the idea, so stay on your toes. This'll be a cool one.
0 notes
anigeek · 11 years ago
Text
A programmer knows not languages
Something that irks me quite often, especially with job applications, is the notion that you need to know programming languages to program. I know that sounds weird, but hear me out.
A programmer is not measured by how many languages s/he knows. Programming is the ability to think logically and solve problems by communicating with the machine. Any programmer worth his/her daily soda intake (Sorry, non-soda drinkers, I don't have a better comparison) should be able to pick up a well-written language in no more than a couple days.
So this whole notion that I need to list what languages I know on my résumé is absurd. I can list fifty different languages or sub-languages or libraries and that won't tell you a thing about me except that I know how to list things.
The underlying problem is, admittedly, not the fault of interviewers or even the companies they represent. The problem is that programmers are such a unique breed; never in history has a group been so dynamic or evolved so quickly. The standards of business, which are extremely resistant to change, simply cannot keep up with the constantly changing measure of the programming field. There isn't a good way to 'test' a programmer yet, especially not on a résumé.
Unfortunately, I'm not exactly in a position to change the industry standard at the moment. For now, we just have to hope that the companies catch on that these résumés they get with long lists of languages don't necessarily correlate to good programmers.
2 notes · View notes
anigeek · 11 years ago
Text
Cool things
The internet is really amazing. I just keep finding these new things that I'd somehow overlooked 'til now that would have made my life so much easier if I'd simply heard about them sooner. It's my hope that by posting these things here, someone might find the right tool for their task and not have to reinvent the wheel. The downside, of course: many of these services are paid, and thus not good for 'starving artist' types (like myself). This doesn't mean there aren't scenarios for them, though, and definitely doesn't mean you shouldn't keep your eyes on them.
Jetstrap - The WYSIWYG Bootstrap 3 Editor
In my last posts I sang the glory of Twitter's Bootstrap - it's modernizing the web in a big way. Jetstrap is a great tool that lets you make these beautiful Bootstrap websites with simple drag-and-drop. Sure, sure, you want to handle your own code and tweak it how you want, and Jetstrap gets that - they allow full control of your code (no silly iframe garbage) but give you a super-simple interface to take the boring out. The best thing? There's a demo editor right on the home page so you know if Jetstrap is right for you (along with a 30 day money-back just in case). I love companies that do this - they know there's a chance they won't be the right fit, but they're dedicated to their users on such a level that they're willing to take that risk.
Twilio - Text Messaging, Web-Style
Twilio is a great web service that allows sending of text messages. Their basic plans are pretty cheap and come on a per-usage basis, so you never pay for more than you use. The pros of this model are, of course, not being overcharged for what you didn't use - the cons are when you use more than you anticipated (especially feasible with a dynamic and unpredictable userbase). The coolest thing to me, though, is that Twilio has made a point to be as open as possible about their API. They have super simple code snippets for pretty much every language you could use to do this sort of thing (PHP and Ruby, for instance - I don't think you'll have much luck with COBAL or PROLOG), and they're very good about letting you know that in a friendly way. After signing up, I even had a representative contact me to see if I needed any help or advice with using it (which for a socially awkward person like me is a little terrifying, but I really do appreciate the concern).
Heroku - Developer Cloud Computing
Heroku is pretty sweet although admittedly a large part of it is not my cup of tea. The premise is to make things easier by taking care of the hard part and the back end, which really helps you stay focused on your goal - making that next supreme application that'll blow people away. The only part I struggle with is payment for these services, but that's because I'm a little broke (okay, I'm very broke). A good thing about it, though, is that even if you don't use the platform itself it has a great setup of add-ins, which are other services that perform tasks for you (Logging, Email, Debugging, etc). These add-ins may be more cost-effective than the entire Heroku platform for your particular application and are definitely worth checking out.
On a TOTALLY different note, this is almost certainly the coolest thing ever, and I have been waiting my whole life for it, so I'll go ahead and share: Space Glasses by META . 
I'm sure there are many more out there that I've come across recently, but I can't think of them now. I'll try to get some more coding examples up here once I have time.
Oh! On that note, I'm finally trying to keep stuff on GitHub. Right now I just have one project from two years ago, AssemblyWriter, but I plan on adding more (currently doing some research into security as it pertains to php and database stuff, so once I have that worked out I can add a lot more).
'Til next time, -Kyen
0 notes
anigeek · 11 years ago
Text
Rounded Edges Mk. II
It's been 418 days since 'Beautification' and the internet has changed a lot. One of the things I talked about was the Google login screen, and they must've heard me. The new login screen, while seen too much due to Google+ forced integration and such, is much better now. It has a rounded version of your profile image centered beautifully above a username and password input set which transition seamlessly into a loading notification. It's really aesthetically pleasing.
Something that really interests me is Twitter Bootstrap. I honestly feel that Bootstrap is Twitter's biggest contribution to the web as a whole. Bootstrap brings the simplicity back to web design in a good way. Websites were always designed to be read like paper - thus the 'Document Object Model' - and while Bootstrap isn't quite paper, it really does bring the focus to the right places on a website. Not even that, it enables responsive design with ease to bring the web to mobile without the hassle.
I really like the 'mobile first' methodology as well, though it is admittedly a bit harder. A user can often tell the quality of a website just by the existence of responsive design.
Keep it up, internet! I'll be watching.
0 notes
anigeek · 11 years ago
Text
Been a while!
I haven't posted in a while, so here goes. Tumblr says it's been 7 months, but it feels like three years. I guess time just works like that.
So, my own projects are kinda hectic at the moment. CardFarm became on indefinite hiatus - not because I don't or can't proceed, but because I have no artist. It was a really difficult project to work on entirely on my own anyway, but I really did learn quite a lot. The thing I'm most excited to have learned is NodeJS - it looks like the web is really looking to use it more and more in the future. I've been doing a ton of Javascript research over the past month, learning everything I can about frameworks like Angular and Ember. There's also this really cool thing called Firebase - you should check it out if you haven't already. Unfortunately, it's not anything I need at the moment.
I'm really excited to start working on evintr some more. I'm planning an overhaul, and I found a cool way of scraping Google queries for movie times, so maybe I can have movies after all (since Fandango never got back to me). The hardest part is going to be making sure we have good, usable data for the Mobile region so we can get started. I know once we have data in Mobile, we'll be able to move into neighboring areas much more easily. One thing of note - until recently, I didn't know how to output the table names in JSON using PHP, but I recently stumbled upon mysql_fetch_assoc. Before I was using mysql_fetch_row, which only returns the actual data. This makes it pretty difficult to sort and manage your data, and also makes it difficult to expose your API to applications and clients since they can't tell what data they're looking at.
Also something that peaks my interest is PHP injection (at least, that's what I've been calling it). I don't think it quite meets the criteria of dependency injection, so I'll refrain from associating it there. So basically, it's the usage of PHP (or any code, really) to make code decisions, such as if statements, for the actual output code. For example, if you have a user logged into your website, it would allow you to not even load the managerial parts of the website, cutting down on loading times and also adding to security - the user can't go in and modify something in the script or in the html because it literally isn't even there. I'm sorry if this is called something else, I just called it what made sense.
Aside from that, I have some minor games and such in the works, nothing major. I'll try to keep this blog more updated as time progresses.
0 notes
anigeek · 12 years ago
Text
Websockets, Node.js, Socket.io and sockjs
The past few days, I've been working on getting a server set up for CardFarm. This was pretty irritating - had to go through the modem, forward ports, install IIS, run a node.js server (made sense since I'm using all Javascript for this), and then I spent a few days getting socket.io set up.
Socket.io is great - the syntax is easy to understand and it's quick to get implemented in your node.js with a quick "npm install socket" (I think that was it). Unfortunately, not a single thing I could do would allow CORS (Cross-Origin Resource Sharing). CORS basically makes it so that Javascript can access pages on other domains. Because of my weird setup, I'm hosting the game itself on GoDaddy and the server on my local machine. I'm planning on moving to Azure, but that's for another day.
So basically, if you are hosting your server separately from your files, then socket.io is not your best bet. Instead, I've been forced to go with sockjs (which has less documentation than Gilgamesh). The syntax is a bit more awkward for sockjs, in my opinion. It mimicks websockets exactly, so if you're used to that, it's probably pretty neat, but for some reason it's been really stubborn with the transferrance of objects and whatnot.
Sorry this post hasn't been very informative, just kinda wanted to record my discoveries here. My mind's a little too fried to get into too much detail with all this. Servers are hardly my forte.
1 note · View note
anigeek · 12 years ago
Text
CardFarm
I haven't been on here in a while, mostly because what I've been working on for the most part has ended up being top secret, development-wise. Too much fear our ideas would be stolen, too much worry over legal matters. Well, it's time to face the world, for better or worse.
I am working on a game called CardFarm with Jenuma. CardFarm is a social multiplayer farming game with something of a twist - everything in the world is made out of cards. In the main game, this provides little more than a gimmick - a 'hand' instead of an inventory or something like that. But the cool part is that this adds countless possibilities for future expansions and projects.
We're starting a KickStarter project, hoping to raise $10,000 for development - of course, these costs fund not only artists, but are basically a way to allow us to develop the game by continuing to live with reasonable resources (like food and a home).
We have an awesome artist, Shard_Prime, and I'm really excited to work on him for our second project together. Here's just a hint at one of the splash screens he's made for us:
We already have a psuedo-working prototype just to test the models and menu and stuff like that. Works best in IE10, but we're working on changing the rendering algorithm to keep all of the tiles in the cache, stop the slowing effect. It'll take a little while longer to work out the kinks, but for 3 or 4 days of work with maybe 3 hours a day, I think we've gotten a lot done.
2 weeks until we release the kickstarter, and I couldn't be more excited.
0 notes