Crest of the Stars is the first installation of a series of Japanese space opera novels written by Hiroyuki Morioka. As a space opera, it shares many common themes and elements as George Lucas's Star Wars saga, so if you are a fan of Star Wars, this is something you might want to take a look at. I have never read any of the books or graphic novels, but have seen the anime adaptations, and have always planned to read the novels once the series is complete, due to the richness of the world it depicts.
The story is set in, presumably, the Milky Way galaxy, probably several thousand years in the future. The Human race was able to explore and colonize the galaxy due to the discovery of something called Planar Space. Humans in this Universe discovered that space has five dimensions; the three-dimensional space that we usually reside in is connected to a two-dimensional space through portals scattered throughout the Universe. Humans discovered that they could take shortcuts through the Planer space to get to distant planets, and through this means populated the galaxy.
Since three-dimensional Humans cannot survive in a two-dimensional world, Humans had to innovate a technology that generates a small pocket of three-dimensional space around their spaceship when travelling through Planar space. The Planar space introduces some very interesting subplots, due to the fact that the portals are strategic military points, as well as the fact that battles in Planar space require a totally different military strategy than in three-dimensional space. For example, an enemy ship can be easily surrounded in Planar space, and in order to attack an enemy ship, either one must merge with their three-dimensional bubble, or fire a weapon which generates its own three-dimensional bubble. Planar space battles play a major role in the storyline of Crest of the Stars.
Also, at some point in history, Humans experimented with genetic engineering. They engineered a new race of Humans who were better suited to living in outer space; these Humans had superior three-dimensional reasoning, higher tolerance to the radiation of outer space, and were better adjusted to living in zero-gravity. They also were engineered to have additional organs which allowed them to connect directly to spaceships and pilot the ships with their minds. These Humans were treated as slaves to mine minerals from asteroids in the early days, and were by some considered to be subhuman abominations. These people rebelled against their masters and fled into outer space not to be seen for centuries.
After centuries of silence, these people returned to the eyes of planet dwelling humans, transported by a fleet of spaceships far superior to those of the planet dwellers, and proclaimed themselves as the Abh People. The Abh then begun a peaceful, yet forceful militaristic occupation of most of the Human worlds, forming the Abh Empire in a matter of decades. This expansion was motivated by their vision of bringing order to the galaxy, driven by their egotistical and elitist views of Mankind. Those planets which resisted occupation formed an allegiance known as the United Mankind, which despised the Abh Empire, but was not foolish enough to start a war with them.
The story of Crest of the Stars begins with the home world of a boy named Jinto being occupied by the Abh Empire. Jinto is the son of the president of this planet, and when his father released control of the planet over to the Abh, Jinto became the official representative of his home world. Jinto leaves his home world to undergo Abh education. Many years later, we find Jinto leaving school to begin his required military service. He meets the Abh princess Lafiel, who is serving her military time learning to be a pilot. She is tasked with transporting Jinto to the Abh home world (a large network of space stations), so he can begin his term.
During the trip through Planar space, their transport is ambushed by ships belonging to the United Mankind. Their ship is destroyed, but Jinto and Lafiel escape on a smaller ship out of Planar Space, and land on a planet controlled by the United Mankind. They uncover a plot to start a war with the Abh Empire, and need to find a way off the planet to warn the Abh home world of the ensuing attack. Their presence on the planet is discovered, and an exciting chase ensues eventually leading to their escape from the planet, and rescue. Upon being rescued by an Abh ship, they discover to their dismay that the war has already begun, setting the stage for the next installments of the series, which focus more on the war.
Hopefully I've peaked your interest in this immense universe, and hope you will look into it sometime.
Thursday, March 31, 2011
Ghost in the Shell (Spoilers!)
Although I don't watch much Japanese Anime anymore, one of my all time favourites is still Ghost in the Shell, which for me is the definitive cyber punk story. The first movie is set in the year 2029 in a dystopian Tokyo, Japan, where computers and technology have advanced to the point where human augmentation is fairly widespread. In particular, the use of brain implants and even complete electronic brain replacements have become commonplace.
The story focuses on a policewoman named Motoko, who works in a secret division of the police force known as Section 9, which specializes in cybernetic crime. Motoko is a lethal weapon produced by the government; her entire body is synthetic, so she is strong, fast, and capable connecting with computers making her a hacker of insurmountable skill. In the movie, Section 9 discovers that a highly skilled hacker is hacking the electronic brains of important business leaders and government officials. After thorough investigation, Motoko finds that the hacker is in fact not a hacker at all, but a computer program that has attained sentience through exposure to the immense data communications network of the time, an extrapolation of today's internet.
The movie puts the viewer face-to-face with a feasible near future, and poses uncomfortable questions about where our love of technology is taking us, and what exactly it means to be Human or even simply alive. These are familiar questions to those who are well read in Philosophy, but framed in a setting that makes us realize their imminent relevance in modern society. And perhaps of equal importance, the movie looks very, very cool. The movie looks great, but it is more of a cerebral experience than an action-packed one, so keep that in mind when you decide to watch it, but it's a movie I strongly recommend anyone to take a look at.
The story focuses on a policewoman named Motoko, who works in a secret division of the police force known as Section 9, which specializes in cybernetic crime. Motoko is a lethal weapon produced by the government; her entire body is synthetic, so she is strong, fast, and capable connecting with computers making her a hacker of insurmountable skill. In the movie, Section 9 discovers that a highly skilled hacker is hacking the electronic brains of important business leaders and government officials. After thorough investigation, Motoko finds that the hacker is in fact not a hacker at all, but a computer program that has attained sentience through exposure to the immense data communications network of the time, an extrapolation of today's internet.
The movie puts the viewer face-to-face with a feasible near future, and poses uncomfortable questions about where our love of technology is taking us, and what exactly it means to be Human or even simply alive. These are familiar questions to those who are well read in Philosophy, but framed in a setting that makes us realize their imminent relevance in modern society. And perhaps of equal importance, the movie looks very, very cool. The movie looks great, but it is more of a cerebral experience than an action-packed one, so keep that in mind when you decide to watch it, but it's a movie I strongly recommend anyone to take a look at.
Wednesday, March 30, 2011
Portal (Spoilers!)
Portal is a PC videogame developed by Valve, the same company responsible for the Half Life series of games. Portal was released in a bundled videogame package called The Orange Box, along with two other Valve titles: Half Life 2: Episode 2, and Team Fortress 2. Portal takes place in the same Universe as Half Life 2, but it is not disclosed when the events of Portal take place with respect to the events of Half Life 2. Portal, much like the original Half Life, takes place mostly inside a large research facility, with very little chance to see outside. This allows Valve to keep the story of Portal completely separate from Half Life 2.
Portal is a hybrid style of game, combining the genres of First Person Shooter and Puzzle game. In Portal, you have control of an advanced piece of technology that enables you to fire an energy beam at a wall and produce a portal on that wall. By producing a pair of portals on different walls, one can travel between these two locations by walking through the portal. The game requires you to navigate through different rooms and buildings, using the portals to traverse obstacles and solve puzzles. To understand why you might be required to do this, you need to know the story of Portal.
In Portal, you are awoken from a long sleep in an unfamiliar laboratory owned by Aperture Science. The only sign of life is the synthesized voice of an intelligent computer called GladOS. GladOS gives you the Aperture Science Handheld Portal Device (ASHPD), and asks you to test the experimental device by working through a series of obstacle courses. Between GladOS's discourse, the increasing danger of the obstacle courses, the mysterious absence of other people, and the disturbing red handwriting written on the walls of the hidden areas of the research complex, you soon realize that GladOS is trying to kill you and you must find a way to escape the building. After escaping the confined area of the obstacle courses, and working your way through the abandoned research complex now controlled by GladOS, you eventually find GladOS's central computer building and have a final confrontation with it.
Valve is scheduled to release a sequel to Portal this Summer, which after the popularity of the first game is planned to be a much larger game, with more levels, features, and online multiplayer capability. It's a game I'm looking forward to playing very much.
Portal is a hybrid style of game, combining the genres of First Person Shooter and Puzzle game. In Portal, you have control of an advanced piece of technology that enables you to fire an energy beam at a wall and produce a portal on that wall. By producing a pair of portals on different walls, one can travel between these two locations by walking through the portal. The game requires you to navigate through different rooms and buildings, using the portals to traverse obstacles and solve puzzles. To understand why you might be required to do this, you need to know the story of Portal.
In Portal, you are awoken from a long sleep in an unfamiliar laboratory owned by Aperture Science. The only sign of life is the synthesized voice of an intelligent computer called GladOS. GladOS gives you the Aperture Science Handheld Portal Device (ASHPD), and asks you to test the experimental device by working through a series of obstacle courses. Between GladOS's discourse, the increasing danger of the obstacle courses, the mysterious absence of other people, and the disturbing red handwriting written on the walls of the hidden areas of the research complex, you soon realize that GladOS is trying to kill you and you must find a way to escape the building. After escaping the confined area of the obstacle courses, and working your way through the abandoned research complex now controlled by GladOS, you eventually find GladOS's central computer building and have a final confrontation with it.
Valve is scheduled to release a sequel to Portal this Summer, which after the popularity of the first game is planned to be a much larger game, with more levels, features, and online multiplayer capability. It's a game I'm looking forward to playing very much.
Half Life 2 (Spoilers!)
I am not an avid gamer, but one of my favourite videogame series is the Half Life 2 PC game series. I like this series of games for several reasons, one being the game style. These games are First Person Shooter style games, whose gameplay depends heavily on physics. When I play these games, I feel very immersed in the environment, and I like how I am free to explore the world, in some ways more free than in real life. For example, in the game I might navigate to an interesting area by jumping on top of cars and over fences--something I wouldn't normally do in real life.
The other reason I like this series is for the story. The original Half Life game did not have a very complex story, and was more of a horror genre game. In Half Life, you play an experimental physicist working in a fictitious lab called Black Mesa, based on the Los Alamos National Lab. You are doing high energy experiments on rocks of a mysterious origin, which you later discover originate from an alien world. You also learn that the researchers have been able to develop interplanetary teleportation technology from them. At the beginning of the game, you witness the researchers perform an experiment on the purest sample yet found, which accidentally causes large numbers of wormholes, or portals, to open up. Unfortunately, these portals are connected to a world inhabited by alien life. The native wildlife proceed to pass through these portals and kill most of the researchers in the process. The rest of the game involves you attempting to escape from the research facility alive.
Half Life 2 has a much more in-depth story line. The story begins about 15 years after the events of Half Life, where we discover that the portal storm caused by the experiments at Black Mesa caught the attention of a hostile interdimensional totalitarial empire known as the Combine. The Human race was mostly wiped out by the Combine within a few weeks of their arrival; however, a Human representative struck a deal with the Combine to keep the survivors alive, under the condition that their reproductive capabilities be restricted, and moderated by the Combine. It is in this setting that we are thrown into the fray, to lead a rebellion against the Combine. The world is also much bigger in Half Life 2, where we travel both over water and land, seeing many different places. The game series now has a spin off series called Portal, which I think I will discuss in my next blog entry.
The other reason I like this series is for the story. The original Half Life game did not have a very complex story, and was more of a horror genre game. In Half Life, you play an experimental physicist working in a fictitious lab called Black Mesa, based on the Los Alamos National Lab. You are doing high energy experiments on rocks of a mysterious origin, which you later discover originate from an alien world. You also learn that the researchers have been able to develop interplanetary teleportation technology from them. At the beginning of the game, you witness the researchers perform an experiment on the purest sample yet found, which accidentally causes large numbers of wormholes, or portals, to open up. Unfortunately, these portals are connected to a world inhabited by alien life. The native wildlife proceed to pass through these portals and kill most of the researchers in the process. The rest of the game involves you attempting to escape from the research facility alive.
Half Life 2 has a much more in-depth story line. The story begins about 15 years after the events of Half Life, where we discover that the portal storm caused by the experiments at Black Mesa caught the attention of a hostile interdimensional totalitarial empire known as the Combine. The Human race was mostly wiped out by the Combine within a few weeks of their arrival; however, a Human representative struck a deal with the Combine to keep the survivors alive, under the condition that their reproductive capabilities be restricted, and moderated by the Combine. It is in this setting that we are thrown into the fray, to lead a rebellion against the Combine. The world is also much bigger in Half Life 2, where we travel both over water and land, seeing many different places. The game series now has a spin off series called Portal, which I think I will discuss in my next blog entry.
Tuesday, March 29, 2011
Editor War
The sad truth about the computer world, at least for young people in University or College, or hobbyists, is that it is home to a lot of people who are egotistical, arrogant, elitist, and anti-social who are unjustifiably caught up in themselves to be able to effectively work with other people. From what I hear, a lot of this goes away once you enter the workforce, supposedly via the interview selection process. This culture has produced some of the most meaningless conflicts humanity has ever seen, one of which being the so-called Editor War.
The Editor War is a dispute amongst two camps of programmers, those who use the text editor called vi (and related text editors), and those who use one called Emacs (or related). Both were released around the same time in the late 70s, and have remained two of the most popular text editors for writing computer programs. There are a lot of differences between the two, vi is very small and simple, yet allows you to perform complex text editing tasks, while emacs is very large containing far more features than vi, including a built in Tetris-like game. Emacs is very extensible, and very complex text editing tasks can be performed using the right macros. I believe that what drove the dispute originally is that Emacs was written in the Lisp programming language, which in the 70s was not a very popular programming language, and was decidedly slower than C, which vi was written in. However, nowadays this argument doesn't hold weight, as Lisp is much faster now than before.
I don't really plan on describing every difference between the two editors, my main purpose is to illustrate the pointlessness of the dispute. Choice of text editor is a personal choice that doesn't make any difference to other people; you produce a text file with content, through whatever means you like, and email it to your boss who requested it. All your boss cares about is the content, not which text editor you used to produce it. You will have to decide yourself which text editor you like, but once you pick one, try to stay with it and not be swayed by others opinion.
The Editor War is a dispute amongst two camps of programmers, those who use the text editor called vi (and related text editors), and those who use one called Emacs (or related). Both were released around the same time in the late 70s, and have remained two of the most popular text editors for writing computer programs. There are a lot of differences between the two, vi is very small and simple, yet allows you to perform complex text editing tasks, while emacs is very large containing far more features than vi, including a built in Tetris-like game. Emacs is very extensible, and very complex text editing tasks can be performed using the right macros. I believe that what drove the dispute originally is that Emacs was written in the Lisp programming language, which in the 70s was not a very popular programming language, and was decidedly slower than C, which vi was written in. However, nowadays this argument doesn't hold weight, as Lisp is much faster now than before.
I don't really plan on describing every difference between the two editors, my main purpose is to illustrate the pointlessness of the dispute. Choice of text editor is a personal choice that doesn't make any difference to other people; you produce a text file with content, through whatever means you like, and email it to your boss who requested it. All your boss cares about is the content, not which text editor you used to produce it. You will have to decide yourself which text editor you like, but once you pick one, try to stay with it and not be swayed by others opinion.
Math For Computer Scientists
I have never been a math major, nor have I ever been interested in pursuing research in math, but during my degree in Physics I took a lot of math courses, and am pretty comfortable with math overall. I feel that my math background has served me well in obtaining competitive grades in the math courses required for my present degree in computer science. Computer science education is interesting in comparison to Physics because it is a much younger field of study, and there are a variety of different career paths in the computer industry.
An interesting question that pops up a lot is how much math should computer students be required to learn, considering that some career paths in industry do use a lot of math, and others do not. It is a requirement in most Universities for computer students to learn elementary derivative and integral calculus, linear algebra, and discrete mathematics. Calculus and linear algebra are useful for computer simulations of complex systems, and computer graphics, but most students won't end up working in those fields. Discrete mathematics is very useful for understanding how computers and algorithms work, and most computer programmers would benefit from knowing some, but perhaps they could do without the calculus and linear algebra.
In my opinion, since there are uses for calculus and linear algebra in computer science, it's important that students get exposure to them so that those career paths that require them are not closed off entirely. It may be the case that these topics could come later the student's education, once they decide to pursue such a career path. Furthermore, I think that students gain valuable problem solving skills by taking these math courses, even if the content will not be useful in practice for their career. For these reasons, I think it is justified for these math topics to be taught to all computer science students in University.
Monday, March 28, 2011
Minecraft
Minecraft is a new videogame that has gained a lot of popularity in last year, and is especially popular amongst computer geeks. It's a first person perspective game in a 3D world, where everything in the world is made up of blocks. There are different kinds of blocks for different kinds of material, such as clay, gravel, sand, dirt, wood, coal, iron, etc, and in the game you go around with a pickaxe to mine these blocks for resources. Once you obtain a resource, you can build blocks of that type with it, at which point your imagination can go wild building 3D structures or artwork.
There are many different ways to play Minecraft. You can play the game by yourself at home, or you can set up an online game with friends. If you play online, you can collaborate with other players to produce larger, more involved structures than you could produce on your own, but you could also play individually at home taking your time exploring the world and working on pet projects. I've been playing Minecraft for about three or four months now, and am starting to get bored with it, because I've only been playing individually and am starting to run out of ideas for things to build. Once I have more time, I might consider playing online with friends, so I could get involved in more complicated projects.
Because there is no standard way to play the game, the game is appealing to many different kinds of players, who all choose to play the game in a way that is enjoyable to them. For this reason, I highly recommend you try Minecraft and I think you'll find that no matter what you will find some way to have fun in the game.
There are many different ways to play Minecraft. You can play the game by yourself at home, or you can set up an online game with friends. If you play online, you can collaborate with other players to produce larger, more involved structures than you could produce on your own, but you could also play individually at home taking your time exploring the world and working on pet projects. I've been playing Minecraft for about three or four months now, and am starting to get bored with it, because I've only been playing individually and am starting to run out of ideas for things to build. Once I have more time, I might consider playing online with friends, so I could get involved in more complicated projects.
Because there is no standard way to play the game, the game is appealing to many different kinds of players, who all choose to play the game in a way that is enjoyable to them. For this reason, I highly recommend you try Minecraft and I think you'll find that no matter what you will find some way to have fun in the game.
Friend's Wedding
Today I received an invitation to one of my best friend's wedding. I have never once attended a wedding before, and so this is an exciting opportunity for me. The wedding is well after I finish my summer job, and just before I start school again in September.
The wedding will take place in Calgary, which is the Bride's hometown. I have only been to Calgary once when I moved to Vancouver from Ontario with my dad. We drove to Vancouver in a U-Haul moving van with all our stuff, and only passed through Calgary briefly, so I didn't really get to see much of it. Hopefully when I go to the wedding, I will have more time to explore Calgary and get the full "Calgary experience". I also have some friends who live in Calgary so this would be a good chance for me to go visit them.
I hope that I can behave myself during the ceremony. Ever since I was a kid, I've had trouble with laughing at inappropriate times, which I've gained some control over as I grew up, but still struggle with at times. I can just picture myself now chuckling to myself during the ceremony and embarrassing myself. There must be something I can do to prepare myself for this so I won't feel like laughing, but I guess I have nearly four months to prepare. In any case, I'm happy that two of my best friends are getting married, and should try to help make the wedding as happy for them as possible.
The wedding will take place in Calgary, which is the Bride's hometown. I have only been to Calgary once when I moved to Vancouver from Ontario with my dad. We drove to Vancouver in a U-Haul moving van with all our stuff, and only passed through Calgary briefly, so I didn't really get to see much of it. Hopefully when I go to the wedding, I will have more time to explore Calgary and get the full "Calgary experience". I also have some friends who live in Calgary so this would be a good chance for me to go visit them.
I hope that I can behave myself during the ceremony. Ever since I was a kid, I've had trouble with laughing at inappropriate times, which I've gained some control over as I grew up, but still struggle with at times. I can just picture myself now chuckling to myself during the ceremony and embarrassing myself. There must be something I can do to prepare myself for this so I won't feel like laughing, but I guess I have nearly four months to prepare. In any case, I'm happy that two of my best friends are getting married, and should try to help make the wedding as happy for them as possible.
Sunday, March 27, 2011
Microsoft ASP.NET
During the summer I will be working with the ASP.NET team at Microsoft. I do not know much about ASP.NET but hopefully during this blog I can convince you otherwise. ASP.NET is Microsoft's latest server side programming language, for their .NET framework (see my previous post on .NET). What do I mean by server side programming? This is an internet concept that is perhaps best described with an example.
Nowadays there is many different kinds of content available on the internet, which you interact with in different ways. One type of content is typified by Youtube. When you watch a movie on Youtube, your computer starts running Flash code to display the movie in your web browser. Flash code is an example of client side code, code that runs on your computer at home. If you don't have flash installed, you will not be able to watch the video, and if your computer is too slow then your experience will be impaired
Another example of internet content is the Google search engine. When you type a query into Google, that query is sent to the computers at Google's headquarters in California, and those computers do some work to find the content you're looking for. None of this work takes place on your computer at home, which is the difference between the Google search engine and Youtube. Code that executes on a some external computer is called server side code, and ASP.NET is an example.
Nowadays there is many different kinds of content available on the internet, which you interact with in different ways. One type of content is typified by Youtube. When you watch a movie on Youtube, your computer starts running Flash code to display the movie in your web browser. Flash code is an example of client side code, code that runs on your computer at home. If you don't have flash installed, you will not be able to watch the video, and if your computer is too slow then your experience will be impaired
Another example of internet content is the Google search engine. When you type a query into Google, that query is sent to the computers at Google's headquarters in California, and those computers do some work to find the content you're looking for. None of this work takes place on your computer at home, which is the difference between the Google search engine and Youtube. Code that executes on a some external computer is called server side code, and ASP.NET is an example.
Microsoft .NET
While I'm working in Redmond, I will probably need to learn about Microsoft's .NET framework. Today I will describe what .NET is from my limited knowledge. The .NET framework is a set of tools and services that allow software developers to rapidly develop new applications. This is useful because many applications have similar requirements, like reading and writing files to disk, retrieving information off the internet, or displaying information in a window to name a few. With these tools already available, the application programmer does not have to expend time and effort in writing these tools from scratch, and testing them to ensure reliability.
The .NET framework is reminiscent of the Java Runtime Environment (JRE), which allows computers to run any Java program on any computer on which a JRE has been installed. Since there are implementations of the JRE on almost every popular platform (Windows, Mac, Linux), Java programs are considered to be platform independent. One big difference between the JRE and the .NET framework is that the .NET framework is not implemented on all platforms. Microsoft only has developed implementation of .NET on the various Windows operating systems, but not for any other. An open source implementation of .NET for Linux is in progress, called Mono, but at this point is not 100% completed. Due to this limitation, the .NET framework is not considered to be platform independent, but Windows specific.
The .NET framework is reminiscent of the Java Runtime Environment (JRE), which allows computers to run any Java program on any computer on which a JRE has been installed. Since there are implementations of the JRE on almost every popular platform (Windows, Mac, Linux), Java programs are considered to be platform independent. One big difference between the JRE and the .NET framework is that the .NET framework is not implemented on all platforms. Microsoft only has developed implementation of .NET on the various Windows operating systems, but not for any other. An open source implementation of .NET for Linux is in progress, called Mono, but at this point is not 100% completed. Due to this limitation, the .NET framework is not considered to be platform independent, but Windows specific.
Thursday, March 24, 2011
Software Developer and Test (SDET)
At Microsoft, there are three roles they hire interns for: Project Manager (PM), Software Developer (SDE), and Software Developer and Test (SDET). Over the summer, I will be working as an SDET for the ASP.NET group. Today I want to describe what the SDET role is, and compare it to the other roles.
Almost all software companies have PMs and SDEs, the PMs work on the design of the software system, and manage the team working on the project. The SDEs do the programming, they write the code that makes the software work. Their challenge is to write the best code possible, using the best techniques, algorithms, and programming languages, but also, senior SDEs can be involved in the design process with the PMs because they have their own perspective of the software system.
Generally speaking, the SDETs are in charge of testing the software. That means a lot of different things at Microsoft, and includes testing the design of the software for potential bugs, testing the functionality of the software product, testing usability, portability, and a wide variety of other factors important to the customer. Also, SDETs try to break the software to uncover bugs, which often involves a lot of programming to produce test cases.
Software testing is a very important part of the software development process, but is a part that is woefully ill-practiced at most small software companies due to time and budget constraints. Testing at Microsoft, however, is very important because they produce large, complex software which is used by hundreds of millions of people. In other words, code correctness and reliability are of the utmost importance at Microsoft, and they hire almost as many SDETs as SDEs to obtain a high standard for code reliability.
Microsoft Interviews
One week today I had interviews at Microsoft at their main office in Redmond, WA. Yesterday I received a job offer from them for the position I interviewed for, and I'm very excited about working there this summer. The interview day was very fun for me for a lot of reasons. Microsoft paid for my flight to Seattle, paid for my hotel and taxi service, and also provided me with a generous food stipend for the day. I stayed for three days and really got pampered, I had dinner the night before my interviews at the hotel and had a big steak and baked potato, and had breakfast in my room the morning of the interviews. The breakfast consisted of scrambled eggs with ham, hashbrown, and toast. This was probably the most memorable breakfast of my entire life.
I had talked to a few people who had done the intern interviews in preparation for mine, and they told me that it was the hardest day of their lives. As for me, I had a lot of fun. I had great conversations with all of the interviewers, asked them some really good questions, and I did very well answering all of their questions too. I think they were very impressed with me, at least that's what they said when they offered me the job.
I think the question I'm most proud of was a Tester question involving HTTP. The thing is, I didn't know much about HTTP and told the interviewer that, but he wanted to see how I answered the question anyways. He wanted me to test the protocol he wrote on the board, but only testing one keyword in the code (the GET keyword). Even though I don't know much about HTTP, I came up with some advanced test cases that he said he would expect from senior testers, so I was very proud of my answers. In particular, I pointed out potential problems with character encodings and version numbers. He seemed very impressed with that, and I think I impressed the other interviewers as well. Well, I suppose I must have since I got the job!
I had talked to a few people who had done the intern interviews in preparation for mine, and they told me that it was the hardest day of their lives. As for me, I had a lot of fun. I had great conversations with all of the interviewers, asked them some really good questions, and I did very well answering all of their questions too. I think they were very impressed with me, at least that's what they said when they offered me the job.
I think the question I'm most proud of was a Tester question involving HTTP. The thing is, I didn't know much about HTTP and told the interviewer that, but he wanted to see how I answered the question anyways. He wanted me to test the protocol he wrote on the board, but only testing one keyword in the code (the GET keyword). Even though I don't know much about HTTP, I came up with some advanced test cases that he said he would expect from senior testers, so I was very proud of my answers. In particular, I pointed out potential problems with character encodings and version numbers. He seemed very impressed with that, and I think I impressed the other interviewers as well. Well, I suppose I must have since I got the job!
Wednesday, March 23, 2011
Future of Books
The Kindle is a handheld electronic device for reading eBooks manufactured by Amazon, and has attracted a lot of attention lately. This is mainly because the device is not designed to be multipurpose, like the iPad or tablet computers, but is designed specifically for reading books. In particular, the screen is not a backlit screen like most other devices, and is easier on your eyes when reading. I've never used one, mainly because I'm too cheap to buy one and frankly don't read books often enough to justify buying one anyways, but I've seen a lot of them at school or on the bus, and I am impressed with them.
This technology could influence how we distribute print media in the future. A lot of print media has already been replaced by electronic media, with posters and billboards (and even restaurant menus) being replaced by large flatscreen displays, but the Kindle and other eReaders allow you to carry all your print media with you in one tiny package. And since print media is so compact in digital form, you can literally carry millions of books in your pocket. I think that there is a certain appeal to the physical book form still, in particular the action of flipping pages to quickly access information feels good to people, and is intuitive. At this point in time, I don't think that eReaders can match an old fashioned book in terms of feel and ease of use, but I also think that it's just a matter of improved software designed and touch screen interfaces before they reach that level.
This technology could influence how we distribute print media in the future. A lot of print media has already been replaced by electronic media, with posters and billboards (and even restaurant menus) being replaced by large flatscreen displays, but the Kindle and other eReaders allow you to carry all your print media with you in one tiny package. And since print media is so compact in digital form, you can literally carry millions of books in your pocket. I think that there is a certain appeal to the physical book form still, in particular the action of flipping pages to quickly access information feels good to people, and is intuitive. At this point in time, I don't think that eReaders can match an old fashioned book in terms of feel and ease of use, but I also think that it's just a matter of improved software designed and touch screen interfaces before they reach that level.
Switch to Windows
Well, I have accepted a job offer at Microsoft, and will be working pretty closely with .NET for three months this summer. This means that I will probably want to start using Windows again, because I believe it's a good idea to develop on the same system that you're developing for. I actually really like Windows 7, and I think that I will be happy using Windows as long as I can find some decent replacements for features I'm used to in Linux.
For example, I will probably look into command line features in Windows. I know about Cygwin, which is a POSIX compliant shell for Windows, but my past experience with Cygwin isn't very good. When I used Cygwin before, I found it was pretty slow, and was missing a lot of features I was used to. Probably I will want to look into more native solutions for Windows, and not a hack to use Unix programs. I would like to be able to open programs using ALT-F2 like in Linux, which I think is a useful feature, and also scrolling in windows that don't have mouse focus is a feature I'm very used to in Linux which is not the default behaviour in Windows.
I know that a lot of the programs I like in Linux are also supported in Windows, like Vim, Google Chrome, Open Office, Latex packages, ssh, and even 3rd party MSN Messenger clients like Pidgin, Empathy, and Emesene. In any case, I think working at Microsoft will provide me with the opportunity to become more familiar with Windows tools.
For example, I will probably look into command line features in Windows. I know about Cygwin, which is a POSIX compliant shell for Windows, but my past experience with Cygwin isn't very good. When I used Cygwin before, I found it was pretty slow, and was missing a lot of features I was used to. Probably I will want to look into more native solutions for Windows, and not a hack to use Unix programs. I would like to be able to open programs using ALT-F2 like in Linux, which I think is a useful feature, and also scrolling in windows that don't have mouse focus is a feature I'm very used to in Linux which is not the default behaviour in Windows.
I know that a lot of the programs I like in Linux are also supported in Windows, like Vim, Google Chrome, Open Office, Latex packages, ssh, and even 3rd party MSN Messenger clients like Pidgin, Empathy, and Emesene. In any case, I think working at Microsoft will provide me with the opportunity to become more familiar with Windows tools.
Tuesday, March 22, 2011
3D Craze
In the past few years, 3D movies have been re-popularized to the extent that nearly every new movie now has a 3D version. This is good for the movie theatres because it enables them to charge outrages prices for bad movies. Apparently the 3D affect distracts movie goers enough so that they don't realize how bad the movie really is (case in point, Journey to the Center of the Earth). A few months ago I went to see Tron:Legacy in the theatre, and I was very excited to go see it in 3D. Surely a movie set in a computerized world would be the ideal situation to apply the 3D effect to produce a surreal experience for the audience. In fact, not only was the movie by itself horrible, but the 3D effect was barely noticeable at all.
The 3D craze continues to grow, now into the realm of television and videogames. Nintendo is releasing their 3DS handheld gaming system, which allows users to experience the 3D effect without the use of glasses. A lot of research went into that technology, and while I don't know the details, I know it depends on having a small enough screen and looking more or less perpendicular to the plane of the screen. It doesn't surprise me to hear that many people who have tried the 3DS in Japan, and now in North America are experiencing nausea through extended use. The fact of the matter is, human eyes did evolve for this sort of use/abuse, and it's not clear at this time what kind of long term damage might ensue from extended use of 3D systems.
The 3D craze continues to grow, now into the realm of television and videogames. Nintendo is releasing their 3DS handheld gaming system, which allows users to experience the 3D effect without the use of glasses. A lot of research went into that technology, and while I don't know the details, I know it depends on having a small enough screen and looking more or less perpendicular to the plane of the screen. It doesn't surprise me to hear that many people who have tried the 3DS in Japan, and now in North America are experiencing nausea through extended use. The fact of the matter is, human eyes did evolve for this sort of use/abuse, and it's not clear at this time what kind of long term damage might ensue from extended use of 3D systems.
Saturday, March 19, 2011
Night Owls in Computer Science
Even before I started a degree in computer science, I noticed that my friends in CS were mostly night owls. A lot of people in Physics were also night owls, but I think that was because they needed to stay up late in order to finish homework assignments. I don't really think that's the case in CS. I think it more likely is the result of staring into the bright glow of computer screens all day, whether it's to write code, read books and articles, watching movies or playing games. Computer people are practically married to their computers, and it probably is having some adverse affect on their circadian rhythm, including my own.
Or perhaps its the case that night owls are naturally attracted to the field of computer science somehow. Maybe night owls have nothing better to do nowadays than stare at their computers in the quiet of the night. Maybe people didn't have this problem when all they had was candlelit rooms and books to read, or stories to tell. I guess for now it will have to remain a mystery to me, because I'm too busy studying for exams to look it up.
Friday, March 18, 2011
Corporate Inefficiency
I just came back from my trip to Seattle to interview for an internship at Microsoft. It was a very nice trip, and all expenses were payed by Microsoft, which included my hotel, food for three days, taxi service, and my travel expenses for getting to Redmond, Washington. I live in Vancouver, Canada which is only about 3 hours away by car to Redmond. I would have liked to take a Greyhound bus across the border to get to Redmond, but I couldn't figure out how to get Microsoft to reimburse me for a bus trip. Instead, the default request is for an airplane ticket, and that's what I ended up getting.
It probably took me longer to get to Redmond by plane because I had to spend so much time in the airport. For international flights they recommend you arrive three hours before your departure time, so you have time to go through security and customs. The plane ride is only about 30 mins long, and the airplane was small. I believe it seated about 80 people, and it had propellers on each side. I was kind of nervous at first because I had heard these small planes experienced more turbulence than regular jet planes, but the ride was in fact surprisingly smooth. Hopefully if I get an offer for an internship from Microsoft, I can avoid taking the plane and just go by bus next time.
It probably took me longer to get to Redmond by plane because I had to spend so much time in the airport. For international flights they recommend you arrive three hours before your departure time, so you have time to go through security and customs. The plane ride is only about 30 mins long, and the airplane was small. I believe it seated about 80 people, and it had propellers on each side. I was kind of nervous at first because I had heard these small planes experienced more turbulence than regular jet planes, but the ride was in fact surprisingly smooth. Hopefully if I get an offer for an internship from Microsoft, I can avoid taking the plane and just go by bus next time.
Sunday, March 13, 2011
My Linux History
I first started using Linux when I was an undergraduate in Physics, because Linux is widely used in the Physics community. This is because a lot of open-source, scientific software exists for Unix/Linux systems, and we were required to use some of this software in our Lab courses, and sometimes in theory courses as well. The first distro of Linux I ever installed was Ubuntu Linux on my old laptop. It was partially so I could use some software for a lab course, but also because I was just very interested in using an alternative to Windows, which I had used all my life. I remember that at the time I was very exciting about all the cool graphics effects that were available using the Compiz software, and I stayed up half the night trying to get Ubuntu installed properly.
Over the past 5 years I have tried many different Linux distributions, and have used Windows for some of that time too. I have almost always dual-booted my computer so that I could use Windows when I really needed, especially for playing games. Nowadays I am using Arch Linux, which is my favourite distribution yet. Arch Linux takes a bit more effort to install, but you learn a lot by doing it, and in the end you get a very nice system that has everything that you want on it.
I am in the middle of doing interviews with Microsoft right now, and I might be working there this summer as an Intern. If that is the case, I will probably start using Windows a lot more often. I'm glad that I'm interviewing there now that Windows 7 has been released, because I actually really like Windows 7 a lot; it's easy to use, looks pretty, is very fast, and I would probably be happier developing for Windows 7 than previous version of Windows. Even if I do end up using Windows more often, I doubt that I would stop using Linux altogether because I also like Linux. It will be interesting to see how I balance things in the near future.
Over the past 5 years I have tried many different Linux distributions, and have used Windows for some of that time too. I have almost always dual-booted my computer so that I could use Windows when I really needed, especially for playing games. Nowadays I am using Arch Linux, which is my favourite distribution yet. Arch Linux takes a bit more effort to install, but you learn a lot by doing it, and in the end you get a very nice system that has everything that you want on it.
I am in the middle of doing interviews with Microsoft right now, and I might be working there this summer as an Intern. If that is the case, I will probably start using Windows a lot more often. I'm glad that I'm interviewing there now that Windows 7 has been released, because I actually really like Windows 7 a lot; it's easy to use, looks pretty, is very fast, and I would probably be happier developing for Windows 7 than previous version of Windows. Even if I do end up using Windows more often, I doubt that I would stop using Linux altogether because I also like Linux. It will be interesting to see how I balance things in the near future.
Sunday, March 6, 2011
Cosmic Censorship
This is a topic that was of great interest to me when I was a grad student in Physics. Einstein's theory of General Relativity (GR) is a theory of Gravity which has persisted for nearly a century. Despite being one of the best tested theories in all of physics, a fascinating thing about GR is that scientists know that it must be wrong. Early on in the history of GR, scientists realized that the theory predicts what we now call blackholes. A blackhole's gravity is so strong that it is impossible for anything to escape from it once it gets too close. There is an imaginary surface surrounding the center of a blackhole from which nothing can escape, which is called the Event Horizon.
The problem with blackholes is that GR predicts they contain singularities; this means that the strength of gravity at the center of a blackhole is infinite. Usually when physical theories predict an infinitely large value, this means that the validity of the theory has broken down. Rather than gravity being infinitely strong, it makes more sense that the theory doesn't work anymore once we enter a blackhole. Luckily, the Event Horizon saves us from this failure; if nothing, not even information, can travel from the singularity through the Event Horizon, then the singularity cannot affect physics outside of the blackhole.
This is a nice argument, but unfortunately there is no mathematical proof that singularities are always surrounded by an Event Horizon. The Hawking-Penrose theorems prove the existence for very massive blackholes, but no proof exists for the general case. The hypothesis that singularities are always surrounded, or "clothed", by an Event Horizon is called the Cosmic Censorship hypothesis, and is one of the biggest open questions in Cosmology today.
The problem with blackholes is that GR predicts they contain singularities; this means that the strength of gravity at the center of a blackhole is infinite. Usually when physical theories predict an infinitely large value, this means that the validity of the theory has broken down. Rather than gravity being infinitely strong, it makes more sense that the theory doesn't work anymore once we enter a blackhole. Luckily, the Event Horizon saves us from this failure; if nothing, not even information, can travel from the singularity through the Event Horizon, then the singularity cannot affect physics outside of the blackhole.
This is a nice argument, but unfortunately there is no mathematical proof that singularities are always surrounded by an Event Horizon. The Hawking-Penrose theorems prove the existence for very massive blackholes, but no proof exists for the general case. The hypothesis that singularities are always surrounded, or "clothed", by an Event Horizon is called the Cosmic Censorship hypothesis, and is one of the biggest open questions in Cosmology today.
Friday, March 4, 2011
Trip to Seattle
This is the latest story in my ongoing epic adventure of job hunting for coop. Today I received an email from Amazon explaining to me that I would not advance to the next round of interviews with them. This was pretty disappointing for me, because not only were they my top choice for coop, but also I felt the interviews I had with them went very well. I suppose the competition for popular companies like that is fierce, and there were simply more talented or experienced applicants than I.
When I saw this email in my inbox, I also found that Microsoft had sent me an email as well, just a few minutes before the Amazon one. This email informed me that I had advanced to the next stage of interviews with Microsoft, at their main office in Redmond, Seattle. This more than made up for Amazon's rejection letter, and I am now very excited about my trip to Seattle. I have never been to Seattle before, so this will be a good opportunity for me to do some sightseeing as well.
No matter what the outcome, I'm sure that I will have fun on this trip, and am proud to have come so far in the interview process already.
When I saw this email in my inbox, I also found that Microsoft had sent me an email as well, just a few minutes before the Amazon one. This email informed me that I had advanced to the next stage of interviews with Microsoft, at their main office in Redmond, Seattle. This more than made up for Amazon's rejection letter, and I am now very excited about my trip to Seattle. I have never been to Seattle before, so this will be a good opportunity for me to do some sightseeing as well.
No matter what the outcome, I'm sure that I will have fun on this trip, and am proud to have come so far in the interview process already.
Subscribe to:
Posts (Atom)