A lot of VB code is mostly glue tying together COM components, such as UI elements, database libraries (ODBC/OLEDB), etc..
There is nothing exactly like COM in the Linux/UNIX world, although large projects such as KDE, Gnome, and Mozilla do have rough equivalents if you are willing to rely on them for part of your functionality. Also, much of what Linux lacks in terms of COM is more than compensated by the existence of rich CLI tools that are designed to be tied together with a "glue" language such as shell, Python, Perl, etc.
My approach has generally been to enforce separation between data, business logic, and presentation to the greatest extent possible. This way, any component can be replaced or migrated to another dev tool or platform if needed.
Postgres is a great back-end database, and the only Free one I can recommend for most serious apps. Middle-tier / business logic components can be written in pretty much any language that can communicate with both the database and the front end. I like to prototype in Python and then possibly port to C++ later when/if there's a need.
The front end is the biggest challenge. The Qt and wxWidgets libraries are extremely well regarded and mature, and there are form builder utilities for both, which approximate (but IMO don't exactly equal) the ease of the Windows forms designers. For reporting, numerous PDF generation tools exist although I don't have a lot of experience with any of them, and most will not have the "drag and drop" interface you may be used to from Crystal or Access, but once you get used to writing code that generates output, I find it's a lot more productive than "drag and drop" anyway.
Most VB code isn't particularly object-oriented (especially since until.NET, VB did not support implementation inheritance). As such, a good multiparadigm language like Python, which supports but does not require OOP, seems like a very good choice.
Packaging will be an issue. Not all of your target users will have identical operating systems, libraries, or locations for common files. You will need to use some combination of Ant, Make, Autoconf, and similar tools in order to distribute your software in such a way that it can be easily compiled and installed by end users (if appropriate) or whomever else your target market may be.
What license can I use that would effecively prevent forking, but at the same time be open source?
As others pointed out, you can't, by definition, but what you can do - and what Sun (along with Red Hat, and many others) has done - is to use trademarks to protect yourself.
You make a product called Foobarlicious. You release it under a license that says you can do what you want, including releasing modified or derived products, except that if it is modified in any way, you have to pass a compatibility test, or else you can't call it Foobarlicious. (You can still redistribute it but you just can't call it that.) This may or may not be GPL compatible but it is definitely Free and Open Source as I understand the definitions of both terms.
Now, people can fork, but they can't pass the fork off as the official "Foobarlicious" unless it is compatible.
I don't know why this alone wasn't good enough for Sun. Possibly because of Microsoft's actions - it agreed to very similar terms, as all Java licensees do, and then proceeded to flagrantly violate them.
This is probably good and indeed necessary advice in unfree countries (i.e., most of them). But I believe there still are places where such "licenses" are not enforceable, at least not against those who have not agreed to them.
As a user and developer of both custom 'Doze software (by day, for $) and OSS (at night, not yet for $) . . .
Microsoft is not likely to release these under a genuinely Free or Open Source license . . . but . . . they will be helpful to me as a 'Doze developer by helping me find and work around and/or fix implementation bugs in Windows.Forms.
I've thus far not had a use for Mono or Dot.GNU, but I suspect that the release will help them for the same reason it will help me: they won't be able to use the source directly but it will help them to find and either fix or (if necessary) re-implement Microsoft bugs upon which software may rely.
IANAL, etc., but IIRC the EU operates under civil law, not common law, and promissory estoppel is a common-law concept which may not apply in civil law jurisdictions.
I guess I don't see the problem. Because of the Bush tax cuts, 11.6 trillion fewer dollars will be taken from people against their will. That's a good thing.
As a libertarian I completely agree that lower (or no) taxes are a Good Thing.
The only problem is that you have to cut spending too. Otherwise, you end up forcing higher taxes on us (and those who follow us) in the future.
We live in a world that we would like to believe is largely free, but, because of various systems of power and control, including those you mentioned and many more, it is not.
The book linked to in my sig contains many additional examples, and a strategy for overcoming them.
Besides spamming, this self-described school has, as another reader points out, "awarded an MBA to a cat owned by an undercover Pennsylvania deputy attorney general."
Thereby reducing the average IQ of cats, while greatly increasing that of MBAs.
"We've just bailed out out a leading *cough* solution provider! Now imagine that had been, say, a Linux deployment... Who could EDS have called then?"
They could have called me, or any other competent Linux admin, who would have built, in the space of about an hour, a customized Knoppix-like live CD which upon boot would fix the boot sector, kernel, glibc, or whatever had gotten b0rked.
Of course it wouldn't have been likely to happen in the first place, even with Windows, if you had competent admins.
The point is though that with free software you don't NEED the original vendor; ANY competent admin or developer can help solve problems.
Re:Wow, this article is pure uneducated guesswork.
on
Linux Kernel to Fork?
·
· Score: 1
This article is about as educated about the subject as the average donkey.
They call THEMSELVES "neo-conservatives," to distinguish themselves from the more traditional conservatives of the past, most of whom would not condone the authoritarian welfare/warfare state favored today not only by neocons but by many liberals as well. Their ethnicity and/or religion is unimportant; it is by their words and more importantly actions that they should (and will) be judged.
Re:Doc, all we need is some plutonium...
on
Nuclear Batteries
·
· Score: 1
I'm sure in 1985, plutonium is available at every corner drugstore, but in 1955 it's a little hard to come by!
We should never tolerate evil. That's why I'm voting Kerry in 04.
A war fought for choice not necessity is evil. There wasn't any credible WMD evidence and 1000+ of our boys have died for it.
The problem is that Kerry openly supports this illegal war as well.
Thus, to vote for either major candidate is to voice your preference for war, something I'm sure you do not intend, but which will be claimed by whatever side wins, and believed by Muslims, Arabs, and many others throughout the world, and used to justify, in some people's minds at least, further acts of terrorism against civilians in the U.S.
If you are anti-war, then you should either not vote at all, or, at least, vote for a candidate who is genuinely anti-war as well. If enough people did that, real change would be possible.
I think they were referring to Gentoo's "title" of being the fastest running distribution. Gentoo is a pure and simple pain in the ass to install and requires you to become very well versed in the ways and workings of linux.
But it is absolutely painless to maintain and administer, and makes it effortless to keep up with reasonably current versions of software.
It's true that the speed boost that comes from building from source is overrated, but there are real benefits from Gentoo besides this, some specific to Gentoo and others common to all source-based meta-distributions. For instance . . .
Very few linking and dependency problems at runtime; software is always built against your versions of libraries, and if there is a problem, it will usually happen during the build, not at runtime.
Excellent user support at forums.gentoo.org - I've yet to encounter ANY problem, even a self-inflicted one, that wasn't satisfactorily addressed there.
It's really easy to compile and install software from source even if there isn't an ebuild for it.
Gentoo's "slots" are the simplest and most elegant mechanism I've ever seen for letting two versions of normally incompatible software packages coexist.
Almost infinite flexibility. You aren't forced to include a package because some barely-related RPM requires it - set USE flags appropriately and you can have as lean and mean, or as complete and feature-rich, a system as you prefer.
Since Gentoo distributes not the software itself, but the scripts by which you download/configure/install software, some tricky licensing problems with "almost-free" software (e.g. Java) are circumvented.
You can not only decide how things will be compiled, but see how things were compiled, which makes debugging and troubleshooting much more straightforward.
I couldn't be happier with Gentoo, and would never willingly switch to a non-source-based distro ever again, even for production work (although a production environment does need much stricter discipline regarding frequency and testing of updates).
I agree. A properly configured hardware firewall plus Firebird, Thunderbird and OpenOffice.org can make even Windows run in a semi-acceptable fashion. But even then, you have to patch somehow before any spy/crap/trojanware gets installed. The firewall is pretty useless once a malicious program gets the opportunity to initiate an outbound connection on a "safe" port like 80 or 443 and wait for further instructions.
Second, it's silly to pretend Linux is more vulnerable to filesystem corruption than 'Doze. If it's a machine with unreliable power (or unreliable users), then use a journalling filesystem.
You're in the wrong place if you think you're going to convince anyone that Linux is truly more difficult or costly to support than 'Doze, especially now, when the true cost of its piss-poor security model is finally becoming apparent even to non-technical end users.
When you buy a microsoft product, you're directly funding illegal activity?
Microsoft has been found guilty of committing illegal activity in both the US and EU, and if you do business with it then, yes, that is funding illegal activity.
I'm not suggesting that to buy or use a Microsoft product is legally wrong. I doubt that anyone even in the Prison States of America is going to throw you in jail for that.
But in my view, if you don't have to do business with a company that is morally and ethically bankrupt, then you probably shouldn't, not just for moral and ethical reasons, but practical ones too.
At work, where I have to use what I'm told or find another way to feed my family, I do use M$ products. But at home, where I do have a choice, I use Free/OSS only. Not only does it work better, but I sleep a lot better at night too.
It's hard to give a more precise answer without knowing the details of your architecture.
But, in general, I prefer to partition an app that requires extensive business logic into separate logical layers (whether or not these are separate physical layers).
Database-side stored procedures do limit portability, but if you can run similar code at a point in your application that is physically close to the DB server, or at least on the same fast network segment, this gives you better performance than you'd get having the logic in your front-end, with less portability hassles than if you'd coded them in your RDBMS's proprietary stored procedure language.
This is only a slight variation on the MVC (model/view/controller) pattern first popularized by Smalltalk decades ago. It worked nicely then, and is even better now, because both hardware and networks are a lot more powerful.
Linux users do not have a God or country given right to watch American Wedding on their Linux box.
Wrong.
People have the right to do anything that does not violate the rights of others.
It can be argued that you don't have the right to watch this movie if you haven't paid for the right to do so.
It cannot be reasonably argued that your right to use media that you have legally acquired is subordinate to the pretended "right" of some technophobic media twit to dictate your choice of operating system.
I find these numbers (10's of thousands) very hard to believe.
I don't.
There are hundreds of American expatriates living semi-permanently in Skopje, Macedonia. Macedonia is a fairly poor country with only a little over 2 million inhabitants and a smaller GDP than Omaha, Nebraska. But its economy is still largely cash-based, and if you have a job plus even a little savings (by Western standards) you can live there nicely for years.
I don't know how many of these are economic refugees. But if it is 10%, and you extrapolate to the rest of (comparatively much wealthier) Europe, then tens of thousands definitely does not seem unrealistic.
Does the author of this article REALLY expect us to believe that he was intelligent, knowledgeable, or persistent enough to bootstrap a source-based OS from a partial image or LiveCD??
Either his Gentoo experience was limited to just using the LiveCD, or he is lying.
Either way, this speaks volumes about how much effort he honestly spent in trying to make things work, as opposed to finding something that he could plausibly claim didn't work.
Also: why, oh why, do people complain when devices aren't supported which no one ever claimed were supported in the first place???
Linux isn't for people like this. It never was and possibly never will be. That doesn't mean there aren't problems, or even that the specific problem he's complaining about isn't a valid one (although he ever so helpfully omitted details that would have helped confirm it or fix it).
But I don't think it's fair to blame Linux for the author's failure to use supported hardware, learn a little about the OS he is being paid to write about, or even demonstrate a plausible degree of intellectual honesty.
A lot of VB code is mostly glue tying together COM components, such as UI elements, database libraries (ODBC/OLEDB), etc..
There is nothing exactly like COM in the Linux/UNIX world, although large projects such as KDE, Gnome, and Mozilla do have rough equivalents if you are willing to rely on them for part of your functionality. Also, much of what Linux lacks in terms of COM is more than compensated by the existence of rich CLI tools that are designed to be tied together with a "glue" language such as shell, Python, Perl, etc.
My approach has generally been to enforce separation between data, business logic, and presentation to the greatest extent possible. This way, any component can be replaced or migrated to another dev tool or platform if needed.
Postgres is a great back-end database, and the only Free one I can recommend for most serious apps. Middle-tier / business logic components can be written in pretty much any language that can communicate with both the database and the front end. I like to prototype in Python and then possibly port to C++ later when/if there's a need.
The front end is the biggest challenge. The Qt and wxWidgets libraries are extremely well regarded and mature, and there are form builder utilities for both, which approximate (but IMO don't exactly equal) the ease of the Windows forms designers. For reporting, numerous PDF generation tools exist although I don't have a lot of experience with any of them, and most will not have the "drag and drop" interface you may be used to from Crystal or Access, but once you get used to writing code that generates output, I find it's a lot more productive than "drag and drop" anyway.
Most VB code isn't particularly object-oriented (especially since until .NET, VB did not support implementation inheritance). As such, a good multiparadigm language like Python, which supports but does not require OOP, seems like a very good choice.
Packaging will be an issue. Not all of your target users will have identical operating systems, libraries, or locations for common files. You will need to use some combination of Ant, Make, Autoconf, and similar tools in order to distribute your software in such a way that it can be easily compiled and installed by end users (if appropriate) or whomever else your target market may be.
Good luck!
What license can I use that would effecively prevent forking, but at the same time be open source?
As others pointed out, you can't, by definition, but what you can do - and what Sun (along with Red Hat, and many others) has done - is to use trademarks to protect yourself.
You make a product called Foobarlicious. You release it under a license that says you can do what you want, including releasing modified or derived products, except that if it is modified in any way, you have to pass a compatibility test, or else you can't call it Foobarlicious. (You can still redistribute it but you just can't call it that.) This may or may not be GPL compatible but it is definitely Free and Open Source as I understand the definitions of both terms.
Now, people can fork, but they can't pass the fork off as the official "Foobarlicious" unless it is compatible.
I don't know why this alone wasn't good enough for Sun. Possibly because of Microsoft's actions - it agreed to very similar terms, as all Java licensees do, and then proceeded to flagrantly violate them.
I've replaced my windows. It was a large expense
Me too. Not only is Linux far less expensive, but it rocks!
This is probably good and indeed necessary advice in unfree countries (i.e., most of them). But I believe there still are places where such "licenses" are not enforceable, at least not against those who have not agreed to them.
As a user and developer of both custom 'Doze software (by day, for $) and OSS (at night, not yet for $) . . .
Microsoft is not likely to release these under a genuinely Free or Open Source license . . . but . . . they will be helpful to me as a 'Doze developer by helping me find and work around and/or fix implementation bugs in Windows.Forms.
I've thus far not had a use for Mono or Dot.GNU, but I suspect that the release will help them for the same reason it will help me: they won't be able to use the source directly but it will help them to find and either fix or (if necessary) re-implement Microsoft bugs upon which software may rely.
IANAL, etc., but IIRC the EU operates under civil law, not common law, and promissory estoppel is a common-law concept which may not apply in civil law jurisdictions.
I guess I don't see the problem. Because of the Bush tax cuts, 11.6 trillion fewer dollars will be taken from people against their will. That's a good thing.
As a libertarian I completely agree that lower (or no) taxes are a Good Thing.
The only problem is that you have to cut spending too. Otherwise, you end up forcing higher taxes on us (and those who follow us) in the future.
We live in a world that we would like to believe is largely free, but, because of various systems of power and control, including those you mentioned and many more, it is not.
The book linked to in my sig contains many additional examples, and a strategy for overcoming them.
From the article:
Besides spamming, this self-described school has, as another reader points out, "awarded an MBA to a cat owned by an undercover Pennsylvania deputy attorney general."
Thereby reducing the average IQ of cats, while greatly increasing that of MBAs.
"We've just bailed out out a leading *cough* solution provider! Now imagine that had been, say, a Linux deployment... Who could EDS have called then?"
They could have called me, or any other competent Linux admin, who would have built, in the space of about an hour, a customized Knoppix-like live CD which upon boot would fix the boot sector, kernel, glibc, or whatever had gotten b0rked.
Of course it wouldn't have been likely to happen in the first place, even with Windows, if you had competent admins.
The point is though that with free software you don't NEED the original vendor; ANY competent admin or developer can help solve problems.
This article is about as educated about the subject as the average donkey.
You donkey slanderer!
They call THEMSELVES "neo-conservatives," to distinguish themselves from the more traditional conservatives of the past, most of whom would not condone the authoritarian welfare/warfare state favored today not only by neocons but by many liberals as well. Their ethnicity and/or religion is unimportant; it is by their words and more importantly actions that they should (and will) be judged.
I'm sure in 1985, plutonium is available at every corner drugstore, but in 1955 it's a little hard to come by!
Not if they invent a nuclear-powered vibrator!
Freshmeat is your friend. I've heard good things about TinyCobol and OpenCOBOL, both of which are listed here.
We should never tolerate evil. That's why I'm voting Kerry in 04.
A war fought for choice not necessity is evil. There wasn't any credible WMD evidence and 1000+ of our boys have died for it.
The problem is that Kerry openly supports this illegal war as well.
Thus, to vote for either major candidate is to voice your preference for war, something I'm sure you do not intend, but which will be claimed by whatever side wins, and believed by Muslims, Arabs, and many others throughout the world, and used to justify, in some people's minds at least, further acts of terrorism against civilians in the U.S.
If you are anti-war, then you should either not vote at all, or, at least, vote for a candidate who is genuinely anti-war as well. If enough people did that, real change would be possible.
I've had the opposite experience - not a single problem in 2+ years of fairly heavy use that forums.gentoo.org hadn't already addressed.
I think they were referring to Gentoo's "title" of being the fastest running distribution. Gentoo is a pure and simple pain in the ass to install and requires you to become very well versed in the ways and workings of linux.
But it is absolutely painless to maintain and administer, and makes it effortless to keep up with reasonably current versions of software.
It's true that the speed boost that comes from building from source is overrated, but there are real benefits from Gentoo besides this, some specific to Gentoo and others common to all source-based meta-distributions. For instance . . .
I couldn't be happier with Gentoo, and would never willingly switch to a non-source-based distro ever again, even for production work (although a production environment does need much stricter discipline regarding frequency and testing of updates).
All your children are belong to us.
I agree. A properly configured hardware firewall plus Firebird, Thunderbird and OpenOffice.org can make even Windows run in a semi-acceptable fashion. But even then, you have to patch somehow before any spy/crap/trojanware gets installed. The firewall is pretty useless once a malicious program gets the opportunity to initiate an outbound connection on a "safe" port like 80 or 443 and wait for further instructions.
Giving them a happy blue box that blinks and costs $50 trumps any ability to ssh into it and fix. . . .
And I'm not getting calls during the weekend when a power outage fries the hard drive and I have to rebuild the Linux partition.
I think you're trolling a wee bit here.
First, the ability to ssh into a machine and fix things is not dependent upon choice of OS, because you can ssh into a Windoze box and fix it. If you want to see the user's desktop, use Desktop Sharing or whatever it's called on XP, with rdesktop (Free Linux client), or try VNC.
Second, it's silly to pretend Linux is more vulnerable to filesystem corruption than 'Doze. If it's a machine with unreliable power (or unreliable users), then use a journalling filesystem.
You're in the wrong place if you think you're going to convince anyone that Linux is truly more difficult or costly to support than 'Doze, especially now, when the true cost of its piss-poor security model is finally becoming apparent even to non-technical end users.
When you buy a microsoft product, you're directly funding illegal activity?
Microsoft has been found guilty of committing illegal activity in both the US and EU, and if you do business with it then, yes, that is funding illegal activity.
I'm not suggesting that to buy or use a Microsoft product is legally wrong. I doubt that anyone even in the Prison States of America is going to throw you in jail for that.
But in my view, if you don't have to do business with a company that is morally and ethically bankrupt, then you probably shouldn't, not just for moral and ethical reasons, but practical ones too.
At work, where I have to use what I'm told or find another way to feed my family, I do use M$ products. But at home, where I do have a choice, I use Free/OSS only. Not only does it work better, but I sleep a lot better at night too.
It's hard to give a more precise answer without knowing the details of your architecture.
But, in general, I prefer to partition an app that requires extensive business logic into separate logical layers (whether or not these are separate physical layers).
Database-side stored procedures do limit portability, but if you can run similar code at a point in your application that is physically close to the DB server, or at least on the same fast network segment, this gives you better performance than you'd get having the logic in your front-end, with less portability hassles than if you'd coded them in your RDBMS's proprietary stored procedure language.
This is only a slight variation on the MVC (model/view/controller) pattern first popularized by Smalltalk decades ago. It worked nicely then, and is even better now, because both hardware and networks are a lot more powerful.
Linux users do not have a God or country given right to watch American Wedding on their Linux box.
Wrong.
People have the right to do anything that does not violate the rights of others.
It can be argued that you don't have the right to watch this movie if you haven't paid for the right to do so.
It cannot be reasonably argued that your right to use media that you have legally acquired is subordinate to the pretended "right" of some technophobic media twit to dictate your choice of operating system.
I find these numbers (10's of thousands) very hard to believe.
I don't.
There are hundreds of American expatriates living semi-permanently in Skopje, Macedonia. Macedonia is a fairly poor country with only a little over 2 million inhabitants and a smaller GDP than Omaha, Nebraska. But its economy is still largely cash-based, and if you have a job plus even a little savings (by Western standards) you can live there nicely for years.
I don't know how many of these are economic refugees. But if it is 10%, and you extrapolate to the rest of (comparatively much wealthier) Europe, then tens of thousands definitely does not seem unrealistic.
Disclaimer: I use and love Gentoo.
But . . .
Does the author of this article REALLY expect us to believe that he was intelligent, knowledgeable, or persistent enough to bootstrap a source-based OS from a partial image or LiveCD??
Either his Gentoo experience was limited to just using the LiveCD, or he is lying.
Either way, this speaks volumes about how much effort he honestly spent in trying to make things work, as opposed to finding something that he could plausibly claim didn't work.
Also: why, oh why, do people complain when devices aren't supported which no one ever claimed were supported in the first place???
Linux isn't for people like this. It never was and possibly never will be. That doesn't mean there aren't problems, or even that the specific problem he's complaining about isn't a valid one (although he ever so helpfully omitted details that would have helped confirm it or fix it).
But I don't think it's fair to blame Linux for the author's failure to use supported hardware, learn a little about the OS he is being paid to write about, or even demonstrate a plausible degree of intellectual honesty.