Engineer Boyfriends are the best!!!!

Top 3 Reasons why Engineer Boyfriends are the Best!!!

1. Secure lifestyle

An engineer boyfriend can provide you with a secure lifestyle. At 27 years old, an engineer probably has a respectable, stable job that gives him high income to own a car, invest, have a comfortable life, and get married and buy a house too. Law graduates are still working as a lowly apprentice in law firm, most management graduates have just failed on their first business plan, the arts graduate is still

looking for a job, and the medical school graduate is still living in a hospital.

2. Unmatchable industriousness

An engineer boyfriend will dedicate an unimaginable amount of his time and effort to understand you. Engineers strain really really hard to understand their work. You can believe that they will try really really hard to understand women too, just like how they understand their work, once they believe that you are the one. So even if they don’t understand you initially, they will keep on trying. Even if they still do not understand, they will figure out the correct method to keep you happy (e.g. buy diamond ring = 1 week’s worth of happiness.) And once they find out the secret formula, they will just keep on repeating it so that the desired results appear. Unlike the Lawyer who will argue with you, the Management graduate who will try to control your spending, the Arts graduate who will ‘change major’, and the

medical school graduate who will operate on you. And you know what, it’s really so easy to make engineers believe that you are the ‘one’. Say that you like one of their projects and they will be hooked to you forever.

3. An engineer boyfriend will never betray your trust.

Let me first tell you what is wrong with the rest of the others – the lawyers will lie about everything, management graduates will cheat your money, the arts graduate will flirt, and you probably just look like another cadaver to the medical school graduate. Your engineer boyfriend is either too busy to have an affair, and even if he does, he is too dumb to lie to you about that. Hence, an engineer is the most secure boyfriend that you will ever find – rich enough, will keep on trying to understand and please you, has no time for affairs, and too dumb to lie to you.

Conclusion: Engineerz rule !

Performance Counters in .NET

Everything about Win32 performance counters were a pain for the Win32 developer. The good news is that .NET provides managed classes that make reading and providing data for performance counters straightforward and easy. In this article, I will outline the basic architecture of performance counters and describe how .NET provides its implementation.

A performance counter is any statistical measure, such as a running count, a rate of change over time, or some other rate that you determine. The process generating the performance counters provides the raw data (instantaneous values, or if it is a custom rate, the value and the divisor), and this data is read by the performance monitor, which displays the appropriate data. The .NET process that generates the data and the performance monitor (housed in MMC) that displays it are two different processes, so this means that there must be some interprocess communication between them. In fact, it goes one step further because if you have an administrator account for another machine, you can get performance counters from that machine. In this case, the WinLogon process gathers the performance counters and communicates this to the performance monitor on your machine via RPC.

COM would have been an ideal way to implement the interprocess and data gathering mechanisms, but performance counters predate COM by several years. Instead, the Windows designers simply gave up and pushed the responsibility of the IPC to the developer. Performance counter collection works like this: A process indicates that it can generate counters by adding a value in the system registry and part of this registration includes the name of a DLL. This DLL must export functions that are used to start and stop the performance counting, and a function that is called to collect the data. The names of these functions are registered so that the performance monitor knows what function to call. A process provides one or more counters and each of these will have a unique ID, so during registration, the process must reserve the IDs that it will use.

When a user indicates to a performance monitor that they want to gather performance counters from a process, the DLL that the process registered will be loaded into the performance monitor (or WinLogon.exe, in the remote case) and the Open function will be called to initialize the DLL. Then the performance monitor will call your DLL’s Collect to get the value of one, or more, counters by passing a string containing the IDs of those counters. Thus, the DLL’s Collect function will use the chosen IPC to get the values of the counters and package the values in the (rather arcane) format required by the performance monitor. (In actual fact, performance data is read by reading a special registry key called HKEY_PERFORMANCE_DATA, but lets ignore that detail here.)

