update: 2/7/2011
@@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
%%class
from http://www.cplusplus.com/doc/tutorial/classes/
method body in class declartion is in-line
other methods declared outside of body
class::method
// classes example
#include
using namespace std;
class CRectangle {
//default private:
int x, y;
public:
void set_values (int,int);
// inside will be an inline function
// you can define method inside the class def
int area () {return (x*y);}
protected:
//protected members are accessible from members of their same class and
//from their friends, but also from members of their derived classes.
};
// use :: to define class method outside of class definition
void CRectangle::set_values (int a, int b) {
x = a;
y = b;
}
int main () {
CRectangle rect;
rect.set_values (3,4);
cout << "area: " << rect.area();
return 0;
}
%%const
- make reference parameter not change
- function that does not change object
- return value is const and cannot be changed
%%constructor
see destructor
constructor function must have the same name as the class, and cannot
have any return type; not even void.
default constructor has no arguments, unless you define any
constructor, in which case the default is not provided.
also default: the copy constructor, the copy assignment operator, and
the default destructor.
CRectangle::CRectangle (int a, int b) {
width = a;
height = b;
}
%%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;
}
%%destructor
The destructor must have the same name as the class, but preceded with
a tilde sign (~), no value.
%%hello world
int main ()
{
cout << " Hello World ";
return 0;
}
%%overload operator
type operator sign (parameters) { /*...*/ }
sample: from http://www.cplusplus.com/doc/tutorial/classes2/
.type. CVector CVector::operator .sign. + (parameters)
CVector CVector::operator+ (CVector param) {
CVector temp;
temp.x = x + param.x;
temp.y = y + param.y;
return (temp);
}
%%static members
static data-member must be initialized outside the class, in the
global scope
int CDummy::n=0;
function can only refer to static data, in no case to non-static
members of the class, as well as they do not allow the use of the
keyword this
%%template
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 <>.
%%virtual
Virtual: virtual int area (void) {return (0);} /* default body */
Pure virtual: virtual int area (void) = 0; /(* = 0 replaces body */
%%namespace
Allows you to segregate global variables into named spaces
to avoid conflict
http://www.cplusplus.com/doc/tutorial/namespaces/
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#
C++ - like language with java-like and VB-like features added.
Advantages
- Conditionals require a boolean so you will get an error if
you confuse (a = 2) assignment instead of (a == 2) equivalence test
- Always use . for data members. No confusion between -> and .
- Can't cause confusion by re-using same name within inner blocks
- Automatic garbage collection without explicit free
- Forms programming interface for Winforms and ASP.NET webforms
is stolen from Visual Basic
- Foreach stolen from Visual Basic
- Strings stolen from Basic and Visual Basic
- Many CLR .NET classes stolen from Java
%%block expression
http://msdn.microsoft.com/en-us/library/system.linq.expressions.blockexpression.aspx
// Add the following directive to your file:
// using System.Linq.Expressions;
// The block expression allows for executing several expressions sequentually.
// When the block expression is executed,
// it returns the value of the last expression in the sequence.
BlockExpression blockExpr = Expression.Block(
Expression.Call(
null,
typeof(Console).GetMethod("Write", new Type[] { typeof(String) }),
Expression.Constant("Hello ")
),
Expression.Call(
null,
typeof(Console).GetMethod("WriteLine", new Type[] { typeof(String) }),
Expression.Constant("World!")
),
Expression.Constant(42)
);
Console.WriteLine("The result of executing the expression tree:");
// The following statement first creates an expression tree,
// then compiles it, and then executes it.
var result = Expression.Lambda>(blockExpr).Compile()();
// Print out the expressions from the block expression.
Console.WriteLine("The expressions from the block expression:");
foreach (var expr in blockExpr.Expressions)
Console.WriteLine(expr.ToString());
// Print out the result of the tree execution.
Console.WriteLine("The return value of the block expression:");
Console.WriteLine(result);
// This code example produces the following output:
//
// The result of executing the expression tree:
// Hello World!
// The expressions from the block expression:
// Write("Hello ")
// WriteLine("World!")
// 42
// The return value of the block expression:
// 42
%%Dynamic Language Runtime Overview
http://msdn.microsoft.com/en-us/library/dd233052.aspx
%%enum
enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};
%%expression tree
http://msdn.microsoft.com/en-us/library/bb397951.aspx
Expression trees represent code in a tree-like data structure, where
each node is an expression, for example, a method call or a binary
operation such as x %lt y.
You can compile and run code represented by expression trees. This
enables dynamic modification of executable code, the execution of LINQ
queries in various databases, and the creation of dynamic queries.
In .NET Framework 4, the expression trees API also supports
assignments and control flow expressions such as loops, conditional
blocks, and try-catch blocks. By using the API, you can create
expression trees that are more complex than those that can be created
from lambda expressions by the C# and Visual Basic compilers. The
following example demonstrates how to create an expression tree that
calculates the factorial of a number.
// Creating a parameter expression.
ParameterExpression value = Expression.Parameter(typeof(int), "value");
// Creating an expression to hold a local variable.
ParameterExpression result = Expression.Parameter(typeof(int), "result");
// Creating a label to jump to from a loop.
LabelTarget label = Expression.Label(typeof(int));
// Creating a method body.
BlockExpression block = Expression.Block(
// Adding a local variable.
new[] { result },
// Assigning a constant to a local variable: result = 1
Expression.Assign(result, Expression.Constant(1)),
// Adding a loop.
Expression.Loop(
// Adding a conditional block into the loop.
Expression.IfThenElse(
// Condition: value > 1
Expression.GreaterThan(value, Expression.Constant(1)),
// If true: result *= value --
Expression.MultiplyAssign(result,
Expression.PostDecrementAssign(value)),
// If false, exit the loop and go to the label.
Expression.Break(label, result)
),
// Label to jump to.
label
)
);
// Compile and execute an expression tree.
int factorial = Expression.Lambda>(block, value).Compile()(5);
Console.WriteLine(factorial);
// Prints 120
%%lamda expression
del myDelegate = x => x * x;
int j = myDelegate(5); //j = 25
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
int oddNumbers = numbers.Count(n => n % 2 == 1);
Console.WriteLine ("count is {0}", oddNumbers);
%%linq
linqpad is a free tool
http://www.linqpad.net/
@@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
%%xml
from http://www.developer.com/net/net/article.php/1482531
using System;
using System.IO;
using System.Xml;
public class Sample{
public static void Main()
{
XmlTextWriter writer = new XmlTextWriter("titles.xml", null);
//Write the root element
writer.WriteStartElement("items"); //Write sub-elements
writer.WriteElementString("title", "Unreal Tournament 2003");
writer.WriteElementString("title", "CC: Renegade");
writer.WriteElementString("title", "Dr. Seuss's ABC"); // end the root element
writer.WriteEndElement(); //Write the XML to file and close the writer
writer.Close();
}
compile and execute this listing, you will create
an XML file called titles.xml. This XML file will contain the following:
<items>
<title>Unreal Tournament 2003 </title>
<title>C&CC: Renegade</title>
<title>Dr. Seuss's ABC</title>
</items>
@@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
@@Graphics
See Computer Graphics
@@Html
Cheat Sheet http://www.webmonkey.com/2010/02/html_cheatsheet/
Contents
- Basic Tags
- Body Attributes
- Text Tags
- Links
- Formatting
- Tables
- Table Attributes
- Frames
- Frames Attributes
- Forms
Basic Tags
<html></html>
Creates an HTML document
<head></head>
Sets off the title and other information that isn’t displayed on the web page itself
<body></body>
Sets off the visible portion of the document
Body Attributes
<body bgcolor="pink">
Sets the background color, using name or hex value
<body text="black">
Sets the text color, using name or hex value
<body link="blue">
Sets the color of links, using name or hex value
<body vlink="#ff0000">
Sets the color of followed links, using name or hex value
<body alink="#00ff00">
Sets the color of links on click
<body ondragstart="return false" onselectstart="return false">
Disallows text selection with the mouse and keyboard
Text Tags
<pre></pre>
Creates preformatted text
<hl></hl>
Creates the largest headline
<h6></h6>
Creates the smallest headline
<b></b>
Creates bold text
<i></i>
Creates italic text
<tt></tt>
Creates teletype, or typewriter-style text
<cite></cite>
Creates a citation, usually italic
<em></em>
Emphasizes a word (with italic or bold)
<strong></strong>
Emphasizes a word (with italic or bold)
<font size="3"></font>
Sets size of font, from 1 to 7
<font color="green"></font>
Sets font color, using name or hex value
Links
<a href="URL"></a>
Creates a hyperlink
<a href="mailto:EMAIL"></a>
Creates a mailto link
<a href="URL"><img src="URL"> </a> Creates an image/link
<a name="NAME"></a>
Creates a target location within a document
<a href="#NAME"></a>
Links to that target location from elsewhere in the document
Formatting
<p></p>
Creates a new paragraph
<p align="left">
Aligns a paragraph to the left (default), right, or center.
<br>
Inserts a line break
<blockquote></blockquote>
Indents text from both sides
<dl></dl>
Creates a definition list
<dt>
Precedes each definition term
<dd>
Precedes each definition
<ol></ol>
Creates a numbered list
<ul></ul>
Creates a bulleted list
<li></li>
Precedes each list item, and adds a number or symbol depending upon the type of list selected
<div align="left">
A generic tag used to format large blocks of HTML, also used for stylesheets
<img src="name">
Adds an image
<img src="name" align="left">
Aligns an image: left, right, center; bottom, top, middle
<img src="name" border="1">
Sets size of border around an image
<hr />
Inserts a horizontal rule
<hr size="3" />
Sets size (height) of rule
<hr width="80%" />
Sets width of rule, in percentage or absolute value
<hr noshade />
Creates a rule without a shadow
Tables
<table></table>
Creates a table
<tr></tr>
Sets off each row in a table
<td></td>
Sets off each cell in a row
<th></th>
Sets off the table header (a normal cell with bold, centered text)
Table Attributes
<table border="1">
Sets width of border around table cells
<table cellspacing="1">
Sets amount of space between table cells
<table cellpadding="1">
Sets amount of space between a cell’s border and its contents
<table width="500" or "80%">
Sets width of table, in pixels or as a percentage of document width
<tr align="left"> or <td align="left">
Sets alignment for cell(s) (left, center, or right)
<tr valign="top"> or <td valign="top">
Sets vertical alignment for cell(s) (top, middle, or bottom)
<td colspan="2">
Sets number of columns a cell should span (default=1)
<td rowspan="4">
Sets number of rows a cell should span (default=1)
<td nowrap>
Prevents the lines within a cell from being broken to fit
Frames
<frameset></frameset>
Replaces the <body> tag in a frames document; can also be nested in other framesets
<frameset rows="value,value">
Defines the rows within a frameset, using number in pixels, or percentage of width
<frameset cols="value,value">
Defines the columns within a frameset, using number in pixels, or percentage of width
<frame>
Defines a single frame — or region — within a frameset
<noframes></noframes>
Defines what will appear on browsers that don’t support frames
Frames Attributes
<frame src="URL">
Specifies which HTML document should be displayed
<frame name="name">
Names the frame, or region, so it may be targeted by other frames
<frame marginwidth="value">
Defines the left and right margins for the frame; must be equal to or greater
than 1
<frame marginheight="value">
Defines the top and bottom margins for the frame; must be equal to or greater
than 1
<frame scrolling="value">
Sets whether the frame has a scrollbar; value may equal “yes,” “no,” or “auto.” The default, as in ordinary documents, is auto.
<frame noresize="noresize">
Prevents the user from resizing a frame
Forms
For functional forms, you’ll have to run a script. The HTML just creates the appearance of a form.
<form></form>
Creates all forms
<select multiple name="NAME" size=?></select>
Creates a scrolling menu. Size sets the number of menu items visible before you need to scroll.
<option>
Sets off each menu item
<select name="NAME"></select>
Creates a pulldown menu
<option>
Sets off each menu item
<textarea name="NAME" cols=40 rows=8></textarea name>
Creates a text box area. Columns set the width; rows set the height.
<input type="checkbox" name="NAME">
Creates a checkbox. Text follows tag.
<input type="radio" name="NAME" value="x">
Creates a radio button. Text follows tag
<input type="text" name="NAME" size=20>
Creates a one-line text area. Size sets length, in characters.
<input type="submit" value="NAME">
Creates a Submit button
<button type="submit">Submit</button>
Creates an actual button that is clicked
<input type="image" border=0 name="NAME" src="name.gif">
Creates a Submit button using an image
<input type="reset">
Creates a Reset button
@@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.
[[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
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
- use-case diagram
- behavior diagrams / state charts
- activity diagrams (replaces data-flow)
- interaction diagrams
- implementation diagrams - component and actitity.
@@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
@@powershell
Tutorials
http://www.powershellpro.com/powershell-tutorial-introduction/
Here is the link to lesson 1:
http://www.powershellpro.com/powershell-tutorial-introduction/tutorial-windows-powershell-console/
@@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.
@@Scrum
http://www.sdtimes.com/content/SDTimesPDFEdition.aspx?File=sdtimes252.pdf
The Scrum Alliance lists four core principles based on 2001’s Agile
Manifesto:
• Individuals and interactions over processes and tools
• Completed functionality over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan
The ceremonies are:
• Sprint planning: The team meets with the product owner to prioritize
the work to be delivered during a sprint
• Daily scrum: The team meets each day to share struggles and progress
• Sprint reviews: The team demonstrates to the product owner what it
has completed during the sprint
• Sprint retrospectives: The team looks for ways to improve the
product and process
The artifacts are the product backlog, the sprint backlog and the
burndown chart. The product backlog is a list of items that can be
added or deleted from the project at any time. The backlog is
prioritized, with highest-priority items worked on first. The
lowerpriority items are loosely defined but are revisited and refined
as they work their way up the priority list.
Section I: Are you doing iterative development?
• Iterations must be time-boxed to less than four weeks
• Software features must be tested and working at the end of each
iteration
• The iteration must start before the specification is complete
Section II: Are you doing Scrum?
• You know who the product owner is
• There is a product backlog prioritized by business value
• The product backlog has estimates created by the team
• The team generates burn-down charts and knows its velocity
• The are no project managers (or anyone else) disrupting the work of
the team
—David Rubinstein
@@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
%%Delete / Truncate / Drop
Delete = deletes WHERE records
Truncate = delete all records, but keep empty table
Drop = destroy table, breaking any references to table
http://beginner-sql-tutorial.com/sql-delete-statement.htm
%%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
%%API
ODBC - generic interface
dblib - native interface
DBLIB - com interface
ADO - precursor to ado.net
ADO.NET - .net api
%%import
source: http://www.mssqltips.com/tip.asp?tip=1207
BCP
This is one of the options that is mostly widely used. One reason for
this is that it has been around for awhile, so DBAs have come quite
familiar with this command. This command allows you to both import
and export data, but is primarily used for text data formats. In
addition, this command is generally run from a Windows command prompt,
but could also be called from a stored procedure by using xp_cmdshell
or called from a DTS or SSIS package.
Here is a simple command for importing data from file
C:\ImportData.txt into table dbo.ImportTest.
bcp dbo.ImportTest in 'C:\ImportData.txt' -T -SserverName\instanceName
For more information about bcp click here.
BULK INSERT This command is a T-SQL command that allows you to import
data directly from within SQL Server by using T-SQL. This command
imports data from file C:\ImportData.txt into table dbo.ImportTest.
BULK INSERT dbo.ImportTest
FROM 'C:\ImportData.txt'
WITH ( FIELDTERMINATOR =',', FIRSTROW = 2 )
For more information about BULK INSERT click here.
OPENROWSET This command is a T-SQL command that allows you to query
data from other data sources directly from within SQL Server. By
using this command along with an INSERT INTO command we can load data
from the specified data source into a SQL Server table.
This command will pull in all data from worksheet [Sheet1$]. By using
the INSERT INTO command you can insert the query results into table
dbo.ImportTest.
INSERT INTO dbo.ImportTest
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\ImportData.xls', [Sheet1$])
Here is another example where data is pulled from worksheet [Sheet1$] by using a SELECT * FROM command. Again, by using the INSERT INTO command you can insert the query results into table dbo.ImportTest. The query can be any valid SQL query, so you can filter the columns and rows by using this option.
INSERT INTO dbo.ImportTest
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\ImportData.xls', 'SELECT * FROM [Sheet1$]')
For more information about OPENROWSET click here.
OPENDATASOURCE This command is a T-SQL command that allows you to
query data from other data sources directly from within SQL Server.
This is similar to the OPENROWSET command.
INSERT INTO dbo.ImportTest
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\ImportData.xls;Extended Properties=Excel 8.0')...[Sheet1$]
For more information about OPENDATASOURCE click here.
OPENQUERY Another option is OPENQUERY. This is another command that
allows you to issue a T-SQL command to select data and again with the
INSERT INTO option we can load data into our table. There are two
steps with this process, first a linked server is setup and then
second the query is issued using the OPENQUERY command. This option
allow you to filter the columns and rows by the query that is issued
against your linked data source.
EXEC sp_addlinkedserver 'ImportData',
'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0',
'C:\ImportData.xls',
NULL,
'Excel 8.0'
GO
INSERT INTO dbo.ImportTest
SELECT *
FROM OPENQUERY(ImportData, 'SELECT * FROM [Sheet1$]')
For more information about OPENQUERY click here.
Linked Servers
Here is yet another option with setting up a linked server and then issuing a straight SQL statement against the linked server. This again has two steps, first the linked server is setup and secondly a SQL command is issued against the linked data source.
EXEC sp_addlinkedserver 'ImportData',
'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0',
'C:\ImportData.xls',
NULL,
'Excel 8.0'
GO
INSERT INTO dbo.ImportTest
SELECT * FROM ImportData...Sheet1$
For
%%remote data base
LINKED DATA BASE
q: I'm trying to copy data from one table on a remote database to my
local database. I'm using sql 2005 management studio express.
I'm looking for an example that uses t-sql to select the data from
the remote table into the local table.
a: IF you have the remote server set up as a 'LINKED SERVER' (see
Books Online: Linked Servers), you can use a query similar to this one:
INSERT INTO MyLocalTable
( Column1,
Column2,
{etc}
)
SELECT
Column1,
Column2,
{etc}
FROM MyLinkedServer.RemoteDatabase.dbo.RemoteTable
WHERE {any filter criteria goes here}
source:
http://social.msdn.microsoft.com/forums/en-US/transactsql/thread/b00b25c5-6df7-4b2a-a2df-e9a089ecc68e
LINKED SERVER
You can add linked server and use it to copy the table data across server.
Creating linked server is done using sp_addlinkedserver:
EXEC sp_addlinkedserver 'RemoteServer', N'SQL Server'
Based on security settings you may need to map remote server logins. This is
done using sp_addlinkedsrvlogin:
EXEC sp_addlinkedsrvlogin 'RemoteServer', 'false', 'LocalUser',
'RemoteUser', 'RemotePassword'
Then you just run a normal query referencing the linked server table with 4
part name:
INSERT INTO TargetTable
SELECT
FROM RemoteServer.RemoteDB.dbo.RemoteTable
If you can set up a linked server the other way around (from your remote
server to the local server), then executing the query on the remote server
will have no problems setting IDENTITY_INSERT ON. The option cannot be set
permanently and it has to be set in the same session as the INSERT
statement.
Alternative is to use BCP or Bulk Insert to insert the data which have
option to keep identity.
Plamen Ratchev
http://www.SQLStudio.com
source: http://bytes.com/topic/sql-server/answers/808380-copying-data-one-server-another
SQLBulkCopy
In Ado.net, there is a pretty good method for doing this. The api name
is SqlBulkCopy.
@@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
@@Unit Testing
%%Win32 C++
http://msdn.microsoft.com/en-us/magazine/cc136757.aspx#S4
Simplified Unit Testing for Native C++ Applications
Maria Blees
WinUnit
What I really wanted, and what I thought would be the easiest to
integrate into an automated build system, was the equivalent of NUnit
for native code. That is, I wanted to be able to make a DLL with only
tests in it, and have an external test-runner that would run those
tests and take care of the reporting and logging. I also wanted to be
able to declare each test only once, and to have a minimum of extra
code in my test DLL.
@@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
@@Windows Phone 7
http://www.codeproject.com/KB/windows-phone-7/WP7Tutorial1.aspx
Peeling the Mango - Win Phone 7 Programming from the Ground Up (Part 1)
By Pete O'Hanlon | 14 Jul 2011
http://www.codeproject.com/KB/windows-phone-7/InvasionGameInXNA.aspx
Invasion Game in XNA for Windows Phone 7
By Dan Colasanti | 11 Jul 2011
@@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)
@@XNA
XNA Game Studio and the XNA Framework to develop multiplatform games
for Windows, Xbox 360, and Windows Phone.
- XNA tutorials
- http://msdn.microsoft.com/en-us/library/bb198548.aspx Writing Game code in XNA
- Wikipedia XNA