Wed May 8 10:42:33 2024
EVENTS
 FREE
SOFTWARE
INSTITUTE

POLITICS
JOBS
MEMBERS'
CORNER

MAILING
LIST

NYLXS Mailing Lists and Archives
NYLXS Members have a lot to say and share but we don't keep many secrets. Join the Hangout Mailing List and say your peice.

DATE 2008-06-01

HANGOUT

2024-05-08 | 2024-04-08 | 2024-03-08 | 2024-02-08 | 2024-01-08 | 2023-12-08 | 2023-11-08 | 2023-10-08 | 2023-09-08 | 2023-08-08 | 2023-07-08 | 2023-06-08 | 2023-05-08 | 2023-04-08 | 2023-03-08 | 2023-02-08 | 2023-01-08 | 2022-12-08 | 2022-11-08 | 2022-10-08 | 2022-09-08 | 2022-08-08 | 2022-07-08 | 2022-06-08 | 2022-05-08 | 2022-04-08 | 2022-03-08 | 2022-02-08 | 2022-01-08 | 2021-12-08 | 2021-11-08 | 2021-10-08 | 2021-09-08 | 2021-08-08 | 2021-07-08 | 2021-06-08 | 2021-05-08 | 2021-04-08 | 2021-03-08 | 2021-02-08 | 2021-01-08 | 2020-12-08 | 2020-11-08 | 2020-10-08 | 2020-09-08 | 2020-08-08 | 2020-07-08 | 2020-06-08 | 2020-05-08 | 2020-04-08 | 2020-03-08 | 2020-02-08 | 2020-01-08 | 2019-12-08 | 2019-11-08 | 2019-10-08 | 2019-09-08 | 2019-08-08 | 2019-07-08 | 2019-06-08 | 2019-05-08 | 2019-04-08 | 2019-03-08 | 2019-02-08 | 2019-01-08 | 2018-12-08 | 2018-11-08 | 2018-10-08 | 2018-09-08 | 2018-08-08 | 2018-07-08 | 2018-06-08 | 2018-05-08 | 2018-04-08 | 2018-03-08 | 2018-02-08 | 2018-01-08 | 2017-12-08 | 2017-11-08 | 2017-10-08 | 2017-09-08 | 2017-08-08 | 2017-07-08 | 2017-06-08 | 2017-05-08 | 2017-04-08 | 2017-03-08 | 2017-02-08 | 2017-01-08 | 2016-12-08 | 2016-11-08 | 2016-10-08 | 2016-09-08 | 2016-08-08 | 2016-07-08 | 2016-06-08 | 2016-05-08 | 2016-04-08 | 2016-03-08 | 2016-02-08 | 2016-01-08 | 2015-12-08 | 2015-11-08 | 2015-10-08 | 2015-09-08 | 2015-08-08 | 2015-07-08 | 2015-06-08 | 2015-05-08 | 2015-04-08 | 2015-03-08 | 2015-02-08 | 2015-01-08 | 2014-12-08 | 2014-11-08 | 2014-10-08 | 2014-09-08 | 2014-08-08 | 2014-07-08 | 2014-06-08 | 2014-05-08 | 2014-04-08 | 2014-03-08 | 2014-02-08 | 2014-01-08 | 2013-12-08 | 2013-11-08 | 2013-10-08 | 2013-09-08 | 2013-08-08 | 2013-07-08 | 2013-06-08 | 2013-05-08 | 2013-04-08 | 2013-03-08 | 2013-02-08 | 2013-01-08 | 2012-12-08 | 2012-11-08 | 2012-10-08 | 2012-09-08 | 2012-08-08 | 2012-07-08 | 2012-06-08 | 2012-05-08 | 2012-04-08 | 2012-03-08 | 2012-02-08 | 2012-01-08 | 2011-12-08 | 2011-11-08 | 2011-10-08 | 2011-09-08 | 2011-08-08 | 2011-07-08 | 2011-06-08 | 2011-05-08 | 2011-04-08 | 2011-03-08 | 2011-02-08 | 2011-01-08 | 2010-12-08 | 2010-11-08 | 2010-10-08 | 2010-09-08 | 2010-08-08 | 2010-07-08 | 2010-06-08 | 2010-05-08 | 2010-04-08 | 2010-03-08 | 2010-02-08 | 2010-01-08 | 2009-12-08 | 2009-11-08 | 2009-10-08 | 2009-09-08 | 2009-08-08 | 2009-07-08 | 2009-06-08 | 2009-05-08 | 2009-04-08 | 2009-03-08 | 2009-02-08 | 2009-01-08 | 2008-12-08 | 2008-11-08 | 2008-10-08 | 2008-09-08 | 2008-08-08 | 2008-07-08 | 2008-06-08 | 2008-05-08 | 2008-04-08 | 2008-03-08 | 2008-02-08 | 2008-01-08 | 2007-12-08 | 2007-11-08 | 2007-10-08 | 2007-09-08 | 2007-08-08 | 2007-07-08 | 2007-06-08 | 2007-05-08 | 2007-04-08 | 2007-03-08 | 2007-02-08 | 2007-01-08 | 2006-12-08 | 2006-11-08 | 2006-10-08 | 2006-09-08 | 2006-08-08 | 2006-07-08 | 2006-06-08 | 2006-05-08 | 2006-04-08 | 2006-03-08 | 2006-02-08 | 2006-01-08 | 2005-12-08 | 2005-11-08 | 2005-10-08 | 2005-09-08 | 2005-08-08 | 2005-07-08 | 2005-06-08 | 2005-05-08 | 2005-04-08 | 2005-03-08 | 2005-02-08 | 2005-01-08 | 2004-12-08 | 2004-11-08 | 2004-10-08 | 2004-09-08 | 2004-08-08 | 2004-07-08 | 2004-06-08 | 2004-05-08 | 2004-04-08 | 2004-03-08 | 2004-02-08 | 2004-01-08 | 2003-12-08 | 2003-11-08 | 2003-10-08 | 2003-09-08 | 2003-08-08 | 2003-07-08 | 2003-06-08 | 2003-05-08 | 2003-04-08 | 2003-03-08 | 2003-02-08 | 2003-01-08 | 2002-12-08 | 2002-11-08 | 2002-10-08 | 2002-09-08 | 2002-08-08 | 2002-07-08 | 2002-06-08 | 2002-05-08 | 2002-04-08 | 2002-03-08 | 2002-02-08 | 2002-01-08 | 2001-12-08 | 2001-11-08 | 2001-10-08 | 2001-09-08 | 2001-08-08 | 2001-07-08 | 2001-06-08 | 2001-05-08 | 2001-04-08 | 2001-03-08 | 2001-02-08 | 2001-01-08 | 2000-12-08 | 2000-11-08 | 2000-10-08 | 2000-09-08 | 2000-08-08 | 2000-07-08 | 2000-06-08 | 2000-05-08 | 2000-04-08 | 2000-03-08 | 2000-02-08 | 2000-01-08 | 1999-12-08

