Software to find differences between server configurations - comparison

In order to troubleshoot a Java Web app that works in one server but not in a others, we are looking for software to find the software/registry/version differences between Windows 2003 servers. Does anyone knows of a free or commercial product that can help us do this?

In addition to testing the software/registry/version differences, would there be differences in your web app deployments? You can use tools like WinMerge (free) or Beyond Compare (quite good but not free) to see if your deployments are different.
Best of luck.

Also, it would be a good idea to compare JVM versions (what versions of the Java Runtime) are installed on the computers, as well as checking to see if the application server versions are different (Jboss, tomcat, websphere, etc...).

Related

Developing Ruby and Rails in Windows? Or Linux VM

I've been doing front end web work for a while. I maintain several company websites and etc, mostly on Joomla. I'm getting bored with it and I really want to expand in to development. I have a few web app ideas for the company and some personal stuff I'd like to do.
Ive decided I want to learn Ruby and Rails and have been pursuing it for about a month now. I read a lot of tutorials and work through stuff I find online. I'm also diving in to git and trying to use it more.
I feel like Windows is not going to be conducive to me getting efficient at this. I know that you can, and some do, develop in Windows but I'm wondering if its time for me to move past it.
I picked Ruby to be my first real programming language because of the simplicity I read about. For both Ruby and RoR and I want to be able to learn a language that will let me build apps and web apps that are cross platform.
On to the problem, I can't immerse myself completely in a linux world. I have to have photoshop and indesign for part of my job. So I'm thinking maybe I should just do a live usb key install and take it back and forth between work and home. Is that a better solution than dual booting for what I want to do? I also realize that a mac would give me the best of both worlds, but I am budget constrained and I can't make that leap yet.
Also, is there a good place to hang out to learn more? I have paid codeschool and tutsplus accounts. Should I be back on IRC? What do you think? I'm looking for guidance more than anything I guess. I feel kind of lost on where to go how to not waste time and start developing real skills. Thanks.
You should also checkout the vagrant project which creates headless (non-gui) VMs and makes it easier to work with your files, etc in Windows while the code actually gets run on the Vagrant VM. Also, since its headless, the graphical UI isn't eating up resources and has less impact on your host machine.
Check out these resources:
http://www.vagrantup.com/
http://blog.dcxn.com/2013/07/12/introduction-to-vagrant-for-rails-developers/
http://railscasts.com/episodes/292-virtual-machines-with-vagrant
*Also if you're learning Rails, you MUST checkout Railscasts http://railscasts.com/
The last thing I knew about this is that:
In Linux you can use RVM which handles pretty well everything about your Ruby environment. In Windows I tried pik, but it does not have support to install newer Rubies.
Also, Linux console is much friendlier than Windows one, regarding appearance and functionality. I have explored console2 for Windows, but it did not feel so comfortable that time.
In Linux you have plugins like oh-my-zsh which allows you to speed up your development. But maybe there are kind of this plugin for Windows.
Other than those, I don't know why you should choose Linux VM.
I've developed a Rails app under Windows, and it turned out to be a huge mistake. Near the end of the development, I had to make my webapp multithreaded. The default Rails server does not allow multithreading, and all the alternative servers are either Linux-only, or I couldn't get them to work.
I also considered using JRuby(because Java threads), but by then my app was too big to convert to JRuby(there are some syntax differences that I couldn't track, and I relayed on some gems that don't work on JRuby). However, if you go for JRuby from the beginning, you might be able to pull it off.

ASP.Net MVC on Linux/Mono

