<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.6000.16825" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hello all</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>mix &amp; match is just a buzzword.</FONT></DIV>
<DIV><FONT face=Arial size=2>we need a real example that shows that 10 minutes 
of shell scripting will save half a day of programming.</FONT></DIV>
<DIV><FONT face=Arial size=2>(no, grep -v is not an example)</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>as for scripts &amp; Windows</FONT></DIV>
<DIV><FONT face=Arial size=2>Windows have many scripting capabilities. It is 
true that we mostly ignore them (maybe becase they are complicated)</FONT></DIV>
<DIV><FONT face=Arial size=2>1. batch files</FONT></DIV>
<DIV><FONT face=Arial size=2>2. visual basic scrips (if you know how, you can 
use any dll in the system to do a job for you)</FONT></DIV>
<DIV><FONT face=Arial size=2>3. power shell</FONT></DIV>
<DIV><FONT face=Arial size=2>4. and of course cygwin</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>make can be run on windows &amp; even if you create 
source dependencis, you still have to handle the dependency on header files. 
</FONT><FONT face=Arial size=2>The problem (almost) does not exist in IDE 
environment (which is the windows way)</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Valgrind is an execelt tool (and it helped me a 
lote) but it is relevant only for languages that do not have memory manegment 
(C, C++, ...). Java programmers can laugth all the way to the 
dedline</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Sorry, please think harder and come out with 
somthing more convincing</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Thanks in advanced</FONT></DIV>
<DIV><FONT face=Arial size=2>Shahar Dag</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<BLOCKQUOTE 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
  <A title=ladypine@gmail.com href="mailto:ladypine@gmail.com">Orna Agmon 
  Ben-Yehuda</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A title=vadim.eisenberg@gmail.com 
  href="mailto:vadim.eisenberg@gmail.com">Vadim Eisenberg</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Cc:</B> <A title=haifux@haifux.org 
  href="mailto:haifux@haifux.org">Haifux</A> ; <A title=dag@cs.technion.ac.il 
  href="mailto:dag@cs.technion.ac.il">Shahar Dag</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Monday, November 02, 2009 11:55 
  AM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [Haifux] advanced of 
  programming in Linux</DIV>
  <DIV><BR></DIV>
  <DIV dir=ltr>I think the strong point is "The Unix Way", which is a mix and 
  match of tools, each good at doing a specific thing, by using shell , pipe and 
  make. Linux did not invent "The Unix Way", but like other FOSS, it provides 
  more options for the mix and match. Indeed many Unix systems are closed 
  source, and the Unix Way works there, too (better than it would work on 
  Windows, I expect). <BR><BR>A point specific to Linux and Intel/AMD is 
  valgrind, with which I nowadays solve memory issues within seconds of 
  programmer time. Solving similar problems before I had Linux took me weeks 
  sometimes (for a code I was not familiar with, of tens of thousands of lines), 
  and sometimes I just gave up.<BR><BR>
  <DIV class=gmail_quote>On Mon, Nov 2, 2009 at 11:16 AM, Vadim Eisenberg <SPAN 
  dir=ltr>&lt;<A 
  href="mailto:vadim.eisenberg@gmail.com">vadim.eisenberg@gmail.com</A>&gt;</SPAN> 
  wrote:<BR>
  <BLOCKQUOTE class=gmail_quote 
  style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
    <DIV lang=EN-US vlink="purple" link="blue">
    <DIV>
    <P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: rgb(31,73,125)">I 
    would like to present some points of a devil's advocate (some smart students 
    can raise these counterclaims during the lecture) :</SPAN></P>
    <P><SPAN style="FONT-SIZE: 11pt; COLOR: rgb(31,73,125)"><SPAN>1.<SPAN 
    style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    </SPAN></SPAN></SPAN><SPAN dir=ltr></SPAN><SPAN 
    style="FONT-SIZE: 11pt; COLOR: rgb(31,73,125)">You can run batch files also 
    on Windows (it for sure is less convenient than shell scripts on Unix, but 
    it is not impossible)</SPAN></P>
    <P><SPAN style="FONT-SIZE: 11pt; COLOR: rgb(31,73,125)"><SPAN>2.<SPAN 
    style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    </SPAN></SPAN></SPAN><SPAN dir=ltr></SPAN><SPAN 
    style="FONT-SIZE: 11pt; COLOR: rgb(31,73,125)">You can use Ant instead of 
    makefile (it is also less convenient than makefile + shell scripts, but is 
    still possible)</SPAN></P>
    <P><SPAN style="FONT-SIZE: 11pt; COLOR: rgb(31,73,125)"><SPAN>3.<SPAN 
    style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    </SPAN></SPAN></SPAN><SPAN dir=ltr></SPAN><SPAN 
    style="FONT-SIZE: 11pt; COLOR: rgb(31,73,125)">You can use Perl on 
    Windows</SPAN></P>
    <P><SPAN style="FONT-SIZE: 11pt; COLOR: rgb(31,73,125)"><SPAN>4.<SPAN 
    style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    </SPAN></SPAN></SPAN><SPAN dir=ltr></SPAN><SPAN 
    style="FONT-SIZE: 11pt; COLOR: rgb(31,73,125)">UNIX remark: I guess all the 
    tools you mention pertain to Unix also, so in general you provide points for 
    learning Unix tools, not necessary Linux ones. In particular, you probably 
    can use them on cygwin on Windows.</SPAN></P>
    <P class=MsoNormal><SPAN 
    style="FONT-SIZE: 11pt; COLOR: rgb(31,73,125)"></SPAN>&nbsp;</P>
    <P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: rgb(31,73,125)">In 
    general, my suspicion is that anything you can do in Unix, you can do also 
    in Windows, &nbsp;but in a less convenient/less productive way. </SPAN></P>
    <P class=MsoNormal><SPAN 
    style="FONT-SIZE: 11pt; COLOR: rgb(31,73,125)"></SPAN>&nbsp;</P>
    <P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: rgb(31,73,125)">I 
    hope not to make anybody here angry by providing such heretic 
    remarks.</SPAN></P>
    <P class=MsoNormal><SPAN 
    style="FONT-SIZE: 11pt; COLOR: rgb(31,73,125)"></SPAN>&nbsp;</P>
    <P class=MsoNormal><SPAN 
    style="FONT-SIZE: 11pt; COLOR: rgb(31,73,125)">Regards,</SPAN></P>
    <P class=MsoNormal><SPAN 
    style="FONT-SIZE: 11pt; COLOR: rgb(31,73,125)">Vadim</SPAN></P>
    <P class=MsoNormal><SPAN 
    style="FONT-SIZE: 11pt; COLOR: rgb(31,73,125)"></SPAN>&nbsp;</P>
    <DIV 
    style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: 1.5pt solid; PADDING-TOP: 0cm; BORDER-BOTTOM: medium none">
    <DIV>
    <DIV 
    style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: rgb(181,196,223) 1pt solid; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none">
    <P class=MsoNormal><B><SPAN style="FONT-SIZE: 10pt">From:</SPAN></B><SPAN 
    style="FONT-SIZE: 10pt"> <A href="mailto:haifux-bounces@haifux.org" 
    target=_blank>haifux-bounces@haifux.org</A> [mailto:<A 
    href="mailto:haifux-bounces@haifux.org" 
    target=_blank>haifux-bounces@haifux.org</A>] <B>On Behalf Of </B>Orna Agmon 
    Ben-Yehuda<BR><B>Sent:</B> Monday, November 02, 2009 10:51 AM<BR><B>To:</B> 
    Shahar Dag<BR><B>Cc:</B> Haifux<BR><B>Subject:</B> Re: [Haifux] advanced of 
    programming in Linux</SPAN></P></DIV></DIV>
    <DIV>
    <DIV></DIV>
    <DIV class=h5>
    <P class=MsoNormal>&nbsp;</P>
    <DIV>
    <P class=MsoNormal style="MARGIN-BOTTOM: 12pt">I often see people spending 
    approximately an hour each time, trying to understand why their change was 
    not included in the executable. The answer is usually - because they forgot 
    to insert the source into the list of sources in the makefile. When I show 
    them how to automatically create a list of sources and compile them all, 
    with the correct dependencies, the problem is forever solved.<BR><BR>I use a 
    makefile to build Haifux's site automatically in two languages, while 
    compiling lists of lectures in different pages.<BR><BR>I use make to 
    properly build latex files, including the second pass required for 
    bibtex.<BR><BR>I use make ,diff, head to create automatic tests (regression 
    tests) for various programs, compare them automatically with previous 
    results, and produce a report of added capabilities, lost capabilities, 
    changes requiring the attention of a professional.<BR><BR>I use make and 
    perl to create parametric sweep runs (batch runs with different input 
    parameters in each run). I specifically use here the inherent quality of 
    make, to work according to the date of targets, so that if the parametric 
    sweep was disturbed in the middle, only runs older than the executable and 
    input file are re-run.</P>
    <DIV>
    <P class=MsoNormal>2009/11/1 Shahar Dag &lt;<A 
    href="mailto:dag@cs.technion.ac.il" 
    target=_blank>dag@cs.technion.ac.il</A>&gt;</P>
    <DIV>
    <DIV>
    <P class=MsoNormal><SPAN>Hello</SPAN></P>
    <P class=MsoNormal>&nbsp;</P>
    <P class=MsoNormal><SPAN>To extent Elli's question:</SPAN></P>
    <P class=MsoNormal><SPAN>We try to convince our students that programming on 
    Linux is easier / faster relative to Windows, so they better learn how to 
    work with Linux.</SPAN></P>
    <P class=MsoNormal><SPAN></SPAN>&nbsp;</P>
    <P class=MsoNormal><SPAN>We claim that using the build in shell commands and 
    pipes we can compose a solution for complex problem (almost) without 
    programming.</SPAN></P>
    <P class=MsoNormal><SPAN></SPAN>&nbsp;</P>
    <P class=MsoNormal><SPAN>Can you point us for real life examples that prove 
    our claims? </SPAN></P>
    <P class=MsoNormal><SPAN></SPAN>&nbsp;</P>
    <P class=MsoNormal><SPAN>Thanks in advanced</SPAN></P>
    <P class=MsoNormal><SPAN style="FONT-SIZE: 10pt">Shahar Dag<BR>System &amp; 
    Software Development Laboratory (SSDL)<BR>Computer Science 
    Department<BR>Technion - Israel Institute of Technology<BR>Haifa, 
    Israel<BR>Tel. 972-4-829-4880<BR>Fax 972-4-829-4878</SPAN></P></DIV></DIV>
    <P class=MsoNormal 
    style="MARGIN-BOTTOM: 12pt"><BR>_______________________________________________<BR>Haifux 
    mailing list<BR><A href="mailto:Haifux@haifux.org" 
    target=_blank>Haifux@haifux.org</A><BR><A 
    href="http://hamakor.org.il/cgi-bin/mailman/listinfo/haifux" 
    target=_blank>http://hamakor.org.il/cgi-bin/mailman/listinfo/haifux</A></P></DIV>
    <P 
  class=MsoNormal>&nbsp;</P></DIV></DIV></DIV></DIV></DIV></DIV></BLOCKQUOTE></DIV><BR></DIV>
  <P>
  <HR>

  <P></P>_______________________________________________<BR>Haifux mailing 
  list<BR>Haifux@haifux.org<BR>http://hamakor.org.il/cgi-bin/mailman/listinfo/haifux<BR></BLOCKQUOTE></BODY></HTML>