Re: Free software projects in Java or C++

2009-12-26 Thread Uri Even-Chen
On Sat, Dec 26, 2009 at 9:51 AM, Oron Peled o...@actcom.co.il wrote:
 On Friday, 25 בDecember 2009 23:38:38 Uri Even-Chen wrote:
 A friend of mine suggested me to join a free software (open source)
 project in Java or C++, to gain experience in these languages.

 Your friend gave you a good advice. However, please note that usually
 there is no *immediate* reward. It's not like a (free software) newbie
 joins a project and three months later he is swamped with job requests.

 Working on a free software project tend to increase your capabilities
 by exposing you to different technologies and working styles. On the
 long run (years), this can bring you not only fun, but work as well.

Thanks for your advice.

 Do you have an idea how to find a good project I can join, in Java or
 C++ or maybe Python?

 There are many sites hosting free software projects. Some of them:
  www.sourceforge.net
  savannah.gnu.org
  gna.org
  github.com

 Since you used some scripting languages in the past (PHP), it looks
 like python would provide easier learning curve for you.

I personally prefer compiled programming languages than scripting
ones.  I have experience with both, Pascal and C vs. Basic and PHP and
Perl.  I want to learn Python, but I think there are less jobs with
Python, so it's better I learn Java or C++.  I think there are many
jobs in Java and C++.  There are also jobs in C# and .NET, but I
prefer not to be stuck with Microsoft technologies.  I don't like
Microsoft, although I have been using their products for many years.
Also, thanks for the websites you sent me.  I know sourceforge, the
others I will check later.

Uri.

___
Linux-il mailing list
Linux-il@cs.huji.ac.il
http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il


Re: Free software projects in Java or C++

2009-12-26 Thread Shlomi Fish
On Saturday 26 Dec 2009 10:05:37 Uri Even-Chen wrote:
 On Sat, Dec 26, 2009 at 9:51 AM, Oron Peled o...@actcom.co.il wrote:
  On Friday, 25 בDecember 2009 23:38:38 Uri Even-Chen wrote:
  A friend of mine suggested me to join a free software (open source)
  project in Java or C++, to gain experience in these languages.
 
  Your friend gave you a good advice. However, please note that usually
  there is no *immediate* reward. It's not like a (free software) newbie
  joins a project and three months later he is swamped with job requests.
 
  Working on a free software project tend to increase your capabilities
  by exposing you to different technologies and working styles. On the
  long run (years), this can bring you not only fun, but work as well.
 
 Thanks for your advice.
 
  Do you have an idea how to find a good project I can join, in Java or
  C++ or maybe Python?
 
  There are many sites hosting free software projects. Some of them:
   www.sourceforge.net
   savannah.gnu.org
   gna.org
   github.com
 

There are some lists for them here:

* http://en.wikipedia.org/wiki/Category:Free_software_hosting_facilities

* 
http://en.wikipedia.org/wiki/Comparison_of_open_source_software_hosting_facilities

* http://www.dmoz.org/Computers/Open_Source/Project_Hosting/

In addition you may wish to browse, search or follow http://freshmeat.net/ or 
http://directory.fsf.org/ - they are directories for software with 
announcements.

  Since you used some scripting languages in the past (PHP), it looks
  like python would provide easier learning curve for you.
 
 I personally prefer compiled programming languages than scripting
 ones.  

Just a note - there is no dichotomy between compiling a language and it being 
a scripting language. For example, Perl, Python and PHP are all compiled 
into bytecodes, and CRuby will get a bytecode-based backend in ruby-1.9.x. 
What you probably mean is compiled into binary machine-code executables. This 
actually is possible to some extent with dynamic languages too.

And just for the record see:

* http://xoa.petdance.com/Stop_saying_script

* http://www.perl.com/pub/a/2007/12/06/soto-11.html