I am thinking of developing a website using the ASP.Net MVC framework on Linux. I would like to know:
what are the best practises for developing such a site (are they any different for mono/ Windows)?
any gotchas I should be aware of
any (material diffeences) - e.g. missing/proprietary libraries/componenst between Mono and .Net
are there any special directives, modules required to run Mono with Apache?
Are there any performance differences between a site hosted on Windows/IIS and Linux/Apache?
I intend to do most of my development using VS Studio - can the site be developed using VS and then deployed on Linux?
I am aware that this question has been asked several times here on SO. However, most of the questions date back to 2008 or 2009 - which is a very long time in internet time. Things may have moved on since those answers - so those answers may no longer be relevant.
I have to state that I am NOT interested in hosting the site on a Windows server - so I am only interested in what works for a Linux server deployment.
I'am currently working on a MVC 4 app and we are using Mono. If you are just planning to have a basic website, you should go for it. But for more complex flows, honestly, I think you should do a little bit of research first, to see if the features you want to implement are supported in Mono. Things you should consider:
only a set of restricted libraries are supported on mono ( for example, right now we are having some issues due to the fact that the mono libraries (Novell and DirectorySearcher) for LDAP do not support pagination)
the developing environment will be different than your server env ( I am using Visual Studio, we managed to pass this limitation by adding a lot of logs)
we do our publish using FTP, so yes, you can deploy it from VS, using a publish profile set up for FTP
it's free, but it will take a lot of time to research & do special thinks just for the sake of Mono
not a lot of documentation available, because not a lot of people use it, so if you have a specific problem, it will be more difficult to solve
My experience is from 2011, but I am pretty sure you will have to experiment to see works and what doesn't - that's my experience with Mono.
Most of your questions are extremely broad and I think your question will be soon closed.
As for your last question this was the way I did it and it worked (develop in VS->deploy to Linux), but you must be aware that:
just because your code will work in the VS debugger it doesn't mean it will work when deployed;
there is no one-to-one mapping between Mono and .Net. Even when things work it doesn't mean they will work the same way. For example the implementation of the encryption code used for http cookies was very different between mono and .net.

Linux, Rails, Mono C#, No-SQL setup

