﻿<?xml version="1.0" encoding="utf-8" ?> 
<?xml-stylesheet type="text/xsl" href="courses.xsl" ?>
<courses name="Fawcett">

  <!-- everything in head, e.g., titles, styles, and scripts, go here -->
  <btitle>Notices</btitle>
  <theme src="ResearchTheme.css" />

  <!-- everything in body goes from here to bottom -->
  <visible>
  <title>Notices and Updates</title>
  <revised>13 December 2010</revised>
  
  <hnav/>
  <cnav/>

  <hilight>
  <html><img src="students/studentstrip5.jpg" alt="image file not found" width="100%" /></html>
  </hilight>

  <quote source="Sir Isaac Newton (1642-1727)">
    Truth is ever to be found in the simplicity, and not in the
    multiplicity and confusion of things.
  </quote>
 
  <hilight>
    <ifile title="Homework Upload Instructions">../uploads.doc</ifile>,
    <ifile title="build tools">../coretechnologies/buildtools</ifile>, 
    <ifile title="Batch Files for Building and Running Projects">../CoreTechnologies/buildtools/Bats.htm</ifile>, 
    <ifile title="FTP-IE">FTPusingIE.doc</ifile>,
    <ifile title="FTP-WS_FTP">FTPwithWS_FTP.doc</ifile>, 
    <ifile title="Access H: Drive Remotely">AccessingHdriveRemotely.doc</ifile>, 
    <ilink title="ECS Help Desk - computer account">helpdesk.ecs.syr.edu/</ilink>, 
    <ifile title="Creating CD from ISO image">./docs/VSinstallationUsingVirtualCDmounting.doc</ifile>,
    <ifile title="VPN instructions">./docs/VPN_Instructions.doc</ifile>
  </hilight>
<!--  <html><a name="contents"/></html>  -->

  <section title="Recent Changes to this page:">
  <olist>
    <litem>
      <file title="Project #5 Handin list">../cse681/projects/HandinsFall2010.xlsx</file>
    </litem>
    <litem>
      Here's a link to the Midterm Makeup Examination: <ilink title="MTMU Fall 2010">www.ecs.syr.edu/faculty/fawcett/handouts/CSE681/MidTerm/MTMUFall2010.doc</ilink>
    </litem>
  </olist>
  </section>

  <section title="First Things:">
    <olist>
      <litem>
        How to <note>download code</note> from course code folders? - The easiest way to access code is with FTP.  
        Unfortunately, that is available only on campus or using the
        vpn client provided for registered students at www.its.syr.edu. 
        <p/>
        For all former students, I am slowly putting zip archives in the various code folders, so that you can get the
        entire contents simply by using the "save target as" selection on the right-click context menu in Internet Explorer.
        If you don't find a zip file and are a former student, send me an email and I will put the archive you want in its code folder.
      </litem>
      <litem>
        My <note>late policy</note> for all courses is to deduct one point per day after the due date.  So if your project is 20 days late 
        you will have 20 points deducted from your grade for the project.  I regret the need for this.  Sigh!
        <p/>
        There are a few reasons for which extensions to project due dates are granted, <u>with evidence</u>.  They are: illness or family emergency, 
        trip out of town for conference, business trip out of town, and an interview trip, out of town.  Advance notice is required for the trips.
      </litem>
      <litem>
        All courses served by this web site require <note>project submissions</note> to be uploaded, using the project upload script linked
        on every course page, and also linked above, and <ifile title="here">../upload.cfm</ifile>.  Note that this requires an SU computer account. You will find instructions on how
        to upload projects <ifile title="here">../uploads.doc</ifile>.
      </litem>
    </olist>
  </section>

  <section title="References">
  <olist>
    <litem>
      The library has the following books on reserve for your use:<p/>
      <ulist>
        <litem>
          Programming WPF, Chris Sells and Ian Griffith - CSE681
        </litem>
        <litem>
          Programming WCF Services, Juval Lowey - CSE681
        </litem>
        <litem>
          Bullet Proof Web Design, Cedarholm - CSE686
        </litem>
        <litem>
          XSLT 2nd Edition, Kay - CSE686
        </litem>
        <litem>
          Design Patterns, Gamma et. al. - CSE776
        </litem>
        <litem>
          Patterns of Enterprise Application Architecture - CSE776
        </litem>
        <litem>
          Refactoring to Patterns - CSE776
        </litem>
        <litem>
          Pattern Languages of Program Design Conference Proceedings - CSE776
        </litem>
        <litem>
          Organizational Patterns of Agile Software - CSE776
        </litem>
      </ulist>
    </litem>

    <litem>
      Responding to a student's email, I gathered a set of links about interviews (taking and giving) that I like, and thought they might be
      useful for you.  Note that I don't agree with everything said, but do agree with at least most of the posts:<p/>
      <ulist>
        <litem>
          <link title="www.codinghorror.com/blog/archives/000226.html">www.codinghorror.com/blog/archives/000226.html</link> 
        </litem>
        <litem>
          <link title="www.realsoftwaredevelopment.com/10-tips-to-ace-a-software-development-interview/">www.realsoftwaredevelopment.com/10-tips-to-ace-a-software-development-interview/</link>
        </litem>
        <litem>
          <link title="steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html">steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html</link>
        </litem>
        <litem>
          <link title="thesmithfam.org/blog/2008/01/01/how-to-conduct-a-good-c-phone-interview/">thesmithfam.org/blog/2008/01/01/how-to-conduct-a-good-c-phone-interview/</link>
        </litem>
        <litem>
          <link title="geekswithblogs.net/jolson/archive/2005/01/21/20636.aspx">geekswithblogs.net/jolson/archive/2005/01/21/20636.aspx</link>
        </litem>
        <litem>
          <link title="www.joelonsoftware.com/articles/ThePhoneScreen.html">www.joelonsoftware.com/articles/ThePhoneScreen.html</link>
        </litem>
        <litem>
          <link title="www.joelonsoftware.com/articles/GuerrillaInterviewing3.html">www.joelonsoftware.com/articles/GuerrillaInterviewing3.html</link>
        </litem>
      </ulist>
    </litem>
  </olist>
  </section>

