Pages

Thursday, May 31, 2007

Desktop computing - look @ CNET's reviews:: Dual core from arch rivals

AMD Vs. INTEL - CNET reviews

AMD wins title in all the rounds, a clear knockout.

The revolutionaries

What are the upcoming best revolutions/innovations, Forbes picture on this, take a look at it @
REVOLUTIONARIES

Tuesday, May 29, 2007

LAN Okay, Network share inaccessible ?

It several times happens that when a server is restarted the network shares become inaccessible , in that :

Check out whether the following is services are started and ensure that the Startup type is set to "Automatic"
- Server Service
- Windows Firewall/Internet Connection Sharing (ICS)
- Workstation Service

And here are the top 10 Potential Problematic Security SettingsMany enterprise management tools rely on several of these features of the operating system:

Enterprise and other applications may require:
Administrative Shares (C$, ADMIN$) - AutoShareWks or AutoShareServer
Remote Registry Service
Task Scheduler
RestrictAnonymous (Null User Sessions)
NTFS/Registry Permissions
NetBIOS over TCP/IP
LM VS. NTLM VS. NTLMv2 Authentication - LmCompatibilityLevel
File/Printer Sharing Bindings
Workstation Service
Server Service

To troubleshoot most of these settings, it is either:
- Turn it on
- Turn it off
- Tweak the value
For an application to function properly, it may require tuning several of the settings listed above.

<more details>

Sunday, May 20, 2007

Google maps - Drag label to get the reverse address

I came across this new feature, which might be old...

Drag the "From address" label to the bottom of the "To address" label, then you get the reverse address. Automatically the previous "To" address becomes "From" address. Cool isn't it

Friday, May 18, 2007

PC and Phone are brain and blood - Technology constantly invents

World is changing the way it is using the two common technological components of our time the PC and Phone.

Both have evolved in different ways and in different stages of mutation.

Now they are becoming more cohesive, PC having capabilities of all types of communication and Phone having capabilities of all the little things that can be done on a PC and even more.

Products being released every now and then, with all possible combinations like communication capable, GPS, Speech recognition, Image Analysis, Decision making based on events, Touch screen, Games/multi media, file sharing/collaboration, office tools, camera for pictue and video capture, video mixer, music composer....endless list.

The best way of source of input is changing from keyboard/keypad to speech and the best way of response or rather output is changing to display screens.

Thursday, May 17, 2007

sandcastle for generating help files chm

I have been using the xml based interpreter and document builder for visual studio applicaitons, Sandcastle. It is really cool that this application gives a very reasonable help file.

Use of C# patterns over the old Try Catch model

C# provides multiple patterns that can be used in the place of try catch, the later usually hampers the performance of an application.

say for example, I have an object being returned from a method call.
This object could either be a byte or byte array.
I used to program this way earlier,

byte [] localBytes;
bool returnValueIsByte = false;
try
{
localBytes = (byte [])ObjectReturned;
}
catch
{
try
{
localBytes = new localBytes[1];
localBytes[0] = (byte) ObjectReturned;
returnValueIsByte = true;
}
catch
{
throw new Exception("The object returned is neither a Byte nor a Byte array");
}
}

Instead I learnt coding as below

localBytes = ObjectReturned as byte[];
if(localBytes == null)
{
localBytes = new localBytes[1];
localBytes[0] = (byte) ObjectReturned;
returnValueIsByte = true;
}

The use of "as byte[]" is very useful, you can do the same type for "is a" relationships, say if ObjectReturned is a type of some interface.
An alternative would be to use the below:
Check if the object is of type byte or byte array and then assign it appropriately

if(ObjectReturned.GetType().Equals(typeof(byte)))
{
//code here.
}

Tuesday, May 15, 2007

Agile software development & Extreme Programming XP

Recently I came across this new terminology Agile Software Development; this is what I learnt
In general, let me take an example to co-relate.
If you have heard of the 20-20 cricket match, then you know that the strategies for playing a 20-20 match is different from that of a normal 50 over match. The same applies here, but instead of having just one 20-20, the overall development process is split in to multiple pieces of software development. To add more, there are multiple iterations of the software development process focusing on delivering a package out of all iteration. It is kind off a fast paced development environment.
Read more @ wikipedia -> Agile software development

Ok let’s go to the extreme programming model now

Involving collaboration in the software development process, this works based on a feedback (like the feedback circuitry) mechanism to stay on track. This also provides a simple for planning and tracking the software development.
Extreme programming
Read more @ wikipedia -> extreme programming

Extreme programmers, if you happen to read this, please leave your comments on how this model is useful and what benefits did you achieve?

Saturday, May 12, 2007

Software distribution business models

Open source model vs. Proprietary business models

Software distribution has changed a lot, as we all know…
So what’s the take on these models?

Proprietary model: Typically a company sells their product with or without customization and charges the users for a certain period for a license to use the product. Also an x% of that whole fee is for support/maintenance. But what happens if the user wanted to change the product, for which they have to only bank up on the company who sold their product. There is no way of modifying things by their own since the seller does not ship the source code. So obviously for a given product range, the seller tries to become a monopoly.

