I've seen a few people start getting excited about 4K TVs, monitors, and more, and I keep coming back to the same question: Why is everyone buying them now? Don't get me wrong, higher resolution screens are nice, and 4K screens look fantastic, but that's not the next step in resolution jumps. In fact, 4K is just a beginning step, and upgrading this early on is kind of like buying a 720p television when HD was just coming out: It's better to wait!
Showing posts with label phone. Show all posts
Showing posts with label phone. Show all posts
Tuesday, January 20, 2015
Tuesday, July 1, 2014
Photos of the Month - June 2014
With June finally over, it's time for some new photos of the month! While not as high of quality as last months, I still found these to be quite good!
Labels:
android development,
application development,
camera,
college,
google glass,
help I'm trapped in a tag and can't get out,
hobbies,
memories,
phone,
photography,
photos,
projects,
students,
technology
Thursday, June 26, 2014
Google Cardboard - A Perfect Start for Virtual Reality
Man, it seems like I've been on a VR rant these past two days now. Let's cut straight to the point on this post: Google Cardboard is the exact thing virtual reality needs right now. It's cheap, it's (fairly) high quality, and anyone can get it right now. This kind of access is the perfect push for anyone who wants virtual reality to succeed, and while the Oculus Rift and Control-VR might have a nicer case, Google has managed to blow them both out of the water. Let's go ahead and review everything really quickly.
Tuesday, April 1, 2014
Photos of the Month - March 2014
Kicking off April, here are some of my favorite photos that I managed to take during the month of March! Sadly I did not take as many as last month, but there are still a few good ones in here I think :)
My goal for this month is to take a ton more photos now :D
![]() |
| A Rocky Beach Day - Taken on a trip to the beach one day. |
![]() |
| Let the Games Begin - Taken at a Washington Capitols Hockey Game |
![]() |
| An Afternoon Sunset - Taken on a trip to the James River for a friend's birthday. |
Labels:
birthdays,
camera,
college,
hobbies,
hockey,
interests,
memories,
phone,
photography,
photos,
rocks,
shape the world,
snow,
sports,
sunrise,
sunset,
washington capitols
Friday, February 28, 2014
Photos of the Month - February 2014
Many people might not know this about me, but I have developed a very strong interest in photography over the past few years. Since coming to college, I've realized how much I want to have memories of everything I do, and so I take a lot of pictures. Actually, that's become an understatement, because it's more than a lot. It's something I've had a few people get upset about, partially due to some bad photos, partially due to the bulk. In fact, I routinely have to go through them, or risk not posting the photos due to the sheer numbers.
This past year there were tons of photos that I never uploaded simply because of the time it usually took me to go through them. I didn't (and still don't) have a nice camera, so I ended up using my phone, which means I had to manually go through each one. With my recent Android phone, I can now do so much faster since they are automatically synchronized everywhere (privately of course, with the option to share).
This past year there were tons of photos that I never uploaded simply because of the time it usually took me to go through them. I didn't (and still don't) have a nice camera, so I ended up using my phone, which means I had to manually go through each one. With my recent Android phone, I can now do so much faster since they are automatically synchronized everywhere (privately of course, with the option to share).
Labels:
camera,
college,
hobbies,
interests,
memories,
phone,
photography,
photos,
shape the world,
snow,
sunrise,
sunset
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.
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?
![]() |
| Clicking "Button 1" should insert a new tab between tab 2 and tab 4 |
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?
Sunday, January 19, 2014
How Google is Replacing Windows (For me)
A few months ago I was finally due for a phone upgrade and decided to make the big jump from an Apple iPhone to an Android Phone (the Galaxy S4). What I thought was going to be a simple switch ended up being a full switch to Google's platforms I've realized recently. Not only do I have a phone with Google's OS, I now have a tablet by Google, the Chromecast by Google, and of course, tons of applications that I use by Google (just look at this blog!) In fact, it's only been today that I've realized just how many products by Google I use. Sending an email to another student? Just so happens my school email is supplied through Google. I want to watch a TV show with breakfast? Chromecast is going to be the most convenient way to do so. My laptop even has the equivalent of a start button from Google on it now.
The funny thing is, I didn't do any of this on purpose. I just happened to end up getting all of these products from Google because they fit my needs exactly. Why do I use Google Drive more often than Dropbox? Because I'm usually on my email to begin with, and it's a click away. Why did I switch to Android from an iPhone? Because I wanted to be able to customize my phone more so. At first, many of these little things seemed almost pointless, but as time has gone on, I've found that Google manages to just do things right. When I need to bring a PowerPoint to class, rather than putting it on a USB flash drive, I can just upload it to my Google Drive, and then download it in class with a shortened URL from Google. No big hassle, no issues with the URLs' changing, it's simple and quick!
Dropbox I'm slowly beginning to use more (as evident in the picture above), but I wonder if I'll ever make the full jump. While Google does collect a lot more data, I don't really mind if it's advertising things I enjoy. Even so, Adblock Plus manages to hide the majority of ads, so I don't really even have to worry about that too much.
With all of that said, there's still a few things I won't switch to Google for. A big one is still of course my operating system (though they are pushing that very quickly). There are too many programs I prefer to use on Windows than any others (Even Linux sadly). On top of that, I still prefer Facebook over Google+ (Though that as well is slowly changing too). Even for document editing, I still prefer Microsoft Office over Google Docs, though I don't think those are quite the right comparison.
While Google is slowly dominating my life, they still have a ways to go before I'd be willing to jump ship for quite a few products. Maybe over the next year it will happen, but I'm still skeptical until I see it happening.
![]() |
| While I'm using Windows 8, there's still a "Start button" thanks to Google. |
Dropbox I'm slowly beginning to use more (as evident in the picture above), but I wonder if I'll ever make the full jump. While Google does collect a lot more data, I don't really mind if it's advertising things I enjoy. Even so, Adblock Plus manages to hide the majority of ads, so I don't really even have to worry about that too much.
With all of that said, there's still a few things I won't switch to Google for. A big one is still of course my operating system (though they are pushing that very quickly). There are too many programs I prefer to use on Windows than any others (Even Linux sadly). On top of that, I still prefer Facebook over Google+ (Though that as well is slowly changing too). Even for document editing, I still prefer Microsoft Office over Google Docs, though I don't think those are quite the right comparison.
While Google is slowly dominating my life, they still have a ways to go before I'd be willing to jump ship for quite a few products. Maybe over the next year it will happen, but I'm still skeptical until I see it happening.
Labels:
coding,
desktop,
documents,
flash drive,
google,
phone,
programming,
windows
Subscribe to:
Posts (Atom)





.png)