Key: Value:

Key: Value:

MESSAGE
DATE 2008-06-29
FROM Ruben Safir
SUBJECT Subject: [NYLXS - HANGOUT] C++ Workshop session 1
Starting the C++ Workshop withthe Lippman and Lajoie book one of the first
things one notices is that C++ is a very involed language, and not the best
language to start learning with. I'm sure there are objections to this
statement as also many people believe that Java is also a good first
language to learn, but I strongly disagree. I think it is counter productive
for a new programmer to skip over forgiving procedural languages and just
jump into an object orientated language to be innundated with conceptual
"objects" of all sorts before understanding basic varriable types, data types
flow control operators and operator precedence.

C++ makes it even harder because it learns on C programming for a foundation,
C programming itself a difficult language to truly master. One can teach
a programming language in one of two ways. First is to break it down, each
step, learned logically in sequence, slowly development a complete definition
of each step and building on that. The second way is to get the student into
the batters box quickly, with little instruction, and based on their general
knowledge, let them pick up on things as they can, leaving precise definition
for later if at all. You might call this the tap dancing method.

This C++ book uses the second method, probably for a number of reasons. It
assumes that you have some basic knowledge of C programming, or programming
in the general. The first chapter throws quite a bit at the reader. For one
thing it begins by giving an example of a problem that you might want to solve
and the logical methodology that would be used to solve the problem
theoretically prior to any kind of code. It doesn't define the form of a
C++ program, fails to mention that semi-colons are needed after most statments,
nor does it really discuss the need for the function main(), or the basic
structures of functions or methods which are immediately used in the opening
example. It does discuss how the suffix of a source code file affects the
compiler.

