Pages

Tuesday, August 30, 2011

AI Bots Chatting

Ah, the power of Artificial Intelligence.



Sadly, the woman seems more annoying than the man. I wonder if they were designed that way. Hmm...

Yours,

Friday, August 26, 2011

Engineering: A Magical Accomplishment

Sometimes, when I'm programming, I feel like I'm capable of doing magic. I feel like this guy.

Harry Potter cartoon style Pictures, Images and Photos

Which is saying something since usually, while programming, I feel more like this.

woman_mess

However, there are those moments when everything just clicks and all of the sudden things work - and I almost feel I just cast some spell that worked. Stupid comparison? Why, yes it is. Do I care? Nope.

My point is the feeling of accomplishment you get - and seeing things work the way you want them to, from something you created. That's engineering.

Yours,

Wednesday, August 24, 2011

Steve Jobs Resigns

Holy resignation, Batman!

Steve Jobs resigns as CEO from Apple? Do you think he knows something we don't? Or is there something just going on with him that will cause him not to be able to "meet his duties as CEO"? Is this the end of Apple?

Ok, I know there will probably never actually be an end to Apple. I mean, I had one of those old Apple computers back in the day and then thought Apple was dead mid 90s. Way to prove me wrong with those i-Products, Apple! Nicely played.

Wonder what direction Apple will be going in from here on out...Any thoughts?

Edit: Just found this article explaining that he's been on medical leave for awhile now. I might not be the biggest fan of Apple products but no one can deny how much they changed our culture - be it iPods, iPhones or even the iPads. I can only wish Steve Jobs the best, in life and in health.

Yours,

Ted Talk: Algorithms

A new way to look at the world around us - in terms of algorithms.



Yours,

Tuesday, August 16, 2011

Roulette: A Semi-Engineering Approach

I was in Vegas over the weekend and spent quite a few hours gambling. I'm a very conservative gambler - I like to play games where I can put down $40 and spend a long time playing with that. I also take a very engineer-like approach to the games I play.

For example, I played a lot of Roulette this weekend. Now I know Roulette is not the best game to play as the house has a big edge here (like 5% or something). However, it's fun, simple and I like to play it. Therefore, I don't really care that much if I lose money on it.

roulette

I don't know any kind of Roulette terminology so bear with me here.

I started out with a strategy of putting $1 on the corner of 4 numbers. I did this with 7 chips ($7) and then put 3 chips down on single numbers. The 4 corner one would pay 31-1 and the single numbers would pay 32:1 (I think - somewhere in the 30s anyway). My idea was that I would hit at least one of the corner chips most of the time since I was covering so many numbers. However, I soon realize the flaw in my plan - even though I did hit them most of the time, I was only getting $8 back and hence losing $1 on each round. This is a small amount but it's equivalent to dying slowly. I definitely stretch the amount of time I play here but unless I hit one of those single numbers often, I'm still dying.

So I changed my strategy. I decided to bet on two numbers instead of four numbers. This definitely cut down my odds of "winning" but the payout was now 16:1 - which meant when I did win, I was winning $6 (since every round I bet $10 - which was the minimum). Of course, I kept betting on single numbers as well. The exception to this was that I saved 2 chips and bet on a four corner in the first section and a four corner in a third section. I like to bet on the middle of the board so this worked for me.

My last strategy was employed when I founda $5 minimum table. I don't like making outside bets with $10 because I feel like I'm just risking too much (told you I was a conservative gambler). But $5? That I can do. I decided to bet $5 on the second twelve and $5 on the third twelve. I figured my odds were about 2/3 chance I'd win (ignoring 0 and 00 because I felt better that way) and if I did win, I'd win $5. Of course, there was a 1/3 chance that I'd lose $10.

I actually hit this a whole bunch of times before losing twice in a row which sadly put my winnings at only $10 from this method. However, it was pretty fun!

I did end up winning with these two strategies - not a lot but over the whole weekend, I won about $170 from Roulette (and $30 from Craps). I definitely don't think these kind of strategies would win all the time, mostly I was just lucky. However, I had a lot of fun and winning definitely helps make a Vegas trip great!

I consider this a "semi-engineer" like approach to gambling because I saw a lot of people who would just put down a whole bunch of chips without thinking of how many they were putting down - or considering the odds of where they were going. It was more of a gamble by feel approach - which probably works just as well. It's just completely opposite to my, "Ok, put 10 chips down on places where I have a higher probability of winning" approach. However, it's only semi-engineer because there are much more precise ways of calculating probabilities and then deciding how to play.

