Someone stated this already, but Ill repeat it: I was quite specific that Silverlight 2.0 can be bytecode/CLR based, but Silverlight 1.0 is not. Its markup, like HTML, that can be made in notepad, and the browser take it -as is-. So it is quite common practice to take any server language thats good at handling templated text (PHP, ASP.NET, JSP, and I guess Rails) to generate it. Silverlight in its current release is ONLY markup, NOT bytecode, only the beta (or alpha, or whatever it is) of the NEXT version supports byte code.
I hear it all the time. Mind you, its mostly coming from "Joe Developer I never heard of Model-View-Control and Object Relational Mapping until I heard of Rail", and only rarely (but it happens!) from good, professional, skilled web developer, but these people will use Ruby either way...may as well give em a few more choices.
I'm not amazingly knowledgeable about Flash' technicality. However, I can say the following about Silverlight: While Silverlight can (in the 2.0 version) be compiled as a kind of CLR-based BLOB that runs in the client, Silverlight can also (and exclusively so in its 1.0 variant) be used as a simple markup, generated from any source. ANY Source.
That is, you can have a PHP page generate a bunch of ECHO statements that make up valid silverlight markup and you're good to go... So that you use PHP, ASP.NET, Ruby on Rails, whatever... markup is markup. Instead of outputting the markup for an HTML form with HTML input, you output the market for a canvas with whatever controls Silverlight supports... its still just text interprated by the browser, with a little bit of Javascript to inject it in a placeholder (usually a DIV tag). It becomes part of the DOM to some extent, can be manipulated with normal javascript, etc. It is basically just a fancier more integrated DOM extension, than anything else.
To make things short, there's basically no "linking" involved between the two. You just change the format of the string you output, nothing more, nothing less.
The world is trendy, they're just going where the money is. If people say "we want Ruby", they'll deliver..NET is a platform made to support multiple language, and aside when core mechanics are required (dynamic vs static language), making a new language on top of the CLR is actually not all that much work. So today its C#, Python and Ruby.... tomorrow it will be language XYZ.... a language is a fairly insignificant thing in this day and age: its all about the platform.
They want it so that no matter which language you prefer, you can use their technology, for better or worse. It is quite a brilliant really. Why should the language be tied to the platform anyway? That I pick native compilation, the Java runtime, or the CLR.... I should still be able to use the language I want.
(Side note: I despise Ruby. Doesn't mean I think it shouldn't be offered as an option...)
Well, technically if you're freelance and have your own business, MS will almost give away MSDN subscriptions to you through their Empower program, so I doubt licensing of the tools is an issue, unless lack of knowledge of the ressources available is an alternate problem.
If name answering important to you, you need the correct breed of cat. Ocicats for example will gladly answer to their time (mine is only half-ocicat, but comes -running- at the mere mention of her name, even with pretty large tone variations, while many dogs go by tone only), and plays fetch and other similar games more reliably than most small dogs.
Unfortunately, they do climb all over the place while kittens. Problem goes away when they hit 1-2 years old though.
If you have that kind of knowledge and the ability to install all that stuff, there there IS nothing to catch. With the very rare exception of a media exploit or something (like the old jpeg exploit, which virtually none of the above would notice at the source), just "knowing what you're doing" will allow you to avoid damn near 99.999% of malware. I have a douzan Windows machines, used for just about everything, from gaming to work, and I download a lot of software, browse a lot of web sites...
None of my machines have anti-virus on them (I use one-shot scanning tools every couple of months to be sure all is good), and I have only ever caught ONE virus, which I noticed with my 2 eyes 5 minutes after I caught it, on a totally out of date lap-top that I hadn't used in over a year (so it wasn't updated), through the COM+ jpeg exploit. And I sure don't have anything beyond a 40$ NetGear router.
There simply isn't all that much to catch, unless you take needless risks.
The issue is that many, many jobs require a bit less locked down usage. Any job requiring large amount of research to do (Software Development is one, but all companies have substantial amount of people who do) will need to visit random web sites. We have a proxy here that blacklists some stuff, and one of the things it blocks is blog-type websites. Do you know how frustrating it can be to SEE the first few words of the answer you've been looking for for hours in google's preview, but not being able to see the end? I could bypass it, but it would kill the point.
Whitelisting would make that worse.
Whitelisting software is a bit more reasonable, I suppose.
Even if you get a specialised third party to do it, you still need to know it yourself from your own research...
In this day and age, "specialised consultant" just means someone who can sell a fridge to penguins in the south pole. So you need to be able to double check that they really do know what they're doing.
I worked for a company who made portfolio management solutions for banks... We could pass all of the audit tests and fill in all of the security check boxes on their requirement sheets. Still could hack the damn thing with an HTTP sniffer/proxy and something to forge HTTP requests, in an hour or two...
explaination: you can post anything as long as you made all (or almost all) of it yourself.
I mean, its pretty simple. Make your own video from scratch, you can post it. Post video from someone else, or thats mostly pieces of someone else's work put together, its not ok.
1- the OS is the OS, the software is the software. If the new super cool software that word of mouth got around is something OLPC users will want to use, and its not already ported to Windows (aside for the desktop managers, and even that, quite a bit is ported on Windows directly or indirectly through cygwin), someone will port it. Plus Windows has its share of open source pieces of software, too. Oh, and Linux has its share of commercial software. Lookathat.
2- OLPCs will probably be configured to not run as admin by default, and with tighter security settings than a default Windows install. In those conditions, you don't need an antivirus (especially not the ones you mentionned). And heck, the best Windows anti-virus ARE free, btw (though they probably don't want to install them on low spec computers, since they tend to bring systems down to a crawl, even the best ones).
It's been my experience that each operating system has its place in a specific environment. Each one has its strengths and weaknesses when applied to a scenario. Instead of one choosing an operating system based on a visceral reaction, one should find the one that is the best solution to the particular problem.
Finally someone on Slashdot who understands that. You win this discussion, my friend:)
Except that.NET didn't need to keep a certain level of backward compatibility like Java did (since it was "new" at the time), could learn from its predecessor, and most of the system interaction is done using native components (WinForm vs Swing), on top of a vastly superior garbage collection engine.
The JIT compiler of the next iteration of java (that isn't quite out yet) is totally sick, so that probably will bridge the gap by a lot, but.NET is a speed demon in the right hands.
Of course, the FIRST thing I'd suggest to a texteditor+PHP+Javascript programmer Mac user who thinks an IDE is scary is to develop for a not-quite-complete platform (::cough debugger until recently cough::), with an half baked (but with potential...still half baked for now) semi-unsupported IDE, for a port/clone of a framework where even the official version is hard to get info on... yes.....
Anyway, while I feel its stupid, most barcode scanners pocket PCs have built in tools/features/whatever that lets the scanner act as an input device for any application. A place I worked for a long time ago made a PHP/Javascript application that would read the input of the barscore scanner and then parse it on an html form. Thats really simple to do, would use your skillset (minus the fact that Pocket IE sucks balls, even compared to IE 5...so you'll have to scream at the javascript a bit until it does what you want), and you wouldn't have to deal with Visual Studio.
Of course, once you see what all your competitors (if its a product you're making) are doing when using "real" tools (be it.NET or other alternatives, though none as "simple" as a text editor with PHP), you'll be stuck rewriting it (or your replacement will, depending on your situation), just like when I was hired to replace that pocket pc web app, but hey, if your requirements are simple enough, thats your alternative.
I've made barcode apps for Symbol scanners in Compact Framework 2, (never tried 1.1), and even though the pocketPcs we had sucked balls, the apps were incredibly snappy (they were very complex as far as pocketPC apps go, too). I also never had issues with VS2005 (2003 was awful) as far as speed go, even though I have tons of plugins dragging it down (At my last job I was using Vista with all bells and whistles on on a machine with only 1 gig of RAM, and it was still snappy!!). What kind of code did you rewrite that was automatically generated? Most of what it generates is "make an instance of control, hook event handlers, add control to form". Not many bottlenecks in that...
It did have bugs in the past that made it slower than it should, and in certain very specific situations it will go to a crawl, but it shouldn't be common place...
Well, thats the thing... nothing contradict that -A- super being exists. But God with a capital G is a very specific one that is supposed to have had specific influence on Earth, and, among other things, made humans "special". That is quite a bit easier to contradict.
The argument tends to be that that particular piece of the EULA is dubious at best, probably not enforcable... but even if it isn't, Apple has another trick up its sleeves (as far as I can tell, someone tell me if I'm wrong): they don't sell full copies of OSX, only upgrades. The only way to get a non-upgrade license of OSX is with a Mac. So you can't just buy a copie at the store and install it, since you don't qualify for the upgrade license.
You don't even need that much. In ASP.NET you can dump a separate component adapter that will change the output of the control without having to touch (or inherit from) the original control. Its pretty handy honestly, since it allows you to change the output of a web site without touching the web site code.
The hype came from people not realising that Rails offers little to nothing that hasnt been mainstream in the professional world for years before RoR got its name. People unaware of that saw Rails as a revelation. The rest of us yawned.
The wysiwg editors, in the professional world, are really only used to make a prototype first, and for their text editor (I mean, I didn't use Dreamweaver in ages, but last I tried, its text editor WAS pretty darn good, and the wysiwg interface can be used as a real time preview of the site, even if it barfs of it).
Yup, I agree with you, but its actually the majority of schools, -especially- the purist "CS" schools. My girlfriend comes from CMU (which is rated fairly high as far as CS schools go), and while she did take a database course like the one you describe, it was an elective!
I can't say I've surveyed all of the schools, but I know enough people from various schools to beleive its the monitory that requires it (and that ironically, the lower rated schools are more likely to have it as mendatory, go figure!).
I really hope it changes. When I did my degree, I had to take 3 database classes mendatory, and 1 software development class which used databases extensively, so I'm good to go...
Indeed, thats the "old" way of doing JOINs. Actually, the JOIN keyword is to clean up the WHERE clause, which can get quite complicated, by separating join related operations from the WHERE clause (back in the days, we didn't have the JOIN keyword, hehehe).
Most database developers feel using JOIN is easier to maintain and more natural:)
And I agree, I hate having intelligence in the SQL part, but in certain cases its required for performance reason, unfortunately (common in complex multi-thousand table ERP systems)... It really depends on the kind of work you do. Personally though, for anything that doesn't require business logic (such as CRUD operations), I just use an ORM framework. Then I don't even have any SQL at all, in or out of the database! Problem solved:)
A night batch process across 7 servers in a replications set around the world (and not even of the same technology, as in, not all the same database engine, using views with an ODBC front end) to finally launch an ETL package and query the result from an OLAP cube.
Now i'm making this up, I never did anything that complicated, but... I had to do stuff like querying several servers to generate a end of month statement. Doing it in a single query was a lot faster than having multiple roundtrips and aggregating the data in the procedural code, but it required the declaration of several temporary tables, aggregating their data, you need exception handling (try/catch), variables, custom error messages, a lot of code to do all of the computations (calculating taxes across various states/provinces/countries... thats a LOT of code right there), and more. Personally, anything under 80 lines of code for an SQL query is considered "simple". (If you have a database schema in the 3rd normal form in an average business application, you'll have 10+ way JOINs quite frequently, and if you indent your code and make it readable, it will easily span 50-100+ lines in the best of cases... if you add string concatenation for all of the parameters, it quickly gets out of hand, but thats not an issue with either SPs or prepared statements).
And yeah, with your dev setup, I'd probably dread doing stored procedures. I'm a.NET dev myself, so I have Visual Studio, with a widescreen monitor, having a small part on the right displaying my project structure, and a small section on the left having a live connection to the database on which I can view/modify stored procedures straight on the server, using plugins to have stuff like auto-complete, etc. VS also allows you to set breakpoints and trace into stored procedures for debugging, and to write/run automated unit tests on them. Its sweet.
As for the performance improvement of prepared statements, it comes from the query plan cache (which cannot be done without prepared statements), though that depends on the database engine. Oracle and SQL Server do it, I beleive Postgres does, I don't know about MySQL.
Someone stated this already, but Ill repeat it: I was quite specific that Silverlight 2.0 can be bytecode/CLR based, but Silverlight 1.0 is not. Its markup, like HTML, that can be made in notepad, and the browser take it -as is-. So it is quite common practice to take any server language thats good at handling templated text (PHP, ASP.NET, JSP, and I guess Rails) to generate it. Silverlight in its current release is ONLY markup, NOT bytecode, only the beta (or alpha, or whatever it is) of the NEXT version supports byte code.
I hear it all the time. Mind you, its mostly coming from "Joe Developer I never heard of Model-View-Control and Object Relational Mapping until I heard of Rail", and only rarely (but it happens!) from good, professional, skilled web developer, but these people will use Ruby either way...may as well give em a few more choices.
I'm not amazingly knowledgeable about Flash' technicality. However, I can say the following about Silverlight: While Silverlight can (in the 2.0 version) be compiled as a kind of CLR-based BLOB that runs in the client, Silverlight can also (and exclusively so in its 1.0 variant) be used as a simple markup, generated from any source. ANY Source.
That is, you can have a PHP page generate a bunch of ECHO statements that make up valid silverlight markup and you're good to go... So that you use PHP, ASP.NET, Ruby on Rails, whatever... markup is markup. Instead of outputting the markup for an HTML form with HTML input, you output the market for a canvas with whatever controls Silverlight supports... its still just text interprated by the browser, with a little bit of Javascript to inject it in a placeholder (usually a DIV tag). It becomes part of the DOM to some extent, can be manipulated with normal javascript, etc. It is basically just a fancier more integrated DOM extension, than anything else.
To make things short, there's basically no "linking" involved between the two. You just change the format of the string you output, nothing more, nothing less.
The world is trendy, they're just going where the money is. If people say "we want Ruby", they'll deliver. .NET is a platform made to support multiple language, and aside when core mechanics are required (dynamic vs static language), making a new language on top of the CLR is actually not all that much work. So today its C#, Python and Ruby.... tomorrow it will be language XYZ.... a language is a fairly insignificant thing in this day and age: its all about the platform.
They want it so that no matter which language you prefer, you can use their technology, for better or worse. It is quite a brilliant really. Why should the language be tied to the platform anyway? That I pick native compilation, the Java runtime, or the CLR.... I should still be able to use the language I want.
(Side note: I despise Ruby. Doesn't mean I think it shouldn't be offered as an option...)
Whoops, posted as AC by accident. Post under there is by me.
Well, technically if you're freelance and have your own business, MS will almost give away MSDN subscriptions to you through their Empower program, so I doubt licensing of the tools is an issue, unless lack of knowledge of the ressources available is an alternate problem.
If name answering important to you, you need the correct breed of cat. Ocicats for example will gladly answer to their time (mine is only half-ocicat, but comes -running- at the mere mention of her name, even with pretty large tone variations, while many dogs go by tone only), and plays fetch and other similar games more reliably than most small dogs.
Unfortunately, they do climb all over the place while kittens. Problem goes away when they hit 1-2 years old though.
If you have that kind of knowledge and the ability to install all that stuff, there there IS nothing to catch. With the very rare exception of a media exploit or something (like the old jpeg exploit, which virtually none of the above would notice at the source), just "knowing what you're doing" will allow you to avoid damn near 99.999% of malware. I have a douzan Windows machines, used for just about everything, from gaming to work, and I download a lot of software, browse a lot of web sites...
None of my machines have anti-virus on them (I use one-shot scanning tools every couple of months to be sure all is good), and I have only ever caught ONE virus, which I noticed with my 2 eyes 5 minutes after I caught it, on a totally out of date lap-top that I hadn't used in over a year (so it wasn't updated), through the COM+ jpeg exploit. And I sure don't have anything beyond a 40$ NetGear router.
There simply isn't all that much to catch, unless you take needless risks.
The issue is that many, many jobs require a bit less locked down usage. Any job requiring large amount of research to do (Software Development is one, but all companies have substantial amount of people who do) will need to visit random web sites. We have a proxy here that blacklists some stuff, and one of the things it blocks is blog-type websites. Do you know how frustrating it can be to SEE the first few words of the answer you've been looking for for hours in google's preview, but not being able to see the end? I could bypass it, but it would kill the point.
Whitelisting would make that worse.
Whitelisting software is a bit more reasonable, I suppose.
Even if you get a specialised third party to do it, you still need to know it yourself from your own research...
In this day and age, "specialised consultant" just means someone who can sell a fridge to penguins in the south pole. So you need to be able to double check that they really do know what they're doing.
I worked for a company who made portfolio management solutions for banks... We could pass all of the audit tests and fill in all of the security check boxes on their requirement sheets. Still could hack the damn thing with an HTTP sniffer/proxy and something to forge HTTP requests, in an hour or two...
explaination: you can post anything as long as you made all (or almost all) of it yourself.
I mean, its pretty simple. Make your own video from scratch, you can post it. Post video from someone else, or thats mostly pieces of someone else's work put together, its not ok.
Pretty straightforward rule.
1- the OS is the OS, the software is the software. If the new super cool software that word of mouth got around is something OLPC users will want to use, and its not already ported to Windows (aside for the desktop managers, and even that, quite a bit is ported on Windows directly or indirectly through cygwin), someone will port it. Plus Windows has its share of open source pieces of software, too. Oh, and Linux has its share of commercial software. Lookathat.
2- OLPCs will probably be configured to not run as admin by default, and with tighter security settings than a default Windows install. In those conditions, you don't need an antivirus (especially not the ones you mentionned). And heck, the best Windows anti-virus ARE free, btw (though they probably don't want to install them on low spec computers, since they tend to bring systems down to a crawl, even the best ones).
Except that .NET didn't need to keep a certain level of backward compatibility like Java did (since it was "new" at the time), could learn from its predecessor, and most of the system interaction is done using native components (WinForm vs Swing), on top of a vastly superior garbage collection engine.
.NET is a speed demon in the right hands.
The JIT compiler of the next iteration of java (that isn't quite out yet) is totally sick, so that probably will bridge the gap by a lot, but
Of course, the FIRST thing I'd suggest to a texteditor+PHP+Javascript programmer Mac user who thinks an IDE is scary is to develop for a not-quite-complete platform (::cough debugger until recently cough::), with an half baked (but with potential...still half baked for now) semi-unsupported IDE, for a port/clone of a framework where even the official version is hard to get info on... yes.....
.NET or other alternatives, though none as "simple" as a text editor with PHP), you'll be stuck rewriting it (or your replacement will, depending on your situation), just like when I was hired to replace that pocket pc web app, but hey, if your requirements are simple enough, thats your alternative.
Anyway, while I feel its stupid, most barcode scanners pocket PCs have built in tools/features/whatever that lets the scanner act as an input device for any application. A place I worked for a long time ago made a PHP/Javascript application that would read the input of the barscore scanner and then parse it on an html form. Thats really simple to do, would use your skillset (minus the fact that Pocket IE sucks balls, even compared to IE 5...so you'll have to scream at the javascript a bit until it does what you want), and you wouldn't have to deal with Visual Studio.
Of course, once you see what all your competitors (if its a product you're making) are doing when using "real" tools (be it
I've made barcode apps for Symbol scanners in Compact Framework 2, (never tried 1.1), and even though the pocketPcs we had sucked balls, the apps were incredibly snappy (they were very complex as far as pocketPC apps go, too). I also never had issues with VS2005 (2003 was awful) as far as speed go, even though I have tons of plugins dragging it down (At my last job I was using Vista with all bells and whistles on on a machine with only 1 gig of RAM, and it was still snappy!!). What kind of code did you rewrite that was automatically generated? Most of what it generates is "make an instance of control, hook event handlers, add control to form". Not many bottlenecks in that...
It did have bugs in the past that made it slower than it should, and in certain very specific situations it will go to a crawl, but it shouldn't be common place...
Well, thats the thing... nothing contradict that -A- super being exists. But God with a capital G is a very specific one that is supposed to have had specific influence on Earth, and, among other things, made humans "special". That is quite a bit easier to contradict.
The argument tends to be that that particular piece of the EULA is dubious at best, probably not enforcable... but even if it isn't, Apple has another trick up its sleeves (as far as I can tell, someone tell me if I'm wrong): they don't sell full copies of OSX, only upgrades. The only way to get a non-upgrade license of OSX is with a Mac. So you can't just buy a copie at the store and install it, since you don't qualify for the upgrade license.
You don't even need that much. In ASP.NET you can dump a separate component adapter that will change the output of the control without having to touch (or inherit from) the original control. Its pretty handy honestly, since it allows you to change the output of a web site without touching the web site code.
The hype came from people not realising that Rails offers little to nothing that hasnt been mainstream in the professional world for years before RoR got its name. People unaware of that saw Rails as a revelation. The rest of us yawned.
Sleep and/or Hibernate, depending on usage. Computer usuable within -seconds- from hitting the switch. Power usage minimal (or none).
The wysiwg editors, in the professional world, are really only used to make a prototype first, and for their text editor (I mean, I didn't use Dreamweaver in ages, but last I tried, its text editor WAS pretty darn good, and the wysiwg interface can be used as a real time preview of the site, even if it barfs of it).
Yup, I agree with you, but its actually the majority of schools, -especially- the purist "CS" schools. My girlfriend comes from CMU (which is rated fairly high as far as CS schools go), and while she did take a database course like the one you describe, it was an elective!
I can't say I've surveyed all of the schools, but I know enough people from various schools to beleive its the monitory that requires it (and that ironically, the lower rated schools are more likely to have it as mendatory, go figure!).
I really hope it changes. When I did my degree, I had to take 3 database classes mendatory, and 1 software development class which used databases extensively, so I'm good to go...
Indeed, thats the "old" way of doing JOINs. Actually, the JOIN keyword is to clean up the WHERE clause, which can get quite complicated, by separating join related operations from the WHERE clause (back in the days, we didn't have the JOIN keyword, hehehe).
:)
:)
Most database developers feel using JOIN is easier to maintain and more natural
And I agree, I hate having intelligence in the SQL part, but in certain cases its required for performance reason, unfortunately (common in complex multi-thousand table ERP systems)... It really depends on the kind of work you do. Personally though, for anything that doesn't require business logic (such as CRUD operations), I just use an ORM framework. Then I don't even have any SQL at all, in or out of the database! Problem solved
A night batch process across 7 servers in a replications set around the world (and not even of the same technology, as in, not all the same database engine, using views with an ODBC front end) to finally launch an ETL package and query the result from an OLAP cube.
.NET dev myself, so I have Visual Studio, with a widescreen monitor, having a small part on the right displaying my project structure, and a small section on the left having a live connection to the database on which I can view/modify stored procedures straight on the server, using plugins to have stuff like auto-complete, etc. VS also allows you to set breakpoints and trace into stored procedures for debugging, and to write/run automated unit tests on them. Its sweet.
Now i'm making this up, I never did anything that complicated, but... I had to do stuff like querying several servers to generate a end of month statement. Doing it in a single query was a lot faster than having multiple roundtrips and aggregating the data in the procedural code, but it required the declaration of several temporary tables, aggregating their data, you need exception handling (try/catch), variables, custom error messages, a lot of code to do all of the computations (calculating taxes across various states/provinces/countries... thats a LOT of code right there), and more. Personally, anything under 80 lines of code for an SQL query is considered "simple". (If you have a database schema in the 3rd normal form in an average business application, you'll have 10+ way JOINs quite frequently, and if you indent your code and make it readable, it will easily span 50-100+ lines in the best of cases... if you add string concatenation for all of the parameters, it quickly gets out of hand, but thats not an issue with either SPs or prepared statements).
And yeah, with your dev setup, I'd probably dread doing stored procedures. I'm a
As for the performance improvement of prepared statements, it comes from the query plan cache (which cannot be done without prepared statements), though that depends on the database engine. Oracle and SQL Server do it, I beleive Postgres does, I don't know about MySQL.
here is a reference, though I did not verify it (though I'd be guessing dev.mysql.com would be a semi-reliable source! This one is from the 4.0 days though)
http://dev.mysql.com/tech-resources/articles/4.1/prepared-statements.html