On the note of the file suffix, in theory the gcc compiler needed to make
C++ programs on a GNU/Linux system fails to link correctly. This seems to
be not documented in the man page of gcc. There is a shell script wrapper
for gcc called g++ which can be used to compile your C++ program. I spend
a bit of time on this last night learning this the hard way.

Let's look at the first example program from the text, slightly modified
by me for learning purposes.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1 #include
2 using namespace std;
3
4 void read(){ cout << "read()\n";}
5 void sort(){ cout << "sort()\n";}
6 void compact(){ cout << "compact()\n";}
7 void write(){ cout << "write()\n";}
8
9 int main(){
10 read();
11 sort();
12 compact();
13 write();
14
15 return 0;
16 }
17

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The #include is correctly termed a "preprocessor directive". Preprocessor
directives are poorly understood by beginning C and C++ programs, but often
vital. One thing not mentioned here is that unlike in C, the Preprocessor
directive "include" in C++ does not have a suffix .h unless it is a local
header or a C specific header. In C you would have

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#include

int main(){
printf("To C, or not to C: that is the question \n");
return 0;
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Notice the 'h' after stdio where as in C++ you have no h in
It explains that if you want a regular C library header file you need
to either call is with a c in front of it

#include

or include the 'h'

#include

If you call for a local non-system header file, one you might have cooked up,
you would use double quotes:

#include "rubens_special_bird_soup.h"

Not that preprocessor command do not use semi-colons on the end of the line.

From the prespective of a C Programmer, the use of the 'cout' object (function,
method, class instance, whatever it is) is very different then what your used
to looking at, and the operator '<<', which serves almost as a cat operator,
is unlike any C function you would expect. In sort, what ever is to the right
of the '<<' operator is concatonated to its current value and returned to the
left into 'cout' which pumps everything to STDOUT.

iostream makes this all happen.

Namespaces are immediately introduced. Until recently, the namespace
functionality in C++ has been hit or miss. I know when I originally learned
this language at NYU, it didn't work with gcc. It seems to now, and although
it was introduced as a preprocessor directive, which doesn't sound right to
me for two reasons, the "using namespace" syntax is called specifically a
"using directive". To me it doesn't look like a using directive doesn't
look like a prepocessor directive because:

A) it requires a semi-colon on the end
B) it would directly affect scope in the code, something that would seem
to me to be a function of guinine code.

It's also odd to me that namespace developed as late as it did in C++ because
it seems to me to a vital tool to creating efficient classes and objects,
not that it can't be done without a specific call for namespace, but the
scoping affect of a name space is still required for an object to be built.
But all this will be looked at later.

C++ like C is a typed language. Unlike C, C++ allows for the creation of
new types. The closest C comes to that is with typedef struct or union. C++
is much more flexible, so in addition to the core types, which will be
covered more deeply later, C++ also has new types like "string" and "vector".
Handling strings is one of the great difficult feats in C. Having a string data
type which can be imported from the library can be very helpful.

For vectors, note the syntax

#include
vecortor somegroupofstrings(20);

I wonder if vector needs the string library to be called, or if calling
in vector with the preprocessor automatically brings in the string library.

In the discussion of Preprocessors, note the handy command line ability to
declare a preprocessor constant

gcc -D

