Wednesday, December 10, 2014

Wednesday, December 10th, 2014

I have not worked on college applications since Monday, unless going through promotional emails and mail brochures from colleges counts as working on or updating my college list.
As for my thesis work, I managed to iron all of the errors out of/fix the compatibility of the book's sample code yesterday. When I tried to build the app, I discovered that I would have to sign the app using a certificate file called a keystore before I was able to build it and push it to my phone over USB. I learned that Android applications can be signed in one of two modes - debug mode and release mode. Debug mode signatures use only a single private key that the developer holds for verification of the app's source. In other words, it's a symmetric-key encryption where there is only one key, and that key is just a password the developer sets. Signing apps in release mode is far more complicated. As I understand it, the Google Play Store makes a public key available to normal users and installers of the app, and the developer creates a set of private keys that are stored in a keystore file. Every time the developer releases a new version of the app, he makes a new set of private keys. When a user installs the app for the first time or updates to a newer version, the installer program checks the public key provided by the Google Play Store against the private keys in the keystore file in the app being installed to see if they match. If they do, then the app is installed as normal. If they don't, the installer flags the app as incorrectly signed, and doesn't install it.
This morning, after some messing around with my compiler and a few internet searches, I figured out that the password used by default for the debug keystore file included with the compiler was just "android". Once I put in that password, the compiler was able to sign my app without any errors. It then saved a .apk ("Android PacKage") file to my desktop. I connected my phone to my computer with a USB cable, opened my command line tools, and pushed the package to my phone. I was relieved to see that it both installed and ran without any hitches, despite the enormous gap in software versions. So that was it! Now that I know how to build and test Android apps, I can start learning how to make apps that actually do things.

P.S. - Even though (I think) I know how to get the source code examples for this one to work, I would like to be able to not worry about compatibility or outdatedness at all, so I will likely be ordering a current edition of this or another book over the holidays regardless.

Monday, December 8th, 2014