<!--  <html><a name="Everyone" /></html><p/> -->

  <section title="Notes for Everyone:">
    <ulist>
    <litem>
      I've added a <ifile title="web page">studentprojects.xml</ifile> describing some work students are doing with me as background material for a book I'm working on.
    </litem>
      <litem>
        Here are a few links to help your job search:
        <olist>
          <litem>
            <link title="CNY jobs">www.essentialnyjobs.com/</link>
            If you search on C++ or C# you'll find lots of hits.  Some of those are for companies, like Lockheed-Martin and Sensis
            that do classified work and need citizenship.  But there are still alot of other opportunities.  I got 90 hits for C++,
            23 hits for C#, 105 for .Net, and 63 for Java. There were even 24 hits for Cobol.
          </litem>
          <litem>
            <link title="America&apos;s Job Exchange">www.americasjobexchange.com/seeker/jobsearch/quick</link>
            Again, I got lots of hits on the same searches as above.  This site allows you to enter any city you want.
          </litem>
        </olist>
      </litem>
      <litem>
        <note>Visual Studio 2010, Professional, is available for download from MSDN</note>.  You need an id and password, which most students will have already,
        as new students are entered into a database that results in you getting an email from Microsoft with the id and password.  If you don't have
        that, contact the CIT help desk, <ilink title="ECS Help Desk">helpdesk.ecs.syr.edu/</ilink>, on the second floor of Link Hall, near the elevator.
        <p/>
        When you download, you get iso images that have to be burned to DVDs or CDs.  You can do that in Win7 by right clicking on the iso image and select burn.
        Otherwise, you can do that in the computer labs, using instructions
        you find <ifile title="here">../CDs-DVDs-from-ISO-Images.doc</ifile>.
        Also, here is an 
        <ilink title="on-line resource page">www.petri.co.il/how_to_write_iso_files_to_cd.htm</ilink> 
        that tells about other options. 
      </litem>
      <litem>
        Here's a folder: <ifile title="Handouts/CompileAndRun">../compileAndRun</ifile> that contains information about how
        to modify your environment in Cmd windows, so you can run all the visual studio tools, like devenv.exe, e.g., Visual Studio.
        This makes it simple to write compile.bat and run.bat files for your projects.
        <p/>
        That folder contains a startup.bat file, also in <ifile title="CoreTechnologies/StartupBatFile">../CoreTechnologies/StartupBatFile</ifile>.
        If you run this batch file from a shortcut, you will have access to all the Visual Studio tools, e.g., compilers, WSDL,
        XSL, XSD, etc. from the command line.  This is necessary, for example, to generate the C# code for a webservice proxy, 
        using WSDL, as we've discussed in class.  See the accompanying screenshot to see how to set up the shortcut.
        <p/>
        Note that you may have to modify the paths I've used to match your machine.  If you've done all standard installs that may
        not be necessary.  Also, the doskey settings are things I find useful, but you can ignore if you wish.
      </litem>
    </ulist>
  </section>

<!--  <html><a name="CSE681" /></html><p/>  -->
  <section title="CSE681 - Software Modeling and Analysis">
    <litem>
      CSE681: You will find <ifile title="topics for Midterm">..\cse681\midterm\topicsformidtermFall2010.doc</ifile> and 
      <ifile title="materials to study for midterm">..\cse681\midterm\studymaterials_MidtermExamFall2010.doc</ifile> may help preparing for
      midterm examination.
    </litem>
    <litem>
      CSE681: I've enabled turning off comments in CSemiExp.  This isn't really necessary for making effective rules, but
      can make some rules simpler.  See <ilink title="MVCDemo-NewBeta">www.ecs.syr.edu/faculty/fawcett/handouts/CSE681/code/MVCDemo-NewBeta/</ilink>.
      Note that this is a beta.  I've done some testing and Akshay Baviskar has also been using.  Look at the Semi.cs test stub in the SemiExp project
      to see how to use this feature.
    </litem>
    <litem>The <note>time of the makeup class</note> has been changed, see below</litem>
    <litem>
      There will be a make-up session for the Monday afternoon section of CSE681 - SMA (Section 2) on Wednesday, September 8th from <note>5:30pm to 7:00pm</note>.
      We will cover the contents of Lecture #3, the same thing covered in the Wednesday morning class.
      <p/>
      I've also delayed the due date for Project #1 OCD from Monday Sep 13th to Wed Sep 15th.  That's only two days but will give you a little more time
      to make up for the missing labor day class. 
    </litem>
    <ulist>
      <litem>
        Every Friday morning, from 9:00am until Noon, I hold an open help session, for anyone taking my classes in the
        current semester.  Come and ask whatever questions you may have about the class materials.
      </litem>
    </ulist>
    The rest of the links below are from last year.  I've left them as they will be useful for you too.  New notice items will be place on top of these.<p/>
    <ulist>
      <litem>
        Here are some links to Windows Forms demos in C++/CLI that I sent to a CSE681 student:<p/>
        <link title="A simple C++/CLI form that transfers contents of a TextBox to a MessageBox when user clicks a button:">www.ecs.syr.edu/faculty/fawcett/handouts/CoreTechnologies/WindowsProgramming/Code/CppWinForm/</link>
        <link title="A C++/CLI form that uses a child thread to put file names from the current directory into a list box:">www.ecs.syr.edu/faculty/fawcett/handouts/CoreTechnologies/WindowsProgramming/Code/FormWithCppThread/</link>
        <link title="A C++/CLI form that uses a custom control and child forms:">www.ecs.syr.edu/faculty/fawcett/handouts/CoreTechnologies/WindowsProgramming/Code/demoCppWinForm/</link>
      </litem>
      <litem>
        Vijay Reddy found an 
        <ilink title="Excellent Tutorial on C# Threads">www.albahari.com/threading/</ilink>.  This will be useful later on this semester.
      </litem>
      <litem>
        A couple of students asked about syntax for C++/CLI threads.  I've done a 
        <ifile title="small example">../CoreTechnologies/WindowsProgramming/Code/FormWithCppThread</ifile>
        that illustrates 
        how to create a C++/CLI child thread and communicate its results back to the main thread in a Form, using
        Form::Invoke. 
      </litem>
<!--
      <litem>
        I've placed the best CSE681 Final Projects on the college server 
        <ifile title="here">../cse681/bestfinalprojects</ifile>.
        Each of these is "best" in a unique way.  After you've looked them over and compared them to what you have done,
        you may find it interesting to chat briefly with the authors about their work.  
        Congratulations to Elie ElAaraj, Marty Goddard, Nisith Dash, and Karthik Parthiban.  Cheers.
      </litem>
      <litem>
        I’ve found a couple of references to WCF message order which are useful:
        <ilink title="Message Order #1">www.request-response.com/blog/PermaLink,guid,a6cb59e6-cbc2-4ce3-92b2-ea40bc5929f6.aspx</ilink>, and   
        <ilink title="Message order #2">www.softwaremaker.net/blog/WSReliableMessagingSimplifiedWHATAndHOW.aspx</ilink>.
        <p/>
        Much to my surprise, it is now clear that message order will not be preserved unless you specify
        reliableSession enabled=true, and ordered=true.  This is something I didn’t know
        (Phil tried to tell me that, but I was skeptical).  Unfortunately, basicHttp does not support reliable sessions,
        so the only alternative is to either use a more secure binding (apparently all the rest support reliable sessions,
        but most not be default) or to re-order by tracking message numbers.  None of this, in my opinion, matters a lot,
        except for the critical case of chunking, which I’ve required.
        <p/>
        we will not penalize anyone for failing to ensure proper order – I did not warn the class about that since I didn’t know about it
        – but we will reward everyone who does properly manage message order with +3 design points.
        <p/>
        Also, Devaprem found a useful article by Juval Lowy about details of WCF.
        Here’s a link: <ilink title="Lowy article">msdn.microsoft.com/en-us/magazine/cc301087.aspx</ilink>, and here is a link to
        other articles that he’s written on WCF: <ilink title="other Lowy articles">msdn.microsoft.com/en-us/magazine/cc301087.aspx</ilink>.
        <p/>
        I will either put together a demo of how to support message order or upload a solution that was developed for the
        Software Studio project.  That won't happen for a week or two.
      </litem>

      <litem>
        <note>The TAs have set up a bulletin board for announcements 
        <ilink title="here:">groups.google.com/group/fawcett_sma/web/announcements?hl=en</ilink>.</note><br/>  
        They will post temporary changes to office hours, grading issues, and other such, so check it frequently.
      </litem>