So for example in the second program of this chapter

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 #ifndef HEAD
2 #define HEAD
3 #include
4 #include
5
6 #endif
7
8 /**********************************************************
9 * Second example C++ program in Lippman on page 21 of text*
10 * Preprosor commands added for practice *
11 * namespace directive added for completeness *
12 * \n is replaced with the macro endl *
13 * Ruben Saifr June 29th, 2008 *
14 **********************************************************/
15
16 using namespace std;
17
18 int main(){
19 string word;
20 while( cin >> word)
21 cout << "word read is: " << word << endl;
22 #ifdef DEBUG
23 cout << "what was that word?\n" << word << '\n';
24 #endif
25
26 cout << "ok: No more words to read: bye!" << endl;
27 return 0;
28 }

When we compile this program and run it...

ruben-at-www2:~/cplus> g++ -Wall -o file2 file2.C
ruben-at-www2:~/cplus> ./file2
hello my friend this is the end
word read is: hello
word read is: my
word read is: friend
word read is: this
word read is: is
word read is: the
word read is: end

ok: No more words to read: bye!
ruben-at-www2:~/cplus>

Everything seems normal enough. Now compile it with DEBUG, which btw is a
random constant that otherwise has no meaning....

ruben-at-www2:~/cplus> g++ -Wall -DDEBUG -o file2 file2.C
ruben-at-www2:~/cplus> ./file2
The long and winding road
word read is: The
word read is: long
word read is: and
word read is: winding
word read is: road

what was that word?
road
ok: No more words to read: bye!

Note, CTL-D is the Control Char and a d together on the keyboard which is
an eof marker for the program. This was a mistake in the text. This program
will not end without a CTL-D or a CTL-C. CTL-C will just kill the program.
CTL-D send an EOF - close input stream.

Other prepossor names that are listed are

__cpluslpus <==== Defines the program as a C++ program for the compiler
__STDC__ <==== Defines the program as a C program for the compiler
__LINE__ <==== Defines the line number the the compiler is up to
__FILE__ <==== Defines the file name that is being compiled by the compiler
__TIME__ <==== Defines the Time of compilation
__DATE__ <==== Defines the Date of compilation

I'm not a fan of assertions, but they are explained here. Part of the C library
then have to be imported with the include statment of either

#include
or
#include

This complies with the rules for using C libraries in a C++ program.

An assertion is a condition which, if not met, the program is fundementally
broken and should end. I've rarely used these when I lost tract of where
all my data was coming from, and before proceeding I needed to know that some
data was properly aquired from user interaction, knowing that it logically
should have been, but hedging that I might have missed some interactive route
by which it could have been called that I didn't anticipate. Of course, this
all spells bad news from a security perspective. Security holes happen when
programs are used in unexpected ways and produce unexpected results. But
asserts aren't generally security tools, but debugging tools.

#ifdef DEBUG
assert( x == y );
#endif

The first chapter also discussed STDIN, STDOUT, STDERR and file handles, which
is unusual. While STDIN, STDOUT and STDERR need to be discussed from the start
discussing file handle access is usually an advanced topic until students are
used to the whole concept of STREAMS, let alone, the three standard streams
and then streams to other devices, like the file system. However, it is a
good preliminary introduction.

There are two libraries involed

#include
and
#include


iostream gives us 3 objects

cin
cout
cerr

which have been discussed

fstream imports into the namespace two more functions which look very Perl
like

ofstream FILEHANDLE outfile_name_with_path
ifstream FILEHANDLE infile_name_with_path

The side affect of these functions is that they create filehandle objects
FILEHANDLE that can then function like cin and cout

The third program from this chapter shows their use. I altered it a little
for our purposes

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1 #ifndef HEAD_H
2 #define HEAD_H
3
4 #include
5 #include
6 #include
7
8 #endif
9
10 /*****************************************************
11 * Program file3.C from page 22 of Lippman *
12 * Modified to include namespace, preprossor commands *
13 * and endl macro as called for *
14 * Ruben Safir June 29th, 2008 *
15 *****************************************************/
16 using namespace std;
17
18 int main(){
19
20 ofstream OUTFILE("/home/ruben/cplus/testpass.txt");
21 ifstream INFILE("/etc/passwd");
22 if(! INFILE ){
23 cerr << "Can't open password file";
24 return -1;
25 }
26 if(! OUTFILE ){
27 cerr << "Can't open testpass.txt file";
28 return -2;
29 }
30
31 string word;
32 while( INFILE >> word)
33 OUTFILE << word << ' ';
34
35 return 0;
36 }
37





