10 Greatest Computer Programmers In History

1. Ada Lovelace

It may be seen as a new age thing with millions of lines of codes and imensely powerful computers, but one of the pioneers of programming was a woman named Ada Augusta King, a.k.a. Ada Lovelace. She was a mathematician who worked on Charles Babbage's mechanical general purpose computer known as the Analytical Engine.

2. Niklaus Wirth

Widely recognised as one of the pioneer's of programming, this is the man who created languages like Pascal, Euler, Algol and many others.

3. Bill Gates

A list of influential or greatest programmers can never be complete without mentioning the founder and creator of Microsoft. He has both admirers and haters, but no one can deny his contribution.

4. James Gosling

This is the man who created the Java programming language, which is arguably one of the most influential languages of all time.

5. Guido van Rossum

Have you heard of him? You've definitely heard of the language he created. This is the man behind the Python programming language.

6. Kenneth Thompson

Call him Ken because that's what the hacker community calls him. He has worked for Google and developed the Go programming language while working there. He also developed the original Unix operating system and a programming language called B, which was the predecessor to the illustrious C programming language.

7. Donald Knuth

This man is known as the father of anaylsis of algorithms for his contributions to the field of analysis and computational complexity of algorithms.

8. Brian Kernighan

He is the co-creator and developer of the Unix, AWK and AMPL languages.

9. Tim Berners-Lee

If you don't know this name then you should really work on increasing your awareness. This is the man who created the World Wide Web and hence gave us the lives we have today.

10. Bjarne Stroustrup

This man created the C++ programming language. Yes, the language that gave rise to so many of the best known programs and programming languages.

11. Linus Torvalds

Little needs to be said about this man. He's the creator of the Linux kernel, which is the base for so many operating systems.

12. Dennis Ritchie

C++ is an offspring of the C programming language and Dennis Ritchie is the man who created C.

Oracle Applications Modules

ABM - Activity Based Management
AD - Applications DBA
AHL - Oracle Advanced Service Online
AK - Oracle Common Modules-AK
ALR - Oracle Alert
AMF - Oracle Fulfillment Services
AMS - Oracle Marketing
AP - Oracle Payables
AR - Oracle Receivables
AS - Oracle Sales
ASG - Oracle CRM Gateway for Mobile Services
ASL - Oracle Mobile Field Sales Laptop
ASO - Oracle Order Capture
AST - TeleSales
AX - Global Accounting Engine
AZ - Application Implementation
BEN - Oracle Advanced Benefits
BIC - Customer Intelligence
BIL - Sales Intelligence
BIM - Marketing Intelligence
BIS - Oracle Applications BIS
BIX - Call Center Intelligence
BNE - Oracle Web ADI
BOM - Oracle Bills of Material
BSC - Balanced Scorecard
CCT - Oracle Call Center and Telephony
CE - Oracle Cash Management
CHV - Oracle Supplier Scheduling
CLN - Supply Chain Trading Connector for RosettaNet
CN - Oracle Sales Compensation
CS - Oracle Service
CSC - Customer Care
CSD - Depot Repair
CSE - Oracle Enterprise Install Base
CSF - Field Service
CSI - Install Base
CSM - Oracle Field Service Palm
CSP - Oracle Spares Management
CSR - Oracle Scheduler
CSS - Support
CUG - Oracle Citizen Interaction Center
CUN - Oracle Network Logistics NATS
CZ - Oracle Configurator
EAM - Oracle Enterprise Asset Management
EC - Oracle e-Commerce Gateway
ECX - Oracle XML Gateway
EDR - Oracle E Records
ENG - Oracle Engineering
FII - Financials Intelligence
FLM - Oracle Flow Manufacturing
FND - Application Object Library
FTE - Oracle Transportation Hub
FV - Oracle Federal Financials
GHR - Oracle Federal HR
GL - Oracle General Ledger
GMA - Oracle Process Manufacturing Systems
GMD - Oracle Process Manufacturing Product Development
GME - Oracle Process Manufacturing Process Execution
GMF - Oracle Process Manufacturing Financials
GMI - Oracle Process Manufacturing Inventory
GML - Oracle Process Manufacturing Logistics
GMP - Oracle Process Manufacturing Process Planning
GMS - Oracle Grants Accounting
GR - Oracle Process Regulatory Mgmt
HRI - Human Resources Intelligence
HXC - Oracle Time and Labor
HXT - Oracle Time and Labor Rules
IBA - iMarketing
IBC - Oracle iContent
IBE - iStore
IBU - iSupport
IBY - iPayment
ICX - Oracle Self-Service Web Applications
IEB - Oracle Interaction Blending
IEC - Oracle Campaign Plus
IEM - Oracle eMail Center
IEO - Call Center Technology
IES - Scripting
IEU - Oracle Universal Work Queue
IEX - Oracle Collections
IGC - Commitment Administration
IGF - Student Systems Fin Aid
IGI - Oracle International Public Sector Financials
IGS - Oracle Student Sytems
IGW - Oracle Grants Proposal
INV - Oracle Inventory
IPD - Oracle Product Development Exchange
ISC - Supply Chain Intelligence
JTF - CRM Foundation
JTM - Oracle CRM Mobile Foundation
JTS - Oracle CRM Self Service Administration
MRP - Oracle Master Scheduling/MRP
MSC - Oracle Advanced Supply Chain Planning
MSD - Oracle Demand Planning
OFA - Oracle Assets
OKC - Oracle Contracts Core
OKI - Oracle Contracts Intelligence
OKL - Oracle Lease Management
OKR - Oracle Contracts for Rights
OKS - Oracle Contracts Service Module
ONT - Oracle Order Management
OPI - Operations Intelligence
OTA - Oracle Training Administration
OZF - Funds & Budgets
PA - Oracle Projects
PAY - Oracle Payroll
PER - Oracle Human Resources
PJM - Oracle Project Manufacturing
PN - Oracle Property Manager
PO - Oracle Purchasing
POA - Purchasing Intelligence
POM - Oracle Exchange
PON - Oracle Sourcing
POS - Internet Supplier Portal
PQH - Oracle Public Sector HR
PSA - Public Sector Applications
PSB - Oracle Public Sector Budgeting
PSP - Oracle Labor Distribution
PV - Partner Relationship Management
QA - Oracle Quality
QP - Oracle Pricing
QRM - Oracle Risk Management
RG - Application Report Generator
RLM - Oracle Release Management
VEA - Oracle Automotive
WIP - Oracle Work in Process
WMS - Oracle Warehouse Management System
WSH - Oracle Shipping
WSM - Shop Floor Management
XDP - Oracle Provisioning
XNC - Oracle Sales for Communications
XNI - Oracle Install Base Intelligence
XNP - Oracle Number Portability
XNS - Oracle Service for Communications
XTR - Oracle Treasury