-->
    </ulist>
  </section>
  <p/>

<!--  <html><a name="CSE686" /></html><p/>  -->
  <section title="CSE686 - Internet Programming">
    <ulist>
<!--
    <litem>
      Supreeth Murthy encountered a file access problem with the IIS hosted File Streaming service I handed out.  Here's the fix:<br/>
      Hi Sir, When I used WCF hosted on IIS to download a file, I got an access denied problem for the folder I was trying to access.
      This problem was solved by Phil. He suggested a small change in  the downLoadFile method of Service contract,
      Phil gave the read access permission for the outStream object and its working fine now. I checked on the lab machine as well.
      The code change is shown below. 
      <p/>
      outStream = new FileStream(sfilename, FileMode.Open, FileAccess.Read); 
    </litem>
    <litem>
      Several IP students have had some issues getting a WCF service (that works running in Visual Studio) running under IIS.  Harrish Mugundhan
      found solutions which I've included below:<p/>
      I was  having problems with hosting wcf in iis 7 . It was showing some scriphandler error. I surfed a lil bit n did these steps which for worked well.
      <p/>
      1) make sure WCF HTTP activation and WCF NON-HTTP Activation are checked under microsoft .net 3.0 in Windows  Features.
      <p/>
      2) They must run ServiceModel -i from "C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation" directory.
    </litem>
    <litem>
      A number of you have decided to focus on Asp.Net for your MS Projects.  Some of you have not taken the CSE686 – Internet Programming
      course and may not have a good mental model of what Asp.Net is all about.<p/>
      I plan on presenting some introductory material about that on Saturday, July 25th, at 1:00pm, in CST 4-201.
      If you have taken CSE686 you probably don’t need to attend.  Here’s the agenda:<p/>
      <olist>
        <litem>
          Discuss web programming models – static web pages (flow model, box model), scripted asp, and asp.net.  I will say only a few words
          about silverlight and ajax.
        </litem>
        <litem>
          Building a web application with and without the asp.net wizards.
        </litem>
        <litem>
          What I expect to see in a Master’s Project.
        </litem>
      </olist>
    </litem>
-->
    </ulist>
  </section>

<!--  <html><a name="CSE687" /></html><p/>  -->
  <section title="CSE687 - Object Oriented Programming">
    <ulist>
    <litem>
      I've fixed a couple of bugs, found by Karthick Soundararaj, handling invalid XML, and uploaded the fixes to the college server.
      Note that you should make sure that in your project settings you set C/C++\Code Generation\Exception handling to /EHa so your
      catch handlers work for Windows Structured Exceptions as well as C++ exceptions.
    </litem>
    <litem>
        I've added several footnotes to the Project #1 statment to clarify issues students had with its interpretation.  Here's
        a link: <ifile title="Pr1 revised statement">../cse687/projects/pr1s10.doc</ifile>.
    </litem>
    <litem>
      For CSE687 Project #1 you do not have to implement a console menu or a shell, nor should the user specify a file to process in any other way
      than the command line.  We will test your project with your submitted file and we will also torture your project with our own test file
      (we will name our test file on the command line of your project executive).  Note that we only expect your processing to render correct
      output if the input is correct XML syntax.  In any case, you should not allow unhandled exceptions to escape.
    </litem>
    <litem>
      <ifile title="CSE687 Project #1 Survival Guide">../CSE687/lectures/CSE687Pr1SurvivalGuide.xml</ifile>
    </litem>
    <litem>
      Quite a few students in CSE687 are behind schedule with Project #1.  I've decided to extend the due date by one week.  However, anyone 
      turning in the project on the original due date will receive a 5 point bonus.  This is a Cinderella bonus as it disappears one nanosecond
      after midnight of the original due date.
    </litem>
      <litem>
        Every Friday morning, from 9:00am until Noon, I hold an open help session, for anyone taking my classes in the
        current semester.  Come and ask whatever questions you may have about the class materials.
      </litem>
      <litem>
        The book C++ Primer Plus, by Stephen Prata, is in the Sci-Tech library, on reserve, for your use.  You will find this
        text very readable, with tons of small code fragments that show you how to do almost any basic operation you may need to do.
        You can not take this book home, but may use it in the library for several hours.
      </litem>
      <litem>
        Here are some C++ tutorial links I can recommend, ordered in increasing level of detail:<p/>
        <link title="cplusplus.com">www.cplusplus.com/doc/tutorial/</link>
        <link title="Codersource.net">www.codersource.net/codersource_cppprogramming.html</link>
        <link title="ACM.org">www.acm.org/crossroads/xrds1-1/ovp.html</link>
        <link title="CPrograming.com">www.cprogramming.com/tutorial.html</link>
        <link title="Peter Muller">www.zib.de/Visual/people/mueller/Course/Tutorial/tutorial.html</link>
        <link title="Doug Schmidt Tutorials">www.cs.wustl.edu/~schmidt/C++/index.html</link>
        <link title="Data Structures and Algorithms">www.brpreiss.com/books/opus4/html/book.html</link>
      </litem>
      This next item is from last year, but may be of use to you later in the Semester, so I'll leave it here.<p/>
      <litem>
        CSE687 - In response to a CSE687 student's question, I've prepared an example of a global function that is overloaded to 
        accept either an instance of a derived functor class or a pointer to a member function of another class.  The functor and 
        function pointers process the contents on an iterator argument that the global function supplies as it iterates over any
        type that supports iterators, e.g., strings, lists, arrays, etc. <p/>Obviously, this is related to requirements of Project #2.
        You can find it here: <ifile title="TemplateFunctorsEtc">../CSE687/code/TemplateFunctorsEtc</ifile>.
      </litem>
