Wednesday, May 20, 2009
What are the Options after PhD?
anil nain 9416077273 sonepat haryana MCA
Clearly, one of the main job opportunities after PhD is a faculty position in some University, College, or an Institute. This option, world over, is one of the most preferred options for people with PhD. One of the reasons for this is that in today's world, the best quality people require freedom in their work and have a strong desire to ``make a mark''. Both of these are well supported by research activities a faculty undertakes as part of his job - he has the freedom to select the problems he works on, and through his research he creates new knowledge which is published under his authorship. This is a very strong motivating factor and very good people across the world sacrifice other benefits for academic freedom and possibilities to create and innovate.
In faculty positions it should be mentioned that for Computer Science, as there is a shortage of qualified faculty in most good institutions, there are always openings in places like IITs/NITs/RECs/Central Universities, etc. In addition, now some private universities as well as institutions set up by overseas universities coming up which also are looking for qualified faculty (and these places are paying much more than Govt. scales - up to 3 times more!)
However, teaching is by no means the only option for a PhD. India today is fast becoming a center for global R&D. Due to the quality of its manpower, and the lower cost, many organizations have started setting up R&D centers in India. And these centers are looking for PhDs (and not finding them, as there are not enough getting produced!) Some example of these are IBM India Research Center in New Delhi, GE Research in Bangalore, Mentor Graphics in Hyderabad, Cadence, etc.
Besides these research centers, most of the big Indian IT companies have started high end technology development and consulting, and R&D centers or cells, in which they need PhDs. Almost all the IT majors - TCS, Infosys, Wipro, etc. employ a large number of PhDs (upward of about 50 each) and are always looking for more people to enhance their R&D activities. This activity will increase in these companies as these companies become larger. A few years back, we had done an informal survey on salaries with these companies and we were told that most of them will offer at least twice as much starting salary for a PhD as for a BE. Starting salaries for many of these positions are of the order of Rs 50,000 PM or more.
Besides these opportunities in India, people with PhDs are global citizens and move around quite a bit. Immediately after PhD, there are opportunities for post-doctoral work in US and Europe. While working as a researcher/faculty, there are opportunities for visiting faculty appointments or visiting researchers in US, Europe, Singapore, etc., where a faculty member from India can spend a year or two in overseas universities or research labs. Many faculty members from India avail of this from time to time.
What are the Options after PhD?
anil nain 9416077273 sonepat haryana MCA
Clearly, one of the main job opportunities after PhD is a faculty position in some University, College, or an Institute. This option, world over, is one of the most preferred options for people with PhD. One of the reasons for this is that in today's world, the best quality people require freedom in their work and have a strong desire to ``make a mark''. Both of these are well supported by research activities a faculty undertakes as part of his job - he has the freedom to select the problems he works on, and through his research he creates new knowledge which is published under his authorship. This is a very strong motivating factor and very good people across the world sacrifice other benefits for academic freedom and possibilities to create and innovate.
In faculty positions it should be mentioned that for Computer Science, as there is a shortage of qualified faculty in most good institutions, there are always openings in places like IITs/NITs/RECs/Central Universities, etc. In addition, now some private universities as well as institutions set up by overseas universities coming up which also are looking for qualified faculty (and these places are paying much more than Govt. scales - up to 3 times more!)
However, teaching is by no means the only option for a PhD. India today is fast becoming a center for global R&D. Due to the quality of its manpower, and the lower cost, many organizations have started setting up R&D centers in India. And these centers are looking for PhDs (and not finding them, as there are not enough getting produced!) Some example of these are IBM India Research Center in New Delhi, GE Research in Bangalore, Mentor Graphics in Hyderabad, Cadence, etc.
Besides these research centers, most of the big Indian IT companies have started high end technology development and consulting, and R&D centers or cells, in which they need PhDs. Almost all the IT majors - TCS, Infosys, Wipro, etc. employ a large number of PhDs (upward of about 50 each) and are always looking for more people to enhance their R&D activities. This activity will increase in these companies as these companies become larger. A few years back, we had done an informal survey on salaries with these companies and we were told that most of them will offer at least twice as much starting salary for a PhD as for a BE. Starting salaries for many of these positions are of the order of Rs 50,000 PM or more.
Besides these opportunities in India, people with PhDs are global citizens and move around quite a bit. Immediately after PhD, there are opportunities for post-doctoral work in US and Europe. While working as a researcher/faculty, there are opportunities for visiting faculty appointments or visiting researchers in US, Europe, Singapore, etc., where a faculty member from India can spend a year or two in overseas universities or research labs. Many faculty members from India avail of this from time to time.
Monday, May 18, 2009
Doing a PhD in Computer Science
Anil Nain 9416077273 MCA
PhD is the highest degree offered anywhere in the world (barring the highly uncommon DSc). Its focus, unlike regular degrees, is not learning existing knowledge but creating new knowledge. No wonder, PhD is desired by anyone wishing to `make a mark' - the brightest seek it as it allows challenges that no other degree does; the innovative desire it as it allows the possibility to innovate and create new knowledge and technologies; the ambitious seek it as it is the top of the academic ladder; and the persistent seek it as this is the one degree where persistence and self discipline are brought to full use.
Despite the romance of doing a PhD, there seems to be some `fear' frequently in the youth about pursuing a PhD - prospective students are sometimes scared because they think it is ``too difficult and they will not be able to do it'', or because ``it takes too much time'', or perhaps just because ``PhD means that you have to be a teacher and I don't want to be a teacher''. All of these reasons/fears are actually false. This note discusses some of these issues in an attempt to clarify the situation for prospective candidates.
What is Involved in a PhD?
First let us clearly understand what is involved in doing a PhD. PhD is, as everyone knows, about doing research. And research is about formulating problems or questions whose answers the research or practitioner community wants to know, and whose answers are not known. Doing research is to provide some answer to these questions. So, the key aspects of doing a PhD are (a) formulating a question or a problem that is of interest and that can be solved, and (b) providing a useful/interesting solution to the stated problem. The results obtained are presented in national/international conferences, and/or submitted to scientific journals.
The problems that are addressed by a PhD scholar can range from very difficult open problems to evolutionary technology issues. In Computer Science, the problem area can range from highly theoretical/mathematical to modeling and experimentation or building new technologies. For example, there are a lot of open problems regarding the complexity of solving some problems algorithmically (for example, checking whether a number is a prime - a problem for which an efficient solution was proposed only recently by Prof. Agarwal of CSE/IITK). These problems typically involve complex theoretical and mathematical development. Similarly, there are many problems that require understanding the behavior of various systems. Approaching such problems frequently uses modeling and experimentation. Then there are problems of the type where something innovative and useful is done using computers and software. Working on such problems typically involves building systems and prototypes. In other words, a scholar doing a PhD in Computer Science has a wide range of areas to choose from, depending on his inclination, ability, and interests.
Generally, PhD programs world over proceed as follows: do some course work, pass some qualifying exam, and then write a thesis that has to be defended (sometimes, at the early stages of the thesis a `proposal' may have to be submitted.) In a place like CSE/IIT Kanpur, generally, a student who joins the PhD program after completing his/her B.Tech/BE will spend about 1 year doing the courses, about 1 to 2 years for formulating the problem, which also requires an in-depth study of the chosen area, and about 2 years or more for developing the solutions and writing the thesis. Once the thesis is written, it is examined by some experts and a thesis defense is scheduled. This process takes about 6 months, but the candidate can start his post PhD job once the thesis is submitted. Hence, doing a PhD takes about as much time as doing a BE, or the amount of time a doctor spends doing his residency and MD.
Doing a PhD is indeed hard. However, the difficulty is not because extreme intelligence is necessary. Brilliance, of course, helps - brilliant people can attack hard problems and produce solid results and leave a permanent mark on the field. However, students with good academic background and some amount of creativity can also do a PhD, and do quite well. Completing a PhD primarily requires a drive, motivation, and hard work. Hard and motivated work determines not only the quality of the final work, but also the amount of time needed to complete the PhD. In general, a PhD can be completed in 4 to 5 years - 4 years for the motivated and 5 for the not-so-motivated.
Saturday, January 3, 2009
ग्राविटी बल कोड फॉर एक्शन script
color; // note: I have only setup 6 colors for 6 balls. You will need to add more numbers, use the color select in the
properties // panel to see the hexidecimal number of a color you like. if(num_b == 1){ var ball_c: Object = new Color(what_ball.shape_mc); ball_c.setRGB(0xff0000); } else if(num_b == 2){ var ball_c: Object = new Color(what_ball.shape_mc); ball_c.setRGB(0x00ff00); } else if(num_b == 3){ var ball_c: Object = new Color(what_ball.shape_mc); ball_c.setRGB(0xfff000); } else if(num_b == 4){ var ball_c: Object = new Color(what_ball.shape_mc); ball_c.setRGB(0x0000ff); } else if(num_b == 5){ var ball_c: Object = new Color(what_ball.shape_mc); ball_c.setRGB(0xff00ff); } else if(num_b == 6){ var ball_c: Object = new Color(what_ball.shape_mc); ball_c.setRGB(0x0000ff); } else { var ball_c: Object = new Color(what_ball.shape_mc); ball_c.setRGB(0x000fff); }}
spring slider
onSelfEvent(load){
var inital_n: Number = _root.ball_elastic; var min_n: Number = 0; var max_n: Number = 1; var inital_pos: Number = ((inital_n/(max_n - min_n)) * (slider.small_rect._width - slider.slider_bn._width)) +
slider.small_rect._x; slider.slider_bn._x = inital_pos; slider.txt_n.text = inital_n; // var intial_object: Object = _parent._parent.gravity; ref_var = intial_object; slider.slider_bn.onPress = function(){ record_pos(_parent._parent.gravity, max_n, min_n); // Here the horizontal movement of the slider_bn // dragging state is locked the width and position of the 1 // small_rect. The vertical move is zero, so we used the intial // position of the slider_bn this.startDrag(false, this._parent.small_rect._x, this._y, (this._parent.small_rect._x +
this._parent.small_rect._width - this.slider_bn._width), this._y); } slider.slider_bn.onRelease = function(){ recorder.removeMovieClip(); slider_bn.stopDrag(); } slider.slider_bn.onReleaseOutside = function(){ slider_bn.stopDrag(); }
}function record_pos(ref_var1,max_n,min_n){ createEmptyMovieClip("recorder",10); recorder.onEnterFrame = function(){ var current_ratio: Number = ((_parent.slider.slider_bn._x -
_parent.slider.small_rect._x)/(_parent.slider.small_rect._width - _parent.slider.slider_bn._width)) * (max_n -
min_n); _parent.slider.txt_n.text = (current_ratio); // apply to the var for that slider _root.ball_elastic = current_ratio; } }
numball slider
onSelfEvent(load){ var inital_n: Number = _root.num_balls; var min_n: Number = 0; var max_n: Number = 10; var inital_pos: Number = Math.ceil((inital_n/(max_n - min_n)) * (slider.small_rect._width -
slider.slider_bn._width)) + slider.small_rect._x; slider.slider_bn._x = inital_pos; slider.txt_n.text = inital_n; // var intial_object: Object = _parent._parent.gravity; ref_var = intial_object; slider.slider_bn.onPress = function(){ record_pos(_parent._parent.gravity, max_n, min_n); // Here the horizontal movement of the slider_bn // dragging state is locked the width and position of the 1 // small_rect. The vertical move is zero, so we used the intial // position of the slider_bn this.startDrag(false, this._parent.small_rect._x, this._y, (this._parent.small_rect._x +
this._parent.small_rect._width - this.slider_bn._width), this._y); } slider.slider_bn.onRelease = function(){ recorder.removeMovieClip(); slider_bn.stopDrag(); } slider.slider_bn.onReleaseOutside = function(){ slider_bn.stopDrag(); }
}function record_pos(ref_var1,max_n,min_n){ createEmptyMovieClip("recorder",10); recorder.onEnterFrame = function(){ var current_ratio: Number = ((_parent.slider.slider_bn._x -
_parent.slider.small_rect._x)/(_parent.slider.small_rect._width - _parent.slider.slider_bn._width)) * (max_n -
min_n); _parent.slider.txt_n.text = Math.ceil(current_ratio); // apply to the var for that slider _root.num_balls = Math.ceil(current_ratio); } }
air resistant
onSelfEvent(load){ var inital_n: Number = _root.air_fy; var min_n: Number = 0; var max_n: Number = 100; var inital_pos: Number = Math.ceil((inital_n/(max_n - min_n)) * (slider.small_rect._width -
slider.slider_bn._width)) + slider.small_rect._x; slider.slider_bn._x = inital_pos; slider.txt_n.text = inital_n; // var intial_object: Object = _parent._parent.gravity; ref_var = intial_object; slider.slider_bn.onPress = function(){ record_pos(_parent._parent.gravity, max_n, min_n); // Here the horizontal movement of the slider_bn // dragging state is locked the width and position of the 1 // small_rect. The vertical move is zero, so we used the intial // position of the slider_bn this.startDrag(false, this._parent.small_rect._x, this._y, (this._parent.small_rect._x +
this._parent.small_rect._width - this.slider_bn._width), this._y); } slider.slider_bn.onRelease = function(){ recorder.removeMovieClip(); slider_bn.stopDrag(); } slider.slider_bn.onReleaseOutside = function(){ slider_bn.stopDrag(); }
}function record_pos(ref_var1,max_n,min_n){ createEmptyMovieClip("recorder",10); recorder.onEnterFrame = function(){ var current_ratio: Number = ((_parent.slider.slider_bn._x -
_parent.slider.small_rect._x)/(_parent.slider.small_rect._width - _parent.slider.slider_bn._width)) * (max_n -
min_n); _parent.slider.txt_n.text = Math.ceil(current_ratio); // apply to the var for that slider _root.air_fy = current_ratio; } }
gravity
onSelfEvent(load){ var inital_n: Number = _root.gravity; var min_n: Number = 0; var max_n: Number = 300; var inital_pos: Number = Math.ceil((inital_n/(max_n - min_n)) * (slider.small_rect._width -
slider.slider_bn._width)) + slider.small_rect._x; slider.slider_bn._x = inital_pos; slider.txt_n.text = inital_n; // var intial_object: Object = _parent._parent.gravity; ref_var = intial_object; slider.slider_bn.onPress = function(){ record_pos(_parent._parent.gravity, max_n, min_n); // Here the horizontal movement of the slider_bn // dragging state is locked the width and position of the 1 // small_rect. The vertical move is zero, so we used the intial // position of the slider_bn this.startDrag(false, this._parent.small_rect._x, this._y, (this._parent.small_rect._x +
this._parent.small_rect._width - this.slider_bn._width), this._y); } slider.slider_bn.onRelease = function(){ recorder.removeMovieClip(); slider_bn.stopDrag(); } slider.slider_bn.onReleaseOutside = function(){ slider_bn.stopDrag(); }
}function record_pos(ref_var1,max_n,min_n){ createEmptyMovieClip("recorder",10); recorder.onEnterFrame = function(){ var current_ratio: Number = ((_parent.slider.slider_bn._x -
_parent.slider.small_rect._x)/(_parent.slider.small_rect._width - _parent.slider.slider_bn._width)) * (max_n -
min_n); _parent.slider.txt_n.text = Math.ceil(current_ratio); // apply to the var for that slider _root.gravity = current_ratio; } }
collection tester
onSelfEvent(load){ var inital_n: Number = _root.gravity; var min_n: Number = 0; var max_n: Number = 300; var inital_pos: Number = Math.ceil((inital_n/(max_n - min_n)) * (slider.small_rect._width -
slider.slider_bn._width)) + slider.small_rect._x; slider.slider_bn._x = inital_pos; slider.txt_n.text = inital_n; // var intial_object: Object = _parent._parent.gravity; ref_var = intial_object; slider.slider_bn.onPress = function(){ record_pos(_parent._parent.gravity, max_n, min_n); // Here the horizontal movement of the slider_bn // dragging state is locked the width and position of the 1 // small_rect. The vertical move is zero, so we used the intial // position of the slider_bn this.startDrag(false, this._parent.small_rect._x, this._y, (this._parent.small_rect._x +
this._parent.small_rect._width - this.slider_bn._width), this._y); } slider.slider_bn.onRelease = function(){ recorder.removeMovieClip(); slider_bn.stopDrag(); } slider.slider_bn.onReleaseOutside = function(){ slider_bn.stopDrag(); }
}function record_pos(ref_var1,max_n,min_n){ createEmptyMovieClip("recorder",10); recorder.onEnterFrame = function(){ var current_ratio: Number = ((_parent.slider.slider_bn._x -
_parent.slider.small_rect._x)/(_parent.slider.small_rect._width - _parent.slider.slider_bn._width)) * (max_n -
min_n); _parent.slider.txt_n.text = Math.ceil(current_ratio); // apply to the var for that slider _root.gravity = current_ratio; } }
ball mc
onSelfEvent(load){ var time_d1 : Object = new Date() var time_t1: Number = time_d1.getTime(); var pos_x1: Number = this._x; var pos_y1: Number = this._y; var dragging: Boolean = false; var collision: Boolean = false;} onSelfEvent(enterFrame){ if(dragging){ //sample the positions to determine the release velocities; // // first measure the changes in position and time past. var time_d2 : Object = new Date(); var time_t2: Number = time_d2.getTime(); var time_diff: Number = time_t2 - time_t1; var time_t1: Number = time_t2; // var pos_x2: Number = this._x; var pos_y2: Number = this._y; var diff_x: Number = pos_x2 - pos_x1; var diff_y: Number = pos_y2 - pos_y1; var pos_x1: Number = pos_x2; var pos_y1: Number = pos_y2; // var new_vx: Number = (diff_x * time_diff); var new_vy: Number = (diff_y * time_diff); } }
onSelfEvent(press){ this.startDrag(false,this._width/2,this._height/2,Stage.width-(this._width/2),Stage.height -(this._height/2));
var dragging: Boolean = true; this._vx = 0; this._vy = 0; this._ax = 0; this._ay = 0; }onSelfEvent(release, releaseOutside){ this.stopDrag(); var dragging: Boolean = false; this._vx = new_vx; this._vy = new_vy; this._ay = _root.gravity; this._fy = _root.air_fy; this._fx = _root.air_fx;}
Wednesday, November 12, 2008
Data integration overview
Data integration overview
Macromedia Flash MX Professional 2004 provides a flexible component-based architecture and object model for connecting to external data sources, managing data, and binding data to user interface components. There are three main areas of data integration:
- Data connectivity: Connector layer of the architecture with components providing the ability to send and receive data from a variety of external data sources, such as web services and XML. See Data connectivity (Flash Professional only).
- Data management: Data repository layer of the architecture with components providing intelligent supervision of common data operations, such as editing, sorting, filtering, aggregation, and translation of changes. See Data management (Flash Professional only).
- Data binding: Data pipeline layer of the architecture providing a mechanism to share data between component properties. The pipeline integrates objects such as formatters and encoders to provide complete control over how the data is propagated between components. See Data binding (Flash Professional only).
The following image depicts the flow of data within a Flash application and identifies the different elements that make up the Flash data architecture. Data binding is represented by the red arrows between the components.
Note: It is important to understand that Flash is a client-side technology. Flash data integration provides all the necessary tools and features to access your data, manipulate it, and send it back to a server in many different formats. Building and exposing business logic on the server is the job of a server developer and is best implemented using products that are specifically designed for that task (such as Cold Fusion, J2EE Application Servers, and ASP.NET).
Thursday, February 28, 2008
क्लौड feature
What is Tag Cloud?A tag cloud (or weighted list in visual design) is a visual depiction of user-generated tags used typically to describe the content of web sites. Tags are usually single words and are typically listed alphabetically, and the importance of a tag is shown with font size or color. The tags are usually hyperlinks that lead to a collection of items that are associated with a tag.
How is GharExpert Tag Cloud different from Other Site Tag Clouds?
In other sites, Tag Cloud designed for only articles on a particular Tag, but GharExpert Tag Cloud shows articles and images both on a particular Tag.