Java and the .NET-based languages are also compiled into bytecode, which is 
then executed. (Though there's an extra level of JIT).

 I have experience with both, Pascal and C vs. Basic and PHP and
 Perl.  I want to learn Python, but I think there are less jobs with
 Python, so it's better I learn Java or C++.  I think there are many
 jobs in Java and C++.  

Yes, for better or for worse. Personally, it has been my feeling that programs 
written in either Java or C++ seem incredibly difficult to get right, although 
in these cases from different reasons. Maybe working in C++ with a framework 
such as Qt is a good idea:

http://www.shlomifish.org/open-source/portability-libs/

I have a multi-threaded program that someone who contacted me about 
http://www.shlomifish.org/rwlock/ wrote in C++ which works perfectly if you 
use printf and gets stuck quickly if you replace them with cout  (I have a 
define for toggling them). Someone once gave me a link to a forum post which 
documented this, but this seems so basic that it should just work.

He also was unable to use my RWLock (despite prefering it over the built-in 
POSIX rwlock) because it caused him more problems. Eventually, he said that he 
became convinced that he should have written his program in C instead of C++.

 There are also jobs in C# and .NET, but I
 prefer not to be stuck with Microsoft technologies.  I don't like
 Microsoft, although I have been using their products for many years.

I should note that C#/.NET/etc., while having originated from Microsoft, are 
not specific to Microsoft and http://www.mono-project.com/ has implemented 
them for most other OSes besides Microsoft. Recently I ported some Perl 5 code 
to Mono and C# (because the Perl code ran too slowly for my taste and what I 
tried to do). Without really knowing C# beforehand, it took me only a day to 
write that program (409 lines of C# code and 113 lines of Perl code to help 
test it (according to SLOCCount)), and it ran fine - started quickly and seems 
to have run much faster than the Perl code. So I was happy I chose C# for that 
instead of C which I know better.

Naturally, this is just a relatively simple algorithmic and command line 
program, which isn't representative of the more complex software that C# tends 
to be used for, so I cannot comment on the suitability for it.

What you are right about is that most C# and .NET shops will expect you to 
develop and deploy on Windows, because Mono is both incomplete and deploying 
.NET apps on non-Windows platforms may exhibit bugs or non-portabilities in 
the program. Someone once sent me a C#/.NET program he wrote and I couldn't 
run it on Linux because it used backslashes for paths. (This is naturally not 
limited to .NET - you can write Windows-specific software in almost any 
language).

 Also, thanks for 

Re: Free software projects in Java or C++

2009-12-26 Thread Micha

On 26/12/2009 10:05, Uri Even-Chen wrote:

On Sat, Dec 26, 2009 at 9:51 AM, Oron Peledo...@actcom.co.il  wrote:

On Friday, 25 בDecember 2009 23:38:38 Uri Even-Chen wrote:

A friend of mine suggested me to join a free software (open source)
project in Java or C++, to gain experience in these languages.


Your friend gave you a good advice. However, please note that usually
there is no *immediate* reward. It's not like a (free software) newbie
joins a project and three months later he is swamped with job requests.

Working on a free software project tend to increase your capabilities
by exposing you to different technologies and working styles. On the
long run (years), this can bring you not only fun, but work as well.


Thanks for your advice.


Do you have an idea how to find a good project I can join, in Java or
C++ or maybe Python?


There are many sites hosting free software projects. Some of them:
  www.sourceforge.net
  savannah.gnu.org
  gna.org
  github.com

Since you used some scripting languages in the past (PHP), it looks
like python would provide easier learning curve for you.


I personally prefer compiled programming languages than scripting
ones.  I have experience with both, Pascal and C vs. Basic and PHP and
Perl.  I want to learn Python, but I think there are less jobs with
Python, so it's better I learn Java or C++.  I think there are many
jobs in Java and C++.  There are also jobs in C# and .NET, but I
prefer not to be stuck with Microsoft technologies.  I don't like
Microsoft, although I have been using their products for many years.
Also, thanks for the websites you sent me.  I know sourceforge, the
others I will check later.



I don't know where java is at the moment. It's been years since I worked with it 
seriously. If previous experience still applies, the leap from c to java is much 
bigger than from c to c++. Java is much more of a zealot about object oriented 
approaches. It means it will take longer to do the move, but will teach you more 
about object oriented paradigms and force you not to get stuck at the position 
of writing c in c++.


