Showing posts with label goals. Show all posts
Showing posts with label goals. Show all posts

Tuesday, June 24, 2014

The Current World of Virtual Reality

For the past few months I've spent some time with the Oculus Rift, and have gotten to learn the basic ins and outs of how to make virtual reality applications, where the market for it is going, and some of the challenges that come along with it.  It's been quite a fun experience, and while I am no means an expert now, I feel pretty comfortable with my ability to use these technologies and develop applications for them should I ever need to.  While I plan to slowly add-on new features to Project Virtua as needed, there is not much more to do on it as of now, and so I've decided to start looking into other realms of technology to mess with.  This post is a quick summary of some of the things I've learned, as well as some of my views on where this technology should go.  While I won't be super active on these technologies, I will still post some things about them, so don't count me out completely.  Specifically, I have a few games I would like to code for it that I plan to start sometime over the summer if I can muster up the free time!

Friday, June 13, 2014

Photos of the Month - May 2014

Phew, it took me a while to get all of these ready to post online!  Many of these have been edited based on things I learned in my digital photography class last month, so I hope everyone likes them still! (Assuming people like them in the first place haha)

Sunday, June 8, 2014

Class, Jobs, and Glass!

Phew, it's been a busy month, and unfortunately I've slacked quite a bit on posting to this blog.  But no more, for I have returned!  For the next few days I plan to post quite a bit on a variety of topics, as I've had some really interesting experiences these past few weeks, with even more coming up!

Thursday, May 1, 2014

Photos of the Month - April 2014

Life has been a bit hectic recently, but I do have a few posts that I'm slowly preparing to start making public!  To start with, here are some of my favorite photos from the month of April in 2014.  Shout-out to Mia Venuti and Christopher Hanks for the fantastic ballroom photo!

A Dance to Remember - A picture taken right before the ballroom dance competition, Bamjam 2014!

Going Green on the Water - Taken during a quick break from finals week, my girlfriend and I rented a paddle boat for an hour.

The Trees Spring to Life - Taken on one of the really nice days we had recently, the sky ended up perfectly behind this tree.
For the month of May I am taking a photography class at my University, so hopefully I'll have many more photos for this upcoming month!  Feel free to leave your comments below!

Monday, February 17, 2014

Why to Avoid Dynamic Tabs on Android and iPhone Development

Recently I began finishing my first Android application.  They app itself is pretty simple in my mind, but actually creating the application has proven much more difficult than I thought it would originally.  This difficulty is mostly due to things like creating and managing databases for storage, utilizing fragments instead of activities for new screens, and creating user-interfaces that are quick and responsive without requiring multi-threading.

Clicking "Button 1" should insert a new tab
between tab 2 and tab 4
The bulk of my problems have been caused with creating the user-interfaces.  A recent problem I ran into was displaying large amounts of information on a single screen.  My original approach was a tab-based system, where users could add new data sections, which would then appear as a new tab.  These tabs could then be scrolled through, and each one would contain a different sub-section of the application.

The big requirement for this however was the need for dynamic tabs.  That is to say, I needed to be able to easily insert a tab between two other tabs.  This proved impossible with the default TabHost object, as there is no insert method available with it.  I opted then to simply remove the last tab, add on my new one, and then re-add the deleted tab.

It was at this point however that I realized that this was a surprisingly weird feature to leave out in the ADK though.  In fact, my thought was that this must be a bug in the ADK, as this seems like something that everyone would want.  Taking the problem to Google showed a few forum posts about this as well, though it didn't seem like anyone had a good solution.  In fact, I still don't have a good solution other than this, and the steps involved get even more complicated.  You can't just "delete" a tab, you actually have to remove both the tab itself, as well as the content that the tab shows, then add the new tabs.

This is much more complicated than it needs to be though.  Why not have an "insertTab" method for the TabHost?  Why would such a seemingly important method be left out?  While I can't confirm the accuracy of this, I believe I actually found the reason, and it's the exact reason why I opted out of using tabs for this purpose (well, sort of, more on that later).

Let's start with an example of bad tab usage:  imagine you are looking at someone's internet browser.  Imagine this person is me, and when you look at the amount of tabs in their chrome browser, you see this:

Kind of painful to look at that many tabs isn't it?  That's the point I want to bring up: dynamic tabs in an application are very dangerous and bad for the user.  It makes sense that dynamic tabs are not supported, as it would very quickly become a cluttered interface as the user added more tabs to the screen.  If you force your user to create a new tab to view content, looking through that much data can be annoying.  Even if the tabs scroll, that can still be overwhelming when trying to view the page.

There is also another problem that occurs, especially in older devices: memory limits.  If you start adding more tabs, you'll find that your memory usage skyrockets.  This is nothing out of the ordinary though, and is a problem that can be easily combated by simply limiting the maximum number of tabs, but it's still a problem nonetheless, and is prevented by not allowing dynamic tabs.

There are probably a variety of other issues that come up with dynamic tabs, so this brings in the question of whether dynamic tabs should even be used.  In my case, I realized that tabs would not be the most efficient way to achieve what I wanted, so I scrapped them and took on another solution.  The solution I took was instead to use a spinner, and updated the content based on what is selected, as well as breaking up where the data is displayed.  By using a spinner, you allow the user to display more at once but with less clutter due to how spinners are designed, and by breaking up the data, you help guarantee that the user can never overwhelm themselves on accident.

There are of course other solutions that can be done other than spinners and breaking up the data, those are just the ones that I chose.  If you've encountered a similar issue, what was your solution?

Friday, January 10, 2014

Shape the World

I've contemplated starting a blog for quite a while now, and with 2014 starting off and my senior year getting closer to its end, I figured now is as good of a time as ever to start this.  The big question I've had is this though: What do I want to accomplish with my blog?

While I love to code and am a huge tech geek, I also have a wide variety of other areas I'm interested in.  I do ballroom dance, I like to draw, I am a huge music nerd.  I don't want just another "techy blog", I want something more!  At the same time, I want something organized, something inspirational to others, something that people can go to and get help from.  That's why I'm starting this blog as Shape the World.

Coding is a huge thing I like to do, but there are
other things on that list too!
The goal of this blog is to give me a spot to talk about the things I do, how I went about them, or why I think they're important.  While I'm sure this has been done before, I feel like I can bring new experiences to the table due to the wide variety of things I do, and the ways I go about doing them as well.  Maybe some of them are novel, maybe not, but there's only one way to find out, so I'm jumping in head first!

I of course would love to have feedback on people's thoughts with what I do as well as what more I can do.  I've got many ideas that I'd like to make a reality, and I hope this blog will give me a means to do so one day.  For now though, I'm just going to work on Shaping the World, one blog post at a time.