One of these days, I have to try the gamble-by-heart method and see how that goes. One of these days.

So, what about you? Are you a gamble-by-engineer or a gamble-by-heart person?

Yours,

Friday, August 12, 2011

Jonathan Stark's Card Hacked

Have you heard of Jonathan Stark's communal Starbucks Card? Basically, Jonathan put $300 on a Starbucks Gift Card and released the image of it - saying you can buy coffee on him. If you're really generous, you can add money to the card so other people can use it. This card has been received $8,700 in donations - which is a lot of coffee and a lot of kindness from strangers.

Now, Sam Odio has apparently decided to hack Stark's card and use the money for his own purposes. He wrote a script that would run, take the money off Stark's card and move it to his own. He says he's going to sell the card (which now is $625 on it) on eBay and donate the money to charity. Personally, I don't believe that for one second.

Sam's reasoning is that he doesn't "find the idea of yuppies buying yuppies coffees very interesting". I think this is just really sad - you may not like Starbucks or the idea of it but other people do. And ignoring the whole Starbucks aspect, I thought this was a pretty amazing experiment. Basically, people were giving money to strangers for nothing. That never happens in our society! People were trusted to be honest with this gift they were given and although I may be wrong, it didn't seem like they were really taking advantage of it. People would reload it, people would buy coffee with it. What's the problem with that?

Personally, I think anything to make the world a nicer place - even if it is just buying a stranger a cup of coffee - is amazing. Odio's reasons for doing this is basically his way of justifying stealing other people's money. It's not even Stark's money - it's random strangers who decided to do a kind act by putting money on this card. They did so with the intent that someone would be able to get a coffee - not so that some random guy could steal their money.

It just made me feel so outraged when I read this article. I understand that this is Stark's social experiment - and it is interesting to see what happens - but it makes me angry that there are people like this. Personally, I feel this just paints "hackers" in an even more negative light. I just don't think technology should be used for purposes like this.

Maybe it's just my naivety, but I wish we could use technology to HELP people like Stark tried to do, instead of for selfish, odious purposes.

Yours,

Thursday, August 11, 2011

Graphical Representation of a Previous Job

Edit: I just realized the title of this post makes it sound like I'm going to actually create a graph. I didn't mean it like this. I meant I'm going to be representing my past job in graphics. Whoops.

My goal for creating this blog was to make Computer Science more relatable to everyone - especially to women. I feel like there may be some people out there who have just never even considered the field because they just never heard of it, or never knew anyone who was in it.

I feel I should approach this goal with a 3 prong approach:
Prong 1: Explain why I got into CS
Prong 2: Explain common misconceptions of CS
Prong 3: Be realistic about a software engineering career (both good and bad)

Why do people use the word "prong" for approach anyway? Whenever I hear that, I always think of this guy:

devil

Of course, I used it too which makes me a hypocrite. Let's move on.

This is about prong #3: Being realistic about my job. I have said in previous posts that I love my job. I will most likely reiterate this fact later on. However, my job is not always a bed of roses. In fact, my previous job had many thorns sticking out of it.

I was eavesdropping on a meeting today (which is not hard to do when the conference room is actually just a table in the same room as all the cubes) and heard them talking about our department. They were discussing how there is really not that much process here. When you need to get something done, create a new bug for it, assign it to the manager and then he'll have someone work on it. Done!

This might sound pretty intuitive but my last company was not at all like this - and it's one of the things that drew me to my current company. I'll go into more detail about this at a later time, but right now, I feel these cards from Some e-cards really demonstrates how I felt about certain aspects of my job in my last company. Of course, some of these are exaggerations. Of course. (Warning for those at work: slight mature language below):

someecards.com - Let's spend 4 months planning what the rest of the world takes 2 hours to complete.

someecards.com - If people would just get the fuck out of my way, I'd be done by now.

someecards.com - Let me wipe that drool off your lip so you can wake up and start working.

someecards.com - It bothers me when co-workers stand around and talk about shit that's not interesting enough for me to stop working.

Yours,

Wednesday, August 10, 2011

Why CS: Math Is Not A Reason To Quit

One of the arguments I hear the most when I talk to people about studying software engineering is, "I'm not good at math" which leads to "I don't want to take math in college."