In the wake of submitting my first college application and several other events, I have decided to rethink what I want from my college experience. I plan to build a new college list based on my decisions. In the meantime, though, I have started a bunch of Common Applications. I need to work on them.
In other news, thesis-related news, I have retrieved and resumed reading an old book that I purchased about a year ago on developing for Android. When I say old, though, I mean ancient - the book teaches developing apps for Android version 1.1. To put that in perspective, Google released Android version 5.0 (the cutting-edge version my phone runs) in early November of this year. This would normally be okay because it still teaches me the basic concepts of Android development if not its current features, style, or sophistication. However, a crucial element to understanding what's said in the book is having the source code provided on the publisher's website with which to work and experiment alongside the text. The source code is fortunately still available, but it is taking me hours to sort out the errors caused by its lack of compatibility with the Android development tools that I am using (which are, ironically, the ones that the book recommends - the book is just old enough that even they won't work). On top of that, I'm worried that Andoid 1.x apps won't even run on my phone. Oh, well. I guess I will just have sort it out. I have to fix the example source code before I can even build the example app, much less install it on my phone. But enough railing on the age of the book and my difficulties starting with it. Quite frankly, I'm relieved - no, thrilled - to be back to work again after such a long stretch of doing little more than fretting about and procrastinating against it.

Monday, October 27, 2014

Monday, October 27th

Today I worked on college applications. Specifically, I worked on completing the Common Application and, if I finished that, my Apply Texas application.

Thursday, October 23, 2014

Tuesday, Oct. 23, 2014

Tuesday was Picture Day. I spent most of it getting ready for and having pictures taken, as well as doing research for college applications. Mr. Correa gave the class a folio full of the contact information (business cards) of previous TAG mentors. I have found a handful of candidates, most of whom are in architecture, who may suit me, so I will be trying to contact them in the near future.

Friday, October 10, 2014

Presentation Day!

The dreaded day finally came. My presentation was a little intimidating, I think, and also too lofty and ambitious. I will need to work on balancing it so that it has enough technical detail to convince the judges and others who are very familiar with virtual reality that my idea will work and that it is original, but so that it is also down-to-earth enough that no one who is not as well-informed will see it as witchcraft (that is, more focused on the idea of VR/AR than my ideas), which I think may have been a little of happened today (and may have been my fault, since I did focus a lot more on introducing the technologies I am working with and from which I am drawing inspiration and code rather than talking about my own ideas, why they matter, and what I can actually pull off.) In passing my Nexus 5 around in its Cardboard, I think that I may have created a monster: by making this much hype for my project without actually showing any of my own products other than near-surface-level research and compilation of already available information. I have given myself huge shoes to fill. Hopefully the expectations do not devour me later, but on the other hand, it did go a long way towards communicating the ideas of my project in the limited amount of time that I had. Besides, the success of my presentation (or, at least, my Cardboard) did prove was that I have hit on a very promising idea. If I can prove that VR can be more than a novelty to be enjoyed once, a fleeting curiosity, then I will go a long way toward getting real consumers interested in my project. Maybe I can even make a few bucks off of some of the ideas, in the long run.

Wednesday, Oct. 8th

This class, Ms. Marberry visited with registration for the ACT. I worked on registering, researching the ACT. I also started work on my presentation.

Tuesday, September 16, 2014

Cardboard and Continuation of Learning

My Google Cardboard arrived about a week ago. It wasn't quite what I was expecting, but I'm not sure what I was expecting in the first place, and it wasn't any better or worse than whatever that was. It looks a little like a high-tech ViewMaster toy, and it's clear that it's just a proof of concept and not a consumer device, but it definitely does its job. I've also found some software that may make it compatible with the Unity graphics framework and Durovis Dive (a similar device) SDK. I think I can work with this. Other than that, I worked on the counselor recommendation survey and learning more about Android.

Monday, September 8, 2014

Such a Wide World

I am sure that I have mentioned before in one of my longer posts how wide a world the world of computer science is. Now, I am getting a first-hand look at just how wide it is. I researched the different virtual reality solutions on the consumer and developer markets this weekend, because actually getting my hands on a device would be essential to developing real VR and AR applications. In the end, I ordered a Google Cardboard, a "device" that is intended to work with any appropriately-sized Android smartphone. Essentially, as its name implies, it is a cardboard frame that contains a slot for an Android and some Velcro to hold it shut, an NFC (Near-Field Communications) chip to tell the phone when it is placed inside the Cardboard, a ring magnet to act as input when the touchscreen is inaccessible, and, most importantly, a pair of simple glass lenses. Paired with the Google Cardboard Android app, a Cardboard allows the user to watch YouTube, explore Google Earth and Google Maps Street View, and enjoy a host of small miscellaneous demos in immersive VR. Best of all, Google Cardboard only $20-35 on Amazon, while most more dedicated VR devices, like Oculus Rift, Sony's Project Morpheus (not even released to outside developers yet), and the Durovis Dive (which works on the same principle as Google Cardboard, but is made with higher-quality materials) range anywhere from $150 to $500. Later on in my project, I may upgrade to one of these more professional options, but for now I am entertaining high hopes for my budget solution.
Lastly, applications for Google Cardboard (much like Android applications) are developed primarily in Java, a programming language with which I am already familiar, and the Java-based SDK used to develop for Cardboard is publicly available. I suddenly find myself needing to finish learning how to develop Android applications, and that is what I worked on today.

Thursday, September 4, 2014

Counselor Visit

Ms. Marberry, our school counselor, visited today to give a long talk on college applications and college decisions that lasted most of the period. As usual, it was both edifying and reassuring. Thanks, Ms. Marberry! I worked the short remainder of the period to learn to write JavaScript, which will complete my knowledge of the Holy Trinity of Web Programming (HTML, CSS, and JavaScript.)

Thursday, August 28, 2014

Invisibility

A quote on which my senior thesis may draw considerably:
When technology reaches that level of invisibility in our lives, that’s our ultimate goal. It vanishes into our lives. It says: ‘you don’t have to do the work, I’ll do the work.'
- Astro Teller, head of Google X

http://techcrunch.com/2014/05/06/googlex-head-of-moonshots-astro-teller-technology-should-make-you-feel-more-human-not-less-human/

Humble and Scattered Beginnings


Casual Introduction:

I have always loved technology and its applications, and have always been an avid reader, gamer, and fantasy/sci-fi geek. Finding escape in worlds other than the real one is the basis of most of my favorite pastimes, so of course when I heard of the Oculus Rift and its promise to make those fictional world, where I sometimes felt just as much at home as in the real world, visible not only to my mind's eye but to my physical eyes as well, I was captivated.

Knowing that the field of virtual reality allows one to mesh imagination with reality, I could go on and on about virtual reality games and their future as the world's only gaming medium, but that would end up as nothing but a summarization of other people's research in my voice. No, for my senior thesis I wanted to do something (at least relatively) new. Architecture, another lifelong passion of mine, and virtual/augmented reality are a winning combination that has not, in my opinion, received enough attention. My senior thesis will focus on the impact that VR/AR technologies will have on the architectural design process and architectural designs themselves as VR/AR technologies enter the commercial (and eventually the consumer) mainstream.


Dramatic Introduction to Virtual Reality:

In these times, the world of technology is a world of literally infinite possibilities. Technology has advanced to the point that we can create whole worlds out of zeroes and ones, worlds that, soon enough, we will find difficult to distinguish from the real one by the believability of graphics alone.

Emerging virtual reality technologies are much like good books in their capacities to transport us to completely imaginary worlds, but are polar opposites to their ancestors of paper and ink in the way that they go about it. The words in a book are symbolic representations of settings and concepts, of sensory input, that are in turn interpreted and given meaning only in the reader's mind. However, a true virtual reality is just as its name suggests. True virtual realities are worlds in which a person can be directly immersed, not through the use of his imagination and his skills of interpretation, but with his physical senses. They are worlds that are said to be imaginary but that can actually be seen. Virtual reality technologies are in a nutshell the best demonstration since the invention of the written word that human creativity cannot be bound by a physical world.