How to sync netbeans config/plugin/updates across multiple systems? - netbeans

I use netbeans in both my desktop and my laptop. Updating and installing plugins on both systems is cumbersome, hence, it would be nice if there was a way to sync configurations, plugins, and updates across the systems.
I tried copying the ~/.netbeans directory, however, that also brings along the list of recent files and open projects in the other system.
Note: The OS, in both the machines, is Linux.

there are some possibilities
create your own linux package and manage the updates
check in subversion/cvs/git whatever your vcs is
or use a simple ftp/sftp solution

Related

Centos VM vs Centos "real" machine yum package differences

I have two CentOS platforms. Both run "CentOS release 5.10 (Final)". One is a "real" machine and the other is a VM. Both are 64 bit. Call the real machine Prod and the VM Spare.
When I got this gig I was told that the two machines were identical. Spare is supposed to be a hot spare for Prod. It is now obvious that is not true. The two machines have different yum repo lists. There are duplicate looking install packages from different channels. Prod looks like a server. Spare looks like it had been somebody's desktop with Evolution, OpenOffice and other desktop cruft.
Prod and Spare have similar applications installed but found in different repos so the available yum update levels are different.
I have tried disabling the non-standard repos and uninstalling the non-standard packages. This has led to tears as removing X-Windows, for example, has led to the removal of hundreds of dependant modules that in turn have dependants which, in the end, made Spare deaf, blind and mute. Blessedly we had a copy of the VM.
My latest idea is to migrate both machines to the latest stable CentOS level and basically have a do-over. The downside (I think) is the downtime to the production machine and unknown custom software vs new package level issues.
My basic question is, what is the best way to make the platforms as identical as possible, and minimize (or better yet negate) downtime.
How should we maintain packages and other installs across them into the future? I am aware of Puppet, Chef and CFEngine but have not used them before. Are these the way to go for the future? Something else?
This is not really a programming related question (You might have better luck at https://serverfault.com/)
Your question is quite broad, but essentially you want two machines that are as identical as possible, one production, one VM, correct?
Two get machines in a consistent state, you'll need a configuration tool of some sort. Ansible is probably the easiest to get setup and get cracking with. At it's most basic setup, is basically nice wrappers around SSH. With this you can create consistent, and easily track changes to servers as they happen.
To have a VM you can easily provision, I recommend reading up on Vagrant and Packer. Vagrant to easily create a VM that accurately reflects your production environment, packer so you can repeatedly create an image in various platforms. In an ideal case, you can take the configuration tool and use it to provision your VM, meaning you can test your production changes on a VM first.
In general, having repeatable automated configuration you can easily test, I'd also recommend reading up on the concept of DevOps

how to setup version controlling system in small team

I'm a web developer and would like to setup one system as server which can have all the source code which my team will develop.
My worries here is we all use different different OS (windows, Ubuntu, CentOS) but we work from the same place. I want to have some version controlling tool which allows us to do development efficiently.
Currently we are spending more time to integrate each other code in your code and fixing code according to new/old code.
We all use eclipse Juno. I really appreciate if someone can send me step by step guide to setup the version control system on Ubuntu or CentOS system.
I want this version controlling system should work in local only. I don't want to host my code on some 3rd party server. I want them in my local server only.
Thank you,
You can use Git with Gitlab. Just follow the setup instructions on your Linux based local server.
Git works also with Windows. Check http://git-scm.com/ or http://uncod.in/blog/installing-tortoisegit-on-windows7/
You can use Egit to integrate with Eclipse.
Good Luck!
I really enjoy Veracity. It's cross-platform and you can run it as a sever that only exists on your local network. The interface is fairly similar to Subversion, but is distributed version control. Here's a quick introduction:
http://veracity-scm.com/qa/questions/53/ive-installed-veracity-how-do-i-get-started-using-it

Create versions in eclipse using local history

Is it possible to leverage eclipses built-in local history to create and save versions. I find local history very useful, but if I could restore the whole project to a previous state that would be even better. I've considered using version management, but it seems unnecessary as I am the only person working on my project. And I could really benefit from the ability to name my (local history) versions instead of having to go by date.
Thanks,
Lemiant
You're going through a lot of hassle just to avoid version control. Instead! Use a local version of subversion for all your version control needs.
You do not need to host a server. It will use the filesystem only! Use subclipse or subversive to integrate into eclipse.
A tutorial how to set it up(takes less than 5 minutes):
http://vincenthomedev.wordpress.com/2007/10/15/setup-svn-local-repository-step-by-step/

Are there any USB stick runnable, no-install, cross platform software frameworks (with GUI)?

Does anyone know of a good software development framework or similar that has the following properties?
Cross platform: it should be runnable on XP, Vista, OSX and common versions of Linux (such as Ubuntu and Kubuntu).
No installation: Be able to run the software from a USB stick without having to copy anything to the host machine.
Have good GUI support (this is why this question doesn't give a suitable answer, as far as I can tell).
Permissive licensing such as LGPL or BSD or such.
Among the softer requirements are having a set of abstractions for the most common backend functionality, such as sockets, file IO, and so on (There is usually some platform specific adaptations necessary), and supporting a good language such as Python or C++, though it is usually fun to learn a new one (i.e. not perl).
I think possible candidates are Qt 4.5 or above (but IFAIK Qt software will not run on Vista without any installation(?)), some wxWidgets or maybe wxPython solution, perhaps gtkmm. The examples I have found have failed on one or another of the requirements. This does not mean that no such examples exist, it just means that I have not found any. So I was wondering if anyone out there know of any existing solutions to this?
Some clarifications;
By "framework" I mean something like Qt or gtkmm or python with a widget package.
This is about being able to run the finished product on multiple platforms, from a stick, without installation, it is not about having a portable development environment.
It is not a boot stick.
It is ok to have to build the software specifically for the different targets, if necessary.
The use case I am seeing is that you have some software that you rely on (such as project planning, administration of information, analysis tools or similar) that:
does not rely on having an internet connection being available.
is run on different host machines where it is not really ok to install anything.
is moved by a user via a physical medium (such as a USB stick).
is run on different operating systems, such as Windows, Vista, Ubuntu, OSX.
works on the same data on these different hosts (the data can be stored on the host or on the stick).
is not really restricted in how big the bundled framework is (unless it is several gigabytes, which is not really realistic).
It is also ok to have parallel installations on the stick as long as the software behaves the same and can work on the same data when run on the different targets.
A different view on the use case would be that I have five newly installed machines with Vista, XP, OSX, Ubuntu and Kubuntu respectively in front of me. I would like to, without having to install anything new on the machines, be able to run the same software from a single USB stick (meeting the above GUI requirements and so on) on each of these five machines (though, if necessary from different bundles on the stick).
Is this possible?
Edit:
I have experimented a little with a Qt app that uses some widgets and a sqlite database. It was easy to get it to work on an ubuntu dist and on osx. For windows xp and vista I had to copy QtCored4.dll, QtGuid4.dll, QtSqld4.dll and mingwm10.dll to distribution directory (this was debug code) and I copied the qsqlited4.dll to a folder named "sqldrivers" in the distribution directory.
You mention wxWidgets but dismiss it as failing at least one of the requirements.
I don't know what your requirements are and in what way wxWidgets wouldn't work for you, but IMO it does fulfill them:
Cross platform: it should be runnable on XP, Vista, OSX and common versions of Linux.
It does run on those platforms, but "common versions of Linux" isn't good enough, as you can never be sure that the necessary GUI libraries for wxGTK (which should not be linked to statically) will be installed. This is however a problem for other solutions as well, unless you plan to put everything onto the stick.
No installation: Be able to run the software from a USB stick without having to copy anything to the host machine.
See the previous point, you would need to specify which libraries are needed on Linux. Also you could specify at build time not to use some of the system-provided libraries (for example for graphics, compression, regexes) but to use the wxWidgets-internal libraries instead.
Have good GUI support
Check.
Permissive licensing such as LGPL or BSD or such.
Check. You can statically link wxWidgets into your application too.
supporting a good language such as Python or C++
Supports both, and there are bindings to other languages as well.
having a set of abstractions for the most common backend functionality, such as sockets, file IO, and so on
It does have some abstractions like that, but you can link to other cross-platform libraries as well.
We use wxWidgets for FlameRobin, a graphical administration program for the Firebird SQL server. It has active ports to Windows, Linux and Mac OS X, and has been compiled for at least some BSD variant and Solaris as well. It definitely runs from a stick on Windows, I haven't tried with Linux or Mac OS X, but I don't see why it shouldn't there too.
Java.
It has GUI support.
It provides your network/file/etc. abstractions.
It is cross-platform. Most platforms you can think of have a JRE available.
No need to install a JRE. Most users probably already have one, and if not, you can run the appropriate JRE right off the stick.
You can provide several startup scripts for various platforms to run the app under the appropriate JRE.
Something else to consider is HTML+Javascript. :D
You can look at Mono it cross platform, has GUI (GTK+, or Winforms 2.0) and I can execute code without installing.
This might not be crossplatform, but is maybe even better, it dont even use the platform : linux on a stick :-)
The subtitle is
Take your Java workspaces wherever you go on a USB key
Here with java and eclipse, but nothing stops you there of course.
http://knol.google.com/k/inderjeet-singh/installing-a-ubuntu-hardy-heron-java/1j9pj7d01g86i/2#
Well, it depends on what you mean by 'package'. Kylix came close to being such a thing. It was QT based, and it allowed you to write once and compile for Windows + Linux. However, it was not an open source solution.
I asked a similar question in this link
http://www.24hsoftware.com/DevelopersForum/CrossPlatform-C-Library.html
and the best asnswer seems to be QT.
I have started using QT, but it is not as easy as I expected mainly due to deployment problems due to the DLL hell, Winsxs hell and manifest hell.
Tclkit is a single-file, self-contained Tcl/Tk system. The mac version I have is about 3.8 megs. You can get a version for just about any modern OS. I carry around a thumb drive that has mac, windows and linux binaries so I can run my scripts on any platform. No install is required, just copy one file wherever you want.
The most recent versions of tcklit use native, themed widgets (though, on *nix there really isn't a single "native" set of widgets...)

What is a good alternative for SourceSafe on a USB Drive?

I like to keep my source files on a USB drive for the portability. To date I have been using Visual SourceSafe for this purpose. What is a good alternative to VSS that fulfils these criteria:
Entire database can be held on a USB "pen" drive
Code / documentation duplicated on local drives
Does not require a central server
Easy to backup and restore using standard backup tools
Integrates with Visual Studio
Has a small footprint
Easy to clean the database and keep small
Compatible with Windows XP, Vista and Vista x64
A good reference on setup would be good too.
I would use SVN (Subversion).
You can use SVN in "file" mode (w/o using the network).
combine this with tortoiseSVN, which integrates to explorer, and you have a nice little portable repository.
For Visual Studio integration, there is the commercial($49) VisualSVN (which I believe is the setup used to develop StackOverflow).
Someone also mentioned AnkhSVN which I haven't used, but some people find it less than satisfying.
Don't use SourceSafe. There's major problems with it. See this:
Article1
Article2
I'd recommend using SubVersion instead.
If you're using Windows, you can use TortoiseSVN.
If you're working on Linux or other Unix variants, try RapidSVN.
Use Subversion. The FSFS style repository will work best as older BDB ones can have issues when moved from computer to computer. With AnkhSVN you'll have full integration with Visual Studio (AnkhSVN 2.x is a source control plugin; older versions still do the job, though).
Bazaar does what you're asking for (in terms of working very well standalone), and there was a 2007 Summer of Code project to build a Visual Studio integration plugin which appears to have produced an at-least-partially-functional product.
Bazaar (and other distributed tools, such as Git, Mercurial, Darcs and the like) are ideal because you can have your repository stored in multiple places (ie. on your pen drive, but also copied up to a server on a regular basis), make changes in one or the other branch (let's say you leave your pen drive at home -- you can build changes against the copy on a remote server, upload them via WebDAV, SFTP, etc, and be able to seamlessly merge them into changes done locally to the pen drive; non-distributed solutions such as Subversion don't have that capability).
There are two common free front-ends Ankhsvn integrates into visual studio
and TortoiseSVN integrates with explorer ( my preference).
There is also sliksvn a self contained svn server for windows.
I'd recommend SubVersion as well - you can find a hosting provider who offers SVN for really cheap, this way your source code is always backed up and available, all you need to keep on your flash drive is SVN client...