Although I can understand people's initial hesitation, this argument is not really valid because software engineering does not have to involve math.

I can completely relate to wanting to avoid classes. When I first started college, I was in the pre-engineering major. I had to choose at orientation which path in engineering to follow. Based on the chart that was drawn out in front of us, I noticed that Computer Science was the only engineering path that did not need Chemistry. And so, I entered the Computer Science major.

My first quarter was really tough and I actually ended up getting a D in my math course. I had to retake it the next quarter since the following course in the series required me to get a C or above. I was very discouraged but thought I would give it another try - and I did much better the second time around. I was actually good at math in high school but college was pretty tough. Luckily, my school had a great tutoring program - I'm not sure I would have made it through without them.

I had many doubts all throughout college while I was studying Computer Science. It started with math because I just could not hit my stride there - not to mention the programming courses that actually involved math. However, I kept pushing along because I would always find a class each quarter that I actually loved and wanted to continue in the major.

"But I don't want to suffer through my classes!" I can hear you thinking. "I want to study something I love."

Ah, the time of innocence. I miss that.

It is a good point though - but tell me of a major where someone loves every single class they take. There might be the rare person far and in between who actually does - but then again, that exists in Computer Science also. The way how requirements work for college degree programs, it's pretty rare that you will love every single class you take. I counter your thinking by saying that there will be classes you love to take - and that will make up for it. At least, that's what happened to me.

Here's a little known fact for those outside of Computer Science: You don't have to use math after college.

Obviously, I don't mean all math - we all use math, especially if you go out to eat as much as I do (who loves those tip calculators on iPhone/Androids? I do!). But there's definitely not a daily need to find the derivative of an equation or take the integral of some linear combination. In fact, in the area I'm in, I can tell you that I haven't done that since college.

There are so many areas in Computer Science - and many of them do not involve math. Of course, if you want to go into an area like game design, you better be comfortable programming math (which is why I did not end up there). But if you want to write web applications, mobile apps, even working on UI these days - depending what industry of course, you might not actually use any advanced math. Basically, once you're done with school, you can decide what area to go into - whether it is related to math or not.

The bottom line is this: don't let your dislike for math be an argument for not studying Computer Science. Of course, Computer Science is not for everyone. But if your main hesitation is the fact that you aren't good at math, try to get past that. It's such an amazing field with a huge variety of opportunities that something as small as disliking math should not stand in your way.

Disclaimer: In college, you will have to take math. There usually are A LOT of resources offering help - for example, at UCSB, I was a big advocate of CLAS which really helped get me through some of the tougher math classes. Take advantage of the tutoring services your school offers - there's really no reason not to.

What do you think of math? Love it or hate it?

Yours,

Tuesday, August 9, 2011

Feel Good Moment

My coworker just called me and told me she loved me.

Why? Well, after telling her I loved her too (it felt like a moment you couldn't leave someone hanging), she explained. Apparently, this change I added to the system has made her life so much easier. She went on to tell me how it has made adding 20+ items so much simpler and she LOVES this change.

It made me feel really good to hear that - one of the things I love is being able to help others and this just helps solidify my reserve that I'm doing what I love. At my last job, products were so slow to release, I would never really hear customers' comments. Since I'm working on an internal tool here, I'm starting to hear "customers" (i.e. coworkers who use the system) and I'm loving it.

This is why I love working on the front end & business logic/middle tier.

Yours,

Sunday, August 7, 2011

History: DOS Games Continued

I recently posted Part 1 of my history with DOS Games and so I wanted to write about a few more games I enjoyed.

Reader Rabbit was a staple in my day.

reader-rabbit_5

Sometimes I wonder if I should attribute my love for reading to Reader Rabbit but it seems a little far fetched so let's just say, it was a fun game.

Staying in the educational games category, I also loved Word Rescue. There was something so satisfying about dumping a can of slime on a little monster and if I happened to die, the worm would come and fly be back so I could try again. It was a magical game that I couldn't get enough of.

word rescue

Another such game was Number Munchers. I could spend hours on this game just munching away at numbers and trying to avoid the evil creatures who didn't want me to survive.

Munchers

Then of course there were the standard games we played in school:

Where in the World is Carmen San Diego?

witwics

O'dell Down Under

odell-downunder3

Oregon Trail - which I played both at home and at school. This is one of those classic games - it doesn't get much better than this. Well, in terms of DOS games.

oregon_1_large

While I'm talking about childhood games, I really can't leave out Crystal Caves (which was really my sister's favorite game)

25395-crystal-caves-dos-screenshot-more-in-game-actions

Cosmo's Cosmic Adventures

5075-cosmo-s-cosmic-adventure-forbidden-planet-dos-screenshot-ouch

Sky Roads

skyroads

And there you have it. The games that defined my childhood. Did these help me to become a computer programmer? I'm not sure. I know they helped me develop a deep love for computers. They set the foundation which I later built upon a deep passion for computer games.

More than that, they made me happy.

Yours,

Friday, August 5, 2011

History: DOS Games Edition

When I was a kid, I wasn't allowed to do much. My days consisted of studying, doing homework and practicing the piano and violin. I wasn't allowed to go over to my friends' houses during the week and on weekends, only in special cases (like a birthday). I wasn't allowed to watch TV except for Friday and Saturday nights starting at 8pm and then for one hour on Sunday.

This could be why most of my childhood contains memories of SNICK and I Love Lucy re-runs.

I'd get "5 minute breaks" in between practicing instruments - which of course I dragged out to 20+ minutes whenever possible. Here's what I would do during this time:

1) Play with barbies. My sister and I would come up with extravagant scenarios for our barbies, polly pockets and trolls.
2) Read. I loved reading back then and I love reading now.
3) Play computer games.

