Looks like I'll be working on my own with this project. I decided it would be better for me to work on this project on my own since I am so busy this week. I enjoying working on these projects with a partner, but by working by myself I have explicit control over my study schedule this week. I haven't got a chance to set up a virtual machine running ubuntu on my windows 7 desktop yet, I might give that a try tonight or tomorrow.
SMP problem is going well. I already have all my classes and algorithms planned out on paper. I simply need to code them up now. Its my hope that I'll have this project finished and working by the end of tonight.
Tuesday, March 3, 2009
Tuesday, February 24, 2009
More Windows 7 Shenanigans
For the first two projects in this class, I did all of the work on my laptop. This time around, My partner (Felicia Hopperstad) and I decided to trade the 12.1" screen on my laptop for the two 24" monitors on my gaming computer. I'm currently running 64 bit Windows 7 beta. setting up the developer environment was a breeze. We were able to keep our project repository on a remote server courtesy of Adam McElwee. This made it easy to upload the latest version onto my laptop for any quirky things we needed linux for (ex: pydoc wouldn't write TestMain.py in windows for some reason).
We used notepad++ to write code and cygwin/minTTY for all of our terminal needs. The multi-monitor setup proved to be quite useful for coding. The extra real estate made it easy to have multiple windows side by side. I found it hard to go back to a smaller desktop space when I started work on my graphics project the next day, which I can only do on my laptop at the moment.
Before I get going on the next project I'd like to get eclipse up and running and start using a full blown IDE. The refactoring tools and helpful keyboard shortcuts avaliable make writing code a breeze. I'd also like to get ubuntu running in windows 7 on a virtual machine. Adam told me he got it going on vmware server, so I'll probably get that set up as well.
Continuing the game of "musical programming partners" that I've been playing with Felicia, Adam and Joel, it looks like I'll be paired up with Joel Gardner for project 4.
p.s. notepad++ is decent but its definitely not perfect. If someone has a suggestion for a different text editor that does syntax highlighting etc I'd love to know about it so I can check it out. Leave a comment!
We used notepad++ to write code and cygwin/minTTY for all of our terminal needs. The multi-monitor setup proved to be quite useful for coding. The extra real estate made it easy to have multiple windows side by side. I found it hard to go back to a smaller desktop space when I started work on my graphics project the next day, which I can only do on my laptop at the moment.
Before I get going on the next project I'd like to get eclipse up and running and start using a full blown IDE. The refactoring tools and helpful keyboard shortcuts avaliable make writing code a breeze. I'd also like to get ubuntu running in windows 7 on a virtual machine. Adam told me he got it going on vmware server, so I'll probably get that set up as well.
Continuing the game of "musical programming partners" that I've been playing with Felicia, Adam and Joel, it looks like I'll be paired up with Joel Gardner for project 4.
p.s. notepad++ is decent but its definitely not perfect. If someone has a suggestion for a different text editor that does syntax highlighting etc I'd love to know about it so I can check it out. Leave a comment!
Sunday, February 15, 2009
Teamwork and Subversion
I spent all of last summer at my internship with Indeed Inc (http://www.indeed.com) working with others on projects using subversion. Everyone taking this class is fortunate to be given a head start in using source control. Collaborating on the projects I did would have been near impossible without subversion.
I started out using subversion commands in the terminal, but eventually moved on to using it in Eclipse. The graphical interface provided by subclipse, the Eclipse plugin that enables subversion, is vastly superior to working in a terminal. Adam McElwee has posted a tutorial on getting subclipse working in windows here... check it out if you are interested.
When collaborating with someone on a project using subversion, make sure that you both communicate with each other. If you decide to work on one class or method, make sure the other person is aware of this and not working in the same lines of code. If you both want to work on the same piece of code, pair programming is by far the best choice. When conflicting changes are sent into the project repository, subversion does it best to merge them into one file on its own. However, if the merge doesn't go so well the resulting manual clean-up can be a real pain. By staying aware of what your partner(s) is working on, and letting them know when you are planning to check in changes, this can always be avoided.
A good habit to get into is looking over your changes before submitting a new revision. At the terminal this can be accomplished by using the 'svn st' command and the 'svn diff' command. To look at specific files, use 'svn diff filename'. Subclipse provides excellent tools for accomplishing this. The version of the file in the repository and your version are put side by side and changes are clearly marked. As the size of the projects you work on get larger and larger it will become easier to let little unessecary changes slip through. Sometimes it can be as simple as an extra newline or too many tab spaces (which can break whatever coding convention you are your teammates choose to follow), or a wrongly named method that didn't get changed to what it was supposed to be. Never blindly submit changes, this will make things much easier for you and your teammates.
One final thought: Always keep a working copy of code in the respository. If you make some changes through refactoring or try to add some new functionality and unit tests that passed before start failing, don't submit the changes until you have everything working again. If you upload broken code, then when everyone else does an update their code will break too.
p.s. Here's a link to a blog post about one of the software projects I worked on while at Indeed. A lot of the important things we are learning in this class right now like source control, working as a team and refactoring I learned while working on this project.
I started out using subversion commands in the terminal, but eventually moved on to using it in Eclipse. The graphical interface provided by subclipse, the Eclipse plugin that enables subversion, is vastly superior to working in a terminal. Adam McElwee has posted a tutorial on getting subclipse working in windows here... check it out if you are interested.
When collaborating with someone on a project using subversion, make sure that you both communicate with each other. If you decide to work on one class or method, make sure the other person is aware of this and not working in the same lines of code. If you both want to work on the same piece of code, pair programming is by far the best choice. When conflicting changes are sent into the project repository, subversion does it best to merge them into one file on its own. However, if the merge doesn't go so well the resulting manual clean-up can be a real pain. By staying aware of what your partner(s) is working on, and letting them know when you are planning to check in changes, this can always be avoided.
A good habit to get into is looking over your changes before submitting a new revision. At the terminal this can be accomplished by using the 'svn st' command and the 'svn diff' command. To look at specific files, use 'svn diff filename'. Subclipse provides excellent tools for accomplishing this. The version of the file in the repository and your version are put side by side and changes are clearly marked. As the size of the projects you work on get larger and larger it will become easier to let little unessecary changes slip through. Sometimes it can be as simple as an extra newline or too many tab spaces (which can break whatever coding convention you are your teammates choose to follow), or a wrongly named method that didn't get changed to what it was supposed to be. Never blindly submit changes, this will make things much easier for you and your teammates.
One final thought: Always keep a working copy of code in the respository. If you make some changes through refactoring or try to add some new functionality and unit tests that passed before start failing, don't submit the changes until you have everything working again. If you upload broken code, then when everyone else does an update their code will break too.
p.s. Here's a link to a blog post about one of the software projects I worked on while at Indeed. A lot of the important things we are learning in this class right now like source control, working as a team and refactoring I learned while working on this project.
Thursday, February 5, 2009
Setting up a developer environment in Windows for CS373.
Before I switched over to Ubuntu, I had banged out this little tutorial on setting up a developer environment for this class in windows. I'm gonna go ahead and post this just in case someone finds it helpful.
NOTE: I had to do these things for windows 7, but if you are using Vista or XP this should be able to get you up and running as well.
--
1. Grab Cygwin: http://www.cygwin.com/setup.exe
When you get to the "Cygwin Setup - Select Packages", under "Category" the first line you should see is "All" and then two arrows spinning around on each other and then "Default". Click on the two arrows until "Default" changes to "Install". This will be a large download so give it some time.
Why cygwin? Cygwin gives you a unix-like terminal in the Windows environment. You can use the windows command prompt if you want but in my opinion it pales in comparison. Plus, by downloading cygwin you'll get a lot of useful utilities like ssh installed automatically.
--
2. Grab Python 2.52: http://www.python.org/download/releases/2.5.2/
Be sure to add the python directory to your PATH in Environment Variables, which can be found in System Properties under the 'Advanced' tab.
Test to see if python is installed correctly by opening cygwin and typing "python". If you see "bash: python: command not found" then something went wrong.
--
3. Install Subversion: http://svn1clicksetup.tigris.org/files/documents/3106/33794/Svn1ClickSetup-1.3.3.exe
This part is easy, just run the exe and it should do everything for you.
Test to see that subversion was installed by opening cygwin and typing "svn".
--
4. Fix buggy things with Cygwin. This probably only applies to Vista and 7 users.
The first problem I had was with the Cygwin Bash Shell being hidden and not having correct permissions. Fixing this allows you to save changes to settings, such as editing the colors or font of the terminal or turning on quickedit mode.
i) Make sure that you have hidden folders turned on. Open windows explorer and go to 'Tools'/'Folder Options...' (press 'alt' to bring up the menu bar if you can't see it). Click the 'View' tab and you should find the option in there.
ii) go to C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Cygwin. Right click on "Cygwin Bash Shell" and click 'Properties'. Go to the 'Security' tab and give full control to Everyone.
iii) Test to see that this worked by opening cygwin, Clicking the black C in the upper left, click 'Properties' and then check 'QuickEdit Mode'. If you don't get an error message then you are good to go.
The other issue I had was with getting subversion to work. I kept getting an error every time I tried to import. Following this guide will fix the problem: http://www.naik-online.com/cygwinremapaddress
The other issue I had was with getting subversion to work. I kept getting an error every time I tried to import. Following this guide will fix the problem: http://www.naik-online.com/cygwinremapaddress
NOTE: I had to do these things for windows 7, but if you are using Vista or XP this should be able to get you up and running as well.
--
1. Grab Cygwin: http://www.cygwin.com/setup.exe
When you get to the "Cygwin Setup - Select Packages", under "Category" the first line you should see is "All" and then two arrows spinning around on each other and then "Default". Click on the two arrows until "Default" changes to "Install". This will be a large download so give it some time.
Why cygwin? Cygwin gives you a unix-like terminal in the Windows environment. You can use the windows command prompt if you want but in my opinion it pales in comparison. Plus, by downloading cygwin you'll get a lot of useful utilities like ssh installed automatically.
--
2. Grab Python 2.52: http://www.python.org/download/releases/2.5.2/
Be sure to add the python directory to your PATH in Environment Variables, which can be found in System Properties under the 'Advanced' tab.
Test to see if python is installed correctly by opening cygwin and typing "python". If you see "bash: python: command not found" then something went wrong.
--
3. Install Subversion: http://svn1clicksetup.tigris.org/files/documents/3106/33794/Svn1ClickSetup-1.3.3.exe
This part is easy, just run the exe and it should do everything for you.
Test to see that subversion was installed by opening cygwin and typing "svn".
--
4. Fix buggy things with Cygwin. This probably only applies to Vista and 7 users.
The first problem I had was with the Cygwin Bash Shell being hidden and not having correct permissions. Fixing this allows you to save changes to settings, such as editing the colors or font of the terminal or turning on quickedit mode.
i) Make sure that you have hidden folders turned on. Open windows explorer and go to 'Tools'/'Folder Options...' (press 'alt' to bring up the menu bar if you can't see it). Click the 'View' tab and you should find the option in there.
ii) go to C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Cygwin. Right click on "Cygwin Bash Shell" and click 'Properties'. Go to the 'Security' tab and give full control to Everyone.
iii) Test to see that this worked by opening cygwin, Clicking the black C in the upper left, click 'Properties' and then check 'QuickEdit Mode'. If you don't get an error message then you are good to go.
The other issue I had was with getting subversion to work. I kept getting an error every time I tried to import. Following this guide will fix the problem: http://www.naik-online.com/cygwinremapaddress
The other issue I had was with getting subversion to work. I kept getting an error every time I tried to import. Following this guide will fix the problem: http://www.naik-online.com/cygwinremapaddress
First Post.
This is my first post in a blog about my experiences in Glenn Downing's CS373 class during the Spring of 2009 at the University of Texas in Austin.
My original intention was to use the Windows 7 beta on my school computer (Lenovo x200) this entire semester. It was my intention to throw my experiences with this into the blog, but it looks like it fell through... seeing as how I am writing this post in Ubuntu 8.10. I ended up needing linux for a different class, and I had some really annoying issues trying to set up a dual boot. However I am still using Windows 7 on my gaming desktop (dual booting with XP), so maybe I can glean some useful experiences from there.
This class is going to be really valuable for anyone planning on pursuing a career in software developement. I had an internship last summer and it looks like we will be learning a lot of things that I picked up on while I worked there, such as refactoring, version control and working with a team on a project.
My original intention was to use the Windows 7 beta on my school computer (Lenovo x200) this entire semester. It was my intention to throw my experiences with this into the blog, but it looks like it fell through... seeing as how I am writing this post in Ubuntu 8.10. I ended up needing linux for a different class, and I had some really annoying issues trying to set up a dual boot. However I am still using Windows 7 on my gaming desktop (dual booting with XP), so maybe I can glean some useful experiences from there.
This class is going to be really valuable for anyone planning on pursuing a career in software developement. I had an internship last summer and it looks like we will be learning a lot of things that I picked up on while I worked there, such as refactoring, version control and working with a team on a project.
Subscribe to:
Posts (Atom)