HDMI has limited resolution compared to DisplayPort making it the inferior spec.
This is a VHS/Betamax argument - its irrelevant what the spec is or does - its what the market dictates...and its strongly hinting HDMI with a baseball bat.
When citizenship is no longer burdened by labor consultants that abuse this, then immigration can be considered. Otherwise:
Stay Home.
Naaah. I graduated out of the H-1B program, got a green card, applied for citizenship and married an American. I intend to take over your population with hybrid half UK/US citizens. My invincible army is already TWO strong. We'll own all your jobs, and fill your TV channels with cricket and endless re-runs of "Are You Being Served".
You are correct, it's a non-immigrant visa, but it has the capability to lead to a green card with sponsorship which many other types do not have... and just to correct you, it's a "specialist worker program" not "guest worker". Guest worker is a term typically applied to people who undertake non-specialist labor such as farm labor work at harvest time, these are not eligible to become immigrants. To have a H-1B you need a degree in the field relevant to the job you are applying for (or 12 years expertise).
Basically the mainframe and the software it hosts really make the cash for most enterprises - and as a consequence any sensible management are loathe to replace it with something "newer", even if the systems in question are horrible spaghetti nightmares that no-one really understands, and maintaining them is a process of trial and error. Replacement would simply be "cleaning the inside of a tin can", no obvious shareholder value at all in change for changes sake.
Also technology vendors have finally woken up to the fact that the mainframe isnt a dinosaur on the verge of extinction - for example making CICS transactions web-service enabled has made COBOL code just as capable of participating in a service-oriented architecture as a set of AXIS hosted java classes.
1. GO TO THE LIBRARY - read every paper that they have on software design principles from books and periodicals - follow the reference chain and order more - use inter-library loan to get everything you need.
2. Elementary Internet research - this is a good link http://www.cetus-links.org/top_architecture_design.html its one of literally thousands - and is an excellent starting point for architecture and design principles
3. Find an original angle - I presume you (the original poster) wrote that paper? No offense but it doesn't leap out at me as an original paper - it isn't bad - but it certainly isn't the basis for a PhD at the moment. You need to find an original angle, something that will add to the body of knowledge - not a rehash of other peoples written observations - thats degree or MS level, you need to say something that hasn't been said before.
4. Drop the architecture / building / bridge analogies - thats nice in a software architecture 101 class to give an undergraduate a basis to understand what it actually is - otherwise its nonsense - like comparing chip design with book writing, yes they both have structure buts that where the analogy ends. Such a justification for good design has no place in a thesis....I'd be happy to dispense more patronizing advice on demand:)
Good posts - I agree with your points. I would add that the result that "there is no good software design" is still a valid thesis - its just proving the negative and therefore an original addition to the body of knowledge.
I think that the person asking this question clearly isn't well enough prepared to do a PhD - as you state he could just google an answer - but when I did my PhD the first place I went to was the library - and their CS section must really really be awful if they don't have a book on software design.
The big issue here is the topic - part of a PhD (I did mine in the UK) is originality, this topic seems to be done to death. There are literally hundreds of books on software design currently in print, and thousands of papers - so where's the angle? What's the original content? His advisor as you rightly point out should be pushing him towards the right texts, and telling him that he's going to have to pull a rabbit out of the hat to add to something original to this area.
Lies... Damn Lies.. and Statistics...
on
The Red Team Wins
·
· Score: 1
A friend of mine who is a mathematical modeler stated that he has statistical proof that the decline of piracy can be directly linked to the increase in global warming.
1. The basic philosophy of the game does seem to be "dumbing down" the core mechanics, as opposed to the rules-rich 3.5. While this makes the rules more accessible for the newbies it is also probably easier for the RPGA (the WoTC version of S.P.E.C.T.R.E:P) to build consistent scenarios and manage them at the tournament/global domination level. This RPGA angle is clearly stated in the rules where characteristics cannot be generated randomly for RPGA playable characters. The RPGA is a major growth area for WoTC - oddly enough 4e will probably end up alienating vast swathes of them.
2. The players handbook clearly states that one of the core mechanics is that D&D is a game of "exceptions". This means that the various handbooks that you *know* will follow will be less of an optional luxury and more of a necessity. Adding feats, powers, classes and races that will make your character less cookie-cutter. No rule-rewriting just new "bolt ons". Thats also why the content is cut back. Core == Starter Set. Cha-Ching.
3. Is it just me or are there just some odd fantasy "archetypes" in there? Tieflings, Dragonborn and Eladrin - where on Earth does the teleporting Noldor archetype fit into the traditional fantasy mold?...or is it just cool for the kids...?
4. I thought the whole alignment stuff in 4e is just a mess - making it simpler made it nonsensical. They should just dump it IMHO (but then I have never been a fan of them in the first place). Why not just say Lolth is Evil rather than enforce it with a game mechanic?
I have no particular axe to grind against 4e - I haven't played it much yet, just read the rules so the jury is still out from my personal point of view. I'm sure its a fine game with slick mechanics and fun (which is the point), but have they thrown out the baby with the bathwater? XP versus Vista anyone?
>That phrase has really never been used with any other device outside of the iPhone, so its a bit of a sensationalizing bullshit to pass it around. It's also simply ignorant.
I guess you've never used a PSP then - the term "brick" was used way before the iPhone to represent firmware loads that turned it into a "useless" piece of hardware.
Then came the "unbricker" that rendered it useful again.
and by the way the term "brick" is actually a unit of building material - look it up in the dictionary. Or do you think the meaning has disingenuously evolved?
It is not a brick. It's a perfectly functional device with a software problem. That is not "bricked". I agree, but I think we all need to recognize that its meaning has evolved to encompass anything that has been rendered non-functional, be it permanent or no.
I think the best thing that it has offered is insight. Rails is innovative and it has had a significant impact on other languages and their approach to web development: from Grails using Groovy, to Seam which uses the J2EE 5 stack - all to some degree have been influenced by the simplicity that rails offers - all with the benefit of not having to learn another language.
There is a way to address this if you are in the US, I can't speak for other countries. On numerous occasions when I have been hit with outrageous data and voice roaming charges I've simply called the cellphone company and complained that the bill is unreasonable. In many cases the agent will adjust the amount. For example on a recent trip to the Czech republic I was hit with a $500 bill for voice and data roaming - I called my US provider and they slashed it by 50%, still a significant amount but better than before. It's a buyers market - especially when the level of fees gets so stupidly high that paying the contract cancellation fees would be a small drop in the ocean.
The absolutely best book out there IMHO, is "Voyage" by Stephen Baxter. It hypothesizes a "what if" the US used Apollo as an enabling technology to get to Mars in the 1980's. Not too far fetched considering the next generation of space vehicles are going to be very apollo-like in appearance and use.
Java is clearly moving away from the massive over-use of XML in everything from configuration to messaging. From Java 5 onwards, annotations are rapidly becoming the configuration mechanism of choice, where infrastructure configuration is placed in the source code directly, in a way thats significantly less obtrusive than writing code to manage things like persistence and transactions yourself, and significantly easier to follow than placing it in many XML files. Anyone who has migrated from EJB 2.1 to 3.0 for example should be much happier now that the various XML files needed to get it to run are going the way of the dodo. This use of annotations to replace XML is an emerging trend popular in many frameworks, from EE 5 through to Hibernate and Spring. On the messaging side there are a slew of code generation tools and XML-to-POJO (annotation-based) mappings that keep you away from raw XML - yes its another layer of abstraction but it keeps you away from the coding horrors of SAX, DOM, and yes even the comparative simplicity of JDOM.
As a CS Professor, here are some of my thoughts on this article:
(1) Java is what the market wants. Yes, we can teach any other language under the sun. But the reality is, that the software industry values individuals who are Java-literate. By this I mean an individual who has a basic understanding of the OO principles that the language is founded upon, can write Java code using common tools, and has at least some insight into some of the more common Java APIs. Any learning institution that doesn't take this into account when designing their curriculum is doing a serious disservice to their student body. While some do go to University for the sheer joy of learning a subject - most are there to ultimately get a job.
(2) In my opinion there is something seriously wrong with a Java course that emphasizes Swing or Web development, rather than the fundamentals. Yes, its important to get things in and out of a program, but, at least initially these should be incidental to the main event. Learning the language, and applying it effectively. Thinking in an object-oriented way, which many of you know is not necessarily an intuitive way to look at the world - especially if you already have a procedural background. GUI and web application development should be separate, advanced courses.
(3) I sometimes lament the lack of insight into pointers, but any professor worth their salary will spend some time discussing the Java object reference architecture, and relate that to pointer-based languages. Regardless of how abstract your language is "opening up the hood" and demonstrating how things work, and why things have been designed the way they are, is often worth knowing.
(4) I laughed when I read the article about Praxis, especially the part about formal methods. Are they serious? Yes I was taught formal methods in school, and could understand *why* I'd want to use them... If I had all the time in the world... a huge budget to burn and customers not screaming for something that the business needed yesterday. Praxis offers software development based on formal methods and as a consequence occupies an important (and probably expensive) specialized niche of the software ecosystem. To suggest that this approach should be the norm and lament its absence really betrays that the authors have spent too much time in academia and not enough in the real world.
(5) Ada is a great language - in fact I learned Ada 83 as a first language along with C. It just isn't relevant to most software development companies or IT departments - if indeed it ever was. I worked on a research project that was part of the Ada 9X Real-Time initiative - the main users were aerospace and military vendors - particularly embedded systems. There you do need to know about concurrency and distribution - along with hard performance deadlines and often a slew of safety and mission-critical issues you need to consider to do a good job. However, I fail to see the general relevance of Ada to a commercial market that is primarily interested in "simple" information systems, getting information out of a database and/or putting it in - with some processing on route. Why should I use Ada when the market in general doesn't use it?
(6) We teach concurrency - its useful stuff to know. I think that using formalisms to describe concurrent programs is going a wee bit too far (see (4)) above.
Re:Getters/setters bad?
on
Holub on Patterns
·
· Score: 3, Informative
Two things spring to mind (without having read the book)
1. I see a lot of code where *every* attribute is assigned a get/set method as a matter of course (someone probably hit the "select all" button when generating them in the IDE of choice). Without additional "defensive code" inside this is tantamount to simply making everything public (shiver). Only expose what you have to.
2. An object composed purely of getter/setters really is nothing more than a data container. Good OO practice suggests that objects represent units of encapsulation where *functionality* is built around cohesive sets of data. In other words its always wise to revisit how you have partitioned your design if your object model is rampant with such abstractions.. a pure data object really doesnt *do* anything.
HDMI has limited resolution compared to DisplayPort making it the inferior spec.
This is a VHS/Betamax argument - its irrelevant what the spec is or does - its what the market dictates...and its strongly hinting HDMI with a baseball bat.
When citizenship is no longer burdened by labor consultants that abuse this, then immigration can be considered. Otherwise:
Stay Home.
Naaah. I graduated out of the H-1B program, got a green card, applied for citizenship and married an American. I intend to take over your population with hybrid half UK/US citizens. My invincible army is already TWO strong. We'll own all your jobs, and fill your TV channels with cricket and endless re-runs of "Are You Being Served".
Phone Dr. Nick on 1-800-DOCTORB... The "B" is for bargain!
You are correct, it's a non-immigrant visa, but it has the capability to lead to a green card with sponsorship which many other types do not have ... and just to correct you, it's a "specialist worker program" not "guest worker". Guest worker is a term typically applied to people who undertake non-specialist labor such as farm labor work at harvest time, these are not eligible to become immigrants. To have a H-1B you need a degree in the field relevant to the job you are applying for (or 12 years expertise).
The key to being a good software engineer is doing just enough to get paid. This is too much.
Be professional. Write simple. Be understandable. Recursion as a primary control structure violates at least two of the latter.
I'm British, live in the US, can't vote and pay taxes. Oh the irony.
Basically the mainframe and the software it hosts really make the cash for most enterprises - and as a consequence any sensible management are loathe to replace it with something "newer", even if the systems in question are horrible spaghetti nightmares that no-one really understands, and maintaining them is a process of trial and error. Replacement would simply be "cleaning the inside of a tin can", no obvious shareholder value at all in change for changes sake.
Also technology vendors have finally woken up to the fact that the mainframe isnt a dinosaur on the verge of extinction - for example making CICS transactions web-service enabled has made COBOL code just as capable of participating in a service-oriented architecture as a set of AXIS hosted java classes.
> Was JavaScript a Mistake?
There, fixed it for you.
1. GO TO THE LIBRARY - read every paper that they have on software design principles from books and periodicals - follow the reference chain and order more - use inter-library loan to get everything you need.
...I'd be happy to dispense more patronizing advice on demand :)
2. Elementary Internet research - this is a good link http://www.cetus-links.org/top_architecture_design.html its one of literally thousands - and is an excellent starting point for architecture and design principles
3. Find an original angle - I presume you (the original poster) wrote that paper? No offense but it doesn't leap out at me as an original paper - it isn't bad - but it certainly isn't the basis for a PhD at the moment. You need to find an original angle, something that will add to the body of knowledge - not a rehash of other peoples written observations - thats degree or MS level, you need to say something that hasn't been said before.
4. Drop the architecture / building / bridge analogies - thats nice in a software architecture 101 class to give an undergraduate a basis to understand what it actually is - otherwise its nonsense - like comparing chip design with book writing, yes they both have structure buts that where the analogy ends. Such a justification for good design has no place in a thesis.
Good posts - I agree with your points. I would add that the result that "there is no good software design" is still a valid thesis - its just proving the negative and therefore an original addition to the body of knowledge.
I think that the person asking this question clearly isn't well enough prepared to do a PhD - as you state he could just google an answer - but when I did my PhD the first place I went to was the library - and their CS section must really really be awful if they don't have a book on software design.
The big issue here is the topic - part of a PhD (I did mine in the UK) is originality, this topic seems to be done to death. There are literally hundreds of books on software design currently in print, and thousands of papers - so where's the angle? What's the original content? His advisor as you rightly point out should be pushing him towards the right texts, and telling him that he's going to have to pull a rabbit out of the hat to add to something original to this area.
A friend of mine who is a mathematical modeler stated that he has statistical proof that the decline of piracy can be directly linked to the increase in global warming.
I understand its called "The Netherlands"...keep an eye on that pesky sea level rising due to global warming issue tho'.
1. The basic philosophy of the game does seem to be "dumbing down" the core mechanics, as opposed to the rules-rich 3.5. While this makes the rules more accessible for the newbies it is also probably easier for the RPGA (the WoTC version of S.P.E.C.T.R.E :P) to build consistent scenarios and manage them at the tournament/global domination level. This RPGA angle is clearly stated in the rules where characteristics cannot be generated randomly for RPGA playable characters. The RPGA is a major growth area for WoTC - oddly enough 4e will probably end up alienating vast swathes of them.
...or is it just cool for the kids...?
2. The players handbook clearly states that one of the core mechanics is that D&D is a game of "exceptions". This means that the various handbooks that you *know* will follow will be less of an optional luxury and more of a necessity. Adding feats, powers, classes and races that will make your character less cookie-cutter. No rule-rewriting just new "bolt ons". Thats also why the content is cut back. Core == Starter Set. Cha-Ching.
3. Is it just me or are there just some odd fantasy "archetypes" in there? Tieflings, Dragonborn and Eladrin - where on Earth does the teleporting Noldor archetype fit into the traditional fantasy mold?
4. I thought the whole alignment stuff in 4e is just a mess - making it simpler made it nonsensical. They should just dump it IMHO (but then I have never been a fan of them in the first place). Why not just say Lolth is Evil rather than enforce it with a game mechanic?
I have no particular axe to grind against 4e - I haven't played it much yet, just read the rules so the jury is still out from my personal point of view. I'm sure its a fine game with slick mechanics and fun (which is the point), but have they thrown out the baby with the bathwater? XP versus Vista anyone?
Fart.
>That phrase has really never been used with any other device outside of the iPhone, so its a bit of a sensationalizing bullshit to pass it around. It's also simply ignorant.
I guess you've never used a PSP then - the term "brick" was used way before the iPhone to represent firmware loads that turned it into a "useless" piece of hardware.
Then came the "unbricker" that rendered it useful again.
and by the way the term "brick" is actually a unit of building material - look it up in the dictionary. Or do you think the meaning has disingenuously evolved?
All very true - but who wants to support 'em all? Especially when your Ruby guys move on, or the next big thing comes along.
I think the best thing that it has offered is insight. Rails is innovative and it has had a significant impact on other languages and their approach to web development: from Grails using Groovy, to Seam which uses the J2EE 5 stack - all to some degree have been influenced by the simplicity that rails offers - all with the benefit of not having to learn another language.
There is a way to address this if you are in the US, I can't speak for other countries. On numerous occasions when I have been hit with outrageous data and voice roaming charges I've simply called the cellphone company and complained that the bill is unreasonable. In many cases the agent will adjust the amount. For example on a recent trip to the Czech republic I was hit with a $500 bill for voice and data roaming - I called my US provider and they slashed it by 50%, still a significant amount but better than before. It's a buyers market - especially when the level of fees gets so stupidly high that paying the contract cancellation fees would be a small drop in the ocean.
The absolutely best book out there IMHO, is "Voyage" by Stephen Baxter. It hypothesizes a "what if" the US used Apollo as an enabling technology to get to Mars in the 1980's. Not too far fetched considering the next generation of space vehicles are going to be very apollo-like in appearance and use.
I blame it on Schumacher's retirement.
Java is clearly moving away from the massive over-use of XML in everything from configuration to messaging. From Java 5 onwards, annotations are rapidly becoming the configuration mechanism of choice, where infrastructure configuration is placed in the source code directly, in a way thats significantly less obtrusive than writing code to manage things like persistence and transactions yourself, and significantly easier to follow than placing it in many XML files. Anyone who has migrated from EJB 2.1 to 3.0 for example should be much happier now that the various XML files needed to get it to run are going the way of the dodo. This use of annotations to replace XML is an emerging trend popular in many frameworks, from EE 5 through to Hibernate and Spring. On the messaging side there are a slew of code generation tools and XML-to-POJO (annotation-based) mappings that keep you away from raw XML - yes its another layer of abstraction but it keeps you away from the coding horrors of SAX, DOM, and yes even the comparative simplicity of JDOM.
As a CS Professor, here are some of my thoughts on this article:
(1) Java is what the market wants. Yes, we can teach any other language under the sun. But the reality is, that the software industry values individuals who are Java-literate. By this I mean an individual who has a basic understanding of the OO principles that the language is founded upon, can write Java code using common tools, and has at least some insight into some of the more common Java APIs. Any learning institution that doesn't take this into account when designing their curriculum is doing a serious disservice to their student body. While some do go to University for the sheer joy of learning a subject - most are there to ultimately get a job.
(2) In my opinion there is something seriously wrong with a Java course that emphasizes Swing or Web development, rather than the fundamentals. Yes, its important to get things in and out of a program, but, at least initially these should be incidental to the main event. Learning the language, and applying it effectively. Thinking in an object-oriented way, which many of you know is not necessarily an intuitive way to look at the world - especially if you already have a procedural background. GUI and web application development should be separate, advanced courses.
(3) I sometimes lament the lack of insight into pointers, but any professor worth their salary will spend some time discussing the Java object reference architecture, and relate that to pointer-based languages. Regardless of how abstract your language is "opening up the hood" and demonstrating how things work, and why things have been designed the way they are, is often worth knowing.
(4) I laughed when I read the article about Praxis, especially the part about formal methods. Are they serious? Yes I was taught formal methods in school, and could understand *why* I'd want to use them... If I had all the time in the world... a huge budget to burn and customers not screaming for something that the business needed yesterday. Praxis offers software development based on formal methods and as a consequence occupies an important (and probably expensive) specialized niche of the software ecosystem. To suggest that this approach should be the norm and lament its absence really betrays that the authors have spent too much time in academia and not enough in the real world.
(5) Ada is a great language - in fact I learned Ada 83 as a first language along with C. It just isn't relevant to most software development companies or IT departments - if indeed it ever was. I worked on a research project that was part of the Ada 9X Real-Time initiative - the main users were aerospace and military vendors - particularly embedded systems. There you do need to know about concurrency and distribution - along with hard performance deadlines and often a slew of safety and mission-critical issues you need to consider to do a good job. However, I fail to see the general relevance of Ada to a commercial market that is primarily interested in "simple" information systems, getting information out of a database and/or putting it in - with some processing on route. Why should I use Ada when the market in general doesn't use it?
(6) We teach concurrency - its useful stuff to know. I think that using formalisms to describe concurrent programs is going a wee bit too far (see (4)) above.
Two things spring to mind (without having read the book)
1. I see a lot of code where *every* attribute is assigned a get/set method as a matter of course (someone probably hit the "select all" button when generating them in the IDE of choice). Without additional "defensive code" inside this is tantamount to simply making everything public (shiver). Only expose what you have to.
2. An object composed purely of getter/setters really is nothing more than a data container. Good OO practice suggests that objects represent units of encapsulation where *functionality* is built around cohesive sets of data. In other words its always wise to revisit how you have partitioned your design if your object model is rampant with such abstractions.. a pure data object really doesnt *do* anything.