<!--
    <litem>
      While helping a student fix a deadlock in his Project #4, we discovered that I had failed to close the handled
      on the hStarted event in the MsgMgr destructor.  That will cause the wait function to never block after the first time the
      MMF is created, which can lead to a deadlock. Here is the fix - just add the last line to the destructor.  If you are
      creating the MsgMgr instance on the heap, then you must call delete on its pointer when you have finished with it, but
      before it goes out of scope (don't do that if you created the MMF_IPC instance on the local stack).
      <html><pre>
      MsgMgr::~MsgMgr()
      {
        delete pInQ;
        delete pOutQ;
        delete pInMMF;
        delete pOutMMF;
        CloseHandle(hStarted_);
      }
      </pre></html>
      The MMF_IPC project has been updated and uploaded to the college server.
    </litem>
    <litem>
      While helping a student with a threading problem, Phil Pratt-Szeliga noticed that the SocketListener::WaitForConnect()
      function did not always seem to be blocking, and proposed a fix.  I've published to the college server a slightly different
      solution:<br/>
      <html><pre>
      SOCKET SocketListener::waitForConnect()
      {
        int size = sizeof(tcpAddr);
        SOCKET toClient;
        do {
          toClient = accept(s_, (SOCKADDR*)&amp;tcpAddr, &amp;size); 
        } while (toClient == INVALID_SOCKET);
        return toClient;
      }
      </pre></html>
      The do-while loop simply returns the listener thread to the accept function if the returned socket is invalid.  In the original 
      design the listener would spawn a thread without checking and, if the socket was invalid, the block processor would start then
      immediately quit when it couldn't read from the socket.  While this is conceptually correct, it is not desirable behaviour due
      to the cost of generating an essentially useless thread.  In the student's code, many such threads were observed.
      <p/>
      I'm speculating that what happened in the student's machine is that some other process is scanning ports and that triggered
      a return from the socket's accept() call.  I will do a little more research when I get a chance and will post a note about that
      here.  In the mean time, you should probably use this fix.  If you have made changes to the Communicator code, you can safely
      apply the fix, as above, to your version.  Otherwise, simply use the new Socket and Communicator modules.  No other modules are
      affected.
      <p/>
      In tests on my system, with an instrumented version, I never saw more than one or two invalid sockets returned from the accept.
      The instrumented version is in the upload, and you can get to the statistics with Communicator::getInvalidSocketCount() and you
      can also get the number of successful connections from Communicator::getSocketConnectionCount().
      <p/>
      One symptom with the student's project was drawing problems on the results chart due to a large number of useless threads being
      created after all the communication was done but the listener was still active, which interfered with the Form's main thread while
      attempting to paint.  This fix resolved that problem.
    </litem>
    <litem>
      In a conversation with one of your classmates I discovered that that student was experiencing race conditions, and
      after some discussion it appears these are due to using MMF_IPCs for Executors running on different client serving threads
      but all using the same id.  If you use more than one MMF_IPC channel both ends MUST be using a unique, to that channel, name.
      You can achieve that by appending the endpoint to the MMF_name on the Test Harness side, and when it creates its Executor
      it passes the same endpoint string to the child executor process via a command line argument.  My SpawnProc example, handed
      out in class, shows you how to do that.
    </litem>
    <litem>
      CSE687 - I believe that a queue sharing bug and directory path overwriting bug in SocketCommunicator have been fixed.  I am not aware of any
      existing bugs.  I've uploaded to <ifile title="the college server">../coretechnologies/socketsandremoting/code/socketCommunicator-CSE687-newDemo</ifile>.
      The solution has two fragments of winform demos, neither with much functionality.  I will complete one of them for classes tomorrow.
    </litem>
    <litem>
      CSE687 - Vinay Vasyani reported a bug with file copy. I verified that (one byte was missing on the end), fixed it
      and uploaded.
      <p/>
      Another bug reported by Tushar, and Karthik Partiban, and others, is caused by less than perfect cloning
      causing file paths to be reset to their default values.  I looked at that for several hours and did not find a solution
      I liked due to dependencies between the file handler and file thread procs.  If one of you finds a good solution, let me 
      know and I will publish it for everyone to use.
      <p/>
      One student asked me to provide a winForm demo.  I have part of that done, enough to show a winform that holds onto a
      Communicator.  I'll finish that tomorrow.  Here is 
      <ifile title="version 2.4">../CoreTechnologies/SocketsAndRemoting/code/SocketCommunicator-CSE687-newDemo/</ifile>.
    </litem>
    <litem>
      CSE687 - I've fixed a bug that caused linking errors with code that uses Communicator by moving two static
      initializations from Communicator.h to communicator.cpp.  They needed to be in the header when communicator was 
      a template class.  That was changed and needed the statics to be moved.  The new code is 
      <ifile title="here">../CoreTechnologies/SocketsAndRemoting/code/SocketCommunicator-CSE687%20-%20newDemo/</ifile>.
    </litem>
    <litem>
      cse687 - <note>I fixed a problem in MMF_IPC</note>, reported by Supreeth Murthy, that was due to a last minute migration of the locks and threads
      modules.  I also removed some, no longer needed, debug statements and include statements.  The result has been uploaded to the college
      server, here: <ifile title="here">../CSE687/code/MMF_IPC/</ifile>.
    </litem>
    <litem>
      CSE687 - I've added a missing zip file to the FileSystem and GetIncludes demo
      <ifile title="here">../cse687/code/FileSystem</ifile>.
    </litem>
      <litem>
        I've fixed a <note>bug in GraphItertor</note> found by Devaprem, who also provided the solution.  This has been
        <ifile title="uploaded here">../CSE687/code/graphhelp</ifile>.  I also added a demonstration of building and (simulated)
        copying at run-time, and made the ShowAll function work for more than just string types.
      </litem>
      <litem>
        <note>I've revised and uploaded the GraphHelp demo</note>. While going over the graph prototype in class I saw that it did not start implementing
        either of the two recommended strategies: (1) graph holds std::vector of vertices with edges that refer to vector indexes, and
        (2) graph holds a list of pointers to vertices with edges that point to other vertices.  I've changed the prototype to start (2), and
        modified some of the diagrams to match the changes.<p/>
        I think you will find this version 2.0 a better starting point for project #2.  The revised prototype has been uploaded 
        <ifile title="here">../cse687/code/graphhelp</ifile>.  You are, as always, encouraged to explore your own design choices.
      </litem>
      <litem>
        CSE687 - I've uploaded a new version of the
        <ifile title="Project1HelpSp09 folder">../CSE687/code/Project1HelpSp09</ifile> containing new tokenizer and XmlElementParts modules.
        That fixes a problem identified and solved by Phil Pratt-Szeliga, e.g., white space in front of a '&lt;' character caused
        a parsing failure in XmlParts::get().
      </litem>
      <litem>
        Here is a useful note I received from Varun Sagar about parsing date time strings:<p/>
        <html>
          <pre>
For the 4th project I was getting the entire directory structure from the remote location 
in form of a xml string coded such that it could be broken into a 
map&lt;string, vector&lt;string&gt;&gt;  (string keys and vector of string values) on th receiver side

i was getting my file date time in the following format as a part of the xml
(attrib val ="03/12/2008 8:12 PM" ) 
as soon as '/' character comes even if it is part of the attribute value
the loop breaks and returns 0 for that attribute value

i have changed the previous if condition
which is 

 if((ch == ' ' &amp;&amp; (*this)[i-1] == '\"') || ch == '&gt;' || ch == '/')

 to the following

  if((ch == ' ' &amp;&amp; (*this)[i-1] == '\"') || ch == '&gt;' || (ch == '/'&amp;&amp;(*this)[i-1]=='&lt;'))

this considers a '/' as a part of the closing tag only if it is follows  a '&lt;'
I hope this helps ============ it helped me out :)
          </pre>
        </html>
      </litem>
      <litem>
        Some students are having problems with socket redefinition errors at link time.  Those multiple definitions are due
        to windows.h including winsock.h instead of winsock2.h so the definitions clash.  you can fix that
        By using <note>#define WIN32_LEAN_AND_MEAN</note> just before including windows.h.
        <p/>
        I've made those fixes in BlockingQueue.h, Locks.h, and Threads.h, so that should take care of the problems if you
        reload the Socketcommunicator-CSE687 (or make those changes in the code you have).
        Here's a blog that explains the issue: 
        <ilink title="http://blogs.msdn.com/wndp/archive/2006/12/18/winsock-header-weirdness.aspx">blogs.msdn.com/wndp/archive/2006/12/18/winsock-header-weirdness.aspx</ilink>.
        <p/>
        Other students have reported clashes with the WinTools Directory and Path classes with System::Directory and System::Path.
        That can be fixed by using the global qualifier, e.g., ::Directory instead of Directory.  That will distinguish my Directory
        class from System::Directory.  Another solution is to embed WinTools in a namespace, which I will do as soon as I get
        time to check all the code that uses it.
      </litem>
      <litem>Navit found a reference for time stamping files <ilink title="here">msdn2.microsoft.com/en-us/library/ms724933(VS.85).aspx</ilink>.</litem>
      <litem>
        Several students are trying, in Project #4, to send binary data using the string adaper in the Adapters module.
        That is not going to work, since strings are terminated with a null character, and binary data may have many
        such values within their payload.  You have to write a FileAdapter, for the Adapters module, that
        opens the file in binary mode, reads out fixed byte sequences and loads them in socket blocks to send. 
      </litem>
      <litem>
        As discussed in class, there were a couple of bugs in the Communicator, now fixed, I believe, and uploaded to the college server.
        <note>You will want to look at Process1 and Process2 projects</note>.  They use StringAdapter to send and receive strings in a
        fairly simple way.  This has been tested for strings larger than the Communicator block size, and all is well.
      </litem>
      <litem>
        Aniruddha Gore pointed out to me that in my solution to MT1 Spring 2006, e.g.,  MT1Sp06Instrsol.doc, had a typo in my answer to Question #8.
        This was the implementation of an assignment operator:
        <p/>
        <ind>In that, the static_cast&lt;B&gt; should be static_cast&lt;B&amp;&gt;</ind>
        <p/>
        That is now fixed and uploaded to the college server.
      </litem>
      <litem>
        I've included a note about requirements for Project #2 that I sent to a fellow student of CSE687.
        <p/>
        Fully qualified, as used in the Project statement means Namespace:Class:FunctionName.
        To caputure that you need to keep a scope stack on which you push every opening curly brace
        and pop every closing curly brace, along with the type and name of the scope,
        as you analyze the code.  If you do that, when you detect a function definition,
        you just look through the stack to find parent class and namespace names, if any.
        <p/>
        To be completely accurate in properly attributing function invocations, you need to keep track
        of the types invoking them.  This is more than I expect you to do.
        You can simply look through the fully qualified names and pick the first that has the same
        function name.  This will fail to distinguish functions of the same name from two different
        classes, and, if you don’t keep the function signature, fail to distinguish between overloaded
        functions.
        <p/>
        As this is only one part of several, in Project #2, you may elect to skip most of that
        type analysis, and loose a couple of points if that causes incorrect results in a test case.
      </litem>
      <litem>
        In the xmlParser module I've removed the quotes on saved attribute values and added global functions unQuoteString and quoteString.
        These changes have been uploaded to the college server.
      </litem>
      <litem>
        I've added the const qualifier for copy ctors and assignment opers in 3 of the deminherit examples, which were inadvertently left out.
        The revised code as been uploaded to the college server.
      </litem>
      <litem>
        Here is a link that has a nice description of the original Tarjan algorithm for finding strong components, my favorite:
        <ilink title="DFS and Strong Components">www.cs.cmu.edu/afs/cs/academic/class/15451-s06/www/lectures/DFS-strong-components.pdf</ilink>.
      </litem>
      <litem>
        <note>On Friday, March 21st</note> the &quot;Surviving OOD&quot; help session will move to CST 3-224, for that week only.
      </litem>
      <litem>
        Dusan Palider found a bug in the demo.cpp in HelpTueSp08 folder.  I had forgotten to call f.SetPath(path) in the function getFiles.  That is now fixed
        and uploaded to the <ilink title="college server">www.ecs.syr.edu/faculty/fawcett/handouts/CSE687/code/HelpTuesSp08/</ilink>.
      </litem>
      <litem>
        The TAs will be holding a &quot;Surviving CSE687&quot; help session on Fridays, starting at 4:00pm, in 
        CST 4-201.  Each week they provide a short talk on some topic relating to the course material, then
        accept questions.
      </litem>
      <litem>
        New students:<br/>You should receive from CIT, in the next week or so, an email with userid and password so that you can download
        Visual Studio 2008 and other Microsoft programs from the college server.  These are free for your use as registered
        students in ECS classes.  The downloads are ISO images.
        Here are links to tools supporting the installation of software from ISO images:
        <ilink title="Daemon-Tools">www.daemon-tools.cc/dtcc/download.php?mode=ViewCategory&amp;catid=5</ilink>, 
        <ilink title="xpvirtualcd">www.softwarepatch.com/windows/xpvirtualcd.html</ilink>.  If you have
        questions about their use see the TAs.
      </litem>
      <litem>
        Here are two simple ad-hoc algorithms for finding the transitive closure of a graph:
        <ilink title="Implication Graphs and Logic Testing, pgs 5-9">www.eng.auburn.edu/~vagrawal/TALKS/impgraph_VA.ppt</ilink>
        and 
        <ilink title="Transitive Closure and Reduction - first basic algorithm">www2.toki.or.id/book/AlgDesignManual/BOOK/BOOK4/NODE163.HTM</ilink>
        I find the first of these appealing.
      </litem>
      <litem>
        When you make a C++ WinForm user interface part of a design, you will find that the managed Framework Class Library
        can use managed types but can't use standard C++ library types.  The standard library can handle standard C++
        types but not managed types.  Therefore, when working with the form you will need to convert managed types into
        unmanaged types to use STL containers, for example, and convert standard types into managed types to use the
        Framework containers.  The Managed C++ examples, handed out in class, show you how to do that.
      </litem>
      <litem>
        There seems to be some continuing confusion about the FileInfo module.  The property settings in its project need
        to match your application, specifically, the Character Set property.  Windows and COM internals both use
        Unicode (16 bit characters) while native C++ uses Ansi (8 bit characters) - Microsoft calls them MultiByte Chars.
        For most CSE687 projects you want to set the Character Set to Multibyte, as shown in 
        <ifile title="this property sheet">../cse687/code/fileInfo/fileInfoProperties.doc</ifile>.  For most CSE775 projects
        you want to set that property to Unicode.  If you have the wrong setting, then projects that use FileInfo won't 
        compile until you cast the characters or strings to the expected type.
      </litem>
      <litem>
        I've added a link to 
        <ilink title="Herb Sutter's PDC 2005 talk on current features and planned additions to Visual C++">microsoft.sitestream.com/PDC05/TLN/TLN309_files/Default.htm#nopreload=1&amp;autostart=1</ilink>
        on the
        <ifile title="CoreTech/C++ Programming Language page">../CoreTechnologies/Cpp.xml</ifile>.
        His talk is exceptionally interesting and entertaining - highly recommended.
      </litem>
      <litem>
        I've added some interesting links to the <ifile title="C++ Programming Language">../CoreTechnologies/Cpp.xml</ifile> page, including interviews with
        Herb Sutter, at Microsoft, regarding the future of Visual C++.
        <p/>
        You will also find, on that page, links to tutorial material and other things of interest to C++ developers.
      </litem>
      <litem>
        The .Net languages, in the latest versions of C# and managed C++, have included a "generics" capability
        which is similar to C++ templates but not quite as powerful. 
        Here is a link to <ilink title="Generics vs. Templates">blogs.msdn.com/branbray/archive/2003/11/19/51023.aspx</ilink>.
        The contents of this link may not mean a lot to you right now, but will by the end of the course.
        So note that a permanent resting place for this
        link is on the C++ page under the CoreTech page, <ifile title="here">../coretechnologies/cpp.xml</ifile>.
      </litem>