If you go with c++, take note that a lot of companies that do c++ and windows 
will use microsoft specific approaches. It can help to learn cross platform 
libraries though. Allows you to be cross platform and with smaller companies you 
may be able to push your will.


boost is a very important set of libraries for solving a lot of things.
stl vs atl/mfc is always a big issue where stl is standard but sometimes a bit 
of an overkill.


As for GUIs, personally I like wxwidgets which is cross platform and LGPL. The 
other main mature option is qt which, if things haven't changed again, has an 
option of a GPL license also for windows for open source projects and a 
commercial license for commercial projects. wxwidgets uses the native gui, qt 
draws it's own. Each approach has it's merits (native look vs consistent look)


If you look at wxwidgets, have a look at wxformbuilder for designing the GUI.


Uri.

___
Linux-il mailing list
Linux-il@cs.huji.ac.il
http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il



___
Linux-il mailing list
Linux-il@cs.huji.ac.il
http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il


Re: Free software projects in Java or C++

2009-12-26 Thread Shlomi Fish
On Saturday 26 Dec 2009 15:09:36 Micha wrote:
 On 26/12/2009 10:05, Uri Even-Chen wrote:
  On Sat, Dec 26, 2009 at 9:51 AM, Oron Peledo...@actcom.co.il  wrote:
  On Friday, 25 בDecember 2009 23:38:38 Uri Even-Chen wrote:
  A friend of mine suggested me to join a free software (open source)
  project in Java or C++, to gain experience in these languages.
 
  Your friend gave you a good advice. However, please note that usually
  there is no *immediate* reward. It's not like a (free software) newbie
  joins a project and three months later he is swamped with job requests.
 
  Working on a free software project tend to increase your capabilities
  by exposing you to different technologies and working styles. On the
  long run (years), this can bring you not only fun, but work as well.
 
  Thanks for your advice.
 
  Do you have an idea how to find a good project I can join, in Java or
  C++ or maybe Python?
 
  There are many sites hosting free software projects. Some of them:
www.sourceforge.net
savannah.gnu.org
gna.org
github.com
 
  Since you used some scripting languages in the past (PHP), it looks
  like python would provide easier learning curve for you.
 
  I personally prefer compiled programming languages than scripting
  ones.  I have experience with both, Pascal and C vs. Basic and PHP and
  Perl.  I want to learn Python, but I think there are less jobs with
  Python, so it's better I learn Java or C++.  I think there are many
  jobs in Java and C++.  There are also jobs in C# and .NET, but I
  prefer not to be stuck with Microsoft technologies.  I don't like
  Microsoft, although I have been using their products for many years.
  Also, thanks for the websites you sent me.  I know sourceforge, the
  others I will check later.
 
 I don't know where java is at the moment. It's been years since I worked
  with it seriously. If previous experience still applies, the leap from c
  to java is much bigger than from c to c++. Java is much more of a zealot
  about object oriented approaches. It means it will take longer to do the
  move, but will teach you more about object oriented paradigms and force
  you not to get stuck at the position of writing c in c++.
 
 If you go with c++, take note that a lot of companies that do c++ and
  windows will use microsoft specific approaches. It can help to learn cross
  platform libraries though. Allows you to be cross platform and with
  smaller companies you may be able to push your will.
 
 boost is a very important set of libraries for solving a lot of things.
 stl vs atl/mfc is always a big issue where stl is standard but sometimes a
  bit of an overkill.
 
 As for GUIs, personally I like wxwidgets which is cross platform and LGPL.
  The other main mature option is qt which, if things haven't changed again,
  has an option of a GPL license also for windows for open source projects
  and a commercial license for commercial projects. 

Actually, things have indeed changed:

* http://lwn.net/Articles/315843/ - It was a pleasant surprise, then, when 
Nokia announced that the Qt library will be released under the LGPL version 
2.1. 

* Same in Whatsup.org.il in Hebrew:

http://www.whatsup.org.il/modules.php?op=modloadname=Newsfile=articlesid=6247