.NET allows you to provide performance data through two unmanaged DLLs and several managed classes. Lets keep the managed API details for some other time. Concentrating on the performance, when you create a .NET performance counter through the managed API, the class will add a registry entry in the following key:

HKLMSystemCurrentControlSetServices

The .NET process does not have to be an NT service; however, the performance counter API mandates that the entry is in this key. The managed API requires that each counter is a member of a “category” and it is the name of this category that is used for the name of the key under the Services key. This key registers the netfxperf.dll DLL for the library for all .NET performance counter categories. This DLL is unmanaged and is one of the few .NET DLLs that is located in the %systemroot%System32 folder. This is a shim DLL that locates and loads another unmanaged library called perfcounter.dll, which is in the .NET framework folder. (The shim ensures that the right version of this library is loaded in the situation when you have multiple side-by-side versions of the framework.)

The source of this file is not available (its one of the files omitted from the Shared Source CLI); however, looking through the System.Diagnostics namespace with ILDASM shows a class called PerformanceCounterManager, which implements an interface called ICollectData. This class (and an associated class called SharedPerformanceCounter) creates a file-mapped object called netfxcustomperfcounters.1.0. The ICollectData.CollectData method obtains performance data through this memory-mapped file using SharedPerformanceCounter. The SharedPerformanceCounter class is also used by the PerformanceCounter managed class that user code uses to write performance data to a counter. This class provides the “client” and “server” code to share data between two processes.

Clearly, PerformanceCounterManager is used to read performance counters from managed code and since it used the memory mapped file object—an interprocess communications mechanisms—this class looks like the sort of code that a performance monitor library would use. However, the perfcounter.dll library is unmanaged, which raises the question of how it gets access to PerformanceCounterManager. My guess is that perfcounter.dll calls ICollectData.CollectData through a .NET COM callable wrapper. This guess is further backed up by the fact that the only public member of this class is the constructor, but the class has a GUID and implements a COM interface with a GUID that, when coupled together, will provide access to the interface methods through COM.

Munna Bhai Software Engineer!!!

Guys, this is real cool!!!

Appun jaise tappori s/w Engg. ko kya maalum…

saala programming kis chidiya kaa naam hai…

template me subclassing karke apanaa timepass hota hai….

copy paste kaa kaam miltaa hai, bass appun khush…!!!

fir yeh coding kaa lafdaa locha kaiko?

are kaiko ?

arre kaiko re?

fir ek din boleto appun ko assignment mila…..

ya haaaaaaaaaa!!!!

saala appun ka khopdi chakkar kha gaya …

computer ke saath dil saala takkar kha gayaa…!!!

appun ko lagaa appun kaa beda paar ho gaya…

boleto baap saala appun ko bhi kaam mil gaya…!!!

din bhar appun computer ke aagge…

koi lafdaa nahi kuch nahi…

tin din naa Raghu se raada na Abbhi se pangaa

bass choop chaap…

appun kaa bhidulog saala dar gaya…

bola kya be manya saala tu bhi programmer bann gaya…!!!

phir ek din appun ko kaam kartaa dekh vikya bola…

ye mannubhai kya coding bana rela hai baap…!!!

vikya ko pakdaa… bola idhar aa shahane tereko coding seekhataa hai…

saale ko itnaa dhoyaa itnaa dhoyaa…

abhi tak thobdaa waakadaa hai …

aur aaj tak uska forms ke saath chattis kaa aakdaa hai…!!!

samzaa ..?

samzaa…?

samzaaa naa…?

(fir …? fir kya huwa..?)

fir ek din appun ne coding poora kar diya…

form poora karke appun ne testing ko bhej diya…!!!

lagataa tha ab appun kaa kaam khatam ho gaya…!!!

par DTS me issues dekhake sala appun darr gaya…!!!

appun ke saamne tester ne mere coding me ki galtiyaa nikali…

aapun ke coding ki poori waat laga di….

appun udharich khadaa thaa…

par appun kuch nahi bola…

kaiko bolega?

kaiko…?