-->
    </ulist>
  </section>

<!--  <html><a name="CSE775" /></html><p/>  -->

  <section title="CSE775 - Distributed Objects">
    <ulist>
<!--
    <litem>
      <litem>
        Here is a note from Romit Chattopadhyay about making C++\CLI work for WCF applications:<p/>
        Following are the steps that I had to follow to make the C# WCF  
        component interoperable with Manged C++ client<p/>
        <olist>
          <litem>
            After the Client Proxy has been compiled as a class library a config  
            file gets created in the &lt;Client Proxy Project&gt;\bin\debug.
            It would be named as &lt;ProjectName>.dll.config
          </litem>
          <litem>
            A reference of this dll is added to the Managed C++ client
          </litem>
          <litem>
            Finally &lt;ProjectName&gt;.dll.config has to be copied from the Client  
            Proxy project to the debug location of the solution  &lt;Solution Name&gt;\Debug
          </litem>
          <litem>
            ProjectName.dll.config file has to be renamed to &lt;Solution Exe Name&gt;.exe.config
          </litem>
        </olist>
        Reference: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1086432&amp;SiteID=1
        <p/>
        Thanks and Regards Romit
      </litem>
      <litem>
        I fixed a bug with the About box in StandardControls, found by Andrew Quartey, and also fixed the bug discovered in FrameWithDialog in the class 
        demonstration.  The modified solution has been uploaded to the college server: 
        <ilink title="here">www.ecs.syr.edu/faculty/fawcett/handouts/CoreTechnologies/WindowsProgramming/code/Controls/</ilink>.
      </litem>
      <litem>
        Pushkar Pathak found a Win32 API function, <note>GetTcpTable</note>, that will make the port sniffer much easier to implement than by parsing netstat output.
        You can find a description in the VS help docs.  By-the-way, it would be interesting to make the client a COM component as well, so that when the
        sniffers are running, they can instantiate the client whenever an alarm (unrecogized process and/or port) occurs.
      </litem>
      <litem>
        Your questions in class prompted me to go back and look at the interface marshaling again.  The solution I passed out is, in fact, only valid 
        within a single process (as used in the demo).  However, you can pass interface pointers through a COM interface and that will work (1) inside a
        single process (2) between processes, and (3) with DCOM, between machines.  I will provide a demo of passing interface pointers between processes
        on Monday.  Note also, that a client can access data held by an inner component like DepAnalComp by CoCreating that object, which gets a new object.
        However, if the inner object is still alive in the outer component, NavComp, and if you have made the data to be shared static, e.g., a static
        dependency table, then the client gets access to the shared data through the new component, since it references the same static data as the 
        component held by outer (wow is this a long sentence!).
      </litem>