It kinda makes sense for Nokia to do that, because:

1. The GPL/Commercial dual-licence was the foundation of Troll Tech's (= Qt's 
Parent Company) revenue stream. However, for Nokia it is just a drop in the 
bucket, and not their main line of business.

2. Nokia should strive to make Qt as commonplace as possible so it will be 
commonly used and ubiquotous.

3. Some companies are still too scared of the LGPL to use it in their 
commercial projects (or even in-house ones) and would prefer to shell out the 
money for the commercial licence. I'm not saying this fear is rational, but 
that's life.[Licences]


[Licences] - Someone I talked to said he would prefer not to use OpenSSL 
(which is under the original BSD Licence) for something he needed to do, 
because some of their customers were under the impression that open-source 
implied something GPL-like, and so had a more problematic licensing terms.


But in any case, it's good news for people who would like to develop Qt-based 
software under non-GPL compatible licences, including proprietary ones.

I should note that Qt contains QtCore and Wx contains WxBase which are two 
pure-API and non-GUI libraries that abstract away many system services such as 
data structures and threads. They may pose a good and tested alternative to 
STL/Boost . For other libraries like that look at:

http://www.shlomifish.org/open-source/portability-libs/

  wxwidgets uses the
  native gui, qt draws it's own. Each approach has it's merits (native look
  vs consistent look)
 
 If you look at wxwidgets, have a look at wxformbuilder for designing the
  GUI.
 

Yes, there are many other differences between Qt and wxWidgets too.

Regards,

Shlomi Fish

-- 

Re: Free software projects in Java or C++

2009-12-26 Thread Tzafrir Cohen
On Sat, Dec 26, 2009 at 03:09:36PM +0200, Micha wrote:

 The other main mature option is qt which, if things haven't changed 
 again, has an option of a GPL license also for windows for open source 
 projects and a commercial license for commercial projects.

Yes, something has changed. An extra option of LGPL (2.1).

-- 
Tzafrir Cohen | tzaf...@jabber.org | VIM is
http://tzafrir.org.il || a Mutt's
tzaf...@cohens.org.il ||  best
ICQ# 16849754 || friend

___
Linux-il mailing list
Linux-il@cs.huji.ac.il
http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il


Re: Free software projects in Java or C++

2009-12-26 Thread David Ronkin
You can go for http://openpegasus.org/ - interesting NMS project.
David

2009/12/25 Uri Even-Chen u...@speedy.net

 Hi people,

 I am looking for a new job right now, and I want to work in
 programming Java or C++, or maybe Python.  I know PHP and C and Visual
 Basic and Access, but I don't have experience with Java or C++.  A
 friend of mine suggested me to join a free software (open source)
 project in Java or C++, to gain experience in these languages.  But I
 don't know how to find such a project.  Do you have an idea how to
 find a good project I can join, in Java or C++ or maybe Python?  I
 want to gain experience so I will be able to find a job.  Without
 experience, chances are low to find a job in Java or C++ - companies
 want programmers with experience in the programming language they
 need.  I have more than 15 years of experience programming, even 20,
 but not in object oriented languages.  There are many jobs in Java and
 C++ and they don't want to interview me, because of my lack of
 experience in those languages.  How do I gain the experience I need?

 Uri Even-Chen
 Mobile Phone: +972-50-9007559
 E-mail: u...@speedy.net
 Blog: http://www.speedy.net/uri/blog/

 ___
 Linux-il mailing list
 Linux-il@cs.huji.ac.il
 http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il



-- 
בברכה,
דוד רונקין
___
Linux-il mailing list
Linux-il@cs.huji.ac.il
http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il


Free software projects in Java or C++

2009-12-25 Thread Uri Even-Chen
Hi people,

