Specific to the poster's problem: It would also be easy to provide a macroing system that would allow you to "invent" functionality originally not thought of, such as negative masking column names. Once you open up macroing, you have the full power of metaprogramming, and nothing is beyond your reach.
The worst part about SQL is that it was designed at a time when there was this notion that you should be able to read computer languages like English.
As we all know, unfettered application of this principle leads to some terrible languages (see BASIC, COBOL). SQL is one such language: every extension, every new functionality that looks "sql-like" (eg, not a user function) has to be integrated into the grammar. Furthermore, although perhaps not oft considered by SQL veterans, there are key words that, in a very real sense, mean the same thing. WHERE and HAVING in a SELECT are such an example. They both operate on intermediate tables (in the conceptual sense) and accept or reject a tuple, but before or after grouping. There are also inconsistencies in the order with which one supplies operations: in the case of SELECT, WHERE, GROUP BY (a two part keyword, of which the second part is context sensitive! AGH!), the key word leads the parameters. But when you have to do a JOIN, UNION, or INTERSECT you are using infix notation.
My conclusion is that SQL-the-language is a veritable hellhole.
An earlier poster mentioned using S-expressions, and I have to say that I am in complete agreement. SQL queries are usually functional in nature, generally not generating side effects (besides triggers). Then the grammar would be more or less zero size and vendors extending functionality would not result in a huge grammar, just a huge library of functions that are called identically grammatically. It would also make extensions easier to write.
Now, why do I suggest syntax free? Simply because syntax is hard to get right. Syntax-free languages have the handy property of being easy to convert to since they so trivially represent abstract syntax trees, and that means that anyone with a good idea, luck, and some talent in language design could mess around in defining their own language.
However, Gasp, start.com and search.msn.com are standards compliant according to firefox, and, aside from some minor issues, pass W3C validation as well. I hope whoever takes over isn't going to have a lower priority on these standardization efforts...
At least they appear to render properly with firefox under GNU/Linux.
Perhaps, but I don't see the universities telling students that in their own personal lives that they cannot express themselves. That is what differentiates this case from these. They gave examples of bias in class and in funding selection, but I did not see any rules that extended to the student's personal life.
...What's a "left-wing" school? Are you talking about universities? What's an example of one interfering with free speech? Is it really as henious as trying to regular a student's behavior outside their facilities and due jurisdiction?
It just proves that life COULD be made through intelligent deisign (although it would short circuit the notion that only a 'higher power' has such capability.
It doesn't disprove the notion that life could be a product of stochastic processes.
At the same time, better this than something that tries to turn every DS into a spam-relay, right?
You may think the hacker ethic is a fallacy, but at the same time they do (probably) the least damage. At worst, they can take up a lot of bandwidth should a worm get out of their control. (Pretty bad, but better than opening up tons of backdoors to make zombie nets)
In these latter days, you don't even need to do that -- tools like Eclipse handle and build C (actually, they'll run your makefile for you, if you want to) just fine.
From vi, to emacs, to eclipse (ratios of memory usage in each generation maintained!)
I actually do not like the eclipse editor component as much as emacs. Ideally, I'd want the GUI-esque browsing/completion/etc of eclipse with the emacs editor. (There have been attempts at this, but none of them feel "right")
It's also harder to write ad-hoc extensions to an eclipse plugin, which is one large benefit emacs has over it.
Perhaps this is because some us find working on Windows the most mind-grating thing ever.
I really don't understand this fascination with Visual Studio. From what I've seen (which is not a trivial amout) of the 2003 version, it rather sucks in comparison to some of the latter day Free IDEs. I've heard from a friend at Microsoft that 2005 got a major upgrade in many areas (like refactoring) so that IDEs like Eclipse and Netbeans don't eat their mindshare/lunch. MS KNEW that they were weak there.
In contrast, with *NIX I pretty much get a development environment out of the box. The one sore point is Java, which really is no different than installing it under Windows...it's just that most repositories do not include it. Besides this, it is trivial to obtain a shell, perl, python, gcc, ruby, and countless other libraries. I also haven't seen a half decent (free or otherwise, but less search for the latter type) virtual workspace manager for Windows.
The one notable exception (which is a large one) is developing Windows applications. For this reason alone (with games, but those aren't productive, so they don't count) I must boot back into Windows now and again.
Twenty-five hundred tons. That's how much manure was produced every day and tries to keep all three of you from experiencing that telltale soft smush of a police captain, argued her dog-poop case. "While adults like yourselves are appalled and disgusted by the sight of the Hoboken City Council, Lauren Mecka, the daughter of a nuisance than horse manure ever was. But if you are, say, a parent who walks two kids to school every day and tries to keep all three of you from experiencing that telltale soft smush of a nuisance nonetheless. With horses, the solution was simply to eliminate guns has proved extremely difficult. A given gun lasts a very long time, and as with dogs, guns are widely loved. But getting rid of the manure went uncollected, which posed a terrible problem. (This is to say nothing of the uncollected dog poop in his sneaker tread linked him to the real problem - their poop doesn't just lie there, of course. In 1978, New York were licensed. Even though a license is legally required, costs a mere $8.50 a year and can be easily obtained by mail, most dog owners do obey the law. That still leaves 10,000 dogs whose poop is found on the second floor so that homeowners might rise above it. Like so many cells, poop is left in public spaces each day. Over the last year, only 68 summonses were issued in New York enacted its famous (and widely imitated) "pooper scooper" law, and the offender's feelings of guilt - are at least as powerful as financial and legal incentives. If social forces get us most of the animal dung produced in today's New York enacted its famous (and widely imitated) "pooper scooper" law, and with them went their dung. Most of the dogs? It might help for a moment to think of a misstep, it is a nuisance nonetheless. With horses, the solution was simply to eliminate guns has proved extremely difficult. A given gun lasts a very long time, and as with dogs, guns are widely loved. But getting rid of guns in crimes. Consequently, the most recent year on record, only 102,004 dogs in New York neighborhood confirms that compliance with the occasional miscreant who fails to scoop? After all, a walk through just about any New York City for unlicensed dogs. So even if the DNA solution. During a meeting last year of the horse urine, the deafening clatter of hooves or the carcasses left to rot in the late 19th century. Much of the dogs? It might cost about $30 million is a good guess.) All their poop doesn't just lie there, of course. In 1978, New York is not so much with dogs per se. So perhaps attending to the real problem - their poop - will prompt a solution. Here's an idea: DNA sampling. During the licensing procedure, every dog will have to provide a sample of saliva or blood to establish a DNA sample for all the dogs of New York's dogs licensed? Instead of charging even a nominal fee, the city may want to pay people to license their dogs. And then, instead of treating the licensing law as optional, enforce it for real. Setting up random street checks for dog licenses may offend some New Yorkers, but it certainly dovetails nicely with the law is hardly complete. The Parks Department, meanwhile, which conducts regular cleanliness checks of parks and sidewalks," she said, "it is children like myself and younger who run the greater risk of contact and exposure. We're the ones who have our picnics, stage our adventures and carry out our dragon-slaying fantasies on our parks' grassy lawns. The council, Mecka says today, didn't seem to be vigorously enforced. Let's pre
You might be sarcastic here, but I would think that the chance of that child who belongs to a family with the means to buy video games would be less likely to try to rob you than an impoverished individual with no means to buy video games at all.
This is not much of a promise, as bytecode is bytecode is bytecode (although not all bytecode is create equal in terms of ease of use.)
There are scores of Java bytecode compiled languages, very few of which actually have gotten traction. Jython is one of the more well known (whose creator now works on the CLR & IronPython for.NET), I believe there is also a Java-ized Ruby. Groovy,which has no other outside implementations, is gaining some traction. If you care, there is also Scheme.
But times are a'changing in this respect, and I suspect Java-bytecode compiled languages will gain more traction, partially due to Microsoft's pushing. Now all it comes down to is who can win mindshare and write a faster garbage collector and a better JIT compiler.
It is true that the CLR was supposed to unite the Microsoft languages, including such evils such as Visual Basic / VBScript, and they put more of a spin on this than say, Sun, which had no other language offerings that they intended to run on the Java JVM. Ironically, this forced some of these languages to look quite similar to C#, which upset nary a programmer used to VB6, as I have heard through the winds. I tried using sharpdevelop to convert some C# code into VB, I nearly lost my sight.
I am not so sure. As my database professor said "anything can be fast if you aren't general."
Google probably has a custom or hacked up DBMS that does what they need to do quickly, and if your needs are the same as theirs, then that's perfect...but I doubt we'll be seeing a general purpose DBMS out of them anytime soon.
While people in Taiwan are free enough to use Google's search services regardless of a little bit of annoyance over their personal classification, if Google takes this stand against China and its access is removed from the citizens there, they will lose a well-prepared means of finding information.
Perhaps caving to China is the way of lesser evil. The Taiwanese can use Google's search services if they are so inclined, and the Chinese citizenry could use (at least) the parts that the Chinese government has deemed acceptable, and I would take something over nothing.
What it sounds like you are doing is effectively unsafe pooling with ring buffer since you do not check for existence of an allocation by anyone (that you detail insofar). You rely on the fact that by the time you get around to using a chunk of memory again that it has since been finished with. (Which means any code that relies on this unchecked ringbuffer scheme is very brittle and the user of said code will always be suspicious if they are tripping on their own memory, but brittle is okay if you never expect it to grow, or it can occassionally crash or get wrong answers...)
This has also been fairly common trick (in some sense) with FORTRAN programs since the earlier versions of FORTRAN had no built-in mechanism for dynamic allocation of heap space (like malloc) (this is so as I have been told; I myself am not a user of old-school FORTRAN). You would have to make a big vector and basically write something like malloc (for a "general memory pool" that we nowadays call the heap, to an order of approximation) or employ collection of vectors that would each be used as a pool of memory, or both. Using a ringbuffer with a refcount for safety was one simple, effective, and common approach...and, if you needed even more speed (because whatever it was is inside a quadruple loop) you could do unchecked grabbing of stuff from the pool if you were reasonably confident your code was of high quality and that mistakes would be quickly caught.
I don't quite consider this in the same category of actions since it was compulsary (no concept of preventing memory fragmentation since it was statically allocated or 'helping' the garbage collector since there was none), but it's interesting how old knowledge like this is rediscovered.
Seriously; the point that there "is no published standard" for IE's quirks is a good one. It's like trying to plan around a mine field. You may try to guess, and you may know where a few of the mines are, but to plan your architecture around avoiding specific mines is insane. You'd be better off just making sure your design is simple and robust enough to take the occassional mine explosion or light enough not to trigger them.
It's a goddamn PITA to download all that though, I have to admit. While it isn't make-break kind of thing determining if I like a distro or not, I do much like offering the distro in a 1-CD format (eg, Ubuntu) and just using repositories to fill out my software.
But then again, I'm not an average user, and require special tools that are often not on the disk anyways, and if they are, are frequently not the version I want.
That's not to say that packing a DVD that includes a bunch of applications is bad, but sometimes I don't see it as being strictly necessary for someone like me. I would say a fair compromise is to only offer the 1CD version for download but only ship the DVD or 4CD versions (since more versions physically on the shelves may provide confusion)
Also, why would you CARE about the VM utilization? Also, Azureus (as I recall) has a multi-megabyte (up to 32?) cache for blocks it have recently been sent to attempt to reduce I/O, so it's sensible that it would take up more memory, JIT aside.
I have noticed that Azureus generates incredibly copious amounts of garbage though.
I would not call Talk unfriendly at all since it uses XMPP and works fine with gaim.
I don't hold it against Google that they didn't write Yet Another Jabber Client for GNU/Linux. They've also been fairly consistent about exposing their services in a SOAP-y way, so you could implement the gmail notification/tie-ins fairly easily, if you felt like it.
I'm not sure if you are sarcastic or not, but gaining sensible (read: any) memory protection was a big leap.
Specific to the poster's problem: It would also be easy to provide a macroing system that would allow you to "invent" functionality originally not thought of, such as negative masking column names. Once you open up macroing, you have the full power of metaprogramming, and nothing is beyond your reach.
The worst part about SQL is that it was designed at a time when there was this notion that you should be able to read computer languages like English.
As we all know, unfettered application of this principle leads to some terrible languages (see BASIC, COBOL). SQL is one such language: every extension, every new functionality that looks "sql-like" (eg, not a user function) has to be integrated into the grammar. Furthermore, although perhaps not oft considered by SQL veterans, there are key words that, in a very real sense, mean the same thing. WHERE and HAVING in a SELECT are such an example. They both operate on intermediate tables (in the conceptual sense) and accept or reject a tuple, but before or after grouping. There are also inconsistencies in the order with which one supplies operations: in the case of SELECT, WHERE, GROUP BY (a two part keyword, of which the second part is context sensitive! AGH!), the key word leads the parameters. But when you have to do a JOIN, UNION, or INTERSECT you are using infix notation.
My conclusion is that SQL-the-language is a veritable hellhole.
An earlier poster mentioned using S-expressions, and I have to say that I am in complete agreement. SQL queries are usually functional in nature, generally not generating side effects (besides triggers). Then the grammar would be more or less zero size and vendors extending functionality would not result in a huge grammar, just a huge library of functions that are called identically grammatically. It would also make extensions easier to write.
Now, why do I suggest syntax free? Simply because syntax is hard to get right. Syntax-free languages have the handy property of being easy to convert to since they so trivially represent abstract syntax trees, and that means that anyone with a good idea, luck, and some talent in language design could mess around in defining their own language.
However, Gasp, start.com and search.msn.com are standards compliant according to firefox, and, aside from some minor issues, pass W3C validation as well. I hope whoever takes over isn't going to have a lower priority on these standardization efforts...
At least they appear to render properly with firefox under GNU/Linux.
Perhaps, but I don't see the universities telling students that in their own personal lives that they cannot express themselves. That is what differentiates this case from these. They gave examples of bias in class and in funding selection, but I did not see any rules that extended to the student's personal life.
Basically, I don't even find this comparable.
...What's a "left-wing" school? Are you talking about universities? What's an example of one interfering with free speech? Is it really as henious as trying to regular a student's behavior outside their facilities and due jurisdiction?
It just proves that life COULD be made through intelligent deisign (although it would short circuit the notion that only a 'higher power' has such capability.
It doesn't disprove the notion that life could be a product of stochastic processes.
At the same time, better this than something that tries to turn every DS into a spam-relay, right?
You may think the hacker ethic is a fallacy, but at the same time they do (probably) the least damage. At worst, they can take up a lot of bandwidth should a worm get out of their control. (Pretty bad, but better than opening up tons of backdoors to make zombie nets)
In these latter days, you don't even need to do that -- tools like Eclipse handle and build C (actually, they'll run your makefile for you, if you want to) just fine.
See the CDT at http://eclipse.org/cdt
I hope 2005 is a bit better, for the sake of my sanity. From what it sounds like, this should be the case.
...Truly the emacs of this generation.
From vi, to emacs, to eclipse (ratios of memory usage in each generation maintained!)
I actually do not like the eclipse editor component as much as emacs. Ideally, I'd want the GUI-esque browsing/completion/etc of eclipse with the emacs editor. (There have been attempts at this, but none of them feel "right")
It's also harder to write ad-hoc extensions to an eclipse plugin, which is one large benefit emacs has over it.
df
Perhaps this is because some us find working on Windows the most mind-grating thing ever.
I really don't understand this fascination with Visual Studio. From what I've seen (which is not a trivial amout) of the 2003 version, it rather sucks in comparison to some of the latter day Free IDEs. I've heard from a friend at Microsoft that 2005 got a major upgrade in many areas (like refactoring) so that IDEs like Eclipse and Netbeans don't eat their mindshare/lunch. MS KNEW that they were weak there.
In contrast, with *NIX I pretty much get a development environment out of the box. The one sore point is Java, which really is no different than installing it under Windows...it's just that most repositories do not include it. Besides this, it is trivial to obtain a shell, perl, python, gcc, ruby, and countless other libraries. I also haven't seen a half decent (free or otherwise, but less search for the latter type) virtual workspace manager for Windows.
The one notable exception (which is a large one) is developing Windows applications. For this reason alone (with games, but those aren't productive, so they don't count) I must boot back into Windows now and again.
df
Been there, done that:
.html
http://cm.bell-labs.com/cm/cs/tpop/Markov.java
Although this (short) program uses these state tables in order to spew out superficially good looking english text.
For example output, state table from:
http://www.nytimes.com/2005/10/02/magazine/02freak
Twenty-five hundred tons. That's how much manure was produced every day and tries to keep all three of you
from experiencing that telltale soft smush of a police captain, argued her dog-poop case. "While adults like
yourselves are appalled and disgusted by the sight of the Hoboken City Council, Lauren Mecka, the daughter of
a nuisance than horse manure ever was. But if you are, say, a parent who walks two kids to school every day
and tries to keep all three of you from experiencing that telltale soft smush of a nuisance nonetheless. With
horses, the solution was simply to eliminate guns has proved extremely difficult. A given gun lasts a very long
time, and as with dogs, guns are widely loved. But getting rid of the manure went uncollected, which posed a
terrible problem. (This is to say nothing of the uncollected dog poop in his sneaker tread linked him to the real
problem - their poop doesn't just lie there, of course. In 1978, New York were licensed. Even though a license
is legally required, costs a mere $8.50 a year and can be easily obtained by mail, most dog owners do obey the
law. That still leaves 10,000 dogs whose poop is found on the second floor so that homeowners might rise
above it. Like so many cells, poop is left in public spaces each day. Over the last year, only 68 summonses were
issued in New York enacted its famous (and widely imitated) "pooper scooper" law, and the offender's feelings
of guilt - are at least as powerful as financial and legal incentives. If social forces get us most of the animal dung
produced in today's New York enacted its famous (and widely imitated) "pooper scooper" law, and with them
went their dung. Most of the dogs? It might help for a moment to think of a misstep, it is a nuisance
nonetheless. With horses, the solution was simply to eliminate guns has proved extremely difficult. A given gun
lasts a very long time, and as with dogs, guns are widely loved. But getting rid of guns in crimes. Consequently,
the most recent year on record, only 102,004 dogs in New York neighborhood confirms that compliance with
the occasional miscreant who fails to scoop? After all, a walk through just about any New York City for
unlicensed dogs. So even if the DNA solution. During a meeting last year of the horse urine, the deafening
clatter of hooves or the carcasses left to rot in the late 19th century. Much of the dogs? It might cost about $30
million is a good guess.) All their poop doesn't just lie there, of course. In 1978, New York is not so much with
dogs per se. So perhaps attending to the real problem - their poop - will prompt a solution. Here's an idea:
DNA sampling. During the licensing procedure, every dog will have to provide a sample of saliva or blood to
establish a DNA sample for all the dogs of New York's dogs licensed? Instead of charging even a nominal fee,
the city may want to pay people to license their dogs. And then, instead of treating the licensing law as optional,
enforce it for real. Setting up random street checks for dog licenses may offend some New Yorkers, but it
certainly dovetails nicely with the law is hardly complete. The Parks Department, meanwhile, which conducts
regular cleanliness checks of parks and sidewalks," she said, "it is children like myself and younger who run the
greater risk of contact and exposure. We're the ones who have our picnics, stage our adventures and carry out
our dragon-slaying fantasies on our parks' grassy lawns. The council, Mecka says today, didn't seem to be
vigorously enforced. Let's pre
Don't many mobile/embedded devices use processors that very closely match the java bytecode as actual machine instructions?
You might be sarcastic here, but I would think that the chance of that child who belongs to a family with the means to buy video games would be less likely to try to rob you than an impoverished individual with no means to buy video games at all.
This is not much of a promise, as bytecode is bytecode is bytecode (although not all bytecode is create equal in terms of ease of use.)
.NET), I believe there is also a Java-ized Ruby. Groovy,which has no other outside implementations, is gaining some traction. If you care, there is also Scheme.
There are scores of Java bytecode compiled languages, very few of which actually have gotten traction. Jython is one of the more well known (whose creator now works on the CLR & IronPython for
But times are a'changing in this respect, and I suspect Java-bytecode compiled languages will gain more traction, partially due to Microsoft's pushing. Now all it comes down to is who can win mindshare and write a faster garbage collector and a better JIT compiler.
It is true that the CLR was supposed to unite the Microsoft languages, including such evils such as Visual Basic / VBScript, and they put more of a spin on this than say, Sun, which had no other language offerings that they intended to run on the Java JVM. Ironically, this forced some of these languages to look quite similar to C#, which upset nary a programmer used to VB6, as I have heard through the winds. I tried using sharpdevelop to convert some C# code into VB, I nearly lost my sight.
While the MS .NET implementation is pretty fast for primatives, I have found that when it comes to the garbage collector.....
Yeah, Java is not all slugs and snails. And I like to be able to tune my garbage collector/heap size, thank you very much.
I am not so sure. As my database professor said "anything can be fast if you aren't general."
Google probably has a custom or hacked up DBMS that does what they need to do quickly, and if your needs are the same as theirs, then that's perfect...but I doubt we'll be seeing a general purpose DBMS out of them anytime soon.
While people in Taiwan are free enough to use Google's search services regardless of a little bit of annoyance over their personal classification, if Google takes this stand against China and its access is removed from the citizens there, they will lose a well-prepared means of finding information.
Perhaps caving to China is the way of lesser evil. The Taiwanese can use Google's search services if they are so inclined, and the Chinese citizenry could use (at least) the parts that the Chinese government has deemed acceptable, and I would take something over nothing.
What it sounds like you are doing is effectively unsafe pooling with ring buffer since you do not check for existence of an allocation by anyone (that you detail insofar). You rely on the fact that by the time you get around to using a chunk of memory again that it has since been finished with. (Which means any code that relies on this unchecked ringbuffer scheme is very brittle and the user of said code will always be suspicious if they are tripping on their own memory, but brittle is okay if you never expect it to grow, or it can occassionally crash or get wrong answers...)
This has also been fairly common trick (in some sense) with FORTRAN programs since the earlier versions of FORTRAN had no built-in mechanism for dynamic allocation of heap space (like malloc) (this is so as I have been told; I myself am not a user of old-school FORTRAN). You would have to make a big vector and basically write something like malloc (for a "general memory pool" that we nowadays call the heap, to an order of approximation) or employ collection of vectors that would each be used as a pool of memory, or both. Using a ringbuffer with a refcount for safety was one simple, effective, and common approach...and, if you needed even more speed (because whatever it was is inside a quadruple loop) you could do unchecked grabbing of stuff from the pool if you were reasonably confident your code was of high quality and that mistakes would be quickly caught.
I don't quite consider this in the same category of actions since it was compulsary (no concept of preventing memory fragmentation since it was statically allocated or 'helping' the garbage collector since there was none), but it's interesting how old knowledge like this is rediscovered.
Many people have used this sort of approach. It is called "pooling."
Its use dates back to the first GC'd langauge, LISP, and was a common way to reduce garbage generation.
Seriously; the point that there "is no published standard" for IE's quirks is a good one. It's like trying to plan around a mine field. You may try to guess, and you may know where a few of the mines are, but to plan your architecture around avoiding specific mines is insane. You'd be better off just making sure your design is simple and robust enough to take the occassional mine explosion or light enough not to trigger them.
It's a goddamn PITA to download all that though, I have to admit. While it isn't make-break kind of thing determining if I like a distro or not, I do much like offering the distro in a 1-CD format (eg, Ubuntu) and just using repositories to fill out my software.
But then again, I'm not an average user, and require special tools that are often not on the disk anyways, and if they are, are frequently not the version I want.
That's not to say that packing a DVD that includes a bunch of applications is bad, but sometimes I don't see it as being strictly necessary for someone like me. I would say a fair compromise is to only offer the 1CD version for download but only ship the DVD or 4CD versions (since more versions physically on the shelves may provide confusion)
http://www.martiansoftware.com/nailgun/
Also, why would you CARE about the VM utilization? Also, Azureus (as I recall) has a multi-megabyte (up to 32?) cache for blocks it have recently been sent to attempt to reduce I/O, so it's sensible that it would take up more memory, JIT aside.
I have noticed that Azureus generates incredibly copious amounts of garbage though.
I would not call Talk unfriendly at all since it uses XMPP and works fine with gaim.
I don't hold it against Google that they didn't write Yet Another Jabber Client for GNU/Linux. They've also been fairly consistent about exposing their services in a SOAP-y way, so you could implement the gmail notification/tie-ins fairly easily, if you felt like it.
And people who like to actually remove software now and then. Without holding onto their old configured makefiles.
But of course, you were not being serious.