For finding a file in current directory and all subdirectory
find . -name "file_name.File_to_be_found" -print
File display with line numbers:
cat -n file_name_with_full_path
disk free space:
df -h
du -h
Monday, July 11, 2011
Tuesday, June 21, 2011
Network Programming
http://en.wikipedia.org/wiki/Computer_network_programming
http://msdn.microsoft.com/en-us/library/4as0wz7t.aspx
http://beej.us/guide/bgnet/output/print/bgnet_A4.pdf - C network programming
http://www.kohala.com/start/rstevensfaq.html - Unix Network Programming - Guru
http://download.oracle.com/javase/tutorial/networking/urls/index.html - Java Network Programming
http://msdn.microsoft.com/en-us/library/4as0wz7t.aspx
http://beej.us/guide/bgnet/output/print/bgnet_A4.pdf - C network programming
http://www.kohala.com/start/rstevensfaq.html - Unix Network Programming - Guru
http://download.oracle.com/javase/tutorial/networking/urls/index.html - Java Network Programming
Sunday, June 19, 2011
List Vs Linked List
http://stackoverflow.com/questions/169973/when-should-i-use-a-list-vs-a-linkedlist
Linked lists provide very fast insertion or deletion of a list member. Each member in a linked list contains a pointer to the next member in the list so to insert a member at position i:
- update the pointer in member i-1 to point to the new member
- set the pointer in the new member to point to member i
The disadvantage to a linked list is that random access is not possible. Accessing a member requires traversing the list until the desired member is found.
Wednesday, June 15, 2011
.NET CORE
Difference Between HashTable and Dictionary:
Simply,
Dictionary<TKey,TValue>
is a generic type, allowing:- static typing (and compile-time verification)
- use without boxing
If you are .NET 2.0 or above, you should prefer
Dictionary<TKey,TValue>
(and the other generic collections)A subtle but important difference is that
Hashtable
supports multiple reader threads with a single writer thread, while Dictionary
offers no thread safety. If you need thread safety with a generic dictionary, you must implement your own synchronization or (in .NET 4.0) useConcurrentDictionary<TKey, TValue>
.SQL - Interview Questions
Can one retrieve only the Nth row from a table?
SELECT * FROM (
SELECT name,ROWNUM RN FROM test_employee WHERE ROWNUM < 8 )
WHERE RN = 7;
http://www.orafaq.com/wiki/ ROWNUM
Any other efficient way:
--returns the 7th row, assuming minimum 7 rows exists
SELECT rownum,name,id,mid FROM test_employee a
GROUP BY rownum,name,id,mid HAVING rownum = 7;
--returns the fourth row, assuming minimum 4 rows exists
SELECT * FROM test_employee WHERE rownum=1 AND rowid NOT IN
(SELECT rowid FROM test_employee WHERE rownum <= 3);
--returns 8th row, assuming, min of 8 rows exists
SELECT * FROM test_employee t1
WHERE rowid = (
SELECT rowid FROM test_employee t1
WHERE rownum <= 8
MINUS
SELECT rowid FROM test_employee t1
WHERE rownum < 8);
--Adding a column after a specific column
ALTER TABLE tablename ADD columnname AFTER columnname;
CREATE TABLE tab1 AS SELECT 0 AS col1, col1 AS col2 FROM tab1_old; .
alter table test_employee add dept_id number;
alter table test_employee add sex varchar2(1);
--to find the males and females in a company
select sum( decode(sex,'M',1,0)) MALE,
sum( decode(sex,'F',1,0)) FEMALE,
count(decode(sex,'M',1,'F',1)) TOTAL
from test_employee;
--To find the number of males, females department wise
select dept_id, sum( decode(sex,'M',1,0)) MALE,
sum( decode(sex,'F',1,0)) FEMALE,
count(decode(sex,'M',1,'F',1)) TOTAL
from test_employee
group by dept_id;
--2nd max from the table
select max(id) from test_employee where id <
(select max(id) from test_employee);
Implementing IF-THEN-ELSE login in select statement:
One can use the CASE statement or functions like DECODE, NVL, NVL2, NULLIF, COALESCE, etc.
SELECT * FROM (
SELECT name,ROWNUM RN FROM test_employee WHERE ROWNUM < 8 )
WHERE RN = 7;
http://www.orafaq.com/wiki/
Any other efficient way:
--returns the 7th row, assuming minimum 7 rows exists
SELECT rownum,name,id,mid FROM test_employee a
GROUP BY rownum,name,id,mid HAVING rownum = 7;
--returns the fourth row, assuming minimum 4 rows exists
SELECT * FROM test_employee WHERE rownum=1 AND rowid NOT IN
(SELECT rowid FROM test_employee WHERE rownum <= 3);
--returns 8th row, assuming, min of 8 rows exists
SELECT * FROM test_employee t1
WHERE rowid = (
SELECT rowid FROM test_employee t1
WHERE rownum <= 8
MINUS
SELECT rowid FROM test_employee t1
WHERE rownum < 8);
--Adding a column after a specific column
ALTER TABLE tablename ADD columnname AFTER columnname;
CREATE TABLE tab1 AS SELECT 0 AS col1, col1 AS col2 FROM tab1_old; .
alter table test_employee add dept_id number;
alter table test_employee add sex varchar2(1);
--to find the males and females in a company
select sum( decode(sex,'M',1,0)) MALE,
sum( decode(sex,'F',1,0)) FEMALE,
count(decode(sex,'M',1,'F',1)) TOTAL
from test_employee;
--To find the number of males, females department wise
select dept_id, sum( decode(sex,'M',1,0)) MALE,
sum( decode(sex,'F',1,0)) FEMALE,
count(decode(sex,'M',1,'F',1)) TOTAL
from test_employee
group by dept_id;
--2nd max from the table
select max(id) from test_employee where id <
(select max(id) from test_employee);
Implementing IF-THEN-ELSE login in select statement:
One can use the CASE statement or functions like DECODE, NVL, NVL2, NULLIF, COALESCE, etc.
SQL - Update Statements
Scenario: (Uses Oracle-SQL)
HR asks to increment the salary
1. <= 3000, increase by 1000;
2. <= 4000, increase by 500;
3. <= 5000 increase by 250;
Example:
Current Salary: 3000 then New Salary should be 3000 + 1000 + 500 + 250 = 4750
Solution:
create table emp_salary
(
id number,
name varchar2(20),
current_sal number(20,2),
new_sal number(20,2)
);
insert into EMP_SALARY (id, name, current_sal)
values (1, 'Mani', 3000);
insert into EMP_SALARY (id, name, current_sal)
values (2, 'abhishek', 4000);
insert into EMP_SALARY (id, name, current_sal)
values (3, 'ajay', 5000);
insert into EMP_SALARY (id, name, current_sal)
values (4, 'arun', 2000);
commit;
1. Not efficient:
update emp_salary
set new_sal = current_sal + 1000 + 500 + 250
where current_sal > 0 and current_sal <= 3000;
update emp_salary
set new_sal = current_sal + 500 + 250
where current_sal >= 3001 and current_sal <= 4000;
update emp_salary
set new_sal = current_sal + 250
where current_sal >= 4001 and current_sal <= 5000;
commit;
2. Efficient:
update test_emp_sal
set current_sal =
case
when current_sal > 0 AND current_sal <= 3000 then current_sal + 1000 + 500 + 250
when current_sal > 3001 AND current_sal <= 4000 then current_sal + 500 + 250
when current_sal > 4001 AND current_sal <= 5000 then current_sal + 250
end
;
commit;
==================================================================================
update orders
set order_mode_num =
decode(order_mode,
'direct',100,
'online',200,
'walmart',300,
'amazon',400,
0)
;
==================================================================================
update orders
set order_mode_num =
case
when order_mode = 'direct' and
customer_id < 102 then 500
when order_mode = 'direct' then 100
when order_mode = 'online' then 200
when order_mode = 'walmart' then 300
when order_mode = 'amazon' then 400
else 0
end
;
=================================================================================
CAREER!!!
What one skill, if you developed and practiced it consistently in an excellent fashion, would have the greatest positive impact on your career? ----Brian Tracy.
Subscribe to:
Posts (Atom)