Tuesday, May 27, 2008

The challenges of maintenance programming

The world of programming has changed quite a bit since computers were first developed. One relative constant is the way in which programs are created; specifically, the idea of source code represented as standard ASCII text. It has been decades since we evolved from using hex editors or punch cards to using text editors. I think it’s time to look at how we work with the source code (presuming that the idea behind source code does not evolve anytime soon).

Most of the programming that I’ve done required me to come in behind someone else to make changes. It is fairly rare that I do “clean slate” programming. I suspect that most programmers are primarily doing maintenance at this point. For the maintenance programmer, the number one challenge is to find out enough about the code so you can strive to be as effective as the original programmer. This is just some of the information maintenance programmers have to pick up in short order:

  • Learn naming conventions well enough to be followed so that the new code mixes well with the original code.
  • Find out where the documentation is and how to update it (and what kinds of information belong in it).
  • Learn where and how to make common presentation-layer changes, such as error message text, font sizing, or the images used in the application.
  • Discover where input validation occurs and what the validation rules are.
  • Learn how to produce output in a way that is as similar as possible to the original code; in other words, if the original code combines an external resource file with a presentation template, your code should not contain hardcoded output.
  • Uncover “gotchas” such as long-running loops that block the main thread, making the application appear to be hung when it is actually operating normally.

This is why it often takes two days to make a 10 minute change — or even longer if the maintainer has never worked with that codebase.

If you believe that most programmers maintain code much of (or even most of) the time, the cost of programming can be dramatically reduced by making maintenance more efficient. If you study the above list carefully, you will see that having a clear conception or model of the code in your mind is the key to being able to perform maintenance efficiently. Many of the tools from Microsoft Research’s Human Interactions in Programming (HIP) group are designed for efficient code maintenance; in particular, Backstory, Code Thumbnails, and Software Terrain Maps.

It is unfortunate that none of these items are shipping products or even in a public beta state yet. Backstory is quickly making progress; I am told that it should be available in some condition in a few months, and I am hoping to catch up with its creator then. I am looking forward to using Backstory, particularly since my current project is 95% maintenance (much of my learning about the code is to learn where in the configuration to change things).

I learn a piece of code by reading through it once or twice and then stepping through the execution in a debugger (I really like Visual Studio’s auto watches for this task). The IntelliSense in Visual Studio is a huge help because it lets you quickly see the available methods and properties of a class; the Go to Definition command is a lifesaver as well.

How do you become familiar and comfortable with a new piece of code?

J.Ja

info in /proc directory

One of the most interesting directories on any Linux system is /proc, a virtual filesystem that provides a plethora of information on the hardware of the running system, and of the various processes running. In fact, many programs such as ps and top obtain their information by mining /proc.

Some well-known virtual files in /proc include /proc/cpuinfo, which prints out information on the running CPU(s); /proc/meminfo, which prints out information on installed memory; and /proc/cmdline, which provides the arguments to the Linux kernel at boot.

Other lesser-known files in /proc include:

  • /proc/apm, which provides information related to Advanced Power Management, if installed
  • /proc/loadavg shows the system load average
  • /proc/filesystems shows the available filesystem support in the kernel and whether or not they are in use on a block device
  • /proc/mounts will show what mounts are currently active, what block device they belong to, where they are mounted, and what options were used to mount them
  • /proc/net directory contains more files, all related to network information

Most of these files look like text files so can be looked at using the cat utility, such as:

# cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 47
model name      : AMD Athlon(tm) 64 Processor 3500+
stepping        : 2
cpu MHz         : 2202.909
...

Further, if you look inside /proc, you will notice quite a few numbered directories. These numbers correspond to running processes. Inside each directory are a number of files that give information regarding the process. For instance, /proc/1/ would contain information on process #1, which is typically init.

Some files in this directory are symlinks; the /proc/1/cwd symlink points to /, which indicates that init’s current working directory is /, the root directory. The /proc/1/exe symlink points to /sbin/init, the program that is running. The /proc/1/cmdline is a file containing the command-line used to execute the program. The /proc/1/status file indicates the status of the program, which can be used to determine if a program is sleeping or a zombie process, the amount of memory it’s using, the number of threads, the user/group privileges it is running as, and more.

To determine what files are in use by a process, look in the /proc/[pid]/fd/ directory. Each link in the directory will point to a file that is in use by the process in question.

There is a lot of information in /proc that can be found by those willing to look. A number of front-ends exist to help parse the information — tools like ps, top, and free, among many others provide more human-readable information, but to really find out what a program is doing, the authoritative resource is the /proc directory.

Get the PDF version of this tip here.

Sunday, May 4, 2008

