Re: [Lubuntu-desktop] [Lxde-list] About lxpanel2

2011-12-29 Thread Tim Bernhard
Alexis,

Good luck with your studies.  I commend you for looking outside of the
classroom for knowledge.
You will soon find that what we learn from books and in classes, doesn't
always happen in the real world.  I changed careers a few years back and
got my first programming job a little over a year ago.  The company I work
for built a software package on top of a legacy database that breaks all of
the basic DRY principals.  On the server side, we use Linux, MySQL, and
Java (they let me use Groovy and Grails on my projects. Woot!!)  The client
side runs on Windows and is programed using C#.

So we have a lot of OO technology around here right? So, not county my
Grails projects or the native C# objects like forms, buttons etc, guess how
many objects you will find in our software???  If you guessed between 0 and
maybe 5, you would probably be correct.  Somehow, the software was written
in a procedural manner using OO technology.   All of the logic is tied to
the forms we use and it's often repeated in several places.  We have no
DAOs either, all of our data calls are straight up SQL statements dumped in
to datasets.  My attempts to create reusable objects usually break
something unexpected as does any changes made to legacy tables in the
database.  I found one class that has over 24k lines of code.  Yes, I said
over 24,000 lines of code!!!

I'm lucky because I'm able avoid our client code and program on the server
side in a nice OS envornment, but I still have to deal with that legacy
database everyday and I can't do much with it because if I change it, I
break our client.

When I first got here I was floored by what I saw.  I would call friends I
know who work for fortune 500 companies and found out that other than the
24K line monster I found, what I was seeing is actually pretty common.
Programmers are problem solvers.  We figure out how to make things work
using the knowledge we have, the knowledge we can obtain and the tools we
can use.  It may not always be pretty, it may not always be the best
solution, but we figure out how to make it work.  I'm sure someone is
going to come along some day, take a look at my code and wonder what I was
thinking (if I'm still here, I'll tell them to look at the database I was
stuck with!)  But I'm doing the best that I can right now.

So study hard and pray that you don't end up at a company that somehow
managed to everything as backwards like I did!  LOL  (We all have to start
somewhere right? :) )

Tim


On Wed, Dec 28, 2011 at 11:39 PM, PCMan pcman...@gmail.com wrote:

 On Thu, Dec 29, 2011 at 10:45 AM, Alexis Lopez Zubieta 
 azubi...@estudiantes.uci.cu wrote:

 Thanks for your replies Klaus Knopper and PCMan.
 As I understood you are planing to use an structured approach to create
 lxpanel2 and the rest of the LXDE desktop environment.
 Now I want to expose something. I'm an student of informatics engineering
 in the UCI where I learned to design and create applications with Object
 Oriented techniques. But when I came to the world of LXDE I found that
 there is not an object in the whole code and also I didn't find any design
 or  model of the programs that you build.
 So two questions come to me:
 - Are you designing the aplications before start to write code?

 Sure, but I did not receive any formal training and taught myself
 programming with books, other OSS projects, and, google only.
 So the design can be a little bit weird sometimes.
 GTK+ itself is designed in a fully OO way and uses a lot of design
 patterns, but it's written in C.
 However there is no language support for objects in C. We only have struct
 + functions.
 A virtual function table in GTK+ world is a C struct which needs to be
 filled by hand.
 Things does not look like OO initially, but its spirit is OO sometimes.

 - How do you do it? (wich engineering thechniques do you use?)

 None. I did try and error in the past.
 Now I often tried to figure out the design/interfaces/APIs first, and
 start implement them later.
 For the GUI programs, now I tend to design the GUI first.

 Regards
 Alexis.

 --
 *From: *PCMan pcman...@gmail.com
 *To: *Klaus Knopper l...@knopper.net
 *Cc: *Alexis Lopez Zubieta azubi...@estudiantes.uci.cu, lxde-list 
 lxde-l...@lists.sourceforge.net, lubuntu-desktop 
 lubuntu-desktop@lists.launchpad.net
 *Sent: *Wednesday, December 28, 2011 4:58:39 AM
 *Subject: *Re: [Lxde-list] About lxpanel2


 If your object oriented refers to the programming language, I'm using
 Vala now, which is a OO language built on top of GObject/C runtime. The
 language itself is OO. This, however, does not mean that the program
 written in it will be OO.
 I'm not a fan of making everything an object approach. No single
 programming style is best for all cases.
 Using too much OO stuff in GObject will create extra overhead as its type
 system is all created at runtime.
 Type-casting and virtual function calls sometimes requires looking up in
 tables. Signal emission 

