Google+

Category Archives: Computer Talk

Migrating times

Whenever you make a permanent change to the database in Rails, you’re supposed to make what they call a migration. It’s like versions for your database, so that whenever you screw up, you can always just backtrack to a version that still works. Until recently, these migrations would be numbered sequentially, like zero, then 1, then 2. But now they’ve decided to use the date and time as your migration number, so they end up looking like 201105071935261. So what happens now? When somebody looks at your code, they’ll notice all you do on Friday nights is work on your programming projects, and considering the common self-conscious, socially-inept programmer stereotype, this could be a problem. What’s the deal here? These timestamps bring a personal touch to Rails projects. Instead of imaging some invisible omniscient entity that writes code from his watchtower in the clouds,… more →

Intentional Deception

On the club application form I created, there’s a place for you to put down a password so I don’t end up having to send a randomly generated “2foas2!v” to a million people. Being counterculture and all that, I don’t like passwords. Nobody does. I tried googling for an alternative way to identify yourself  or perhaps, I could come up with an alternative myself1. But in the end, I just went with a normal password + salted hash. Alright, well, underneath the place where you put your password, I write down “Your password is stored as a 512-bit hash. We do not know what you type”. I have to do this because, well, who would trust me with their password? It’s just too easy to harvest giant lists of email passwords. But still, including this bit is a bit troubling. Technically,… more →

First World Problems

I’m looking at the future of the WalnutNHS website and things have changed a bit. I’m supposed to choose a sophomore (not a freshman) who’ll take over the website after I graduate, and I just can’t make any sense of the situation right now. Let me explain: When I look at 2012, there are several people who definitely have the experience and know-how to work WalnutNHS. Of course, I can’t choose any of them because they’re graduating along with me. I need somebody who can inherit the website for future classes. Logically speaking, there must be about the same number of capable people in 2013, and in 2014 as well. But I’m very shaky on this point. I don’t know if I’m underestimating or overestimating the capabilities of 2013. Okay, that statement is wrong for 2 reasons: First, programming experience… more →

True Intuition

When you hear about website designing and modeling, intuition comes up very often. It is the idea that the user should know what to do without any instructions or learning. If  you do it right, an intuitive interface not only gives you a successful product but also a nod from the geek community. If you don’t, it quickly becomes stylish to hate you and your site. Hate. Your site. I hate your site. Intuition means more than just easy buttons and pictures. But of course, this part is still very important. I was trying Mathematica and I was trying to find the “evaluate” button or something. It wasn’t there, meh.. I’ll go Google it. But before I could even alt-tab to Chrome, I noticed my left ring finger was holding down shift and my right ring finger hit Enter. What the… more →

Limits of my patience

I like to think I have a lot of patience. In fact, most people think that way too, whether they do or not. See, we typically don’t push our patience very much. All the problems and obstacles we get in school are planned and artificial, and therefore aren’t very informative. Another C-? Meh, move on. Nothing puts us back too far and everything’s alright. Ahh, for a couple days I’ve been trying some very low-level languages. Not ASM-level, but some easy C, yes, and it is absolutely horrifying. Everything I thought I knew how to do suddenly became a huge mess. I say this because low-level languages don’t have the fancy schmancy interpreted conventions that high-level languages do. The down and dirty work that’s much closer to the machine’s heart really puts things in perspective. I’ve melted all over the beauty… more →

The Semantic Web

A trillion years ago when the internet wasn’t filled with mind-clouding circlejerk, a couple masterminds had an idea: the Semantic Web. Now, get this: much of the Internet you see is built for humans like you, not computers. Gridded layouts, pictures, heavily scripted modal windows: computers don’t understand any of it. Those nice things we have exist because we, the humans, like em. Of course, design controls your impression of a site. It rewards beautiful sites and destroys ugly ones (read: gawker media, digg). But hey, it becomes a problem when design starts to become more important than content. I’m not talking about data structure design. The internal workings and logic of a website are massively important. Trust me, I screwed up plenty before. But , the visual things we see, the stupid little control bars and pretty colors or obscene… more →