I am looking for a new job right now, and I want to work in
programming Java or C++, or maybe Python.  I know PHP and C and Visual
Basic and Access, but I don't have experience with Java or C++.  A
friend of mine suggested me to join a free software (open source)
project in Java or C++, to gain experience in these languages.  But I
don't know how to find such a project.  Do you have an idea how to
find a good project I can join, in Java or C++ or maybe Python?  I
want to gain experience so I will be able to find a job.  Without
experience, chances are low to find a job in Java or C++ - companies
want programmers with experience in the programming language they
need.  I have more than 15 years of experience programming, even 20,
but not in object oriented languages.  There are many jobs in Java and
C++ and they don't want to interview me, because of my lack of
experience in those languages.  How do I gain the experience I need?

Uri Even-Chen
Mobile Phone: +972-50-9007559
E-mail: u...@speedy.net
Blog: http://www.speedy.net/uri/blog/

___
Linux-il mailing list
Linux-il@cs.huji.ac.il
http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il


Re: Free software projects in Java or C++

2009-12-25 Thread Uri Even-Chen
By the way, I am thinking... since long ago I wanted to develop a free
software (open source) project to automatically compose music.  About
10 years ago I worked on a project called Speedy Composer
(http://www.speedy.net/composer/), which is automatic composition of
music.  I developed it using Matlab, but there is currently no user
interface.  Maybe I will develop it using Java?  What do you think?  I
will need to convert the Matlab files to Java, which might be
difficult, but maybe after a few month's work I will be able to do it?
 What do you think?  Then I will need to create a user interface
program for composing music, or maybe using the web.  10 years ago I
developed user interface using Visual Basic, but it was not complete.
I might need help from another programmer, it would be difficult to do
it alone.  But I want to develop this program.  If you want, you can
listen to melodies composed on the website (Speedy Composer).  Or
write me and I will send you melodies off list.

Uri Even-Chen
Mobile Phone: +972-50-9007559
E-mail: u...@speedy.net
Blog: http://www.speedy.net/uri/blog/




On Fri, Dec 25, 2009 at 11:38 PM, Uri Even-Chen u...@speedy.net wrote:
 Hi people,

 I am looking for a new job right now, and I want to work in
 programming Java or C++, or maybe Python.  I know PHP and C and Visual
 Basic and Access, but I don't have experience with Java or C++.  A
 friend of mine suggested me to join a free software (open source)
 project in Java or C++, to gain experience in these languages.  But I
 don't know how to find such a project.  Do you have an idea how to
 find a good project I can join, in Java or C++ or maybe Python?  I
 want to gain experience so I will be able to find a job.  Without
 experience, chances are low to find a job in Java or C++ - companies
 want programmers with experience in the programming language they
 need.  I have more than 15 years of experience programming, even 20,
 but not in object oriented languages.  There are many jobs in Java and
 C++ and they don't want to interview me, because of my lack of
 experience in those languages.  How do I gain the experience I need?

 Uri Even-Chen
 Mobile Phone: +972-50-9007559
 E-mail: u...@speedy.net
 Blog: http://www.speedy.net/uri/blog/


___
Linux-il mailing list
Linux-il@cs.huji.ac.il
http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il


Re: Free software projects in Java or C++

2009-12-25 Thread Oron Peled
On Friday, 25 בDecember 2009 23:38:38 Uri Even-Chen wrote:
 A friend of mine suggested me to join a free software (open source)
 project in Java or C++, to gain experience in these languages.

Your friend gave you a good advice. However, please note that usually
there is no *immediate* reward. It's not like a (free software) newbie
joins a project and three months later he is swamped with job requests.

Working on a free software project tend to increase your capabilities
by exposing you to different technologies and working styles. On the
long run (years), this can bring you not only fun, but work as well.

 Do you have an idea how to find a good project I can join, in Java or
 C++ or maybe Python?

There are many sites hosting free software projects. Some of them:
  www.sourceforge.net
  savannah.gnu.org
  gna.org
  github.com

Since you used some scripting languages in the past (PHP), it looks
like python would provide easier learning curve for you.

Good luck,

-- 
Oron Peled Voice: +972-4-8228492
o...@actcom.co.il  http://users.actcom.co.il/~oron
linux/reboot.h: #define LINUX_REBOOT_MAGIC1  0xfee1dead

___
Linux-il mailing list
Linux-il@cs.huji.ac.il
http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il