There are two main reasons why I currently will stay with SVN.
I need a feature and bug request tracking system. trac supports Subversion immediately.
I see the benefits of a decentralised model, wanting to do work on my project on several systems. However, SVK does not support externals. Externals are a must for modular design and development.
Having already a whole lot of work in my SVN repository and trac, an alternative system should be able to import SVN data and work with trac, or there should be another tracking system which can import my trac database.
One very expensive, proprietary tool called Continuus/Synergy does not support changesets either.
I like Subversion. I think that at the moment it occupies the best sweet spot. I would like to use SVK, but that will not be the case until it supports externals like in in Subversion.
While I admit that it is probably a right-wing publication, I have the impression that they are fairly balanced. I think you can see it mainly in the reporting about the Arab world, there is no rhetorics in the articles.
Now about the people that he wanted to believe he had something, it was mainly the Arab world. The reason is its neighbor Iran. Iran/Persia dominated the Arab probably for almost 3 millennia. The Arabs fear and loathe the Persians, and Saddam was the only one who had stood up against them. That earned him respect in the Arab world.
My father wants to buy a notebook, and the Inspiron 1501 was ideal for him. At home, he runs already Debian (supported by me), and it gives him everything he needs. A Ubuntu notebook would have been the max.
I still have to concentrate. Keeping a journal helps (I use TiddlyWiki). By creating regularly a journal, you can do a summary of what you have accomplished, and you can map out what you want to do.
It comes down to planning. Start with a plan, then concentrate on the separate steps of the plan.
It is a little bit like repeating a mantra. Sometimes working on a project gets boring, or you desperately need to understand something, or design something, repeat to yourself the end goal of your target.
Also, try to stop thinking about the mountain of work that lies ahead of you. If you have a large project, thinking about the amount of work that needs to be done can very easy demotivate you. When that happens, concentrate on the small thing that you need to accomplish NOW.
I started my project in August last year. I started with a kind of plan. I had the following goals :
Create a library for simulating digital components (MSI).
Use this library to implement a simulated computer architecture.
Design my own computer architecture.
Use Common Lisp, in order to learn Common Lisp.
Get experience with open source VC (Subversion) and CM (trac) systems.
By creating a plan, and always concentrate on my end goal, I was able to start this project, and write pages of upfront documentation before implementing each part of the digital library.
By the end of November, most of this library was complete, in December I started designing my architecture, and the ISA was ready by Januari.
Do not get distracted by possible optimisations. Once I got together my ISA and implementation architecture, I had to go ahead with building a real system from the libraries I designed, even when there where some small, non-critical errors in it. Keeping a journal can help here, too. Write about your possible changes in it, so that you have a reference, but let them alone until your system works.
One has to keep oneself in line with the desired goal. For some people this comes natural (although I tend to assign to such people a lack of imagination), for others, especially with a vivid imagination, this is not so easy. I presume it comes down to conditioning.
I was also tired of myself, of not being able to do something that I really wanted, or at least start something and really go through with it, until it was finished, and note merely barely working.
Do not forget to take rest, but take a rest which clears your head. For that I have my garden, and I like to read, but not difficult things (this should only be done in the context of your project). It should relax your brain from the concentration that you need to focus on your project.
The above list is just a summary of the things that I have done. I think it comes down to : concentrate on your plans, concentrate on your goals, file away things that are not relevant to what you want to do.
And I think one more important aspect : be prepared from the onset to say to yourself that you will not be sorry dumping all the rest of your ideas, at the advantage of the one thing that you would like to work on.
I once did a test between Continuus and Subversion for checking out the same tree. The result where the same. Why ? Not because of the version control system, but because of the speed of bringing updates over the network to the disk. Creating files and directories is expensive.
In my automated builds (using Continuus), reconfigures (updates) take from 5 to 20 minutes, depending upon the size of the tree and the amount of changes done. With big changes, add 5 to 10 minutes to the previous figures.
You need at most 2 or 3 checkouts, most developers have enough with one. All the rest should be done by updating your work area to bring your development in sync with the main trunk or the particular branch your working against.
1) You want to make a copy of trunk to send to somebody:
tar cvf project.tar .
With svn you have to go through a bunch of magic to do this or you end up giving them an original copy when you may have local changes (you tweaked some config option or whatever), your username, time svn repo address and structrure, etc. If you do svn export it makes a copy of what is in HEAD not in your folder, so there is no way to do this without going back and weeding out this junk
In any VC/CM system, you should not export things which have not been committed. If you have local changes, they should have a reason, and they should be committed. Afterwards you can export them properly without all the.svn overhead.
I think that I see where you are heading with 2), you want the same functionality as cp/mv/... If that is the case, maybe you should file a bug report.
3) is difficult to reason about. If I would do the same in Continuus, I am obliged to commit my transactions also before doing the rename. In effect, the rename would consist of doing a delete of the old file and the addition of the new renamed file (histor will be preserved). Since both systems work with a database/workarea separation, I presume that they share some of the same design trade-offs.
4) had me bitten also this week. I think this should be considered a bug. Command-line parsing should be consistent across applications, and thus svn should be able to parse multiple arguments and decide that the last one in the row is the destination.
Version control is part of the software development process.
If you are building a simple program on your own, then the basic thing to do with it is versioning in a straight line.
However, if your program architecture becomes more complex and/or more people are working on it, then version control becomes synchronisation system.
When you have a more elaborate development process, version control is tied in with change control and tracking.
So, yes, version control is hard.
I am a fulltime VC administrator for a group of about 80 developers. The basic things that are planned for when we release something, is that we should be able to reproduce the build using the tools in the VC system (which is here Continuus/Telelogic by the way).
For my personal projects, I particularly like the combination SVN + trac.
I personally envy everyone who is able to focus on one particular topic and do something constructive with it. 2006 and 2007 is for me a turning point in that case, because I have always had many ideas, but not the focus to follow them up.
I am now busy on a project that I chose myself (developing a tool set for simulating digital components, building a small computer system with it, and in the mean time learn Common Lisp, because it is all implemented in that language), and for that I needed to dump a whole lot of other activities and projects that I also want to do. Since I have a job, a wife, a kid, a house, a garden and a family, I have also to spend time on these things, and time over is spent on my project.
The worst you can do is say that someone is maybe a monomaniac, but I think that you then need to be able to do a real diagnosis, i.e. you must be a doctor with the relevant knowledge.
The problem with such one-stop shop software is that it either must be very, very, very good, or it provides only a core set of functionality, for which you have to program anyway (or program around its deficiencies).
I think in the first case that you will pay your $6100 dollar anyway, because it will be one of a kind software, and in the second case, you will also pay $6100 dollar, because of local adaptations and frustrations of users.
The thing with open systems is this : it is a matter of practicality, not a matter of idealism.
There is a whole body of open software available. If you can run a C compiler on your platform, then you can run a whole lot of software (which might need tailoring).
Choosing for something closed that runs now is short sighted. Yes, it has a short term advantage, but a long term disadvantage. My experience has taught me with several kinds of closed systems, that they might solve short term problems, but you have two long term problems : you WILL have to program the closed platform's deficiencies, and the supplier WILL put you under pressure, by means of licenses, to upgrade every couple of years.
Isn't it because some famous people pour a whole lot of money into scientology (I refuse to write it with a capital. As Jerry Pournelle and Larry Niven said, there is a special place in hell for people who create fake religions) ?
This things that people have with appliance is understandable.
But I think that a big part of education would to help people understand that it is not the computer that is the appliance, but the programs they run.
The computer is difficult, because it is a platform. It consist of a processing unit, volatile working storage, remanent mass storage, various peripherals, on top of which runs software to manage all this, and only then the software that is used to do a task.
Running the system in wordprocessing or spreadsheet mode is much easier to understand for people, because they see their data, they see their interface. This is the part that is akin to drive a car.
The previous part is the one that is akin to the definition of a car.
Which mostly means, I think, that the underlying hardware and software platform should be designed as such that it is transparant to the user, that he should not think about it (do you constantly think what might go wrong in your car engine?).
Now, regarding hardware, I have been building my own PC's since 1991, and I have run PC-DOS, COMPAQ-DOS, DR-DOS, OS/2, Win95 and Linux on them, and the only hardware problems I had in that time where wear on harddrives, one problem with a power supply, and network cards where the output transmitters went bad (you can receive, but you cannot send anymore). I have built 5 generations of PC's, and they all still work (sometimes even after being for months on the attic).
Just to say that there is inherently (except for design flaws, F00F) nothing wrong with the PC hardware platform.
It is mostly the software platform above it which is not transparent enough to the end user and which poses problems.
If you look at the highlighted paragraph, why do you think that people who have switched to Mac become so enthusiastic ? They do not have to bother about the underlying software platform anymore! I have noticed this also in 1990/1991, when I installed Macs . However, I do not buy Mac, because I just like to happen to have more control over my computers. I like to design them and I like to build them, If my wife would ever want a portable, however, she should have a Mac, to that she and I do not have to bother.
Of course, making the software platform transparent is something that is anti-thetical to marketing. Microsoft's marketing machine wants to make sure that you know that you run MS Windows from Microsoft.
I am constantly amazed by the amount of BULLSHIT the windows folks put up with.
When I read IT journals, be it online or as dead trees, I am constantly amazed by the amount of bullshit that is sold in the WHOLE IT industry.
I think that is also a point why people choose an open system (be it Linux, *BSD, or maybe something else) : being tired of all the bullshit and hype that is being sold by the IT industry.
For simple drafting work, I think QCad is ideal as an introduction to CAD. I use it, and my father uses it. I do not know however if there is a simple replacement for the 3D functions of AutoCad.
Or 50. I just purchased "Automatic Digital Calculators" from A.D. Booth, 2nd edition, 2nd print from 1957.
I think that all things relevant to computers have been thought about in the first ten years of electronic computers. All the rest afterward was either optimization, which could only be appreciated by people with knowledge in the field, or marketing bullshit, which is used to impress people without knowledge of computers, and to sell them things they do not need.
Reading this article and similar articles in the past, it strikes me that these policies are set by people who absolutely do not have a clue about computers, software and the internet.
I see this also at the schools here in Belgium (my sister is a teacher). Decisions are not taken on the merits of cost and/or technical capabilities, but purely because others do the same (and do not get me started on our so called ICT coordinators (ICT, now there is a term which absolutely has no meaning)).
I looked this weekend to SVK, unfortunately, it does not support externals. This means a no go.
Since SVK is built on top of Subversion, and trac integrates seamlessly with a Subversion repository, this would have been an awesome combination.
There are two main reasons why I currently will stay with SVN.
Having already a whole lot of work in my SVN repository and trac, an alternative system should be able to import SVN data and work with trac, or there should be another tracking system which can import my trac database.
One very expensive, proprietary tool called Continuus/Synergy does not support changesets either.
I like Subversion. I think that at the moment it occupies the best sweet spot. I would like to use SVK, but that will not be the case until it supports externals like in in Subversion.
Talk about code reuse. This versioning system seems to have the same software life cycle as Notepad.
I used Microsoft C V5.0 or 6.0 in 1990 and 1991 (before buying Zortech C++) and there was already an editor included which used this backup system.
You should read more this web site
While I admit that it is probably a right-wing publication, I have the impression that they are fairly balanced. I think you can see it mainly in the reporting about the Arab world, there is no rhetorics in the articles.
Now about the people that he wanted to believe he had something, it was mainly the Arab world. The reason is its neighbor Iran. Iran/Persia dominated the Arab probably for almost 3 millennia. The Arabs fear and loathe the Persians, and Saddam was the only one who had stood up against them. That earned him respect in the Arab world.
Yes, they do. When I enter www.dell.com, I get redirected to http://www1.euro.dell.com/content/default.aspx?c=b e&l=en&~ck=geo.
<beavis voice>This sucks</beavis voice>
Glad to help you.
My father wants to buy a notebook, and the Inspiron 1501 was ideal for him. At home, he runs already Debian (supported by me), and it gives him everything he needs. A Ubuntu notebook would have been the max.
I really had to concentrate.
I still have to concentrate. Keeping a journal helps (I use TiddlyWiki). By creating regularly a journal, you can do a summary of what you have accomplished, and you can map out what you want to do.
It comes down to planning. Start with a plan, then concentrate on the separate steps of the plan.
It is a little bit like repeating a mantra. Sometimes working on a project gets boring, or you desperately need to understand something, or design something, repeat to yourself the end goal of your target.
Also, try to stop thinking about the mountain of work that lies ahead of you. If you have a large project, thinking about the amount of work that needs to be done can very easy demotivate you. When that happens, concentrate on the small thing that you need to accomplish NOW.
I started my project in August last year. I started with a kind of plan. I had the following goals :
By creating a plan, and always concentrate on my end goal, I was able to start this project, and write pages of upfront documentation before implementing each part of the digital library.
By the end of November, most of this library was complete, in December I started designing my architecture, and the ISA was ready by Januari.
Do not get distracted by possible optimisations. Once I got together my ISA and implementation architecture, I had to go ahead with building a real system from the libraries I designed, even when there where some small, non-critical errors in it. Keeping a journal can help here, too. Write about your possible changes in it, so that you have a reference, but let them alone until your system works.
One has to keep oneself in line with the desired goal. For some people this comes natural (although I tend to assign to such people a lack of imagination), for others, especially with a vivid imagination, this is not so easy. I presume it comes down to conditioning.
I was also tired of myself, of not being able to do something that I really wanted, or at least start something and really go through with it, until it was finished, and note merely barely working.
Do not forget to take rest, but take a rest which clears your head. For that I have my garden, and I like to read, but not difficult things (this should only be done in the context of your project). It should relax your brain from the concentration that you need to focus on your project.
The above list is just a summary of the things that I have done. I think it comes down to : concentrate on your plans, concentrate on your goals, file away things that are not relevant to what you want to do.
And I think one more important aspect : be prepared from the onset to say to yourself that you will not be sorry dumping all the rest of your ideas, at the advantage of the one thing that you would like to work on.
I think this is the case for all VC systems.
I once did a test between Continuus and Subversion for checking out the same tree. The result where the same. Why ? Not because of the version control system, but because of the speed of bringing updates over the network to the disk. Creating files and directories is expensive.
In my automated builds (using Continuus), reconfigures (updates) take from 5 to 20 minutes, depending upon the size of the tree and the amount of changes done. With big changes, add 5 to 10 minutes to the previous figures.
You need at most 2 or 3 checkouts, most developers have enough with one. All the rest should be done by updating your work area to bring your development in sync with the main trunk or the particular branch your working against.
1) You want to make a copy of trunk to send to somebody:
tar cvf project.tar .
With svn you have to go through a bunch of magic to do this or you end up giving them an original copy when you may have local changes (you tweaked some config option or whatever), your username, time svn repo address and structrure, etc. If you do svn export it makes a copy of what is in HEAD not in your folder, so there is no way to do this without going back and weeding out this junk
In any VC/CM system, you should not export things which have not been committed. If you have local changes, they should have a reason, and they should be committed. Afterwards you can export them properly without all the .svn overhead.
I think that I see where you are heading with 2), you want the same functionality as cp/mv/... If that is the case, maybe you should file a bug report.
3) is difficult to reason about. If I would do the same in Continuus, I am obliged to commit my transactions also before doing the rename. In effect, the rename would consist of doing a delete of the old file and the addition of the new renamed file (histor will be preserved). Since both systems work with a database/workarea separation, I presume that they share some of the same design trade-offs.
4) had me bitten also this week. I think this should be considered a bug. Command-line parsing should be consistent across applications, and thus svn should be able to parse multiple arguments and decide that the last one in the row is the destination.
Version control is part of the software development process.
If you are building a simple program on your own, then the basic thing to do with it is versioning in a straight line.
However, if your program architecture becomes more complex and/or more people are working on it, then version control becomes synchronisation system.
When you have a more elaborate development process, version control is tied in with change control and tracking.
So, yes, version control is hard.
I am a fulltime VC administrator for a group of about 80 developers. The basic things that are planned for when we release something, is that we should be able to reproduce the build using the tools in the VC system (which is here Continuus/Telelogic by the way).
For my personal projects, I particularly like the combination SVN + trac.
Is Linus insane ?
I personally envy everyone who is able to focus on one particular topic and do something constructive with it. 2006 and 2007 is for me a turning point in that case, because I have always had many ideas, but not the focus to follow them up.
I am now busy on a project that I chose myself (developing a tool set for simulating digital components, building a small computer system with it, and in the mean time learn Common Lisp, because it is all implemented in that language), and for that I needed to dump a whole lot of other activities and projects that I also want to do. Since I have a job, a wife, a kid, a house, a garden and a family, I have also to spend time on these things, and time over is spent on my project.
The worst you can do is say that someone is maybe a monomaniac, but I think that you then need to be able to do a real diagnosis, i.e. you must be a doctor with the relevant knowledge.
The problem with such one-stop shop software is that it either must be very, very, very good, or it provides only a core set of functionality, for which you have to program anyway (or program around its deficiencies).
I think in the first case that you will pay your $6100 dollar anyway, because it will be one of a kind software, and in the second case, you will also pay $6100 dollar, because of local adaptations and frustrations of users.
The Granny Weatherwax way : she doesn't have the vampire in her blood, the vampire has her in his blood.
I presume they take millions from gullible artists.
Does anyone know some more high profile cases ?
Are there any real scientists who subscribe to the scientology belief ?
The thing with open systems is this : it is a matter of practicality, not a matter of idealism.
There is a whole body of open software available. If you can run a C compiler on your platform, then you can run a whole lot of software (which might need tailoring).
Choosing for something closed that runs now is short sighted. Yes, it has a short term advantage, but a long term disadvantage. My experience has taught me with several kinds of closed systems, that they might solve short term problems, but you have two long term problems : you WILL have to program the closed platform's deficiencies, and the supplier WILL put you under pressure, by means of licenses, to upgrade every couple of years.
Isn't it because some famous people pour a whole lot of money into scientology (I refuse to write it with a capital. As Jerry Pournelle and Larry Niven said, there is a special place in hell for people who create fake religions) ?
Likewise. The only hotmail accounts I see are from spammers and phishers.
This things that people have with appliance is understandable.
But I think that a big part of education would to help people understand that it is not the computer that is the appliance, but the programs they run.
The computer is difficult, because it is a platform. It consist of a processing unit, volatile working storage, remanent mass storage, various peripherals, on top of which runs software to manage all this, and only then the software that is used to do a task.
Running the system in wordprocessing or spreadsheet mode is much easier to understand for people, because they see their data, they see their interface. This is the part that is akin to drive a car.
The previous part is the one that is akin to the definition of a car.
Which mostly means, I think, that the underlying hardware and software platform should be designed as such that it is transparant to the user, that he should not think about it (do you constantly think what might go wrong in your car engine?).
Now, regarding hardware, I have been building my own PC's since 1991, and I have run PC-DOS, COMPAQ-DOS, DR-DOS, OS/2, Win95 and Linux on them, and the only hardware problems I had in that time where wear on harddrives, one problem with a power supply, and network cards where the output transmitters went bad (you can receive, but you cannot send anymore). I have built 5 generations of PC's, and they all still work (sometimes even after being for months on the attic).
Just to say that there is inherently (except for design flaws, F00F) nothing wrong with the PC hardware platform.
It is mostly the software platform above it which is not transparent enough to the end user and which poses problems.
If you look at the highlighted paragraph, why do you think that people who have switched to Mac become so enthusiastic ? They do not have to bother about the underlying software platform anymore! I have noticed this also in 1990/1991, when I installed Macs . However, I do not buy Mac, because I just like to happen to have more control over my computers. I like to design them and I like to build them, If my wife would ever want a portable, however, she should have a Mac, to that she and I do not have to bother.
Of course, making the software platform transparent is something that is anti-thetical to marketing. Microsoft's marketing machine wants to make sure that you know that you run MS Windows from Microsoft.
Stupid engineering ideas
I am constantly amazed by the amount of BULLSHIT the windows folks put up with.
When I read IT journals, be it online or as dead trees, I am constantly amazed by the amount of bullshit that is sold in the WHOLE IT industry.
I think that is also a point why people choose an open system (be it Linux, *BSD, or maybe something else) : being tired of all the bullshit and hype that is being sold by the IT industry.
For simple drafting work, I think QCad is ideal as an introduction to CAD. I use it, and my father uses it. I do not know however if there is a simple replacement for the 3D functions of AutoCad.
A book can last 20 years.
Or 50. I just purchased "Automatic Digital Calculators" from A.D. Booth, 2nd edition, 2nd print from 1957.
I think that all things relevant to computers have been thought about in the first ten years of electronic computers. All the rest afterward was either optimization, which could only be appreciated by people with knowledge in the field, or marketing bullshit, which is used to impress people without knowledge of computers, and to sell them things they do not need.
Reading this article and similar articles in the past, it strikes me that these policies are set by people who absolutely do not have a clue about computers, software and the internet.
I see this also at the schools here in Belgium (my sister is a teacher). Decisions are not taken on the merits of cost and/or technical capabilities, but purely because others do the same (and do not get me started on our so called ICT coordinators (ICT, now there is a term which absolutely has no meaning)).