Time that is wasted

It’s friday night and I really didn’t plan to get anything done until tomorrow. But it’s not that there’s anything special about this Friday. It’s been downtime for as long as I remember. It is also undoubtedly the most productive few hours I get per week. Because I’ve got nothing planned, getting any amount of work done is already exceeding expectations. And even if I don’t do anything, that’s fine, which opens up time for some guilt-free programming. I made a CSS framework tonight, something that I’ve been drawing about in Spanish notes for a while now. It’s done, code’s on Github. I feel better that I can put out something so succinctly elegant. I called it Mast. I really don’t know what that means, but masthead sounds cool and masts remind me of old sailboats. Maybe I’ll start working now and get my… more →

Glue code

Why is this bad? Why is he sad? This is great! I like programming because it lets me solve challenging problems. Absolutely true—code is poetry. There is a certain argument that gets passed around to criticize programming languages, and it’s very contradictory. It goes like this: Since people build on the inventions and discoveries of other people to achieve greater things, there is a blur between who is actually responsible for success. Great inventions simply involve putting together already-existing theories and components to make them compatible in a way that could not exist before. It’s the process of gluing together a boiler, a piston, a cylinder, and a wheel that launches scientific revolutions. Now, the foundations set down by programmers past make programming so easy that any middle-school kid with a load of free time can learn to do it. Working in lower-level languages… more →

Robot, make thyself

Genetic algorithms seem like another one of those cutting-edge discussion topics reserved for only the most knowledgeable and i-did-it-before-it-was-cool hipsters. It fits in the same category as non-relational, decentralized database hype (read: the cloud). But genetic algorithms may be what defines the future of programming, you know, the IA and evangelion MAGI stuff. Genetic algorithms work like evolution in biology. A group of “candidates” is created with slight variation between individuals. Each is assessed for its fitness. The most successful candidates are cloned and randomly mutated to form the second generation. The rest die off. This method works well for some problems, given that you have 1. a way to measure fitness, 2. a reasonable range of values to test, 3. an absurd amount of computing power. Now think about this: how do calculators compute sine? They can only do a… more →

Lost to extinction

AP Biology certainly makes a big deal out of ecological preservation and endangered species. What’s the deal? Things die off, and then there’s more to replace them. I read 4 chapters and I still can’t answer the “Why is it important to protect endangered species?” question. But I think I’m finally starting to get it. Now, understand that I relate a lot of things to programming. It just works for me. Spanish is like a massive programming language. Certain functions only take certain kinds of parameters. You can mash a bunch of words up and sound smart, but the code won’t compile. Learning spanish is like reading an enormous book of documentation: ”The Spanish Programming Lanuage: 2nd edition”. Then it all fits in. Physics is a lot like programming too, but that doesn’t even need to be explained. But biology. Oh biology.… more →

Evidence of activity

Behold, the awesomest graph you will ever set eyes on. Ready yourself because you may soil your pants. Go ahead, click it and take it all in. Diaries and journals are troublesome to keep because they require daily effort to maintain them. They’re fun to reread and all, but most people decide it’s not worth the effort. All the problems are solved if you have an automatic journal thing. The computer is a central part of anybody’s life, some more than others. This graph visualizes how long I’ve been on my computer every day for the past year. And frankly, this is the best diary I could ask for. Event viewer ID 1531, 1532.

Abstraction

”And I have perhaps the world’s most magnificent tower of abstractions, starting with transistors and moving up through circuits, chips, processors, all kinds of hardware I know nothing about, operating systems, and a nice tall stack of increasingly abstract programming languages undergirding the famously friendly ones I use, Python and Ruby.” [source] I wish more articles were written like this. So concise yet so profound. ”There is no doubt danger in all this abstraction--how easy it is nowadays to use a thing without knowing how it works--but it’s hard to complain when you’re playing in the clouds.” This is such a tumblr-esque thing to do. There’s a major flaw in the process of sharing things you find interesting. Eventually, it just turns into a list of links that people may or may not go through. It’s very reminiscent of the early web. Maybe… more →