Go to Post I have a pocket full of Gracious Professionalism! How about you? - Schnabel [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 23-12-2009, 21:34
fixermark fixermark is offline
FIRST Robotics Alumnus
AKA: Mark T. Tomczak
None #0422 (Maggie Walker Mech Techs)
Team Role: Alumni
 
Join Date: Jan 2005
Rookie Year: 2000
Location: Richmond, VA
Posts: 9
fixermark is a name known to allfixermark is a name known to allfixermark is a name known to allfixermark is a name known to allfixermark is a name known to allfixermark is a name known to all
Send a message via AIM to fixermark
Why you should care about version control, and why I suggest git

Hi everyone!

As we roll towards this year's competition, I wanted to suggest something for the volunteers who will be working with control systems programmers (and the teams who have control systems programmers, and the team members who are control systems programmers... Hello, my fellow code-slingers!). If you're already familiar with version control, feel free to skip all of this. Executive summary:
  • version control is a good thing
  • I recommend git for teams because it doesn't require the internet
  • I've provided some links at the bottom to tools that make git easier to use

Before I dive any deeper into this, I should direct you to the excellent document put together last year by Austin Wright (team 498 alumnus). Document hosted on Google Docs. He already said many things about git that I was going to say, and several of them better; consider this message a refresher on the ideas and an update on some new developments in version control.

Why use version control?

One of the big things I learned about in college that I wish I had known in high school was version control. I remember that when I was working on my team's robot control code, we would sometimes need to make very quick, experimental changes under a tight deadline. We ended up with dozens of little folders labeled "control system_1", "control system_2", etc. It was a disorganized mess; code could get saved in the wrong folder, they would get lost (put on the wrong floppy disk), etc. It's a pattern I've seen repeated with many teams over the years.

Version control software is basically a system to manage the problem of code changing over time. Instead of backing up versions of the code to other folders, you register files with the version control program (VC) and when you want to make a "backup"[1] (checkpoint), just tell the VC to make it. The VC will keep the checkpoint and a log of what was changed, and if you ever need to pull up a backup and use it, you can just say "Give me the code from Monday" or "Give me version 2". There's always a "right way" to do save-this-version-so-I-can-get-back-to-it-later, and nothing can ever get lost.

Checkpointing is the main thing a VC does, but the metaphor goes beyond recording the past. VC software also lets you make "branches," which are like specialized versions of your code to test experimental ideas or for one programmer to make detailed, finicky changes without interfering with the rest of the team. A successful branch can be merged back into the project (becoming part of the regular code), or kept around as a separate part for special purposes. For example, a team might have an automation feature they don't fully trust; they can keep it on a branch, and if it turns out to not be useful they can just switch back to the regular behavior by moving from the branch to the main code history without losing anything.

There are several VC programs available, the most popular probably being subversion (http://subversion.tigris.org/). I use subversion (svn) regularly, and it's a great tool. However, it requires the computer to be able to access a subversion server, which may not always be possible for teams that lack a reliable internet connection. Another VC that may serve the needs of FIRST teams better is called git (http://git-scm.com/). Git acts as a more decentralized VC; with a VC like subversion, the server maintains the "repository" (the binary-soup of files that make up the entire history of the project and allow you to pull up any checkpoint that has been made). If you can't access the repository, you can't make a new checkpoint or move to another checkpoint. With git, each individual machine using a project keeps a copy of the project's whole history, so each machine is both a client and a server. Teams can use a centralized server, but they can also do something more "sloppy" like keep the repository on a few loosely-affiliated laptops or desktop machines, synchronizing their histories when it is convenient to do so.

Tips on using git (and version control in general)

Commit early, commit often

One significant difference between version control and keeping a loose bag of backup folders is that is is much cheaper to make a checkpoint (also known as a "commit") than to copy a project. Much cheaper, both in space used and time used. I try to commit every time I add a new feature, no matter how few files or lines I changed. That makes it easier to roll tiny pieces of the project back if I made a mistake.

Branches are cheap (in git)

The way git is designed, branching (and merging branches back into the main code body) is very easy; it's assumed every programmer has his or her own personal branch. So make branches whenever you want to experiment with an idea that is in the least bit "risky." You can always back up if you find it's not worth the time to chase the idea, and you won't lose the work you put into it already.

It's not just for robot code

Does your team do its own promotional materials? Version-control the flyers and announcements. Does the team keep a team contact sheet or roster? Version-control it so you can remember who was on the team in 2009 when you're doing your five-year anniversary montage in 2014. Does the team have a website? Most definitely version-control that. You can have as many or as few repositories as you want; any file that changes over time could likely benefit from being version-controlled.

It's not actually a backup

This is an important point to keep in mind: version control isn't quite the same thing as backing up unless a copy of your repository lives on another computer (such as the GitHub service; see GitHub in "Tools to use with git," below). Version control basically adds a rewindable history to each file in the form of the repository; while it can be used to fix a file that is damaged, damage to the repository itself will ruin the history. You'll still need to be able to restore the entire repository from an off-computer backup if you accidentally set your machine on fire[2].

Tools to use with git

documentation

Most of what I know about using git came from one document: the "Pro Git" book (http://progit.org/book/). This is fairly comprehensive and covers more-or-less everything important in a pretty straightforward manner.

user interface

By default, the user interface to git is command-line only: you tell git what to do by invoking commands like "git init", "git add", and "git push". But there are a couple of great GUI tools to simplify that process.
  • tortoisegit (http://code.google.com/p/tortoisegit/) This is the VC I use. I believe it is Windows-only, but it works extremely well. It acts as an extension to Explorer; when you right-click on a file or directory, one of your Windows submenus will be a "git" submenu that lets you perform operations on the given context. I find this to be more convenient than the command-line tool a lot of the time, but it is Windows-only.
  • SmartGit (http://www.syntevo.com/smartgit/index.html) I just started playing with this one. It's a Java-based GUI tool, so it will work on both Windows and Macintosh computers (I have only tried it on Windows). It's brand-new, but it seems pretty solid. They have a commercial license for it, but you can download it, install it, and use the free license for the FIRST competition.

hosting

Even though git works perfectly fine without an external server, a centralized server can be useful for collaboration. If a team wishes to, they can certainly set up a machine owned by them to be a central server; however, there is an option for creating a host on the web that can be accessed anywhere in the world with an internet connection.
  • GitHub (http://github.com/) The most well-known public git repository host. They provide private hosting for a monthly fee, but their most commonly-used service is free public hosting. It's not hard to set up, and it also comes with a bug tracker and a wiki (useful for documentation) with every repository. Note that the "public" in public hosting means that anyone in the world can see and download the data you push to github (although only the team members could do the uploading). I personally find this sort of code-sharing and code re-use to be very much in the spirit of FIRST, but it's something to keep in mind if your team doesn't feel comfortable having their algorithms exposed for the world to explore.

Conclusion
  1. Version control saves hair-pulling frustration. Teams perform better when they aren't worried about their appearance. Save your hair; use version control.
  2. The internet can be hard to find. Git doesn't require the internet. Use git.

-----
Notes
-----

[1] Checkpoints aren't exactly like backups; see the "it's not actually a backup" tip
[2] That happened to me once. If you turn on a computer and it starts clicking instead of booting up, try not to be surprised when after turning it off and on again it lets out the magic smoke.
__________________
"There is a solution."
  #2   Spotlight this post!  
Unread 23-12-2009, 22:21
Tanner's Avatar
Tanner Tanner is offline
Registered User
FRC #1261 (Roblions)
Team Role: Programmer
 
Join Date: Jan 2007
Rookie Year: 2007
Location: Suwanee, GA
Posts: 311
Tanner is a splendid one to beholdTanner is a splendid one to beholdTanner is a splendid one to beholdTanner is a splendid one to beholdTanner is a splendid one to beholdTanner is a splendid one to behold
Re: Why you should care about version control, and why I suggest git

Nice little post. I played with Git for the first time a few weeks ago and found the same documentation resource as you, which was quite a help. Git is a very nice system versus SVN which I had used a few years ago. It is something that programmers should look at.

My team was thinking about using Git for the next years as it would go along with Java or C++ quite nicely. We were thinking about having the main programming desktop contain the Git server where upon all the programmers would download the code into their laptops and make edits and so forth. If anyone wanted to bring it home, all they would have to do is take their laptop home, do the same edits and commits, and bring it back the next day. The main server would retain all their edits and separate commits. Now to me, that is just cool.

-Tanner
  #3   Spotlight this post!  
Unread 24-12-2009, 10:41
DonRotolo's Avatar
DonRotolo DonRotolo is offline
Back to humble
FRC #0832
Team Role: Mentor
 
Join Date: Jan 2005
Rookie Year: 2005
Location: Atlanta GA
Posts: 7,014
DonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond repute
Re: Why you should care about version control, and why I suggest git

The software's name is also a mildlly derogatory term for someone <insert undesired behavior here> particularly used in the UK. Kinda like a Nob in Canada.
__________________

I am N2IRZ - What's your callsign?
  #4   Spotlight this post!  
Unread 24-12-2009, 14:59
spartango spartango is offline
Registered User
FRC #0192 (GRT)
Team Role: Alumni
 
Join Date: Nov 2009
Rookie Year: 2008
Location: Palo Alto, CA
Posts: 43
spartango is an unknown quantity at this point
Re: Why you should care about version control, and why I suggest git

Strongly agree with this post--team's that havent looked much into version control should definitely read this..
I've liked git mostly for its amazing automerging system--yes Hg and SVN have merge tools and auto stuff, but git is by far the best.
  #5   Spotlight this post!  
Unread 25-12-2009, 08:53
Nadav Zingerman Nadav Zingerman is offline
Registered User
FRC #2230
Team Role: Programmer
 
Join Date: Jul 2009
Rookie Year: 2009
Location: Israel
Posts: 90
Nadav Zingerman is a splendid one to beholdNadav Zingerman is a splendid one to beholdNadav Zingerman is a splendid one to beholdNadav Zingerman is a splendid one to beholdNadav Zingerman is a splendid one to beholdNadav Zingerman is a splendid one to beholdNadav Zingerman is a splendid one to behold
Re: Why you should care about version control, and why I suggest git

Quote:
Originally Posted by spartango View Post
Strongly agree with this post--team's that havent looked much into version control should definitely read this..
I've liked git mostly for its amazing automerging system--yes Hg and SVN have merge tools and auto stuff, but git is by far the best.
Could you elaborate? In my experience, Mercurial (AKA Hg) is pretty much the same as git when it comes to merging.

In general I think git has no advantage over Mercurial, the only difference being Mercurial is easier to use (Also, Mercurial is more space efficient than uncompressed git repo's, and compressing takes FOREVER).

Last edited by Nadav Zingerman : 25-12-2009 at 09:09.
  #6   Spotlight this post!  
Unread 25-12-2009, 15:00
bobwrit's Avatar
bobwrit bobwrit is offline
//No Comment
AKA: ...
FRC #1977 (Loveland High Robotics)
Team Role: Alumni
 
Join Date: Oct 2008
Rookie Year: 2008
Location: Somewhere
Posts: 298
bobwrit is just really nicebobwrit is just really nicebobwrit is just really nicebobwrit is just really nicebobwrit is just really nice
Re: Why you should care about version control, and why I suggest git

yeah, our team has been using some sort of VC at least ever since I've been on the team. 2 years ago, we went ahead and manually ran some sort of VC, which works well, depending on the programming team. Last year, we went with SVN, because it is whats most familiar with our programming team(both of us are heavy on open source development). What you use for VC should be what you programming team is most comfortable with. VC is a must though. It ends up being used quite often.
__________________

FRC Team 1977 Alumni

Has Attended:2008 Colorado regional
2009 Colorado Kickoff
2009 Colorado Regional
2010 Colorado Kickoff
2010 Colorado Regional




The most exciting phrase to hear in science, the one that heralds new discoveries, is not "Eureka!"(I found it!), but rather, "Hmm.... That's funny" ---Isaac Asimov
Chance favors the prepared mind ---Louis Pasteur
And you can tell me, that I can't make a diffrence because I'm just one, but one is all it takes to start it. And you can tell me, that I can't change the world because I'm too young, but I wont stand here and be your target. ---FM Static
  #7   Spotlight this post!  
Unread 25-12-2009, 16:00
keehun's Avatar
keehun keehun is offline
Team Captain
AKA: Keehun Nam
FRC #2502 (EP Robotics)
Team Role: Leadership
 
Join Date: May 2008
Rookie Year: 2008
Location: Eden Priaire
Posts: 474
keehun has a reputation beyond reputekeehun has a reputation beyond reputekeehun has a reputation beyond reputekeehun has a reputation beyond reputekeehun has a reputation beyond reputekeehun has a reputation beyond reputekeehun has a reputation beyond reputekeehun has a reputation beyond reputekeehun has a reputation beyond reputekeehun has a reputation beyond reputekeehun has a reputation beyond repute
Send a message via AIM to keehun
Re: Why you should care about version control, and why I suggest git

Quote:
Originally Posted by Nadav Zingerman View Post
Could you elaborate? In my experience, Mercurial (AKA Hg) is pretty much the same as git when it comes to merging.

In general I think git has no advantage over Mercurial, the only difference being Mercurial is easier to use (Also, Mercurial is more space efficient than uncompressed git repo's, and compressing takes FOREVER).
I completely agree Mercurial is a lot better than Git. Though, I convinced my team to go with Git for multiple reasons:
  1. Tools for Git on Win/Mac/Linux are much more developed IMO
  2. Github's "Network Graph" is going to be invaluable. I couldn't find a easy way to do that with Mercurial
  3. Github provides a lot of support for beginners to Distributed Versioning (like many programmers on my team)
  4. Git was just more popular all around...

Though I agree Mercurial is my favorite.
__________________
For by grace you have been saved through faith, and that not of yourselves; it is the gift of God, not of works, lest anyone should boast. -- Ephesians 2:8-9
2010: Quarter Finalist (MN 10,000 Lakes)
2010: Website Award (MN 10,000 Lakes)
2009: Quarter Finalist (MN 10,000 Lakes)
2009: GM Industrial Award (MN 10,000 Lakes)
  #8   Spotlight this post!  
Unread 28-12-2009, 09:55
ASTDan ASTDan is offline
Registered User
no team
 
Join Date: Dec 2009
Location: Lansing MI
Posts: 6
ASTDan is an unknown quantity at this point
Re: Why you should care about version control, and why I suggest git

I use Tortoise SVN for revision control and have recently giving a presentation on the topic

http://decibel.ni.com/content/docs/DOC-7811

One note you DON'T need an internet connection to use TortiseSVN. I put my repositories on my local hard drive.
  #9   Spotlight this post!  
Unread 28-12-2009, 15:33
spartango spartango is offline
Registered User
FRC #0192 (GRT)
Team Role: Alumni
 
Join Date: Nov 2009
Rookie Year: 2008
Location: Palo Alto, CA
Posts: 43
spartango is an unknown quantity at this point
Re: Why you should care about version control, and why I suggest git

FYI none of these version control systems need an internet connection. That just allows you to stay synchronized with your team.

I should point out that NI has good merge and diff tools for labview if you are using that.
  #10   Spotlight this post!  
Unread 28-12-2009, 15:58
Nadav Zingerman Nadav Zingerman is offline
Registered User
FRC #2230
Team Role: Programmer
 
Join Date: Jul 2009
Rookie Year: 2009
Location: Israel
Posts: 90
Nadav Zingerman is a splendid one to beholdNadav Zingerman is a splendid one to beholdNadav Zingerman is a splendid one to beholdNadav Zingerman is a splendid one to beholdNadav Zingerman is a splendid one to beholdNadav Zingerman is a splendid one to beholdNadav Zingerman is a splendid one to behold
Re: Why you should care about version control, and why I suggest git

Quote:
Originally Posted by spartango View Post
FYI none of these version control systems need an internet connection. That just allows you to stay synchronized with your team.

I should point out that NI has good merge and diff tools for labview if you are using that.
NI does indeed have good merge and diff tools, but they are not available to FIRST teams. The merge and diff tools are only included in the Professional Development version (The most expensive one), which teams will not be receiving (correct me if I'm wrong). Also, LabVIEW's diff tool is only available with LabVIEW 2009 (AKA version 9.0), while teams will be getting version 8.x (8.6 I believe). There is however a tool called LVDiff, but I couldn't get it to work with Mercurial (I suspect this is because LabVIEW can't compare two VIs with the same name).
  #11   Spotlight this post!  
Unread 28-12-2009, 16:08
Jon236's Avatar
Jon236 Jon236 is offline
Registered User
AKA: Jon Mittelman
FRC #2648 (Infinite Loop)
Team Role: Mentor
 
Join Date: Jan 2004
Rookie Year: 2000
Location: Windsor, Maine
Posts: 741
Jon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond repute
Re: Why you should care about version control, and why I suggest git

Quote:
Originally Posted by Nadav Zingerman View Post
NI does indeed have good merge and diff tools, but they are not available to FIRST teams. The merge and diff tools are only included in the Professional Development version (The most expensive one), which teams will not be receiving (correct me if I'm wrong). Also, LabVIEW's diff tool is only available with LabVIEW 2009 (AKA version 9.0), while teams will be getting version 8.x (8.6 I believe). There is however a tool called LVDiff, but I couldn't get it to work with Mercurial (I suspect this is because LabVIEW can't compare two VIs with the same name).
According to Joe Ross's presentation at The FIRST Forums site http://forums.usfirst.org/showthread.php?t=13548 we are getting the Professional version!
__________________
Jon Mittelman

Senior Judge Advisor New England & Israel 2014-2015
Infinite Loop Mentor 2011-2015
TechnoTicks Mentor 2000-2011
Championship Chairman's Award 2009 Team236 TechnoTicks
Judge 2010-2015 Championships
Senior Judge Advisor New England District Championship 2014-2015
Judge Advisor Tel Aviv Regional 2007-2015
Judge Advisor Pine Tree Regional 2013
Maine Regional Planning Committee
New England District Planning Committee
Lead Inspector Microsoft Tel Aviv Regional 2006-2008
Judge & Lead Inspector GM/Technion Tel Aviv Regional 2006
Judge UTC Hartford Regional 2006
  #12   Spotlight this post!  
Unread 30-12-2009, 00:53
Boydean's Avatar
Boydean Boydean is offline
The Blue Alliance
no team
Team Role: Alumni
 
Join Date: Apr 2007
Rookie Year: 2003
Location: SC
Posts: 319
Boydean has a brilliant futureBoydean has a brilliant futureBoydean has a brilliant futureBoydean has a brilliant futureBoydean has a brilliant futureBoydean has a brilliant futureBoydean has a brilliant futureBoydean has a brilliant futureBoydean has a brilliant futureBoydean has a brilliant futureBoydean has a brilliant future
Send a message via AIM to Boydean
Re: Why you should care about version control, and why I suggest git

I really love everything that was said here. This is certainly a thread I'll shoot to new programming students, and other people of interest.

Quote:
Originally Posted by fixermark View Post
Note that the "public" in public hosting means that anyone in the world can see and download the data you push to github (although only the team members could do the uploading). I personally find this sort of code-sharing and code re-use to be very much in the spirit of FIRST, but it's something to keep in mind if your team doesn't feel comfortable having their algorithms exposed for the world to explore.
I really think its interesting what was said here. Sharing code publicly might not be in the interest of some teams, but maybe we can start a directory of github links of team's public VC. The amusement factor would shoot through the roof. It would be invaluable during training to use examples from other teams with more complex autonomous or telop modes.

Some might think that they would be embarrassed to show their code(whether labview or C++) due to lack comments, cleanliness, and what have you, but I think if we can keep it all on a professional(the feed back that is) level it can be extremely insightful.
__________________
  #13   Spotlight this post!  
Unread 30-12-2009, 02:47
IceStorm IceStorm is offline
Mentor FRC 5046, FTC 8688
AKA: Chad
FRC #5046 (Jacked Up Jackets)
Team Role: Mentor
 
Join Date: Jan 2009
Rookie Year: 2009
Location: Michigan
Posts: 137
IceStorm is a glorious beacon of lightIceStorm is a glorious beacon of lightIceStorm is a glorious beacon of lightIceStorm is a glorious beacon of lightIceStorm is a glorious beacon of light
Send a message via AIM to IceStorm Send a message via Yahoo to IceStorm
Re: Why you should care about version control, and why I suggest git

Even if the SCC stuff is included this year has anyone looked for any free products that will interface with it. The list that you can find on the NI site Here doesn't seem to have anything that is free. Most are limited trials or only work for a few users. At least that was what i have came accross so far from looking into it.
  #14   Spotlight this post!  
Unread 30-12-2009, 08:55
Greg McKaskle Greg McKaskle is offline
Registered User
FRC #2468 (Team NI & Appreciate)
 
Join Date: Apr 2008
Rookie Year: 2008
Location: Austin, TX
Posts: 4,753
Greg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond repute
Re: Why you should care about version control, and why I suggest git

That list is for tools that are integrated. Any SCC tools that can handle binary files will work with LV, but you will then use their command line or GUI to do check-in and check-out. These tools have wrappers already built into the LV IDE so that you start to edit, confirm a checkout, and continue editing.

Depending on the project, I've used both, and while integrated is nice, sometime it is useful to learn the tool's API for advanced stuff anyhow. If not using the integrated tool, a diff would consist of getting both revisions on disk and using the LV Compare tool on those files.

Greg McKaskle
  #15   Spotlight this post!  
Unread 30-12-2009, 12:48
Jon236's Avatar
Jon236 Jon236 is offline
Registered User
AKA: Jon Mittelman
FRC #2648 (Infinite Loop)
Team Role: Mentor
 
Join Date: Jan 2004
Rookie Year: 2000
Location: Windsor, Maine
Posts: 741
Jon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond repute
Re: Why you should care about version control, and why I suggest git

Greg,

Based on your experience with LV, the version we will be getting, and the fact that most teams have little experience with SCC, what would you suggest we use?
__________________
Jon Mittelman

Senior Judge Advisor New England & Israel 2014-2015
Infinite Loop Mentor 2011-2015
TechnoTicks Mentor 2000-2011
Championship Chairman's Award 2009 Team236 TechnoTicks
Judge 2010-2015 Championships
Senior Judge Advisor New England District Championship 2014-2015
Judge Advisor Tel Aviv Regional 2007-2015
Judge Advisor Pine Tree Regional 2013
Maine Regional Planning Committee
New England District Planning Committee
Lead Inspector Microsoft Tel Aviv Regional 2006-2008
Judge & Lead Inspector GM/Technion Tel Aviv Regional 2006
Judge UTC Hartford Regional 2006
Closed Thread


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
C and LabView version control with Git Nibbles NI LabVIEW 31 17-01-2010 19:22
Why you should use Gmail Nathan Chit-Chat 5 22-02-2007 00:20
What is the Best version of Delphi and why? le_crash Programming 3 30-08-2004 21:38
Why should Andy be on Survivor? George1902 General Forum 24 21-06-2004 01:19
Why I think FIRST should reconsider... Joe Johnson General Forum 36 14-01-2003 15:51


All times are GMT -5. The time now is 00:14.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi