Hu's Index of Diversity Plus: Computer Science

contact me at arthurhu "at" hufamily.com Top of Index | Home

Computer Science

@@APL

http://wandel.ca/homepage/apl.html
character set



@@ASP.NET

%%Introduction 2.0

http://www.ftponline.com/books/chapters/0321228960.pdf



%%Graphics

Creating Thumbnail Images on the fly with ASP.Net
http://west-wind.com/weblog/posts/283.aspx
z84\clip\2004\12\aspbitmap.htm

Bitmap - see help topic
.JPG, .GIF, .PNG, .EXIF

Create bitmap, use imagefrombitmap, then use graphics
 methods and save to a file


%%Blob reading

http://www.akadia.com/services/dotnet_load_blob.html
Reading BLOBs from SQL Server and 
display it in a Windows Form PictureBox
To convert from memorystream blob to bmp image:
private void PictureFormat(object sender, ConvertEventArgs e)
{
    // e.Value is the original value
    Byte[] img = (Byte[])e.Value;
    MemoryStream ms = new MemoryStream();
    int offset = 78;
    ms.Write(img, offset, img.Length - offset);
    Bitmap bmp = new Bitmap(ms);
    ms.Close();
    // Writes the new value back
    e.Value = bmp;
}


http://www.akadia.com/services/dotnet_read_write_blob.html
Read / Write BLOBs from / to SQL Server using C# .NET DataReader
Command.ExecuteReader method has an overload which will take a
CommandBehavior argument to modify the default behavior of the
DataReader. You can pass CommandBehavior.SequentialAccess to the
ExecuteReader method to modify the default behavior of the DataReader
so that instead of loading rows of data, it will load data
sequentially as it is received. This is ideal for loading BLOBs or
other large data structures. Note that this behavior may differ
depending on your data source.
= SequentialAccess Provides a way for the DataReader to handle rows that
contain columns with large binary values BLOBs. Rather than loading
the entire row, SequentialAccess enables the DataReader to load data
as a stream
= When accessing the data in the BLOB field, use the GetBytes or
GetChars typed accessors of the DataReader, which fill an array with
data.


%%Grid

http://samples.gotdotnet.com/quickstart/aspplus/samples/webforms/ctrlref/webctrl/datagrid/doc_datagrid.aspx

@@ATL Active Template Library

Template library with wizard that makes it simple to make com objects for
web based controls with less resources than MFC

SAMS chapter
http://www.samspublishing.com/library/content.asp?b=Visual_C_PlusPlus&seqNum=231&rl=1

@@Books

%%Dot Net

Best Kept Secrets in .NET by Deborah Kurata ISBN: 1590594266 Apress ©
2004, 240 pages Whether you are an experienced developer or a .NET
novice, this book will help you be more productive, create better
code, and produce superior software with the author's valuable, but
lesser-known features of Visual Studio and the .NET Framework.  
  

%%Game

Beginning C++ Game Programming 
by Michael Dawson ISBN: 1592002056 
Course Technology © 2004, 335 pages       
Offering a thorough and modern introduction to C++, this book has
everything you need in order to learn the fundamentals of C++ and game
programming basics.  


%%Web

%%Web

Creating Web Graphics For Dummies by Bud Smith and Peter Frazier ISBN:
0764525956 John Wiley & Sons © 2003, 312 pages Written for novice Web
designers without graphic design experience, this helpful guide covers
how to create and use basic graphics for Web sites and includes
instructions on creating and placing buttons, banners, animated GIFs,
Flash animations and more.  
 

@@Brainbench

On line certification / testing

http://www.brainbench.com/xml/bb/homepage.xlm

@@C Language

xor 

@@C++