saala ek, ek kaam kiya thaa… usme bhi itne bugs…

par appun ek aansu nahi roya…

kaiko royega…?

kaiko..?

saala appunich yedaa thaa naa…!!!

agale din se phir wohi life chalu…

wohi mails forward karnaa, wohi messages, wohi template….

saala itnaa mails forward kiya…itnaa mails forward kiya…

log samze mail server down hoyega…

bhoolneka hai bhoolneka hai par kya karega…!!!

training milke bhi jab kaam nahi miltaa hai…

haa thoda bore huwa par chaltaa hai…

training milke bhi jab kaam nahi miltaa hai…

haa thoda bore huwa par chaltaa hai…

(phir ..? phir kya huwa..?)

fir …?

fir kya…?

fir agale din appun ko aur ek assignment mila…!!!

shaappak…

saala appun ka khopdi phir chakkar kha gaya …

computer ke saath dil saala phir takkar kha gayaa…!!!

ho ho ho hoooooooooooooooooooooooooooooooooo

Securing Wireless Networks

Abhishek Kant, had recently visited Pune. We were discussin about WiFi Security. He said he was lookin forward to session on those.. So here is my blog dedicated to Abhishek

IEEE 802.11b, also known as the “Wi-Fi Standard,” is an 11-megabit Ethernet-compatible, wireless network technology (http://standards.ieee.org/getieee802/). Early on, its developers acknowledged security issues with Wi-Fi and came up with Wired Equivalency Privacy (WEP) to make wireless LANs as secure as wired ones. WEP, however, is not without its problems. Through passive and active attacks, for instance, WEP can allow unauthorized use of wireless networks and real-time decryption of traffic on wireless networks. This presents a threat, especially in metropolitan areas with dense proliferation of wireless networks.

It comes as no surprise that there are a number of available techniques to exploit WEP’s deficiencies. On the upside, however, these same techniques also let you test wireless networks. One such technique for securing wireless networks using a combination of hardware and the Free Secure Wide Area Network (FreeS/WAN), a freely available IPsec implementation for Linux that integrates with the IPsec functionality built into Windows

(http://www.freeswan.org/).

This technique lets you completely disable WEP (which you should for performance reasons anyway), so that all packets transmitted over the wireless network are encrypted using the secure IPsec protocol (http://www.ietf.org/rfc/rfc2401.txt). IPsec is a protocol for securing IP traffic at a low level—layer 3 of the OSI network model (http://www.netc.org/network_guide/c.html). IPsec is required in IPv6 (the new version of the TCP/IP Standard) and optional in IPv4 (the current Standard on which the Internet runs).

All this underscores an important point: The wireless access point is the wrong place to secure the wireless network. Not only do algorithmic flaws make WEP ineffective, but the concept itself is lacking. When you can have someone (potentially) miles away examining your network packets, there is no possibility of “wired equivalency.” The solution to such problems is to assume that wireless traffic is inherently insecure, then use tried-and-true techniques for securing these insecure networks.

Because IPsec operates at a low level in the protocol stack, it can protect almost any type of traffic that has IP at its base—basically all the traffic on the Internet. Strong higher layer security protocols (such as SSH and SSL) require special configurations or applications that explicitly support them. The Opera browser, for instance, does not explicitly support IPsec. However, if an IPsec connection has been established, all traffic generated by the Opera browser traveling on that connection would automatically be encrypted.

The IPsec Standard has three protocols:

  1. Internet Key Exchange (IKE) negotiates connections and is responsible for exchanging keys.
  2. Authentication Header (AH) provides packet-level authentication once a secure connection has been established.
  3. Encapsulating Security Payload (ESP) is used for encryption/authentication.

FreeS/WAN implements IPsec through: KLIPS (kernel IPsec), which handles AH and ESP within the kernel; Pluto, which handles IKE; and various scripts to administer the system. FreeS/WAN extends the IPsec Standard to include an operational mode called “opportunistic encryption,” in which all traffic between two gateways is automatically and seamlessly encrypted. One of the goals of the FreeS/WAN project is to have this extension integrated into the Standard. Opportunistic encryption uses public keys embedded in DNS records to automatically enable IPsec connections.

Technically speaking, two machines involved in an IPsec negotiation are both client and server at different stages of the connection. In terms of FreeS/WAN, a client is a machine that wants to establish a secure connection, while a security gateway is one to which the client connects. Both the client and the security gateway run the same software and have similar configurations.

Once you’ve installed FreeS/WAN (per the documentation), you need to configure it. Setting up an IPsec tunnel between two machines requires that they authenticate to each other. By default, FreeS/WAN uses public-key authentication with RSA. FreeS/WAN supports other authentication methods, including X.509 certificates with a patch.

Machines that want to establish IPsec connections must have each other’s public keys. The client machine uses the security gateway’s public key for authentication and the security gateway uses the client’s public key for authentication. Ordinarily, key exchange is tricky when establishing secure communications between machines. In this case, it is more straightforward because everything is happening locally. If you’re paranoid, put the public keys on floppy disks and walk them between the machines.

The client and security gateway machines need to have key pairs generated and exchange public keys. To generate a key pair from scratch, issue the command (on each machine): ipsec newhostkey –output /etc/ipsec.secrets. Be careful when using this command; if an ipsec.secrets file already exists, it appends another set of keys that causes confusion with other IPsec commands. (The documentation shows the command differently: ipsec newhostkey > /etc/ipsec.secrets. This is an older style of the command line and doesn’t work with the recent versions.)

Next, extract and exchange the public key on each machine. When establishing an IPsec connection, FreeS/WAN needs to know which participant is left and which is right. The choice is arbitrary, but must be configured consistently. To extract the public key for the security gateway, execute ipsec showhostkey –right > SecGW.txt on the security gateway machine. To extract the public key for the client, execute ipsec showhostkey –left > Client.txt on the client machine

All traffic between individual nodes is encrypted using the IPsec protocol. Only authorized machines can establish IPsec connections because a client and security gateway need each other’s public keys in their configuration files.

Microsoft Technologies Code-Names!!!

Operating Systems

Chicago – Windows 95

Detroit – Windows 95 OSR 2

Memphis – Windows 98

Millennium – Windows ME

Daytona – Windows NT 3.5

Janus – Windows 2000 64 Bit

Whistler – Windows XP

Bobcat – Windows Server 2003 Small Business Edition

Mantis – Windows XP Embedded 5.1

Freestyle – Windows XP Media Center Edition

Harmony – Windows XP Media Center Edition 1.5

Longhorn – Succesor of Windows XP

Blackcomb – Succesor of Longhorn

Exchange Servers

Osmium – Microsoft Exchange Server 5.5

Platinum – Microsoft Exchange 2000 Server

Titanium – Microsoft Exchange 2003 Server

Kodiak – Microsoft Exchange 2005 Server

SQL Servers

Starfighter – Enterprise Managaer SQL-Server

Hydra – Microsoft SQL-Server 6.5

Sphinx – Microsoft SQL-Server 7.0

Shiloh – Microsoft SQL-Server 2000

Yukon – Microsoft SQL Server 2005

Liberty – 64Bit-Edition von SQL-Server 2005

Other Servers

Hermes – Microsoft Systems-Management-Server 1.0

Opal – Microsoft Systems-Management-Server 2.0

Topaz, Emerald – Microsoft Systems-Management-Server 2003

Ruby, Diamond – Successor of SMS 2003

Greenwich – Realtime Comunication Server

Catapult – Microsoft Proxy-Server 2.0

Comet – Microsoft Internet-Security & Acceration Server 2000

Tripoli, Tivoli – Microsoft Index-Server

Plutonium – Microsoft Commerce-Server 4.0

Sable – Microsoft E-Commerce Server 2001

Tahoe – SharePoint Server 2001

Bobcat – Microsoft BackOffice Server 2002

Latinum – Microsoft BizTalk-Server 2000

Other Codenames

Gecko – Microsoft Internet Explorer 5.0

Texas – MSN 8 client

NGO (Next Generation Office) / Office.NET / Office11 – Microsoft Office 2003

Office10 – Microsoft Office.XP

Opus – Microsoft Word

Boston – Visual Studio 6.0

Everett – Microsoft Visual Studio.NET 2003

Rainier – Microsoft Visual Studio.NET

Dolphin – Visual C++

Wings – Visual C++ for Mac

Rotor – Common Language (CLI)

XDocs – InfoPath 2003 (Part of Office 2003 system)

Whidbey – Visual Studio .NET 2005

Utopia – MS BOB

Thunder – Microsoft Visual Basic

Freon – Sucsessor of X-Box

Fahrenheit – Direct X

Fusion – Technologies for DLL improvements

Kagera – OLE-DB Provider for ODBC-Data

Lightning – .NET Common Language Runtime (CLR)

Luna – Theme technology for Windows XP

Magic Carpet – Passport-Technologien

Touchdown – Public folders for MS Exchange

Wolfpack – Windows Cluster-Services

Marvel – Microsoft Network (MSN)

Processor Codenames DE-Coded!!

INTEL

Tualatin: The last of Pentium 3’s. Had an L2 Cache of 512Kb

Williamette: The original edition of P4. Had and L1 cache of 125K and L2 cache of 256K

Northwood: The current P4s are based on this core. Available in two variants – Non-HT 400Mhz and the 533 and 800Mhz version with Hyperthreading. The fasted is P4EE, which has 2mb L3 Cache

Prescott: Originally was suposed to release in 2003. Came in first quater of 2004. A facrication change for the next P4s, starting from P4 Prescott 2.8A to P4EE 3.4 Ghz. The L2 cache is 1Mb

AMD



Palomino: The then first Athlon XPs from AMD, ranging from 1500+ to 2100+, where successors to the aging Athlon Thunderbird series.

Thoroughbred: The current Athlons from AMD. Have L1 cache of 128K and L2 of 256K. It was debuted on June 2002, with Athlon XP+

Barton: Last one in Athlon XP range of processors. The first model started with 2800+. Currently available upto 3200+

Hammer: The latest one in desktop and mobile processing market. L2 cache of 512Kb, with a new 940-pin design and 64-bit comupting.

ClawHammer: The scaled down version of Hammer

The ‘D’ of DVD’s

A couple of days ago, one of my friends got a DVD from Australia. However when we tried to play it in his “India” DVD rom, it just wouldnt play. But the same would play on my DVD Player. Not understanding why this was happening, I went back to the internet to find things out for myself..

Soon after the DVD format was standardized, the movie industry divided the world into Six regions

1. USofA

2. Europe, Near East, South Africa and Japan

3. South East Asia

4. Australia, Middle and South America

5. Africa, Asia and Eastern Europe.

6. The People’s Republic of China

This was mainly done to stop the movement of movies across boundaries. Earlier, PC DVD-ROM manufacturers, used to make, region-free DVD drives that could play DVD’s from any region. Such drives were called RPC1 drives. But after Jan 1, 2000, this changed. The new drives (named RPC2) were region locked. You could change the region only five times, after which your drive is locked to the last selected region.

For the region protection to work, the disc itself must be set to a specific region code (which most disc’s are), and then either the DVD drive playback software must match the disc’s code to their own code for the playback to work. If the drive itself is locked, the software or hardware decoder will rely on the drive to confirm the region match. If the drive is region free, then the decoders try to enforce the region protection.

If your drive is set to a specific region, you will be unable to play a disc from a different region. This cannot be bypased without replacing the checking mechanism within the drive itself. This can only be done with a firmware upgrade..

Finding this out, I was wondering why did it play on my DVD Drive.. The reason being – it is not just a plain old DVD ROM, but is a DVD Writer.