Number of microsoft certified professionals MCP MCITP MCSE MCSA MCDP

Official information at march 31, 2008

It seems that the SQL 2005 is the more popular of the new cert schema and surprisingly the MS operations 2007 exam is the second !!!!!





Microsoft credentialCertificationWorldwide achievers

Microsoft Certified Technology Specialist (MCTS)

.NET Framework 2.0: Distributed Applications

.NET Framework 2.0: Web Applications

.NET Framework 2.0: Windows Applications

SQL Server 2005: Business Intelligence Development

SQL Server 2005

BizTalk Server 2006: Custom Applications

Business Desktop Deployment Solution Accelerator 2.0

Business Desktop Deployment with the BDD

Enterprise Project Management with Microsoft Office Project Server 2007

Managing Projects with Microsoft Office Project 2007

Microsoft Exchange Server 2007: Configuration

Microsoft Forefront Client and Server: Configuration

Microsoft Internet Security and Acceleration (ISA) Server 2006: Configuration

Microsoft Office Communications Server 2007: Configuration

Microsoft Office Groove 2007: Configuration

Microsoft Office Live Communications Server 2005

Microsoft Office Project Server 2007: Configuration

Microsoft Office PerformancePoint Server 2007: Applications

Microsoft Office SharePoint Server 2007: Application Development

Microsoft Office SharePoint Server 2007: Configuration

Microsoft Office Visio 2007: Application Development

Microsoft Team Foundation Server: Configuration and Development

Windows Mobile 5.0: Application Development

Windows Mobile 5.0: Configuration

Windows Server 2008 Active Directory: Configuration

Windows Server 2008 Applications Infrastructure: Configuration

Windows Server 2008 Network Infrastructure: Configuration

Windows SharePoint Services 3.0: Application Development

Windows SharePoint Services 3.0: Configuration

Microsoft System Center Configuration Manager 2007: Configuration

Microsoft System Center Operations Manager 2007: Configuration

Microsoft Virtual Earth 6.0: Developing Applications

Windows Server 2003 Hosting, Configuration, and Management

Windows Vista: Configuration

5,457

18,603

9,639

1,088

27,526

1,983

2,002

2,558

413

806

4,729

235

271

754

35

750

15

106

1,627

5,687

31

304

193

392

7,377

6,633

7,380

1,314

3,187

160

225

18

454

18,869

Microsoft Certified Architect (MCA)

Database

Infrastructure

Messaging

Solutions

13

38

61

73

Microsoft Certified Application Developer (MCAD)

80,547

Microsoft Certified Solution Developer (MCSD)

Microsoft .NET

Visual Studio 6.0

33,098

46,181

Microsoft Certified Professional Developer (MCPD)

Enterprise Application Developer

Web Developer

Windows Developer

4,101

4,115

1,369

Microsoft Certified Database Administrator (MCDBA)

SQL Server 2000

150,079

Microsoft Certified Desktop Support Technician (MCDST)

Windows XP

42,243

Microsoft Certified IT Professional (MCITP)

Business Intelligence Developer

Consumer Support Technician

Database Administrator

Database Developer

Enterprise Project Management with Microsoft Office Project Server 2007

Enterprise Support Technician

Enterprise Messaging Administrator

478

482

4,433

1,742

128

3,696

1,468

Microsoft Certified Systems Engineer (MCSE)

Windows Server 2003

Windows 2000

Windows NT 4.0

113,454

289,842

395,778

Microsoft Certified Systems Engineer (MCSE): Messaging

Windows Server 2003

Windows 2000

9,719

9,082

Microsoft Certified Systems Engineer (MCSE): Security

Windows Server 2003

Windows 2000

15,063

8,325

Microsoft Certified Systems Administrator (MCSA)

Windows Server 2003

Windows 2000

176,576

147,280

Microsoft Certified Systems Administrator (MCSA): Messaging

Windows Server 2003

Windows 2000

64,162

30,465

Microsoft Certified Systems Administrator (MCSA): Security

Windows Server 2003

Windows 2000

17,794

4,981

Microsoft Certified Learning Consultant (MCLC)

54

Microsoft Certified Trainer (MCT)

13,137

Microsoft Certified Professional (MCP)

2,254,381

MIT Courseware

It is always good to check for info on the MIT open Courseware

You can find very good info about a lot of subjects. like you have taken the course.

http://ocw.mit.edu/

Managing veritas volume manager on sun

The only documents you need are :

A short and quick guide :
http://eval.veritas.com/downloads/van/vm_quickref.pdf

The full blown documentation.

http://sfdoccentral.symantec.com/index.html


I hope it would be useful

A very good course about Service management

Service Management

Lecture 1 : Introduction to Service Engineering