Re: [Lubuntu-desktop] [Lxde-list] About lxpanel2

2011-12-28 Thread PCMan
If your object oriented refers to the programming language, I'm using
Vala now, which is a OO language built on top of GObject/C runtime. The
language itself is OO. This, however, does not mean that the program
written in it will be OO.
I'm not a fan of making everything an object approach. No single
programming style is best for all cases.
Using too much OO stuff in GObject will create extra overhead as its type
system is all created at runtime.
Type-casting and virtual function calls sometimes requires looking up in
tables. Signal emission in GObject/C
is also very inefficient, too. So basically, I'd avoid unnecessary OO
whenever possible.

If the term object oriented here refers to making everything on the
desktop an object, that's a totally different thing and is not related to
language used.

On Wed, Dec 28, 2011 at 5:27 PM, Klaus Knopper l...@knopper.net wrote:

 Hi PCMan,

 On Wed, Dec 28, 2011 at 03:21:02PM +0800, PCMan wrote:
 On Wed, Dec 28, 2011 at 11:05 AM, Alexis Lopez Zubieta
 [1]azubi...@estudiantes.uci.cu wrote:
 
   I have a question about lxpanel2.
   Are you planing to make it using an object oriented approach?
 
 What do you mean by object oriented approach?
 I don't understand what you mean. Any examples?

 I THINK he means whether or not you will be using an object oriented
 programming model and programming language (or interpreter on the
 runtime or macro level), which has certain advantages (everything like
 programs, icons, files, windows etc. are objects where all the code
 needed to manage the object is included in the objects class, and not
 spread across different places in the code), and disadvantages (well,
 object oriented code tends to get voluminous and slow, maybe even buggy,
 at least that is the common perception).

 http://en.wikipedia.org/wiki/Object-oriented_programming

 Gnome and KDE both use object oriented models for their desktops, where
 KDE also uses an object oriented language, while GNOME works more with
 procedural languages (C) and its own object management code.

 Btw, for LXDE, I would, independent of that question, opt for using
 anything that is stable, small (in the total resources footprint) and
 fast, even if it means less features. I like C, even that it means you
 have to be extra careful about memory management and pointer
 arithmetics.

 One of the major features of LXDE for me was always that it needs less
 than 5 seconds to start up all necessary components (lxpanel, pcmanfm,
 window manager), instead of initializing a lot of services before you
 can do actual work on the desktop. I hope that the new versions of
 lxpanel and pcmanfm will still be similarly efficient, no matter which
 model or toolkit you will use.

 Regards
 -Klaus

___
Mailing list: https://launchpad.net/~lubuntu-desktop
Post to : lubuntu-desktop@lists.launchpad.net
Unsubscribe : https://launchpad.net/~lubuntu-desktop
More help   : https://help.launchpad.net/ListHelp


Re: [Lubuntu-desktop] [Lxde-list] About lxpanel2

2011-12-28 Thread Alexis Lopez Zubieta
Thanks for your replies Klaus Knopper and PCMan.
As I understood you are planing to use an structured approach to create 
lxpanel2 and the rest of the LXDE desktop environment.
Now I want to expose something. I'm an student of informatics engineering in 
the UCI where I learned to design and create applications with Object Oriented 
techniques. But when I came to the world of LXDE I found that there is not an 
object in the whole code and also I didn't find any design or model of the 
programs that you build.
So two questions come to me:
- Are you designing the aplications before start to write code?
- How do you do it? (wich engineering thechniques do you use?)

Regards
Alexis.

- Original Message -

From: PCMan pcman...@gmail.com
To: Klaus Knopper l...@knopper.net
Cc: Alexis Lopez Zubieta azubi...@estudiantes.uci.cu, lxde-list 
lxde-l...@lists.sourceforge.net, lubuntu-desktop 
lubuntu-desktop@lists.launchpad.net
Sent: Wednesday, December 28, 2011 4:58:39 AM
Subject: Re: [Lxde-list] About lxpanel2

