Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
I am a newbie Linux user who came from 10 years using windows OS, and developing in Microsoft languages.
I want to have a good experience in Linux world and developing on it.
First, I want to learn how to use this new OS, then how to start developing on it, I am interested in web applications, specially using Java/PHP because I have some experience in both and it will be a good start.
Second, I want to learn how to develop on it.
Are there any video tutorials to give me a good starting push? any recommended books or references?
Suggestions
Environment Setup
I would recommend you install a the JDK if you are doing Java development. Look here for instructions on using apt to install the sun JRE.
Then, get yourself a decent IDE setup. Try Netbeans or Eclipse - both can be configured to work with php as well.
Also make sure you install php and Apache, here are some instructions.
Since it sounds like you are going for the classic LAMP setup, you may as well install PostgreSQL or MySQL.
That should get you running far enough to make videos, etc useful.
Development Resources
IDE Resources
Guided Video Tour of Netbeans 6.5
Eclipse and Java Video Tutorials
Java
Java Antipatterns - Learn what not to do in Java.
Apache Commons - Get libraries for common tasks in Java.
PHP
PEAR - Get libraries for common tasks in PHP.
ADODB - Get a decent db backend for PHP and learn how to prevent SQL injection attacks from the start.
Start to play around with a web dev framework.
Ubuntu Pocket Guide
If you're new to Linux, I'd suggest you look at the Ubuntu Pocket Guide. It goes through basic stuff that any user would want to know - window management, system configuration, etc, as well as some historical background on Linux and Ubuntu. You can skim through that and learn a bit.
Bash Basics
Towards the end, it also explains the basics of bash, which is the Linux command line. That part is interesting - you can do a lot more in bash than you can do in the Windows command line. For example, you may be familiar with this Windows idiom:
dir > directorylist.txt
...which means, "list the contents of this folder, and instead of showing the output, put it in this file."
In Linux, you can do that, and you can also do piping, where you direct the output of one command into another. For example:
ls | grep foo
means "list the contents of this folder, and search through the output for the regular expression foo." You can add as many pipes as you want and use a variety of commands.
You can also use brace expansion to run multiple commands in sequence. For example,
mkdir photos_{france,spain,italy}
will create directories called photos_france, photos_spain, and photos_italy.
If you're going to be developing in Linux, you should invest the time to read some tutorials on bash to take full advantage of it.
Since both Java and PHP are cross platform, it seems your biggest task would be to familiarize yourself with GNU/Linux and tools related to web development, apache web server in particular. Here are a few things google gave me:
http://www.micahcarrick.com/09-28-2007/web-development-linux.html
http://httpd.apache.org/docs/2.2/
Have fun.
Another option is Lazarus, which is based on Free Pascal, which itself is based on Delphi.
Lazarus allows you to develop using Object Oriented Pascal, across Linux, Windows and MacOSX and produces natively compiled executables on each target platform.
Natively compiled executables are generally much faster than interpreter based apps (i.e. Java, C#, PHP).
Lazarus use a component and event based approach to development which allows you to design GUI by dragging and dropping components on a Form Designer, which then are hooked through events.
Good luck with your programming adventures!
Ubuntu Kung Fu might be a good start.
Java development is something you can do with ease using Eclipse on Linux. PHP development is more or less the same as on Windows. Use a good text editor to write the PHP scripts.
Installing the required tools might differ from how it's done on Windows, but both PHP and Eclipse are available as packages in Ubuntu.
If I was to recommend one thing, it would be that you must learn to love the shell. It takes time to feel at home in, but it's well worth it.
On a related theme - You might want to consider using emacs or vim as your editor, but that's more of a personal preference thing. Some people just like IDE's better.
You should probably focus on PHP, rather than Java. It's easier to get started with and it's much more true to the Linux tradition (Whatever that means) than Java is.
Eclipse should run fine in Ubuntu.
Try some Java development in it to get yourself started.
If you want to get your lamp setup pretty easily, you can take a look at Zend Server Community Edition. http://www.zend.com/products/server/downloads-all
For development eclipse (as suggested above) with PDT (Php development tools) is pretty good http://www.eclipse.org/pdt/. I prefer Netbeans though. You could also use gedit with some plugins see this
Related
I am using Ubuntu on my computer, and I do not want to switch to another operating system.
I'm looking for a software that would let me program cross platform apps (for smartphones) with one programming language.
I would prefer a .NET language. Yes, I have looked at Mono, but they only offer their software in Windows and Mac.
Is there a software that would let me build a cross platform app? (I don't like Java, but JavaScript is one that I can handle)
MONO is available for more than both Mac and Windows. It runs in Ubuntu and instructions can be obtained from here.
iOS apps can unfortunately not be built without xcode, but the coding can easily be reused between Ubuntu and Mac. One software to checkout is Xamarin which allows you to use c# to develop iPhone and Android apps. I've been coding in .Net for a while, and I have to say that when I had to do a unix class project, MONO and Xamarin saved my life
Note: I know that your question specifically said you don't like the idea of switching platforms like you would need to in MONO, but I've done a lot of research on this and I've determined it to be my best option, I'd think it'll work for you if you're willing to use a Mac or PC
I'm looking for a software that would let me program cross platform apps (for smartphones) with one programming language.
If you are looking for some tools for developing cross platform apps for smartphones, I suggest you PhoneGap
Is there a software that would let me build a cross platform app? (I don't like Java, but JavaScript is one that I can handle)
You are using ubuntu and want to use .Net, No this is not a convenient solution. If you want a platform independent language, I absolutely suggest you, JAVA ;)
Please notice that:
Java IS NOT JavaScript and they are not related to each other.
I had the same question. I did come across Appcelerator. It seems that they supported Linux previously and the single language you can write in is Javascript.
It's not opensource. You have to make an account to download and install it, but there's free versions for solo developers. I'd rather use Kivy to develop in Python though ;)
Good luck.
I'm looking for a method to deliver my thick client software to intranet users through a browser. Ideally, the user could click a single button on the page, and something local to the machine would execute the software (similar to how Java Web Start works.)
Are there any alternatives to Java? I really like the experience provided by Spoon.
I see something called 0Install, which sounds like a non-Java web start. What is the experience like? Are there other alternatives I should consider?
It depends a bit on which platforms you want to support. 0install works best on Linux/Unix (e.g. the GUI is native GTK). On MacOS X the GTK UI looks a little out of place, although there are plans for a native UI. Windows has its own .NET-based GUI; it's quite new but improving fast.
Note that you can use 0install even for Java programs, which has some advantages. For example, I recently used it for a Java program with a dependency on GraphViz (a non-Java utility).
[ note: I am a 0install developer ]
I have a java project which I'm hoping to package and sell. How can I create a .msi file which will install my program on other windows computers?
If there are any tutorials, please direct me to them. I'm also using Eclipse if that has any bearing on how to create the .msi file.
Thanks
I've been using WiX extensively for creating MSI packages. It has quite a steep learning curve, but once you know what you're doing, it is very powerful. You said earlier that it needs Visual Studio installed, but I think it's just .NET 3.0, not the whole IDE.
I used this WiX tutorial when I got started, and it's got pretty much everything you need in there if you want to go down this route.
If you're after something simple, search for a tool called WixEdit on SourceForge. This has a GUI for building MSIs - it's not perfect, but pretty easy to use and produces professional results.
I'll repeat, WiX has a very steep learning curve, and if you're just after a simple way to package your application, NSIS might be easier; or, you could use the standard IExpress.exe tool built into Windows to create a self-extracting .exe (but they don't "feel" as good as an MSI).
There's nothing special about Java apps when it comes to creating MSI's other then you have to make sure you have a JVM/JRE installed just like you have to make sure the .NET framework is installed for .NET applications.
Your question is too broad to be able to answer. Implicit in your question is "What tool should I use?" and once that's decided "How do I make an MSI using this tool?"
For the first question, check out:
Windows Installer Authoring Tools for Developers
Use NSIS: http://nsis.sourceforge.net/Main_Page . It creates executable file that will do the same thing, and it is free.
If you specifically want to create an MSI package, and assuming you don't want to pay for something like InstallShield, look at Wix. http://wix.sourceforge.net/
I believe you want to look at Native Packaging, which according to this link was first introduced with JavaFX 2.2
https://netbeans.org/kb/docs/java/native_pkg.html
Since it seems to be official Netbeans docs, I imagine it is sanctioned by Oracle. Here is the counterpart for Mac for interested readers.
http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
HI
I am studying computer applications (software development) and will graduate in a year, i will be taking a year off to get my coding skills up to scratch as i have recently come to love code and development. i tried getting rails working on my windows 7 machine but that was painful.
My question is, is it worth it to go out and buy a Macbook if i'm going to be doing a lot of code in rails and java? over the next few years? does it make life easier?
Lets hope this does not turn into a Linux vs Mac flamewar.
At work and on my private machines, I use Ubuntu/Linux for RubyOnRails and Java development.
Sure, under OS X you have many nice tools available (like TextMate), but there are many others in Ubuntu/Linux available too. For free.
GEdit can replace TextMate quite well when using the right plugins, and for big projects I would always prefer NetBeans (for Rails and Java).
Also Ubuntu's package management and package feeds make it very easy to set up a working development environment.
And finally:
Apple is really expensive, you will pay many bucks just for the logo on your device.
Ubuntu is absolutely free on the other hand and can run nicely on almost any hardware (200$ Netbooks for example).
My suggestion:
try out Ubuntu on your current device - if you don't like it you can still go for the white fruit. And don't even think about using Windows for Rails Development.
There's no need to go out and pay top dollar for Mac hardware. You can get a stacked and rock-solid Toshiba laptop, put the latest Ubuntu on it, and you'll have a great Rails devleopment system.
Ubuntu is the way to go man. You'll love the ease of use and installation, too.
UNIX variants, of course. Actually, Mac OS is very nice, because of TextMate and some similar tools.
Mac would probably ideal for Ruby, but for Java I'm not too sure. For Java, the safest bet would be either Linux or Windows. But Ruby on Windows (with regards to tools and utilities) is pretty dismal.. so for the best of both worlds I would go with Linux. The OS is free and there's no need for specific hardware, or to run a virtual machine.
I started using Ubuntu for Rails development a few weeks ago and have noticed a big improvement over Windows (although I still dual boot) due to the following:
Terminal in linux is alot more robust than command prompt
Rails commands seem to run faster in Ubuntu
vim is a nice lightweight editor
If your going to use an IDE, I would suggest NetBeans for Rails and Java.
I have always worked on Windows systems, mostly working on C++ and later C#. I started working with Ruby on Rails more than a year ago. I did that on windows, and actually that worked out pretty well for me (just make sure to use a ruby version from rubyinstaller.org).
Although lately i have switched employer, and i am developing on ubuntu 10.04, and i even switched my home-system. I would recommend Ubuntu 10.04, but there are some very valid reasons to keep using Windows as well (some commercial software totally not being available on Ubuntu).
I have worked with ruby on rails in ubuntu, mac OS X and windows. Windows only was the worse but I prefer it with a virtual machine loaded with a ubuntu server 10.04 (it helps you in deployment also, as the most servers have linux), I have samba - access to the ubuntu files through windows explorer and it is working like a charm. You also have snapshots to revert if you do something wrong (through virtual machine), so you can destroy and recover it very easily and keep backup without any problem. Also you can transfer it everywhere with just copy paste.
Mac OS X is also a good choice, but it isn't as good as ubuntu for me, I am used to windows graphical environment and the commands in the command line sometimes is a little different (mac OSX is unix, it isn't linux and it doesn't use X windows), so it is a little tricky to feel comfortable, you have to learn a lot more to get the productivity you already have with windows. Also textmate needs time to get used to it, so better invest in a better solution like vim or emacs.
I've had great results running Java under Ubuntu. The UNIX environment is great IMO for scripting, running web application servers etc. In your position it is probably also a useful skill set to acquire.
In the past I've also run quite a few of my Java applications on Macs. They ran perfectly well, but I wasn't totally satisfied with performance of the JVM. That may have well have improved in recent versions of course.
I prefer uBuntu
Lets remember there are a couple of uBuntu specific setups that are required. Here are a couple links:
https://www.digitalocean.com/community/articles/how-to-install-ruby-on-rails-on-ubuntu-12-04-lts-precise-pangolin-with-rvm
http://gorails.com/setup/ubuntu is my favorite
How could we made a jar file's installer, which can run on multi-platform. Is there any simple way, because I don't know Java much well.
Balwant
Installer tools for Java have been dealt with in quite many questions on SO, and most options have probably been mentioned already:
What’s the best way to distribute Java applications?
Java Application Installers
What is the best installation tool for java?
See also other questions tagged java+installer.
If a commercial tool is ok, the best multi-platform installer for Java software, to my knowledge, is install4j; I can definitely recommend it (more about my experiences with it).
Nearly half of our BitRock InstallBuilder customers use it for Java deployment. It is multiplatform and runs in all the major platforms such as Windows, Linux, Mac, Solaris, HP-UX (and most of the obscure ones too :)
izPack is pretty nifty and supports multi-platform installations.
If the target audience have access to the web, you could have a look on Java Web Start which allows you to basically do all you need.
It requires the user to click a link and download.
Well the best way is to use InstallAnywhere that is good for install or packagging any of the applicaion in desktop.
here theInstallAnywhere go to site register your self and download one trial verson.