tag:blogger.com,1999:blog-65283140012059890752024-03-06T06:54:53.948+05:30Bit SpaceThe Techie BlogRiyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.comBlogger35125tag:blogger.com,1999:blog-6528314001205989075.post-51719015511287122922018-04-09T16:10:00.002+05:302018-04-09T16:10:42.804+05:30Lightning Custom Combobox with Searchable Options<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<br />
The custom Lightning Compobox, which has the ability to search the predefined options. This can also able to take the typing values which are not in the predefined options. The custom validation also managed.<br />
<br />
<u><b>The screenshots</b></u><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJP_UhPc2rMwcSNOlZAX8bQZrOhWJiVf7IbaWAkvl1Zgjl0FD3NqExBUfKBS3g7fK4-Zs6_URmmcslNEtJOez4kkEqwAArgrPGyq6d-B0mskolYAd-6pouL2U9KIhvu_wOxSZqCK3xAg/s1600/Capture1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="395" data-original-width="641" height="246" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJP_UhPc2rMwcSNOlZAX8bQZrOhWJiVf7IbaWAkvl1Zgjl0FD3NqExBUfKBS3g7fK4-Zs6_URmmcslNEtJOez4kkEqwAArgrPGyq6d-B0mskolYAd-6pouL2U9KIhvu_wOxSZqCK3xAg/s400/Capture1.PNG" width="400" /></a></div>
<br />
<b><u>The Code</u></b><br /><br />
<script src="https://gist.github.com/riyasanchal/9bdffbc55d868d18c5df1364bcc965a0.js"></script>
</div>
Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com0tag:blogger.com,1999:blog-6528314001205989075.post-9836013657964505892018-03-16T19:22:00.001+05:302018-03-16T19:22:31.661+05:30Salesforce Lightning - inter namespace component communication<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<br />
There is a challenge to integrate lightning components from different managed packages. There raised a question "<b>Are the communication between the components from different namespace is possible ? "</b><br />
<br />
As per my understanding, I confirmed yes; but others are not satisfied on that. So we have raised a case for Salesforce support and described our problem to them. <b>They confirmed that inter namespace communication is not possible in locker service.</b><br />
<br />
Since I have still doubted on that, I done a POC with different namespaces.<br />
<br />
I have created a parent component with two attributes in one org (namespace1) and created a child component in another org (namespace2). I have integrated both of them with Javascript. The two packages are created from both of the orgs and installed in a 3rd org.<br />
<br />
In the 3rd org, I can success fully run the application by passing attribute values from parent component (namespace1) to child component (namespace2) also using the events I passed the data back from child to parent componet.<br />
<br />
<br />
So I can confirm, the communication between lightning components which are in different namespace is possible, rather than the Salesforce support.<br />
<br />
Its my experience !!!<br />
<br />
<br />
<br />
<br />
<br /></div>
Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com0tag:blogger.com,1999:blog-6528314001205989075.post-84450641221000885872018-03-15T19:47:00.000+05:302018-03-15T19:47:58.745+05:30Salesforce Lightning : Dynamic Custom labels in lightning components<div dir="ltr" style="text-align: left;" trbidi="on">
Custom labels are used in Salesforce to present the information which are not available in database not part of data records. For eg: the page headings, button labels, help text etc... The custom labels gives an option for developers to present multilingual information based the end used language. The mail application areas of custom labels are the Visualforce pages & Lightning components.<br />
<br />
<br />
<h3>
<u>
Custom labels in lightning components </u></h3>
<div>
<br /></div>
<div>
The custom labels are included in Lightning components as :</div>
<div>
<ul>
<li>{!$Label.c.labelName} for the default namespace</li>
<li>{!$Label.namespace.labelName} to access a label in a managed package</li>
</ul>
Else we can use the javascript method :</div>
<div>
<ul>
<li>$A.get("$Label.c.labelName")</li>
<li>$A.get("$Label.namespace.labelName")</li>
<li><br /></li>
</ul>
<h3 style="text-align: left;">
<u>
Dynamic Custom labels in lightning components</u></h3>
</div>
<div>
<br /></div>
<div>
In some situations we have to dynamically include the Custom labels on the go. ie we can only be able to determine the label name on the run time. The below component will help to get the dynanic label values on the run time<br />
<br />
<div>
<br /></div>
<div>
<div>
<script src="https://gist.github.com/riyasanchal/7cfadaee6768da0576017654a13aac74.js"></script></div>
</div>
<br />
<br /></div>
</div>
Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com0tag:blogger.com,1999:blog-6528314001205989075.post-17643695395767356162018-02-16T20:04:00.002+05:302018-02-16T20:04:29.677+05:30Salesforce Lightning : The MVCC Platform<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
The Salesforce is a known cloud platform which is run under Model View Controller (MVC) architecture. For the Salesforce, the MVC is:<br />
<br />
<div style="text-align: left;">
Model :- The Salesforce Data objects (Sobjects)</div>
<div style="text-align: left;">
View :- Visual force markups and HTML tags</div>
<div style="text-align: left;">
Controller :- The apex code which driven the business logic's. (Apex class)</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibsTWRMm0dbYiw2Ev4c6KshzD0OiIixCy4f_Zt5793f4TiOrrcFfHuOSNJ_StKantWPjHrZQL4TGzJe0K_Neqmhx9nVBPXXiiNETDxuvT7uf8MMC36Zb6Wgm33azcnJmHpqG8v9d1VtVA/s1600/blog-mvc.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="175" data-original-width="623" height="111" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibsTWRMm0dbYiw2Ev4c6KshzD0OiIixCy4f_Zt5793f4TiOrrcFfHuOSNJ_StKantWPjHrZQL4TGzJe0K_Neqmhx9nVBPXXiiNETDxuvT7uf8MMC36Zb6Wgm33azcnJmHpqG8v9d1VtVA/s400/blog-mvc.PNG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b><u>The Salesforce Lightning Platform</u></b></div>
<div class="separator" style="clear: both; text-align: left;">
<b><u><br /></u></b></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The Salesforce lightning platform is for building an interactive user experience. We can build highly interactive and fast responsive user interfaces with this new platform. The platform defines a set of directives (SLDS) to build responsive UI. The business logic is divided among two controllers for the fast processing. The Javascript controller which runs in browser, do the 60% of business logic. The Javascript controller communicates to the Apex controller (Server side controller) if its really required a server side processing or any other data operations from the Model (Sobjects). The View is communicating only with the Javascript controller likewise the Model is communicating only with the Apex controller. We can say, the Lightning is a MVCC platform since it has two controllers which share the business logic.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Model :- The Salesforce Data objects (Sobjects) </div>
<div class="separator" style="clear: both; text-align: left;">
View :- Aura markups and HTML tags with SLDS</div>
<div class="separator" style="clear: both; text-align: left;">
Controller :- The JavaScript controller that communicate with View</div>
<div class="separator" style="clear: both; text-align: left;">
Controller :- The Apex controller that communicate with Model</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLQgSsYNBxW7F0q2pBUAQQZ6ueYYfMp_1p-eoC5j-MCJ2mfPg4WB6Yi3MBu4BISOnwB5F47o9dGIFLZNZBesY1VKfQ2v4MSYwApQK3MropV_GcgPEBoCUR7v7cOuu51l84XkwILEAonWY/s1600/blog-mvcc.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="452" data-original-width="705" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLQgSsYNBxW7F0q2pBUAQQZ6ueYYfMp_1p-eoC5j-MCJ2mfPg4WB6Yi3MBu4BISOnwB5F47o9dGIFLZNZBesY1VKfQ2v4MSYwApQK3MropV_GcgPEBoCUR7v7cOuu51l84XkwILEAonWY/s400/blog-mvcc.PNG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: left;">
<br /></div>
</div>
Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com0tag:blogger.com,1999:blog-6528314001205989075.post-78461870411266040202017-03-22T12:11:00.000+05:302017-03-22T12:11:07.600+05:30Email Salesforce Reports to External User. <div dir="ltr" style="text-align: left;" trbidi="on">
Salesforce allow only to send reports to User or Contact Emails. Some situations we have to send the reports to External emails, which are not part of Salesforce User or Contact. Using apex code we can send the Salesforce reports to external emails as an excel attachment.<br />
<br />
<!-- HTML generated using hilite.me --><br />
<div style="background: #202020; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;">
<table><tbody>
<tr><td><pre style="line-height: 125%; margin: 0;"> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36</pre>
</td><td><pre style="line-height: 125%; margin: 0;"><span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">reportId</span> <span style="color: #d0d0d0;">=</span> <span style="background-color: #e3d2d2; color: #a61717;">''</span><span style="color: #d0d0d0;">;</span> <span style="color: #999999; font-style: italic;">// Set the report id that to be send</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">requestUrl</span> <span style="color: #d0d0d0;">=</span> <span style="color: #ed9d13;">'/'</span> <span style="color: #d0d0d0;">+</span> <span style="color: #d0d0d0;">reportId;</span>
<span style="color: #d0d0d0;">requestUrl</span> <span style="color: #d0d0d0;">+=</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">&excel=</span><span style="color: #3677a9;">1</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">;</span>
<span style="color: #d0d0d0;">Blob</span> <span style="color: #d0d0d0;">reportContent</span> <span style="color: #d0d0d0;">=</span> <span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #d0d0d0;">PageReference(requestUrl).</span><span style="color: #bbbbbb;">getContent</span><span style="color: #d0d0d0;">();</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">reportData</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">reportContent.</span><span style="color: #bbbbbb;">toString</span><span style="color: #d0d0d0;">();</span>
<span style="color: #999999; font-style: italic;">// To create an Excel report, we have to extract only the html table content</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">excelContent</span> <span style="color: #d0d0d0;">=</span> <span style="background-color: #e3d2d2; color: #a61717;">''</span><span style="color: #d0d0d0;">;</span>
<span style="color: #6ab825; font-weight: bold;">if</span><span style="color: #d0d0d0;">(reportData.</span><span style="color: #bbbbbb;">contains</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;"><div</span> <span style="color: #d0d0d0;">class=</span><span style="color: #ed9d13;">"reportOutput"</span><span style="color: #d0d0d0;">></span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">)){</span>
<span style="color: #d0d0d0;">excelContent</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">reportData.</span><span style="color: #bbbbbb;">substringAfter</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;"><div</span> <span style="color: #d0d0d0;">class=</span><span style="color: #ed9d13;">"reportOutput"</span><span style="color: #d0d0d0;">></span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">excelContent</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">excelContent.</span><span style="color: #bbbbbb;">substringAfter</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;"><table</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">excelContent</span> <span style="color: #d0d0d0;">=</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;"><table</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">+excelContent.</span><span style="color: #bbbbbb;">substringBefore</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;"></table></span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">)+</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;"></table></span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">;</span>
<span style="color: #d0d0d0;">}</span>
<span style="color: #999999; font-style: italic;">// Define the email</span>
<span style="color: #d0d0d0;">String[]</span> <span style="color: #d0d0d0;">toAddresses</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">List<String>(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">email</span><span style="color: orange;">@sfdc.com</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">templateBody</span> <span style="color: #d0d0d0;">=</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">Please</span> <span style="color: #d0d0d0;">see</span> <span style="color: #d0d0d0;">the</span> <span style="color: #d0d0d0;">attached</span> <span style="color: #d0d0d0;">Report</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">;</span>
<span style="color: #d0d0d0;">Messaging.</span><span style="color: #bbbbbb;">SingleEmailMessage</span> <span style="color: #d0d0d0;">email</span> <span style="color: #d0d0d0;">=</span> <span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #d0d0d0;">Messaging.</span><span style="color: #bbbbbb;">SingleEmailMessage</span><span style="color: #d0d0d0;">();</span>
<span style="color: #999999; font-style: italic;">// Sets the paramaters of the email</span>
<span style="color: #d0d0d0;">email.</span><span style="color: #bbbbbb;">setSubject</span><span style="color: #d0d0d0;">(</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">The</span> <span style="color: #d0d0d0;">Status</span> <span style="color: #d0d0d0;">Report</span><span style="background-color: #e3d2d2; color: #a61717;">'</span> <span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">email.</span><span style="color: #bbbbbb;">setToAddresses</span><span style="color: #d0d0d0;">(</span> <span style="color: #d0d0d0;">toAddresses</span> <span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">email.</span><span style="color: #bbbbbb;">setPlainTextBody</span><span style="color: #d0d0d0;">(templateBody);</span>
<span style="color: #999999; font-style: italic;">// Create the email attachment with a file name.</span>
<span style="color: #d0d0d0;">Messaging.</span><span style="color: #bbbbbb;">EmailFileAttachment</span> <span style="color: #d0d0d0;">excelAttach</span> <span style="color: #d0d0d0;">=</span> <span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #d0d0d0;">Messaging.</span><span style="color: #bbbbbb;">EmailFileAttachment</span><span style="color: #d0d0d0;">();</span>
<span style="color: #d0d0d0;">excelAttach.</span><span style="color: #bbbbbb;">setFileName</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">Report_</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">+Datetime.</span><span style="color: #bbbbbb;">now</span><span style="color: #d0d0d0;">().</span><span style="color: #bbbbbb;">getTime</span><span style="color: #d0d0d0;">()+</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">xls</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">excelAttach.</span><span style="color: #bbbbbb;">setContentType</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">application/vnd.</span><span style="color: #bbbbbb;">ms</span><span style="color: #d0d0d0;">-excel;</span> <span style="color: #d0d0d0;">charset=utf-</span><span style="color: #3677a9;">8</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">excelAttach.</span><span style="color: #bbbbbb;">setBody</span><span style="color: #d0d0d0;">(Blob.</span><span style="color: #bbbbbb;">valueOf</span><span style="color: #d0d0d0;">(excelContent));</span>
<span style="color: #d0d0d0;">email.</span><span style="color: #bbbbbb;">setFileAttachments</span><span style="color: #d0d0d0;">(</span><span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #d0d0d0;">Messaging.</span><span style="color: #bbbbbb;">EmailFileAttachment</span><span style="color: #d0d0d0;">[]</span> <span style="color: #d0d0d0;">{excelAttach});</span>
<span style="color: #999999; font-style: italic;">// Sends the email</span>
<span style="color: #d0d0d0;">Messaging.</span><span style="color: #bbbbbb;">SendEmailResult</span> <span style="color: #d0d0d0;">[]</span> <span style="color: #d0d0d0;">results</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">Messaging.</span><span style="color: #bbbbbb;">sendEmail</span><span style="color: #d0d0d0;">(</span><span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #d0d0d0;">Messaging.</span><span style="color: #bbbbbb;">SingleEmailMessage</span><span style="color: #d0d0d0;">[]</span> <span style="color: #d0d0d0;">{email});</span>
<span style="color: #6ab825; font-weight: bold;">if</span> <span style="color: #d0d0d0;">(results.</span><span style="color: #bbbbbb;">size</span><span style="color: #d0d0d0;">()></span><span style="color: #3677a9;">0</span> <span style="color: #d0d0d0;">&&</span> <span style="color: #d0d0d0;">!results.</span><span style="color: #bbbbbb;">get</span><span style="color: #d0d0d0;">(</span><span style="color: #3677a9;">0</span><span style="color: #d0d0d0;">).</span><span style="color: #bbbbbb;">isSuccess</span><span style="color: #d0d0d0;">())</span> <span style="color: #d0d0d0;">{</span>
<span style="color: #d0d0d0;">system.</span><span style="color: #bbbbbb;">debug</span><span style="color: #d0d0d0;">(results.</span><span style="color: #bbbbbb;">get</span><span style="color: #d0d0d0;">(</span><span style="color: #3677a9;">0</span><span style="color: #d0d0d0;">).</span><span style="color: #bbbbbb;">getErrors</span><span style="color: #d0d0d0;">()[</span><span style="color: #3677a9;">0</span><span style="color: #d0d0d0;">].</span><span style="color: #bbbbbb;">getMessage</span><span style="color: #d0d0d0;">());</span>
<span style="color: #d0d0d0;">}</span>
</pre>
</td></tr>
</tbody></table>
</div>
<br />
<br /></div>
Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com1tag:blogger.com,1999:blog-6528314001205989075.post-86581537949436919172016-11-15T18:14:00.000+05:302016-11-15T18:14:49.890+05:30SALESFORCE CPQ (STEELBRICKS)<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Salesforce standard quote helps to generate simple quote
documents for normal sales process. The product
price, quantity & discount are entering while preparing quote line items. The discounts are calculated at line item
level and summed up in the quote level. Also there are options to add shipping
cost and tax amounts at quote level. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Let’s consider some situations like:</div>
<div class="MsoNormal">
</div>
<ol style="text-align: left;">
<li>The discount needs to be calculated for the total amount at quote level.</li>
<li>The tax needs to be calculated based on percentages. </li>
<li>The discount needs to be calculated based on the quantity.</li>
<li>The selling price & discounts needs to be calculated based on subscription model (monthly / yearly)</li>
<li>The selling price & discounts are calculated for bulk products.</li>
<li>Calculate the prices based on territories.</li>
<li>Calculate partner discounts & distributor discounts in percentages. </li>
</ol>
<br />
<div>
<div class="MsoNormal">
The standard Salesforce quote has no options to do above
functionalities. The sales person has to manually calculate the discounts &
taxes and he has to enter the same in Salesforce for generating an expected quote.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
Here comes the role of CPQ (Configure Price Quote). The CPQ
has the functionality to configure different product options, price structure,
discount structure, tax structure and other different flow of selling
process. It is an application, where
anyone can easily configure the products, subscriptions, prices, discounts, quote
templates, contacts etc. <o:p></o:p></div>
</div>
</div>
Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com0tag:blogger.com,1999:blog-6528314001205989075.post-19663997302855909122016-06-09T19:10:00.000+05:302016-06-09T19:10:04.310+05:30SSO on Salesforce Community to Login with Any Salesforce User<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
Just like the <a href="https://success.salesforce.com/">success.salesforce.com</a>, we can make our Salesforce community portals can be logined by any Salesforce user from any Salesforce org. To enable this Single Sign On, follow below steps:<br />
<b><u><br /></u></b>
<b><u>1. Create the community</u></b><br />
<br />
<b>a.</b> Go to <i>Setup</i>, search '<i>Communities</i>' in Quick find, choose<b> '</b><i>All Communitie</i><b>s'</b> and click on '<i>New community' </i>button.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj37UU_9h-28e4OHy3exA3xRKcw9bzClzYRAvQw_P5-Tx0C0xAZrMl5qy0xKxSo1g-mmTE6O8Wt9L42-RGNT40oVB66DglUSqR1UDZHlN1CR7Jufa2R-MofA-DlhUyVKFgkL6bjNuKr4hg/s1600/newCommunity.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="70" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj37UU_9h-28e4OHy3exA3xRKcw9bzClzYRAvQw_P5-Tx0C0xAZrMl5qy0xKxSo1g-mmTE6O8Wt9L42-RGNT40oVB66DglUSqR1UDZHlN1CR7Jufa2R-MofA-DlhUyVKFgkL6bjNuKr4hg/s400/newCommunity.jpg" width="400" /></a></div>
<br />
<br />
<br />
<b>b.</b> Choose a community template (Here we can choose the Napili template) and enter the community name, the URL and click '<i>Create Community' </i>button<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkd9uJ-Oll_T2T97pAcqWm3JhmyCJDzy6e3TVe-oWfHTCYfLqACtT2knpYgqggYwdhSZ8UNmtiLhZybRdPuhByXZaefKMGOW-lXFkuU2AlZV-5cibHFL_qq2X1Rq_0k1DL_nCQB9ZDgO8/s1600/newCommunity.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkd9uJ-Oll_T2T97pAcqWm3JhmyCJDzy6e3TVe-oWfHTCYfLqACtT2knpYgqggYwdhSZ8UNmtiLhZybRdPuhByXZaefKMGOW-lXFkuU2AlZV-5cibHFL_qq2X1Rq_0k1DL_nCQB9ZDgO8/s400/newCommunity.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Now navigate to 'Community Management Page' for further settings.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b><u> 2. Set up Community.</u></b></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b> a.</b> Profile settings </div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: left;">
From the Community Management Page, go to '<i>Administration' </i>and select <i>Members, </i>choose the appropriate portal profile and save the settings. Here we can choose '<i>Customer Community Login User profile'</i>.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqb5oO8K4vjeQ6Dey3dSUc8vpV66pkAeNYm7m9wtc_oM6d3aRHpVbp0yW_BfoWfz6tJHoc43x3SUBxuP1DWoeWez11ASCZ2JCzSE9miYiCiEm1oxpr-wlXbzXpgdiknZBfVGBkgpWF2_w/s1600/newCommunity.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="195" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqb5oO8K4vjeQ6Dey3dSUc8vpV66pkAeNYm7m9wtc_oM6d3aRHpVbp0yW_BfoWfz6tJHoc43x3SUBxuP1DWoeWez11ASCZ2JCzSE9miYiCiEm1oxpr-wlXbzXpgdiknZBfVGBkgpWF2_w/s400/newCommunity.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b><u>3. Single Sign On setup</u></b></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>a.</b> From the Community Management Page, go to '<i>Administration' </i>and select '<i>Login & Registration'</i>. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
On the Login Section click on '<i>Auth Providers' </i>as shown.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzSeXv8f23s2n6_IlY6A553hrMlOvsYpWOekmSKUOf3MAEYttvXBqpQOoUQrpwzGr21Ed0hKZ987BMHtCbMoEaiBa4Ek7whfqp-M1QnGjAc29WxcL03UMihp9c7BCf-7ELbjdleOpW-pQ/s1600/newCommunity.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="272" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzSeXv8f23s2n6_IlY6A553hrMlOvsYpWOekmSKUOf3MAEYttvXBqpQOoUQrpwzGr21Ed0hKZ987BMHtCbMoEaiBa4Ek7whfqp-M1QnGjAc29WxcL03UMihp9c7BCf-7ELbjdleOpW-pQ/s400/newCommunity.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>b.</b> From the Auth. Providers setup page create <i>New </i>Auth provider.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuxy03zp_frvy04zTbUs9ixUMY2Mj7v8MybNGbe8Yt0iLROIsRaGQZG0NHJMe7aHcKjTk2cIkQY-fWWimvbBK5_7n3PEs7Bn0lo8v2TFZ3w28Qh-KnaXzMgYIazZIcSo-vPJQEW0_z8yo/s1600/newCommunity.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="83" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuxy03zp_frvy04zTbUs9ixUMY2Mj7v8MybNGbe8Yt0iLROIsRaGQZG0NHJMe7aHcKjTk2cIkQY-fWWimvbBK5_7n3PEs7Bn0lo8v2TFZ3w28Qh-KnaXzMgYIazZIcSo-vPJQEW0_z8yo/s400/newCommunity.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>c.</b> Select the provider type as '<i>Salesforce' </i>and Save.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHEPKXiiNOO5G3gCc3kVGuTrbGOAFITFdOcE9ACY0IvenZBQ4g0ksO1xQBfSEbwC2pkMuYwBOW0Y_gZtZ0JijqNkkpuQbC6-AvJPGc4AYUMfqlZ5TBI3IjNowGLatVJx4vptMQrZtf3fE/s1600/newCommunity.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="106" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHEPKXiiNOO5G3gCc3kVGuTrbGOAFITFdOcE9ACY0IvenZBQ4g0ksO1xQBfSEbwC2pkMuYwBOW0Y_gZtZ0JijqNkkpuQbC6-AvJPGc4AYUMfqlZ5TBI3IjNowGLatVJx4vptMQrZtf3fE/s400/newCommunity.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>d.</b> Enter a name for the Auth. Provider (Eg: AllSF as below). And click on '<i>Automatically create a registration handler template</i>' to generate a new registration handler.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxpx2S6GwW8Z8N-l_Xd4LySUhkWWs24-FgxIQaza-UwGt4JipBc4XNIq1Qh3CiTh83ieYDz5f15VgjAdynW5Pw0qXz0yxT5XTwHclLFDn_kTpnRnD7ptsgHM66kZJZakgHnj_ajI7vg2I/s1600/newCommunity.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="197" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxpx2S6GwW8Z8N-l_Xd4LySUhkWWs24-FgxIQaza-UwGt4JipBc4XNIq1Qh3CiTh83ieYDz5f15VgjAdynW5Pw0qXz0yxT5XTwHclLFDn_kTpnRnD7ptsgHM66kZJZakgHnj_ajI7vg2I/s400/newCommunity.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>e.</b> Select an user with admin privileges for executing the registration handler class, leave other fields blank and save the changes. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Now we can see the Auth Provider settings details. From there go to the registration handle class (Here it is AutocreatedRegHandler1465466784028).</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkMundcuenmXeK2U_S-IWCFGO0sMwJBSiWo4laAFlFK7AX26ICo-n-eJTNPYyLiBLGuacJSGWUqKL6IXUxH8QMiYRbx8omtkXccWBUCzeskFqoJBB00JQnMX6diSTqTaXzoENiOXRkPsU/s1600/newCommunity.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="301" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkMundcuenmXeK2U_S-IWCFGO0sMwJBSiWo4laAFlFK7AX26ICo-n-eJTNPYyLiBLGuacJSGWUqKL6IXUxH8QMiYRbx8omtkXccWBUCzeskFqoJBB00JQnMX6diSTqTaXzoENiOXRkPsU/s400/newCommunity.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
We have to do some changes in apex code for Registration Handler class as on below steps. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>f.</b> Replace line no: 12 with '<i>return true'. </i></div>
<div class="separator" style="clear: both; text-align: left;">
<i><br /></i></div>
<div class="separator" style="clear: both; text-align: left;">
<b>g.</b> For line no: 34, we have to select a community profile for user creation. Use the same profile that we have setup in Step 2. So change the query condition with profile name as '<i>Customer Community Login User</i>' and save the class. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>h. </b>Create an account in Salesforce with same name as in line 23. ie, '<i>Acme</i>'. Don't forget to select a role for this account owner, since its mandatory for SSO.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG5vo5gsMI3SDsAYiPJLnnoseeKQgh2g_E7wmslN8oVQXYMZxjKdp5JnKF6-z5yMBwpakhRUQPl10Mg9YRbigQn1EAFMGfyPNzSjS2vsrl4zUywzeKDnFqoXcgTO-hSYjOY5ijYPsDD_M/s1600/newCommunity.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG5vo5gsMI3SDsAYiPJLnnoseeKQgh2g_E7wmslN8oVQXYMZxjKdp5JnKF6-z5yMBwpakhRUQPl10Mg9YRbigQn1EAFMGfyPNzSjS2vsrl4zUywzeKDnFqoXcgTO-hSYjOY5ijYPsDD_M/s400/newCommunity.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIRQIQMgsoz9QAu7wPtjXiLpOwOMICGHS8BZA4eDETEsNWtUfodoZ-IPfAr2W0tmPvKKBKgo32kmnG7QUwVKOCiq-V07BB8dAv0p5XXoYBA50PSX3JAXFiuQ5rLNL2dzhiuFwPZ5xzyt4/s1600/newCommunity.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="110" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIRQIQMgsoz9QAu7wPtjXiLpOwOMICGHS8BZA4eDETEsNWtUfodoZ-IPfAr2W0tmPvKKBKgo32kmnG7QUwVKOCiq-V07BB8dAv0p5XXoYBA50PSX3JAXFiuQ5rLNL2dzhiuFwPZ5xzyt4/s400/newCommunity.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b><u><br /></u></b></div>
<div class="separator" style="clear: both; text-align: left;">
<b><u>4. Configure Auth provider for Community</u></b></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Again go to Community Management Page, go to '<i>Administration' </i>and select '<i>Login & Registration'</i> and do the below changes.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>a.</b> On the Login section, we can see the Auth provider that we have already created in Step 3. Check on the Auth provider (here it is AllSF). </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>b.</b> On the Logout section add login.salesforce.com as logout page if needed. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>c.</b> On the Registration section check on '<i>Allow external users to self-register'</i>, select the community profile and the account that we have created in previous steps and save the changes.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFRvM5NGV55cuo67S16aCVw5tNx7sw_vemZ6EDr381x7YsPeGUGhqAkX1DaXyJJiA5x-fU3g4ufW4T5bu_5_VdrY_Y4NHiljAXYmptNlK1KolVF8ci329aLKwEVoGO-ahsL0cxFwPWVJo/s1600/newCommunity.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="382" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFRvM5NGV55cuo67S16aCVw5tNx7sw_vemZ6EDr381x7YsPeGUGhqAkX1DaXyJJiA5x-fU3g4ufW4T5bu_5_VdrY_Y4NHiljAXYmptNlK1KolVF8ci329aLKwEVoGO-ahsL0cxFwPWVJo/s400/newCommunity.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b><u>5. Activate the Community</u></b></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Go to '<i>Community Management Page'</i>, go to '<i>Administration'</i> and select '<i>Settings' </i>and Activate the community.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBs1o6AL7G7KtJVlZP8bCn1atPlHtzaCxEWNnhZP1P9IYXY2BGc1wihmbbc-VWyuoVnW3bTJhK6jiqVviscNssg2PSJ1YchhMFP-ycsCN7NtQzDaem4J4VD8O7OdGpB1EWdoLWnH2d_zI/s1600/newCommunity.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="121" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBs1o6AL7G7KtJVlZP8bCn1atPlHtzaCxEWNnhZP1P9IYXY2BGc1wihmbbc-VWyuoVnW3bTJhK6jiqVviscNssg2PSJ1YchhMFP-ycsCN7NtQzDaem4J4VD8O7OdGpB1EWdoLWnH2d_zI/s320/newCommunity.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Here it rocks, the community is ready to login with any Salesforce user credentials.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
</div>
Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com0tag:blogger.com,1999:blog-6528314001205989075.post-8322976081112924002016-01-08T14:45:00.002+05:302016-01-08T14:45:52.973+05:30Salesforce Spring 16 Release<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhx9xNJYNXW18T2lPWIEKEof95ZbycMX3xtM_44te7uKjGl1iNb4FzJwd2u1d02U0GwHSAJgtLrXpoWCZTALMBiVVilmHJBS0JQS-ZbmGuVkqNnXcyfogSuWWikgxtMgJGvcXHcrTggfK8/s1600/spring+16.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Salesforce Spring 16" border="0" height="377" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhx9xNJYNXW18T2lPWIEKEof95ZbycMX3xtM_44te7uKjGl1iNb4FzJwd2u1d02U0GwHSAJgtLrXpoWCZTALMBiVVilmHJBS0JQS-ZbmGuVkqNnXcyfogSuWWikgxtMgJGvcXHcrTggfK8/s400/spring+16.png" title="Salesforce Spring 16" width="400" /></a></div>
<br />
<br />
With the spring 16 release, we can go faster than ever before with the customer success platform. In spring 16 release, their over a hundred and seventy-five new and improved features. Let's go through the most exiting features.<br />
<br />
<h4 style="text-align: left;">
<b><u>Offline for mobile</u></b></h4>
<div>
<b><u><br /></u></b></div>
<div>
<div>
The sales cloud has new "Offline for mobile" for Salesforce1, which helps sales reps be more productive on the go no-matter where they are, when they are working or who they are talking to. The offline capability means that they have the right information that they need about their customers and prospects at their fingertips. By cashing their recent records, sales reps can access and edit information even if they don't have the internet access. When that signal comes back-on they can seamlessly have their records sync and keep everyone on the same page. So now sales reps can truly access their business data anywhere and anytime.</div>
</div>
<div>
<br /></div>
<h4 style="text-align: left;">
<u>Salesforce IQ for small businesses</u></h4>
<div>
<u><br /></u></div>
<div>
<div>
Small businesses can get set up it in minutes just by connecting their Gmail or Microsoft Exchange email. Salesforce automatically create contacts and pulling activities associated with your deals. The intelligence fields allow you to identify which opportunities need your attention. By adding the intelligent fields, we can see the deals that in touch with. Also the Salesforce IQ brings the CRM data to the inbox.The opportunity data is available and editable from the Inbox.</div>
</div>
<div>
<br /></div>
<h4 style="text-align: left;">
<u>Work orders for field service</u></h4>
<div>
<u><br /></u></div>
<div>
<div>
The Service Cloud is the laying foundation for field service support. When a support cases is created the call center has a complete view of the life cycle of a product & they can quickly create a work order task. The work order is then automatically added to the field technician for seamless field service support. </div>
</div>
<div>
<br /></div>
<h4 style="text-align: left;">
<u>Predictive journeys</u></h4>
<div>
<u><br /></u></div>
<div>
<div>
The cloud marketers can apply data science to their customers-own behavior to gain a better understanding of each individual in deeper level. For Eg: in predictive email, we can see underlying predictive scoring models and dashboards. Marketers can score their customers by likelihood open, click, the unsubscribe from e-mail or make a purchase.</div>
</div>
<div>
<br /></div>
<div>
<h4 style="text-align: left;">
<u>Heroku enterprise</u></h4>
</div>
<div>
<u><br /></u></div>
<div>
<div>
It gives us the flexibility to build applications in any programming language and easily scale them to millions of customers. With new features like private spaces and selectable regions, we can now create dedicated network and isolated app environments which gives the privacy, performance and power. And we can deploy the apps in any location that we select. Also free the developers with open languages and technologies, they want to innovate with enterprise trust and security. </div>
</div>
<div>
<br /></div>
<h4 style="text-align: left;">
<u>Wave analytics for communities </u></h4>
<div>
<u><br /></u></div>
<div>
<div>
This native integration brings the power of wave analytics cloud to communicate cloud, allowing us to extend a whole new world of data-driven decisions to our partners. We can simply share the same level of information to the team to increase our partner's productivity with personalized dashboards now embedded in community pages. Also we can drive data driven conversations with self service analytics for every community member right from where they collaborate.</div>
<div>
<br /></div>
<h4 style="text-align: left;">
<u>Chatter lightning components for the community templates</u></h4>
<div>
<u><br /></u></div>
<div>
It make us the quick and easy to add the four chatter collaboration to a community.</div>
<div>
Individual lightning components features such as the feed, publisher and groups are completely customizable and easy to integrated with the community. For Eg: we can add a chatter publisher in feed to the user profile page, by simply dragging the component to the portion of the page where we want to enable the functionality.</div>
</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
</div>
Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com0tag:blogger.com,1999:blog-6528314001205989075.post-26230465837318473432015-12-30T11:06:00.000+05:302015-12-30T11:13:57.452+05:30Twitter API integration with Salesforce :- User Authentication <div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div style="text-align: left;">
Sometimes we have to pull tweets from Twitter or post status to Twitter from Salesforce through Apex callouts. To interact with Twitter API on behalf of a user, an authentication has to be implemented. Twitter provides different types of authentication mechanisms. Here we can use <b><a href="https://dev.twitter.com/oauth/3-legged" rel="nofollow" target="_blank">3-legged authorization</a></b>. The implementation includes the following steps.</div>
<ol style="text-align: left;">
<li>Register a Twitter Application</li>
<li>Obtain the request token from Twitter</li>
<li>Authenticate with User</li>
<li>Obtain the Access token.</li>
</ol>
<h4>
</h4>
<h2>
<ol style="text-align: left;">
<li><u>Register a Twitter Application</u></li>
</ol>
</h2>
<div style="text-align: left;">
Log on to <a href="https://apps.twitter.com/">https://apps.twitter.com/</a> and go for <b>Create new App</b> and fill the necessary details. We can provide Website & Callback URL as our Visualforce page URL.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFvCcrjdY2YkIa3dgjaww2tT7LZt3T8-3LAJs7JDS0lwNUHeZ4YMBEHjzxPOz-syJzmZTRTMlFHssRxlpX2bTuYh0X1pVfLTphbtM1_Tc8mFSlUFaDA_651LjnZrrgrIN7rvriCK7Fddk/s1600/twitter+App.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="285" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFvCcrjdY2YkIa3dgjaww2tT7LZt3T8-3LAJs7JDS0lwNUHeZ4YMBEHjzxPOz-syJzmZTRTMlFHssRxlpX2bTuYh0X1pVfLTphbtM1_Tc8mFSlUFaDA_651LjnZrrgrIN7rvriCK7Fddk/s320/twitter+App.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
After successful registration, we will get a consumer key & a consumer secret.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2H-GSPuVkotsJb1wE1MxW_xLUdFQY1vm2w2g_8Uj3wwHQ2oYFeoismgyIq784SrYbai_vBQmwVo7MtKgWx-4NPp2hvnwa4aN-KpnoRfpUHBq70GDsmX2aSy9xqywSrKnc6fNWvi3jMNE/s1600/twitter+App.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2H-GSPuVkotsJb1wE1MxW_xLUdFQY1vm2w2g_8Uj3wwHQ2oYFeoismgyIq784SrYbai_vBQmwVo7MtKgWx-4NPp2hvnwa4aN-KpnoRfpUHBq70GDsmX2aSy9xqywSrKnc6fNWvi3jMNE/s400/twitter+App.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<h2 style="clear: both; text-align: left;">
2. <u>Obtain the Request Token from Twitter</u></h2>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
To get the request token, we have to make a POST request to the Twitter API. For every API request, Twitter needs an Authorization header (<a href="https://dev.twitter.com/oauth/overview/authorizing-requests" rel="nofollow" target="_blank">API documentation</a>). The header includes the following parameters</div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<ul style="text-align: left;">
<li>oauth_consumer_key - The consumer key from Twitter app</li>
<li>oauth_nonce - An unique string to identify the request</li>
<li>oauth_signature - A value which is generated by all of the request parameters and two secret values through a signing algorithm.</li>
<li>oauth_signature_method - The signature method to generate oauth_signature. eg: HMAC-SHA1</li>
<li>oauth_timestamp - The number of seconds since the Unix epoch at the point the request is generated</li>
<li>oauth_version - Always be 1.0 for any request.</li>
<li>oauth_token - if available from Twitter (optional).</li>
</ul>
<div>
<br /></div>
<div>
The API request as per the <a href="https://dev.twitter.com/oauth/reference/post/oauth/request_token" rel="nofollow" target="_blank">API documentation</a>:</div>
<div>
<br /></div>
<div>
Request Method: POST</div>
<div>
End point: https://api.twitter.com/oauth/request_token</div>
<div>
Parameters: <i>oauth_callback = </i>"the Visulaforce page URL"</div>
<div>
Header: Authorization header generated with the above values.<br />
<br />
<b>Salesforce settings</b><br />
<b><br /></b> Before going to callouts, we have to add the Twitter API URL (https://api.twitter.com) in remote site settings. And we have to declare some constants in apex class.<br />
<br />
<!-- HTML generated using hilite.me --><br />
<div style="background: #202020; border-width: .1em .1em .1em .8em; border: solid gray; overflow: auto; padding: .2em .6em; width: auto;">
<table><tbody>
<tr><td><pre style="line-height: 125%; margin: 0;"> 1
2
3
4
5
6
7
8
9
10
11
12
13</pre>
</td><td><pre style="line-height: 125%; margin: 0;"> <span style="color: #6ab825; font-weight: bold;">final</span> <span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">oauthVersion</span> <span style="color: #d0d0d0;">=</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #3677a9;">1.0</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">;</span>
<span style="color: #6ab825; font-weight: bold;">final</span> <span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">oauthConsumerKey</span> <span style="color: #d0d0d0;">=</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;"><YOUR</span> <span style="color: #d0d0d0;">KEY></span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">;</span>
<span style="color: #6ab825; font-weight: bold;">final</span> <span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">oauthConsumerSecret</span> <span style="color: #d0d0d0;">=</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;"><YOUR</span> <span style="color: #d0d0d0;">SECRET></span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">;</span>
<span style="color: #6ab825; font-weight: bold;">final</span> <span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">baseUrl</span> <span style="color: #d0d0d0;">=</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">https:</span><span style="color: #999999; font-style: italic;">//api.twitter.com';</span>
<span style="color: #6ab825; font-weight: bold;">final</span> <span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">oauthSignatureMethod</span> <span style="color: #d0d0d0;">=</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">HMAC-SHA1</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">;</span>
<span style="color: #6ab825; font-weight: bold;">final</span> <span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">oauth_callback</span> <span style="color: #d0d0d0;">=</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;"><YOUR</span> <span style="color: #d0d0d0;">VF</span> <span style="color: #d0d0d0;">PAGE</span> <span style="color: #d0d0d0;">URL></span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">;</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">oauthTimestamp;</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">oauthNonce;</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">oauthToken;</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">oauthTokenSecret;</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">accessToken;</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">accessTokenSecret;</span>
</pre>
</td></tr>
</tbody></table>
</div>
</div>
<div>
<br /></div>
<div>
<h3 style="text-align: left;">
<b>2.1 <u>Generating <i>oauth_timestamp</i> in apex code</u></b></h3>
<br /></div>
<div style="background: #202020; border-width: .1em .1em .1em .8em; border: solid gray; overflow: auto; padding: .2em .6em; width: auto;">
<table><tbody>
<tr><td><pre style="line-height: 125%; margin: 0;">1
2
3
4</pre>
</td><td><pre style="line-height: 125%; margin: 0;"><span style="color: #6ab825; font-weight: bold;">private</span> <span style="color: #6ab825; font-weight: bold;">void</span> <span style="color: #447fcf;">getTimeStamp</span><span style="color: #d0d0d0;">(){</span>
<span style="color: #d0d0d0;">DateTime</span> <span style="color: #d0d0d0;">dateTimeNow</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">dateTime.</span><span style="color: #bbbbbb;">now</span><span style="color: #d0d0d0;">();</span>
<span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthTimestamp</span> <span style="color: #d0d0d0;">=</span> <span style="background-color: #e3d2d2; color: #a61717;">''</span><span style="color: #d0d0d0;">+(dateTimeNow.</span><span style="color: #bbbbbb;">getTime</span><span style="color: #d0d0d0;">()/</span><span style="color: #3677a9;">1000</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">}</span>
</pre>
</td></tr>
</tbody></table>
</div>
<br />
<div>
<br /></div>
</div>
<div>
<h3 style="text-align: left;">
<b>2.2 <u>Generating <i>oauth_nonce</i> in apex code</u></b></h3>
<b><br /></b>
<b><br /></b></div>
<div style="background: #202020; border-width: .1em .1em .1em .8em; border: solid gray; overflow: auto; padding: .2em .6em; width: auto;">
<table><tbody>
<tr><td><pre style="line-height: 125%; margin: 0;"> 1
2
3
4
5
6
7
8
9
10</pre>
</td><td><pre style="line-height: 125%; margin: 0;"><span style="color: #6ab825; font-weight: bold;">private</span> <span style="color: #6ab825; font-weight: bold;">void</span> <span style="color: #447fcf;">generateNounce</span><span style="color: #d0d0d0;">()</span> <span style="color: #d0d0d0;">{</span>
<span style="color: #6ab825; font-weight: bold;">final</span> <span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">chars</span> <span style="color: #d0d0d0;">=</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">;</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">randStr</span> <span style="color: #d0d0d0;">=</span> <span style="background-color: #e3d2d2; color: #a61717;">''</span><span style="color: #d0d0d0;">;</span>
<span style="color: #6ab825; font-weight: bold;">while</span> <span style="color: #d0d0d0;">(randStr.</span><span style="color: #bbbbbb;">length</span><span style="color: #d0d0d0;">()</span> <span style="color: #d0d0d0;"><</span> <span style="color: #3677a9;">32</span><span style="color: #d0d0d0;">)</span> <span style="color: #d0d0d0;">{</span>
<span style="color: #d0d0d0;">Integer</span> <span style="color: #d0d0d0;">idx</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">Math.</span><span style="color: #bbbbbb;">mod</span><span style="color: #d0d0d0;">(Math.</span><span style="color: #bbbbbb;">abs</span><span style="color: #d0d0d0;">(Crypto.</span><span style="color: #bbbbbb;">getRandomInteger</span><span style="color: #d0d0d0;">()),</span> <span style="color: #d0d0d0;">chars.</span><span style="color: #bbbbbb;">length</span><span style="color: #d0d0d0;">());</span>
<span style="color: #d0d0d0;">randStr</span> <span style="color: #d0d0d0;">+=</span> <span style="color: #d0d0d0;">chars.</span><span style="color: #bbbbbb;">substring</span><span style="color: #d0d0d0;">(idx,</span> <span style="color: #d0d0d0;">idx+</span><span style="color: #3677a9;">1</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">}</span>
<span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthNonce</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">EncodingUtil.</span><span style="color: #bbbbbb;">base64Encode</span><span style="color: #d0d0d0;">(Blob.</span><span style="color: #bbbbbb;">valueOf</span><span style="color: #d0d0d0;">(randStr)).</span><span style="color: #bbbbbb;">remove</span><span style="color: #d0d0d0;">(</span><span style="color: #ed9d13;">'='</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">}</span>
</pre>
</td></tr>
</tbody></table>
</div>
<div style="text-align: left;">
<h3 style="clear: both; text-align: left;">
<br /><b>2.3 <u>Generating oauth_signature in apex code</u></b></h3>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
As per the <a href="https://dev.twitter.com/oauth/overview/creating-signatures" rel="nofollow" target="_blank">API documentation</a>, we have to collect all the parameters used in the request along with the oauth parameters and encrypt them by a signing algorithm. Also we have to create a signing key from consumer secret. We can use the Apex Crypto class for HMAC-SHA1 encoding.</div>
<!-- HTML generated using hilite.me --><br />
<div style="background: #202020; border-width: .1em .1em .1em .8em; border: solid gray; overflow: auto; padding: .2em .6em; width: auto;">
<table><tbody>
<tr><td><pre style="line-height: 125%; margin: 0;"> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30</pre>
</td><td><pre style="line-height: 125%; margin: 0;"><span style="color: #6ab825; font-weight: bold;">private</span> <span style="color: #d0d0d0;">String</span> <span style="color: #447fcf;">generateSignature</span><span style="color: #d0d0d0;">(String</span> <span style="color: #d0d0d0;">httpMethod,</span> <span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">baseUrl,</span> <span style="color: #d0d0d0;">Map<String,</span> <span style="color: #d0d0d0;">String></span> <span style="color: #d0d0d0;">params){</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">encodedString</span> <span style="color: #d0d0d0;">=</span> <span style="background-color: #e3d2d2; color: #a61717;">''</span><span style="color: #d0d0d0;">;</span>
<span style="color: #d0d0d0;">Map<String,</span> <span style="color: #d0d0d0;">String></span> <span style="color: #d0d0d0;">encodeParams</span> <span style="color: #d0d0d0;">=</span> <span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #d0d0d0;">Map<String,</span> <span style="color: #d0d0d0;">String>();</span>
<span style="color: #d0d0d0;">encodeParams.</span><span style="color: #bbbbbb;">putAll</span><span style="color: #d0d0d0;">(params);</span>
<span style="color: #d0d0d0;">encodeParams.</span><span style="color: #bbbbbb;">put</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">oauth_nonce</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span> <span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthNonce</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">encodeParams.</span><span style="color: #bbbbbb;">put</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">oauth_signature_method</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span> <span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthSignatureMethod</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">encodeParams.</span><span style="color: #bbbbbb;">put</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">oauth_timestamp</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span> <span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthTimestamp</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">encodeParams.</span><span style="color: #bbbbbb;">put</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">oauth_consumer_key</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span> <span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthConsumerKey</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">encodeParams.</span><span style="color: #bbbbbb;">put</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">oauth_version</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span> <span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthVersion</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">List<String></span> <span style="color: #d0d0d0;">keyList</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">New</span> <span style="color: #d0d0d0;">List<String>();</span>
<span style="color: #d0d0d0;">keyList.</span><span style="color: #bbbbbb;">addAll</span><span style="color: #d0d0d0;">(encodeParams.</span><span style="color: #bbbbbb;">keySet</span><span style="color: #d0d0d0;">());</span>
<span style="color: #d0d0d0;">keyList.</span><span style="color: #bbbbbb;">sort</span><span style="color: #d0d0d0;">();</span>
<span style="color: #6ab825; font-weight: bold;">for</span><span style="color: #d0d0d0;">(String</span> <span style="color: #d0d0d0;">key:</span> <span style="color: #d0d0d0;">keyList){</span>
<span style="color: #d0d0d0;">encodedString</span> <span style="color: #d0d0d0;">+=</span> <span style="color: #d0d0d0;">EncodingUtil.</span><span style="color: #bbbbbb;">urlEncode</span><span style="color: #d0d0d0;">(key,</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">UTF-</span><span style="color: #3677a9;">8</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">)</span> <span style="color: #d0d0d0;">+</span> <span style="color: #ed9d13;">'='</span> <span style="color: #d0d0d0;">+</span> <span style="color: #d0d0d0;">EncodingUtil.</span><span style="color: #bbbbbb;">urlEncode</span><span style="color: #d0d0d0;">(encodeParams.</span><span style="color: #bbbbbb;">get</span><span style="color: #d0d0d0;">(key),</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">UTF-</span><span style="color: #3677a9;">8</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">)</span> <span style="color: #d0d0d0;">+</span> <span style="color: #ed9d13;">'&'</span><span style="color: #d0d0d0;">;</span>
<span style="color: #d0d0d0;">}</span>
<span style="color: #d0d0d0;">encodedString</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">encodedString.</span><span style="color: #bbbbbb;">removeEnd</span><span style="color: #d0d0d0;">(</span><span style="color: #ed9d13;">'&'</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">baseString</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">httpMethod.</span><span style="color: #bbbbbb;">toUpperCase</span><span style="color: #d0d0d0;">()</span> <span style="color: #d0d0d0;">+</span> <span style="color: #ed9d13;">'&'</span> <span style="color: #d0d0d0;">+</span> <span style="color: #d0d0d0;">EncodingUtil.</span><span style="color: #bbbbbb;">urlEncode</span><span style="color: #d0d0d0;">(baseUrl,</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">UTF-</span><span style="color: #3677a9;">8</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">)</span> <span style="color: #d0d0d0;">+</span> <span style="color: #ed9d13;">'&'</span> <span style="color: #d0d0d0;">+</span> <span style="color: #d0d0d0;">EncodingUtil.</span><span style="color: #bbbbbb;">urlEncode</span><span style="color: #d0d0d0;">(encodedString,</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">UTF-</span><span style="color: #3677a9;">8</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">signingKey</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">EncodingUtil.</span><span style="color: #bbbbbb;">urlEncode</span><span style="color: #d0d0d0;">(</span><span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthConsumerSecret</span><span style="color: #d0d0d0;">,</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">UTF-</span><span style="color: #3677a9;">8</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">)</span> <span style="color: #d0d0d0;">+</span> <span style="color: #ed9d13;">'&'</span><span style="color: #d0d0d0;">;</span>
<span style="color: #6ab825; font-weight: bold;">if</span><span style="color: #d0d0d0;">(params.</span><span style="color: #bbbbbb;">containsKey</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">oauth_token</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">)</span> <span style="color: #d0d0d0;">&&</span> <span style="color: #d0d0d0;">String.</span><span style="color: #bbbbbb;">isNotBlank</span><span style="color: #d0d0d0;">(</span><span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthTokenSecret</span><span style="color: #d0d0d0;">)){</span>
<span style="color: #d0d0d0;">signingKey</span> <span style="color: #d0d0d0;">+=</span> <span style="color: #d0d0d0;">EncodingUtil.</span><span style="color: #bbbbbb;">urlEncode</span><span style="color: #d0d0d0;">(</span><span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthTokenSecret</span><span style="color: #d0d0d0;">,</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">UTF-</span><span style="color: #3677a9;">8</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">}</span>
<span style="color: #d0d0d0;">Blob</span> <span style="color: #d0d0d0;">data</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">Crypto.</span><span style="color: #bbbbbb;">generateMac</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">hmacSHA1</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span> <span style="color: #d0d0d0;">Blob.</span><span style="color: #bbbbbb;">valueOf</span><span style="color: #d0d0d0;">(baseString),</span> <span style="color: #d0d0d0;">Blob.</span><span style="color: #bbbbbb;">valueOf</span><span style="color: #d0d0d0;">(signingKey));</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">signature</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">EncodingUtil.</span><span style="color: #bbbbbb;">base64Encode</span><span style="color: #d0d0d0;">(data);</span>
<span style="color: #6ab825; font-weight: bold;">return</span> <span style="color: #d0d0d0;">signature;</span>
<span style="color: #d0d0d0;">}</span>
</pre>
</td></tr>
</tbody></table>
</div>
<h3 style="clear: both; text-align: left;">
<br /><b>2.4 <u>Generating the authorization header in apex code</u></b></h3>
<div class="separator" style="clear: both; text-align: left;">
<b><br /></b></div>
<!-- HTML generated using hilite.me --><br />
<div style="background: #202020; border-width: .1em .1em .1em .8em; border: solid gray; overflow: auto; padding: .2em .6em; width: auto;">
<table><tbody>
<tr><td><pre style="line-height: 125%; margin: 0;"> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21</pre>
</td><td><pre style="line-height: 125%; margin: 0;"><span style="color: #6ab825; font-weight: bold;">private</span> <span style="color: #d0d0d0;">String</span> <span style="color: #447fcf;">generateAuthHeader</span><span style="color: #d0d0d0;">(Map<String,</span> <span style="color: #d0d0d0;">String></span> <span style="color: #d0d0d0;">params){</span>
<span style="color: #d0d0d0;">Map<String,</span> <span style="color: #d0d0d0;">String></span> <span style="color: #d0d0d0;">authParams</span> <span style="color: #d0d0d0;">=</span> <span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #d0d0d0;">Map<String,</span> <span style="color: #d0d0d0;">String>();</span>
<span style="color: #d0d0d0;">authParams.</span><span style="color: #bbbbbb;">putAll</span><span style="color: #d0d0d0;">(params);</span>
<span style="color: #d0d0d0;">authParams.</span><span style="color: #bbbbbb;">put</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">oauth_consumer_key</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span> <span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthConsumerKey</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">authParams.</span><span style="color: #bbbbbb;">put</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">oauth_signature_method</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span> <span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthSignatureMethod</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">authParams.</span><span style="color: #bbbbbb;">put</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">oauth_timestamp</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span> <span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthTimestamp</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">authParams.</span><span style="color: #bbbbbb;">put</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">oauth_nonce</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span> <span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthNonce</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">authParams</span> <span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">put</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">oauth_version</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span> <span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthVersion</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">List<String></span> <span style="color: #d0d0d0;">keyList</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">New</span> <span style="color: #d0d0d0;">List<String>();</span>
<span style="color: #d0d0d0;">keyList.</span><span style="color: #bbbbbb;">addAll</span><span style="color: #d0d0d0;">(authParams</span> <span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">keySet</span><span style="color: #d0d0d0;">());</span>
<span style="color: #d0d0d0;">keyList.</span><span style="color: #bbbbbb;">sort</span><span style="color: #d0d0d0;">();</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">OathString</span> <span style="color: #d0d0d0;">=</span> <span style="background-color: #e3d2d2; color: #a61717;">''</span><span style="color: #d0d0d0;">;</span>
<span style="color: #6ab825; font-weight: bold;">for</span><span style="color: #d0d0d0;">(String</span> <span style="color: #d0d0d0;">key:</span> <span style="color: #d0d0d0;">keyList){</span>
<span style="color: #d0d0d0;">OathString</span> <span style="color: #d0d0d0;">+=</span> <span style="color: #d0d0d0;">EncodingUtil.</span><span style="color: #bbbbbb;">urlEncode</span><span style="color: #d0d0d0;">(key,</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">UTF-</span><span style="color: #3677a9;">8</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">)</span> <span style="color: #d0d0d0;">+</span> <span style="color: #ed9d13;">'='</span> <span style="color: #d0d0d0;">+</span> <span style="color: #ed9d13;">'"'</span> <span style="color: #d0d0d0;">+</span> <span style="color: #d0d0d0;">EncodingUtil.</span><span style="color: #bbbbbb;">urlEncode</span><span style="color: #d0d0d0;">(authParams.</span><span style="color: #bbbbbb;">get</span><span style="color: #d0d0d0;">(key),</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">UTF-</span><span style="color: #3677a9;">8</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">)</span> <span style="color: #d0d0d0;">+</span> <span style="color: #ed9d13;">'"'</span> <span style="color: #d0d0d0;">+</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">;</span>
<span style="color: #d0d0d0;">}</span>
<span style="color: #d0d0d0;">OathString</span> <span style="color: #d0d0d0;">=</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">OAuth</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span> <span style="color: #d0d0d0;">+</span> <span style="color: #d0d0d0;">OathString.</span><span style="color: #bbbbbb;">removeEnd</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">);</span>
<span style="color: #6ab825; font-weight: bold;">return</span> <span style="color: #d0d0d0;">OathString</span> <span style="color: #d0d0d0;">;</span>
<span style="color: #d0d0d0;">}</span>
</pre>
</td></tr>
</tbody></table>
</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<h3 style="clear: both; text-align: left;">
<span style="font-weight: bold;">2.4 <u>Apex callout to get the Request Token</u></span></h3>
<div>
<span style="font-weight: bold;"><u><br /></u></span></div>
<div style="clear: both; text-align: left;">
<span style="font-weight: normal;">For this request we don't have the </span>oauth_token & oauth_token_secret. We can use rest of the parameters for generating signature and the header.</div>
<div style="clear: both; text-align: left;">
</div>
<div style="background: #202020; border-width: .1em .1em .1em .8em; border: solid gray; overflow: auto; padding: .2em .6em; width: auto;">
<table><tbody>
<tr><td><pre style="line-height: 125%; margin: 0;"> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35</pre>
</td><td><pre style="line-height: 125%; margin: 0;"><span style="color: #6ab825; font-weight: bold;">public</span> <span style="color: #6ab825; font-weight: bold;">void</span> <span style="color: #447fcf;">getAuthToken</span><span style="color: #d0d0d0;">(){</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">requestUrl</span> <span style="color: #d0d0d0;">=</span> <span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">baseUrl</span> <span style="color: #d0d0d0;">+</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">/oauth/request_token</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">;</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">requestMethod</span> <span style="color: #d0d0d0;">=</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">POST</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">;</span>
<span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">getTimeStamp</span><span style="color: #d0d0d0;">();</span>
<span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">generateNounce</span><span style="color: #d0d0d0;">();</span>
<span style="color: #d0d0d0;">Map<String,</span> <span style="color: #d0d0d0;">String></span> <span style="color: #d0d0d0;">params</span> <span style="color: #d0d0d0;">=</span> <span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #d0d0d0;">Map<String,</span> <span style="color: #d0d0d0;">String>();</span>
<span style="color: #d0d0d0;">params.</span><span style="color: #bbbbbb;">put</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">oauth_callback</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span> <span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauth_callback</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">authSignature</span> <span style="color: #d0d0d0;">=</span> <span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">generateSignature</span><span style="color: #d0d0d0;">(requestMethod,</span> <span style="color: #d0d0d0;">requestUrl,</span> <span style="color: #d0d0d0;">params);</span>
<span style="color: #d0d0d0;">params</span> <span style="color: #d0d0d0;">=</span> <span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #d0d0d0;">Map<String,</span> <span style="color: #d0d0d0;">String>();</span>
<span style="color: #d0d0d0;">params</span> <span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">put</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">oauth_callback</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span><span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauth_callback</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">params</span> <span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">put</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">oauth_signature</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span> <span style="color: #d0d0d0;">authSignature);</span>
<span style="color: #d0d0d0;">HttpRequest</span> <span style="color: #d0d0d0;">request</span> <span style="color: #d0d0d0;">=</span> <span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #d0d0d0;">HttpRequest();</span>
<span style="color: #d0d0d0;">request.</span><span style="color: #bbbbbb;">setHeader</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">Authorization</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span> <span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">generateAuthHeader</span><span style="color: #d0d0d0;">(params));</span>
<span style="color: #d0d0d0;">request.</span><span style="color: #bbbbbb;">setMethod</span><span style="color: #d0d0d0;">(requestMethod);</span>
<span style="color: #d0d0d0;">request.</span><span style="color: #bbbbbb;">setEndpoint</span><span style="color: #d0d0d0;">(requestUrl);</span>
<span style="color: #d0d0d0;">HttpResponse</span> <span style="color: #d0d0d0;">response</span> <span style="color: #d0d0d0;">=</span> <span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #d0d0d0;">HttpResponse();</span>
<span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthToken</span> <span style="color: #d0d0d0;">=</span> <span style="background-color: #e3d2d2; color: #a61717;">''</span><span style="color: #d0d0d0;">;</span>
<span style="color: #d0d0d0;">Http</span> <span style="color: #d0d0d0;">http</span> <span style="color: #d0d0d0;">=</span> <span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #d0d0d0;">Http();</span>
<span style="color: #6ab825; font-weight: bold;">try</span><span style="color: #d0d0d0;">{</span>
<span style="color: #d0d0d0;">response</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">http.</span><span style="color: #bbbbbb;">send</span><span style="color: #d0d0d0;">(request);</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">responseBody</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">response.</span><span style="color: #bbbbbb;">getBody</span><span style="color: #d0d0d0;">();</span>
<span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthToken</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">responseBody.</span><span style="color: #bbbbbb;">substringBefore</span><span style="color: #d0d0d0;">(</span><span style="color: #ed9d13;">'&'</span><span style="color: #d0d0d0;">).</span><span style="color: #bbbbbb;">substringAfter</span><span style="color: #d0d0d0;">(</span><span style="color: #ed9d13;">'='</span><span style="color: #d0d0d0;">);</span>
<span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthTokenSecret</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">detail.</span><span style="color: #bbbbbb;">substringAfter</span><span style="color: #d0d0d0;">(</span><span style="color: #ed9d13;">'&'</span><span style="color: #d0d0d0;">).</span><span style="color: #bbbbbb;">substringBetween</span><span style="color: #d0d0d0;">(</span><span style="color: #ed9d13;">'='</span><span style="color: #d0d0d0;">,</span><span style="color: #ed9d13;">'&'</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">ApexPages.</span><span style="color: #bbbbbb;">currentPage</span><span style="color: #d0d0d0;">().</span><span style="color: #bbbbbb;">setCookies</span><span style="color: #d0d0d0;">(</span><span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #d0d0d0;">Cookie[]{</span><span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #d0d0d0;">Cookie(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">TSecret</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span> <span style="color: #d0d0d0;">oauthTokenSecret,</span> <span style="color: #6ab825; font-weight: bold;">null</span><span style="color: #d0d0d0;">,</span> <span style="color: #d0d0d0;">-</span><span style="color: #3677a9;">1</span><span style="color: #d0d0d0;">,</span> <span style="color: #6ab825; font-weight: bold;">false</span><span style="color: #d0d0d0;">)});</span>
<span style="color: #d0d0d0;">}</span><span style="color: #6ab825; font-weight: bold;">catch</span><span style="color: #d0d0d0;">(Exception</span> <span style="color: #d0d0d0;">e){</span>
<span style="color: #d0d0d0;">system.</span><span style="color: #bbbbbb;">debug</span><span style="color: #d0d0d0;">(e.</span><span style="color: #bbbbbb;">getMessage</span><span style="color: #d0d0d0;">());</span>
<span style="color: #d0d0d0;">}</span>
<span style="color: #6ab825; font-weight: bold;">return</span> <span style="color: #6ab825; font-weight: bold;">null</span><span style="color: #d0d0d0;">;</span>
<span style="color: #d0d0d0;">}</span>
</pre>
</td></tr>
</tbody></table>
</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
We will get a responds with oauth_token & oauth_token_secret as below:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<span style="background-color: #fefefe; color: #292f33; font-family: monospace, monospace; font-size: 14px; line-height: 23.1px;"><b><i><i>oauth_token=Z6eEdO8MOmk394WozF5oKyuAv855l4Mlqo7hhlSLik&oauth_token_secret=Kd75W4OQfb2oJTV0vzGzeXftVAwgMnEK9MumzYcM&oauth_callback_confirmed=true</i></i></b></span><br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
After getting oauth_token & oauth_token_secret we have to go for user authentication. After user authentication we need this oauth_token_secret for next request. So we need to store the oauth_token_secret temporally. Here we can save this in a cookie.</div>
<h2 style="clear: both; text-align: left;">
<br /><b> 3. <u>Authenticate with User</u></b></h2>
</div>
<div style="text-align: left;">
<b><br /></b></div>
<div style="text-align: left;">
<b> </b> As per the <a href="https://dev.twitter.com/oauth/reference/get/oauth/authenticate" rel="nofollow" target="_blank">documentation</a>, we have to call the authentication URL in browser with the oauth_ token obtained from previous step as a parameter. </div>
<div style="text-align: left;">
<br /></div>
<!-- HTML generated using hilite.me --><br />
<div style="background: #202020; border-width: .1em .1em .1em .8em; border: solid gray; overflow: auto; padding: .2em .6em; width: auto;">
<table><tbody>
<tr><td><pre style="line-height: 125%; margin: 0;">1
2
3
4
5
6</pre>
</td><td><pre style="line-height: 125%; margin: 0;"><span style="color: #6ab825; font-weight: bold;">public</span> <span style="color: #d0d0d0;">PageReference</span> <span style="color: #447fcf;">authenticate</span><span style="color: #d0d0d0;">(){</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">requestUrl</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">baseUrl</span> <span style="color: #d0d0d0;">+</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">/oauth/authenticate?oauth_token=</span><span style="background-color: #e3d2d2; color: #a61717;">'</span> <span style="color: #d0d0d0;">+</span> <span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthtoken</span> <span style="color: #d0d0d0;">+</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">&force_login=</span><span style="color: #6ab825; font-weight: bold;">true</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">;</span>
<span style="color: #6ab825; font-weight: bold;">return</span> <span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #447fcf;">PageReference</span><span style="color: #d0d0d0;">(requestUrl).</span><span style="color: #bbbbbb;">setRedirect</span><span style="color: #d0d0d0;">(</span><span style="color: #6ab825; font-weight: bold;">true</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">}</span>
</pre>
</td></tr>
</tbody></table>
</div>
<div style="text-align: left;">
<b><br /></b>
<br />
This will redirect to the Twitter login page. After successful user login, Twitter redirects to our Visualforce page with <span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 12px; white-space: pre;"><b><i>oauth_token & oauth_verifier</i></b> </span></span>as URL parameters.<br />
<br />
<h2 style="text-align: left;">
4. <u>Obtain the Access Token</u></h2>
<br />
After getting the oauth_varifier, we have to obtain the access_token by another POST request.<br />
<br />
The API request as per the <a href="https://dev.twitter.com/oauth/reference/post/oauth/access_token" rel="nofollow" target="_blank">API documentation</a>:<br />
<br />
Request Method: POST<br />
End point: https://api.twitter.com/oauth/access_token<br />
Parameters: oauth_verifier = The value we collected on previous step.<br />
Header: Authorization header<br />
<br />
To generate the header, follow the same steps for Obtain the request token described above. So we have to generate new time_stamp, new nonce, new signature with new parameters and new signing key as a combination of consumer_secret and oauth_token_secret (already saved in cookies). And we have to include the oauth_token for both signature and header.<br />
<br />
The corresponding apex code:<br />
<br />
<!-- HTML generated using hilite.me --><br />
<div style="background: #202020; border-width: .1em .1em .1em .8em; border: solid gray; overflow: auto; padding: .2em .6em; width: auto;">
<table><tbody>
<tr><td><pre style="line-height: 125%; margin: 0;"> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51</pre>
</td><td><pre style="line-height: 125%; margin: 0;"><span style="color: #6ab825; font-weight: bold;">public</span> <span style="color: #6ab825; font-weight: bold;">void</span> <span style="color: #447fcf;">getAccesToken</span><span style="color: #d0d0d0;">(){</span>
<span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthtoken</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">ApexPages.</span><span style="color: #bbbbbb;">currentPage</span><span style="color: #d0d0d0;">().</span><span style="color: #bbbbbb;">getparameters</span><span style="color: #d0d0d0;">().</span><span style="color: #bbbbbb;">get</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">oauth_token</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">);</span>
<span style="color: #6ab825; font-weight: bold;">if</span><span style="color: #d0d0d0;">(String.</span><span style="color: #bbbbbb;">isNotBlank</span><span style="color: #d0d0d0;">(</span><span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthtoken</span><span style="color: #d0d0d0;">)){</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">twitterId;</span>
<span style="color: #d0d0d0;">Cookie</span> <span style="color: #d0d0d0;">counter</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">ApexPages.</span><span style="color: #bbbbbb;">currentPage</span><span style="color: #d0d0d0;">().</span><span style="color: #bbbbbb;">getCookies</span><span style="color: #d0d0d0;">().</span><span style="color: #bbbbbb;">get</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">TSecret</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">);</span>
<span style="color: #6ab825; font-weight: bold;">if</span><span style="color: #d0d0d0;">(counter</span> <span style="color: #d0d0d0;">!=</span> <span style="color: #6ab825; font-weight: bold;">null</span><span style="color: #d0d0d0;">)</span> <span style="color: #d0d0d0;">{</span>
<span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthTokenSecret</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">counter.</span><span style="color: #bbbbbb;">getValue</span><span style="color: #d0d0d0;">();</span>
<span style="color: #d0d0d0;">ApexPages.</span><span style="color: #bbbbbb;">currentPage</span><span style="color: #d0d0d0;">().</span><span style="color: #bbbbbb;">setCookies</span><span style="color: #d0d0d0;">(</span><span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #d0d0d0;">Cookie[]{</span><span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #d0d0d0;">Cookie(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">TSecret</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span> <span style="background-color: #e3d2d2; color: #a61717;">''</span><span style="color: #d0d0d0;">,</span> <span style="color: #6ab825; font-weight: bold;">null</span><span style="color: #d0d0d0;">,</span> <span style="color: #d0d0d0;">-</span><span style="color: #3677a9;">1</span><span style="color: #d0d0d0;">,</span> <span style="color: #6ab825; font-weight: bold;">false</span><span style="color: #d0d0d0;">)});</span>
<span style="color: #d0d0d0;">}</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">requestUrl</span> <span style="color: #d0d0d0;">=</span> <span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">baseUrl</span> <span style="color: #d0d0d0;">+</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">/oauth/access_token</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">;</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">httpMethod</span> <span style="color: #d0d0d0;">=</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">POST</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">;</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">oauthVerifier</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">ApexPages.</span><span style="color: #bbbbbb;">currentPage</span><span style="color: #d0d0d0;">().</span><span style="color: #bbbbbb;">getparameters</span><span style="color: #d0d0d0;">().</span><span style="color: #bbbbbb;">get</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">oauth_verifier</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">);</span>
<span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">getTimeStamb</span><span style="color: #d0d0d0;">();</span>
<span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">generateNounce</span><span style="color: #d0d0d0;">();</span>
<span style="color: #d0d0d0;">Map<String,</span> <span style="color: #d0d0d0;">String></span> <span style="color: #d0d0d0;">params</span> <span style="color: #d0d0d0;">=</span> <span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #d0d0d0;">Map<String,</span> <span style="color: #d0d0d0;">String>();</span>
<span style="color: #d0d0d0;">params.</span><span style="color: #bbbbbb;">put</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">oauth_token</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span> <span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthToken</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">params.</span><span style="color: #bbbbbb;">put</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">oauth_verifier</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span> <span style="color: #d0d0d0;">oauthVerifier);</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">authSignature</span> <span style="color: #d0d0d0;">=</span> <span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">generateSignature</span><span style="color: #d0d0d0;">(httpMethod,</span> <span style="color: #d0d0d0;">requestUrl,</span> <span style="color: #d0d0d0;">params);</span>
<span style="color: #d0d0d0;">params</span> <span style="color: #d0d0d0;">=</span> <span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #d0d0d0;">Map<String,</span> <span style="color: #d0d0d0;">String>();</span>
<span style="color: #d0d0d0;">params.</span><span style="color: #bbbbbb;">put</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">oauth_token</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span><span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthtoken</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">params.</span><span style="color: #bbbbbb;">put</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">oauth_signature</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,authSignature);</span>
<span style="color: #d0d0d0;">HttpRequest</span> <span style="color: #d0d0d0;">request</span> <span style="color: #d0d0d0;">=</span> <span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #d0d0d0;">HttpRequest();</span>
<span style="color: #d0d0d0;">HttpResponse</span> <span style="color: #d0d0d0;">response</span> <span style="color: #d0d0d0;">=</span> <span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #d0d0d0;">HttpResponse();</span>
<span style="color: #d0d0d0;">Http</span> <span style="color: #d0d0d0;">http</span> <span style="color: #d0d0d0;">=</span> <span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #d0d0d0;">Http();</span>
<span style="color: #d0d0d0;">request.</span><span style="color: #bbbbbb;">setEndPoint</span><span style="color: #d0d0d0;">(requestUrl);</span>
<span style="color: #d0d0d0;">request.</span><span style="color: #bbbbbb;">setMethod</span><span style="color: #d0d0d0;">(httpMethod);</span>
<span style="color: #d0d0d0;">request.</span><span style="color: #bbbbbb;">setHeader</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">Authorization</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span> <span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">generateAuthHeader</span><span style="color: #d0d0d0;">(params));</span>
<span style="color: #d0d0d0;">request.</span><span style="color: #bbbbbb;">setBody</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">oauth_verifier=</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">+EncodingUtil.</span><span style="color: #bbbbbb;">urlEncode</span><span style="color: #d0d0d0;">(oauthVerifier,</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">UTF-</span><span style="color: #3677a9;">8</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">));</span>
<span style="color: #6ab825; font-weight: bold;">try</span><span style="color: #d0d0d0;">{</span>
<span style="color: #d0d0d0;">response</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">http.</span><span style="color: #bbbbbb;">send</span><span style="color: #d0d0d0;">(request);</span>
<span style="color: #d0d0d0;">String</span> <span style="color: #d0d0d0;">responseBody</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">response.</span><span style="color: #bbbbbb;">getBody</span><span style="color: #d0d0d0;">();</span>
<span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthToken</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">responseBody.</span><span style="color: #bbbbbb;">substringBetween</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">oauth_token=</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span> <span style="color: #ed9d13;">'&'</span><span style="color: #d0d0d0;">);</span>
<span style="color: #6ab825; font-weight: bold;">this</span><span style="color: #d0d0d0;">.</span><span style="color: #bbbbbb;">oauthTokenSecret</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">responseBody.</span><span style="color: #bbbbbb;">substringBetween</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">oauth_token_secret=</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span> <span style="color: #ed9d13;">'&'</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">twitterId</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">responseBody.</span><span style="color: #bbbbbb;">substringBetween</span><span style="color: #d0d0d0;">(</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">user_id=</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">,</span> <span style="color: #ed9d13;">'&'</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">detail</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">twitterId;</span>
<span style="color: #d0d0d0;">}</span><span style="color: #6ab825; font-weight: bold;">catch</span><span style="color: #d0d0d0;">(Exception</span> <span style="color: #d0d0d0;">e){</span>
<span style="color: #d0d0d0;">system.</span><span style="color: #bbbbbb;">debug</span><span style="color: #d0d0d0;">(e.</span><span style="color: #bbbbbb;">getMessage</span><span style="color: #d0d0d0;">());</span>
<span style="color: #d0d0d0;">}</span>
<span style="color: #d0d0d0;">}</span>
<span style="color: #d0d0d0;">}</span>
</pre>
</td></tr>
</tbody></table>
</div>
<br />
This will return the access_token, access_token_secret and the user details.<br />
<br />
<span style="background-color: #fefefe; color: #292f33; font-family: monospace, monospace; font-size: 14px; line-height: 23.1px;"><b><i>oauth_token=6253282-eWudHldSbIaelX7swmsiHImEL4KinwaGloHANdrY&oauth_token_secret=2EEfA6BG3ly3sR3RjE0IBSnlQu4ZrUzPiYKmrkVU&user_id=6253282&screen_name=twitterapi</i></b></span><br />
<br />
Using this token we can interact with the Twitter API to post or get tweets.<br />
<br />
<h4 style="text-align: left;">
References:</h4>
<div>
<ul style="text-align: left;">
<li><a href="http://oauth.net/core/1.0/" rel="nofollow" target="_blank">Oauth 1.0</a></li>
<li><a href="https://dev.twitter.com/oauth/overview" rel="nofollow" target="_blank">Twitter Oauth</a></li>
<li><a href="https://dev.twitter.com/rest/public" rel="nofollow" target="_blank">Twitter.com REST API</a></li>
<li><a href="https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_restful_crypto.htm" rel="nofollow" target="_blank">Apex Crypto Class</a></li>
</ul>
<div>
<br /></div>
</div>
<div>
<br /></div>
<div style="orphans: auto; text-align: left; text-indent: 0px; widows: 1;">
</div>
</div>
</div>Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com13tag:blogger.com,1999:blog-6528314001205989075.post-20492987719815783232015-11-24T19:02:00.000+05:302015-11-24T19:02:56.445+05:30What is Saleforce.com ? <div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeKmwc0HuzRT00IJk1Uws6u6v3BLteSH-jfIdLIUs-AKPGKoKQ1ssJrRRvpbluUQGdp_deLqidcgwoc7Caz8xolECFEU7S3SuP5HUi6uG561NBh1zEtaP7DXieWutU8vTolppcq2ikJA0/s1600/sfdclogo1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="296" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeKmwc0HuzRT00IJk1Uws6u6v3BLteSH-jfIdLIUs-AKPGKoKQ1ssJrRRvpbluUQGdp_deLqidcgwoc7Caz8xolECFEU7S3SuP5HUi6uG561NBh1zEtaP7DXieWutU8vTolppcq2ikJA0/s400/sfdclogo1.png" width="400" /></a></div>
<br />
Salesforce is an on-demand software which is hosted in cloud servers. Salesforce allows us to create & implement our own applications in a secure cloud platform. Hence we don't worry about the hardware, operating systems, databases, maintenance cost, etc.. We just need a web browser and an internet connection.<br />
<br />
The subscription model of Salesforce provide us a software instance, where we can play our own games. Just a like the hostel rooms, we will be allotted to one room with basic furniture & interior amenities. There we can arrange our own interior and we can create extra facilities. And also if we need more space, we can add more rooms as required.<br />
<br />
The Salesforce has a built-in CRM (Customer Relationship Management) software, which is delivered entirely over internet. This CRM has the flexibility to customize as per our business rules. Inn-addition to the CRM, Salesforce provides a platform to create our own applications. It also provides a app store to exchange our custom Salesforce applications.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYKzAyLfU7w1AZzvsK4kmsjlWsO6VP35GfNjDkKw5rjk1Qey2bz3vqE04z2_7-x2AC91FFpj8KlCOxzrLnfOg8HdjhIKreGInf4fZqAg6u63K6wJXAVDNsYA-CI7T57qij_XTzAYTY_Nk/s1600/sfs.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYKzAyLfU7w1AZzvsK4kmsjlWsO6VP35GfNjDkKw5rjk1Qey2bz3vqE04z2_7-x2AC91FFpj8KlCOxzrLnfOg8HdjhIKreGInf4fZqAg6u63K6wJXAVDNsYA-CI7T57qij_XTzAYTY_Nk/s400/sfs.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b><u>What Salesforce provide us?</u></b></div>
<ul style="text-align: left;">
<li>A customizable CRM on cloud platform.</li>
<li>Set up & create Pont & Click applications over cloud.</li>
<li>A set of tools for business automation.</li>
<li>A secure platform to organize and store the data.</li>
<li>Customizable analytical reports & charts.</li>
<li>Well defined security model.</li>
<li>Customizable Email service.</li>
<li>Extended functionalities by customization.</li>
<li>Inbound & outbound integration with other systems.</li>
<li>A Platform to develop, test and deploy applications.</li>
<li>Platform to develop mobile friendly applications. </li>
</ul>
<div>
NB: This for my future reference only</div>
<div>
</div>
<br />
<div class="separator" style="clear: both; text-align: left;">
<b><u><br /></u></b></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<b><u><br /></u></b></div>
<br />
<br />
<br /></div>
Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com1tag:blogger.com,1999:blog-6528314001205989075.post-90196815771868799782015-11-24T11:09:00.002+05:302015-11-24T11:17:06.396+05:30Salesforce: Test Class For Apex Email Service<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
This is the test class for the functionality Apex Email Service to create case from email, in <a href="http://www.bitspace.in/2015/03/salesforce-apex-email-service-to-create.html" rel="nofollow" target="_blank">Previous Article </a><br />
<br />
<!-- HTML generated using hilite.me --><br />
<div style="background: #202020; border-width: .1em .1em .1em .8em; border: solid gray; overflow: auto; padding: .2em .6em; width: auto;">
<table><tbody>
<tr><td><pre style="line-height: 125%; margin: 0;"> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21</pre>
</td><td><pre style="line-height: 125%; margin: 0;"><span style="color: orange;">@isTest</span>
<span style="color: #6ab825; font-weight: bold;">private</span> <span style="color: #6ab825; font-weight: bold;">class</span> <span style="color: #447fcf;">Test_CustomEmailCase</span> <span style="color: #d0d0d0;">{</span>
<span style="color: #6ab825; font-weight: bold;">static</span> <span style="color: #d0d0d0;">testMethod</span> <span style="color: #6ab825; font-weight: bold;">void</span> <span style="color: #447fcf;">testEmailToCase</span><span style="color: #d0d0d0;">()</span> <span style="color: #d0d0d0;">{</span>
<span style="color: #d0d0d0;">Test.</span><span style="color: #bbbbbb;">startTest</span><span style="color: #d0d0d0;">();</span>
<span style="color: #999999; font-style: italic;">// Create a new email and envelope object</span>
<span style="color: #d0d0d0;">Messaging.</span><span style="color: #bbbbbb;">InboundEmail</span> <span style="color: #d0d0d0;">testEmail</span> <span style="color: #d0d0d0;">=</span> <span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #d0d0d0;">Messaging.</span><span style="color: #bbbbbb;">InboundEmail</span><span style="color: #d0d0d0;">();</span>
<span style="color: #d0d0d0;">Messaging.</span><span style="color: #bbbbbb;">InboundEnvelope</span> <span style="color: #d0d0d0;">envelope</span> <span style="color: #d0d0d0;">=</span> <span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #d0d0d0;">Messaging.</span><span style="color: #bbbbbb;">InboundEnvelope</span><span style="color: #d0d0d0;">();</span>
<span style="color: #d0d0d0;">testEmail.</span><span style="color: #bbbbbb;">subject</span> <span style="color: #d0d0d0;">=</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">The</span> <span style="color: #d0d0d0;">email</span> <span style="color: #d0d0d0;">subject</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">;</span>
<span style="color: #d0d0d0;">testEmail.</span><span style="color: #bbbbbb;">plainTextBody</span> <span style="color: #d0d0d0;">=</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">The</span> <span style="color: #d0d0d0;">email</span> <span style="color: #d0d0d0;">body</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">;</span>
<span style="color: #d0d0d0;">testEmail.</span><span style="color: #bbbbbb;">fromAddress</span> <span style="color: #d0d0d0;">=</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">test.</span><span style="color: #bbbbbb;">testing</span><span style="color: orange;">@sometest.com</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">;</span>
<span style="color: #999999; font-style: italic;">// Send the email</span>
<span style="color: #d0d0d0;">CustomEmailCase</span> <span style="color: #d0d0d0;">TestEmailCase</span> <span style="color: #d0d0d0;">=</span> <span style="color: #6ab825; font-weight: bold;">new</span> <span style="color: #d0d0d0;">CustomEmailCase();</span>
<span style="color: #999999; font-style: italic;">// Invock the handler function</span>
<span style="color: #d0d0d0;">CustomEmailCase.</span><span style="color: #bbbbbb;">handleInboundEmail</span><span style="color: #d0d0d0;">(testEmail,</span> <span style="color: #d0d0d0;">envelope);</span>
<span style="color: #d0d0d0;">system.</span><span style="color: #bbbbbb;">assertEquals</span><span style="color: #d0d0d0;">([SELECT</span> <span style="color: #d0d0d0;">Type</span> <span style="color: #d0d0d0;">FROM</span> <span style="color: #d0d0d0;">Case</span> <span style="color: #d0d0d0;">LIMIT</span> <span style="color: #3677a9;">1</span><span style="color: #d0d0d0;">].</span><span style="color: #bbbbbb;">Type</span><span style="color: #d0d0d0;">,</span> <span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">New</span><span style="background-color: #e3d2d2; color: #a61717;">'</span><span style="color: #d0d0d0;">);</span>
<span style="color: #d0d0d0;">Test.</span><span style="color: #bbbbbb;">stopTest</span><span style="color: #d0d0d0;">();</span>
<span style="color: #d0d0d0;">}</span>
<span style="color: #d0d0d0;">}</span>
</pre>
</td></tr>
</tbody></table>
</div>
NB: This is for my future reference. </div>
Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com0tag:blogger.com,1999:blog-6528314001205989075.post-2671958106933287742015-03-20T19:11:00.002+05:302015-03-20T19:12:54.721+05:30Salesforce: Apex Email Service To Create Cases<div dir="ltr" style="text-align: left;" trbidi="on">
Sometimes we have to create case form custom email formats. Sales force provides a Apex interface to process inbound emails.<br />
<br />
<b><u>1. Create Apex Class</u></b><br />
<b><u><br /></u></b>
Create an Apex class to parse the email content and create case as per your business logic.<br />
<!-- HTML generated using hilite.me --><br />
<div style="background: #ffffff; border-width: .1em .1em .1em .8em; border: solid gray; overflow: auto; padding: .2em .6em; width: auto;">
<table><tbody>
<tr><td><pre style="line-height: 125%; margin: 0;"> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82</pre>
</td><td><pre style="line-height: 125%; margin: 0;">global <span style="color: #008800; font-weight: bold;">class</span> <span style="color: #bb0066; font-weight: bold;">CustomEmailCase</span> <span style="color: #008800; font-weight: bold;">implements</span> Messaging<span style="color: #333333;">.</span><span style="color: #0000cc;">InboundEmailHandler</span> <span style="color: #333333;">{</span>
global Messaging<span style="color: #333333;">.</span><span style="color: #0000cc;">InboundEmailResult</span> <span style="color: #0066bb; font-weight: bold;">handleInboundEmail</span><span style="color: #333333;">(</span>Messaging<span style="color: #333333;">.</span><span style="color: #0000cc;">InboundEmail</span> email<span style="color: #333333;">,</span> Messaging<span style="color: #333333;">.</span><span style="color: #0000cc;">InboundEnvelope</span> envelope<span style="color: #333333;">)</span> <span style="color: #333333;">{</span>
Messaging<span style="color: #333333;">.</span><span style="color: #0000cc;">InboundEmailResult</span> result <span style="color: #333333;">=</span> <span style="color: #008800; font-weight: bold;">new</span> Messaging<span style="color: #333333;">.</span><span style="color: #0000cc;">InboundEmailresult</span><span style="color: #333333;">();</span>
<span style="color: #888888;">//sendTestMail('plain'+email.plainTextBody);</span>
<span style="color: #888888;">//sendTestMail('html'+email.htmlBody);</span>
<span style="color: #888888;">// if (email.subject == 'subject1' || email.subject == 'Email Subject 2') {</span>
<span style="color: #888888;">//sendTestMail(email.plainTextBody);</span>
<span style="color: #888888;">/* Email Format - Plaint text body</span>
<span style="color: #888888;"> NAME: Riyas basheer</span>
<span style="color: #888888;"> PHONE: 0398489724</span>
<span style="color: #888888;"> EMAIL: riyas@google.co.in</span>
<span style="color: #888888;"> */</span>
String pName <span style="color: #333333;">=</span> <span style="color: #008800; font-weight: bold;">this</span><span style="color: #333333;">.</span><span style="color: #0000cc;">parseEmailContent</span><span style="color: #333333;">(</span>email<span style="color: #333333;">.</span><span style="color: #0000cc;">plainTextBody</span><span style="color: #333333;">,</span> <span style="background-color: #ffaaaa; color: red;">'</span><span style="color: #997700; font-weight: bold;">NAME:</span> <span style="background-color: #ffaaaa; color: red;">'</span><span style="color: #333333;">);</span>
String pEmail <span style="color: #333333;">=</span> <span style="color: #008800; font-weight: bold;">this</span><span style="color: #333333;">.</span><span style="color: #0000cc;">parseEmailContent</span><span style="color: #333333;">(</span>email<span style="color: #333333;">.</span><span style="color: #0000cc;">plainTextBody</span><span style="color: #333333;">,</span> <span style="background-color: #ffaaaa; color: red;">'</span><span style="color: #997700; font-weight: bold;">EMAIL:</span> <span style="background-color: #ffaaaa; color: red;">'</span><span style="color: #333333;">);</span>
String pPhone <span style="color: #333333;">=</span> <span style="color: #008800; font-weight: bold;">this</span><span style="color: #333333;">.</span><span style="color: #0000cc;">parseEmailContent</span><span style="color: #333333;">(</span>email<span style="color: #333333;">.</span><span style="color: #0000cc;">plainTextBody</span><span style="color: #333333;">,</span> <span style="background-color: #ffaaaa; color: red;">'</span><span style="color: #997700; font-weight: bold;">PHONE:</span> <span style="background-color: #ffaaaa; color: red;">'</span><span style="color: #333333;">);</span>
<span style="color: #888888;">// Using the email address from above, query the database for a matching Contact.</span>
<span style="color: #008800; font-weight: bold;">if</span> <span style="color: #333333;">(</span>pEmail<span style="color: #333333;">.</span><span style="color: #0000cc;">length</span><span style="color: #333333;">()</span> <span style="color: #333333;">></span> <span style="color: #0000dd; font-weight: bold;">0</span><span style="color: #333333;">)</span> <span style="color: #333333;">{</span>
Contact <span style="color: #333333;">[]</span> contactArray <span style="color: #333333;">;</span>
Case emailCase <span style="color: #333333;">=</span> <span style="color: #008800; font-weight: bold;">new</span> Case<span style="color: #333333;">();</span>
<span style="color: #008800; font-weight: bold;">for</span><span style="color: #333333;">(</span>Contact <span style="color: #997700; font-weight: bold;">caseContact:</span><span style="color: #333333;">[</span>SELECT Id<span style="color: #333333;">,</span> Email<span style="color: #333333;">,</span> AccountId FROM Contact WHERE Email <span style="color: #333333;">=:</span> pEmail LIMIT <span style="color: #0000dd; font-weight: bold;">1</span><span style="color: #333333;">]){</span>
emailCase<span style="color: #333333;">.</span><span style="color: #0000cc;">ContactId</span> <span style="color: #333333;">=</span> caseContact<span style="color: #333333;">.</span><span style="color: #0000cc;">Id</span><span style="color: #333333;">;</span>
emailCase<span style="color: #333333;">.</span><span style="color: #0000cc;">AccountId</span> <span style="color: #333333;">=</span> caseContact<span style="color: #333333;">.</span><span style="color: #0000cc;">AccountId</span><span style="color: #333333;">;</span>
<span style="color: #333333;">}</span>
emailCase<span style="color: #333333;">.</span><span style="color: #0000cc;">Status</span> <span style="color: #333333;">=</span> <span style="background-color: #ffaaaa; color: red;">'</span>New<span style="background-color: #ffaaaa; color: red;">'</span><span style="color: #333333;">;</span>
emailCase<span style="color: #333333;">.</span><span style="color: #0000cc;">Origin</span> <span style="color: #333333;">=</span> <span style="background-color: #ffaaaa; color: red;">'</span>the orgin<span style="background-color: #ffaaaa; color: red;">'</span><span style="color: #333333;">;</span>
emailCase<span style="color: #333333;">.</span><span style="color: #0000cc;">Priority</span> <span style="color: #333333;">=</span> <span style="background-color: #ffaaaa; color: red;">'</span>Medium<span style="background-color: #ffaaaa; color: red;">'</span><span style="color: #333333;">;</span>
emailCase<span style="color: #333333;">.</span><span style="color: #0000cc;">Type</span> <span style="color: #333333;">=</span> <span style="background-color: #ffaaaa; color: red;">'</span>my type<span style="background-color: #ffaaaa; color: red;">'</span><span style="color: #333333;">;</span>
emailCase<span style="color: #333333;">.</span><span style="color: #0000cc;">Subject</span> <span style="color: #333333;">=</span> <span style="color: #0044dd;">' '</span><span style="color: #333333;">+</span>email<span style="color: #333333;">.</span><span style="color: #0000cc;">subject</span><span style="color: #333333;">;</span>
emailCase<span style="color: #333333;">.</span><span style="color: #0000cc;">p_Name__c</span> <span style="color: #333333;">=</span> pName<span style="color: #333333;">;</span>
emailCase<span style="color: #333333;">.</span><span style="color: #0000cc;">p_Email__c</span> <span style="color: #333333;">=</span> pEmail<span style="color: #333333;">;</span>
emailCase<span style="color: #333333;">.</span><span style="color: #0000cc;">p_Phone__c</span> <span style="color: #333333;">=</span> pPhone <span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">for</span><span style="color: #333333;">(</span>Group g <span style="color: #333333;">:</span> <span style="color: #333333;">[</span>SELECT Id FROM Group WHERE name <span style="color: #333333;">=</span> <span style="background-color: #ffaaaa; color: red;">'</span>myTeam<span style="background-color: #ffaaaa; color: red;">'</span><span style="color: #333333;">]){</span>
emailCase<span style="color: #333333;">.</span><span style="color: #0000cc;">OwnerId</span> <span style="color: #333333;">=</span> g<span style="color: #333333;">.</span><span style="color: #0000cc;">id</span><span style="color: #333333;">;</span>
<span style="color: #333333;">}</span>
<span style="color: #008800; font-weight: bold;">try</span> <span style="color: #333333;">{</span>
insert emailCase<span style="color: #333333;">;</span>
<span style="color: #333333;">}</span> <span style="color: #008800; font-weight: bold;">catch</span> <span style="color: #333333;">(</span>System<span style="color: #333333;">.</span><span style="color: #0000cc;">DmlException</span> e<span style="color: #333333;">)</span>
<span style="color: #333333;">{</span>System<span style="color: #333333;">.</span><span style="color: #0000cc;">debug</span><span style="color: #333333;">(</span><span style="background-color: #ffaaaa; color: red;">'</span><span style="color: #997700; font-weight: bold;">ERROR:</span> Not able to create <span style="color: #997700; font-weight: bold;">Case:</span> <span style="background-color: #ffaaaa; color: red;">'</span> <span style="color: #333333;">+</span> e<span style="color: #333333;">);</span>
<span style="color: #333333;">}</span>
<span style="color: #333333;">}</span><span style="color: #008800; font-weight: bold;">else</span> <span style="color: #008800; font-weight: bold;">if</span> <span style="color: #333333;">(</span>pEmail <span style="color: #333333;">==</span> <span style="color: #008800; font-weight: bold;">null</span> <span style="color: #333333;">||</span> pEmail<span style="color: #333333;">.</span><span style="color: #0000cc;">length</span><span style="color: #333333;">()</span> <span style="color: #333333;">==</span> <span style="color: #0000dd; font-weight: bold;">0</span><span style="color: #333333;">){</span>
System<span style="color: #333333;">.</span><span style="color: #0000cc;">debug</span><span style="color: #333333;">(</span><span style="background-color: #ffaaaa; color: red;">'</span>No email address was found<span style="color: #333333;">.</span><span style="background-color: #ffaaaa; color: red;">'</span><span style="color: #333333;">);</span>
<span style="color: #333333;">}</span>
<span style="color: #888888;">// }</span>
<span style="color: #008800; font-weight: bold;">return</span> result<span style="color: #333333;">;</span>
<span style="color: #333333;">}</span>
<span style="color: #008800; font-weight: bold;">private</span> String <span style="color: #0066bb; font-weight: bold;">parseEmailContent</span><span style="color: #333333;">(</span>String emailText<span style="color: #333333;">,</span> String dataLabal<span style="color: #333333;">){</span>
emailText <span style="color: #333333;">+=</span> <span style="color: #0044dd;">'\n'</span><span style="color: #333333;">;</span>
String dataValue <span style="color: #333333;">=</span> <span style="background-color: #ffaaaa; color: red;">''</span><span style="color: #333333;">;</span>
Integer labalIdx <span style="color: #333333;">=</span> emailText<span style="color: #333333;">.</span><span style="color: #0000cc;">indexOf</span><span style="color: #333333;">(</span>dataLabal<span style="color: #333333;">);</span>
<span style="color: #008800; font-weight: bold;">if</span><span style="color: #333333;">(</span>labalIdx <span style="color: #333333;">>=</span> <span style="color: #0000dd; font-weight: bold;">0</span><span style="color: #333333;">){</span>
dataValue <span style="color: #333333;">=</span> emailText<span style="color: #333333;">.</span><span style="color: #0000cc;">substring</span><span style="color: #333333;">(</span>labalIdx <span style="color: #333333;">+</span> dataLabal<span style="color: #333333;">.</span><span style="color: #0000cc;">length</span><span style="color: #333333;">(),</span> emailText<span style="color: #333333;">.</span><span style="color: #0000cc;">indexOf</span><span style="color: #333333;">(</span><span style="color: #0044dd;">'\n'</span><span style="color: #333333;">,</span> labalIdx <span style="color: #333333;">+</span> dataLabal<span style="color: #333333;">.</span><span style="color: #0000cc;">length</span><span style="color: #333333;">()));</span>
<span style="color: #008800; font-weight: bold;">if</span><span style="color: #333333;">(</span>String<span style="color: #333333;">.</span><span style="color: #0000cc;">isNotBlank</span><span style="color: #333333;">(</span>dataValue<span style="color: #333333;">)){</span>
dataValue <span style="color: #333333;">=</span> dataValue<span style="color: #333333;">.</span><span style="color: #0000cc;">trim</span><span style="color: #333333;">();</span>
<span style="color: #333333;">}</span>
<span style="color: #333333;">}</span>
<span style="color: #008800; font-weight: bold;">return</span> dataValue<span style="color: #333333;">;</span>
<span style="color: #333333;">}</span>
<span style="color: #008800; font-weight: bold;">private</span> <span style="color: #333399; font-weight: bold;">void</span> <span style="color: #0066bb; font-weight: bold;">sendTestMail</span><span style="color: #333333;">(</span>String body <span style="color: #333333;">){</span>
List<span style="color: #333333;"><</span>Messaging<span style="color: #333333;">.</span><span style="color: #0000cc;">SingleEmailMessage</span><span style="color: #333333;">></span> mails <span style="color: #333333;">=</span> <span style="color: #008800; font-weight: bold;">new</span> List<span style="color: #333333;"><</span>Messaging<span style="color: #333333;">.</span><span style="color: #0000cc;">SingleEmailMessage</span><span style="color: #333333;">>();</span>
Messaging<span style="color: #333333;">.</span><span style="color: #0000cc;">SingleEmailMessage</span> mail <span style="color: #333333;">=</span> <span style="color: #008800; font-weight: bold;">new</span> Messaging<span style="color: #333333;">.</span><span style="color: #0000cc;">SingleEmailMessage</span><span style="color: #333333;">();</span>
List<span style="color: #333333;"><</span>String<span style="color: #333333;">></span> sendTo <span style="color: #333333;">=</span> <span style="color: #008800; font-weight: bold;">new</span> List<span style="color: #333333;"><</span>String<span style="color: #333333;">>();</span>
sendTo<span style="color: #333333;">.</span><span style="color: #0000cc;">add</span><span style="color: #333333;">(</span><span style="background-color: #ffaaaa; color: red;">'</span>riyas<span style="color: #333333;">.</span><span style="color: #0000cc;">salesforce</span><span style="color: #555555; font-weight: bold;">@gmail.com</span><span style="background-color: #ffaaaa; color: red;">'</span><span style="color: #333333;">);</span>
mail<span style="color: #333333;">.</span><span style="color: #0000cc;">setToAddresses</span><span style="color: #333333;">(</span>sendTo<span style="color: #333333;">);</span>
mail<span style="color: #333333;">.</span><span style="color: #0000cc;">setReplyTo</span><span style="color: #333333;">(</span><span style="background-color: #ffaaaa; color: red;">'</span><span style="line-height: 125%;">riyas</span><span style="color: #333333; line-height: 125%;">.</span><span style="color: #0000cc; line-height: 125%;">salesforce</span><span style="color: #555555; font-weight: bold; line-height: 125%;">@gmail.com</span><span style="background-color: #ffaaaa; color: red; line-height: 125%;">'</span><span style="color: #333333; line-height: 125%;">);</span>
mail<span style="color: #333333;">.</span><span style="color: #0000cc;">setSenderDisplayName</span><span style="color: #333333;">(</span><span style="background-color: #ffaaaa; color: red;">'</span>DebugMail<span style="background-color: #ffaaaa; color: red;">'</span><span style="color: #333333;">);</span>
mail<span style="color: #333333;">.</span><span style="color: #0000cc;">setSubject</span><span style="color: #333333;">(</span><span style="background-color: #ffaaaa; color: red;">'</span>Debug Mail<span style="background-color: #ffaaaa; color: red;">'</span><span style="color: #333333;">);</span>
mail<span style="color: #333333;">.</span><span style="color: #0000cc;">setHtmlBody</span><span style="color: #333333;">(</span>body<span style="color: #333333;">);</span>
mails<span style="color: #333333;">.</span><span style="color: #0000cc;">add</span><span style="color: #333333;">(</span>mail<span style="color: #333333;">);</span>
Messaging<span style="color: #333333;">.</span><span style="color: #0000cc;">sendEmail</span><span style="color: #333333;">(</span>mails<span style="color: #333333;">);</span>
<span style="color: #333333;">}</span>
<span style="color: #333333;">}</span>
</pre>
</td></tr>
</tbody></table>
</div>
<br />
Here I am parsing the email body and the crating the case and accoiating it with contact and account if the email is found in the system.<br />
<b><u><br /></u></b>
<b><u>2. Setup Email Service</u></b><br />
<b><u><br /></u></b>
Go to Setup => Develop => Email Services => New Email Services ans select your apex class<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZNSYF_Je3HCzxVDr-hb6bEIe33EwcUXfQL8JBbKS5-23LMcmxrGsW_rhgTIKkzfIyy9iMVXPg8FDo8B1PhVfDu2zmXIafM2q0Kl7wi8DSFFxrd8Jvh6tJdYCmNCLcxxq-ix01YxwZHy0/s1600/emailcase.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZNSYF_Je3HCzxVDr-hb6bEIe33EwcUXfQL8JBbKS5-23LMcmxrGsW_rhgTIKkzfIyy9iMVXPg8FDo8B1PhVfDu2zmXIafM2q0Kl7wi8DSFFxrd8Jvh6tJdYCmNCLcxxq-ix01YxwZHy0/s1600/emailcase.png" height="376" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Save the changes and click on New Email Address button </div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b><u><br /></u></b></div>
<div class="separator" style="clear: both; text-align: left;">
<b><u>3. Setup Email Service Address</u></b></div>
<div class="separator" style="clear: both; text-align: left;">
<b><u><br /></u></b></div>
<div class="separator" style="clear: both; text-align: left;">
Fill the details and Save </div>
<div class="separator" style="clear: both; text-align: left;">
<b><u><br /></u></b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdu5bwA-46Sd6P5TKiTfhIQHR6GYgs2jSEEkIAHzkLHDkFbeC4Cke1IFC3MxUiE9XXRDCtGaJBOvbBbqZFjnZkMm47bJn0GrOVdWC2XkyrJluueRZ1qXKFfKK_db2upQerxEI-Ov4l6nQ/s1600/newEmail.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdu5bwA-46Sd6P5TKiTfhIQHR6GYgs2jSEEkIAHzkLHDkFbeC4Cke1IFC3MxUiE9XXRDCtGaJBOvbBbqZFjnZkMm47bJn0GrOVdWC2XkyrJluueRZ1qXKFfKK_db2upQerxEI-Ov4l6nQ/s1600/newEmail.JPG" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<b><u><br /></u></b></div>
<div class="separator" style="clear: both; text-align: left;">
You get a email address like below</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuRZYazIe6jpI0pohEWFOpBp_T32u6aSc5VTcZ37wU_T-aeZfeIMbLBtHCoYWWMVZyM-Y-zpYA1axAUFj9seU6yfzsMf6sk0f1AcxE6JSSF8eoQS-_bxYwhbQ4prWM3963kxTz0KKIErc/s1600/setup.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuRZYazIe6jpI0pohEWFOpBp_T32u6aSc5VTcZ37wU_T-aeZfeIMbLBtHCoYWWMVZyM-Y-zpYA1axAUFj9seU6yfzsMf6sk0f1AcxE6JSSF8eoQS-_bxYwhbQ4prWM3963kxTz0KKIErc/s1600/setup.JPG" height="305" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
By sending email to this address creates the case.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b><u>Extras</u></b> </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
One major concern is the debugging of apex class. It will not appear in debugg logs. So I have to created a custom apex email function "<span style="color: #008800; font-weight: bold; line-height: 16.25px;">private</span><span style="line-height: 16.25px;"> </span><span style="color: #333399; font-weight: bold; line-height: 16.25px;">void</span><span style="line-height: 16.25px;"> </span><span style="color: #0066bb; font-weight: bold; line-height: 16.25px;">sendTestMail</span><span style="color: #333333; line-height: 16.25px;">()</span>" to send the details to my Emails. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; orphans: 2; widows: 2;">NB: This is for my future reference.</span></div>
<div class="separator" style="clear: both; text-align: left;">
<b><u><br /></u></b></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<br />
<br />
<br /></div>
Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com1tag:blogger.com,1999:blog-6528314001205989075.post-53147328888441602962013-03-22T18:09:00.000+05:302013-03-22T18:09:58.640+05:30SaleForce: Exception on installing scheduler<div dir="ltr" style="text-align: left;" trbidi="on">
I have to install two scheduler jobs on Saleforce one after another. The first one was installed successfully with out any error. While installing the second one I meet an exception:<br />
<br />
<i><b>System.AsyncException: trigger must be associated with a job detail.</b></i><br />
<br />
and my apex code respectively as follows<br />
<br />
<i>String sch = '0 0 20 1 * ? *';</i><br />
<i>System.schedule('My scheduler1', sch, new mySchedulerClass1());</i><br />
<br />
<i>String sch = '0 0 20 12 * ? *';</i><br />
<i>System.schedule('My scheduler2 ', sch, new mySchedulerClass2());</i><br />
<br />
I am totally confused and check my classes for any chance of triggers. Finally I found that issue is due to the <u><b>extra space character(' ') at the end of scheduler name "My scheduler2 ".</b></u></div>
Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com0tag:blogger.com,1999:blog-6528314001205989075.post-76362353409458173642012-11-02T18:03:00.004+05:302012-11-02T18:03:33.527+05:30MYSQL: HAVING, GROUP BY in SQL UPDATE query<div dir="ltr" style="text-align: left;" trbidi="on">
I have to update the rows of a table in which a column value have unique count, ie the value of that column comes only once.<br />
<br />
<br />For eg: as per the table shown below:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBwuWQeZBehJjcAwzWgcRP-Zu0pMKEvBsdRqselCCyDripn5TfpRyOlhWY5eyryr3VyBP04mtnGYpZbTDfzNnbqi5HjyMqO41uLxHg4z9yyPAb4trcD25LPLBOZgqVU_9jbbzZzliEk3E/s1600/mstable.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBwuWQeZBehJjcAwzWgcRP-Zu0pMKEvBsdRqselCCyDripn5TfpRyOlhWY5eyryr3VyBP04mtnGYpZbTDfzNnbqi5HjyMqO41uLxHg4z9yyPAb4trcD25LPLBOZgqVU_9jbbzZzliEk3E/s320/mstable.png" width="320" /></a></div>
<br /> <br /><br /> I want to update the value of <b>b=1</b>, for every rows having the count of value of <b>column</b> <b>a</b> is unique. Here the value <b>a=3</b> comes in <b>6th</b> row only, so update the value of that row.<br />
<br /> I can't use a <b>HAVING COUNT(T1.a) = 1</b> in a update query. I also filed to use a <b>IN</b> in <b>WHERE</b> clause with a subquery. Finally I can use a <b>INNER JOIN</b> to achieve the updation.<br />
<br />The working SQL query as below:<br /><br /><b>UPDATE table1<br />JOIN (<br /> SELECT T1.id<br /> FROM </b><b><b>table1</b> T1<br /> WHERE T1.c = 0<br /> GROUP BY T1.a<br /> HAVING COUNT(T1.a) = 1<br /> )T2 ON T2.id = </b><b><b>table1</b>.id<br />SET b = 1<br />WHERE 1</b><span style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #222222; display: inline !important; float: none; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 18px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"> </span><br />
<br />
<br />
<span style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #222222; display: inline !important; float: none; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 18px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">NB: This is for my future reference only</span><br />
<br />
<br /></div>
Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com0tag:blogger.com,1999:blog-6528314001205989075.post-55508907125931210112012-10-04T09:36:00.002+05:302012-10-04T09:36:54.895+05:30SalesForce: Searching with Multipicklist Available Values<div dir="ltr" style="text-align: left;" trbidi="on">
I have to crate a custom search form which has a drop-down having a multi-pick list available values as options. The search is to find some child records based on any one of the selected value of a multi-pick list . So I have crated a pick list (drop-down) with options as the available values of the multi-pick list . For that I find a solution to get available values of a multi-pick list by Apex coding. <br />
<br />
<br />
<b>Retrieving available values of a multi-pick list</b><br />
<br />
The used function as below:<b> </b><br />
<br />
public List<selectoption><</selectoption><selectoption>selectOption> getPickListValues(Sobject objectName, String fieldName, String firstValueLabel, String firstValue) {<br /><br /> List<selectOption</selectoption><selectoption><selectoption>> options = new List<selectOption></selectoption></selectoption><selectoption><selectoption><selectoption>(); <br /> if (firstValueLabel != null) { //if first value <br /> options.add(new selectOption(firstValue, firstValueLabel)); //add the first option<br /> }<br /> Schema.sObjectType sobjectType = objectName.getSObjectType(); //get the sobject from schema<br /> Schema.DescribeSObjectResult sobjectDescribe = sobjectType.getDescribe(); //get the describe of sobject<br /> Map<string schema.sobjectfield="schema.sobjectfield"> fieldMap = sobjectDescribe.fields.getMap(); //get a map of all fields for sobject<br /> List<schema .picklistentry=".picklistentry"> pickListValues = fieldMap.get(fieldName).getDescribe().getPickListValues(); //get the list of picklist values for the field on the sobject<br /> for (Schema.PicklistEntry a : pickListValues) { //for all values in the picklist list<br /> if(a.getValue() != 'unknown' && a.getValue() != 'Other' ) <br /> options.add(new selectOption(a.getValue(), a.getLabel())); //add the value and label to options<br /> }<br /> return options; <br /> }</schema></string></selectoption></selectoption></selectoption><br />
<selectoption><selectoption><selectoption><string schema.sobjectfield="schema.sobjectfield"><schema .picklistentry=".picklistentry"><br /><br /> For eg: getPickValues(new Account(), 'Select_List__c', 'All', 'All');<br /><br /> Here my parent object is Account and the field is Select_List__c.<br /><br /><b>Using multi-pick list value in SOQL</b><br /><br /> The query that I used as:<br /><br /> [SELECT name FROM child__c WHERE Account__r.Select_List__c INCLUDES (:filter)]; </schema></string></selectoption></selectoption></selectoption><br />
<br />
<br />
References:<br />
<br />
<a href="http://boards.developerforce.com/t5/Apex-Code-Development/How-to-retrieve-multi-select-picklists-using-includes-excludes/td-p/172210">http://boards.developerforce.com/t5/Apex-Code-Development/How-to-retrieve-multi-select-picklists-using-includes-excludes/td-p/172210</a><br />
<br />
<a href="http://boards.developerforce.com/t5/Apex-Code-Development/Looping-through-multi-select-picklist-values/td-p/401647" target="_blank">http://boards.developerforce.com/t5/Apex-Code-Development/Looping-through-multi-select-picklist-values/td-p/401647 </a><br />
<br />
NB: This is for my future reference only </div>
Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com3tag:blogger.com,1999:blog-6528314001205989075.post-14784170524164962182012-09-26T12:04:00.000+05:302012-09-26T12:04:27.167+05:30Facebook Insights using Graph API & Google Visualization: Area Chart<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
</div>
The Facebook Insights reports can be integrated to external websites by any programming languages such as PHP, Java, JavaScript, apex, .net, etc. through Graph API. I have integrated the Insights report to SalesForce Visualforce Pages by Apex with jQuery. <a href="https://developers.google.com/chart/interactive/docs/gallery/areachart">Google Visualization: Area Chart</a> is used to draw chart.<br /><br /> I have used a combination of Graph API Insights requests and a set of Facebook Query Language(FQL) requests to create a monthly report.<br /><br /><u><b>1. Creating the chart</b></u><br /> <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiykk0Pn2K-Mbm0tWK2L77NUAjfsw-BhaaVSuwiB6BL-jLXTEfepdwP7WaS_GKsshdkQ6A6jPLnJUWwkorq1wow7134HR0hd9Y_gwc6IOrx6j4k7X_AjpF_TNM22-44RLDN0QjUEF-6es4/s1600/fbchart.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="170" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiykk0Pn2K-Mbm0tWK2L77NUAjfsw-BhaaVSuwiB6BL-jLXTEfepdwP7WaS_GKsshdkQ6A6jPLnJUWwkorq1wow7134HR0hd9Y_gwc6IOrx6j4k7X_AjpF_TNM22-44RLDN0QjUEF-6es4/s400/fbchart.png" width="400" /></a></div>
<br />
<br />
<br /> The following requests are used for geting data from Facebook. <br /><br /> For "People Talking About This" :<br /><br /> https://graph.facebook.com/[pageId]/insights/page_storytellers/week?since=[startTime]&until=[endTime]&access_token=[accessToken]<br /><br /> For "People Reached" :<br /><br /> https://graph.facebook.com/[pageId]/insights/page_impressions_unique/week?since=[startTime]&until=[endTime]&access_token=[accessToken]<br /><br /> *** startTime, endTime are in Unix timestamps based on midnight in PST described in UTC.<br /><br /> A multidimensional JavaScript array has been created from the resulted json for the Google Visualization: Area Chart. I have added custom toll tip and formatted date labels in the chart. The JavaScript code as below:<br /><br /> //<b> Prepare chart data for series 1</b><br /><br /><br /> chartData = new Array();<br /> jQuery.each(jsonData.values, function(i, item) {<br /> dataArray = new Array();<br /> dataArray[0] = formatDate(item.end_time);<br /> dataArray[1] = item.value;<br /> dataArray[2] = getToolTipText(item.end_time, item.value, 'People Talking About This');<br /> chartData[i]= dataArray;<br /> });<br /><br /><br /> <b>// function to draw chart</b><br /><br /> function drawChart() {<br /> var data = new google.visualization.DataTable();<br /> data.addColumn('string', 'Date'); // Implicit domain label col.<br /> data.addColumn('number', 'People Talking About This'); // Implicit series 1 data col.<br /> data.addColumn({type:'string', role:'tooltip'}); // Implicit tool tip 1 data col.<br /> data.addColumn('number', 'Weekly Total Reach'); // Implicit series 2 data col.<br /> data.addColumn({type:'string', role:'tooltip'});// Implicit tool tip 2 data col.<br /> data.addRows(chartData);<br /><br /> var options = {<br /> width: 900,<br /> height: 350,<br /> colors: ['#FF9900', '#3B5998'],<br /> vAxis: { gridlines: { color : '#fff'}, logScale: true},<br /> hAxis: { showTextEvery : 7 },<br /> pointSize: 4,<br /> legend: {position: 'top', textStyle: {fontSize: 14}},<br /> tooltip: {textStyle: {fontSize: 12}}<br /> };<br /><br /> var chart = new google.visualization.AreaChart(document.getElementById('chart_div'));<br /> chart.draw(data, options);<br />}<br /><br /><br /><br />function getToolTipText(endDate, value, text){<br /> toolTipText = 'custom tooltip';<br /> return toolTipText;<br />}<br /><br />** function formatDate in <a href="http://www.bitspace.in/2012/09/some-javascript-date-formatting-tips.html" rel="nofollow" target="_blank">Some JavaScript Date Formatting Tips</a> <br />
<br /><u><b>2. Page Posts table list</b></u><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3enb9SlUfdxXAPi4FwkHwX1bsmvKqvNNy5HHFTgcE9MSD4Sp-tWq0iSGKvKV4P79MSBXbxUXWnD-vxibn4Vgh4fVK0viaPGWIEddi95wgRb6nf7Aa3MB8t2vnyXU0p3V2cGzgalQhdU0/s1600/fbpost.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="151" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3enb9SlUfdxXAPi4FwkHwX1bsmvKqvNNy5HHFTgcE9MSD4Sp-tWq0iSGKvKV4P79MSBXbxUXWnD-vxibn4Vgh4fVK0viaPGWIEddi95wgRb6nf7Aa3MB8t2vnyXU0p3V2cGzgalQhdU0/s400/fbpost.png" width="400" /></a></div>
<br /><br /> Unfortunately I can't get the stream data and insight data together in a single FQL query. So I have used a FQL multi query to get the stream data and insight data together and used a iterating loop to make stream data with the corresponding insight data. The used FQL as follows<br /><br /> {"pageStream": "SELECT post_id, substr(message, 0, 50), type, created_time,attachment.name<br /> FROM stream<br /> WHERE source_id = [pageId]<br /> AND created_time <= [endTime]<br /> AND created_time >= [stratTime]<br /> AND type != ''<br /> LIMIT 0, 30;",<br /> "pageInsight": "SELECT object_id, metric, value, end_time<br /> FROM insights<br /> WHERE object_id IN (SELECT post_id FROM #pageStream)<br /> AND metric IN ('post_engaged_users','post_storytellers', 'post_impressions_unique')<br /> AND period = period('lifetime');"}<br /><br />*** startTime, endTime are in Unix timestamps based on midnight in PST described in UTC.<br /><br /><u><b>3. Page fan count comparison</b></u><br /><br /> Another thing that I have done Page like count comparison with previous month. Here also I am used a multi query to get both the counts together<br /><br /> {"currentCount": "SELECT object_id, metric, value, end_time<br /> FROM insights<br /> WHERE object_id = [pageId]<br /> AND metric IN ('page_fans')<br /> AND period = period('lifetime')<br /> AND end_time = end_time_date('2012-8-31')",<br /> "previousCount": "SELECT object_id, metric, value, end_time<br /> FROM insights<br /> WHERE object_id = [pageId]<br /> AND metric IN ('page_fans')<br /> AND period = period('lifetime')<br /> AND end_time = end_time_date('2012-7-30')"}<br /><br /> <br /> Reference: <br /> <a href="https://developers.facebook.com/docs/reference/fql/insights/">https://developers.facebook.com/docs/reference/fql/insights/</a><br /> <a href="https://developers.facebook.com/docs/reference/api/insights/">https://developers.facebook.com/docs/reference/api/insights/</a><br /> <a href="https://developers.google.com/chart/interactive/docs/gallery/areachart">https://developers.google.com/chart/interactive/docs/gallery/areachart</a></div>
Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com0tag:blogger.com,1999:blog-6528314001205989075.post-83881883400081759372012-09-26T11:45:00.001+05:302012-09-26T11:45:26.432+05:30Some JavaScript Date Formatting Tips <div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<u><b>1. Date formatting from date string</b></u><br /><br /> strDate = "2012-08-02T07:00:00+0000"; // For Eg<br /><br /> function formatDate(strDate){<br /> var monthNames = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec");<br /> var date = new Date(strDate);<br /> return monthNames[date.getMonth()]+ ' '+ date.getDate();<br /> }<br /><br /><br /> <u><b>2. Date formatting from time stamp</b></u><br /><br />function timeStampToDate(timeStamp){<br /> var date = new Date(timeStamp * 1000);<br /> return (date.getMonth() +1 )+ '/'+ date.getDate()+'/'+ date.getFullYear();<br />}<br /><br /><b><u>3. Week start or week end for a day</u></b><br /><br /> function getWeekDay(date, day){<br /> var targetDay;<br /> var currentDay = new Date(endDate);<br /> if(day == 'next'){<br /> // add 6 days<br /> targetDay = new Date(currentDay.getTime() + (86400000 * 6 ));<br />
// 24*60*60*1000 = 86400000 (day in milliseconds)<br /> }else{ // previous<br /> // subtract 6 days<br /> targetDay = new Date(currentDay.getTime() - (86400000 * 6 ));<br />
// 24*60*60*1000 = 86400000 (day in milliseconds)<br /> }<br /> return targetDay<br /> }<br />
<br />
Reference:<br />
<br />
<a href="http://www.javascriptkit.com/jsref/date.shtml">http://www.javascriptkit.com/jsref/date.shtml</a><br />
<br />
NB: This for my future reference</div>
Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com0tag:blogger.com,1999:blog-6528314001205989075.post-31328719795756734832012-08-27T15:59:00.000+05:302012-08-27T15:59:14.473+05:30Salesforce: Creating user for testing / test methods<div dir="ltr" style="text-align: left;" trbidi="on">
Sometimes we have to crate user objects in tests & test methods. To crate a user we have to select a profile and set the required fields in the user objects as the apex code below.<br /><br /> Profile pfl = [select id from profile where name='Standard User'];<br /><br /> User testUser = new User(alias = 'u1', email='u1@testorg.com',<br /> emailencodingkey='UTF-8', lastname='Testing', languagelocalekey='en_US',<br /> localesidkey='en_US', profileid = pfl.Id, country='United States', CommunityNickname = 'u1',<br /> timezonesidkey='America/Los_Angeles', username='u1@testorg.com');</div>
Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com0tag:blogger.com,1999:blog-6528314001205989075.post-26356373106583661262012-08-24T18:12:00.000+05:302013-04-15T10:42:59.412+05:30URL validation using regular expression for javascript, Salesforce Apex, Java , PHP & Ruby<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<br />
<u><b>Pattern for javascript, Java , PHP & Ruby</b></u><br />
<br />
/^((http|https):\/\/)?(www[.])?([a-zA-Z0-9]|-)+([.][a-zA-Z0-9(-|\/|=|?)?]+)+$/<br />
<br />
<br />
<u><b>Validation function in Javascript</b></u><br />
<br />
function checkForValidURL(value) {<br />
<br />
var urlregex = new RegExp("^((http|https):\/\/)?(www[.])?([a-zA-Z0-9]|-)+([.][a-zA-Z0-9(-|\/|=|?)?]+)+$");<br />
if (urlregex.test(value)) {<br />
return (true);<br />
}<br />
return (false);<br />
}<br />
<br />
<u><b>Pattern for Salesforce Apex</b></u><br />
<br />
^((http|https)://)??(www[.])??([a-zA-Z0-9]|-)+?([.][a-zA-Z0-9(-|/|=|?)??]+?)+?$<br />
It can also be used for validation fields and Visualforce pages<br />
<br />
<u><b>Validation function in Apex</b></u><br />
<br />
public Boolean checkForValidURL(String url){ <br />
if(url != Null) {<br />
String regexFormat ='(^((http|https)://)??(www[.])??([a-zA-Z0-9]|-)+?([.][a-zA-Z0-9(-|/|=|?)??]+?)+?$)'; <br />
Pattern urlFormat = Pattern.Compile(regexFormat); <br />
Matcher format_of_url = urlFormat.Match(url); <br />
if (format_of_url.Matches()){ <br />
return true; //return true - if success <br />
} <br />
return false ;<br />
} </div>
Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com0tag:blogger.com,1999:blog-6528314001205989075.post-55216651210032401232012-07-13T18:35:00.001+05:302012-07-13T18:35:51.475+05:30Google Image Chart API - Compare data by Line chart<div dir="ltr" style="text-align: left;" trbidi="on">
This API is very useful to generate graphs/charts without any API libraries or JavaScript. It provides the chart as images just by creating a URL. Using any language such as PHP, Java, .Net, Ruby, JavaScript, Apex, Visual force, Sales force, etc.. we can generate dynamic charts. <br />
<br />
<b>For example:</b><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://chart.apis.google.com/chart?chds=0,50&chd=t:33,44,24,8,38,27,23,29,32,35,16,36,33,30,27,17,12,8,36,17,20,24,18,22,13,22,31,26,36,27,18%7C17,35,47,36,31,38,16,10,34,33,37,25,16,11,8,20,32,23,32,19,18,22,29,35,22,39,26,15,18,18,_&chxs=0,000000,12,0,lt,000000%7C1,000000,12,0,lt,000000&chxt=x,y&chco=9BCE32,0098FF&chls=2%7C2.5&chg=23.33,20.00&chxr=0,01,31,7%7C1,0,50,10&chxl=0:%7C1-Apr+%28Mar%29%7C8-Apr+%28Mar%29%7C15-Apr+%28Mar%29%7C22-Apr+%28Mar%29%7C29-Apr+%28Mar%29&chm=d,9BCE32,0,-1,9.0%7Cd,0098FF,1,-1,9.0&chma=9,9,9,9&chs=500x270&cht=lc&" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://chart.apis.google.com/chart?chds=0,50&chd=t:33,44,24,8,38,27,23,29,32,35,16,36,33,30,27,17,12,8,36,17,20,24,18,22,13,22,31,26,36,27,18%7C17,35,47,36,31,38,16,10,34,33,37,25,16,11,8,20,32,23,32,19,18,22,29,35,22,39,26,15,18,18,_&chxs=0,000000,12,0,lt,000000%7C1,000000,12,0,lt,000000&chxt=x,y&chco=9BCE32,0098FF&chls=2%7C2.5&chg=23.33,20.00&chxr=0,01,31,7%7C1,0,50,10&chxl=0:%7C1-Apr+%28Mar%29%7C8-Apr+%28Mar%29%7C15-Apr+%28Mar%29%7C22-Apr+%28Mar%29%7C29-Apr+%28Mar%29&chm=d,9BCE32,0,-1,9.0%7Cd,0098FF,1,-1,9.0&chma=9,9,9,9&chs=500x270&cht=lc&" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<b>The corresponding URL :</b><br />
<br />
[http://chart.apis.google.com/chart?chds=0,50&chd=t:33,44,24,8,38,27,23,29,32,35,16,36,33,30,27,17,12,8,36,17,20,24,18,22,13,22,31,26,36,27,18%7C17,35,47,36,31,38,16,10,34,33,37,25,16,11,8,20,32,23,32,19,18,22,29,35,22,39,26,15,18,18,_&chxs=0,000000,12,0,lt,000000%7C1,000000,12,0,lt,000000&chxt=x,y&chco=9BCE32,0098FF&chls=2%7C2.5&chg=23.33,20.00&chxr=0,01,31,7%7C1,0,50,10&chxl=0:%7C1-Apr+%28Mar%29%7C8-Apr+%28Mar%29%7C15-Apr+%28Mar%29%7C22-Apr+%28Mar%29%7C29-Apr+%28Mar%29&chm=d,9BCE32,0,-1,9.0%7Cd,0098FF,1,-1,9.0&chma=9,9,9,9&chs=500x270&cht=lc&]<br />
<br />
I have generated this chart for comparing two months Google analytic data. I have integrated this chart to Sales force CRM using Apex language and Visual force UI along with the Google Analyics API.<br />
<br />
<br />
<u><b>Set the chart properties</b></u><br /><br /> Chart size : chs=<width>x<height> Eg: chs=500x270<br /> Chart type : cht=<type> Eg:cht=lc (for line chart)<br /><br /><u><b>Set the chart data</b></u><br /><br /> "chd" is the parameter used to send the chart data with the following format. The data series are separated by pipe character: "|" . The null values or empty values are represented by "_".<br /><br /> chd=t:val,val,val|val,val,val...<br /><br />Eg:- chd=t:33,44,24,8,38,27,23,29,32,35,16,36,33,30,27,17,12,8,36,17,20,24,18,22,13,22,31,26,36,27,18|<br /><br /> 17,35,47,36,31,38,16,10,34,33,37,25,16,11,8,20,32,23,32,19,18,22,29,35,22,39,26,15,18,18,_<br /><br /><u><b>Set the chart axis properties</b></u><br /><br /> Visible Axes : chxt= <axis_1>,...,<axis_n> Eg: chxt=x,y<br /> Axis Range : chxr= <axis_index>,<start_val>,<end_val>,<opt_step> |...| <axis_index>,<start_val>,<end_val>,<opt_step><br /> Eg: chxr=0,01,31,7|1,0,50,10<br /> Axis Labels : chxl=<axis_index>:|<label_1>|...|<label_n> |...| <axis_index>:|<label_1>|...|<label_n><br /> Eg: chxl=0:|1-Apr+%28Mar%29|8-Apr+%28Mar%29|15-Apr+%28Mar%29|22-Apr+%28Mar%29|29-Apr+%28Mar%29<br /><br /><br /> Axis Label Styles : chxs= <axis_index><opt_format_string>,<opt_label_color>,<opt_font_size>,<opt_alignment>,<opt_axis_or_tick>,<opt_tick_color>,<opt_axis_color><br /> |...|<br /> <axis_index><opt_format_string>,<opt_label_color>,<opt_font_size>,<opt_alignment>,<opt_axis_or_tick>,<opt_tick_color>,<opt_axis_color><br /> Eg: 0,000000,12,0,lt,000000|1,000000,12,0,lt,000000<br /><br /><u><b>Dynamic axis label position</b></u><br /><br /> For x-axis, the default labels positions are 0 to 100. In my chart, need to show the days of a month. I have to show only 7 days apart. so I set<br /><br /> chxr=0,01,31,7 (0:x-axis, 01:fist_day, 31:last_day, 7: steps).<br /><br /> For y-axis, the default labels positions are 0 to 100. But we have to plot dynamic values. So I have find the y-min & y-max from both set of data and used a fixed step 10<br /> ie chxr=1,0,50,10 (1:y-axis, 0:y-min, 31:y-max, 10: steps)<br /><br /> Combining both chxr=0,01,31,7|1,0,50,10<br /><br /> <br /><u><b>Dynamic axis scaling</b></u><br /><br /> The y-axis data may vary dynamically. We have y-axis based on the plotted value, so use y-min & y-max from both set of data.<br /> ie, chds=0,50 (y-min, y-max)<br /><br /><u><b>Dynamic grid line position</b></u><br /> <br /> we have to position the grid lines on the axis labels that we are labelled dynamically. For both x & y axis, there are default 100 grid line step sizes. Then we can to set the grid positions using the parameter "chg".<br /><br /> chg= <x_axis_step_size>,<y_axis_step_size>,<opt_dash_length>,<opt_space_length>,<opt_x_offset>,<opt_y_offset><br /><br /> so we have to calculate the x_axis_step_size & y_axis_step_size dynamically.<br /><br /> We can use the (100 * axis_steps) / (axis_ max_value - axis_ min_value) to find out the gidline step size.<br /><br /> Hence for x-axis & y -axis ,<br /> x_axis_step_size =(100 * x_steps) / (x_max - x_min) = (100 * 7) / (31 - 1) = 23.33<br /> y_axis_step_size = (100 * y_steps) / (y_max - y_min) = (100 * 10) / (50 - 0) = 20<br /><br /> ie, chg=23.33, 20<br />
<br />
<br />
<u><b>Apex code to set up chart axis</b></u><br /><br />Integer yMax, yMin, yDiv = 10;<br />decimal ySteps, xSteps; <br />if(math.mod(maxValue,yDiv) != 0){<br /> yMax = ((maxValue/yDiv)+1)*yDiv;<br />}else{<br /> yMax = maxValue;<br />}<br /><br />if(math.mod(minValue,yDiv)!= 0){<br /> yMin = ((minValue/yDiv))*yDiv;<br />}else{<br /> yMin = minValue;<br />} <br />string str = '0,01,'+monthEnd+',7%7C1,'+yMin+','+yMax+','+yDiv; //0,01,31,7|1,0,20,5<br />chartObj.changeParam('cht' ,'lc');<br />chartObj.changeParam('chxr',str);<br />xSteps = decimal.valueOf(100*7)/decimal.valueOf(monthEnd-1); // 100*7/(31-1) = 23.33<br />if(yMax <= 0){<br /> yMax = 10;<br />}<br />ySteps = (decimal.valueOf(1000)/(decimal.valueOf(yMax) - decimal.valueOf(yMin)));<br />str = xSteps.setScale(2)+','+ySteps.setScale(2); <br />chartObj.changeParam('chds',yMin+','+yMax);<br />chartObj.changeParam('chg',str);<br />chartObj.changeParam('chxl','0:%7C1-'+currMonthName+'+%28'+prevMonthName+'%29'+'%7C8-'+currMonthName+'+%28'+prevMonthName+'%29'+'%7C15-'+currMonthName+'+%28'+prevMonthName+'%29'+'%7C22-'+currMonthName+'+%28'+prevMonthName+'%29'+'%7C29-'+currMonthName+'+%28'+prevMonthName+'%29');// 0:|01|08|15|22|29|31st<br />
<br />
References: <br />
<a href="https://developers.google.com/chart/image/docs/chart_params#gcharts_grid_lines">https://developers.google.com/chart/image/docs/chart_params#gcharts_grid_lines</a><a href="https://developers.google.com/chart/image/docs/chart_params#gcharts_grid_lines">/docs/chart_params#gcharts_grid_lines</a><br />
<br />
NB: These posts are for my future references </div>Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com0tag:blogger.com,1999:blog-6528314001205989075.post-19705625557101396262012-03-16T12:13:00.000+05:302014-01-21T11:25:01.246+05:30Decimal / Floating point number validation using javascript / jQuery (regular expression)<div dir="ltr" style="text-align: left;" trbidi="on">
<u><b>To validate any decimal number</b></u><br />
<br />
function validateDecimal(value) {<br />
var RE = /^\d*\.?\d*$/;<br />
if(RE.test(value)){<br />
return true;<br />
}else{<br />
return false;<br />
}<br />
}<br />
<br />
Eg: 54 -> true<br />
1.235 -> true<br />
12.258 -> true<br />
1.2.5 -> false<br />
sdf123 -> false<br />
<br />
<u><b>To validate decimal number with two digit precision</b></u><br />
<br />
function validateDecimal(value) {<br />
var RE = /^\d*(\.\d{1})?\d{0,1}$/;<br />
if(RE.test(value)){<br />
return true;<br />
}else{<br />
return false;<br />
}<br />
}<br />
<br />
Eg: 54 -> true<br />
5.2 -> true<br />
1.23 -> true<br />
155.89 -> true<br />
12.258 -> false<br />
1.2.5 -> false<br />
sdf123 -> false<br />
<br />
<br />
<b>General form of regular expression for decimal a number</b><br />
<br />
<i>^\d{0,M}(\.\d{1})?\d{0,N}$</i><br />
<br />
M = at most number of digits before decimal point.<br />
N = (n-1); n = at most number of digits after decimal point.</div>
Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com14tag:blogger.com,1999:blog-6528314001205989075.post-51433027600731685222012-02-10T15:43:00.000+05:302012-02-10T15:43:38.870+05:30MYSQL: JOIN in UPDATE query<div dir="ltr" style="text-align: left;" trbidi="on">
As in the SELECT query we can also use JOIN in UPDATE query. But there is difference in using join in SELECT query and in UPDATE query.<br />
<br />
For eg:- (in SELECT query)<br />
<br /> SELECT * FROM table1 AS T1 <br /> JOIN table2 AS T2 ON T2.t1 = T1.id<br /> WHERE T2.a = 3;<br />
<br />
As per this we will write the JOIN statement just before the WHERE statement in UPDATE query, but it is wrong. The JOIN statement statement must be near to the first table. That means the SET statement must be after the JOIN statement.<br />
<br />
For eg:-<br />
<br />
UPDATE table1 AS T1 <br /> JOIN table2 AS T2 ON T2.t1 = T1.id<br /> SET T1.a = 2, T2.a = 2<br /> WHERE T1.b = 3 AND T2.a = 4;<br />
<br />
<span class="Apple-style-span" style="font-family: arial; font-size: xx-small;">Note: This post is for my reference only.</span></div>Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com0tag:blogger.com,1999:blog-6528314001205989075.post-88399549373604792702012-01-11T10:22:00.000+05:302012-01-11T10:22:41.274+05:30Table row background repeats in columns for Google Chrome & IE7<div dir="ltr" style="text-align: left;" trbidi="on">
<span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"> While working with tables, I struck with a<span class="Apple-converted-space"> </span></span><span class="J-JK9eJ-PJVNOc" style="background-color: yellow; color: black; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">css</span><span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><span class="Apple-converted-space"> </span>issue in table row background in Google Chrome & in Internet Explorer 7, no issue in other browsers (</span><span class="J-JK9eJ-PJVNOc" style="background-color: yellow; color: black; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">Firefox</span><span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">, Internet Explorer 8 & 9). If we specify a background image for a row (tr), it will repeats in every<span class="Apple-converted-space"> </span></span><span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">columns</span><span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">(</span><span class="J-JK9eJ-PJVNOc" style="background-color: yellow; color: black; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">td</span><span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><span class="Apple-converted-space"> </span>or<span class="Apple-converted-space"> </span></span><span class="J-JK9eJ-PJVNOc" style="background-color: yellow; color: black; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">th</span><span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">) in that row. The issue as the image:</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCi4Uo1fkEdXias1-xFvK_BPDLupIhYOM4SGAeeSXR-J1ACc78GxidYvOVcVN3Hzn7BouixA0BPWskh0beFLSpdo6Hlb7dEJWYpUNfsdTFqjzw2AScx-FCdnVwEWQq5A9dr7MveuhpI8s/s1600/table1.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="80" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCi4Uo1fkEdXias1-xFvK_BPDLupIhYOM4SGAeeSXR-J1ACc78GxidYvOVcVN3Hzn7BouixA0BPWskh0beFLSpdo6Hlb7dEJWYpUNfsdTFqjzw2AScx-FCdnVwEWQq5A9dr7MveuhpI8s/s320/table1.jpg" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"> By Googling and using some tricks, I can fix this issue (thanks God) in both browsers. The initial HTML and<span class="Apple-converted-space"> </span></span><span class="J-JK9eJ-PJVNOc" style="background-color: yellow; color: black; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">CSS</span><span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><span class="Apple-converted-space"> </span>as:</span><br />
<span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><table cellspacing="0" cellpadding="0" class="bidTable"><br /> <tbody><br /> <tr class="bidHeader"><br /> <th id="category">Category</th><br /> <th id="minBid">Min Bid</th><br /> <th id="highBid">High Bid</th><br /> </tr><br /> <tr><br /> <td class="cat">Test Category </td><br /> <td class="min-bid">$0 </td><br /> <td class="high-bid">$13 </td><br /> </tr><br /> </tbody><br /></table></span><br />
<span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><br /></span><br />
<span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">.bidTable tr {<br /> background: url("../images/bid_bottom.png") no-repeat scroll 0 0 transparent;<br /> height: 53px;<br /> width: 464px;<br />}</span><br />
<span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><br />.bidTable tr.bidHeader {<br /> background: url("../images/bid_header.png") no-repeat scroll 0 0 transparent;<br /> height: 45px;<br /> width: 464px;<br />}<br /><br />.bidTable th {<br /> color: #FFFFFF;<br /> font-size: 15px;<br /> font-weight: normal;<br />}<br /><br />.bidHeader #category {<br /> padding-left: 20px;<br /> text-align: center;<br /> width: 260px;<br />}<br /><br />.bidHeader #minBid {<br /> width: 92px;<br />}<br />.bidHeader #highBid {<br /> width: 92px;<br />}</span><br />
<span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><br /></span><br />
<span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">For other browsers it seen as:</span><br />
<span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><br /></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHrZv6uS_6iUT4VzVnfv8Jj1pG6wyEAYqPyxdkgHomn_zBR80KceyIKNsKODf5WzawPKa83hQcJ8mK81tqttkRnOeUsU3moDKIvaH0p_Dxl4y9xO0H3X39XXYU87Mr4jbHpAFuUN3fCAk/s1600/table2.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="89" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHrZv6uS_6iUT4VzVnfv8Jj1pG6wyEAYqPyxdkgHomn_zBR80KceyIKNsKODf5WzawPKa83hQcJ8mK81tqttkRnOeUsU3moDKIvaH0p_Dxl4y9xO0H3X39XXYU87Mr4jbHpAFuUN3fCAk/s320/table2.jpg" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">For Google Chrome, I have to use use the<span class="Apple-converted-space"> </span></span><span class="J-JK9eJ-PJVNOc" style="background-color: yellow; color: black; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">CSS</span><span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><span class="Apple-converted-space"> </span>hack. The issue is fixed by
adding <b>display:<span class="Apple-converted-space"> </span></b></span><b><span class="J-JK9eJ-PJVNOc" style="background-color: yellow; color: black; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">inline</span></b><span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><b>-table;</b>
for both<span class="Apple-converted-space"> </span></span><b><span class="J-JK9eJ-PJVNOc" style="background-color: yellow; color: black; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">td</span><span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><span class="Apple-converted-space"> </span>&<span class="Apple-converted-space"> </span></span><span class="J-JK9eJ-PJVNOc" style="background-color: yellow; color: black; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">th</span></b><span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">. But
I have to do extra<span class="Apple-converted-space"> </span></span><span class="J-JK9eJ-PJVNOc" style="background-color: yellow; color: black; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">css</span><span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><span class="Apple-converted-space"> </span>to keep the alignment. The<span class="Apple-converted-space"> </span></span><span class="J-JK9eJ-PJVNOc" style="background-color: yellow; color: black; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">CSS</span><span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><span class="Apple-converted-space"> </span>is like this:</span><br />
<br />
<br />
<span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">/*
for google crome */<br />@media screen and
(-webkit-min-device-pixel-ratio:0) {<br /> .bidTable td, .bidTable th {<br /> <b>
display: inline-table;</b><br /> height: 9px;<br /> padding: 12px
0 0 0;<br /> }<br /> .bidHeader #category, .bidTable .cat{<br />
width: 267px;<br /> padding-left: 20px;<br /> text-align: center;<br />
}<br /> .bidHeader #minBid, .bidTable .min-bid{<br /> width: 73px;<br />
}<br /><br /> .bidHeader #highBid, .bidTable .high-bid{<br /> width:
78px;<br /> }<br />}</span><br />
<span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"> </span><br />
<span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"> </span><br />
<span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">For
IE7, also used the CSS hack, for <b>tr</b> added <b>position: relative;</b>
and for<b> th & td</b> added <b>background: none;</b> like this. <br /><br />
/* for IE 7 */<br /> *+html .bidTable tr {<br /> <b>position:
relative;</b><br /> padding: 0; <br /> }<br /> *+html .bidTable th
{<br /> <b>background: none;</b> <br /> }<br /> *+html .bidTable
td {<br /> <b> background: none;</b> <br /> }</span><br />
<br />
<span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"></span>
<br />
<span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"></span><br />
<span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"> </span><br />
<br />
<span class="Apple-style-span" style="color: black; display: inline ! important; float: none; font-family: arial; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><br /></span></div>Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com2tag:blogger.com,1999:blog-6528314001205989075.post-48357641470312536462011-11-09T09:35:00.000+05:302012-01-17T11:16:09.421+05:30Setup and Install Symfony 2.0 project<div dir="ltr" style="text-align: left;" trbidi="on">
1. Download Symfony2<br />
<br />
* From Symfony website <a href="http://symfony.com/download?v=Symfony_Standard_Vendors_2.0.5.tgz">Click here</a> or<br />
* Use Command line<br />
<b> cd /var/www </b>(web directory)<br />
<b><span class="Apple-tab-span" style="white-space: pre;"> </span> wget -O symfony2.tgz http://symfony.com/download?v=Symfony_Standard_Vendors_2.0.5.tgz</b><br />
<br />
2. Extract the files<br />
<br />
Use the command : <b> tar xfz symfony2.tgz</b><br />
<br />
A direcory <i>'Symfony'</i> is created in <b>/var/www</b> directory.<br />
<br />
3. Goto <i>http://localhost/Symfony/web/config.php</i> to check the configation settings.<br />
<br />
The are some problems amd some recomentions are listed. Fix the these for better results.<br />
<br />
4. Install and enable the SQLite3 or PDO_SQLite extension.<br />
<br />
Use the command : <b>sudo apt-get install php5-sqlite</b><br />
<br />
5. Give permission to cache folder and logs folder<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> Use the command :</span> <b>sudo chmod -R 777 /var/www/Symfony/app/cache</b><span class="Apple-tab-span" style="white-space: pre;"> </span><br />
Use the command :<b> sudo chmod -R 777 /var/www/Symfony/app/logs</b><br />
<br />
6. Set the<b> “date.timezone”</b> setting in <b>php.ini</b>* (like Europe/Paris).<br />
<br />
Open php.ini file and find<b> ';date.timezone ='.</b> Uncomment<i> (remove ';')</i> and give the appropriate timezone value from PHP’s list of timezones.(http://us2.php.net/manual/en/timezones.php) as below.<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><i>date.timezone =Asia/Calcutta (As I am in India)</i><br />
<br />
7. Install and enable a PHP accelerator like APC (highly recommended).<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>Use the command : <b>sudo apt-get install php-apc</b><br />
<br />
8. Install and enable the intl extension.<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>Use the command : <b>sudo apt-get install php5-intl</b><br />
<br />
9. Set short_open_tag to off in php.ini.<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>Open php.ini file and find<b> 'short_open_tag = On'.</b> Change it to<b> 'short_open_tag = Off'</b><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
10. Restart apache<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<b> sudo apache2ctl restart</b> (<b> sudo /etc/init.d/apache2 restart</b> )<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br /></div>Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com0tag:blogger.com,1999:blog-6528314001205989075.post-33481753508131436902011-08-17T09:01:00.000+05:302016-11-30T15:08:54.064+05:30References for a Software Engineer<div dir="ltr" style="text-align: left;" trbidi="on">
<table><tbody>
<tr valign="top"> <td width="100%"><span style="font-family: "times new roman"; font-size: x-large;"><b><u>T</u></b></span><span class="Apple-style-span" style="font-size: x-large;"><b><u>u</u></b></span><span class="Apple-style-span" style="font-size: x-large;"><b><u>torials</u></b></span><br />
<span style="font-family: "times new roman";"><b><span class="Apple-style-span" style="font-size: x-large;"><u><br />
</u></span><span class="Apple-style-span" style="font-size: large;"> C</span></b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://devcentral.iftech.com/learning/tutorials/c-cpp/c/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to C Programming </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.abarnett.demon.co.uk/tutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>C Optimization Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.actcom.co.il/~choo/lupg/tutorials/c-on-unix/c-on-unix.html" target="_blank"><span style="font-family: "times new roman"; font-size: x-small;"><u><span class="Apple-style-span" style="color: #2020a0;">Compiling C and C++ Programs on UNIX Systems</span><span class="Apple-style-span" style="color: blue;"> </span></u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>- gcc/g++</u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.actcom.co.il/~choo/lupg/tutorials/libraries/unix-c-librarieshtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Building and Using Static and Shared C Libraries </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cm.cf.ac.uk/Dave/C/CE.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Programming in C: UNIX System Calls and Subroutines Using C </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="font-family: "times new roman";"><u><a href="http://www.eskimo.com/~scs/C-faq/top.html" style="color: #2020a0; font-size: small;" target="_blank">CFAQ </a></u></span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.eskimo.com/~scs/cclass/cclass.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>C Programming Class Notes </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.gustavo.net/programming/c__tutorials.shtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>ANSI C for Programmers on UNIX Systems </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.informit.com/product/0672310686/" target="_blank">Sams</a> </u></span><a href="http://www.informit.com/product/0672310686/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Teach Yourself C in 24 Hours </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.informit.com/product/0672310694/" target="_blank">Sams</a> </u></span><a href="http://www.informit.com/product/0672310694/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Teach Yourself C in 21 Days (4th Ed.) </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxgazette.com/issue24/rogers.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Standard C Library for Linux - Part 1: file functions </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxgazette.com/issue31/rogers1.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Standard C Library for Linux - Part 2: character input/output </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxgazette.com/issue32/rogers.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Standard C Library for Linux - Part 3: formatted input/output </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxgazette.com/issue38/rogers.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Standard C Library for Linux - Part 4: Character Handling </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxgazette.com/issue39/rogers.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The </u></span></a><a href="http://www.linuxgazette.com/issue39/rogers.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Standard C Library for Linux - Part 5: Miscellaneous Functions </u></span></a><br />
<a href="http://www.lysator.liu.se/c/bwk-tutor.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Programming in C: A Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.redhat.com/devnet/whitepapers/intro_dev/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>An Introduction to C Development on Linux </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.strath.ac.uk/CC/Courses/CCourse/CCourse.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>C Programming Course </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.swcp.com/~dodrill/cdoc/clist.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>C Language Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.syclus.com/cscene/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>CScene</u></span></a><a href="http://www.syclus.com/cscene/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>: An Online Magazine for C and C++ Programming </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
C++</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://computers.iwz.com/prog/cpp/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>C++ Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://devcentral.iftech.com/learning/tutorials/c-cpp/cpp/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Understanding C++: An Accelerated Introduction </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://devcentral.iftech.com/learning/tutorials/c-cpp/sst/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>An Introduction to C++ Class Hierarchies </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://egcs.cygnus.com/onlinedocs/g++FAQ_toc.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>G++ FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://uu-gna.mit.edu:8001/uu-gn/atext/cc/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to Object-Oriented Programming Using C++ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.actcom.co.il/~choo/lupg/tutorials/c-on-unix/c-on-unix.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Compiling C and C++ Programs on UNIX Systems - gcc/g++ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cerfnet.com/~mpcline/c++-faq-lite/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>C++ FAQ Lite </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cs.wustl.edu/~schmidt/C++/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>C++ Programming Language Tutorials </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.flipcode.com/tutorials/tut_cppdepend.shtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Reducing Dependencies in C++ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.flipcode.com/tutorials/tut_exceptions.shtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>C++ Exception Handling </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.flipcode.com/tutorials/tut_strings01.shtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Part 1: Unicode </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.flipcode.com/tutorials/tut_strings02.shtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Part 2: A Complete String Class </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.informatik.uni-frankfurt.de/~fp/Tcl/tcl-c++/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Making C++ Loadable Modules Work </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.informit.com/product/0672310708/" target="_blank">Sams</a> </u></span><a href="http://www.informit.com/product/0672310708/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Teach Yourself C++ in 21 Days (2nd Ed.) </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.mozilla.org/hacking/portable-cpp.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>C++ Portability Guide </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.ses.com/~clarke/cpptips.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>C++ Tips </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.swcp.com/~dodrill/cppdoc/cpplist.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>C++ Language Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.syclus.com/cscene/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>CScene</u></span></a><a href="http://www.syclus.com/cscene/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>: An Online Magazine for C and C++ Programming </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.trumphurst.com/cpplibs1.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>C++ Libraries FAQ </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
CGI</b></span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.acm.vt.edu/~scott/cgi.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>CGI Programming Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cgi101.com/class/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>CGI Programming 101 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.informit.com/product/1562763970/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>CGI Manual of Style </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.informit.com/product/1575210878/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>CGI Developer's Guide </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.informit.com/product/1575211513/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>CGI Programming Unleashed </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.informit.com/product/1575211963/" target="_blank">Sams</a> </u></span><a href="http://www.informit.com/product/1575211963/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Teach Yourself CGI Programming with Perl 5 in a Week (2nd Ed.) </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.speakeasy.org/~cgires/cgi-tips.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>CGI/Perl Tips, Tricks and Hints </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.speakeasy.org/~cgires/cgi-tour.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>A Tour of HTML Forms and CGI Scripts </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.speakeasy.org/~cgires/readdat/aindex.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Reading CGI Data: URL-Encoding and the CGI Protocol </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.webthing.com/tutorials/cgifaq.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>CGI Programming FAQ </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
</b></span><br />
<span style="font-family: "times new roman"; font-size: large;"><b>CORBA</b></span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cerfnet.com/~mpcline/corba-faq/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>CORBA FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cs.indiana.edu/hyplan/kksiazek/tuto.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>A Brief Tutorial on CORBA </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cs.wustl.edu/~schmidt/CORBA-docs/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>CORBA 2.0 Specification </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.cs.wustl.edu/~schmidt/tutorials-corba.html" target="_blank">CORBA </a></u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.cs.wustl.edu/~schmidt/tutorials-corba.html" target="_blank">Tutorials </a></u></span><br />
<span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.informit.com/product/0672312085/" target="_blank">Sams</a> </u></span><a href="http://www.informit.com/product/0672312085/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Teach Yourself CORBA in 14 Days </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www2.linuxjournal.com/lj-issues/issue48/2336.html" target="_blank">Linux Network Programming, Part 3 - CORBA: The Software Bus </a> </u></span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue61/3201.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>CORBA Program Development, Part 1 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue62/3213.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>CORBA Program Development, Part 2 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue63/3214.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>CORBA Program Development, Part 3 </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
CSS</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://richinstyle.com/guides/css2.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>CSS2 Tutorial </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
CVS</b></span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://cellworks.washington.edu/pub/docs/cvs/tutorial/cvs_tutorial_toc.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>CVS Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/cvs/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Concurrent Version System Tutorial </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
DHTML</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://www.stars.com/Authoring/DHTML/Intro/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction<br />
to Dynamic HTML </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
</b></span><br />
<span style="font-family: "times new roman"; font-size: large;"><b>Emacs</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://heather.cs.ucdavis.edu/~matloff/UnixAndC/Editors/Emacs.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Emacs</u></span></a><a href="http://heather.cs.ucdavis.edu/~matloff/UnixAndC/Editors/Emacs.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>: The Software Engineer's ``Swiss Army Knife'' </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.geek-girl.com/emacs/faq/index.html" target="_blank">Emacs</a> </u></span><a href="http://www.geek-girl.com/emacs/faq/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.gnu.org/manual/elisp-manual-20-2.5/elisp.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>GNU Emacs Lisp Reference Manual </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.gnu.org/manual/emacs-lisp-intro/emacs-lisp-intro.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Programming in Emacs Lisp </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.gprep.pvt.k12.md.us/technology/emacs_lesson/emacs_toc.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>GNU Emacs Manual </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.lib.uchicago.edu/keith/tcl-course/emacs-tutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>A Tutorial Introduction to Emacs </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxgazette.com/issue26/marsden.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>EMACSulation</u></span></a><a href="http://www.linuxgazette.com/issue26/marsden.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>: Internet-ready! </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxgazette.com/issue27/marsden.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>EMACSulation</u></span></a><a href="http://www.linuxgazette.com/issue27/marsden.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>: Ediff - An Emacs interface to diff and patch </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxgazette.com/issue29/marsden.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>EMACSulation</u></span></a><a href="http://www.linuxgazette.com/issue29/marsden.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>: Emacs as a Server </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxgazette.com/issue31/marsden.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>EMACSulation</u></span></a><a href="http://www.linuxgazette.com/issue31/marsden.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>: Customizing Emacs </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxgazette.com/issue35/anderson.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Basic Emacs </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxgazette.com/issue39/marsden.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>EMACSulation</u></span></a><a href="http://www.linuxgazette.com/issue39/marsden.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>: Templating Mechanisms </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.linuxgazette.com/issue47/pedersen.html" target="_blank">Emacs</a> </u></span><a href="http://www.linuxgazette.com/issue47/pedersen.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Macros and the Power-Macros Package </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue59/2178.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Polyglot Emacs 20.4 </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
</b></span><br />
<span style="font-family: "times new roman"; font-size: large;"><b>Expect</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://www.linuxgazette.com/issue48/fisher.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Advanced Programming in Expect: A Bulletproof Interface </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue54/3065.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Automating Tasks with Expect </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue68/3357.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>What Can you Expect?--A Data Collection Project Using Linux </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
</b></span><br />
<span style="font-family: "times new roman"; font-size: large;"><b>Fortran</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="ftp://ftp.star.le.ac.uk/pub/fortran/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Professional Programmer's Guide to Fortran 77 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://csep1.phy.ornl.gov/pl/pl.html" target="_blank">Fortran </a></u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://csep1.phy.ornl.gov/pl/pl.html" target="_blank">90 and Computational Science </a></u></span><br />
<a href="http://metalab.unc.edu/pub/languages/fortran/unfp.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>User Notes on Fortran Programming </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://noether.vassar.edu/~myers/Fortran.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Fortran Programming for Physics and Astronomy </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.astro.unibas.ch/F90Tutorial/tutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>A Fortran 90 Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.delorie.com/gnu/docs/g77/g77_1.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Using GNU Fortran </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.hpctec.mcc.ac.uk/hpctec/courses/Fortran90/F90course.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Fortran 90: A Course for Fortran 77 Programmers </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.nsc.liu.se/f77to90.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Fortran 90 for the Fortran 77 Programmer </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.stanford.edu/class/sccm001/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to Fortran </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
</b></span><br />
<span style="font-family: "times new roman"; font-size: large;"><b>GIMP</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><span class="Apple-style-span" style="color: black;"><span style="font-family: "times new roman";"><u><a href="http://empyrean.lib.ndsu.nodak.edu/~nem/gimp/tuts/" target="_blank">GIMP</a> </u></span></span><u><br />
</u></span><br />
<a href="http://empyrean.lib.ndsu.nodak.edu/~nem/gimp/tuts/" target="_blank"><span style="font-family: "times new roman";"><u><span class="Apple-style-span" style="color: #2020a0; font-size: x-small;"> Tutorial Index </span></u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://imagic.weizmann.ac.il/~dov/gimp/perl-tut.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>A Tutorial for Perl GIMP Users </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://imagic.weizmann.ac.il/~dov/gimp/scheme-tut.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>A Scheme Tutorial for GIMP Users </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://jgo.local.net/GimpGuide/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>GIMP Guide<br />
</u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://manual.gimp.org/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The GIMP User Manual </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxfocus.org/English/July2000/article113.shtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Pseudo 3-D with GIMP </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxfocus.org/English/March1998/article9.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Graphical Photocomposition with GIMP </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxfocus.org/English/May1998/article10.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Creating Text with the GIMP </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxfocus.org/English/November1999/article112.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Creating Fire Effects with the GIMP </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxfocus.org/English/articles/article28.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Creating and Editing Animations with GIMP </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxgazette.com/issue51/mauerer.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>GIMP-Perl: GIMP Scripting for the Rest of Us </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.oberlin.edu/~kturner/gimp/doc/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Writing a GIMP Plugin </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.rru.com/~meo/gimp/Tutorial/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>GIMP: The RRU Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.rru.com/~meo/gimp/faq-user.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>GIMP User FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.soulfry.com/script-fu/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Script-Fu Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue43/2388.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Quick Start Guide to the GIMP, Part 1 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue44/2530.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Quick Start Guide to the GIMP, Part 2 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue45/2531.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Quick Start Guide to the GIMP, Part 3 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue46/2532.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Quick Start Guide to the GIMP, Part 4 </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
GNOME</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://developer.gnome.org/doc/tutorials/gnome-libs/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Application Programming Using the GNOME Libraries </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-4.ibm.com/software/developer/library/gnome-programming/indexhtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Part 1: Everything You Need to Get Started </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-4.ibm.com/software/developer/library/gnome2/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Part 2: Building a Sample Genealogy Program </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-4.ibm.com/software/developer/library/gnome3/?dwzone=linux" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Part 3: Adding File Saving and Loading Using libxml </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-4.ibm.com/software/developer/library/gnome4/index.html?dwzone=linux" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Creating GTK+ Widgets with GOB: An Easier Way to Derive New GTK+ Widgets </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-4.ibm.com/software/developer/library/gnome5/index.html?dwzone=linux" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Handling Multipel Documents: Using the GnomeMDI Framework </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-4.ibm.com/software/developer/library/gnomenclature/index.html?dwzone=linux" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Livening Things Up: Graphics Made Easy Using the GNOME Canvas<br />
</u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://www.linuxfocus.org/English/July2000/article160.shtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Developing Gnome Applications with Python - Part 1 </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
</b></span><br />
<span style="font-family: "times new roman"; font-size: large;"><b>GTK</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://developer.gnome.org/doc/API/gdk/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>GDK Reference Manual </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://developer.gnome.org/doc/API/glib/index.html" target="_blank">GLib</a> </u></span><a href="http://developer.gnome.org/doc/API/glib/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Reference Manual </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://developer.gnome.org/doc/API/gtk/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>GTK+ Reference Manual </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.gtk.org/docs/gtk_toc.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The GIMP Toolkit </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.gtk.org/faq/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>GTK+ FAQ<br />
</u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://www.gtk.org/tutorial/gtk_tut.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>GTK V1.2 Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.gtk.org/~otaylor/gtk/tutorial/drawing_tut.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Drawing and Event Handling in GTK </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue47/2465.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>An Introduction to the GIMP Tool Kit </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
Gnuplot</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-cgi.cs.cmu.edu/afs/cs.cmu.edu/user/baraff/www/pbm/constraints.pdf" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Constrained Dynamics </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-cgi.cs.cmu.edu/afs/cs.cmu.edu/user/baraff/www/pbm/continuators.pdf" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Continuum Dynamics </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-cgi.cs.cmu.edu/afs/cs.cmu.edu/user/baraff/www/pbm/diffyq.pdf" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Differential Equation Basics </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-cgi.cs.cmu.edu/afs/cs.cmu.edu/user/baraff/www/pbm/energons.pdf" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Energy Functions and Stiffness </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-cgi.cs.cmu.edu/afs/cs.cmu.edu/user/baraff/www/pbm/particles.pdf" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Particle System Dynamics </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-cgi.cs.cmu.edu/afs/cs.cmu.edu/user/baraff/www/pbm/pbm.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>An Introduction to Physically Based Modeling </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-cgi.cs.cmu.edu/afs/cs.cmu.edu/user/baraff/www/pbm/rigid1.pdf" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Rigid Body Dynamics I </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-cgi.cs.cmu.edu/afs/cs.cmu.edu/user/baraff/www/pbm/rigid2.pdf" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Rigid Body Dynamics II </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cc.gatech.edu/scivis/tutorial/tutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Scientific Visualization Tutorials </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.eng.hawaii.edu/Tutor/Gnuplot/" target="_blank">Gnuplot</a> </u></span><a href="http://www.eng.hawaii.edu/Tutor/Gnuplot/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>- An Interactive Plotting Program </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.webreference.com/dev/gifanim/tutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>GIF Animation Tutorial </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
HTML</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://www.charm.net/~lejeune/tables.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>HTML Table Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.informit.com/product/0789708124/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>HTML by Example </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.informit.com/product/1562764969/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>How to Use HTML 3.2 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.kasparius.com/nonflash/tutorial/tut1.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Creating a Client-Side Image Map </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.ncsa.uiuc.edu/General/Training/AdvHTML/course.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Advanced HTML: How to Create Complex Multimedia Documents for the Web </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.ncsa.uiuc.edu/General/Training/HTMLIntro/Intro.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The ABCs of HTML </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.sharkysoft.com/tutorials/frames/contents.htm" target="_blank">Sharky's</a> </u></span><a href="http://www.sharkysoft.com/tutorials/frames/contents.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Netscape Frames Tutorial </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
</b></span><br />
<span style="font-family: "times new roman"; font-size: large;"><b>ILU</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="ftp://ftp.parc.xerox.com/pub/ilu/2.0b1/manual-html/manual_toc.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>ILU Reference Manual </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="ftp://ftp.parc.xerox.com/pub/ilu/misc/tutc.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Using ILU with ANSI C: A Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="ftp://ftp.parc.xerox.com/pub/ilu/misc/tutjava.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Using ILU with Java: A Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="ftp://ftp.parc.xerox.com/pub/ilu/misc/tutpython.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Using ILU with Python: A Tutorial </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
</b></span><br />
<span style="font-family: "times new roman"; font-size: large;"><b>IP-Masquerading</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linux-mag.com/1999-05/bestdefense_01.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>ipchains</u></span></a><a href="http://www.linux-mag.com/1999-05/bestdefense_01.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>: Packet Filtering for Linux 2.2 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linux-mag.com/1999-08/guru_01.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Setting Up IP Masquerade </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxfocus.org/English/May2000/article151.shtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Setting Up IP-Masquerading </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxplanet.com/linuxplanet/tutorials/1241/1/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Ipchains</u></span></a><a href="http://www.linuxplanet.com/linuxplanet/tutorials/1241/1/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>: Easy Links to the Net </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxplanet.com/linuxplanet/tutorials/2100/1/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Linux Networking Using Ipchains </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
IPC</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://winter.cs.umn.edu/~bentlem/aunix/advipc/ipc.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Advanced 4.4BSD Interpprocess Communication Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.actcom.co.il/~choo/lupg/tutorials/multi-process/multi-process.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>UNIX Multi-Process Programming and IPC </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
</b></span><br />
<span style="font-family: "times new roman"; font-size: large;"><b>Java</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://developer.java.sun.com/developer/onlineTraining/Beans/EJBTutorial/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Enterprise JavaBeans Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://developer.java.sun.com/developer/onlineTraining/Beans/JBShortCourse/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>JavaBeans Short Course </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://developer.java.sun.com/developer/onlineTraining/Beans/JBeansAPI/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to the JavaBeans API </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://developer.java.sun.com/developer/onlineTraining/Database/JDBCShortCourse/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>JDBC Short Course </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://developer.java.sun.com/developer/onlineTraining/Programming/BasicJava1/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Essentials of the Java Programming Language, Part 1 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://developer.java.sun.com/developer/onlineTraining/Programming/BasicJava2/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Essentials of the Java Programming Language, Part 2 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://developer.java.sun.com/developer/onlineTraining/Programming/JDCBook/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Writing Advanced Applications for the Java Platform </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://developer.java.sun.com/developer/onlineTraining/Security/Fundamentals/abstract.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Fundamentals of Java Security </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://developer.java.sun.com/developer/onlineTraining/Servlets/Fundamentals/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Fundamentals of Java Servlets </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://developer.java.sun.com/developer/onlineTraining/collections/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to the Collections Framework </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://developer.java.sun.com/developer/onlineTraining/corb/a" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to CORBA </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://developer.java.sun.com/developer/onlineTraining/rmi/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Fundamentals of RMI </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://home.att.net/~baldwin.r.g/scoop/tocadv.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Advanced</u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://home.att.net/~baldwin.r.g/scoop/tocint.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introductory<br />
</u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://home.att.net/~baldwin.r.g/scoop/tocmed.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Intermediate<br />
</u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://java.sun.com/docs/books/jls/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Java Language Specification </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://java.sun.com/docs/books/tutorial/servlets/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Java Tutorial: Servlet Trail </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://java.sun.com/docs/books/vmspec/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Java Virtual Machine Specification (2nd Ed.) </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://java.sun.com/docs/glossary.print.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Glossary of Java and Related Terms </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://java.sun.com/docs/white/langenv/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Java Language Environment </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://java.sun.com/products/jlf/dg/index.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Java Look and Feel Design Guidelines </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://java.sun.com/products/servlet/articles/tutorial/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Story of a Servlet: An Instant Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://javaboutique.internet.com/articles/ITJ/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to Java </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://javaboutique.internet.com/tutorials/Java2D/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Java2D: An Introduction and Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://jserv.java.sun.com/products/java-server/documentation/webserver11/servlets/servlet_tutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Java Servlet Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://metalab.unc.edu/javafaq/javafaq.html" target="_blank">comp.lang.java</a> </u></span><a href="http://metalab.unc.edu/javafaq/javafaq.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://metalab.unc.edu/javafaq/javatutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Brewing Java: A Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://users.neca.com/vmis/java.html" target="_blank">Shlurrrppp</a> </u></span><a href="http://users.neca.com/vmis/java.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>... Java: The First User-Friendly Tutorial on Java </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://web2.java.sun.com/docs/books/tutorial/uiswing/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Swing Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.apl.jhu.edu/~hall/jav/aSwing-Tutorial/" target="_blank">Swing: A Quick Tutorial for AWT Programmers </a> </u></span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.bruceeckel.com/TIJ2/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Thinking in Java </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.ccs.neu.edu/home/kenb/com3337/rmi_tut.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Java RMI Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cs.wisc.edu/~solomon/cs537/java-tutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Java for C++ Programmers </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.execpc.com/~gopalan/jav/ajava_tutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Advanced Jav/aJ2EE Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.informit.com/product/078970935X/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Hacking Java: The Java Professional's Resource Kit </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.informit.com/product/0789714663/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>JFC Unleashed </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.informit.com/product/157521069X/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Java Developer's Guide </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.informit.com/product/1575211297/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Java Developer's Reference </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.informit.com/product/1575211831/" target="_blank">Sams</a> </u></span><a href="http://www.informit.com/product/1575211831/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Teach Yourself Java in 21 Days (Professional<br />
Reference Ed.) </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.informit.com/product/1575211971/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Java Unleashed (2nd Ed.) </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.informit.com/product/1575212986/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Java 1.1 Unleashed (3rd Ed.) </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.intergate.bc.c/apersonal/iago/javatut/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Java Game Programming Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.io.com/~maus/JavaNetworkingFAQ.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Java Networking FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.javasoft.com/docs/books/tutorial/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Java Tutorial: A Practical Guide for Programmers </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.javaworld.com/javaworld/jw-12-1996/jw-12-sockets.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Sockets Programming in Java </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxfocus.org/English/articles/article34.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Programming with Java - Part I </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxfocus.org/English/articles/article8.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Programming with Java - Part II </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxgazette.com/issue45/gibbs/Linux_java.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Setting Up a Java Development Environment for Linux </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.sofcom.com.au/jav/a" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Understanding Java<br />
</u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://www2.linuxjournal.com/lj-issues/issue55/2570.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Beginner's Guide to JDK </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue61/2673.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>GUI Development in Java </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www2.linuxjournal.com/lj-issues/issue66/3119.html" target="_blank">Java Servlets: An introduction to writing and running<br />
Java servlets on Linux</a></u></span><br />
<span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.guru99.com/java-tutorial.html">Guru99 java tutorial </a></u></span><br />
<span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www2.linuxjournal.com/lj-issues/issue66/3119.html" target="_blank">
</a></u></span><span style="font-family: "times new roman"; font-size: medium;"><span style="font-size: large;"><span style="font-size: x-small;"><u><br /></u></span><b>
JavaScript</b></span></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://andyjava.simplenet.com/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introductory JavaScript Tutorials </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://developer.netscape.com/docs/manuals/communicator/jsguide4/index.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>JavaScript Authoring Guide </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://developer.netscape.com/docs/manuals/js/client/jsguide/index.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Client-Side JavaScript 1.3 Guide </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://developer.netscape.com/docs/manuals/js/client/jsref/index.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Client-Side JavaScript 1.3 Reference </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://developer.netscape.com/docs/manuals/js/core/jsguide/index.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Core JavaScript 1.4 Guide </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://developer.netscape.com/docs/manuals/js/core/jsref/index.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Core JavaScript 1.4 Reference </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://developer.netscape.com/docs/manuals/ssjs/1_4/contents.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Server-Side JavaScript 1.4 Guide </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://developer.netscape.com/support/faqs/champions/javascript.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>JavaScript FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://home.att.net/~baldwin.r.g/scoop/tocjscript1.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>JavaScript Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://rampages.onramp.net/~jnardo/javascript/zen.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Way of JavaScript </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://rummelplatz.uni-mannheim.de/~skoch/js/tutorial.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Voodoo's Introduction to JavaScript </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://wdvl.com/Authoring/JavaScript/Tutorial/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>JavaScript Tutorial for Programmers </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://wsabstract.com/javatutors/primer1.shtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>JavaScript Primer </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.echoecho.com/javascript.htm" target="_blank">EchoEcho</a> </u></span><a href="http://www.echoecho.com/javascript.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>JavaScript Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.informit.com/product/1575211955/" target="_blank">Sams</a> </u></span><a href="http://www.informit.com/product/1575211955/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Teach Yourself JavaScript 1.1 in a Week (2nd Ed.) </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
Lisp</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://ringer.cs.utsa.edu/research/AI/cltl/common-lisp-tutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Common Lisp Hints </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cs.cmu.edu/Web/Groups/AI/html/cltl/cltl2.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Common Lisp the Language (2nd Ed.) </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cs.cmu.edu/Web/Groups/AI/html/faqs/lang/lisp/top.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Lisp FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cse.cuhk.edu.hk/~csc4510/lisp/html/lisp.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Lisp Programming Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.eecs.tulane.edu/www/Villamil/lisp/lisp1.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Lisp Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.nyu.edu/pages/linguistics/nlcp/lisp.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>LISP Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.xanalys.com/software_tools/reference/HyperSpec/FrontMatter/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Common Lisp HyperSpec </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
</b></span><br />
<span style="font-family: "times new roman"; font-size: large;"><b>MIDI</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://www.borg.com/~jglatt/tutr/miditutr.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Basic MIDI Tutorials </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.harmony-central.com/MIDI/Doc/tutorial.html" target="_blank">Tutorial </a></u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.harmony-central.com/MIDI/Doc/tutorial.html" target="_blank">on MIDI and Music Synthesis </a></u></span><br />
<span style="font-family: "times new roman"; font-size: large;"><b><br />
</b></span><br />
<span style="font-family: "times new roman"; font-size: large;"><b>ML</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://cs.wwc.edu/Environment/SML-Tutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>ML Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.dcs.ed.ac.uk/home/stg/NOTES/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Programming in Standard ML '97 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.dcs.napier.ac.uk/course-notes/sml/manual.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>A Gentle Introduction to ML </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.dina.dk/~sestoft/manual/manual.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Moscow ML Owner's Manual </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
MPI</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-erl.mit.edu/cagc/mpi/tutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>An MPI Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-unix.mcs.anl.gov/mpi/tutorial/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Tutorial on MPI </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-unix.mcs.anl.gov/mpi/tutorial/mpibasics/index.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>MPI: Portable Parallel Programming for Scientific Computing </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-unix.mcs.anl.gov/mpi/tutorial/perf/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Tuning MPI Applications for Peak Performance </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.epm.ornl.gov/~walker/mpi/SLIDES/mpi-tutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>MPI: >From Fundamentals to Applications </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.mpi.nd.edu/mpi_tutorials/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>MPI Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.netlib.org/utk/papers/mpi-book/mpi-book.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>MPI: The Complete Reference </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.scs.leeds.ac.uk/cpde/tutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to Parallel Programming Using MPI </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.tc.cornell.edu/Edu/Talks/MPI/Basic/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Basics of MPI Programming </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
Matlab</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.engin.umich.edu/group/ctm/basic/basic.html" target="_blank">Matlab</a> </u></span><a href="http://www.engin.umich.edu/group/ctm/basic/basic.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Basics Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.math.ufl.edu/help/matlab-tutorial/" target="_blank">Matlab</a> </u></span><a href="http://www.math.ufl.edu/help/matlab-tutorial/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Summary and Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.mathworks.com/access/helpdesk/help/fulldocset.shtml" target="_blank">Matlab</a> </u></span><a href="http://www.mathworks.com/access/helpdesk/help/fulldocset.shtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>- Official Online Manuals in PDF </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
Misc</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://bigfoot.eecs.umich.edu/~soar/tutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Soar 8 Tutorial Home Page </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://ee.fit.edu/courses/ece1552/ATutor.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>8051 Assembly Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://lglwww.epfl.ch/Ad/agnat_rm.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>GNAT Reference Manual </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://metaverse.net/tutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>MOO Programming Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://ww2.med.jhu.edu/Greenberg.Center/tutorial.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Genetic Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-suif.stanford.edu/suif/suif2/doc/suifprogramming/suifprogramming.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Basic SUIF Programming Guide </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.astro.ucla.edu/~wright/cosmo_01.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Cosmology Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.astro.ucla.edu/~wright/relatvty.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Relativity Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cs.stedwards.edu/~purvis/COSC_3331/AssyT.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>80x86 Assembly Language Programming Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cs.washington.edu/research/zpl/docs/descriptions/guidehtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>ZPL Programming Guide </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.erc.msstate.edu/~reese/vhdl_synthesis/" target="_blank">VHDL </a></u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.erc.msstate.edu/~reese/vhdl_synthesis/" target="_blank"> Synthesis Tutorial </a></u></span><br />
<a href="http://www.flipcode.com/tutorials/tut_scr01.shtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Part 1: Overview </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.flipcode.com/tutorials/tut_scr02.shtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Part 2: The Lexical Analyzer </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.flipcode.com/tutorials/tut_scr03.shtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Part 3: The Parser </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.flipcode.com/tutorials/tut_scr04.shtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Part 4: The Symbol Table and Syntax Tree </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.flipcode.com/tutorials/tut_scr05.shtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Part 5: The Semantic Checker and Intermediate Code Generator </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.flipcode.com/tutorials/tut_scr06.shtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Part 6: Optimization </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.flipcode.com/tutorials/tut_scr07.shtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Part 7: The Virtual Machine </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.flipcode.com/tutorials/tut_scr08.shtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Part 8: Executable Code </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.flipcode.com/tutorials/tut_scr09.shtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Part 9: Advanced Subjects </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.hut.fi/u/jkorpel/achars.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>A tutorial on character code issues </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.labs.redhat.com/imlib/tut/" target="_blank">Imlib</a> </u></span><a href="http://www.labs.redhat.com/imlib/tut/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Programmer's Guide </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.ling.lu.se/research/speechtutorial/tutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Speech Analysis Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.muppetlabs.com/~breadbox/intercal-man/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>INTERCAL Programming Language Revised Reference Manual </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.sees.bangor.ac.uk/~schmuel/comp/comp.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Quantum Computation: A Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.sfn.saskatoon.sk.c/aHelp/ModemTutorial/ModemTutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Modem Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://zeitgeber.bio.virginia.edu/tutorial/TUTORIALMAIN.html" target="_blank">Biotiming</a> </u></span><a href="http://zeitgeber.bio.virginia.edu/tutorial/TUTORIALMAIN.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Tutorial </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
Motif</b></span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://devcentral.iftech.com/learning/tutorials/misc/motif/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to Motif Application Development </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cm.cf.ac.uk/Dave/X_lecture/X_book_caller/X_book_callerhtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>X Window/Motif Programming </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.rahul.net/kenton/faqs/mfaq_index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Motif FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue64/3392.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Motif/Lesstif Application Development </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue73/3666.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>X/Motif Programming </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
OpenGL</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://fly.srk.fer.hr/~unreal/theredbook/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>OpenGL Programming Guide - The Red Book </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://nehe.gamedev.net/opengl.asp" target="_blank">NeHe</a> </u></span><a href="http://nehe.gamedev.net/opengl.asp" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>OpenGL Tutorials </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://reality.sgi.com/blythe/sig99/advanced99/notes/notes.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Advanced Graphics Programming Techniques Using OpenGL </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://scv.bu.edu/SCV/Tutorials/OpenMP/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to OpenMP </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://toolbox.sgi.com/TasteOfDT/src/tutorials/OGLT/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>OpenGL: >From the Extensions to the Solutions </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-unix.mcs.anl.gov/dbpp/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Designing and Building Parallel Programs </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-unix.mcs.anl.gov/mpi/tutorial/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Tutorial Material on MPI </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-unix.mcs.anl.gov/mpi/tutorial/gropp/talk.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Tutorial on MPI </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.actcom.co.il/~choo/lupg/tutorials/parallel-programming-theory/parallel-programming-theory.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Parallel Programming - Basic Theory for the Unwary </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cacr.caltech.edu/beowulf/tutorial/building.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Building a Beowulf System </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cs.rice.edu/~chk/hpf-tutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>High Performance Fortran in Practice </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cs.uwm.edu/~grafix2/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Java Personal OpenGL Tutorial (JPOT) </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.eecs.tulane.edu/www/Terry/OpenGL/Introduction.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>OpenGL Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.flipcode.com/tutorials/tut_atmap.shtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Advanced OpenGL Texture Mapping </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxfocus.org/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Linux Focus<br />
</u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://www.linuxfocus.org/English/January1998/article2.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>What is OpenGL? </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxfocus.org/English/January1998/article3.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>GLUT Programming: Windows and Animations </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxfocus.org/English/January1998/article4.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>OpenGL Programming: Simple Polygon Rendering </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxfocus.org/English/March1998/article3.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>OpenGL Programming: More About Lines </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxfocus.org/English/March1998/article4.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>GLUT Programming: Windows Management </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.sgi.com/software/opengl/advanced96/course_notes.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Programming with OpenGL: Advanced Rendering </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.sgi.com/software/opengl/advanced97/notes/notes.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Programming with OpenGL: Advanced Techniques </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.sgi.com/software/opengl/kitchen/overview/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>OpenGL Overview </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue45/2432.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>HPF: Programming Linux Clusters the Easy Way </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
PHP</b></span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://e-gineer.com/e-gineer/phpkb/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>PHPKnowledge Base </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://hotwired.lycos.com/webmonkey/programming/php/tutorials/tutorial4html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>PHP/MySQL Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.devshed.com/Server_Side/PHP/Introduction/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>PHP3 Introduction </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.htmlwizard.net/phpTidbits/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>PHP Tutorials </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.php.net/FAQ.php3" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>PHP FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.php.net/docs.php3" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>PHP Manual </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.phpbuilder.com/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>PHP How-To Columns </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue73/3658.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>An Introduction to PHP3 </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
PVM</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.epm.ornl.gov/pvm/EuroPVM97/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Advanced Tutorial on PVM 3.4 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.netlib.org/pvm3/book/pvm-book.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>PVM: A User's Guide and Tutorial for Networked Parallel Computing </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.netlib.org/pvm3/faq_html/faq.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>PVM FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue45/2258.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Parallel Processing using PVM </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
Pascal</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://www.cit.ac.nz/smac/pascal/pstart.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Pascal Programming OnLine Notes </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.geocities.com/SiliconValley/Park/3230/pasles00.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Roby's Pascal Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.swcp.com/~dodrill/pasdoc/paslist.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Pascal Language Tutorial </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
Perl</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="ftp://ftp.ccs.neu.edu/net/mirrors/ftp.funet.fi/pub/languages/perl/CPAN/CPAN.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Perl Modules </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="ftp://ftp.cdrom.com/pub/perl/CPAN/doc/manual/html/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Perl man pages </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://agora.leeds.ac.uk/Perl/start.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Perl Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://devcentral.iftech.com/learning/tutorials/web/perl/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>A Quick Introduction to Perl </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://language.perl.com/faq/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Perl FAQ<br />
</u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://virtual.park.uga.edu/humcomp/perl/perl5.html" target="_blank">HTMLified</a> </u></span><a href="http://virtual.park.uga.edu/humcomp/perl/perl5.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Perl 5 Reference Guide </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://virtual.park.uga.edu/humcomp/perl/regex2a.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Perl Regular Expression Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-4.ibm.com/software/developer/library/perl2/index.html?dwzone=linux" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Save it With Perl: A CPAN Solution to Data Persistence </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cclabs.missouri.edu/things/instruction/perl/perlcoursehtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to Perl </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.civeng.carleton.c/aCourses/Grad/1995-96/82.562/perl/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Perl Programming Language </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.informit.com/product/0672308940/" target="_blank">Sams</a> </u></span><a href="http://www.informit.com/product/0672308940/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Teach Yourself Perl 5 in 21 Days (2nd Ed.) </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.informit.com/product/0789706598/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Using Perl for Web Programming </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.informit.com/product/0789708884/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Perl 5 Quick Reference </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxfocus.org/English/January2000/article136.shtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Perl Part III - Arrays </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxfocus.org/English/November1999/article126.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Perl Part II - Writing a Real Program </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxfocus.org/English/September1999/article114.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Perl Part I - Introduction </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.ncsa.uiuc.edu/General/Training/PerlIntro/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Perl Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.netcat.co.uk/rob/perl/win32perltut.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Robert's Perl Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.speakeasy.org/~cgires/cgi-tips.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>CGI/Perl Tips, Tricks and Hints </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.uga.edu/~ucns/wsg/unix/perl/course/introduction.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>An Introduction to Perl </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue54/3095.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Embperl</u></span></a><a href="http://www2.linuxjournal.com/lj-issues/issue54/3095.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>: Modern Templates </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue55/2901.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Perl Embedding </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue60/3237.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Network Programming with Perl </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
PostScript</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="ftp://wilma.cs.brown.edu/pub/comp.lang.postscript/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>PostScript FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://devcentral.iftech.com/learning/tutorials/misc/ps/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>PostScript Programming </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://ds.dial.pipex.com/quite/errors.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>About PostScript Errors </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cs.indiana.edu/docproject/programming/postscript/postscript.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>A First Guide to PostScript </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cs.ukc.ac.uk/pubs/1992/109/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>PostScript Tutorial and Reference </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxfocus.org/English/July1999/article100.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>PostScript III: The Operand Stack of PostScript: Arrays, Variables, Loops and Macro Definitions </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxfocus.org/English/July1999/article41.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>PostScript II: The Operand Stack, Manipulations and Mathematical Operators </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxfocus.org/English/May1998/article3.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>PostScript I: The Language </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
Povray</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://library.thinkquest.org/3285/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Online POV-Ray Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.linuxfocus.org/English/March1998/article5.html" target="_blank">Povray</a> </u></span><a href="http://www.linuxfocus.org/English/March1998/article5.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>I: First Steps </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.linuxfocus.org/English/May1998/article8.html" target="_blank">Povray</a> </u></span><a href="http://www.linuxfocus.org/English/May1998/article8.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>II: Basic Notions </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.linuxfocus.org/English/articles/article11.html" target="_blank">Povray</a> </u></span><a href="http://www.linuxfocus.org/English/articles/article11.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>III: Design of Recursive Structures </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
Prolog</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://cbl.leeds.ac.uk/~paul/prologbook/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Prolog Programming: A First Course </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://kti.ms.mff.cuni.cz/~bartak/prolog/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>On-Line Guide to Prolog Programming </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cse.cuhk.edu.hk/~csc4510/prolog/tutorial.1/1.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Prolog Programming Tutorial </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
</b></span><br />
<span style="font-family: "times new roman"; font-size: large;"><b>Python</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="ftp://ftp.unicamp.br/pub/network/ORB/ilu/misc/tutpython.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Practical ILU with Python: A Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://members.xoom.com/alan_gauld/tutor/tutindex.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Learning to Program </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://starship.python.net/crew/d/anumtut/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Numeric Python Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-4.ibm.com/software/developer/library/cheatsheet3.html?dwzone=linux" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Cheat Sheet: A Quick Reference Document for Newcomers </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-4.ibm.com/software/developer/library/l-python5.html?dwzone=linux" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Text Processing in Python: Tips for Beginners </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-4.ibm.com/software/developer/library/python-state.html?dwzone=linux" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Using State Machines: Algorithms and Programming Approaches in Python </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-4.ibm.com/software/developer/library/python1/?dwzone=linux" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Tinkering with XML and Python: An Introduction to XML Tools for Python </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-4.ibm.com/software/developer/library/python101.html?dwzone=linux" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Other Scripting Language that Starts with a "P" </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-4.ibm.com/software/developer/library/python2/index.html?dwzone=linux" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Dynamics of DOM: A Closer Look at Python's xml.dom Module </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-4.ibm.com/software/developer/library/python3.html?dwzone=linux" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>My First Web-Based Filtering Proxy: Converting Text to HTML Using Txt2Html<br />
</u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://www.idi.ntnu.no/~mlh/python/instant.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Instant Python </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.idi.ntnu.no/~mlh/python/programming.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Instant Hacking: Learn How to Program With Python </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
<br />
</u></span><a href="http://www.keylabs.com/calder/apython.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Whole Python FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.nwc.com/unixworld/tutorial/005/005.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The What, Why, Who, and Where of Python </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.python.org/doc/current/ext/ext.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Extending and Embedding the Python Interpreter </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.python.org/doc/current/lib/lib.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Python Library Reference </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.python.org/doc/current/ref/ref.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Python Reference Manual </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.python.org/doc/lj21.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>An Introduction to Python </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.python.org/doc/tut/tut.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Python Tutorial </u></span></a><br />
<a href="http://www.sunworld.com/sunworldonline/swol-02-1998/swol-02-python.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Getting Started With Python </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
RPC</b></span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://anguilla.u.arizona.edu/doc_link/en_US/a_doc_lib/aixprggd/progcomc/ch8_rpc.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Remote Procecure Call - AIX Programming Concepts Guide </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://docs.linux.cz/programming/c/marshall/node34.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Protocol Compiling and Lower Level RPC Programming </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://uw7doc.sco.com/SDK_netapi/CTOC-rpcpN.intro.html" target="_blank">Programming </a></u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://uw7doc.sco.com/SDK_netapi/CTOC-rpcpN.intro.html" target="_blank">with Remote Procedure Calls - SCO </a></u></span><br />
<a href="http://webdocs.sequent.com/docs/rpcpaa01/about.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>RPC Programming Documents - Sun </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.crc-tgr.edu.au/docs/dec/AA-Q0R5B-TET1_html/onc-rpc4.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>RPC Programming Interface - DEC </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue42/2204.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Remote Procedure Calls in Linux </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
Rexx</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://users.comlab.ox.ac.uk/ian.collier/Docs/rexx_info/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>REXX/imc Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-4.ibm.com/software/ad/obj-rexx/orxadva1.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Advanced Object REXX Programming </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-4.ibm.com/software/ad/obj-rexx/orxintr1.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to Object REXX Programming </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.mindspring.com/~dave_martin/RexxFAQ.html" target="_blank">Rexx</a> </u></span><a href="http://www.mindspring.com/~dave_martin/RexxFAQ.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.hursley.ibm.com/rexxtut/socktut1.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>TCP/IP Socket Programming with REXX </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
Ruby</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://dev.rubycentral.com/faq/rubyfaq.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Ruby Language FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-4.ibm.com/software/developer/library/ruby.html?dwzone=linux" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Ruby: A New Language </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.hypermetrics.com/ruby37.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Thirty-seven Reasons I Love Ruby </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.informit.com/matter/art0000016/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Ruby Programming Language </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.math.sci.hokudai.ac.jp/~gotoken/ruby/ruby-uguide/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Ruby User's Guide </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.ruby-lang.org/en/man-1.4/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Ruby Language Reference Manual </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
</b></span><br />
<span style="font-family: "times new roman"; font-size: large;"><b>SCSI</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://www.linux-mag.com/1999-08/gear_01.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>An Introduction to SCSI Drivers </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linux-mag.com/1999-09/gear_01.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Advanced SCSI Drivers And Other Tales </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
</b></span><br />
<span style="font-family: "times new roman"; font-size: large;"><b>SQL</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://torresoft.netmegs.com/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>SQL Tutorial and Interpreter </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://w3.one.net/~jhoffman/sqltut.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to Structured Query Language </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.devshed.com/Server_Side/MySQL/Intro/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Beginning MySQL Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.informit.com/product/0672311100/" target="_blank">Sams</a> </u></span><a href="http://www.informit.com/product/0672311100/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Teach Yourself SQL in 21 Days (2nd Ed.) </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxfocus.org/English/May1998/article13.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>SQL Tutorial I - Introduction to SQL and Installation of PostgreSQL </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxfocus.org/English/articles/article36.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>MySQL</u></span></a><a href="http://www.linuxfocus.org/English/articles/article36.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>: A Database Server </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxplanet.com/linuxplanet/tutorials/1046/1/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Setting Up a MySQL Based Website - Part 1 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxplanet.com/linuxplanet/tutorials/1447/1/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Setting Up a MySQL Based Website - Part II </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.postgresql.org/docs/tutorial/tutorial.htm" target="_blank">PostgreSQL</a> </u></span><a href="http://www.postgresql.org/docs/tutorial/tutorial.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue38/2206.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Using mSQL in a Web-Based Production Environment </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue41/2421.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Speaking SQL </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue42/2470.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Integrating SQL with CGI, Part 1 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue43/2508.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Integrating SQL with CGI, Part 2 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue46/2245.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>PostgreSQL</u></span></a><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www2.linuxjournal.com/lj-issues/issue46/2245.html" target="_blank">--the Linux under the Databases </a> </u></span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue46/2443.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Beagle SQL, A Client/Server Database for Linux </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www2.linuxjournal.com/lj-issues/issue67/3294.html" target="_blank">NoSQL</a> </u></span><a href="http://www2.linuxjournal.com/lj-issues/issue67/3294.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="font-family: "times new roman";"><u><a href="http://www2.linuxjournal.com/lj-issues/issue67/3609.html" style="color: #2020a0; font-size: small;" target="_blank">MySQL</a> </u></span><a href="http://www2.linuxjournal.com/lj-issues/issue67/3609.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
SSI</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://hoohoo.ncsa.uiuc.edu/docs/tutorials/includes.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>NCSA HTTPd Server Side Includes </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.carleton.c/a~dmcfet/html/ssi.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Server Side Includes Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.harlequin.com/products/ads/ml/tutorial/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Programming in Standard ML '97: An On-Line Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.useforesite.com/tut_ssi.shtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>SSI Tutorial </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
STL</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cs.brown.edu/people/jak/proglang/cpp/stltut/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>A Modest STL Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="font-family: "times new roman";"><u><a href="http://www.infosys.tuwien.ac.at/Research/Component/tutorial/prwmain.htm" style="color: #2020a0; font-size: small;" target="_blank">The Standard Template Library Tutorial </a></u></span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxgazette.com/issue34/field.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to STL, Standard Template Library </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.yrl.co.uk/~phil/stl/stl.htmlx" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>STL Tutorial </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
Samba</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://www-4.ibm.com/software/developer/library/samb/a" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to Samba - Part 1: Key Concepts </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxgazette.com/issue24/nelson.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>More Adventures with Samba </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxplanet.com/linuxplanet/tutorials/2047/1/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Linux Networking: Exploring Samba </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue43/2513.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Using Samba to Mount Windows 95 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue51/2716.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introducing Samba </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue56/2717.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Samba's Encrypted Password Support </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
Scheme</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://cs.wwc.edu/~cs_dept/KU/PR/Scheme.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Scheme Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://imagic.weizmann.ac.il/~dov/gimp/scheme-tut.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>A Scheme Tutorial for GIMP Users </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://sicp.ai.mit.edu/manuals/r4rs/r4rs_toc.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Revised (4) Report on the Algorithmic Language Scheme </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://sicp.ai.mit.edu/manuals/scheme-7.5.5/doc/scheme_toc.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>MIT Scheme Reference </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.cs.rice.edu/CS/PLT/packages/doc/drscheme/index.html" target="_blank">DrScheme</a> </u></span><a href="http://www.cs.rice.edu/CS/PLT/packages/doc/drscheme/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Programming Environment Manual </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.cs.rice.edu/CS/PLT/packages/doc/mzscheme/index.html" target="_blank">MzScheme</a> </u></span><a href="http://www.cs.rice.edu/CS/PLT/packages/doc/mzscheme/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Language Manual </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cs.rice.edu/~dorai/t-y-scheme/t-y-scheme.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Teach Yourself Scheme in Fixnum Days </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cs.rice.edu/~shriram/311/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Lecture Notes on the Principles of Programming Languages </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cs.utexas.edu/users/wilson/schintro/schintro_toc.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>An Introduction to Scheme and Its Implementation </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cs.washington.edu/education/courses/341/99su/lectures/scheme/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Scheme Programming Language </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.faqs.org/faqs/scheme-faq/part1/preamble.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Scheme FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.llnl.gov/def_sci/pact/PACT_Docs/sx/sx.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The PACT Scheme Language </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.math.grin.edu/courses/Scheme/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Fundamentals of Computer Science I </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.scheme.com/csug/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Chez Scheme User's Guide </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="font-family: "times new roman";"><u><a href="http://www.scheme.com/tspl2d/index.html" style="color: #2020a0; font-size: small;" target="_blank">The Scheme Programming Language (2nd Ed.) </a></u></span><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
Smalltalk</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.cosc.canterbury.ac.nz/~wolfgang/cosc205/smalltalk1.html" target="_blank">Basic Aspects of Squeak and the Smalltalk-80 Programming<br />
Language </a> </u></span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.ncsu.edu/eos/info/ece480_info/project/spring96/proj63/www/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>IBM Smalltalk Tutorial </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
TCP/IP</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://ipprimer.2ndlevel.net/" target="_blank">Daryl's TCP/IP<br />
Primer </a> </u></span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://oac3.hsc.uth.tmc.edu/staff/snewton/tcp-tutorial/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to the Internet Protocols </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://playground.sun.com/pub/ipng/html/INET-IPng-Paper.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>IP Next Generation Overview </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://winter.cs.umn.edu/~zhzhang/Papers/stallings.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>IPv6: The New Internet Protocol </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.3com.com/nsc/501302s.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Understanding IP Addressing </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.3com.com/nsc/501303.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to IP Multicast Routing </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="font-family: "times new roman";"><u><a href="http://www.austin.ibm.com/resource/aix_resource/Pubs/redbooks/htmlbooks/gg243376.04/3376fm.html" style="color: #2020a0; font-size: small;" target="_blank">TCP/IP Tutorial and Technical Overview </a></u></span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.catalyst.com/reports.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>An Introduction to TCP/IP Programming </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cis.ohio-state.edu/hypertext/faq/usenet/internet/tcp-ip/domains-faq/part1/faq.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>TCP/IP FAQ - Part 1 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cis.ohio-state.edu/hypertext/faq/usenet/internet/tcp-ip/domains-faq/part2/faq.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>TCP/IP FAQ - Part 2 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.inform.umd.edu/CompRes/NetInfo/Internet/TCPIPIntro/" target="_blank">TCP/IP: Introduction to the Internet Protocols </a></u></span><br />
<a href="http://www.informit.com/product/0672308851/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Teach Yourself TCP/IP in 14 Days (2nd Ed.) </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.interworks.org/conference/IWorks96/sessions/TCPtutorial/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>TCP/IP for Idiots Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxgazette.com/issue47/stacey.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>T/TCP:TCP for Transactions </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.sangoma.com/fguide.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>TCP/IP and IPX Routing Tutorial </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
</b></span><span style="font-family: "times new roman"; font-size: large;"><b> Tcl/Tk</b></span><br />
<a href="http://hegel.ittc.ukans.edu/topics/tcltk/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to Programming with Tcl </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://herzberg.ca.sandia.gov/TclCourse/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Programming Using Tcl/Tk </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.beedub.com/book/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Practical Programming in Tcl and Tk </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.dci.clrc.ac.uk/Publications/Cookbook/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Tcl</u></span></a><a href="http://www.dci.clrc.ac.uk/Publications/Cookbook/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>/Tk Cookbook </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.lib.uchicago.edu/keith/tcl-course/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to the Tcl/Tk Programming Language </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxfocus.org/English/September1999/article110.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Tcl Syntax </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.slac.stanford.edu/~raines/tkref.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Tcl</u></span></a><a href="http://www.slac.stanford.edu/~raines/tkref.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>/Tk Quick Reference Guide </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.tclfaq.wservice.com/tcl-faq/" target="_blank">comp.lang.tcl</a> </u></span><a href="http://www.tclfaq.wservice.com/tcl-faq/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.tcltk.com/TclTkMan/TclTkManPages.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Tcl</u></span></a><a href="http://www.tcltk.com/TclTkMan/TclTkManPages.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>/Tk Man Pages </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue49/2172.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Rapid Prototyping with Tcl/Tk </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue55/3114.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Tcl</u></span></a><a href="http://www2.linuxjournal.com/lj-issues/issue55/3114.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>/Tk: The Swiss Army Knife of Web Applications </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
TeX</b></span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www2.linuxjournal.com/lj-issues/issue70/3387.html" target="_blank">LaTeX</a> </u></span><a href="http://www2.linuxjournal.com/lj-issues/issue70/3387.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>for Secretaries </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
UNIX</b></span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://cm.bell-labs.com/cm/cs/who/dmr/cacm.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The UNIX Time-Sharing System </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://cm.bell-labs.com/cm/cs/who/dmr/hist.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Evolution of the UNIX Time-Sharing System </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://cm.bell-labs.com/cm/cs/who/dmr/retro.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The UNIX Time-Sharing System - A Retrospective </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://heather.cs.ucdavis.edu/~matloff/UnixAndC/Unix/UnixBareMn.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>UNIX - The Bare Minimum </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://lithos.gat.com/docview/unix.html" target="_blank">Using the UNIX Operating System </a> </u></span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://minnie.cs.adfa.oz.au/TUHS/Mirror/Hauben/unix.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>History of UNIX </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://nacphy.physics.orst.edu/otherUNIX/edinburgh/unixhelp1.2/Pages/TOP_.html" target="_blank">UNIXhelp</a> </u></span><a href="http://nacphy.physics.orst.edu/otherUNIX/edinburgh/unixhelp1.2/Pages/TOP_.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>for Users </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://ra.stsci.edu/documents/UUG/UnixGuide.book_65.html" target="_blank">STScI</a> </u></span><a href="http://ra.stsci.edu/documents/UUG/UnixGuide.book_65.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>UNIX Users Guide </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://wks.uts.ohio-state.edu/sysadm_course/sysadm.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>UNIX System Administration </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.unix-systems.org/what_is_unix/history_timeline.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>UNIX Past </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.actcom.co.il/~choo/lupg/tutorials/c-on-unix/c-on-unix.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Compiling C and C++ Programs on UNIX Systems - gcc/g++ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.actcom.co.il/~choo/lupg/tutorials/handling-files/handling-files.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Manipulating Files and Directories in UNIX </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.actcom.co.il/~choo/lupg/tutorials/signals/signals-programming.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to UNIX Signals Programming </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.best.com/~thvv/unix.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>UNIX and Multics </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.faqs.org/faqs/unix-faq/faq/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>UNIX FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.freebsd.org/cgi/man.cgi" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>UNIX Man Pages Online </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.informit.com/product/0672304023/" target="_blank">UNIX Unleashed </a> </u></span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.informit.com/product/0672309521/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>UNIX Unleashed: System Administrator's Edition </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.informit.com/product/0672312050/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>UNIX Unleashed: Internet Edition </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.isu.edu/departments/comcom/unix/workshop/unixindex.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>A Basic UNIX Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.iu.hioslo.no/~mark/unix/unix.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The UNIX Programming Environment </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.mhpcc.edu/training/vitecbids/UnixIntro/UnixIntro.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to UNIX </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.ncsa.uiuc.edu/General/Training/InterUnix/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Intermediate UNIX Training </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.physics.orst.edu/tutorial/unix/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Coping with UNIX: An Interactive Survival Kit </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.sao.nrc.c/aimsb/rcsg/documents/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to UNIX Course Notes </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.sao.nrc.c/aimsb/rcsg/documents/advanced/advanced.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Advanced Introduction to UNIX </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.sao.nrc.c/aimsb/rcsg/documents/basic/basic.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Basic Introduction to UNIX </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.sao.nrc.c/aimsb/rcsg/documents/bourne/bourne.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Programming the Shell </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.sao.nrc.c/aimsb/rcsg/documents/internet/internet.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Networking/Internet with UNIX </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.uwsg.indiana.edu/usail/firsttime/argh.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Learning UNIX </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
VRML</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://deslab.mit.edu/DesignLab/courses/13.016/visualization/second/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to VRML </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://tecfa.unige.ch/guides/vrml/vrmlman/vrmlman.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>VRML Primer and Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.dform.com/inquiry/tutorials/vrmlaudio/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>VRML Audio Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.mwc.edu/~pclark/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Easy VRML Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.vapourtech.com/vrmlguide/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>VRML 97 Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.vislab.usyd.edu.au/siggraph96vrml/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to VRML 2.0 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue57/3085.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>An Introduction to VRML </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://zansiii.millersv.edu/work2/vrmltutorial.dir/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>VRML 2.0 Tutorial </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
X11</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://ciac.llnl.gov/ciac/documents/ciac2316.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Securing X Windows </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://formast.lut.ac.uk/ASlab/info/usage/X-doc/XwindowGuide/doc.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>X Window Guide </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://heather.cs.ucdavis.edu/~matloff/UnixAndC/Unix/XWindows.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Using X11 Windows </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://nacphy.physics.orst.edu/coping-with-unix/node116.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Looking Through X Windows </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://reality.sgi.com/widgetFAQ/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>X Widget FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://tronche.com/gui/x/xlib-tutorial/" target="_blank">Xlib</a> </u></span><a href="http://tronche.com/gui/x/xlib-tutorial/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Programming: A Short Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-h.eng.cam.ac.uk/help/tpl/graphics/X/X11R5/Concise.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>X Windows Version 11.5: A Concise Description </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.arlut.utexas.edu/csd/doc/seminar.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Beginning with X </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.faqs.org/faqs/Xt-FAQ/preamble.html" target="_blank">comp.windows.x.intrinsics</a> </u></span><a href="http://www.faqs.org/faqs/Xt-FAQ/preamble.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>(Xt) FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.faqs.org/faqs/x-faq/part1/preamble.html" target="_blank">comp.windows.x</a> </u></span><a href="http://www.faqs.org/faqs/x-faq/part1/preamble.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxfocus.org/English/March1998/article11.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Configuring X </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.rahul.net/kenton/40errs.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The 40 Most Common X Programming Errors (And How to Avoid Repeating Them) </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.rahul.net/kenton/perf.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>X Window System Application Performance Tuning </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.rru.com/~meo/pubsntalks/xrj/xdm.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Taming the X Display Manager (xdm) </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.strath.ac.uk/CC/Courses/oldXC/xc.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to X Windows </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.xfree86.org/FAQ/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>XFree86 FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue47/2035.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Programming with XView </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue53/2259.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Developing Imaging Applications with XIE </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue56/3083.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>X Window System Administration </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
XDR</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://anguilla.u.arizona.edu/doc_link/en_US/a_doc_lib/aixprggd/progcomc/xdr_ovw.htm" target="_blank">eXternal</a> </u></span><a href="http://anguilla.u.arizona.edu/doc_link/en_US/a_doc_lib/aixprggd/progcomc/xdr_ovw.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Data Representation Overview for Programming </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www-aix.informatik.uni-tuebingen.de/doc_link/en_US/a_doc_lib/aixprggd/progcomc/ch4_xdr.htm" target="_blank">eXternal</a> </u></span><a href="http://www-aix.informatik.uni-tuebingen.de/doc_link/en_US/a_doc_lib/aixprggd/progcomc/ch4_xdr.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Data Representation - AIX Programming Concepts Guide<br />
</u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://www.sw.ru/~bob/docs/FreeBSD/psd/24.xdr.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>External Data Representation: Sun Technical Notes </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.unix.digital.com/faqs/publications/base_doc/DOCUMENTATION/HTML/AA-Q0R5B-TET1_html/onc-rpc5.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>External Data Representation: Technical Notes </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
XML</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
<br />
</u></span><a href="http://java.sun.com/xml/docs/tutorial/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Working with XML: The Java API for XML Parsing (JAXP) Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://metalab.unc.edu/xql/xql-tutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>XQL Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-4.ibm.com/software/developer/education/xmlintro/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Tutorial Introduction to XML </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.brics.dk/~amoeller/XML/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The XML Revolution: Technologies for the Future Web </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxfocus.org/English/July2000/article156.shtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>An Introduction to Perl's XML::XSLT Module </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.projectcool.com/developer/xmlz/xmlref/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>XML Reference and Glossary </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.ucc.ie/xml/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>XML FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.w3.org/TR/1998/REC-xml-19980210" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Extensible Markup Language (XML) 1.0 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.xulplanet.com/tutorials/xultu/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>XUL Tutorial </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
auto</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://www.airs.com/ian/configure/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The GNU Configure and Build System </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.amath.washington.edu/~lf/tutorials/autoconf/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Developing Software with GNU (w/ Learning Autoconf and Automake) </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.amath.washington.edu/~lf/tutorials/autoconf/autoconf/autoconf_toc.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Autoconf</u></span></a><a href="http://www.amath.washington.edu/~lf/tutorials/autoconf/autoconf/autoconf_toc.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>: Creating Automatic Configuration Scripts </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.amath.washington.edu/~lf/tutorials/autoconf/automake/automake_toc.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>GNU Automake </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.slac.stanford.edu/~langston/am-f77_toc.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Adding Fortran 77 Support to Automake </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
debugging</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.actcom.co.il/~choo/lupg/tutorials/debugging/debugging-with-gdb.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Debugging C and C++ Programs using gdb </u></span></a><br />
<span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.gnu.org/manual/gdb-4.17/gdb.html" target="_blank">Debugging</a> </u></span><a href="http://www.gnu.org/manual/gdb-4.17/gdb.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>with GDB (GNU Manual) </u></span></a><br />
<span style="font-family: "times new roman";"><b> <br />
<span class="Apple-style-span" style="font-size: large;"> elm</span></b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.dorsai.org/help/unix/elm/ref_gd.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Elm Reference Guide </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.dorsai.org/help/unix/elm/usr_gd.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Elm User's Guide </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.eng.hawaii.edu/Tutor/elm.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Email with the Elm Mailer </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.stanford.edu/group/dcg/leland-docs/elmfaq.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>ELM FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.ncsu.edu/ncsu/cc/pub/tutorials/elm_tutor/elm_tutor.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Elm Tutor </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
</b></span><br />
<span style="font-family: "times new roman"; font-size: large;"><b>lex</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://cs.wwc.edu/~aabyan/464/Book/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Compiler Construction Using Flex and Bison </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://members.tripod.com/~ashimg/Parser.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>How to Write a Simple Parser with Lex and Yacc </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://members.xoom.com/thomasn/y_man.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>A Guide to Lex and Yacc </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://nscp.upenn.edu/aix4.3html/aixprggd/genprogc/create_input_lang_lex_yacc.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Creating an Input Language with the lex and yacc Commands </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cs.arizona.edu/classes/cs553/notes.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>A Brisk Tutorial on Lex and Yacc </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cs.latrobe.edu.au/~agapow/Teaching/Cs251/lex_yacc.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>What Do Lex and Yacc Do? </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.ecst.csuchico.edu/~bhsteel/250/examplesHandout/handouthtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Roles of Lex and YACC </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.geocities.com/SiliconValley/Campus/3754/litl0.htm" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>A Little Manual for Lex and Yacc </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.gnu.org/manual/bison-1.25/bison.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>GNU Bison Manual </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.gnu.org/manual/flex-2.5.4/flex.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>GNU Flex Manual </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxgazette.com/issue39/sevenich.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Compiler Construction Tools - Part I: JFlex and CUP </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxgazette.com/issue41/sevenich.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Compiler Construction Tools - Part II: Installing JFlex and<br />
CUP - Specific Instructions<br />
</u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://www.luv.asn.au/overheads/lex_yacc/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>What is Lex? What is Yacc? </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www2.linuxjournal.com/lj-issues/issue51/2227.html" target="_blank">lex</a> </u></span><a href="http://www2.linuxjournal.com/lj-issues/issue51/2227.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>and yacc: Tools Worth Knowing </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
</b></span><br />
<span style="font-family: "times new roman"; font-size: large;"><b>make</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://albrecht.ecn.purdue.edu/~rfisher/Tutorials/Make/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introductory Tutorial on Make </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://jerboa.student.harvard.edu/libsq-1998/ref/make.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>A Brief Introduction to Make </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://linux.com/development/newsitem.phtml?sid=64&aid=7822" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Getting Started with Make - Part 1: The Basics </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://linux.com/development/newsitem.phtml?sid=64&aid=7894" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Getting Started with Make - Part 2 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://physics.ucsc.edu/tutor/make.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Tutorial on Make </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.actcom.co.il/~choo/lupg/tutorials/writing-makefiles/writing-makefiles.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Automating<br />
Program Compilation - Writing Makefiles </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cs.columbia.edu/~allen/f98/tutorials/make/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>A Brief Make Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.eng.hawaii.edu/Tutor/Make/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Make - A Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.gnu.org/manual/automake-1.3/automake.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>GNU Automake Manual </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.gnu.org/manual/make-3.77/make.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>GNU Make Manual </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.jrb3.com/bdh/Be/BeDev_Tips/make-tut/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Quick and Dirty Make Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue48/2171.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Building Projects with Imake </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
networks</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.adsl.com/vdsl_tutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>VDSL Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cable-modems.org/tutorial/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Cable Modem Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.nlanr.net/NA/tutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Tutorial: Insight Into Current Internet Traffic Workloads </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.slac.stanford.edu/comp/net/wan-mon/tutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Tutorial on Internet Monitoring </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.uswest.com/products/dat/aframe/tutorial/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Frame Relay Tutorial </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
sed</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://dns.easysw.com/~mike/serial/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Serial Programming for POSIX Compliant Operating Systems </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://seders.icheme.org/scripts/" target="_blank">sed</a> </u></span><a href="http://seders.icheme.org/scripts/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Script Archive </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://seders.icheme.org/tutorials/sedfaq.html" target="_blank">sed</a> </u></span><a href="http://seders.icheme.org/tutorials/sedfaq.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>FAQ #2 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://seders.icheme.org/tutorials/sedtut_1.txt" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Do It With sed </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://seders.icheme.org/tutorials/sedtut_4.txt" target="_blank">sed</a> </u></span><a href="http://seders.icheme.org/tutorials/sedtut_4.txt" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>- A Non-Interactive Text Editor </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://seders.icheme.org/tutorials/sedtut_5.txt" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to sed </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://seders.icheme.org/tutorials/sedtut_9.txt" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Handy One-Liners for sed </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.dreamwvr.com/sed-info/sed-faq.html" target="_blank">sed</a> </u></span><a href="http://www.dreamwvr.com/sed-info/sed-faq.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>FAQ #1 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.math.fu-berlin.de/~guckes/sed/" target="_blank">sed</a> </u></span><a href="http://www.math.fu-berlin.de/~guckes/sed/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>- The Stream Editor </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.math.fu-berlin.de/~leitner/sed/tutorial.html" target="_blank">sed</a> </u></span><a href="http://www.math.fu-berlin.de/~leitner/sed/tutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Tutorial </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
shells</b></span><span style="font-family: "times new roman"; font-size: x-small;"><br />
</span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u> </u></span><a href="http://c2.com/cgi/wiki?UnixShellPatterns" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>UNIX Shell Patterns </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://cres20.anu.edu.au/manuals/korn.html" target="_blank">Korn</a> </u></span><a href="http://cres20.anu.edu.au/manuals/korn.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Shell Reference </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://goanna.cs.rmit.edu.au/~steveh/tns/shell/shell.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>UNIX Shell Programming Bourne and Korn Shells </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://heather.cs.ucdavis.edu/~matloff/UnixAndC/Unix/CShellI.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>A Brief Introduction To C Shell Variables </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://heather.cs.ucdavis.edu/~matloff/UnixAndC/Unix/CShellII.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>UNIX Shell Scripts </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://osiris.sund.ac.uk/ahu/comm57/script.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Writing UNIX Scripts </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-4.ibm.com/software/developer/library/bash.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Part 1: Fundamental Programming in Bash </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-4.ibm.com/software/developer/library/bash2.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Part 2: More Bash Programming Fundamentals </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-4.ibm.com/software/developer/library/bash3.html?dwzone=linux" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Part 3: Exploring the Ebuild System </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.cc.vt.edu/cc/us/docs/unix/shells.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Working the the Shell Environment </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.cs.mun.c/a~michael/pdksh/pdksh-man.html" target="_blank">pdksh</a> </u></span><a href="http://www.cs.mun.c/a~michael/pdksh/pdksh-man.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>(Public Domain Korn) </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.csd.uu.se/~matkin/documents/shell/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Shell Script Programming </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.eng.hawaii.edu/Tutor/csh.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>C Shell Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.faqs.org/faqs/unix-faq/shell/bash/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>BASH FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.faqs.org/faqs/unix-faq/shell/shell-differences/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Shell Differences FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.faqs.org/faqs/unix-faq/shell/zsh/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Z-Shell FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.gnu.org/manual/bash-2.02/bashref.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>GNU Bash Reference Manual </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxgazette.com/issue25/dearman.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Bourne/Bash: Shell Programming Introduction </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxgazette.com/issue53/eyler.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Functions and Aliases in Bash </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxgazette.com/issue54/okopnik.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to Shell Scripting </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxgazette.com/issue55/okopnik.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>The Deep, Dark Secrets of Bash </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.neosoft.com/neosoft/man/bash.1.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>bash (GNU) </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.neosoft.com/neosoft/man/csh.1.html" target="_blank">csh</a> </u></span><a href="http://www.neosoft.com/neosoft/man/csh.1.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>(C) </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.neosoft.com/neosoft/man/ksh.1.html" target="_blank">ksh</a> </u></span><a href="http://www.neosoft.com/neosoft/man/ksh.1.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>(Korn) </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.neosoft.com/neosoft/man/sh.1.html" target="_blank">sh</a> </u></span><a href="http://www.neosoft.com/neosoft/man/sh.1.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>(Bourne) </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.neosoft.com/neosoft/man/tcsh.1.html" target="_blank">tcsh</a> </u></span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.neosoft.com/neosoft/man/zsh.1.html" target="_blank">zsh</a> </u></span><a href="http://www.neosoft.com/neosoft/man/zsh.1.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>(Z) </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.networkcomputing.com/unixworld/tutorial/018/018shell.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Gettingthe Most from Your Shell </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.opengroup.org/onlinepubs/7908799/xcu/shellix.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Shell Command Language Index </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.torget.se/users/d/Devlin/shell/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>UNIX Bourne Shell Programming </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue35/2066.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Features of the TCSH Shell </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue61/2460.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Improve Bash Shell Scripts Using Dialog </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue64/3215.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Extending the Bash Prompt </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www2.linuxjournal.com/lj-issues/issue71/3645.html" target="_blank">Shell Functions and Path Variables, Part 1 </a> </u></span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue72/3768.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Shell Functions and Path Variables, Part 2 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue73/3935.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Shell Functions and Path Variables, Part 3 </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
sockets</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://homepages.stayfree.co.uk/zed/net/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to Network Functions in C </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://winter.cs.umn.edu/~bentlem/aunix/BSD-UNIX:SysCalls_and_IPChtml" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Berkeley UNIX System Calls and Interprocess Communication </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.ecst.csuchico.edu/~beej/guide/net/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Using Internet Sockets </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.ecst.csuchico.edu/~chafey/prog/sockets/sinfo1.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Beginner's Guide to Sockets </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.ecst.csuchico.edu/~chafey/prog/sockets/sinfo2.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>BSD Sockets: A Quick And Dirty Primer </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.javaworld.com/javaworld/jw-12-1996/jw-12-sockets.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Sockets Programming in Java </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxgazette.com/issue47/bueno.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to Socket Programming </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.uwo.c/aits/doc/courses/notes/socket/index.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>An Introduction to Socket Programming </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue35/2057.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Perl and Sockets </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue46/2333.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Linux Network Programming, Part 1 - BSD Sockets </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
threads</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://dis.cs.umass.edu/~wagner/threads_html/tutorial.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Getting Started with POSIX Threads </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://pauillac.inria.fr/~xleroy/linuxthreads/faq.html" target="_blank">LinuxThreads</a> </u></span><a href="http://pauillac.inria.fr/~xleroy/linuxthreads/faq.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-4.ibm.com/software/developer/library/l-posix3/?dwzone=linux" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Part 3: Improve Efficiency with Condition Variables </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-4.ibm.com/software/developer/library/posix1.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Part 1: A Simple and Nimble Tool for Memory Sharing </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www-4.ibm.com/software/developer/library/posix2/index.html?dwzone=linux" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Part 2: The Little Things Called Mutexes </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.actcom.co.il/~choo/lupg/tutorials/multi-thread/multi-thread.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Multi-Threaded Programming with POSIX Threads </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.best.com/~bos/threads-faq/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Threads FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.gl.umbc.edu/~schmitt/331F96/tshida1/thread.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Multithreaded Programming </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.linuxgazette.com/issue48/dellomodarme.html" target="_blank">LinuxThreads</a> </u></span><a href="http://www.linuxgazette.com/issue48/dellomodarme.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Programming </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.mit.edu:8001/people/proven/pthreads.html" target="_blank">Pthreads</a> </u></span><a href="http://www.mit.edu:8001/people/proven/pthreads.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>- Overview and Manual </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue34/1363.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>What is Multi-Threading? </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue36/2121.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Thread-Specific Data and Signal Handling in Multi-Threaded Applications </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue61/3138.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Introduction to Multi-Threaded Programming </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www2.linuxjournal.com/lj-issues/issue70/3184.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>POSIX Thread Libraries </u></span></a><span style="font-family: "times new roman"; font-size: large;"><b><br />
<br />
vi</b></span><span style="font-family: "times new roman"; font-size: x-small;"> </span><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://ecn.www.ecn.purdue.edu/ECN/Documents/VI/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>vi Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://heather.cs.ucdavis.edu/~matloff/Elvis/Doc/elvis.html" target="_blank">elvis</a> </u></span><a href="http://heather.cs.ucdavis.edu/~matloff/Elvis/Doc/elvis.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Manual </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://heather.cs.ucdavis.edu/~matloff/UnixAndC/Editors/ViIntro.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>An xtremely Quick and Simple Introduction to the Vi Text Editor </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://heather.cs.ucdavis.edu/~matloff/Vim/Doc.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>vim Reference Manual </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.eng.hawaii.edu/Tutor/vi.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Mastering the vi Editor </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.faqs.org/faqs/editor-faq/vi/part1/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>vi FAQ - Part 1 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.faqs.org/faqs/editor-faq/vi/part2/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>vi FAQ - Part 2 </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.faqs.org/faqs/editor-faq/vim/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>vim Editor FAQ </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.jaws.umn.edu/docs/vi/" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>vi Quick Reference and Tutorial </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><a href="http://www.linuxgazette.com/issue29/kahn.html" target="_blank"><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u>Revisiting VIM </u></span></a><span style="color: blue; font-family: "times new roman"; font-size: small;"><u><br />
</u></span><span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><u><a href="http://www.networkcomputing.com/unixworld/tutorial/009/009.html" target="_blank">The vi/ex Editor </a></u></span><br />
<span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><br />
</span><br />
<span style="color: #2020a0; font-family: "times new roman"; font-size: x-small;"><span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: black; font-family: "arial";">Note: This post is for my reference only.</span></span></td> </tr>
</tbody> </table>
</div>
Riyas Basheerhttp://www.blogger.com/profile/14049764815420932838noreply@blogger.com0