-->
    </ulist>
  </section>

<!--  <html><a name="CSE776" /></html><p/>  -->
  <section title="CSE776 - Design Patterns">
  </section>

<!--  <html><a name="CSE784" /></html><p/>  -->
  <section title="CSE784 - software Studio">
  </section>
  <p/>

<!--
  <section title="Other things of Interest">
    <ulist>
      <litem>
        Some of you have been having trouble downloading files from the college server since it 
        converted over to Server 2003.  Here is a 
        <ifile title="File Download ScreenShot">fileDownloads.doc</ifile> that will show you how.
      </litem>
      <litem>
        Access to copies of Microsoft products: ECS is a subscriber to MSDN, and that licenses every student and faculty member of the college 
        to download one copy of many of the Microsoft products, including Visual Studio.  You probably won't have to do anything to gain access.
        Class rosters are entered into a Microsoft database by CIT staff. That should result in you receiving an email from Microsoft 
        providing a password and url, from which you can download one copy of a lot of the MS products.
        If you do not receive an email, take a copy of your mySlice showing that you are registered for classes to the help desk
        on the second floor of link, very near the elevators.  They should be able to help you get signed up.
      </litem>
      <litem>
        A reminder about preparing for interviews: new links are regularly added to the
        <ifile title="graduates page">graduates.xml</ifile>, concerned with helping
        you write better resumes and cover letters, and to help you prepare for the interview itself.
      </litem>
      <litem>
        There are links on the <ifile title="OtherLinks">otherlinks.xml</ifile> page that point to course materials available from MIT
        and Microsoft's Academic Alliance.
      </litem>
    </ulist>
  </section>
  <p/>
-->
  <section title="Seminar Series">
<!--
    <ulist>
      <litem>
        <note>Brown-Bag Seminar:</note> I plan to restart the Brown-Bag seminars this Fall.  We will be continuing with 
        Windows Presentation Foundation (WPF).  We meet in CST 2-120 from 12:30pm to 2:00pm.  You are invited attend, if
        you are willing to prepare presentations on assigned chapters from a book by Adam Nathan.  You will see, in this
        spot, an announcement when we are ready to resume this Fall.
      </litem>
    </ulist>
-->
  </section>

  <section title="Independent Studies">
<!--
    <ulist>
      <litem>
        There are new procedures for independent studies that will go into effect for the Computer Engineering program starting this Spring.  
        Each Independent Study must be approved by the CE program committee, and there are some materials you will have to prepare for that
        review process.  Here is a copy of the <ifile title="procedure">docs/ISProc.doc</ifile>.
      </litem>
    </ulist>
-->
  </section>

  <section title="Books on Reserve">