Open source model: This is the new era of distribution, were things are shared across to everyone. The biggest advantage is that there is a big community for any given open source product and this keeps on inventing new things on top of the existing source. And the company that introduced the product in to the open source stream also gets a constant check for itself to stay on top for inventing things. The vendors charge enterprises using the products, since they customize things for them. The biggest insurance that the enterprise using these products has is that, there is source code and the open source community to support the product. Also there is value for every $ that is spent, since the vendors can charge only if their on top for adding better values.

Applying H1 visa, what to ask a consultancy/company?

Here are some questions typically people ask consultancies/companies before choosing one.
This is my compilation, hope it helps.

1.How can you rely on this consultancy, did you have any friends working/worked with them? How did you knew about this consultancy, how much you can trust the source itself?
2.Is the consultancy capable of marketing you?
3.How much fee they charge you for processing your petition, as per law they are not supposed to take any fee, but many consultancies do charge with a valid reason – what if I apply for your visa and you do not join us?
4.What will be the mode of payment?
5.If they charge any fee, when are they going to return that back? (Usually consultancies give the money back in a year or so, if in case you transfer your H1 before that, you end up loosing that money, but it would be worth to do so based on the situations)
6.What is the number of H1 rejects/approvals in the past, a little bit of history?
7.What package can you expect for your current skill set?
8.How many clients/projects the consultancy has got for your skills?
9.Is there is any bond or fixed period you are supposed to work for them?
10.Does the consultancy requires any original documents of yours?
11.What options do they have for you? Fulltime or hourly rate? Each consultancy/company have their own policies, just try to get an understanding which will work best for you.
12.When do they expect you to come to US? (if you get your H1 approved)
13.What are the other benefits the consultancy has got? Example profit sharing/bonus etc.
14.Will the company pay for relocation allowances during projects?
15.Will the consultancy process your Green card?
16.Who will bear the flight expenses?
17.What kind off accommodation and allowances they will provide you?
18.When will you be covered by insurance?
19.Will there be any bench period salary?
20.Do they want you to do any certifications? As part of improving your technical expertise.

There are lots of Yahoo/google groups where you can register and get to know about various consultancies/companies.

Friday, May 11, 2007

WEB 2.0 EXPERIENCE

web 2.0 conference
http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html

more on web 2.0
http://www.youtube.com/watch?v=6gmP4nk0EOE

Apple ships virus on some video iPods

Apple’s attack on Microsoft’s Windows operating system took a viral turn when the company warned that a third-party manufacturer for its iPod devices shipped a Windows virus with the popular music and video players. The virus has been identified as the Rjump or Rajump worm by antivirus software makers and as RavMonE virus by Apple.

Windows Trojan masquerading as Vista hack

A week after Windows Vista’s official launch, hackers have devised their first attack, targeting pirates trying to install illegal copies of Microsoft’s operating system. A supposed Windows crack called Windows Vista All Versions Activation 21.11.06 is reportedly doing the rounds.

Thursday, May 10, 2007

C# vs. C++

***C#
a.Used for faster time to market, because of the advantage of large .NET libraries.
b.Fewer bugs because of strong typing and .NET language design.
c.Requires more hardware for equal performance.

***C++
a.Longer time to market (requires more debugging, write more code)
b.Legacy win32 code that doesn’t import.
c.Better performance.
d.Choose this language when required in embedded systems and fewer hardware capabilities.

Software design goals and philosophies….

“Every extra week spent in making a good design will always be paid off “

What is a good design?

There are no definite metrics to judge a software design to determine the degree of how good it is.
Though there are ways to see if they stick to some common guidelines and methodologies.

1.Define problem from the software consumer perspective – Say for example there is another developer who will use your design/code, end user or for that matter any one.
2.Does the proposal address the problem statement
3.RED flag design issues, these are not necessarily mandatory, but definitely we must pay attention to.
a. Near neighbor dependencies
b. Wise use of asynchronous design
i.Essentially not to block requests.
ii.In all possible ways this design should be implemented.
iii.But there is overhead in writing code.
4.Use of Has-A VS Is-A
•Inherit - Use same method implementation, this should be the type chosen only it makes a strong sense to use it, which means better to go for the aggregation model.
•Aggregate – Encapsulate lots of smaller classes.
•It also makes sense to make such an encapsulated class public so that others can use the same.
5.Develop more generalized code and it is better to have more dumb classes, when combined together makes a smart. The best example would be the .NET framework which is built over humongous amount of small classes, which makes the libraries much richer.
6.Make sure the transactions happening through different objects are framed correctly. If any circular pattern is found in the transaction model, then it is not a good design.
7.Make sure that there is no dependency on each layer.
8.Each transaction between the objects should contain parameters less than or equal to five to make it more simple and understanding.
9.C# vs. C++ code testing: There is not a different approach/angle of testing the C# code from C++.