Archive for the ‘Software’ tag
Evernote 2.0
In my previous post on Evernote, I discussed it’s value for simple note taking.
Since that post, Evernote has released a comprehensive update of their mobile application which is significantly improved. The new interface changes it from a simple note taking app to a mobile version of the full app. Admittedly, I am not a power user of this software, but I haven’t found anything that I can’t do on the mobile version that I do on the desktop. For taking, searching, and viewing your notes, the mobile app is now just as good for me as the full version. In fact, for note taking at the Unite conference , I took notes on my phone for almost every session simply so I didn’t have to fire up my laptop each time.
One of the best functions of the mobile app is the ability to snap pictures with a smart phone and keeping it as a note (whole or part). I like to write notes when I’m listening to a talk, but some slides just have too much code that I’d rather just see as a whole later. Evernote’s mobile version has a button explicitly for this purpose. I can take the picture, place it right in line with the notes, and get right back to taking notes.
In addition to note taking, I have begun using Evernote for lists as well. The two that I reference the most often are a list of games I want to play (AKA my backlog), as well as a list of links I want to read on various subjects. The latter is incredibly helpful to me. Without it, I tend to end up with a ridiculous number of tabs open and end up not reading some of the more in depth articles. Now, I have a go to list of articles to read if I’m waiting around somewhere or if I actually make it through the open tabs on my computer at the time.
Additionally, I’ve been using Evernote to keep my notes on CS106B (update coming soon) all in one place. I like this far more than a physical notebook as I just need to click through the notes, and I am able to add more notes (for example, the code on the website for that lecture) and reorganize after I’ve written them.
Finally, I plan to start using it to track my major electronics purchases so I don’t need to worry about where i placed receipts. I can simply take a picture of the receipt and search for it later.
If you haven’t started using it yet, you can find the desktop client here or use the QR code for the mobile app:
Dropbox
Dropbox is a service that allows cloud file hosting across all major platforms (Linux, Mac, Windows, iPhone, Android, etc.). In addition to allowing access to my own files anywhere, I am also able to share any files I choose with other Dropbox members. Dropbox offers 2GB of free storage for first time users. You can increase your storage by a few hundred MB by completing some actions when you sign up to get used to the service, or by referring friends to the service*. You can also get significantly more storage by paying a monthly fee. Rates are available at the site.
At work, I am currently using Unity3D, which works in both Mac and Windows. By storing my project files in my dropbox, I can open the project folder I was working with in Unity on either platform and be right where I left off regardless of which platform I was using previously. Additionally, I am hoping to work with a colleague on a programming project collaboratively. Instead of worrying about securely sharing files in a timely manner, we can simply set up a shared drop box folder so the work is done for us.
I’ve been using dropbox for over a few months now and haven’t had any real problems. They also have one of the best hiring pages I’ve seen. Have you used Dropbox? Any problems?
*If you are interested in getting a Dropbox account, you can use this link: https://www.dropbox.com/referrals/NTY1NDE0NTE5, which will give me some extra storage. If you don’t feel comfortable with that, you can also get a free account from the Dropbox site linked above.
Browser Tab Innovation?
Notsomuch, actually. Since my post on browser tab stagnation, not much has changed in terms of offerings from the major browsers. However, I have found two services that have addressed some of the issues I raised: Google Bookmarks and fur.ly.
Google Bookmarks
In my post on browser tab stagnation, I claimed that bookmarking simply wouldn’t solve many of the problems I have with the state of tabbed browsing. I still feel that way, but Google Bookmarks has helped with at least one of the problems I’ve had with browsers recently; instead of the named groups of tabs I was looking for, Google Bookmarks’ tag feature allows me to see related sites. Being able to tag bookmarks and keep them consistent in the cloud (rather than having to update them on separate machines) has helped me immensely. First, if I find a work related link at home, or a link I think would be interesting for a personal project at work, I am able to put them in the same place, with the same amount of effort as traditional bookmarking, regardless of my location. Second, instead of having to create folders and worry about organizing bookmarks, I can simply tag the bookmarks and search by tag later. Moreover, I don’t even have to enter the entire tag if I’ve already created it as Google bookmarks uses autocomplete.
Before I started using Google bookmarks, I would generally just bookmark a site and put off organizing them until later (I still haven’t done that since January). Now organizing is a simple matter of typing the tag. The tags are especially helpful because they allow me to see what references I have for a specific topic. The ability to search and the reduction in the amount of work cause me to bookmark more sites for reference. As an example, I am interested in programming for my phone, so I have been reading up on Android programming. The problem is, between work and other obligations, I haven’t been able to look into it for the past few weeks. Bookmark tags allow me to search for anything I’ve added about Android and either remember where I was in the process, or dive in from a different direction.
To use Google Bookmarks, I have added the Bookmarklet from here to each of my browsers.
fur.ly
fur.ly is a URL shortening service that accepts multiple URLs and provides a shortened link. Upon opening the link provided by fur.ly, the user sees the first page from the list of URLs topped by a small header with links to 1) get rid of the header 2) move to the next link 3) see statistics about the fur.ly link as well as a dropdown menu of all the pages supplied with the original link. This is a unique service that allows for a bit more focused browsing on a particular subject. While I would prefer a browser feature that allowed me to save and load multiple tabs, this service at least allows me to share multiple links in a focused way.
Conclusion
Sadly, fur.ly still requires about the same amount of effort as my usual method of simply copying and pasting the links into an email (to myself or a friend/colleague). Hopefully newer versions of browsers will address this natively. Also, while Google Bookmarks has been great, it would be great if I could simply name a tag and click a few tabs that could be labeled and saved with that tag rather than having to click and bookmark each tab and add the same tag repeatedly. Finally, I would still like the ability to control the state of my tabs in addition to having it automated. I have learned to work around this problem, but I would prefer to be able to have it addressed by the browsers so I don’t have to worry about losing tabs/windows when I close my browser.
New Software: Evernote
As I promised too long ago, I will begin reviewing some productivity software that I have begun using.
Evernote is a program available on nearly every platform (including mobile platforms) and on the web. Users can make small notes and organize them either in a downloaded app (which will sync to the cloud for uniformity across all versions) or directly on the website. Notes can consist of websites (in part or in their entirety) through plug-ins for Firefox and Chrome, pictures, and text.
One of the primary benefits of Evernote is the ability to sync notes across all platforms. This is what makes cloud computing fantastic. At one point, I was having trouble opening Evernote in Windows 7. Thanks to the synced online version of the program, I was able to view all of my previous notes and add anything I needed. Eventually, the program started back up and I haven’t had problems since. Had this been an offline application, I would have had to resort to other methods on note taking while I found a solution. But with the Evernote website to complement the downloadable program, I am able to make and view notes if the program acts up, or if I am at a computer without the program.
While there are plenty of ways to use Evernote, I use it mostly to keep my notes organized no matter where I may be. One of my primary problems with note taking is that I tend to have notes scattered in several locations and media types (home vs. office, digital vs pen and paper, etc.). This is particularly problematic because I work from home (or while traveling) and not having my notes leaves me trying to remember where I left off. Additionally, sometimes I need to stay at the office and would prefer to do work on a personal project after working a full day. Here I am left with the same problem. Evernote helps solve these problems by keeping my notes all in one place. I was previously trying to use Google Docs for this purpose, but I find Evernote more conducive to note taking and now use Google Docs for larger documents.
Recently, my boss gave me a paper to proofread just before lunch. I went to my office and put notes in Evernote as I read. About halfway through I went back to the conference room, hit sync and finished taking notes there. Before using Evernote, I would have had to use a USB memory stick or emailed the file to myself. With Evernote, I only had to hit the sync button.
I have the Android app for Evernote on my phone, but I haven’t used it much since I first got it. The only complaints I have with the mobile version is that in order to see all of your notes, you have to search the empty string. That is, hit the search button with nothing in the search bar. This isn’t a negative per se, but I only figured it out by trying every option possible. It would have been nice if that was explained when the program started for the first time. Also, none of the notes are in their respective notebooks as they are in the online and desktop versions. These are minor problems, though for an app that is primarily designed to simply take notes on the go. It serves as a good sidekick to the desktop app.
I’ve been using Evernote for quite a few months now, but I still use it primarily for taking simple, text-based notes. For this purpose, it has been a great help in providing a single repository for my notes for everything from work to personal projects. I’ll be sure to post a follow up if I delve into the extra features.
Mint Sucks Redux
After writing about Mint, I decided to give it a second chance to impress me. While I maintain that software should be intuitive (e.g. I should be able to change categories of purchases easily, anywhere), I gave in and used the method Mint seems to be forcing me toward; I used the ‘transactions’ tab to go through my purchases from the last six months to re-categorize any mistakes.
Now that my purchases are categorized appropriately for my budget, I would like to analyze my spending for those six months. When it comes to my spending habits, I can compare my purchases this month to last month by category. This is mildly interesting, but month-to-month it is easy to have large (or unusually small) expenditures in a given category throw things off. I really need to look at my average spending over a longer time scale to determine whether I am over or underestimating my spending in specific categories.
One way to do this is to look at the ‘This Year’ tab on the Trends page. However, this only shows categories, not subcategories. This means I can see how much I spent on food but not how much I spent on restaurants vs. groceries. This provides very little insight. While doing this, I saw that my spending in the automobile category seemed a bit high. I wanted to click through to see what I had spent so much on for my car, but I am unable to. Unacceptable.
The only way I was able to look into my spending in subcategories was to go through each month and perform the arithmetic myself to average my spending. Worse than not being able to do this fundamental budgeting task is the fact that I can’t seem to determine what statistics I should look at to see where I can improve my budget. I’ve tried clicking around the Trends page and seeing if any of the provided statistics give me any insight into my finances, but none of them do.
I’ve noticed a couple of other minor problems since my last Mint article like the inability to spread a lump sum payment over several months; my gym membership is done by semester, though I’d like to divide it up monthly. Also, it would be great if Mint would ‘learn’ what categories a purchase should be in if I change it for several months in a row; my ATM withdraws have Penn State in the name of the ATM and thus go into the ‘tuition’ category. If these minor problems were all that existed, I would be writing a glowing review of how excellent Mint software is with a small addendum on features I’d like to see in the future. But here we are.
I would like to address why we are here. It was not my intention to write two articles disparaging Mint (or any other software). In fact, when I began using Mint, my initial notes were quite positive. I couldn’t wait to write a review of how great this software was and how it helped me fine tune my budget with little to no effort on my part. That simply isn’t the case, though. I will likely still use Mint to keep track of my spending, but I can’t see recommending it to anyone with such a lackluster interface. When it comes to budgeting, there is too much work for the user to do to come up with meaningful statistics to consider Mint a tool for quick, easy budgeting.
Seeing is Believing: Why Prototyping is Worth the Time
This week I was joined by a former colleague who previously helped work on a story-based course similar to the one we are trying to design. The previous course had no game elements and was targeted at the general university student rather than at the middle school level, but the design of the art and story could be similar for these two projects. While we had a few ideas for the story and individual game segments prior to his arrival, bringing him in really jump-started the project and helped flesh out many ideas for the story and gameplay. More important than the help of another person, though, was seeing prototypes for ideas that we had previously only talked about.
The first example of this came when my colleague decided to mock-up a martian landscape. We had been discussing using a martian landscape with a space station as the main setting for weeks. Seeing the basic landscape allowed me to consider the finer details of the scene instead of just the big picture. It also assured that the picture in everyone’s mind for this space station was nearly identical, rather than the unlimited possibilities we leave open by simply discussing it and not having any visual representation.
The second major breakthrough came when I was able to convince my boss that having controllable 3D characters was a perfectly reasonable possibility for this game. At one point, we were debating having much of the story happen through comic strip-like interludes with text possibly supplemented by movies. But with Unity, I found it was not much of a challenge to put together a control and camera scheme for any 3D model that we have. I thought perhaps my boss was simply more fond of the movies/comic idea than having controllable characters until I showed her a demo with a controllable character having a discussion with an NPC (non-playable character). She then informed me that she previously was concerned that controllable characters would have taken more time than we would be able to allocate.
Giving visual representation to ideas can serve two purposes in software design (games or otherwise):
1. It gives your team a unified representation of the visual object you are discussing.
2. It proves that the idea can be put into action.
In creating the dialogue between the playable character and the NPC, I presented a basic paragraph about Mars (borrowed from the wiki entry), then presented the user with a question and the ability to offer 3 answers, each with its own response from the NPC. While the code for this would be quite inefficient for a larger dialogue, I have proven that dialogue between characters can be done in a short time. While I’ll need to tackle the dialogue problem in the near future, this prototype demonstrated to my boss that player controllable characters can be used to do nearly anything we require in order to convey the story. With only a few hours of work, I was able to settle a debate we had been having for months. Even if this wasn’t what we wanted, having this decided for only a few hours of work is certainly worth the small investment.
Google Pac Man
As many of you probably already know, yesterday Google changed their logo to a playable Pac Man game in honor of the 30th anniversary of the game. A few members of StackOverflow put together the code and assets to allow others (like me) to host it on their own site or even locally. Here is the game:
And here are the assets if you want to host it locally:
Unity
Currently, my job is to create a game to teach astronomy to middle school students. Luckily for me, there is an abundance of options for game engines to help me ranging from the simple and free (Scratch and Alice) to the expensive and complex (Unreal, etc). For our project we wanted an engine deep enough to cover multiple game types in one game that was reasonably priced. After debating over the 2D vs. 3D issue, I decided 3D might be too complex for the style of game we wanted to create. However, after prototyping a few game ideas in several different engines, we settled on Unity for its flexibility and affordability (free for the indie version $1200 for the pro version). Even though it is primarily a 3D engine, 2D games can be made without much trouble.
In order to get familiar with the Unity engine, I followed two tutorials I found in the Unity forums. The first was a basic shmup.
The second tutorial was a redux (in C#) of the first plus an extension that included models for the ship and asteroid. While I followed along with this tutorial, I decided to keep everything in JavaScript. This helped me to clarify some of the elements of the Unity engine independent of language.
After completing the tutorials, I decided to extend the game a bit to include bombs, more asteroids and large asteroids. As of this writing, I haven’t made final decisions for how to complete the game (whether it will be a score the player must or a set time limit), but the current version can be found here:
http://programmingmylife.com/spaceShooter/spaceShooter.html
Unity makes the process of uploading any game you build in the engine to a website incredibly easy. When making a build of a game you simply have to use the following settings:
File > Build settings > web player (make sure to include all scenes)
When you build the game it will create a *.unity and a *.html file (the * represents the name of the game that you set). Assuming your web host knows what to do with the .unity file, you can simply upload the two files and the game will run at that web location. If, like me, your web host doesn’t support the .unity file format likely this will cause your browser to fail to download the content. I received an error on Chrome stating ‘Failed to download data file’ with details ‘Download failed, try again’, but on Firefox, the download status simply stayed at zero. To fix this, you will simply need to include in the directory with the .unity and .html file the following in a file called web.config:
<?xml version="1.0" encoding="utf-8" ?><configuration> <system.webServer> <staticContent> <mimeMap fileExtension=".unity3d" mimeType="application/vnd.unity" /> </staticContent> </system.webServer> </configuration>
I was able to find these instructions from this query at Unity Answers. Unity Answers is a great service that runs in addition to the Unity forums. These two complementary services along with the users give Unity a strong community that should allow users from novice to advanced to find answers to any problems they might have.
How to Set up androidVNC with TightVNC and a Linksys WRT54G Router (Windows)
Have you ever gotten to work and realized you forgot to start the download for that movie that just released today? Or maybe Steam is having a sale and you want the game downloaded before you get home so you don’t have to wait to play. VNC clients allow you to do just that, and now you can do it from anywhere with an Android device and a data plan (or on Wifi).
In the past week since I bought my Droid Incredible, I have been scouring the internet and asking friends to suggest their favorite apps. Nearly all of the apps have been easy to install and use, save for one. AndroidVNC requires a small amount of setup by the user (especially if your home network is not configured for outside VNC access). I wanted to create this post because while this isn’t a complicated process, I wasn’t able to find a set of instructions with all the steps in one place.
I intend to make ‘How to’ posts for any software or hardware project I do that requires me to use multiple sources to finish. This will hopefully serve to help others that use similar configurations in the future and to remain as a record of what I’ve done for my own reference.
NB: If you are trying to do this with a different router, you should determine how to forward the ports (5900, 5800, 5500) on your router, then skip to step 2.
Step 1:
To begin, we need to setup port forwarding on our WRT54G router. First, you will need to enter the setup page for your router. The default address for this page is 192.168.1.1 which you can simply enter into your browser address bar. If this doesn’t work, you likely either have a dynamic IP (here is how to set up a static IP), or your router’s IP address has been set to a different address and you will need to go there instead. Upon entering the settings page, you should be asked for a username and password. The defaults here are to leave username blank and enter the password ‘admin’ without the single quotes. I do suggest changing these to include a real username and a non-dictionary word password for better home netowrk security.
Now that you are logged in to your router settings page, you need to click the security tab and uncheck the ‘Block Anonymous Internet Requests’ box seen here:
After you have done that, be sure to click the ‘Save Settings’ button at the bottom of the page.
Before we can forward our ports, we need to know what the local address of the PC is. You will need to open the ‘Run’ box of your operating system. In Windows 7 and Vista, just type run into the search box in the start menu. For XP, click the run button in the start menu. Type ‘cmd’ (again, without single quotes) into the box and hit enter. In the window, type ‘ipconfig’ (no quotes), hit enter, and look for the value next to IPv4 Address. It should be of the form ’192.168.1.XXX’. Write this down.
Finally, we are ready to forward the ports! Back in the WRT54G setup window, click the ‘Applications and Gaming’ tab. Type the ports to forward as seen below, check the enable boxes (on the three lines you are changing), enter the last part of the IP address you found above in the IP address boxes, and hit the Save settings button again. If done correctly, the settings should be on the page when it reloads. If you do not enter an IP address into the box(es), the ports will not save and you will need to re-enter the information.
Step 2: Finding your IP Address
This one is simple. Simply click the following link:
Look for the number after ‘Your IP Address is:’. Write this down.
Step 3: Setting up TightVNC
Go to the TightVNC website, and download the software. Be sure to get the latest beta version if you are using Windows 7 or Windows Vista. Now, install the software using the default settings. During the installation, TightVNC should ask you for an administration and primary password. Be sure to set these up now and write them down. Now that TightVNC is set up, go to the start menu and run TightVNC Server. Run application mode if you want the service to end on log out (if you have multiple users on your system or if you have safety concerns). Otherwise, either application mode or running as a service should be fine.
Step 4: Setting up AndroidVNC on the Device
First, download the AndroidVNC program from the Android Marketplace, or scan the following QR code:
Open the program, leave the ‘Nickname’ field blank, enter the primary password that you created for TightVNC (not the administrative password, if you made them different), and enter your IP Address from step 2. Click connect and you should be able to control your PC from your Android device!
Browser Tab Stagnation
In the same way that it would be hard for me to imagine life without a cell phone, I can’t imagine going back to browsers without tabs. Tabs allow me to organize my browsing more efficiently. In fact, I currently have 17 tabs open in just this browser (12 in my other browser). However, since being introduced to Firefox a few years ago (and Chrome more recently), I have not seen tabs change in a way to allow for more efficient sharing of information or to allow for more control over my browser’s state.
Specifically, I would like to see a browser allow the user to group tabs for two specific purposes. First, when I am taking a break at work and decide to look at a few sites, or even if I am waiting for something at the end of the day and find a few stories just before leaving, I just copy and paste the URLs and email the to myself. It would be significantly more efficient if I could group those tabs and have the browser take care of the URLs for me in a small file I could email myself.
Second, if a colleague wants me to provide some background on a subject (or vice versa), I typically do exactly what I do for myself: open several tabs, then copy and paste the URLs into an email or IM. It would be nice if I could send a file that opened the URLs in his browser so that he could see all of the links rather than opening them individually.
It would also be great if I could break a set of tabs into a named group. Currently, I have 4 Chrome windows open because I want to separate articles into specific groups so that I’m not jumping from one focus to another between articles. I am realizing in my ‘computing articles’ window that it is quickly being divided into articles about computing technology and articles that instruct me on something I want to do (overclock my GPU, make a hackintosh, etc.). So now I’m looking at potentially more windows. It would be great if I could save all of these tabs into one file that would open them all.
Some may quip that bookmarks serve the purposes I am asking for, but beyond these smaller quibbles that can be solved with some copying and pasting lies a much larger issue I have with the current state of tabbed browsing: saving the state of my tabs is handled autonomously leaving me to guess at the saved state of my tabs.
Chrome’s greatest advantage (tabs as there own processes) is its greatest weakness here. In order to restart the browser and get all of my tabs back, I need to ensure that all of my tabs are in one window and that I shut down that window. The same goes for Firefox.
This week while troubleshooting an unrelated problem, my network admin closed my Firefox window and opened a new one, leaving my previous save state (and all 732 tabs I had open) to vanish into the ether. By allowing me to save and store tabs, I would never have to worry about him or anyone else (including myself) doing this.
Productivity software (Word, Excel, etc), games, even podcasts in iTunes all offer both manual and automatic save states. Why can’t browsers?