Know How SQL Server Executes a Query in Short

The present blog explains the entire process as to how MS SQL server, the client-server platform executes a query request, issued by user. Sendingrequests, which is the only means of communication with the server database can be achieved by the use of some specific in-built commands that the database in SQL server understands. The reason for acquiring the way SQL server executes a query is that it shall assist developers to write better coding for the database. Though understanding requires a complete know how and is a lengthy task, an attempt has been made to make users acquaint with the process in short by means of the image displayed below.



Summary of ‘Query Execution’ Procedure:  The complete procedure ofquery execution can be summarized as below:
                                                                                          
Step 1: At the very beginning a Request is sent, the Request in turn creates a new Task. In fact this step involves Creation of Task.

Step 2: If workers are not free to take up a Task for execution, a queue of Task gets formed and remains in pending state for execution.

Step 3: When any Worker in the threadpool becomes free after the execution of any Task, the idle Worker then picks up a pending Task. This step is all about an idle worker picking up a Pending Task.

Step 4: This is the Task Execution step of the query execution process. Here, firstly an execution plan is compiled. This in turn involves parsing, compilation and optimization. Thereafter, Query plan is executed where the operators access data through the buffer pool.

Step 5: Then, Result set is returned during execution.

Step 6: Finally, at the end the Task gets executed and complete. The involved Worker returns to idle state and the process gets over.

The process of SQL Server execution of queries can be understood easily by the below mentioned steps.

1.    Creation of ‘Request’

At the very beginning when a new request is completely sent over the Tabular Data Stream (TDS), a protocol that is used for communication between the sender’s application and the server database; task is created by server database engine for handling the placed request. Once the request gets formed it can take any one of the three below mentioned forms.

1.    Batch Request
2.    Remote Procedure Call Request
3.    Bulk Road Request

Note - The list of requests in the server can be queried fromsys.dm_exec_requests.

2.    Creation of ‘Task’

The task that is created to handle the request represents the request right from the start to end. When a new request reaches the server and then the task that is created to handle the particular request remains in ‘pending’ state. The reason being, that at the current stage the server has no clue as to what exactly the request signifies. Thus, a pile of tasks gets formed and remains in queue. In such a case the task has to be executed first, for which the server database engine should assign a worker to it.

Note - The list of tasks in the server can be attained by sys.dm_os_tasksquery. 

3.    Assigning ‘Worker’ a Task

Workers are one of the main components and actually the threadpool of SQL Server. Multiple of them are created in the beginning i.e. at the very start of the server. Although more of them can be formed on-demand up to a limit of configured maximum worker threads. All the workers remain in waiting state for the ‘pending’ tasks to become available, from requests coming into the server. Thereafter, each idle worker picks up exactly one task and executes it. In the mean time all the engaged worker remains unavailable until the execution of task gets over. Therefore, Tasks that remain in ‘pending’ state due to lack ofavailable workers, shall have to stay pending until execution of any task gets complete and the worker that executed the particular task becomes available.

Note - The lists and state of workers inside SQL Server can be checked by querying sys.dm_os_workers.