Lecture 2 : Measurements, Little's Law

Lecture 3 : Measurements; Models - The Second Prerequisite

Lecture 4 : Project (Processing) Networks; DS PERT/CPM

Lecture 5 : Fluid Model of a Service Station

Lecture 6 : Scaling and Dynamic Randomness; Poisson Processes

Lecture 7 : Service Times

Lecture 8 : Customer Patience

Lecture 9 : MJP – Part 1 ; 4CallCenters

Lecture 10 : MJP – Part I1 ; Palm/Erlang-A

Lecture 11 : G/G/1 and Multi-Server Service Stations ; Economies of Scale

Lecture 12 : QED Q’s Part I; Staffing

Lecture 13 : QED Q’s Part II; Staffing

Lecture 14 : Skills-Based Routing (SBR)

Lecture 15 (Virtual) : Queueing Networks

You can find the original link here :

http://iew3.technion.ac.il/serveng/Lectures/lectures.html

The streets hit back: a review of Grand Theft Auto IV

Grand Theft Auto IV
Developer: Rockstar North
Publisher:
Rockstar Games
Platform: Xbox 360, PS3 (Reviewed)
Price: $59.99 (Shop.Ars)
Rating: Mature

Grand Theft Auto IV is on store shelves. You can go to your local retailer right now and buy a copy. If you notice, there is no rioting in the streets. There were no terrorist acts. Shootings haven't spiked, and I'm guessing your car is still in the driveway, having not been stolen. Prostitutes are as safe as they've ever been. Somehow the game has been released and the world continues to creak along without major incident. Well, except for a few missing copies.

When I received my copy of the game, my neighbor said he'd like me to bring the game over, since his wife had never seen a Grand Theft Auto title before. She had, of course, read and seen much coverage of the game in the mainstream media, and she wanted to know what was so bad about the game. I played it for three hours, and she was surprised. First, she didn't think the games had a story; she was under the impression you just ran around killing cops and sleeping with hookers. Second, she was shocked that the content was pretty mild, overall; she described it as an R-rated movie. "So what is all the fuss about? We're all adults here," she asked after we talked about it for a while.

Rationally, there shouldn't be much fuss, but Grand Theft Auto has been made a talking point for every media outlet and politician who wants to score an easy point against the gaming industry and look like they are protecting the children. Grand Theft Auto IV isn't appropriate for children, not in the slightest, but its existence alone also isn't harmful to them.


This is your playground

On the other side of the debate you have the reviewers, giving the game a perfect ten, straining the limits of hyperbole by saying the world of gaming has been changed, that nothing will ever be the same, that every bar has been raised by this title. It's hard to get to know Grand Theft Auto IV as a game, and it's even harder to understand it through all the noise.

That's a shame, because the moments that make this game something extraordinary—and it is an extraordinary game that cooler heads will still be discussing years from now—happen when things are quiet. In one scene during my time with the game, Niko Bellic is driving his motorcycle in the morning mist, and the city opens up in front of him. We're heading towards a shootout and don't know how many people are going to be there or what's in store. The Smashing Pumpkins song "1979" is playing on the radio.

This is Niko's story, yes, but the moments in the game that grab you will be different for everyone. That's what makes the title unique, and it's why Grand Theft Auto releases are a cultural event. Rockstar puts America under the microscope, and what happens in the game doesn't reflect them as much as it reflects you.

Liberty City is yours. Welcome.

A review of the triple-core AMD Phenom X3

Last September, AMD announced its intention to bring a triple-core processor to market as a mid-range alternative to its upcoming quad-core Barcelona processor. The company's triple-core launch schedule was subsequently derailed by a TLB erratum in Barcelona's B2 silicon revision, but the launch of Barcelona's B3 revision last month put the plans back on track. So last week, AMD officially unveiled its Phenom X3 triple-core processor, code-named Toliman.

AMD is taking a gamble with Toliman. Without a good way of creating product differentiation via clock frequency—current Phenom X4 processors top out at 2.5GHz—Sunnyvale will have to rely almost entirely on core count as a pricing mechanism. That's a risky approach for several reasons. When AMD launched the first desktop dual-core processors in May, 2005, many desktop and consumer-level applications used some level of multithreading and got a boost from the second core. But the benefit of moving from two to three or four cores is much less clear for the majority of workloads and is much more likely to depend on specific application-level optimizations.

It wasn't supposed to be this way, though. If AMD had managed to keep to the roadmaps it was showing last fall, current Phenom X4's would be topping out in the 2.8GHz-3.0GHz range. A strong, high-frequency quad-core part would've given AMD much more freedom to offer parts based on both core count and frequency. As things stand, however, AMD will have to keep very close watch on X3 pricing and the chip's price/performance ratio in order to ensure that the new triple-core defines its own market without cannibalizing X4 sales.