I'm going to focus on #3 for now. Computer games were a big part of my life back then. Sure, our computers might have looked like this:

Macintosh2 seies1

But that doesn't mean there weren't awesome games for it! One of my favorite DOS games was Hugo's Horrific Adventures.

hugo1fs

This game was one of those type to do what you want games. It was a step up from MUDding since it had graphics - and since I was born after MUDding really took off, this was all I knew. It was a great game though that could keep you entertained for hours since it was so hard to move on to the next part of the game. Well, at least it was hard for 7 year old me.

The ultimate game though was of course...Ski Free!

skifree

Who can forget skiing down a slope, skipping around trees and rocks, and flying over moguls (bumps from what I knew back then)? It was a wonderfully simple game.

One that you could never win of course. Because of this guy.

Skifree_yeti

Ah, he was the bane of my 7 year old existence. I hated that bear (yeti apparently). He would always come out and eat me and there was no way I could avoid him. However, I tried in vain over and over again to get past him.

"One day," I told him. "One day, I will best you and you will not eat me, Bear!"

Well, something of that sort. I never did beat him.

Why, on a blog dedicated to females in programming do I spend time talking about my past - specifically about (awesome) computer games? Here's the reason: I believe my love for computers started with these games. I could spend hours on them and hence, hours on the computer. If these games didn't exist, I'm not sure what I would have done but I probably wouldn't have discovered the joys of a computer. Since this was back around 1993, I wasn't very aware of this emerging thing called the Internet - and was a bit young to spend any time on it anyway.

Besides, games are fun.

Yours,

Wednesday, August 3, 2011

Coding nightmares

I worked from 8-5:30 yesterday. Then I went to the gym, went home, cooked dinner and started working again.

I stopped working at midnight and went to bed.

Then I dreamed all night about working. I had nightmares that instead of making development changes to the test database, I accidentally made them to the real database. I kept trying to fix it but it just made it worse. Then I would wake up, think that I really shouldn't have tried to keep working when I was so tired and purposely go back to sleep to fix it.

Rinse and repeat.

Then I woke up at 7am and came to work to do it all over again. How do I keep my head up through this?

I tell myself, "Self, when it works, it will all be worth it."

I just need to repeat that for the next 8 hours to get through today.  Please tell me someone else has had coding nightmares too and I'm not as strange as I feel.

Yours,

System Changes and Gorillas

Here is how I feel my day goes on the system I'm trying to learn and fix at the same time:

Because I've dealt with scrum a lot, let's just say the person giving me the requirements is the Product Owner, or PO.

PO: Here is a new kind of animal we've found. If the naming department decides on a name, let's ask the review committee to check the name.
Me: Ok. *magic happens* System is now set up this way.
PO: Wait, there's a bug here. When the naming department decides on a name, we don't want the review committee to get it before the research department can decide what kind of animal it is.
Me: Hm. *Checks* Oh, well that's because when the naming department gives it a name, it automatically becomes a gorilla. Actually, when someone saves the animal, even if nothing is done on this animal, if the type of animal hasn't been decided on, it will always default to gorilla. ...Is that not supposed to happen?
PO: Oh yeah, I found out about that gorilla default last week. Does it have to have a default?
Me: *Checks* Well, teh system is all tangled together. If I change it to not have a default, chances are something else will break. And given that we're, oh, 2 days behind schedule, I vote for not changing this part.
PO: Agreed.