%%books http://www.samspublishing.com/library/library.asp?b=Visual_C_PlusPlus Most of book Visual C++ unleased with MFC, ATL http://www.cplusplus.com/doc/tutorial/tut5-3.html %%const - make reference parameter not change - function that does not change object - return value is const and cannot be changed %%copy constructor //make new object as copy of another //if shallow copy works, you don't need copy constructor Person q("Mickey"); // constructor is used to build q. Person r(p); // copy constructor is used to build r. Person p = q; // copy constructor is used to initialize in declaration. Point::Point(const Point& p) { x = p.x; y = p.y; } %%hello world int main () { cout << " Hello World "; return 0; } Virtual: virtual int area (void) {return (0);} /* default body */ Pure virtual: virtual int area (void) = 0; /(* = 0 replaces body */ declare template GenericType GetMax (GenericType a, GenericType b) { return (a>b?a:b); } call int x,y; GetMax (x,y); template class pair { T values [2]; public: pair (T first, T second) { values[0]=first; values[1]=second; } }; Template specialization template class pair { T value1, value2; public: pair (T first, T second) {value1=first; value2=second;} T module () {return 0;} }; template <> class pair { int value1, value2; public: pair (int first, int second) {value1=first; value2=second;} int module (); }; template <> int pair::module() { return value1%value2; } int main () { pair myints (100,75); pair myfloats (100.0,75.0); cout << myints.module() << '\n'; cout << myfloats.module() << '\n'; return 0; The specialization is part of a template, for that reason we must begin the declaration with template <>. And indeed because it is a specialization for a concrete type, the generic type cannot be used in it and the first angle-brackets <> must appear empty. After the class name we must include the type that is being specialized enclosed between angle-brackets <>. namespace general { int a, b; } In this case, a and b are normal variables integrated within the general namespace. In order to access these variables from outside the namespace we have to use the scope operator ::. For example, to access the previous variables we would have to put: general::a general::b The functionality of namespaces try { // code to be tried throw exception; } catch (type exception) { // code to be executed in case of exception } reinterpret_cast (expression) - binary pointer copy dynamic_cast (expression) - run time static_cast (expression) - to derived type and back const_cast (expression) - gets rid of const @@C# enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};

@@COM

Umbrella name for Microsoft OLE and evolution of VBX capabilities which enable communication at runtime between modules and programs. Also called active-x and OLE.

IUnknown queryinterface semaphore critical section mutex

@@CORBA

OMG's common object broker similar to Microsoft COM defines interfaces between object oriented modules at runtime. More popular outside of Microsoft platforms. There is a specification for working with and between COM.

Invocations may be static or dynamic

%%Book Ackleda Coriolis Object Oriented Frameworks using C++ and Corba Orbacus www.ooc.com/ob %%GIOP General InterORB Protocol specifies interface up to but not including network trasnport, message format. Common Data Representation CDR corrects for byte order %%IDL Interface Definition Language. Bindings have been defined by OMG for C, C++, Java, Cobol, Smalltalk, and Ada. Nonstandard mappings for Eiffel, Objective C. Mappings for Visual Basic are usually based on OMG's COM/CORBA interworking specifications.