Hi I am keen on setting up a Linux box to play around with Rails, No-Sql, Mono C#... and opensource projects!
I am keen on learning Ruby on Rails and don't have a Mac so I think for now the cheapest option is to install a Linux distro on my computer. I am also keen on trying out MongoDB
I am a complete nube to Linux and am wondering if I should install openSuse, Ubuntu, Debian or ? I am also a C# developer so I can install Mono and MonoDevelop. They have packages for these http://monodevelop.com/Download
Anyone have some blog posts, screencasts, books, experience I would love to hear about it :)
Cheers
Jake
Note: you can still learn Ruby on windows, you can also use Ruby and .NET with IronRuby which is nearly 100% compatible with C Ruby. That's not to stop you from learning linux though as it gives you a different perspective on OS's and will expose you to the power of the command line.
Mono on linux is very complete. The best distribution to use with it would be Open Suse (as it's supported and recommended by Novell who develop Mono).
If you want to go the NoSql route than I would recommend looking at redis a very fast and advanced key-value data store with support for rich data structures, i.e. lists, sets and ordered sets. If you use C#/Mono you can this redis client which has native support for storing complex types and exposes Redis server-side lists and sets as IList<T> and ICollection<T>'s.
It probably doesn't matter much which Linux you install on a desktop. The user experience will be determined by Gnome or KDE, not the distro.
The two aspects of linux that have the biggest user-experience impact are the desktop and the package system. Linux has, sadly, two of each.1.
There are two desktops: Gnome and KDE. In general, you can choose Gnome or KDE with any distro and you can even install both. (You only run one at a time, though.) Please realize that except for some configuration details, for the most part the distros redistribute the same set of Unix-model software, so you aren't getting anything wildly different or even as different as XP vs Vista.
Either of the two main package systems can in some ways be used with any distro, but life will be much easier if you stay with the vanilla one for your distro. But since you aren't expecting either one I think it won't matter.
Now, if you went and installed, say, NetBSD, then you might notice some real differences, although you would still have your choice of Gnome or KDE.
1. Technically, there are 10 or 20 window managers that provide interesting lightweight GUI's that are something a bit less than a full-blown desktop GUI, but that's in the advanced class. Also in that class: Unix servers generally run no GUI at all.
I would go with Ubuntu or OpenSuse since most of the tutorials, community support and other stuff around Mono is targeted to these distributions.

ruby development environment

is it better to develop ruby on rails in a) windows b) linux or c) mac. why ?
edited :
the reason why i am asking this is that i heard that developing ruby on rails in windows is not as stable/good compared when you used ruby on rails in mac. (not sure though if that is true or not).
plus the fact that David Heinemeier Hansson (creator of Ruby on Rails) seems to be using Mac, so initial impressions seems to be Ruby on Rails applications and Mac goes well together.
I strongly advise you don't develop on Windows. Why? First, there are a lot of things that break on Windows with every upgrade and the majority of gem or plugin creators don't use windows so they don't care about windows and don't run tests on it(there are several big name people who have flat out said that windows is NOT their problem it's yours). You'll find the *nix vs Windows problems will bite you in the ass again and again. Pathnames slashes, minor differences in ssh implementations, console and font problems, rubygems, capistrano, etc...
What will end up happening after a while is that you will always have this voice in the back of your head every time you have to debug something saying "Is this a problem only on Windows?" and that little voice is a cost to you..using up some of your battery every single day.
Macs are more expensive in terms of upfront dollars (which sadly I don't have) and linux platforms are more expensive terms of spending a day or two trying to get your wireless to work but those are upfront one time costs. The nagging insecurity of using Windows for Rails development is an ongoing cost. At least until the community starts rejecting things that are not truly cross platform.
As an example look at cucumber. For some reason a test framework is dependent on a particular console configuration not available in windows. So to use it in Windows you have to change the font in your console and change the code page in your console. Otherwise the letter "a" disappears from all the output. Why? Because it works fine for *nix systems and gives you pretty colours (I think this is a huge flaw and very very poor design choice even if you ignore windows).
You'll also feel like the guy who farted in the elevator every time you bring up a windows issue.
I say all this as some who has to use windows for his development platform at the moment. Hey, what's that smell?
[late edit: Ruby is also about 3 times slower on windows. This will impact your willingness run your tests all the time and hurt your TDD feedback cycle]
Shouldn't matter, whatever you're most comfortable with. I've done all three.
I suppose Windows is a little uncomfortable because of not being unix-based, the CLI is a bit more clunky.
(But if you use a tool like NetBeans, you don't really even need the CLI much)
I recommend against using windows when developing an app that will later be deployed on a linux system. If you're developing an app for practice, Windows is fine.
The issue is that if you're aiming at linux, then you'll want to have a full stack on your development machine: a web server, a dbms, perhaps memcached, etc. While it is possible to load all of that onto windows (I've done it), it will take longer than on a linux machine, will be slower and you'll have more difficulty finding assistance when something doesn't work.
Also, you can run into gem and plugin support issues on windows. Eg \ instead of / for directory paths and other weirdness. While rubyists will try to be helpful, windows support is sometimes limited since most RoR work is done on Mac or Linux machines.
Eg Capistrano has had problems running on Windows (they may be fixed now).
As an alternative, you can use Windows as your desktop machine, but use a linux machine as your development server for running the app. Any old pc will run linux just fine. Use samba to remotely access and edit the files from your windows machine. The linux machine does not need a display, you'll only use it remotely.
Just change your app's config/environments/development.rb to include
config.action_controller.consider_all_requests_local = true
so you can see stack traces from your browser running on your windows machine.
Regards,
Larry
Ruby on Rails works well on all platforms, but tool support varies. For instance, TextMate is a favorite editor amongst Rubyists, and it's Mac only. You'll be able to find lots of helpful tools for working with RoR in TextMate, so it might be best to do RoR development on a Mac.
I use Mac and Linux myself.
A Unix based system will offer you a path of lest resistance as all gems are available/compilable on these systems, which isn't as easy on a Windows machine. It's not impossible on Windows but you'll spend more time getting it to work rather in some cases rather than doing work.
Of those Unix systems my preferred is a Mac, it's got all the Unix power as well as all the interface niceties that can be lacking from your linux system, and of course I couldn't live without my daily dose of TextMate, so Mac it is.
I started life as a programmer in 1981 on early Unix systems. I stayed a pure Unix person through 1995. Then 'stuff' happened, (business ownership), and Windows came into my life.
So in 2007 I start learning RoR, pure Windows. I deployed on Joyent, which is Solaris. I've successfully developed two large apps, developed on Windows, and deployed on Solaris/Apache/Mongrel, without major incident.
The only Windows issue I ever remember is that I had to force filesystem reads and writes into binary mode to fix a 'development' vs. 'deployment' issue.
I honestly don't see any problem with developing on Windows and Deploying on Unix. But I had an extensive Unix background, I'm not sure the story would have been the same had I not know Unix.
Also, I'll only ever work on the RoR apps I build for my business. I'll never need to build any other RoR apps, I'll never develop any plugins, never have to take over another project, never have anyone INSIST I include something only available in something that doesn't work well with my Windows development environment, etc...
I'd say this:
If you are responsible for developing a Web app for your employer, and that employer is Windows based, that SHOULD NOT preclude you from considering RoR as platform. The app would have to be deployed by a third party, unless your employer is large enough and the project important enough to warrant in house Unix systems.
So if you know SQUAT about Unix, you MAY need a little help along the way. If you go with a third party Rails host, check out their support forums, make sure there are people willing and able to talk a non-Unix person through any deployment/setup and maintenance issues.
I'll give you an example, on Joyent, if I want to run a migration, I have to go through their Database GUI thingy, log into the database, then 'execute' a command. OK, so I get a simple text_field where I enter input destined for a Unix shell, which is:
cd /user/myhome/sites/mysite && rake db:migrate RAILS_ENV=production
That might not have been so easy to figure out had I not had the Unix background.
As of Ruby 1.9.2 and Rails 3.2, Windows is a lot slower for autotest and spork (one full cycle took ~15 seconds on average compared to mere seconds on Linux for the same project), but I enjoy better gui-centric git tools and functionality (TortoiseGit, WinSCP) among other things since I am much more familiar with Windows. I have verified that the essential features I need are working on both platforms, so I find breakage to be a lesser issue compared to speed.
Doesn't matter, If you're a purist then your dev environment should as closely match your production enviroment as possible with regard to Operating System and version of the Ruby and Rails. But really it doesn't matter much.
Some gems work on Mac but not some flavors of Linux (such as gitjour when I last tried it).
Using a Mac might be good or bad, depending on whether you want to know that whatever you develop will be able to work on any other OS.
I've done light rails development on both OSX and Linux (Ubuntu), and I found the differences to be almost imperceptible (in terms of ruby and rails... obviously the desktop environments are a lot different between the two OS's).
As others have said, most ruby/rails tutorials, gems, plugins, etc. are oriented toward Unix type systems, so I would assume there may be some annoying hiccups trying to do ruby/rails development in Windows, unless of course you're using IronRuby. :-)
A low hassle alternative for setting up a Unix environment for Rails development is to run one of the easier to use Linux distributions, like Ubuntu or Fedora under virtualization software like VMWare, VirtualBox, VirtualPC, etc.
I agree with many of the previous posts that Rails on Windows can be an issue. Its simply the case that many people developing for Rails are on Macs or Linux and as a result Windows bugs are not found, this is particularly an issue with plugins.
One issue with Rails is IDEs. TextMate on the Mac seems to be a popular choice, yet Linux and Windows options are pretty fragmented. Normally I wouldn't worry about this, but I have found that Rails becomes much more manageable when you have IDE support. In general there are lots of files located in a reasonably complex directory structure so having an IDE which allows you to easily find files your looking for is an awesome productivity boost.
Another thing you may want to consider is what your deployment environment looks like. For example, may people deploy there Rails apps on Linux servers. In that case, you may be able to skirt around bugs by developing on OS X, but unfortunately those bugs will crop up when you go to deploy your new software. That is the last place you want to be debugging code. Of course you should be testing your code in a staging environment first, but all too often people skip this step.
While searching for the answer to this question due to always having to hack my way around windows to things to work while developing in Ruby, I can say that if you have the option, use Linux or Mac. I've officially started using Ubuntu 9.04 as of today and here are the reasons why:
1) Can't do any ssh things like use Capistrano, vlad, create gems for rubyforge, etc. You can do these things using cygwin, but it's such a pain in the arse to use cygwin and windows working for everything.
2) The final straw was when trying to kick off background tasks in a rails app only to realize that windows can't fork processes.... didn't even bother with cygwin for this one, just switched to Ubuntu so I don't have to keep working around these issues.
Ubuntu 9.0.4 is pretty hot though, quite impressed so it may not be so bad.

Does anyone here have experience developing for Minix?

Recently I have become curious about the Minix OS. http://www.minix3.org/
I am very taken with descriptions of its robustness & reliability features, but I have noticed a distinct paucity of software packages available for the platform.
Has anybody here developed software for (or ported software to) Minix? Anything unexpected about the process?
Minix 3 is a new version; LINUX was prompted on the original Minix.
Minix is really best suited to small systems of embedded systems. If you have an old x86 PC around it should run minix handily, giving you an environment very much like what we called "an amazing workstation" in the mid-80's.
I loved programming in that environment; I'd say go for it, but remember that it is an experimenal environment, not what you want for your day-to-day system.
Coded round robin scheduler and such with nano, SSH connection can be used to code in new fashion platforms and send back the files. Minix is a great way to learn basics about Operating Systems.
I came across this piece while finding out how to contribute to minix. I liked it:
http://prasannakumartsm.wordpress.com/

Resources