4.    Parsing and Compilation

Thereafter, an execution plan is complied. In this step, before a Task starts executing a Request the first thing it needs to do is to gain a proper understanding about the content of the specific Request. The T-SQL text that exists inside the request gets parsed and an abstract syntax tree gets formed for representation of the particular Request. Actually, the conclusion is that all the existing Requests are parsed and thereby compiled in this step. However, in case any error occurs at this stride the Requests gets terminated with a compilation error.

5.    Optimization

Optimization is the next important phase in the complete life cycle of Task Execution, so as to select an optimum data path access. In case of SQL server, the best way of optimization is chosen by first observing the costs of each possible alternative. Thereby, the alternative with the lowest cost is chosen as the query plan to be utilized, to make the process economical. It is quite obvious that exploring all the possible alternatives consumes much time. Hence, once a query plan is created it is also cached, for use in future. So, similar Requests that might be requested in future can skip over the optimization phase; provided an already compiled and optimized query plan is found in the internal cache of SQL Server. 

6.    Execution & Result

Finally, after compilation the Requests gets executed, the Task gets completed and the Worker becomes available and free to pick up another Task in pending condition. Once a query plan is selected by the Optimizer, the ‘Request’ or say the ‘Query plan’ can be executed. Actually, this is the last important step as to how SQL server executes a query. Finally, the Result set is given back which is the end of the process.

Rules of IT Administration

  1. Remember the "K.I.S.S." principle..."keep it simple, Supervisor".
     
  2. If you have to assign permissions to one entity you'll have to assign them to another.

    Similar, if I'm assigned to complete a particular task once I'll likely be assigned the task again.
     
  3. The workers change but the work stays pretty much the same.
     
  4. Assign permissions to a Group | Role rather than to an individual user.
     
  5. It's easier to manage membership than it is to manage permissions.
     
  6. Beware: anything that I can "engineer", I can also "over-engineer".
     
  7. Remember: just because I can, doesn't mean I should.
     
  8. When in doubt in Windows, right click.
     
  9. I can't turn to the left or right in Windows | Exchange | SQL Server without being permitted to do so.
     
  10. If I'm in I.T. and there's a problem with a computer it's my fault.
     
  11. The add on rule to Rule #8: Even if it's not my fault it's my fault.
     
  12. When you're designing an I.T. structure make sure that your design works hard for you rather than making you work hard.
I've copied this post from one of the site and it is wonderful to share with you all.

Changing SSH Port in Linux

Open ssh config with your favorite editor:
vi /etc/ssh/sshd_config
Look for line with “Port 22”, should be on top:
_ # What ports, IPs and protocols we listen for Port 12345_
Restart ssh service:
/etc/init.d/ssh restart

******************SAUDI APPS DBA***************************************

Migrate MySQL Databases, Users, and Privileges to Different Server

1.) Databases:
  • Get list of databases
1
mysql -uroot -proot_password -e "show databases"
  • Dump all databases
1
mysqldump -uroot -proot_password --all-databases > databases.sql
Note: you can dump only the databases that you want to move. Also, you need to exclude the “mysql” database itself if you are moving into an mysql server with existing records.
* Transfer sql dumps to new server with your preferred way (ftp, scp, rsync, etc)
  • Create Databases on new server.
1
mysql -uroot -proot_password -e "create database database_name_1;"
1
mysql -uroot -proot_password -e "create database database_name_2;"
1
mysql -uroot -proot_password -e "create database database_name_3;"
  • Import database dumps to new server
1
mysql -uroot -proot_password < databases.sql
2.) Database Users and Privileges:
  • Get list of database users and their privileges.
1
mysql -B -N -uroot -proot_password -e "SELECT user, host FROM user" mysql
  • Then get the privileges and password hash for each users from the above step.
1
mysql -B -N -uroot -proot_password -e "SHOW GRANTS FOR 'db_user'@'db_host'"
Note: Above command will output similar to these two lines or you will get more if the db_user has access to more than one databases.
1
GRANT USAGE ON *.* TO 'db_user'@'db_host' IDENTIFIED BY PASSWORD '*23AW9301879BCC8BC24343CDCDC40F375606C43D'
1
GRANT ALL PRIVILEGES ON db_name.* TO 'db_user'@'db_host'
  • Then you need to execute all these lines or queries on the new MySQL server. You can put them all in a text file (example: users.txt) and add semi-colon on each line, then import to mysql (example below):
1
mysql -uroot -proot_password < users.txt

HowTo Change Hostname in Linux

To check for current hostname:

1
hostname
Change hostname
1
hostname new_hostname
Make change permanent on reboot:
  • Debian/Ubuntu: edit or make changes on this file /etc/hostname
  • RHEL/CentOS: edit or make changes on this file /etc/sysconfig/network
Important:
Make sure to check or update new hostname in /etc/hosts as some running application could be using hostname values in there. Test running applications as well or try to reload/restart if possible (ex: apache).