@@Design Patterns http://www.stardeveloper.com/articles/display.html?article=2004022804&page=1 Very short Singleton (single class) Class Factory Adapter Proxy Decorator Composite (cObject) Observer MVC Template (like C++) Strategy - choose algorithm method at run time @@DirectX http://www.programmingcentral.com/source/ddraw.html#Introduction Programming introduction tutorial @@DO http://www.isi.com/products/html/do178b.html DO-178B is an internationally recognized standard required for certifying software users in airborne systems and equipment. Typical DO-178B applications include flight management, instrument landing, and radar weather systems. DO-178B has five certification levels that range from most critical for assuring aircraft safety (Level A) to least critical (Level E). For more information on DO-178B, visit the RTCA web site at www.rtca.org. @@DotNet %%abstract class vs interface link Good post by Mangesh Pote Associate Technology Level 2 @ Sapient from linked in Interface is a contract for the client i.e. user of a class. This class has implemented an interface. Abstract class is a class which has defined as well as non-defined members(functions/properties etc). The members which are non-defined should be preceded with 'abstract' keyword and so the class must be declared as abstract. Abstract class is a class that has no direct instances, but whose descendants may have direct instances. Variables can be declared in abstract class, it is not allwed in interface. Interface contains only abstract members. Access modifiers are not allowed for interface members. Bydefault interface members are public virtual. A class may inherit several interfaces but it can inherit only one abstract class. Abstarct class can have constructor, interface cannot have constructor. Abstract class is used as a root in inheritance hierarchy, whereas interface can be mixed up with hierarchy at any place. %%free training http://www.dotnetvideos.net mr bool @@Extreme Programming A variant of object oriented programming that advocates continuous change, daily builds, two-head programming http://www.cutter.com/ead/ead0002.html z50\clipim\20001\08\10\xp1.htm EXTREME PROGRAMMING Contents Extreme Programming XP -- The Basics ·The Project ·Practices ·Values and Principles ·Managing XP The Cost of Change Refactoring Netobjectives link http://www.netobjectives.com/xp/rs_main.htm @@Games C# games, tic tac toe, chess, missle command http://www.c-sharpcorner.com/Games.asp @@General REferences Good tech news section http://www.techrepublic.com @@Ironspeed http://www.ironspeed.com/pdf/IronSpeedWhitePaper-AutomaticSQLGeneration.pdf">   Automatic SQL Generation for Database-Connected Controls
  @@JAVA %%Graphics [[Blue Marble Graphics [[JCHART www.sitraka.com Server: http://www.sitraka.com/software/jclass/jclassserverchart.html Client: http://www.sitraka.com/software/jclass/jclasschart.html JClass 5.0 and JClass Chart 3D New to JClass 5.0 is JClass Chart 3D, the premier three-dimensional Java charting component. Craft stunning, colourful data displays along three axes. Use map and pick routines to build in user interactivity. JClass Chart 3D automatically performs all the rotation, scaling, annotation, and perspective calculations. JClass ServerChart Designed from the ground up for server-side deployment, JClass ServerChart makes the powerful data presentations you've come to expect from JClass Chart accessible to your entire network. JClass ServerChart is ideal in environments where you're unsure of client-side configuration or processing power - all code execution occurs on the server. JClass Price List: Server chart $4000 for bytecode $8000 for source Chart Bytecode (Includes 1 year GSS) 5.0 $1299.00 Chart Source code (Includes 1 year GSS) 5.0 $3500.00 Enterprise Suite Bytecode (Includes 1 year GSS) 5.0 $3100.00 [[Hello public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } } [[LOOX http://www.loox.com/ French demo - maps, cockpit instruments air traffic control applet Good for Java applets, no provision for server side charts JLOOXGis - Mapping for Java [[GENLOGIC http://www.genlogic.com/ The Glg Toolkit can be used for developing Stand-Alone Applications (using C/C++, Java or ActiveX), or for Web Application Development (using Java, Plug-In or ActiveX). The Glg Graphics Builder is used as a drawing tool to create dynamic drawings for all Glg deployment options. The following are the 3 editions of the Glg Toolkit, which differ in the functionality of the Graphics Builder: Demo includes JAVA GIS server This demo uses Global Geomatics's GIS Server and OGDI Java adapters Global Geomatics [[GLOBAL GEOMATICS web based GIS data server http://www.globalgeo.com/doc/user_guide/ogdij/default.asp?intro.html [[NORTH WOODS http://www.nwoods.com/ North Woods software Client and Server based graphics that can be edited. [[CORDA POPCHART http://www.corda.com/ Interactive Data Driven Graphics London Based CORDA’s family of PopChart tools are Java based and run with/on all web application servers. CORDA has products for both the server and the desktop. Brocure: http://www.corda.com/products/PopChart.pdf supports Flash, GIF, PNG, WBMP SVG Scalable Vector Graphics PopChart Image Server Pro http server for high traffic PopChart Live - 42k Java applet [[INFRAGISTICS POWERCHART http://www.infragistics.com/ CD-Key: $695 10-Developer: 5,895 For thin clients, PowerChart can remain on the server and dynamically render jpeg format charts to HTML pages [[ESRI GIS and Mapping Software www.esri.com Makes ArcGIS, Arcview and ArcInfo @@Javascript Tutorial http://www.w3schools.com/js/ %%print from: So, You Want to Print with JavaScript, Huh? by Joe Burns, Ph.D. \clip\2004\12\PrintJavaScript.htm IE5.0 feature: Click to Print This Page print off of an image: trigger off a button:

print on loading page onLoad="window.print()" java script window.print() alert(message) ans = prompt ("enter a number") rollover
ARROW function newWindow() catwindow = window.open ("images/pixel2.jpg", "catWin", "width=330, height = 250") Pixel @@Language History http://www.levenez.com/lang/history.html chart shows of languages sprung from others

@@UML: Unified Modeling Language

OMG has made a standard of UML to interchange models for software development. It is used with CORBA

There are models for

@@Memory Mapped Files http://premium.microsoft.com/msdn/library/techart/msdn_ manamemo.htm @@MFC study points pointer to document cview user interface might need to be updated associate view with document manage dialog box pop up modal dif form view and dialog box updatedata ddx ddv assert verify macros @@Mil MIL-STD-498 http://www.pogner.demon.co.uk/mil_498/ Military standard for software development, testing and documentation @@MSDN
MSDN Home Page @@OLAP On Line Analytical Processing OLAP INTRODUCTION http://perso.wanadoo.fr/bernard.lupin/english/ @@OMG Object Management Group The people who promote CORBA and UML.

OMG Home Page
Specifications
@@ORACLE DATABASE Buzzwords BLOB - big binary object Cartridge - extra cost add-in like video, images Exception - PL/SQL error handling Function - stored procedure that returns value JDBC - odbc class for java Package - bunch of stored procedures, lame class Parameter - PL/SQL in, out, in out PL/SQL - lame structured language for stored procs Object - make table work sorta like an object SQLJ - #SQL imbedded into java, less code, ez to check Trigger - code when table modified %%Books [[Oracle 8 Bible Carol McCullough-Dieter $49.99 OK survey, has commands in appendix - very large databases - cartridge for geometrical data - support for objects, PL/SQL supports this.that - objects have methods, constructor - precompiler for imbedding SQL into C, COBOL, etc over ODBC [[Oracle 8i & Java from Client/Server to E-Commerce Bonazzi Stokol 49.99 objects are not hidden, no polymorphism or inheritance, can't derive one object from another or pass abstract class Don't use objects if they will change, you will lose all object IDs use relational tables or if you plan to use sql server Inheritance heirarchy-one table with all attributes, one for each concrete class, one for each common part @@Ray Tracing http://www.codeproject.com/csharp/Simple_Ray_Tracing_in_C_.asp C# ASP Ray Tracing example http://www.codeproject.com/csharp/Ray_Tracing_and_mapping.asp ray tracing with texture mapping http://www.codeproject.com/csharp/Sphere_mapping.asp sphere mapping http://www.codeproject.com/aspnet/3D_Surfaces_in_ASPNET.asp 3D surface plot for ASP @@RPC Unix remote procecure call http://www.cs.cf.ac.uk/Dave/C/node33.html#SECTION003310000000000000000 # What Is RPC # How RPC Works # RPC Application Development http://www.cisco.com/univercd/cc/td/doc/product/software/ioss390/ios390rp/rprdesc.htm Using Remote Procedure calls rpcgen @@RPG IBM language for forms based input / output Sys/3 as400 http://www.answers.com/topic/rpg-programming-language C to F conversion in RPG A DSPSIZ(24 80 *DS3) A R FHEITR A CA03(03 'End') A 6 18'Enter Fahrenheit:' A FRHEIT 3Y 0B 6 42DSPATR(PC) A EDTCDE(J) A 9 18'Celsius is:' A CGRADE 3Y 0O 9 42DSPATR(PC) A EDTCDE(J) A 23 8'F3=End' FFheitd C F E Workstn C *IN03 DoWEq *Off C ExFmt Fheitr C Eval CGrade = 0 C Eval CGrade = ((Frheit-32)*5)/9 C* ExFmt Fheitr C EndDo C Seton LR @@PHP Server side scripting language often used with MySql. Like ASP or JSP Introduction: http://www.keithjbrown.co.uk/vworks/php/php_p1.php variables start with $ surround php commands concatenation . $secondvar = $firstvar . " World"; array associative array $cities = array( 'france' => 'paris', 'germany' => 'berlin', 'uk' => 'london' ); ?> echo $cities['france'] . " " . $cities['germany'] . " " . $cities['uk']; Big Webmaster PHP fundamentals http://www.higherpass.com/PHP/content.php?id=5 include: include ("config.php"); 6 wk $100 online PHP course http://www.hwg.org/services/classes/phpclass.html PHP Manual http://us3.php.net/manual/en/index.pph @@PMP http://www.pmi.org/certification/ PMP is certification for Project Management @@Python REFERENCE MANUAL http://docs.python.org/ref/ref.html TUTORIAL http://docs.python.org/tut/tut.html Guido van Rossum Fred L. Drake, Jr., editor PythonLabs Email: docs@python.org DOWNLOAD SOFTWARE http://www.python.org/download/ PYTHON 2.0 QUICK REFERENCE MANUAL http://www.brunningonline.net/simon/python/quick-ref2_0.html @@Salary 2003 Survey: Degree type Average salary High-school diploma $83,182 2-year degree $71,633 BA $70,360 BS $68,875 BSCS $84,136 BSEE* $78,500 MA* $56,250 MBA $98,200 MSCS $77,745 MSEE* $120,000 Other MS $77,143 Ph.D.* $109,000 * Small Sample Language used Average salary C# $98,813 Visual Basic .NET $72,959 Visual Basic 4.0, 5.0, or 6.0 $72,461 Visual C++ 6.0 $75,500 Microsoft Certified Database Administrator (MCDBA) $80,200 Microsoft Certified Professional (MCP) $76,722 Microsoft Certified Solution Developer (MCSD) $86,414 Microsoft Certified Systems Engineer (MCSE) $77,438 Microsoft Certified Trainer (MCT)* $80,000 Experience Less than 1 year* $35,133 1-2 years* $43,000 2-4 years $51,265 4-6 years $72,356 6-8 years $71,286 8-10 years $83,515 10-12 years $84,608 12+ years $90,932 Manager: Engineer/scientist* $67,000 Independent consultant/contractor $83,400 IT manager $82,750 Other manager/supervisor $112,040 Programmer/developer for company (internal software development) $68,354 Programmer/developer for software company (ISV or tools vendor) $67,824 Senior business management (CEO, COO, CFO, VP)* $101,000 Senior technical management (CIO/CTO/VP)* $160,000 Software architect $86,942 Systems analyst $79,167 *Small sample size 24- $45,200 ***** 25-29 $64,692 ****** 30-34 $71,221 ******* 35-39 $74,930 ******* 40-44 $84,139 ******** 45-49 $90,125 ********* --MAX 50-54 $76,714 ******** 55-59 $85,286 ********* Pac Northwest $73,700 California $79,778 Texas $83,000 New York $84,357 Northeast $82,067 South $72,109 2003 Salary Survey: How Do Your Earnings Stack Up? Our salary survey reveals that although developers are earning more, job stability remains uncertain. by Susannah Pfalzer Visual Studio June 2003 Issue Average salary only of sample of magazine readers. @@Silverlight Line Chart in Silverlight by Dinesh Beniwal. Mar 04, 2009. This article shows how to create a line chart in Silverlight 2.0 using Silverlight Tooklit. http://www.longhorncorner.com/UploadFile/dbeniwal321/LineChartInSilverlight03032009233504PM/LineChartInSilverlight.aspx @@SQL %%Interview Questions Here are a series of interview questions http://blog.sqlauthority.com/2008/09/20/sql-server-2008-interview-questions-and-answers-complete-list-download/ http://www.geocities.com/xtremetesting/SQLinterviewQuestions.html %%Inner Join from http://www.geocities.com/xtremetesting/SQLinte rviewQuestions.html 4. Q. What kinds of joins do you know? Give examples. A. We have self join, outer joint (LEFT, RIGHT), , cross-join ( Cartesian product n*m rows returned) Exp: outer joint SELECT Employee.Name, Department. DeptName FROM Employee, Department WHERE Employee.Employee_ID = Department.Employee_ID; cross-join SELECT * FROM table1, table2; self join SELECT e1.name | |’ ‘ | | e2.ename FROM emp e1, emp e2 WHERE e1. emp_no = e2.emp_no; The following summarizes the result of the join operations: The result of T1 INNER JOIN T2 consists of their paired rows where the join-condition is true. The result of T1 LEFT OUTER JOIN T2 consists of their paired rows where the join-condition is true and, for each unpaired row of T1, the concatenation of that row with the null row of T2. All columns derived from T2 allow null values. The result of T1 RIGHT OUTER JOIN T2 consists of their paired rows where the join-condition is true and, for each unpaired row of T2, the concatenation of that row with the null row of T1. All columns derived from T1 allow null values. The result of T1 FULL OUTER JOIN T2 consists of their paired rows and, for each unpaired row of T2, the concatenation of that row with the null row of T1 and, for each unpaired row of T1, the concatenation of that row with the null row of T2. All columns derived from T1 and T2 allow null values. %%Join JOIN TWO TABLES SELECT lastname, firstname, tag, vehicles.class FROM drivers, vehicles WHERE drivers.location = vehicles.location AND drivers.class = vehicles.class Notice that in this example we needed to specify the source table for the class attribute in the SELECT clause. This is due to the fact that class is unambiguous – it appears in both tables and we need to specify which table’s column should be included in the query results. In this case it does not make a difference as the columns are identical and they are joined using an equijoin. However, if the columns contained different data this distinction would be critical. Here are the results of this query: lastname FirstName Tag Class -------- --------- --- ----- Baker Roland H122JM Car Smythe Michael D824HA Truck Jacobs Abraham J291QR Car JOIN MORE THAN TWO TABLES http://databases.about.com/od/sql/a/multiple_joins.htm could bring a third table into your query by extending the JOIN statement as follows: SELECT lastname, firstname, tag, open_weekends FROM drivers, vehicles, locations WHERE drivers.location = vehicles.location AND vehicles.location = locations.location AND locations.open_weekends = 'Yes' lastname firstname tag open_weekends -------- --------- --- ------------- Baker Roland H122JM yes Jacobs Abraham J291QR yes Jacobs Abraham L990MT yes This powerful extension to the basic SQL JOIN statement allows you to combine data in a complex manner. @@SQLJ Imbed sql into java with preprocessor to reduce lines of code, error checking #sql {select name into :customername from customer where id = :customerid}; @@SQL Server ODBC - generic interface dblib - native interface DBLIB - com interface @@SVG Scalable Vector Graphics Vector graphics extension to XML for web vector based graphics W3C spec http://www.w3.org/TR/SVG/ z54\clipim\2001\12\svg.pdf from http://www.techrepublic.com/utils/sidebar.jhtml?id=r00820011112sch01.htm&index=1 Listing A @@Visual Studio %%Template Introduction to Templates in Visual Studio 2008 By Sateesh Kumar March 04, 2009 http://www.c-sharpcorner.com/UploadFile/satisharveti/VSTemplates03042009020723AM/VSTemplates.aspx Visual Studio provides two kinds of templates: •Project Template: This template will allows us to create a new project based on the exported project. This template will be accessible from New Project dialog window. •Item Template: This template will allows us to add our exported item as a part of their project. @@VXD http://www.tgv.com/customer_support/white_papers/win_vxd.html VxD Questions and Answers What is VxD? A VxD, or Virtual Device Driver, is a 32-bit multiplexing device driver that manages data exchanges between Windows applications and system services. It runs in ring 0 so it can execute any instruction, and it is more powerful than a DLL. You can use it to call a windows 3.0 or Win95 process from DOS @@Windows Mobile %%Programming How to add windows mobile 6 SDK to visual studio projects: http://msdn.microsoft.com/en-us/windowsmobile/bb975138.aspx Get the sdk here: http://www.microsoft.com/downloads/details.aspx?familyid=06111A3A-A651-4745-88EF-3D48091A390B&displaylang=en @@WCF Windows Communication Foundation %%Tutorial WCF Basics By Diptimaya Patra March 03, 2009 This simple tutorial shows how to get started with WCF. http://www.c-sharpcorner.com/UploadFile/dpatra/103032009070151AM/1.aspx @@Win32 %%mutex MUTEX WORK ACROSS PROCESS, TIMEOUT, NOTIFY ON ABANDON CRITICAL SECTION IS FASTER http://www.microsoft.com/msj/archive/S1DA0.aspx - mutexes can synchronize threads across process boundaries, you can wait on a mutex by specifying a timeout value, and mutexes notify a thread when they are abandoned. - critical sections are faster. Mutex objects are kernel objects and as such the functions that manipulate them (WaitForSingleObject and ReleaseMutex) require the transition from user mode to kernel mode. %%Semaphore Win32 supports two types of semaphores: mutual exclusion (mutex) and counting. A semaphore is a resource that contains an integer value. Semaphores allow synchronization of processes by testing and setting the integer value in a single atomic operation. A semaphore is similar to a mutext, except that it involves a state of signaled or not signaled. A counted semaphore is a semaphore with a signal count. Typically this involves a semaphore and a count. So if you have a limited resource of say five items, you allow threads to get exclusive control of the item for upto 5 threads. The 6th thread will block waiting to get access. When one of the other users of the resource releases it, then the waiting thread will get it. a binary semaphore is better known as a mutex @@Winforms WinForms Data Validation Controls have validate event the CausesValidation property set to true to another control that has the CausesValidation property set to true, e.g. from a TextBox control to the OK button. The Validating event gives the handler the chance to cancel the move of focus by setting the CancelEventArgs.Cancel property to true. @@XML http://www.perfectxml.com/standards.asp SOAP Implementations as Frameworks SOAP, by itself, is about as useful as a paper envelope. That is, anything can be put inside, with no rules guiding the process. There have been several initiatives to formalize certain parts of the SOAP specification to provide interoperability and reliable messaging. BizTalk Framework Web Services Description Language (WSDL) Universal Description, Discovery, and Integration (UDDI) Web Services Interoperability (WS-I)