What is the difference between source and binary distributions of mysql - mysql

Please let me know how to differentiate source and binary distributions of Mysql?
From internet, I came to know that one is compiled and other is not compiled version.
Not compiled version means, which software or language it uses to compile?
Compiled version means, how it works for different operating systems? is MySql developed in platform independent language?
Sorry for asking this type of question, but I need to get clarified on my doubts.
Thanks in advance.

http://en.wikipedia.org/wiki/MySQL
MySQL is written in C/C++ which are reasonably platform independent - it means a version of MySQL is available for different platforms (versions of operating systems). Binaries are build for different platforms, and you need to download binary version for the platform you have. Windows binary would not work on BSD Unix, etc.
You can see available platforms here: http://dev.mysql.com/downloads/mysql/
Likely with some skills you can build MySQL from sources on many other platforms. Not sure what exactly you want.
If you download source version, you need to have build tools. For example on Windows, you need to install C and C++ compilers and other tools as necessary.
Or you can just download both binaries and sources, and read source for learning experience.
Wikipedia article above has links explaining many more terms, to clear many more of your doubts. :-)
Edit:
C and C++ are considered "platform-independent": they are part of Gnu compiler collection : which provides compilers for many languages ("The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, Ada, and Go, as well as libraries for these languages") for many platforms/operating systems. And of course they power all distributions of Linux. See http://en.wikipedia.org/wiki/GNU_Compiler_Collection and http://en.wikipedia.org/wiki/GNU_Project

Related

For Tcl, is there an equivalent to perl's CPAN?

Given that the Tcl Wiki had a page titled
"Why isn't there a Comprehensive Tcl Archive Network like Perl's CPAN?", it seems the short answer to this is "no". Is there however someplace with an approximation - web sites, or FTP sites, with tarballs of multiple packages, ideally with older versions?
I'm an infrequent user of Tcl, and am undertaking a new x86_64 install of ActiveTcl, attempting to reproduce the package set of an i386 installation on older machines.
Using ActiveState's teacup package installer, it seems I'm able to find and install equivalents to two-thirds of the packages that were installed under the old tree. For the remaining set of packages, searching finds package-specific webpages across a variety of sites, some with only their latest version of source available.
As I'd like to avoid up-reving dependancies that some of these latest-version Tcl packages demand, I'd like to be able to install older versions of the packages.
Is there a repository that maintains broad and deep sets of Tcl add-on packages?
ActiveState's “teapot” repository is pretty good (especially for 32-bit builds) since they include nearly everything that is a sane (and reusable outside that one application) package with a sane build process. I use their stuff (and sometimes submit bug reports where the packaging has gone wrong).
There's also tcllib (as #glennjackman mentions in comments). The large majority (maybe even all) of that is available from the ActiveState repo; that which isn't is either because it isn't yet finished or because it's seriously broken in some other way. The main downside of tcllib is that it only has Tcl (and Tk, for tklib) as a binary dependency, which restricts what can be in there quite a bit; there's no database drivers in there, for example.
For binary packages, where you're not getting them via the teapot, the best place to start looking is Joe English's Gutter (Great Unified Tcl/Tk Extension Repository). It doesn't include builds but it does let you find things and then build them yourself. Most packages will also have a page (at least) on the Tcler's Wiki; that tends to be a reasonable place to look for usage samples and collected tips. (Also remember you can ask here if you've got a question specific enough.)
If you're working with tclkits, the space of libraries is a little different (as you're looking for a .kit-ted version). However I don't know that area so well.

Correctly distributing a Java application with database

I have this Java application which uses a MySql Database which I want to distribute. My concern is that, to distribute this application I'll need to make the assumption that the target system has both JRE and MySql Server installed.
Is there any way I could bundle my application with the JRE and the MySql server so that if they aren't already present on the system, my app can install them and then run the application?
No you should not bundle them and deliver them as part of your installation because of licensing.
This applies to both Oracle JRE and MySQL.
Update after #Stephen C comment.
It seems that it is possible to redistribute the JRE provided certain circumstances.It is illadviced though for the reasons that are explained in Stephen C answer. I have seen these issues arise in practice.
End Update
I am not sure what is the "safest" path (safest related to licensing issues).
Perhaps an installer that downloads them on the spot as part of the required components is ok.Friends here can correct me if I am wrong on this
You CAN bundle a JRE with a Java application, provided that you follow certain conditions. (If I recall correctly, this is covered by the standard Sun/Oracle license that you agree to when you download the JRE. I think the phrase is a "binary distribution" or "binary redistribution".)
UPDATE
I just checked, and my memory is correct. See Supplemental License Terms section of "Oracle Binary Code License Agreement for the Java SE Platform Products and JavaFX". (Paragraph C is the most directly applicable to your scenario.) And as I said above, conditions apply.
END UPDATE
I don't believe that you are permitted to bundle the free version of MySQL.
Personally, I would recommend AGAINST doing this for Java, because:
It inflates the size of your distributable.
It fills the user's disc with extra copies of the JRE.
It presents a problem if it becomes necessary to patch the bundled JRE that the user has (unwittingly) installed.
You are making it difficult for the (sophisticated) user to choose which version of Java to use.