The Phenom X3 (Toliman) and Phenom X4 (Agena) processors listed below all have model numbers that end in x50, which means they're all based on AMD's latest B3 silicon revision. The X3 and X4 are structurally identical; each independent Phenom core has a dedicated 512K L2 cache, and all the cores on the processor share access to a 2MB L3 cache. The two cores are also the same size at 285mm2. Ultimately, Toliman is just an Agena core with one core disabled. In at least some cases, this is done as a means of isolating one defective core from three good ones. This lets AMD improve yields, and it also let's the company push its Barcelona architecture into lower price points and thereby sell more processors.

The table below gives a general overview of AMD's Phenom product line, and a close look at it provides some useful clues about AMD's product strategy.

Processor Cores Frequency (MHz) TDP (W) Price $ per core
Phenom X4 9850 4 2500 125 $235 $58.75
Phenom X4 9750 4 2400 125 $215 $53.75
Phenom X4 9550 4 2200 95 $209 $52.25
Phenom X3 8750 3 2400 95 $195 $65.00
Phenom X3 8650 3 2300 95 $165 $55
Phenom X3 8450 3 2100 95 $145 $48.33

AMD's current Agena pricing suggests that the company is pricing Phenom X4 at approximately $55 per core. Core price is in line with clockspeed; the X4 9850 is clocked 13.6 percent faster than the 9550, and costs 12.4 percent more. Phenom X3 prices, on the other hand, show considerable variance. The X3 8650 still matches our $55 per-core average, but the X3 8750 is ~18 percent more expensive, at $65, while the X3 8450 is about 14 percent cheaper.

In order to prove itself a viable part, Toliman must demonstrate that its third core can effectively compensate for both the Core 2 Duo's higher efficiency and its higher clockspeed. This is by no means a sure thing, but it's no exaggeration to say that AMD desperately needs its triple-core products to gain real traction in the market. Intel's price cuts last year forced Athlon 64 X2 prices to well under the $100 mark, and AMD's fastest 65nm part, the Athlon 64 X2 5200+, currently lists at Newegg for just $115. The company has already announced that it plans to lay off 10 percent of its workforce in response to a weaker-than-expected first quarter, but cost-cutting can only take a company so far. To attain profitability, AMD needs a presence in the $125+ processor segment, and it has chosen Toliman to carry that banner. Let's see if the processor is up to the task.



Conclusion

It's hard to put a definitive label on AMD's triple-core Toliman. The Phenom X3 series re-establishes AMD's presence in the $150-$200 price point, and the company's decision to fight Intel's dual cores with three of its own is not without merit. Although incapable of sweeping the E6850 in our multi-threaded test scenarios, the X3 8750 won several benchmarks and came within six percent of its dual-core rival in our Lightwave rendering test.

The fact that the E6850 managed to remain competitive, despite being one core short, highlights the 8750's greatest flaw. At just 2.4GHz, the X3 can't reliably best its competition, while the current 2.5GHz ceiling on Phenom X4 precludes the possibility of higher clockspeeds. AMD will eventually release faster Phenom processors, but the company isn't even talking about the 2.8GHz-3GHz speeds it once featured prominently on its Phenom roadmap. According to its roadmaps from last February, we won't see a 2.6GHz X4 or a >2.4GHz X3 until the third quarter of this year. This isn't necessarily a bad thing, particularly if it means AMD has pulled resources away from Phenom to concentrate on its upcoming 45nm Shanghai, but it constrains the CPU manufacturer's ability to adjust its product mixture in the here-and-now.

If you're interested in a triple-core processor, the X3 8650 is probably the best option on the market at this time. The 8750 may be the fastest of the series, but it's actually the worst value in terms of its cost-per-core—just $20 more buys you the X4 9750 at the same clockspeed.

Taken as a whole, the X3 series should bolster both AMD's product positioning and its bottom line. It's not the product that it could be, but its good enough to help the company along towards 45nm, and right now, that's about the best we're going to see. All reports indicate that Shanghai development is going well, but AMD isn't out of the woods just yet.

The Good

  • Re-establishes AMD as a competitor in the $150+ market.
  • Strong multi-threaded performance in certain tests compared to dual-core alternatives.

The Bad

  • When I said "certain" tests, I meant it—triple-core products are not a guaranteed win over Intel's Core 2 Duo
  • Pricing on certain models make them a bad deal.

The Ugly

  • X3 products would be far more compelling if Phenom could actually scale.
  • Still a stopgap measure; Shanghai is the ultimate example of having one's eggs in a single basket.