<!--
    <ulist>
      <litem>
        Summer classes - books on reserve in the Science and Technology Library (Carnegie Hall):<br/>
        <ulist><p/>
          <litem>
            CSE686:
            <ulist>
              <litem>
                Pro Asp.Net 2.0 in C#, MacDonald and Szpuszta, Apress, 2005, ISBN 978-1-59059-496-4
              </litem>
              <litem>
                ASP.Net 2.0 Web Programming with C# 2005, Murach and Boehm, Murach, 2006, ISBN 1-890774-31-6
              </litem>
              <litem>
                Bulletproof Web Design, Dan Cederholm, New Riders, 2006, ISBN 0-321-34693-9
              </litem>
              <litem>
                The Zen of CSS Design, Shea and Holzschlag, New Riders, 2005, ISBN 0-321-30347-4
              </litem>
              <litem>
                DOM Scripting, Jeremy Keith, Apress, 2005, ISBN 978-1-59059-533-6
              </litem>
              <litem>
                The Non-Designer’s Design Book, Robin Williams, Peachpit Press, 2004, ISBN 0-321-19385-7
              </litem>
            </ulist>
          </litem>
          <litem>
            CSE691 - books listed in lecture order:<br/>
            <ulist>
              <litem>
                Java Cookbook, Ian Darwin, O’Reilly, 2004, ISBN 978-0596-00701-0
              </litem>
              <litem>
                Beginning EJB 3 Application Development, Kodali and Wetherbee, Apress, 2006, ISBN 978-1-59059-671-5
              </litem>
              <litem>
                The Java EE5 Tutorial, Jendrok, et. al., Addison-Wesley, 2006, ISBN 0-321-49029-0
              </litem>
              <litem>
                Pro Asp.Net 2.0 in C#, MacDonald and Szpuszta, Apress, 2005, ISBN 978-1-59059-496-4
              </litem>
              <litem>
                ASP.Net 2.0 Web Programming with C# 2005, Murach and Boehm, Murach, 2006, ISBN 1-890774-31-6
              </litem>
              <litem>
                Web Applications with PHP and MySQL, Williams and Lane, O’Reilly, 2004, ISBN 978-0-596-00543-6
              </litem>
              <litem>
                Bulletproof Web Design, Dan Cederholm, New Riders, 2006, ISBN 0-321-34693-9
              </litem>
              <litem>
                DOM Scripting, Jeremy Keith, Apress, 2005, ISBN 978-1-59059-533-6
              </litem>
            </ulist>
          </litem>
          <litem>
            CSE776:<br/>
            <ulist>
              <litem>
                Design Patterns, Elements of Reusable Object-Oriented Software, Erich Gamma, et. al.,
                Addison-Wesley, 1994, ISBN 0-201-63361-2
              </litem>
              <litem>
                Refactoring to Patterns, Joshua Kerievsky, Addison-Wesley, 2005
              </litem>
              <litem>
                Patterns of Enterprise Application Architecture, Martin Fowler, Addison-Wesley, 2003
              </litem>
              <litem>
                Enterprise Integration Patterns, Gregor Hohpe, Bobby Woolf, Addison-Wesley, 2004
              </litem>
              <litem>
                Pattern-Oriented Software Architecture, Schmidt, et. al., Wiley, 2000
              </litem>
              <litem>
                Organizational Patterns of Agile Software Developement, James Coplien and Neil Harrison, Prentice-Hall, 2005
              </litem>
            </ulist>
          </litem>
        </ulist>
      </litem>
      <litem>
        It is probably late for most of you, but I built, for a student in CSE775, a new version of fileInfo module that will work with either
        Unicode or Multi_Byte Character Set defined in your project properties.  You can find the module here:
        <ilink title="New fileInfo module">www.ecs.syr.edu/faculty/fawcett/handouts/CoreTechnologies/Win32SystemProgramming/code/Win32Tools/</ilink>.
      </litem>
    </ulist>
-->
  </section>

<!--  <html><a name="Recruiting" /></html><p/>  -->
  <section title="Recruiting for Internships and Full-Time work">