Best portable development platform for small personal project

I'm looking for a development platform (language and set of libraries) that will allow me to develop a personal project. (In case anyone is curious, I'm looking at making a music library manager, similar to iTunes, that can work on multiple platforms and sync with Android devices).
I want the language to have the following characteristics:
Essential
The program must run flawlessly, with no (or very little) code changes on Mac, Linux, and Windows. That means, notably, that I need to have a cross-platform GUI framework, a consistent API for accessing files and directories, and a consistent interface for talking to USB storage devices
Important
A language that is easy to use, powerful, and expressive. Big standard libraries with a lot of built-in functionality. (I'd probably use C#/.NET but the portability isn't great)
Nice to have
Good tool support (on Linux if possible, but I'll do my development on Windows if needs be)
Not Java. (I have used it and just don't like it - I'm not interested in getting into a language war here).
Please help me choose a language!
Python
Cross platform GUI: more than one option, I'd use WxPython, but Qt bindings are also available (comparison between wxWidgets and Qt).
File System API: this gets into the os package, but there are also convenience methods for just dealing with I/O.
USB I/O: I confess to not having any knowledge here, but suspect if you're talking storage that Python will be able to read and write using its IO package.
Libraries, Ease of Use, etc..: there's a lot built in, but also a huge number of add-ons (called "packages"). Some of the most notable are SciPy and NumPy, used for scientific and numerical analysis.
Tooling: there are a number of IDEs out there, I use PyDev (but it's Eclipse based so you probably won't like it if you don't like Java).
Finally, Python is supported on Android via its scripting environment.
For cross platform GUI, you can explore QT. The back-end can be on c.
Have you explored anything so far?
Qt quick ?

Is Java free to use/ deploy and build large web applications?

Simple question, I want to know is Java free (especially for web development). Later on if I've build a large website, will the servers, databases cost me much like in .net for example?
Cheers.
Java is free. Check licences of frameworks you're using, but you shouldn't worry about that since most of them are free.
Servers (physical) will, of course, cost you.
There are free application servers like Glassfish and JBoss.
There are free databases like mySQL and PostgreSQL.
So, you can get away with everything being free except hardware and, possibly, hosting of your web app.
Yes and no - depending on how big your site gets, you may be required to invest more money into better servers/databases.
It's not really something that can just be answered, without looking into the future.
Update, as of 2021
Be sure to read the document prepared by pillars of the Java community, Java is Still Free. This document provides a short overview as well as a longer section with all the gory details.
Understand that Java is a set of specifications, not a product.
Java Language and Virtual Machine Specifications
JEPs and JSRs
Many vendors provide binaries or installers for an implementation of Java. Nowadays, all of those implementations are based largely or entirely on the OpenJDK project. Participants including Oracle, IBM, SAP, Apple, Azul Systems, and more have banded together to pool their best technologies for implementing Java as open-source free-of-cost.
The OpenJDK project provides only source-code. Various vendors build that source code to provide binaries or installers for you and me to conveniently put Java on our computers. Some of their distributions of Java are available free-of-cost, and some are commercial with paid support. Some are general-purpose JVMs, and some are special-purpose. Some are a basic JDK and some have bundled extras.
Here is a diagram I made to help you in choosing a vendor for a Java implementation.
And some considerations to think about when choosing a vendor.

How to identify the Programming Language used to Develop a Software? [duplicate]

This question already has answers here:
Closed 12 years ago.
Possible Duplicate:
Find Programming Language Used
So, I have an application consisting of an executable (exe) file and a DLL. Is there a way I can find out the specific language used to develop this software. I tried opening it in a disassembler but the contents seems garbled. Any ideas?
In principle, the answer is no. In practice, however, there are only a few choices:
If the .dll name looks like something.dll, it's probably a native dll image, which means it was probably written in C or C++.
If the dll name looks like Namespace.Something.dll, it's probably a managed dll, which means it was written in some .NET language (C#, VB.NET, etc.)
You can check the dll imports for more information. If the dll uses mscoree.dll then it's a .NET dll (even if it doesn't follow standard .NET naming conventions). It may also use other language-specific dlls that provide additional clues.
Open the .dll or .exe in a hex editor and search for the word "copyright". Most compilers put the copyright message of the runtime library into the executable in clear text.
Get IDA pro. http://www.hex-rays.com/idapro/ That is the tool to work with binaries or do reverse engineering. It will be able to find out the runtime library and maybe also the language.
Evaulation and freeware versions of the tool can be found here: https://www.hex-rays.com/products/ida/support/download.shtml
Unlikely, unless it has a significant runtime library that gives it away. e.g. VB apps used to require a huge DLL with VB in the name, Visual C++ apps usually require the C++ runtime to be installed. But modern languages target language-independent runtimes. Even Java .class files may have come from a wide variety of source languages.