Success!

And this:

PO: Ok here's the update I need you to make. If the type of animal gets changed, the cage it gets assigned to needs to change as well.
Me: Ok. *Magic* Done!
PO: Well that's fine now. But now because the cage changes, the picture of the animal automatically got set to blank.
Me: ...I didn't even know there was a picture of the animal. Ok, so what do you want it to be?
PO: Let's ask the image department to confirm the picture of the animal is still right.
Me: *Magic* Ok! Check it out.
PO: Well yeah, that's fine. But since the image department needs to confirm it, we should also ask the writers to make sure the description still matches the image once they're done with it. You know, if it's an angry elephant vs a calm elephant, the writers may want to know that.
Me: ...There are writers?

And so on.

Don't get me wrong though - I love my job. But since I've only been here for about a month, there's a lot of the system for me to learn. That's not so fun. I wish I could just magically know everything about the system already so I could fix all the problems. Unfortunately, I just have to grit my teeth and learn it through.

When I do fix things though, those are the fun moments. And those are the moments when I love being a developer.

Tuesday, August 2, 2011

Ted Talk: Game Mechanics

I thought I would start off this blog with one of the Ted Talks I love. If you haven't seen Ted Talks before, be warned: once you start watching them, it's hard to stop.

This isn't specific to females in programming but nevertheless, it's a really interesting talk.



What do you think? Do you believe in game mechanics? Do you think they can apply to "real-life"?

Yours,

Monday, August 1, 2011

Introduction to Lady Code Monkey

When I meet people for the first time, I always look forward to the inevitable question: "So what do you do?"

Before this question is even asked, I think about all the possible answers I could give.

"I'm a computer programmer."
"I'm a programmer."
"I'm a software engineer."
"I'm a web developer."
"I'm a software developer."

I usually choose #3: I'm a software engineer. Why? Well, this just sounds fanciest to me. And I always enjoy sounding fancy since I'm actually the opposite most of the time.

This is usually met with one of three responses:

1) "Oh cool." *Awkward pause as they figure out what else to say.* At this point, we'll usually move onto another topic.
2) "Oh wow you must be really smart then!"
3) "Wow really? I wouldn't have guessed. How did you get into that?"


The first response usually leaves me a little let down - I love to talk about what I do for a living as well as find out more about what the other person does. It intrigues me to learn more about what other people are doing 40 hours of every week (and sometimes more) and to share what I do. Unfortunately, in this case, the other person is usually not interested in this so we'll just move on.

The second response is a little awkward as well. I'm not sure why being a software engineer leads people to think I'm really smart but there's not much you can say to that other than to deny it or make some humble comment/joke. This viewpoint is really confusing. I mean, if I met someone who said they were a gardener, I wouldn't be like "Wow, you must not be very smart then!"

Actually, I'd do the opposite and start asking them so many questions because my thumbs are extremely far from being green. But that's besides the point.

Anyway, I understand that people usually mean it as a compliment but there are limited ways to respond to this without sounding like a jerk. I usually make some kind of self-inflicting joke and then move on.

The third response is interesting because it leads into more conversation - something I always love. It's also the response I get the most often because as a female, people don't usually expect me to say something like software engineer. I've never actually asked people what kind of field they would guess that I'm in but given the amount of surprise I usually get, I'm assuming the answer would not be engineering.

To be honest, that's one of the reasons I fought to stay in engineering. Being a minority in the field always made me feel kind of special in a way although it's always been my passion to get more women into software. I love being able to explain why I find software development so interesting and why you could too (if you are still looking). Unfortunately, many women are already against the idea of software development so I'm going to try to make this field more accessible to the masses.

Well, masses of women anyway.

I'll be writing about my journey into the field as well as my day to day experiences as a female software engineer.

**Disclaimer: I hope no one finds the title of this blog offensive. I know sometimes Code Monkey can be used in a derogatory way but I think we should embrace the name and use it to highlight our achievments in the field instead. Think of it as a sarcastic name - one that shouts, "It's time to use these barriers to our advantage!"

Yours,