<!--
    <ulist>
      <hr/>
      <litem>
        Dear Professor:<p/>
        Hope you are having good time with the summer.
        <p/>
        Currently Acme Packet is looking for entry level and junior level  
        software engineers. Acme Packet makes Session Border Control thats  
        used in VoIP networks (more details found on http://www.acmepacket.com/).
        <P/>
        Requirements:<p/>
        Must be strong in C++.  Must have worked with UNIX operating system.
        <br/><br/>
        Knowledge of following will be desired:
        C, Perl, VoIP, SIP, Object Oriented design skills, IPSec, IKE, VxWorks.
        <p/>
        Could you please forward this information among your students.  
        Interested students can send me their resume at abhat@acmepacket.com
        <p/>
        Regards, Avinash Bhat
      </litem>
      <hr/>
      <litem>
        Dear Professor Fawcett:<p/>
        Thank you very much for offering to post the requirements. Please do post the following, 
        it also contains the contact email address.
        <p/>
        Entry Level Programming Positions for CS Graduates<p/>
        The Murthy Law Firm seeks recent computer science graduates to fill two positions in their
        Owings Mills, Maryland (a NW suburb of Baltimore) location. Qualified, interested candidates
        should send their resumes, accompanied by cover letter, to hr@murthy.com with the subject line:
        Software Position – Software Tester OR Software Position – Programmer Analyst. 
        <p/>
        1. Software Tester<br/>
        We are looking for an entry-level graduate for this position. This candidate is expected to have a Masters in Computer Science or Computer Engineering, with a GPA of over 3.6, with an interest in a career in Quality Assurance. He/she should have completed coursework in Visual Studio .NET 2005, SQL Server 2005, and Quality Assurance. No prior corporate experience is required. The candidate will be screened for aptitude and .NET skills. The successful candidate will be expected to design, create and run automated as well as manual test suites for proprietary software.
        <p/>
        2. Programmer Analyst<br/>
        We are looking for an entry-level graduate for this position. This candidate is expected to have a Masters in Computer Science or Computer Engineering, with a GPA of over 3.6, and have completed coursework in Software Design and Development, Visual Basic, and Visual Studio .NET 2005, SQL Server 2005. No prior corporate experience is required. The candidate will be screened for aptitude and .NET skills. The successful candidate will be expected to design and develop programs in VB.NET and perform other daily maintenance tasks.
        <p/>
        Thank you, and Best Regards,
        Subha
      </litem>
      <hr/>
      <litem>
        Hello Prof. Fawcett<p/>
        Hope you are doing well. Life @ Microsoft is exciting (as always). I am mailing you in regards to a few open positions we have in our team. We are looking for SDEs and SDETs with a strong programming background for a new project in Windows Core Networking. Please let me know if you know of students from SU who might be able to fill this position. The position description (below) was written for experienced candidates but we are willing to consider college hires as well. I would be happy to take resumes and set up interview loops for suitable candidates. 
        <p/>
        Thanks very much.
        <p/>
        Sincerely, Ganesh
        <p/>
        Ganesh Srinivasan 
        Program Manager
        Windows Core Networking
        ganesh.srinivasan@microsoft.com
        <p/><hr/>
        Position Description:<p/>

The Windows Core Networking Team is looking for an individual that will help deliver a high performance and scalable network subsystem based on the latest hardware offload technologies. The areas of interest are broad and include effective real-world application throughput, CPU utilization, end-to-end latency, effective use of multi-core and power consumption. A key responsibility will be to partner with PM's to select/define the metrics on which the team will focus to ensure success for the desired markets.

Analyzing and predicting benchmark results will be a primary role. As such this candidate must have or be able to quickly develop a deep understanding of OS performance functionality such as memory accesses and caching, and context switching. In addition to acquiring a thorough understanding of the Windows networking components. In general a successful candidate must be able to quickly grasp new code.

A good understanding of the benchmarks will be needed to acquire, configure, and interpret test results. Knowledge of optimal application behavior will be used to provide guidance to the industry as they modify their applications to take advantage of our system. There will be times of focused work with the IHV’s and their devices. Lab personnel will be available to support this work.

The ideal candidate will have a strong desire to understand complex system behaviors with respect to performance and find ways to identify how individual components of the system affect the overall system performance. As such I am looking for a senior individual with a proven track record of effectively working with many constituents.

This is a unique position within the Core Networking Team. This will be a great opportunity to deliver on the promise that Windows is the most performant and scalable server class operating system.
      </litem>

      <litem>
        Hello Prof. Fawcett:<p/>
        I am mailing you in regards to a few open positions we have in our team. We are looking for SDEs and SDETs
        with a strong programming background for a new project in Windows Core Networking. Please let me know
        if you know of students from SU who might be able to fill this position. The position description (below)
        was written for experienced candidates but we are willing to consider college hires as well.
        I would be happy to take resumes and set up interview loops for suitable candidates. 

Thanks very much.

Sincerely,
Ganesh

Ganesh Srinivasan 
Program Manager
Windows Core Networking
ganesh.srinivasan@microsoft.com

      </litem>
      <litem>
      A former student sent me an email which I show, in part, here (CSE775 - Distributed Objects students note):<p/>
       I hope you are doing good. I am doing well here in Seattle and I am still working for Real Networks.
       My team has an opening for a Software Engineer and I was wondering if you could refer a couple of
       students who are currently looking for jobs.
       <p/>
       The primary requirements for the position are as follows:
       <olist>
         <litem>
           A minimum of 3 – 5 years of C/C++ development experience coupled with strong object
           oriented design skills under a Windows development environment.
         </litem>
         <litem>
           Implementation experience with COM, ActiveX, Windows multimedia and Client Win32 technologies.
         </litem>
         <litem>
           Experience with consumer software applications.
         </litem>
         <litem>
           Experience bringing a project through the full development lifecycle (planning, development, testing, and deployment).
         </litem>
         <litem>
           Relational database design experience, preferably Oracle.
         </litem>
      </olist>
      This is some information about the team:
      We work on the development of Rhapsody client software. The major development is in C++ and a bit of COM. So, 
      expertise in C++ and OOD is a must for this position. <note>The requirements mention 3-5 years of development experience,
      but we don't mind hiring a college graduate who is a fast learner</note>. For more information on Rhapsody, see
      <ilink title="www.rhapsody.com">www.rhapsody.com</ilink>
      <p/>
      If you know any candidates who fit this job description, please send me their resumes. I will forward to the
      hiring manager and he will take it from there.
      </litem>
      <litem>
        If you are interested in the above positions, send me an email with attached resume, and I will forward.  I don't know if
        they hire Summer interns, but if you are interested in that, say so in your email to me and I will forward that also.
      </litem>
      <litem>
        A local company, C-Speed, has internships available for 
        <ifile title="Hardware">../Recruiting/CSpeedHardware.pdf</ifile>, 
        <ifile title="Software">../Recruiting/CSpeedSoftware.pdf</ifile>, and 
        <ifile title="Quality Assurance">../Recruiting/CSpeedQuality.pdf</ifile>.
        If you are interested, email your resume to Dave DiMaggio, ddimaggi@syr.edu, with a statement of interest in the C-Speed internships.
      </litem>
      <litem>
        <note>Recruiting:</note> Don't forget the Career Fair, held in Carrier Dome from 1:00pm to 6:30pm on Wednesday, the 26th of September.
      </litem>
      <litem>
        <note>Recruiting:</note> Microsoft will be at the career fair, represented by Priyaa Nachimuthu and Monty Jain, both from our program.  They will be hosting an information session
        Thursday, starting at 5:00pm.  I don't have a room for that, but ask about it during the Career fair.
      </litem>
      <litem>
        <note>recruiting:</note> Make sure you stop by the VMWare booth at the career fair.  Manas Kelshikar, Gautam Jayaprakash, and Adarsh Jagadeeshwaran, recent graduates of our program, will be at the booth to chat with you and take your resumes.
      </litem>
      <litem>
        <note>Recruiting:</note> Susquehanna International Group will be here for the Career fair, represented by Akshay Menon and Shreya Vyas, both from our program.  They will be hosting an
        information session on Thursday, September 27th to be held in Schine 304C, from 6:00pm to 8:00pm.
        Several other students from our program are currently employeed or doing internships with SIG.  Here is a link to their
        <ifile title="job description">recruiting/SIGJD.doc</ifile>, and <ilink title="website">www.susq.com/</ilink>.
      </litem>
      <litem>
        <note>Recruiting:</note> SIG has also planned to be here on October 10th and 11th, holding another recruiting and informational session.
        More details will be found here when they are available.
        in the Career Center, Schine, Room 231, from 4:00pm-5:30pm.
        This session is open to everyone.  Note that anyone currently taking CSE687 may attend and come late to the second session that day.  Here is a link to their
        <ifile title="session flyer">recruiting/SIG-SyracuseInfo_Session.pdf</ifile>, 
        <ifile title="job description">recruiting/SIGJD.doc</ifile>, and <ilink title="website">www.susq.com/</ilink>.  Note that this session was originally scheduled for April 16th, but was
        cancelled due to travel difficulties caused by Monday's storm.
      </litem>
    </ulist>
-->
  </section>


<!--
  <section title="Employment Opportunities">
    <ulist>
      <litem>
        A local company is looking for a replacement for a full-time employee, who graduated from our MSCE program several years ago.  Here are the particulars:<p/>
        This work is based on C++ and MFC, and the company is looking for someone who understands, and is comfortable with, Windows Programming, 
        and is willing to work on MFC.  The company will interview people who have .NET skills, provided they
        understand multi-threading, thread sychronization, processes, event-based models, and some basic understanding of the Windows Programming model,
        so that they could pick up MFC if they don't already know it. 
        This is an embedded Windows CE project, and the software involves real-time data acquisition and processing. 
        <p/>
        Please see me or Dave DiMaggio if you are interested.
       </litem>
    </ulist>
  </section>
-->

  </visible>  
</courses>