Enjoy ~~~ Comments welcome, Questions VERY welcome and I'll be posting
the next message in a day or so. In the middle of the week we can meet on
line. If anyone needs help, email me or the list.

Ruben
--
http://www.mrbrklyn.com - Interesting Stuff
http://www.nylxs.com - Leadership Development in Free Software

So many immigrant groups have swept through our town that Brooklyn, like Atlantis, reaches mythological proportions in the mind of the world - RI Safir 1998

http://fairuse.nylxs.com DRM is THEFT - We are the STAKEHOLDERS - RI Safir 2002

"Yeah - I write Free Software...so SUE ME"

"The tremendous problem we face is that we are becoming sharecroppers to our own cultural heritage -- we need the ability to participate in our own society."

"> I'm an engineer. I choose the best tool for the job, politics be damned.<
You must be a stupid engineer then, because politcs and technology have been attached at the hip since the 1st dynasty in Ancient Egypt. I guess you missed that one."

© Copyright for the Digital Millennium

  1. 2008-06-03 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] [nyc-at-workatjelly.com: Jelly in Manhattan this Friday, 6/6]
  2. 2008-06-08 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] Empathic Computing
  3. 2008-06-08 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] GMAIL - Free Software Models
  4. 2008-06-08 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] Cellphone DO kill ....
  5. 2008-06-08 Michael L Richardson <mlr52-at-michaellrichardson.com> Re: [NYLXS - HANGOUT] Cellphone DO kill ....
  6. 2008-06-08 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] Bloody Ugly
  7. 2008-06-12 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] [nyc-at-workatjelly.com: Jelly in Brooklyn this Friday, 6/13]
  8. 2008-06-12 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] [notification+zjaayj4y-at-facebookmail.com: "The Rooftop Films Summer Series: June Schedule" sent you a message on Facebook...]
  9. 2008-06-12 From: "armando fonseca" <afonsec2-at-gmail.com> Subject: [NYLXS - HANGOUT] armando fonseca wants to chat
  10. 2008-06-20 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] [KMalhotra-at-council.nyc.gov: Tech in Government Update]
  11. 2008-06-20 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] [meissner-at-suse.de: [security-announce] SUSE Security Announcement: evolution (SUSE-SA:2008:028)]
  12. 2008-06-20 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] [dplist-at-danielpipes.org: #862: Pipes argues "The Enemy Has a Name" in the Jer. Post]
  13. 2008-06-20 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] [meissner-at-suse.de: [security-announce] SUSE Security Summary Report SUSE-SR:2008:013]
  14. 2008-06-20 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] [meissner-at-suse.de: [security-announce] SUSE Security Announcement: Opera 9.50 (SUSE-SA:2008:029)]
  15. 2008-06-20 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] [chief-at-freesoftwaremagazine.com: [Fsm_newsletter] Free Software Magazine newsletter]
  16. 2008-06-20 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] [anthony.weiner-at-congressnewsletter.net: Reminder - Town Hall with Rep. Weiner]
  17. 2008-06-20 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] Geek Dinosaur News
  18. 2008-06-20 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] More Geek stuff - 2000 year old Jew Tree's
  19. 2008-06-21 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] AP Copyright and Bloggers
  20. 2008-06-21 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] Diamonds are a girls best friend
  21. 2008-06-22 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] [jays-at-panix.com: [nylug-talk] Sunday 22 June 2008 NYC Resistors: OLPC Hack Day]
  22. 2008-06-22 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] Tea Lounge
  23. 2008-06-22 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] Next NYLXS Meeting
  24. 2008-06-22 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] [ruben-at-mrbrklyn.com: [nylug-talk] Internships for Teens?]
  25. 2008-06-22 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] OLPC MS Spin
  26. 2008-06-23 From: "Michael L. Richardson" <mlr52-at-mycouponmagic.com> Re: [NYLXS - HANGOUT] Next NYLXS Meeting
  27. 2008-06-23 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] [catch152-at-gmail.com: Re; Signing up.]
  28. 2008-06-23 Amy Coleman <acoleman-at-mrbrklyn.com> Re: [NYLXS - HANGOUT] Next NYLXS Meeting
  29. 2008-06-23 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] Some Brooklyn History with Photo's! Worth a look.
  30. 2008-06-24 Ron Guerin <ron-at-vnetworx.net> Re: [NYLXS - HANGOUT] Tea Lounge
  31. 2008-06-24 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] [nyc-at-workatjelly.com: Jelly in Brooklyn this Friday, 6/27]
  32. 2008-06-24 Ruben Safir <ruben-at-mrbrklyn.com> Re: [NYLXS - HANGOUT] Tea Lounge
  33. 2008-06-24 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] [Consultants1-at-cgt-consult.com: Open Jobs]
  34. 2008-06-24 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] Data Recovery Tools
  35. 2008-06-26 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] News not getting enough press
  36. 2008-06-28 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] Video Production
  37. 2008-06-28 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] The new DMCA
  38. 2008-06-28 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] On Line C, Perl and C++ Programming Work Shop
  39. 2008-06-28 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] C Programing Workshop
  40. 2008-06-29 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] [ivaldes-at-hal-pc.org: [Hardhats] Congress Health IT Bill and Cerner Lobbying]y
  41. 2008-06-29 From: "Ronny Abraham" <ronny.coder-at-gmail.com> Re: [NYLXS - HANGOUT] C Programing Workshop
  42. 2008-06-29 Ruben Safir <ruben-at-mrbrklyn.com> Re: [NYLXS - HANGOUT] C Programing Workshop
  43. 2008-06-29 From: "Ronny Abraham" <ronny.coder-at-gmail.com> Re: [NYLXS - HANGOUT] C Programing Workshop
  44. 2008-06-29 Ruben Safir <ruben-at-mrbrklyn.com> Re: [NYLXS - HANGOUT] C Programing Workshop
  45. 2008-06-29 From: "Michael L. Richardson" <mlr52-at-michaellrichardson.com> Re: [NYLXS - HANGOUT] Video Production
  46. 2008-06-29 email <ray-pub-at-rcn.com> Re: [NYLXS - HANGOUT] C Programing Workshop
  47. 2008-06-29 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [NYLXS - HANGOUT] C++ Workshop session 1
  48. 2008-06-30 From: "Ronny Abraham" <ronny.coder-at-gmail.com> Re: [NYLXS - HANGOUT] C Programing Workshop
  49. 2008-06-30 Ruben Safir <ruben-at-mrbrklyn.com> Re: [NYLXS - HANGOUT] C Programing Workshop
  50. 2008-06-30 swd <sderrick-at-optonline.net> Subject: [NYLXS - HANGOUT] Need to get rid of a whole bunch of programming books. TALK ABOUT FREE
  51. 2008-06-30 Ruben Safir <ruben-at-mrbrklyn.com> Re: [NYLXS - HANGOUT] Need to get rid of a whole bunch of programming books. TALK ABOUT FREE SOFTWARE!!!
  52. 2008-06-30 From: "Tameek Henderson" <tameek-at-gmail.com> Re: [NYLXS - HANGOUT] Need to get rid of a whole bunch of programming books. TALK ABOUT FREE SOFTWARE!!!
  53. 2008-06-30 Ruben Safir <ruben-at-mrbrklyn.com> Re: [NYLXS - HANGOUT] Need to get rid of a whole bunch of programming books. TALK ABOUT FREE SOFTWARE!!!

NYLXS are Do'ers and the first step of Doing is Joining! Join NYLXS and make a difference in your community today!