Difference between revisions of "Paper/Thesis Guide"

From Vlsiwiki
Jump to: navigation, search
(Revision Control)
(Revision Control)
Line 75: Line 75:
  
 
To get an SVN client for any machine (Linux, OSX, Windows), you can look at http://subversion.tigris.org/project_packages.html
 
To get an SVN client for any machine (Linux, OSX, Windows), you can look at http://subversion.tigris.org/project_packages.html
 +
 +
Now, when you are in the checked out directory, you can execute a number of commands.
  
 
To add new files to a repository:
 
To add new files to a repository:
Line 91: Line 93:
  
 
  svn ci file.C
 
  svn ci file.C
 +
 +
If someone else commits changes, you will need to get an updated copy. If you try to commit and it says you are out of date, you also need to do this before you can check in your changes. In the directory type:
 +
 +
svn up
 +
 +
If it complains about merging, see me for now. Or search google on how to merge.
  
 
Usually, SVN will recognize files as binary. It does this when it finds a non-printable character in the first part of a file. If this is not the case as with some PDFs, you can set a binary property like this:
 
Usually, SVN will recognize files as binary. It does this when it finds a non-printable character in the first part of a file. If this is not the case as with some PDFs, you can set a binary property like this:

Revision as of 08:16, 13 November 2009

This is a reference for how to write papers and theses. I spent a lot of time messing with different tools and these are the ones I settled on. You may wish to substitute your personal favorite here and there, but these are a very good basic set. I like them because they are free, portable, and stable. You will be able to work on your paper from any machine. In other words, if you lose your laptop or your hard drive crashes, you don't need that special license for a piece of software and you don't have to borrow one or find a hack to get your data back.



Word Processing

I prefer to use LaTeX. Any other word processor (except perhaps Framemaker) is a pain to get to have the right format. Word is horrible because every time you make an edit you have to replace your figures. Given that, you can start with several document classes that have the formatting done for you:

Some other (mostly Mac) utilities I have found useful for LaTeX:

  • EquationEditor - for putting equations on slides
  • TexShop - for quickly updating/viewing your LaTeX results

Drawing Graphics

For making images, I try to be consistent. It is important to have the ability to always modify the image. If you need some fancy tool like Visio, you may not have a license. Photoshop, for example, costs thousands of dollars. Therefore, I recommend these tools for vector graphics (simple line-based shapes) in the order of my preference:

You should store both the original file and an eps or pdf copy for use in a LaTeX document.

Sometimes, you may not have a vector graphic file. For example, screen captures. To edit (or create) these, you can use The Gimp.

Screen Captures

This depends on your platform. On the Linux machines in the lab, you can use the print screen button like on Windows. Often, Unix/Linux machines will have "xv" which has a grab option. On OSX machines, you can use Grab.app.

Results

For making plots, there are also many options. I prefer to use (in order):

  • gnuplot
  • Matlab (but this requires a license)

For computing results, you should also look at the R project.


Converting Image Formats

To convert formats, I highly recommend the ImageMagick tool suite. The interface is through the command 'convert' and it pretty much automatically recognizes extensions. So, for example, you can do:

convert myimage.gif myimage.eps

You can also specify rotation (-rotate 90), scale, resolution, etc. It works with almost any image format you will find. Type "man convert" for more information.

To convert an eps to a pdf, you can also use

epstopdf myimage.eps

which will save a file called myimage.pdf.

Revision Control

Another thing that is very important, is revision control. YOU SHOULD USE SVN TO MANAGE YOUR REVISIONS. If you do not, you will eventually delete a file by mistake or want to undo an edit and you will be out of luck. SVN can handle binary formats automatically. All of the above source files should be checked into an SVN repository that is either in your personal space or on the group server.

To access our group SVN server from the mada cluster, you can do this:

svn co file:///mada/users/vlsi/<project>

To access it from outside the cluster, you can access it through ssh like this:

svn co svn+ssh://user@mada0.cse.ucsc.edu/mada/users/vlsi/<project>

To get an SVN client for any machine (Linux, OSX, Windows), you can look at http://subversion.tigris.org/project_packages.html

Now, when you are in the checked out directory, you can execute a number of commands.

To add new files to a repository:

svn add file.C

and it will remember from where the repository came. Note that if you add a directory, it will add the entire subcontents to SVN. To remove a file from the repository, use:

svn rm file.C

To check in changes without any new files, simply do:

svn ci

or for a specific file:

svn ci file.C

If someone else commits changes, you will need to get an updated copy. If you try to commit and it says you are out of date, you also need to do this before you can check in your changes. In the directory type:

svn up

If it complains about merging, see me for now. Or search google on how to merge.

Usually, SVN will recognize files as binary. It does this when it finds a non-printable character in the first part of a file. If this is not the case as with some PDFs, you can set a binary property like this:

svn propset svn:mime-type application/octet-stream path/to/thingy

This will keep full copies of a file rather than incremental changes.

Feedback

If any of the above tools (except Matlab) are missing from a group machine, please let me know and I will install it.

Please feel free to update this information with other things I may forget.