If your object oriented refers to the programming language, I'm using Vala 
now, which is a OO language built on top of GObject/C runtime. The language 
itself is OO. This, however, does not mean that the program written in it will 
be OO.
I'm not a fan of making everything an object approach. No single programming 
style is best for all cases.
Using too much OO stuff in GObject will create extra overhead as its type 
system is all created at runtime.
Type-casting and virtual function calls sometimes requires looking up in 
tables. Signal emission in GObject/C
is also very inefficient, too. So basically, I'd avoid unnecessary OO 
whenever possible.


If the term object oriented here refers to making everything on the desktop 
an object, that's a totally different thing and is not related to language used.



On Wed, Dec 28, 2011 at 5:27 PM, Klaus Knopper  l...@knopper.net  wrote: 


Hi PCMan,


On Wed, Dec 28, 2011 at 03:21:02PM +0800, PCMan wrote:
 On Wed, Dec 28, 2011 at 11:05 AM, Alexis Lopez Zubieta

 [1] azubi...@estudiantes.uci.cu  wrote:

 I have a question about lxpanel2.
 Are you planing to make it using an object oriented approach?

 What do you mean by object oriented approach?
 I don't understand what you mean. Any examples?

I THINK he means whether or not you will be using an object oriented
programming model and programming language (or interpreter on the
runtime or macro level), which has certain advantages (everything like
programs, icons, files, windows etc. are objects where all the code
needed to manage the object is included in the objects class, and not
spread across different places in the code), and disadvantages (well,
object oriented code tends to get voluminous and slow, maybe even buggy,
at least that is the common perception).

http://en.wikipedia.org/wiki/Object-oriented_programming

Gnome and KDE both use object oriented models for their desktops, where
KDE also uses an object oriented language, while GNOME works more with
procedural languages (C) and its own object management code.

Btw, for LXDE, I would, independent of that question, opt for using
anything that is stable, small (in the total resources footprint) and
fast, even if it means less features. I like C, even that it means you
have to be extra careful about memory management and pointer
arithmetics.

One of the major features of LXDE for me was always that it needs less
than 5 seconds to start up all necessary components (lxpanel, pcmanfm,
window manager), instead of initializing a lot of services before you
can do actual work on the desktop. I hope that the new versions of
lxpanel and pcmanfm will still be similarly efficient, no matter which
model or toolkit you will use.

Regards
-Klaus




--



University of Informatic Sciences (UCI) http://www.uci.cu
Nova Light Development Team http://www.nova.cu
Alexis López Zubieta azubi...@estudiantes.uci.cu





Fin a la injusticia, LIBERTAD AHORA A NUESTROS CINCO COMPATRIOTAS QUE SE 
ENCUENTRAN INJUSTAMENTE EN PRISIONES DE LOS EEUU!
http://www.antiterroristas.cu
http://justiciaparaloscinco.wordpress.com

___
Mailing list: https://launchpad.net/~lubuntu-desktop
Post to : lubuntu-desktop@lists.launchpad.net
Unsubscribe : https://launchpad.net/~lubuntu-desktop
More help   : https://help.launchpad.net/ListHelp


Re: [Lubuntu-desktop] [Lxde-list] About lxpanel2

2011-12-28 Thread PCMan
On Thu, Dec 29, 2011 at 10:45 AM, Alexis Lopez Zubieta 
azubi...@estudiantes.uci.cu wrote:

 Thanks for your replies Klaus Knopper and PCMan.
 As I understood you are planing to use an structured approach to create
 lxpanel2 and the rest of the LXDE desktop environment.
 Now I want to expose something. I'm an student of informatics engineering
 in the UCI where I learned to design and create applications with Object
 Oriented techniques. But when I came to the world of LXDE I found that
 there is not an object in the whole code and also I didn't find any design
 or  model of the programs that you build.
 So two questions come to me:
 - Are you designing the aplications before start to write code?

Sure, but I did not receive any formal training and taught myself
programming with books, other OSS projects, and, google only.
So the design can be a little bit weird sometimes.
GTK+ itself is designed in a fully OO way and uses a lot of design
patterns, but it's written in C.
However there is no language support for objects in C. We only have struct
+ functions.
A virtual function table in GTK+ world is a C struct which needs to be
filled by hand.
Things does not look like OO initially, but its spirit is OO sometimes.

 - How do you do it? (wich engineering thechniques do you use?)

None. I did try and error in the past.
Now I often tried to figure out the design/interfaces/APIs first, and start
implement them later.
For the GUI programs, now I tend to design the GUI first.

Regards
 Alexis.

 --
 *From: *PCMan pcman...@gmail.com
 *To: *Klaus Knopper l...@knopper.net
 *Cc: *Alexis Lopez Zubieta azubi...@estudiantes.uci.cu, lxde-list 
 lxde-l...@lists.sourceforge.net, lubuntu-desktop 
 lubuntu-desktop@lists.launchpad.net
 *Sent: *Wednesday, December 28, 2011 4:58:39 AM
 *Subject: *Re: [Lxde-list] About lxpanel2


 If your object oriented refers to the programming language, I'm using
 Vala now, which is a OO language built on top of GObject/C runtime. The
 language itself is OO. This, however, does not mean that the program
 written in it will be OO.
 I'm not a fan of making everything an object approach. No single
 programming style is best for all cases.
 Using too much OO stuff in GObject will create extra overhead as its type
 system is all created at runtime.
 Type-casting and virtual function calls sometimes requires looking up in
 tables. Signal emission in GObject/C
 is also very inefficient, too. So basically, I'd avoid unnecessary OO
 whenever possible.

 If the term object oriented here refers to making everything on the
 desktop an object, that's a totally different thing and is not related to
 language used.

 On Wed, Dec 28, 2011 at 5:27 PM, Klaus Knopper l...@knopper.net wrote:

 Hi PCMan,

 On Wed, Dec 28, 2011 at 03:21:02PM +0800, PCMan wrote:
 On Wed, Dec 28, 2011 at 11:05 AM, Alexis Lopez Zubieta
 [1]azubi...@estudiantes.uci.cu wrote:
 
   I have a question about lxpanel2.
   Are you planing to make it using an object oriented approach?
 
 What do you mean by object oriented approach?
 I don't understand what you mean. Any examples?

 I THINK he means whether or not you will be using an object oriented
 programming model and programming language (or interpreter on the
 runtime or macro level), which has certain advantages (everything like
 programs, icons, files, windows etc. are objects where all the code
 needed to manage the object is included in the objects class, and not
 spread across different places in the code), and disadvantages (well,
 object oriented code tends to get voluminous and slow, maybe even buggy,
 at least that is the common perception).

 http://en.wikipedia.org/wiki/Object-oriented_programming

 Gnome and KDE both use object oriented models for their desktops, where
 KDE also uses an object oriented language, while GNOME works more with
 procedural languages (C) and its own object management code.

 Btw, for LXDE, I would, independent of that question, opt for using
 anything that is stable, small (in the total resources footprint) and
 fast, even if it means less features. I like C, even that it means you
 have to be extra careful about memory management and pointer
 arithmetics.

 One of the major features of LXDE for me was always that it needs less
 than 5 seconds to start up all necessary components (lxpanel, pcmanfm,
 window manager), instead of initializing a lot of services before you
 can do actual work on the desktop. I hope that the new versions of
 lxpanel and pcmanfm will still be similarly efficient, no matter which
 model or toolkit you will use.

 Regards
 -Klaus



 --
 --
 University of Informatic Sciences (UCI) http://www.uci.cu*
 *Nova Light Development Team  http://www.nova.cu
 Alexis López Zubieta   azubi...@estudiantes.uci.cu


   http://www.antiterroristas.cu/


___
Mailing list: https://launchpad.net/~lubuntu-desktop
Post 

Re: [Lubuntu-desktop] [Lxde-list] About lxpanel2

2011-12-27 Thread Alexis Lopez Zubieta
I have a question about lxpanel2.
Are you planing to make it using an object oriented approach?

-- 


University of Informatic Sciences (UCI) http://www.uci.cu 
Nova Light Development Team http://www.nova.cu 
Alexis López Zubieta azubi...@estudiantes.uci.cu 




Fin a la injusticia, LIBERTAD AHORA A NUESTROS CINCO COMPATRIOTAS QUE SE 
ENCUENTRAN INJUSTAMENTE EN PRISIONES DE LOS EEUU!
http://www.antiterroristas.cu
http://justiciaparaloscinco.wordpress.com

___
Mailing list: https://launchpad.net/~lubuntu-desktop
Post to : lubuntu-desktop@lists.launchpad.net
Unsubscribe : https://launchpad.net/~lubuntu-desktop
More help   : https://help.launchpad.net/ListHelp