Re: (no subject)
Off the top of my head, a couple of thoughts: On Mar 16, 2004, at 2:02 PM, Ted Roche wrote: - mySQL - fast with ISAM, transactional, no stored procedures Note that some features (foreign key constraints, tx?) are only available if you use InnoDB/Berkeley table format (I forget, sorry), in which case you can lose other conveniences like full-text searching and the speed of MyISAM. Overall a very user-friendly database, though, and practically wedded to PHP, if that's your application delivery framework. - PostgreSQL After using only MySQL for a year, I ended up liking this database better than MySQL simply because it offered some extra features that MySQL didn't (although MySQL will probably offer them within a year or two), but the community is a little smaller, and last I checked (last summer) their site/documentation was unusably slow. You can find mirrors hosted at other companies/institutions, though. The mailing list interface is also very complicated, unlike a lot of other open source mailing lists (such as the Apache lists or this one), so if you like to sub a couple postgres mailing lists, you're in for a treat. Another plus about Postgres is that it's a true OSS project. I don't mean to slam MySQL, but there's been an awful lot of questionable buzz about MySQL's licensing changes lately (such as client libraries are GPL'd unless you want to pay for a non-GPL version). I don't -think- it'd be a problem if you're using PHP for application delivery (because MySQL makes a lot of concessions to PHP [including a rumor that their stored procedure language scheduled for release 5.0 will use PHP syntax]), but the company is finally leveraging its investment in developing an open source database. So, on the one hand, MySQL has looming licensing concerns but also the benefit of both open-source development and company support, so it might be attractive to a PHB. Whereas Postgres is wholly open source, client libraries are open source but not GPL, but there's no company standing behind the project either AFAIK. (Though there are companies that will sell support for it.) Postgres's open source JDBC driver is excellent, IME. - Firebird - Adabase - others? I'm hoping to provide cross-platform access: Windows via ODBC, Mac OS X and Linux via libraries or JDBC. There's another open source database called HSQLDB (formerly HyperSonic SQL). I have no idea how well it performs under load, but its advantages are that it's very lightweight, and b/c it's written in Java you can just run it after unpacking the zip (no installation needed). And of course, runs identically on any platform with a reasonable JVM. It's widely-used as a default database in open source J2EE frameworks (I think it is the default back-end for JBoss CMP), so there's a lot of connectivity if you're using J2EE, but it's not one of the big playas you hear about in OSS database conversations, so maybe there's a good reason for that. Erik -- Erik Price http://erikprice.com/ ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Desktop apps
On Mar 6, 2004, at 11:55 PM, [EMAIL PROTECTED] wrote: Install XEmacs, then run the tutorial. Use the tutorial for even just 15 minutes. This isn't reading documentation, it's actually using (X)Emacs to edit the actual tutorial you're going through. The tutorial explains the basics of using Emacs as an editor. Within 5 minutes, you've already learned a tremendous amount about how to use Emacs effectively. I just jumped into the tutorial and within 30 seconds learned something I had previously either not known, or completely forgotten :) Seconded. For a time when I was in college (mid-90s) I didn't have a computer so I basically -had- to use my unix account for more than just email and usenet (via the vt100 terminals they had all over campus). I took a look at vi and emacs, but after reading the brief built-in emacs tutorial, I knew enough about how to do basic tasks that I was able comfortably move around within a file and write my papers. I still know less than 1% of the total things you can know about emacs (now that I have a computer again, I use Eclipse/WSAD for all my development), but to this day, but I still find it useful when I have to ssh into a machine somewhere. Plus, the basic navigation shortcuts work in all Cocoa-based MacOSX applications' text areas, so now I never even use my Mac's arrow keys anymore. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Python help
On Feb 8, 2004, at 9:31 PM, [EMAIL PROTECTED] wrote: Java requires even more verbosity. This is my general impression of Java. Is the verbosity a good thing or not? It seems verbose to the point of redundancy. Is this helpful, or does it just get in the way? The answer to that is that it's a matter of perspective, but I don't think that Java would be as successful as it is if a majority of people found it -too- redundant. There's no doubt about it -- the verbosity of Java is overkill for simpler tasks like what you've accomplished with your Python script, especially when there are languages like Python, Perl, Ruby, and bash which can make this kind of thing a lot easier. And, if you know you'll only ever invoke the program on a Unix machine, you can do what another poster suggested and simply glue a bunch of existing Unix tools together like awk, sed, grep, find, et cetera, reducing the burden of actually programming the task to a level of merely asking other tools to perform certain actions on the text. But when things get a bit more complicated, this verbosity can be helpful. (see below) It took longer to write, even though I had already prototyped the design in Python (the two designs are nearly identical), Was it just the verbosity of Java which made it take so long? Yes and no. No if you mean did the verbosity take longer to type. Yes, because Java requires a great deal more syntax to say the same thing that can be said with less syntax in Python, and subtle issues surfaced when trying to compile the code and then run it. For instance, there were numerous times I was attempting to use a class without having imported it first. Another thing is that the verbosity of Java means that there is more text to be conscious of using correctly, so that right there leads to greater potential to make a mistake. I wrote that Java implementation in a text editor, which is a useable but relatively primitive tool for a language that can be as verbose as Java. It would have been faster to use an IDE. At work we use WSAD, which speeds development by automatically importing any classes I attempt to use, automatic method completion, popup API documentation (sparing me a trip to the docs), realtime compiler error-checking, and other luxuries. So, using a text editor, I'd make a change and then jump back to the shell and type the command to compile the file. This doesn't take long, because I use keyboard shortcuts and the command history, but then I have to examine the compiler output when there's a problem and jump back to the text editor and fix the mistake -- an IDE will highlight the erroneous code, making it much faster to figure out what you've done wrong. But Python offers the interactive interpreter, which is a godsend when trying to debug a problem or even just sketching out the script. If you write a python script and invoke it with the -i option (python -i scriptname), then after the script completes you are automatically dumped into the interactive interpreter and any variables in your script are now local to your python session so you can invoke functions using arbitrary arguments, evaluate the values of variables, and other conveniences. (Yeah, I know that Real Programmers (tm) use vi/emacs/ed, but Real Programmers also don't consider Java a Real Programming Language. ;) and IMHO would also be more work to modify/extend. That said, if handed a several million-line application written by some other development team, I would rather the application be written in Java than Python. Why? Performance, cleaner code, more robust language? What makes Java better than Python for some things? What types of things is Java best at? In this particular case, the reason I say that is because Java is a statically typed language, and Python is dynamically typed. There are a lot of arguments about which is better, and I won't say one is better than the other for all occasions -- but I happen to find a statically typed language like Java to be easier to read once the application exceeds a certain level of complexity. I anticipate some dissent on this topic, mind you. But when I'm trying to navigate my way through a twisted legacy framework of poorly-written source code to find a bug, it's nice to see the type declarations reminding me that foo is a FileManager and bar is a BufferedXmlMessage. Of course, static type declarations are a pain in the ass in smaller programs, or programs that I'll be writing entirely myself, since I can't enjoy such flexibilities as this: for item in iterableSequence: item.doSomething() Where iterableSequence could be a reference to a file object (so item would be a line), or a database resultset object (so item would be a row), or an object representing a list of users (so item would be a user), etc. Unlike Java, Python doesn't require that your objects actually declare that they implement a specific
Re: Python help
On Feb 5, 2004, at 10:47 AM, Paul Lussier wrote: I'm not overly interesting in shell, perl, tcl, or other language solutions to this problem, since I already know how to write this in the first 3. (a java or c implementation might be interesting :) Here's the Java implementation. You can see that the way I went about it is just like the Python version, except Java requires even more verbosity. It took longer to write, even though I had already prototyped the design in Python (the two designs are nearly identical), and IMHO would also be more work to modify/extend. That said, if handed a several million-line application written by some other development team, I would rather the application be written in Java than Python. import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.SortedSet; import java.util.TreeSet; class Group { private static final int NAME_INDEX = 0; private static final int GID_INDEX = 2; private static final int MEMBERS_INDEX = 3; private String name; private int gid; private List members; Group(String name, int gid, List members) { this.name = name; this.gid = gid; this.members = members; } Group (String lineFromFile) { String[] record = lineFromFile.split(:); this.name = record[NAME_INDEX]; this.gid = Integer.parseInt(record[GID_INDEX]); if (hasMembers(record)) { String[] membersArray = record[MEMBERS_INDEX].split(,); this.members = Arrays.asList(membersArray); } } private boolean hasMembers(String[] record) { return (record.length == MEMBERS_INDEX + 1); } String toLdifFormat() { String memberString = ; if (this.members != null) { SortedSet sorted = new TreeSet(this.members); for (Iterator i = sorted.iterator(); i.hasNext();) { memberString += (String)i.next(); if (i.hasNext()) { memberString += ,; } } } return this.name + : + this.gid + : + memberString; } } public class EtcGroupToLdif { public static void main(String[] args) throws IOException { File etcGroup = new File(args[0]); BufferedReader br = new BufferedReader(new FileReader(etcGroup)); String line; while ((line = br.readLine()) != null) { if (line.startsWith(#)) { continue; } Group group = new Group(line); System.out.println(group.toLdifFormat()); } br.close(); } } ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Python help
On Thursday, February 05, 2004, at 06:14PM, Cole Tuininga [EMAIL PROTECTED] wrote: This is a very subtle one. The point is that in a method definition within an object, you never want to assign a mutable type (namely, the empty list) to an argument. Weird behavior will occur. I totally forgot about that! Excellent observation. According to the language reference, it's because: explanation src =http://python.org/doc/current/ref/function.html; Default parameter values are evaluated when the function definition is executed. This means that the expression is evaluated once, when the function is defined, and that that same ``pre-computed'' value is used for each call. This is especially important to understand when a default parameter is a mutable object, such as a list or a dictionary: if the function modifies the object (e.g. by appending an item to a list), the default value is in effect modified. This is generally not what was intended. /explanation def main(args=sys.argv): One point about the above line - if you're testing from a python prompt, you'll need to pass your arguments in as a list. So for instance, main( [/etc/group] ) rather than just main ( /etc/group ) Otherwise, the next line would generate some rather peculiar behavior. f = file(args[1], r) Yes, exactly. Although, I think you meant that the file name should be in the second element of the list passed into the main() function, because in sys.argv the first element (sys.argv[0]) is the script name, and arguments start at sys.argv[1]. Also, below, it looks like you started out wanting to use a list, but switched to a dict: Yes, I started out by reproducing Paul's original script (which used a dict) exactly, and then I refactored the dict to a list when I realized that the main() function didn't really need to know the Group object's name anymore. I should have tested this code, but I was in a rush. These items aren't meant as bashing - I know you said you wrote it without testing. I'm just trying to clarify. 8) Not at all. Thanks for your input, esp about the mutable default argument in a class method declaration. And, my apologies to the list for sending the email thrice; mail client problems. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Python help
Paul Lussier wrote: I'd like to see/hear others ideas on how to write this same script. I'm most interested in improvements or commentary on why what I did is either right, wrong, interesting, stupid, etc. Below you'll find my stab at it -- it might not be correct, or even run, b/c I haven't actually got an /etc/group file to try it out on right now. There's a couple best practices for Python that I've picked up over the past couple of years that I used, too: 1. Unless you're literally writing a one-shot throwaway script to do some task that you'll probably never do again, try to write your script as a set of functions or classes rather than a start-to-finish script. This is because every Python script can be imported into any other Python script as a module (same can be done with Perl using a package declaration if I'm not mistaken) by using import myscript where the script file is named myscript.py and is located somewhere on your PYTHONPATH (an environment variable that tells the Python interpreter where to search for modules to import, that by default includes only the current working directory). 2. If you're doing the above, then the way you actually invoke your script is by providing a main method (or any other name you prefer). Then, the only part of your script that is *not* located in a function or class definition is the line if __name__ == '__main__': main(), which simply invokes the main() function you defined if the name of the magic __name__ variable is __main__. If you are invoking the script directly (rather than importing it into another script as a module), then this conditional test will prove true, and your main() function will be executed. 3. I read somewhere that a cool trick is setting the arguments of a Python script as the default arguments of main() if it is not passed any arguments explicitly. The advantage of this is that, if you're debugging your script in the interactive interpreter, you can call the main() function on your script (by importing myscript and then calling myscript.main()) and pass it a list of any arbitrary arguments you like. If you pass arguments into main(), they will be used instead of sys.argv (which is good because in the interactive interpreter, there are no arguments in sys.argv). 4. I know that a class can be used as a struct in the way you were using, but I don't generally use it as such -- the reason I use Python is because it's very straightforward and easy to read, and I find that such a use of a Python class is a little un-obvious. In fact, that technique is often used only to show how Python lets you dynamically create object attributes at runtime, though I have seen it used in real-life Python scripts too. For my approach, I created a Group class in my version of your script, which of course you can now use in any Python script that imports your script by referencing it as myscript.Group. A dict is a more straightforward way to use a simple struct-like object, as Cole suggested. The overhead of using a class over a dict is not very significant, though, since Python's classes are really just customized dict types behind the scenes. But you don't need to know that. And because dicts are used so extensively in Python, they are ultra-opt! imized by the Python developers. (Also, if performance is a big concern, then you can always write some of the code in C and then import it into your Python script as a module.) 5. I try to bundle up behavior that is specific to an object into the class that defines that object, rather than act upon the object from the outside. I tried to do that here, by providing a toLdifFormat() method on the Group class. The advantage to this is that it simplifies the code that's making use of the Group objects. Also, returning a string from this method rather than printing it makes it more flexible, since you can always print it out later but maybe you wanted to write it to a file or a database -- in that case, having it in string format is handier. Likewise, the constructor to the Group class lets you set the name, gid, and members manually (useful if you're debugging the script from the interactive interpreter, or perhaps if using Group from another script), but if you don't, it just sets them to empty strings. In that case you can use the convenience method setValuesFromLine and pass in a line read from a /etc/groups file. Again, this is Group-spec! ific behavior so it's nice to stuff this code in with the Group class where it can be used anywhere the Group class is used. Anyway, those are just some thoughts on how I implemented your same script in Python. In fact, most of my simpler Python scripts end up looking a lot like this -- they consist of one or more classes that define the objects in question, and then a simple main() function that actually performs the processing using these objects. Although this is a little more verbose than your
Re: Python help
Paul Lussier wrote: I'd like to see/hear others ideas on how to write this same script. I'm most interested in improvements or commentary on why what I did is either right, wrong, interesting, stupid, etc. Below you'll find my stab at it -- it might not be correct, or even run, b/c I haven't actually got an /etc/group file to try it out on right now. There's a couple best practices for Python that I've picked up over the past couple of years that I used, too: 1. Unless you're literally writing a one-shot throwaway script to do some task that you'll probably never do again, try to write your script as a set of functions or classes rather than a start-to-finish script. This is because every Python script can be imported into any other Python script as a module (same can be done with Perl using a package declaration if I'm not mistaken) by using import myscript where the script file is named myscript.py and is located somewhere on your PYTHONPATH (an environment variable that tells the Python interpreter where to search for modules to import, that by default includes only the current working directory). 2. If you're doing the above, then the way you actually invoke your script is by providing a main method (or any other name you prefer). Then, the only part of your script that is *not* located in a function or class definition is the line if __name__ == '__main__': main(), which simply invokes the main() function you defined if the name of the magic __name__ variable is __main__. If you are invoking the script directly (rather than importing it into another script as a module), then this conditional test will prove true, and your main() function will be executed. 3. I read somewhere that a cool trick is setting the arguments of a Python script as the default arguments of main() if it is not passed any arguments explicitly. The advantage of this is that, if you're debugging your script in the interactive interpreter, you can call the main() function on your script (by importing myscript and then calling myscript.main()) and pass it a list of any arbitrary arguments you like. If you pass arguments into main(), they will be used instead of sys.argv (which is good because in the interactive interpreter, there are no arguments in sys.argv). 4. I know that a class can be used as a struct in the way you were using, but I don't generally use it as such -- the reason I use Python is because it's very straightforward and easy to read, and I find that such a use of a Python class is a little un-obvious. In fact, that technique is often used only to show how Python lets you dynamically create object attributes at runtime, though I have seen it used in real-life Python scripts too. For my approach, I created a Group class in my version of your script, which of course you can now use in any Python script that imports your script by referencing it as myscript.Group. A dict is a more straightforward way to use a simple struct-like object, as Cole suggested. The overhead of using a class over a dict is not very significant, though, since Python's classes are really just customized dict types behind the scenes. But you don't need to know that. And because dicts are used so extensively in Python, they are ultra-opt! imized by the Python developers. (Also, if performance is a big concern, then you can always write some of the code in C and then import it into your Python script as a module.) 5. I try to bundle up behavior that is specific to an object into the class that defines that object, rather than act upon the object from the outside. I tried to do that here, by providing a toLdifFormat() method on the Group class. The advantage to this is that it simplifies the code that's making use of the Group objects. Also, returning a string from this method rather than printing it makes it more flexible, since you can always print it out later but maybe you wanted to write it to a file or a database -- in that case, having it in string format is handier. Likewise, the constructor to the Group class lets you set the name, gid, and members manually (useful if you're debugging the script from the interactive interpreter, or perhaps if using Group from another script), but if you don't, it just sets them to empty strings. In that case you can use the convenience method setValuesFromLine and pass in a line read from a /etc/groups file. Again, this is Group-spec! ific behavior so it's nice to stuff this code in with the Group class where it can be used anywhere the Group class is used. Anyway, those are just some thoughts on how I implemented your same script in Python. In fact, most of my simpler Python scripts end up looking a lot like this -- they consist of one or more classes that define the objects in question, and then a simple main() function that actually performs the processing using these objects. Although this is a little more verbose than your
Re: Python help
Paul Lussier wrote: I'd like to see/hear others ideas on how to write this same script. I'm most interested in improvements or commentary on why what I did is either right, wrong, interesting, stupid, etc. Below you'll find my stab at it -- it might not be correct, or even run, b/c I haven't actually got an /etc/group file to try it out on right now. There's a couple best practices for Python that I've picked up over the past couple of years that I used, too: 1. Unless you're literally writing a one-shot throwaway script to do some task that you'll probably never do again, try to write your script as a set of functions or classes rather than a start-to-finish script. This is because every Python script can be imported into any other Python script as a module (same can be done with Perl using a package declaration if I'm not mistaken) by using import myscript where the script file is named myscript.py and is located somewhere on your PYTHONPATH (an environment variable that tells the Python interpreter where to search for modules to import, that by default includes only the current working directory). 2. If you're doing the above, then the way you actually invoke your script is by providing a main method (or any other name you prefer). Then, the only part of your script that is *not* located in a function or class definition is the line if __name__ == '__main__': main(), which simply invokes the main() function you defined if the name of the magic __name__ variable is __main__. If you are invoking the script directly (rather than importing it into another script as a module), then this conditional test will prove true, and your main() function will be executed. 3. I read somewhere that a cool trick is setting the arguments of a Python script as the default arguments of main() if it is not passed any arguments explicitly. The advantage of this is that, if you're debugging your script in the interactive interpreter, you can call the main() function on your script (by importing myscript and then calling myscript.main()) and pass it a list of any arbitrary arguments you like. If you pass arguments into main(), they will be used instead of sys.argv (which is good because in the interactive interpreter, there are no arguments in sys.argv). 4. I know that a class can be used as a struct in the way you were using, but I don't generally use it as such -- the reason I use Python is because it's very straightforward and easy to read, and I find that such a use of a Python class is a little un-obvious. In fact, that technique is often used only to show how Python lets you dynamically create object attributes at runtime, though I have seen it used in real-life Python scripts too. For my approach, I created a Group class in my version of your script, which of course you can now use in any Python script that imports your script by referencing it as myscript.Group. A dict is a more straightforward way to use a simple struct-like object, as Cole suggested. The overhead of using a class over a dict is not very significant, though, since Python's classes are really just customized dict types behind the scenes. But you don't need to know that. And because dicts are used so extensively in Python, they are ultra-opt! imized by the Python developers. (Also, if performance is a big concern, then you can always write some of the code in C and then import it into your Python script as a module.) 5. I try to bundle up behavior that is specific to an object into the class that defines that object, rather than act upon the object from the outside. I tried to do that here, by providing a toLdifFormat() method on the Group class. The advantage to this is that it simplifies the code that's making use of the Group objects. Also, returning a string from this method rather than printing it makes it more flexible, since you can always print it out later but maybe you wanted to write it to a file or a database -- in that case, having it in string format is handier. Likewise, the constructor to the Group class lets you set the name, gid, and members manually (useful if you're debugging the script from the interactive interpreter, or perhaps if using Group from another script), but if you don't, it just sets them to empty strings. In that case you can use the convenience method setValuesFromLine and pass in a line read from a /etc/groups file. Again, this is Group-spec! ific behavior so it's nice to stuff this code in with the Group class where it can be used anywhere the Group class is used. Anyway, those are just some thoughts on how I implemented your same script in Python. In fact, most of my simpler Python scripts end up looking a lot like this -- they consist of one or more classes that define the objects in question, and then a simple main() function that actually performs the processing using these objects. Although this is a little more verbose than your
Re: A good LINUX magazine ?
On Dec 25, 2003, at 2:54 PM, [EMAIL PROTECTED] wrote: Not sure where else it can be found, but I know that SoftPro carries it, at least in the Burlington store. Note however that they moved to Waltham. Not much farther, but not quite as convenient to stop by on the way to or from Boston. http://store.yahoo.com/softpro/burlmove.html Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Kind of OT: Wierd emails... Virus? Probe? ???
On Dec 17, 2003, at 11:16 AM, Brian Chabot wrote: Hey, all... I just noticed something interesting in my spam filter and was curious if anyone here might know what it's from. I have several emails that seem to be missing rather important header info... like subjects... and the *body*. What is the same is: A seemingly random common name for the username in the email address @mydomain. Strangely, I got back to my computer after a few days away and noticed two or three of these very same emails. And, like with you, they appear to be coming from some other address at my domain (in my case, @mac.com). No content. No apparent reason. But, forged or not, they're legitimate email addresses, or at least, legitimate mac.com accounts, since by tracing back to the mac.com HTTP server and guessing with the username, it brings up their home page(s), where applicable. ??? Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Personal database software for *nix?
On Nov 24, 2003, at 10:10 PM, [EMAIL PROTECTED] wrote: Hello world, Does anybody have any knowledge on personal database software for Linux? I just-now made up the term personal database software, although I would be astounded if I'm the first person to do so. I'm thinking about something kinda like Microsoft Access or Borland Paradox, but I'm not much interested in the programming/SQL stuff (although I certainly won't complain if it is there). All I want is something that will let me quickly and easily create fields in a table, and link between tables. Your description reminded me of an open source project called SQLite, which is basically a relational database that is not a server -- an embeddable database (embeddable in the sense that you can embed it into an application so that the user doesn't have to go through all of the installation and configuration of MySQL, etc). SQLite is written in C but there are many libraries that provide access to it from other languages (Python, Perl, etc). http://www.hwaci.com/sw/sqlite/ But it's not a visual tool like you describe. However, I did a little googling on SQLite and found a project called SQLite Database Browser. It's implemented in Qt so it meets your no-Java no-HTML requirements, but runs on Linux, MacOSX, and Windows. But I have no firsthand experience with it so I can't attest to what it's really like. http://sqlitebrowser.sourceforge.net/ If you try it out, would you mind posting your opinions? Regards, Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Domain Registrar?
On Nov 7, 2003, at 12:53 PM, Charlie Farinella wrote: I've found godaddy.com to be inexpensive, AND... they even offer knowledgeable support. Twice, I've done Dumb Things(tm), and their tech support showed me the way to enlightenment both times. And I've never had a glitch with them yet. I like 'em. 2 recommendations for godaddy is good, but netcraft reports that they're running Windows and I'm having trouble with that. Should I care? I've been using easyDNS.com and really like their service. But, I don't think it's as cheap as a lot of other registrars that can be found out there, and have no idea what system software they run (though I'd be surprised if it wasn't Linux). Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: PHP question RH Linux ---a bit ot---
On Thursday, November 06, 2003, at 03:10PM, Greg Rundlett [EMAIL PROTECTED] wrote: Anyway, you don't even need to know where the temp location is. You should use the $_FILES super global to access and manipulate the uploaded file. Greg's right. Also, you can set the MAX_FILE_SIZE in a hidden form field to tell PHP what limit to accept... Of course, be careful not to rely on this for any kind of security, since it's easy for a user to send whatever value they wish for the MAX_FILE_SIZE parameter. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: CSS Question
On Friday, September 19, 2003, at 10:04 AM, Cole Tuininga wrote: I would have imagined that with css (using inline style sheet defs), I would simply do this: div style=text-align: center table . . /table /div This works just ducky in Netscape 4.7x, but not my current version of mozilla. Does anybody know what I need to do instead? I don't want to static position the table, I would like it to be centered. This problem has plagued me, I have solved it, and then I have forgotten how I solved it and had it plague me again. I am pretty sure that the workaround* is to use div style=margin-left: auto; margin-right: auto; table ... . . . /table /div But YMMV since I can't remember for sure. text-align only applies to text. Erik * I find it ironic that workarounds in CSS are sometimes necessary, since one of the reasons people sometimes use CSS is to avoid misusing tables for composing a design in HTML, which was itself a workaround for the limitations of HTML. ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: OT - Re: Dimensional Warp Generator...
mike ledoux wrote: Apparently, this guy wasn't (just) doing this to collect email addresses, he really thought he'd be able to obtain the parts he needed for his time machine: http://www.wired.com/news/culture/0,1284,60141,00.html He was a traditional spammer too. I don't sympathize with the spamming, but from following some of the links in the Wired article, it looks like he suffers from paranoia or some other form of mental illness. A recent CRYPT-O-GRAM gave brief coverage to this topic from reader letters after publishing a letter that may have originated from someone with similar problems: http://www.counterpane.com/crypto-gram-0308.html#9 (search for the string I haven't a clue, really) Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: q for the C hackers
Tom Fogal wrote: I'm just interested in hearing about whether one is more appropriate than the other in some contexts. Thanks. Generally, I would use #defines for anything but function parameters. Passing things as a constant reference (const type val) is a good way to avoid passing a large value without the overhead of actual passing it. I understand what you are saying, about passing a reference to something rather than passing the thing itself. My understanding is that this is because the value of a reference is a memory address, which is usually smaller than say, some large value (please correct me if this is incorrect). But why does it have to have const placed there? This seems like it should prevent the value from being modified in the body of the function somehow, but is it required or are you suggesting it as good practice? Unfortunately, references do not exist in C alone (they were introduced in C++) I seem to be confused about the difference between references and a type's address. Are you saying that val is a reference, and that this is different from the address of 'val'? I thought that this meant the address of 'val'. Thanks everyone for contributing to this discussion. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: q for the C hackers
Tom Fogal wrote: The bit about memory addresses instead of some large value is entirely correct. Practically however, this will only be better when passing a value larger than the register size of the architecture you are on. For instance, on ix86 linux, all pointers are 32-bit integers. Thus passing a constant reference to another integer still means you have to pass an integer to the function, thus saving nothing. This is commonly used when you have a large record or object. Okay, that makes sense. Fundamentally, there seems to be little difference between passing a pointer to an object, and passing the address of the variable holding that object's value. I seem to recall that there literally *is* no difference, actually -- a pointer is just the address of a variable IIRC. But I'm glad you confirmed this. The const is purely optional; you could just as easily remember yourself that 'hey, i dont want to change that value in this function' and simply not do it. The justification i was given for such usage is that someone who is not you can quickly look at the function header/prototype and see, 'oh, this value is const, it wont change when i pass it to the function'. I had forgotten about the header/prototype. Yes, it seems desirable to use 'const' in any function declaration that doesn't modify the parameters, as a way of communicating to others that the parameters will not be modified. I will get in the habit of using 'const' in function parameters. (I don't know C++, but let me take a guess at something -- that, in C++ making a passed reference a constant by using 'const' in a function declaration doesn't make any assurances that the object which the reference points to will not be modified, only that the reference itself will not change. In other words, it is much like passing a 'final' reference in Java.) Btw, a similar gain can be obtained via pointers, so C programmers aren't left out =). And this is what I am more used to seeing -- it appears that usually a function will be written to accept a pointer, rather than a value's address, even if they are the same thing. is a reference, and that this is different from the address of 'val'? I thought that this meant the address of 'val'. Oh yes, this is a source of much confusion. You see, C++ introduced this idea called a 'reference', which, for all intents and purposes is a pointer, but you dont have to dereference it as such. I think I'm going to stay away from C++ for the moment, at least until I have a better grip on C and Objective-C. (Coming from a Java perspective, Objective-C seems a little more straightforward to me than C++, esp since it doesn't seem to have changed any of the rules of C.) Thanks again Tom and everyone. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
q for the C hackers
When I want to define a constant value in Java, such as a magic number, I usually use public static final: public static final int NUMBER_OF_UNITS = 8; However, what is the convention in C? There seem to be two fine ways of doing it -- using the preprocessor, or the const keyword: #define NUMBER_OF_UNITS 8 const int NUMBER_OF_UNITS = 8; I'm just interested in hearing about whether one is more appropriate than the other in some contexts. Thanks. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: OT: Fox Trot
On Thursday, August 14, 2003, at 12:54 PM, Michael Costolo wrote: Linux in the funnies today: http://www.ucomics.com/foxtrot/index.phtml Actually I remember having a Foxtrot comic hanging on the wall of an apartment I lived in back in 1998, where Jason is trying to install Linux on his iFruit... not sure how to search for something like this in the archives though. IIRC from an interview I read, Bill Amend stated that he pays attention to issues and topics in tech circles, though he is not actually a Linux user himself (or wasn't, when I read that interview). Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Spam works... and that's the crux of the problem
Larry Cook wrote: Since Spam has been a recent topic, I thought I'd share this article about a business in Manchester that uses Spam: Wow. That is really bizarre. An honest state chess champion acting as the mastermind, his teenage sister filling the orders, and a former skinhead acting as the evildoing henchman, make up the backbone of the operation. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Resources on reverse engineering?
Scott Garman wrote: Hi all, I have become interested in learning about reverse engineering and decompilation techniques, particularly for the purpose of studying programs that exploit security vulnerabilities (including trojans, viruses, and worms). There was a slashdot story about it not too long ago: http://developers.slashdot.org/article.pl?sid=03/07/06/2014230 Here's the meat: http://www.acm.uiuc.edu/sigmil/RevEng/ Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: I HATE SPAM (was Re: Mouse swapping on a laptop)
On Sunday, August 3, 2003, at 09:23 PM, Travis Roy wrote: The main thing I'm trying to say is that we should somehow block email addresses from showing up on the archive website rather then have people stop it from archiving their messages. The archive becomes pointless if a large number of people's posts don't even show up on it. This sounds like a great idea. However, I would prefer not to see a login system/subscriber-only archives if possible. I understand that these are the most effective means of preventing others from using the archives for nefarious ends, but they are also an effective mans of preventing others from using the archives for benevolent ends. Specifically, I occasionally pass hyperlinks to archived material on various mailing lists to which I'm subscribed in email- or chat-conversations with nonsubscribers. Such as Well, why don't you check out this post by Derek Martin, which does a great job of explaining this topic... insert hyperlink here. Also, a lot of great information that one can get from searching the web comes from publicly-archived mailing lists. For me, this is especially when I'm trying to track down the reason for some bug or exception stack trace, etc. I agree that spam sucks and I support reasonable efforts to thwart it (including preventing the email addresses from being released in the first place), but I worry that some of the ways to stop spam will just end up making the web a less powerful resource for getting information. And, if someone else is making a public archive of this mailing list's content, there's no way to force them to use the same protections, so in the end the effort might prove fruitless. Just a consideration. Education is probably the best weapon there is, even though it is one of the more effort-intensive and least automatable (scriptable?). Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: The lack of need for Caps-Lock (was laptop keyboard replacement)
Kevin D. Clark wrote: BTW, as a side comment: I like emacs, and I respect the fact that other people like different editors. For me, it isn't so important that people use a certain editor, but it is important that they learn how to use it *well*. I like emacs too, and use it whenever I'm logged into a server w/ssh, but I don't think I know it too well -- I have no idea what those keystrokes do!! ;) Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: I need suggestions as to where to get a replacement laptop keyboard
Richard Soule wrote: Jeff Kinz wrote: http://www.kinesis-ergo.com/professional.htm $350. First time I've seen a keyboard more expensive than a computer! :-) Only $239 for the essential which has the same layout and almost the same features: I never realized they had a cheaper version (though I never really looked hard either). That's great! I would save up and it would be my next big purchase -- if they offered USB. :( My main machine is an iBook, and doesn't have a PS/2 port. Though maybe there's an adaptor this keyboard combined with a laptop stand to bring the screen closer to my face would be *perfect*. Thanks for pointing it out. Just my perspective... I'm sure other folks will have different ones. No, you know what? I totally agree with what you just said. I would rather have a decent keyboard (even at such a steep price [$239 is a lot to me]), since it's my primary means of communicating to the computer. Of course, I'd carry it back and forth to work every day to get the most bang for my buck. Make a shoulder strap for it and everything, so I can look like an Elven Decker Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: The lack of need for Caps-Lock (was laptop keyboard replacement)
[EMAIL PROTECTED] wrote: In a message dated: Thu, 31 Jul 2003 11:15:09 EDT Erik Price said: I like emacs too, and use it whenever I'm logged into a server w/ssh, but I don't think I know it too well -- I have no idea what those keystrokes do!! ;) You should spend some time using the Emacs tutorial: C-h t should get you there. Thanks for the tip Paul, but I did it a couple years ago. It is the single reason why I am addicted to emacs keybindings and have to reconfigure every editor I try to use them (and why I can't use vi very well). I [think I] know pretty much all the key commands featured in this tutorial, like C-G and C-B etc, but IIRC it doesn't go into these more advanced commands very far, and I've never really had the opportunity to hone them. I have been meaning to spend more time learning Objective-C, and brush up on my C programming. I vowed to use emacs when I do, simply to force myself to learn a lot of these shortcuts and tips. (Of all the editors or IDEs I've used [not very many], emacs and vi seem most ideal for C programming.) Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: The lack of need for Caps-Lock (was laptop keyboard replacement)
Bob Bell wrote: And I actually don't see the big deal using your left pinky to hold down the shift key while you type. Granted, the sample line had a LOT of upper-case characters, and hitting caps-lock may be simpler, but I tried it both ways and holding down shift didn't really seem to slow me down noticeably. shrug Maybe it's because I'm 6'8 and have huge hands... I hear you on the big hands front, but the reason I like caps lock is because I use the right-side shift key for any capitalized letters that need to be typed with the left hand, and the left-side shift key for capitalized letters that need to be typed with the right hand, so I can't just hold down one shift key (per the habit drilled into me by typing class in highschool) -- I'd have to switch sides every time I typed a key that was on the opposite side of the keyboard. This practice does cause the least strain on the fingers (because that way you are only extending the pinky of the hand that is not simultaneously reaching for another key with another finger). ;) Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: I need suggestions as to where to get a replacement laptop keyboard
Richard Soule wrote: Erik Price wrote: I would save up and it would be my next big purchase -- if they offered USB. http://www.kinesis-ergo.com/advantage.htm It's a bit more at $299, so I would probably go with some type of adapter: http://www.maltron.co.uk/USB-PS2pic.html argh! Now I need to start saving. Thanks Richard! Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: The lack of need for Caps-Lock (was laptop keyboard replacement)
Bill Freeman wrote: Then the very next keystroke that you should learn is C-H K, which runs describe-key, which prompts for a key (combinatione), and displays the on line documentation for the command bound to the key. That's awesome! Thanks! Some initial playing with this command seems to indicate that a lot of the keystroke commands are really shortcuts for interactive compiled Lisp functions. I didn't know that. Looking forward to getting some more time to learn more of these. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
interested in buying cheap linux laptop
Hi folks, I don't have much familiarity with PC hardware, but I'd like to purchase a cheap (used, etc) machine to run Linux on. Since it's for [personal] development only, my only performance requirement is that it be capable of running a relatively recent Linux with X11 and the development tools (GNU, Perl, Python, J2SDK), and hopefully Eclipse (but I can use emacs if Eclipse demands too much). I'm emphasizing affordability over performance. Specifically I'd like to try out the Oracle 9i for Linux that was distributed on CD ROM at the quarterly meeting this week, and the Oracle application server that came with it. I prefer a laptop simply because space is scarce and I move around a lot, and also so that I can bring it to work (one thing I'd like to do is see how easy/difficult it is to migrate my JBoss/Postgres-using project to Oracle). Again, this machine would service no clients except maybe from one other computer for testing (so it doesn't need to have the hardware to actually run as a server). Are there any recommendations for area stores that sell decent used merchandise, or other hidden deals? I'm hoping I can find something for only a couple hundred bucks, but let me know if that's simply unrealistic. Thanks, Erik PS: also I'm thinking of going with Red Hat since, from what I gathered the other night, that'll probably interoperate the most smoothly with Oracle software. Any thoughts on this are welcome too. ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: [gnhlug-announce] GNHLUG BBQ - Sat 23 Aug 2003
Greg Kettmann wrote: Great idea. Is the idea that spouses or kids might be welcome as well or is this more for Linux afficionados? Not trying to complicate things, just clarifying. Or as Uri Guttman put it, spice and spawn. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: [gnhlug-announce] Books for review and door prizes
Morbus Iff wrote: Python in a Nutshell Linux Server Hacks Learning Perl Objects, References Modules Linux Security Cookbook Python Cookbook Google Hacks Incidentally, I contributed to Linux Server Hacks, and did Perl consulting on Google Hacks ;) Plus co-wrote MacOSX Hacks! Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Graphics blips
Kevin D. Clark wrote: Mark Komarinski [EMAIL PROTECTED] writes: Perl with a code formatter? I think that's one of the signs of the apocalypse. Another sign would be a Python one-liner [EMAIL PROTECTED] /cygdrive/c/jboss/jboss-3.2.1/docs/dtd $ python -c 'print hello world' hello world ;) Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Mozilla is leaving AOL
[EMAIL PROTECTED] wrote: Big news! Check out http://www.mozilla.org This hasn't hit /. yet. I just heard on IRC from some of the mozilla folks! Nice new site layout too! Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Walmart.com sells Microtel PC with SuSE Linux software
Derek Martin wrote: If walmart moves into a town predominated by little shops, and they all can't compete with walmart (and rest assured they can't), then the owners of those shops will have to close down, and go get jobs at walmart. Their incomes will likely be reduced by between 50 and 75 percent, and along with it their disposable incomes will be drastically reduced, meaning they have almost no money to spend on things besides basic necessities. Ironically, the average price of goods is *not* less at Wal-Mart than at pre-existing stores. I read an article on it a couple years ago -- Wal-Mart specifically marks down the goods that are sold at the local stores, in an attempt to put them out of business, since the chain-owned store can operate at a loss until those stores are gone. Once they're gone, the new Wal-Mart then re-adjusts the prices, often to become even *higher* than they were originally, so the consumer just ends up getting the shaft. Also, next time you walk through your local Wal-Mart, note how the amazing prices are all on the end-caps of the aisles and the attention-grabbing product stands in the middle of the main aisles. Once you get deep into the store, you'll find that the average price of a Wal-Mart item is not any better than the average price of an item at any other store. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Graphics blips
On Tuesday, July 15, 2003, at 10:32 PM, Mark Komarinski wrote: This is a real hard problem to describe, but it's really annoying. It seems to happen with only HTML code that I write. Take a look at http://www.wayga.org/~mkomarinski/julie.php Take a look between the images, in the lower right hand corner outside the border. See a little blue dash? It's an underline from the hyperlink (anchor tag) wrapping the image tag. I'm not sure why it appears, but it might be due to the newline occurring within the anchor tag. The easiest way to get rid of it is to define a simple style rule in your head section declaring that anchor tags should not have an underline: head titleMark Komarinski's Pictures/title style type=text/css a { text-decoration: none; } /style /head That should fix it (untested). Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Database User Groups anyone?
[EMAIL PROTECTED] wrote: Hi all, Does anyone know of any Database user groups in the greater Boston area? Thanks, There is also the NH oracle user group (http://nhoug.org/). But I would be interested in hearing about a more general database-oriented user group myself. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Hello. Is anyone there?
On Monday, July 7, 2003, at 10:09 PM, Steven W. Orr wrote: I've had no email from gnhlug in over at least a month. Can anyone hear me? I hear you. There has been quite a lot of mail in the past 30 days or so -- I'd guess over 300 msgs. Don't forget you can always check the archives. http://www.mail-archive.com/index.php?hunt=gnhlug Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: OT from Tokyo
Karl Hergenrother wrote: Sorry you were all so offended. I will go back to lurking. internet email great tool for conversation context sometimes lost Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: OT from Tokyo
Erik Price wrote: Karl Hergenrother wrote: Sorry you were all so offended. I will go back to lurking. internet email great tool for conversation context sometimes lost Draft 2: wonders of email great tool for discussion, but context sometimes lost I should go into business. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: HTML/CSS question
[EMAIL PROTECTED] wrote: On Tue, 1 Jul 2003, at 11:22am, [EMAIL PROTECTED] wrote: Basically, I want: Term:Some long description here which may or may not span multiple lines, but regardless, should be left justified. Have you tried the DL, DT, and DD tags? They are for definitions. (Definition List, Definition Term, and Definition Description, respectively.) Are they deprecated in XHTML 1.0 Strict? I didn't see them in the DTD. But they are the ideal tags for this application. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: HTML/CSS question
[EMAIL PROTECTED] wrote: On Tue, 1 Jul 2003, Ben == [EMAIL PROTECTED] wrote: Ben I always keep a copy of the HTML and CSS spec's next to me. I Ben find them remarkably readable, for specification documents. Ben And, of course, they make excellent use of hypertext. :-) Pointer please :) One of the best sites on the internet for information of all kinds (ranging from XHTML/CSS to RSS or SVG) is http://w3.org/ , which is where they keep the specs and tons of articles, tutorials, and discussion information. http://www.w3.org/Style/CSS/#specs In the case of CSS, however, you probably want to use Eric Meyer's CSS guides, which use frames that point to the original specs so you can keep a TOC open while you browse -- actually makes jumping around the specs even easier: http://meyerweb.com/eric/css/references/index.html Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: HTML/CSS question
[EMAIL PROTECTED] wrote: On Tue, 1 Jul 2003, Erik == Erik Price wrote: Erik dt { float: left; margin: 3em } Erik dd { margin: 5em; } Doh Thanks, I'm obviously just learning the CSS thing, and it didn't occur to me to re-define the dt/dd tags :) Except, unfortunately, the above example doesn't render as I had intended (at least not in Mozilla 1.3). But perhaps you can play with some positioning to get it. Damn it, the whole point of CSS is to make things easier for the designer, and this seems like such a *simple* use case -- but I can't find any resources explaining how to do it! Btw, what the 3/5em? Well, I was just thinking that your term might not be wider than 2em, ems being the height of a capital M in whatever the current font/fontsize is, so this would put your term at 3em from the left and your definition at 5em from the left... sort of. It was a quickie. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: oo code in PHP5
On Sunday, June 29, 2003, at 10:17 PM, Greg Rundlett wrote: It features a new Zend Engine 2, with a slew of object-oriented features previously unavailable in PHP. In effect, the object-oriented features were completely overhauled, however backward compatibility was maintained. Pretty cool. It seems that PHP5 will have the OO convenience of Python but the same built-in web programming conveniences that have existed in PHP all along. I wonder if this means that they will start to make the PHP standard library more OO-like too (like Python or Java's standard libraries), for instance the numerous PHP functions that currently return arrays of data will now return proper objects. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: oo code in PHP5
On Monday, June 30, 2003, at 04:16 PM, Greg Rundlett wrote: I think so. Nice. I don't think it's all that bad to use an array of information vs a proper object (it's not that different from using structs in C), but if you're moving the language in that direction then why not take advantage of what it has to offer. It'll be especially interesting to see what the performance will be like. I never read anything concrete, but I had heard others' accounts of the fact that taking a pure-OO approach to PHP scripting in 4.x resulted in overall poor performance, though making moderate use of objects where appropriate was fine. This is one of those cases where an application server (like Weblogic or JBoss, or non-J2EE appservers like Zope) can really outshine standard webservers -- you have objects already instantiated and ready to do work before the request even comes down the pipe, whereas in a PHP script the objects are all instantiated and then garbage collected within the lifespan of the request. Given the popularity of PHP, I'm surprised I haven't heard of any PHP-language-based appservers -- are you (or anyone else) familiar with something like this? As opposed to using mod_php in Apache? I know a lot of the people on the PEAR-DEV list are fond of Java, and I had to remember the other day that PHP __is__ an Apache Software Foundation project (which has a lot of Java projects), which is to say that I think PHP is getting more and more like Java. I think that Java's popularity with users (programmers) is infecting the PHP community, but I am skeptical there is a direct connection between the Java Apache projects and the PHP apache project. In fact, I am subscribed to many of the major Jakarta Project mailing lists and, at least on the struts mailing list, PHP isn't regarded very highly. Which I find interesting, because J2EE (even simple servlet/JSP stuff) is way overkill for the majority of dynamic web page development. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
trains and toilets
After reading the parable (appendix C, Sconce's handout from Merrilug 6/25), I'm left puzzled by why mathematicians fail to see the point. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Really enjoyed Bill Sconce's Python talk last night...
Hewitt Tech wrote: It's been too long since I had the pleasure of hearing Bill Sconce deliver a technical presentation. This was the first Bill Sconce presentation I had ever heard, and it was certainly a pleasure. I look forward to part II, after everyone has had a chance to run through the exercises in the worksheet and pick up the basics. Do your homework and don't hesitate to post here if you have a question! As an aside, Paul I recommended a book to you last night about object oriented programming. The title is Beginning Java Objects: From Concepts to Code by Jacquie Barker. I must have left before this recommendation was made but I second it. I'd also like to tell a little story that segues interestingly from the discussion of Python to this book. Sometime in 2001 I decided to make the jump from PHP to J2EE after being dismayed at the small number of PHP job offerings I was seeing. ASP and J2EE were really the only two web programming skills in demand, and I wasn't interested in ASP. Learning a big language like Java sounded daunting, esp for a self-taught programmer, but someone told me there was a free book online that you could learn Java from (Thinking in Java by Bruce Eckel, http://mindview.net/). At this same time I was playing with Python in my spare time, subscribed to the Python tutor mailing list.[1] The nice thing about Python was that I was able to pick up the most basic concepts of OO very quickly: what is a class, what is an object, how is a class different from a function, etc. With the help of some sample code posted by the folks on the tutor mailing list, I finally got it, or at least the basics (how to create an object and invoke its behaviors). [1] Highly recommended. A mailing list dedicated to helping people of any skill level learn Python. http://python.org/psa/MailingLists.html#tutor Of course, to get started with J2EE I'd have to first learn Java, so I picked up Bruce Eckel's Thinking in Java book. However, after the first few chapters of this 1000+ page book, I realized I needed something a little bit more basic before I could really continue. So I picked up Jacquie Barker's book Beginning Java Objects, which was geared toward a complete OO newbie without being overly pedantic -- you still need to know the basics of programming (variables, functions, etc). The book is divided into three sections: 1) The terminology of OO - believe it or not, to get the most out of OO programming, you really do need to know the terms. What polymorphism means, why you might want to make certain class members private, what is a class member, the difference between a function and a method, and what an abstract class is (even in OO languages like Python or Objective-C that don't actually use them). 2) How to design your code using OO concepts, rather than start-to-finish procedural concepts. This section of the book also introduces the reader to UML, which is invaluable as a lot of the more advanced OO books use UML to more easily explain object relationships. 3) An actual implementation of OO concepts using Java. Note that, except for a short chapter in the beginning of the book, this is the _only_ part of the book that actually uses Java. You can read the first two sections, and maybe skim this one, and then happily apply the concepts to Python or other languages. In fact, you won't really learn the Java language from this book, only what you need to know in order to get through this chapter. So, while I had learned the basic idea behind classes and objects from conversations on the Python tutor mailing list, it was while reading Barker's book that things really fell together for me. After finishing it I picked up Bruce Eckel's book Thinking in Java where I had left off and was able to get a lot out of it, and learn Java. A couple months ago I took Sun's exam and became certified as a Java programmer, and I'm finishing up my first J2EE application at the place I am currently employed. I pretty much owe it to Barker and Eckel's excellent books. I even ended up buying the hardcopy of Thinking in Java about halfway through, it is very good. But it all started when I was using Python[2]. I couldn't agree more with Bill when last night he said that there is really no better language to learn the fundamentals of OO programming than Python. Python works just fine as a procedural scripting language too -- you can get a lot of work done without being aware of any of the object-oriented facilities. But when you're ready to take it a step farther, Python gives you a boost rather than making that step more steep than it has to be. Erik [2] To address one of the questions last night, I didn't need to buy a single book to learn Python. There really are dozens of tutorials on learning to program in Python, because one of the original aims of Python was to be a good starting language for
Re: [gnhlug-announce] Last minute reminder - MerriLUG meeting tonight
Greg Rundlett wrote: I was just about to ask if it was on. I will be there. Yeah Bill Sconce is discussing Python! Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Stupid browser tricks
Michael O'Donnell wrote: Bookmarklets are way cool! Here are some more: http://www.squarefree.com/bookmarklets And some more by Kevin Smith, who calls them favelets: http://centricle.com/tools/favelets/ Most are oriented toward assisting web developers in plying their craft. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Data retrieval from dead laptop
[EMAIL PROTECTED] wrote: Will it just not boot? I highly recommend getting a copy of Knoppix on CD and attempting to boot from that. My wife's laptop died not too long ago with a bad hard drive failure. I was able to boot off of CD with Knoppix, which correctly identified all the system hardware, allowed me easily start the network stuff, mount the NTFS file system, and rsync all the directories she needed to my server upstairs, and make it available to her via Samba so she could at least access it from her Windows system :) Man! I wish I'd thought of that a few weeks ago! I was in a similar situation to the OP. I'm going to keep a copy of Knoppix in my car's emergency kit. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: CSS Question
[EMAIL PROTECTED] wrote: So, anyone have any really good links for learning CSS? (Coles ref to w3schools already noted :) This one might be too basic/introductory for you, but it's very well-written and can at least cement the knowledge that you already -do- have. I found it very useful when first learning CSS: http://www.w3.org/MarkUp/Guide/Style.html HTH, Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Free brewing kit
Michael O'Donnell wrote: This is definitely OT but I'd be pleased to think that somebody in the GNHLUG was able to snag this stuff: You know, that might be a cool activity for a GNHLUG social. There's a beer-brewing place in Nashua, and you can do group-brews where corporate/religious/other parties can go there and make the beer one night (they show you how to do everything and provide the materials), and then a couple weeks later you go and pick it up. It's like $25 or something depending on how many people do it. Disclaimer, I've never actually done it, but I've heard about it. New Hampshire's Finest Open Source Beer. LinuxBeer. BrewLinux. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: CSS Question
Greg Rundlett wrote: Sitepoint is hawking a book on the subject, and will let you download the first four chapters. http://www.sitepoint.com/ Of course their site is done with minimal use of tables. I was extremely impressed with the sitepoint.com website makeover, it looks incredible but like you said, makes almost zero abuses of the table tag. I somehow overlooked this book the last time I was at their site. As another person who is interested in learning how to use CSS to overcome table tag addiction, I will check it out. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Free brewing kit
[EMAIL PROTECTED] wrote: Other than that, it's not bad. As for the price, well, it depends upon what you brew. I've left the place having spent $200 between the beer and bottles, and I've walked out for as little as $50. And I always leave with far more beer than I can drink! I still have about a case or so from the last time I brewed there, and that was over 2 years ago :) Hey, if you're thinking of giving it away free as in beer... bah dump PSH! ;) Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: CSS Question
Cole Tuininga wrote: As I understand, the correct way to do it now would be with style sheets. However, I can't seem to figure out the attribute to use. The closest I could find was text-align, but that seems to only work on text (which does make sense). I've been using www.w3schools.com (a very handy reference) to pick up xhtml and css, but I couldn't find anything about this in there. Anybody have any hints, pointers, etc? The CSS2 spec lets you get really detailed about exactly where you want stuff to go -- but most browsers don't have full support for it yet. But it sounds like you've discovered float does the job. If you ever want to center-align an image, one recommended way is to set its margin-left and margin-right properties to auto. This is a clip from the CSS on my personal site (which has a centered image): div.glamour img { border-color: #FFF; border-width: thin; } div.glamour p { width: 35em; text-align: center; margin-left: auto; margin-right: auto; } I'm centering the entire div whose class is glamour but you can equally apply this to an img tag. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: postgresql
Cole Tuininga wrote: I agree that it has some great features, but when we looked into using it, we found some serious drawbacks to it. If anybody has comments on these, I'd be very interested to hear them. I don't have any comments except to say thanks for mentioning them Cole, because I didn't know about any of these. So, just out of curiosity, which database(s) do you prefer*? Again, I've only used MySQL 3.2.x and HSQLDB so experimenting with some of Postgres's features has been quite a bit of fun, but I haven't done any real testing or taken a serious look at it. I'm using it as the back-end for the project I'm working on, and none of the mentioned problems are real showstoppers -- but I've also been careful to make sure that the project abstracts this enough to make it trivial to use another DB. (* don't feel you have to limit your answer to OSS DBs, though of course those are always preferred [to me] -- but I personally wouldn't be interested in any DB that doesn't at least run on Linux.) Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: postgresql
Sharpe, Richard wrote: Erik I am a DBA and have been for over 20 years and my all time favorite RDBMS is DB2 and now especially that it runs on LINUX and that the LINUX flavor of DB2 is enjoying much attention from IBM, I think it is hands down better than Oracle. Thanks for your thoughts Rich. What are some of the things you like about it? One thing I have noticed about DB2 is that it isn't mentioned as often as Oracle/SQLServer/MySQL in the places I tend to frequent online (mailing lists, sites, etc), but as an IBM offering it seems pretty interesting nonetheless. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: PDA Suggestions
[EMAIL PROTECTED] wrote: My personal preference is anything PalmOS based. It's simple, well supported, and has all the features you requested. I have yet to see why anyone would *need* one of these Linux based PDAs. They seem like total overkill, and they're expensive. Word to that. I have had a PalmOS-based Treo for a couple of months now. I have not had the time to learn about any cool power-user apps for it, or if it has any advanced features -- the only thing I have done is stored my contacts, appointments, and to-dos in it. Oh, I did find a freeware flash-card application and used it to study for the SCJP, it worked quite well for that purpose. At some point I would like to spend some time learning about ways to make better use of it, but for now it has replaced my Franklin planner. (Which I am actually somewhat sad about, because I had an emotional attachment to it -- and it could hold paper documents, stamps, etc, which the Palm cannot.) Erik PS: I like the treo enough that I would upgrade to the phone version if Treo supported the phone company I subscribe to. The keyboard is nice. ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
OT fried chicken
Jason Stephenson wrote: Entirely OT, I want to add that if you've never had real, southern fried chicken or ckicken fried in a pressure cooker, then you haven't had fried chicken. It's best, of course, if the bird was raised free range. The industrial stuff that you generally find in your supermarket has no flavor. Fried turkey is pretty gol'danged good, too. :-) I'm not big on fried food but I'd try it if it was authentic the way you describe. I've only had the stuff from the KFC at the Simoneau plaza in Nashua. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Dvorak Predicts Death of Linux
On Wednesday, June 4, 2003, at 08:08 AM, Jerry Feldman wrote: On Wed, 4 Jun 2003 07:21:57 -0400 Sharpe, Richard [EMAIL PROTECTED] wrote: Dvorak Predicts Death of Linux Dvorak is a schmuck. I'm not saying this just because of this prediction but also after having read some of his other articles on various things. This seems to be the general consensus of the MacOSX geek community as well. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Maddog at work.
On Monday, June 2, 2003, at 04:30 PM, [EMAIL PROTECTED] wrote: Glanced at the cover of EE Times this week, and saw Maddog weighing in on the whole SCO thing. Check out the article (and picture) at http://www.eetimes.com/story/OEG20030527S0020 Thanks for posting that. Though the article doesn't mention the Novell announcement from last week. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Book swap?
On Monday, June 2, 2003, at 09:22 PM, Brian wrote: I have some books here, mostly of the 4ish-year-old vintage that I was wondering if anyone would be interested in? I'd preferably like to swap them for something (anything) even remotely useful/intriguing/interesting but am open to all suggestions, including impassioned pleas for outright donation. I'd like to get some more in-depth javascript books, anything security related, odd bits of hardware, beer, etc. It doesn't get name-dropped as often as the Camel or Llama or Ram books, but the Rhino is simply an awesome JavaScript book. It's the only JavaScript book I've read, and it's excellent. Very in-depth. Not really a cookbook, though, rather it should fill in any of the holes you may have had about the language or its capabilities. If you don't find any takers, don't rule out the library -- a great place to unload books you'll never open again. I remember first reading Learning Perl in the Nashua Public Library (I don't live in NH so I couldn't check it out). Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: AOL off the air?
Chris wrote: Michael O'Donnell wrote: I can't do any DNS lookups for any machines in any domain associated with AOL. I'd join you all in the unison chanting of good riddance! except that many of my relatives use AOL and all 4 nameservers for cnn.com are AOL machines. Any idea what's going on? Use Foxnews.com, much less biased anyway :-) Not likely -- FOX is owned by the _other_ mogul (Rupert Murdoch). Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: More SCO news
[EMAIL PROTECTED] wrote: In a message dated: Wed, 28 May 2003 11:34:29 EDT Michael O'Donnell said: Bob: Hope Rob don't say balls nasty. Rob: -Balls- nasty! Bob: He don't shiv. I'll bet this is high-larious, 'cept fer I don't get it... Well, I wouldn't say high-larious... Mmmm, yeah. That was my reaction too. I even tried googling for the various phrases, but turned up nothing of interest. Come on, you guys never read Frank Miller's Dark Knight Returns (Which inspired Tim Burton's Batman movie, since you might not know that either) Probably one of the greatest stories I've ever read, irrespective of medium. The book's been reprinted plenty of times, you can probably get it at most public libraries. The quote is from a conversation between two members of the Mutants gang, observing the caped crusader beating the shit out of their leader. They are dumbfounded, because Batman is 40 years old and the gang leader is an incredibly strong and violent fighter. The statement is a kind of respectful astonishment. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: More SCO news
Tom Buskey wrote: Michael O'Donnell wrote: Bob: Hope Rob don't say balls nasty. Rob: -Balls- nasty! Bob: He don't shiv. I'll bet this is high-larious, 'cept fer I don't get it... ___ It's from Batman: The Dark Knight Returns by Frank Miller. It's an excellent treatment of Batman, Joker, etc if they existed in the real world. They're all much older and mostly retired, including Superman. THANK YOU TOM. Restoring my credibility ;) Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: More SCO news
Mark Komarinski wrote: In case you don't read slashdot. This is getting strange. Novell (remember them?) is getting into the picture. They claim that they never sold the copyrights/IP to SCO, only a license to use said copyrights/IP. http://www.novell.com/news/press/archive/2003/05/pr03033.html -Mark After reading the letter, I have only this to say: Bob: Hope Rob don't say balls nasty. Rob: -Balls- nasty! Bob: He don't shiv. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Potential depletion of lumineferous electrons
Paul Lussier wrote: Memo: Potential depletion of lumineferous electrons From: Paul Reisenfern, Director Office of Health and Safety, Computer Division To:All Computer Users Date: 1 April 2003 As a result of recent studies carried out in cooperation with the National Science Foundation, we at OHS have decided to ask for the cooperation of computer users throughout the world to assist us in alleviating two combined problems: a potential deterioration of the shells housing computer monitors and, while less immediate, a shortage of luminous electrons. [...] Check out the CPAN. http://cpan.org/ Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Potential depletion of lumineferous electrons
Ken D'Ambrosio wrote: Check out the CPAN. http://cpan.org/ Maybe my humor circuits have burned out, but... CPAN doesn't look a whole lot different to me today than usual. (Though my Wanda the Gnome Fish looks suspiciously dead...) Hm. They must have put the original page back up. For a while it looked exactly like this page: http://www.scriptarchive.com/ Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: [OT] help w/ bitwise comparison operators
Derek D. Martin wrote: At some point hitherto, Erik Price hath spake thusly: Do you really have to convert the number to binary and then do a digit-for-digit comparison? Bear in mind that if this is for an exam, your prof will likely want to SEE the binary conversion of the two numbers. It may also be to your benefit to do so. A wrong answer is wrong, but a solution that is done partially correctly may get you partial credit. I wish that were true in my case! AFAIK it's administered via a terminal and is multiple choice. Which I fondly recall in the good old days used to mean one possible answer out of several but for this test most questions have more than one correct answer and you have to get them all in order for a question to be marked correct -- no more process-of-elimination!! :( Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: [OT] help w/ bitwise comparison operators
Kevin D. Clark wrote: My advice: convert your numbers to binary for the exam, and know that in the Real World after school, people tend to let the computer do the work for them. But it *is* important for you to have this skill. Thanks Kevin, and to everyone else who gave me suggestions. I have learned some good tips, and also that what I really needed to learn was not shortcuts for using bitwise operators, but rather shortcuts (techniques, really) for converting between decimals, hex, and octal to binary and back. Which I feel a lot more comfortable with doing now. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: [OT] help w/ bitwise comparison operators
Kevin D. Clark wrote: Erik Price [EMAIL PROTECTED] writes: The short circuit operators AND () and OR (||) work just like their ^^^ regular counterparts except they stop evaluating once they know the result (AND stops evaluating if the first operand is false, and OR stops evaluating if the first operand is true). You might be interested to know that (1 2) results in 0 wheras (1 2) results in something non-zero... Remember, operators like '' are bit operators, wheras operators like '' are logical operators. These are very different. You're right, thanks for the correction. I mis-read the text. , |, , and || are all -logical- operators, and what I said above is true only for boolean values. The short-circuit logical operators ( and ||) won't compile if they are used with integral operands, though the bitwise operators ( and |) will. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: [OT] help w/ bitwise comparison operators
Kevin D. Clark wrote: OK, now we're really splitting hairs, and I suspect that you mistyped anyways, but just to be clear, the logical operators work on any scalar type. For example, these are all legal in C: 1 2 2 3.14 2.718 hello 'b' foo; Oh sorry, I wrote in one of those posts that this is all WRT the Java virtual machine. class name=ShortCircuit.java public class ShortCircuit { public static void main(String[] args) { System.out.println(1 2); } } /class shell $ javac ShortCircuit.java ShortCircuit.java:3: operator cannot be applied to int,int System.out.println(1 2); ^ 1 error /shell Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: OT: Good (but probably controversial) tune
Paul Iadonisi wrote: WARNING: You may love it, or you may hate it. I'm just sick of Clear Channel's monopoly and want to spread the access to this song and let people judge for themselves, instead of allowing the media mogul's to act as faulty filters for our ears. Since the radio stations won't play it: http://darrylworley.dreamworksnashville.com/upload/video/wmv/hyf01-hi.asx?CID=747d1eeb6eb3a44e2639c1d190476b9e I have heard that on the radio (WAAF, but what can you expect from the meathead morning show). Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
[OT] help w/ bitwise comparison operators
Yeah, this is totally offtopic of Linux but I know there are some helpful hackers on this list and was wondering if anyone wouldn't mind letting me know if there is a mental trick to working out the results of bitwise comparison operators. Do you really have to convert the number to binary and then do a digit-for-digit comparison? When I was in grade school we learned how to multiply two longer numbers together using an age-old but still really cool shortcut where you just do single-digit multiplication against the second number and carry the one, or carry the four, or whatever. (Hope I'm making myself clear with this.) The book I'm studying explains that an easy way to do a left bitwise shift is to multiply the left operand by 2 ^ N where N is the number you want to shift by, and that you can do the same with a right bitwise shift except using division instead. Is there something similar for the bitwise comparisons for situations like: 7 3 or 6 | 13 ? Thanks, Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: OT: Good (but probably controversial) tune
Kevin D. Clark wrote: [EMAIL PROTECTED] writes: So why are you not filtering on 'Subject.*[Oo][Tt]\s*:' ? If Mike did this, he would have missed out on Eric Price's [OT] help w/ bitwise comparison operators thread, which I think is sufficiently interesting to be discussed on this mailing list. Thanks for the support! But, as I watch this question sink unacknowledged into the archives of the Java help forums, I'm beginning to suspect that there's no mental shortcut for or | or ^, that it has to be done out by hand or computed. Which I'm not looking forward to WRT the exam :( Erik PS: someone did mention that ~x (bitwise NOT of x) can be represented as -x - 1 which is good to know. PPS: actually my close-bracket would have failed the regex. But point taken ;) ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Top posting
[EMAIL PROTECTED] wrote: Regardless, AFAIK, all lists managed by MailMan add the following lines to the header: X-BeenThere: X-Mailman-Version: List-Help: List-Post: List-Subscribe: List-Id: List-Unsubscribe: List-Archive: I really like mailing lists that use MailMan and I think it's pretty great software. Also, I use those headers for filtering my email to specific folders in my mail client. If you've ever been a list manager and inundated with requests from subscribers to 'please unsubscribe me from this list', then you'd quickly come to appreciate these footers. It's funny b/c I see these happen all the time on lists that /do/ offer the footer. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Top posting - was Re: sendmail vulnerability
On Friday, March 7, 2003, at 03:45 PM, Derek Martin wrote: One thing I've noticed is that any discussion about this sort of thing invariably causes more aggravation and uses more bandwidth than the original transgression. :-) More often than not, said aggravation is, I think, the result of the ego of the OP being unwilling to take being corrected/criticized. Let's keep dragging this on. As such, I think public response is more efficient, and hence better. I agree. A little humility once in a while is good for the soul. Erik -- Erik Price email: [EMAIL PROTECTED] jabber: [EMAIL PROTECTED] ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: the book thing
Michael Bovee wrote: b) I grew up on Macintosh (groans from the peanut gallery :0) and so I expect to be able to get work done pretty quickly, and learn finer ways of doing things as I go. Hey me too. I only first used Unix in college because that's how you checked email. My first forays beyond that were using vi to write text file-based auction listings to upload to rec.games.card.magic.trade or whatever. c) I have resigned myself to learning the most universal unix skills through MacOS X, and I'm doing pretty well. Me too. The nice thing about it is that you're not forced to wrestle with the hard stuff until you invite it onto yourself. Want to run a web server? Click. It's running. But if you want to learn more about what's really going on, you can custom-compile your own with mod_perl etc to really get your hands dirty with it. Yadda yadda. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: For the newbies (book question)
Mark Komarinski wrote: Programming Perl (Wall, Christiansen, Schwartz, O'Reilly) Excellent combination of tutorial and reference. I don't code in perl as much as I used to, but when I do, this book gets cracked open. I've been reading Programming Perl on and off in my free time. I'm going cover-to-cover trying to pick up little details that I might have missed in my inital inquiries into Perl. But I have to say, although it's comprehensive WRT the language, I really think that the Perl Cookbook is a better book if you're actually sitting down to do some Perl coding. It has great example code to model from, solutions to a lot of common problems, and most of the stuff in Programming Perl can be found at perldoc.com. (Sure would be nice to /own/ the Perl Cookbook. But I just got the Python Cookbook so it looks like it'll be a while before I pick that one up. ;) Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: For the newbies (book question)
On Tuesday, March 4, 2003, at 09:29 PM, Mark Komarinski wrote: But I don't think it's just the typical home user. I think everyone would love this. Martin Fowler himself wrote so in his short-n-sweet UML Distilled. 185 pages is a lot more than 5. But the point is taken. Right, well I was just saying what I would like. Unfortunately, the thing going against this is the thought (which I want to prove or disprive) that bigger is better, at least in terms of books that take up a lot of shelf space being better. No, really, I hate the thick books. I'm being completely honest when I say that one of the best books I own is The Python Essential Reference. It's not as small as an O'Reilly pocket reference, but it really does fit into the back pocket of my rave-era jeans. The problem is that publishers think they can't charge $40 for a book unless it's giganto. I disagree, because I'll pay that much for a book much thinner if it's really good. Some of the most-recommended books I've read are Kernighan and Ritchie's The C Programming Language, Jeff Friedl's Mastering Regular Expressions, Josh Bloch's Effective Java, even the micro-sized The Elements of Java Style is considered one of the best Java books available. None of these books are 700-page monsters, but they are all best of breed. That's not to say I can't appreciate a book if it's big, because Thinking in Java (Eckel), MySQL (DuBois), JavaScript: The Definitive Guide (Flanagan) are each around a thousand pages and well worth every minute spent reading them. All I'm saying is that what matters is that a book is good. But thickness of a book /really/ doesn't add anything for me. Until a book (like UML Distilled) gets known within its group of readers as a good book, it won't sell. No, I think this is true of all books to some extent. At least in my case, I generally blow ~$50 on a book only when I have heard in several places that it's good. From a friend, a LUG, even enough amazon five-star reviews will catch my attention. Once in a while I've picked up a book that sounded cool even without knowing if it would be any good, but after a few chapters I take it back to the store if it wasn't. Fifty bucks isn't chump change. [...] In retrospect, though, I have to say that perhaps from a marketing perspective the thicker books /are/ a better idea [for newbies]. Before I started buying these books, I didn't really think about any of them being better than any others -- after all, they're just computer books, right? How good can they be? Why not go for one of the biggest so I can get my money's worth and try to learn it all in one go... Erik -- Erik Price email: [EMAIL PROTECTED] jabber: [EMAIL PROTECTED] ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Great Article on Open Source/Linux stuff
Ben Boulanger wrote: In business http://yahoo.businessweek.com/magazine/content/03_09/b3822601_tc102.htm I hadn't heard about this part: excerpt What could derail Linux? The biggest risks are intellectual-property issues. SCO Group, holder of the original patents for Unix software upon which Linux is based, has announced plans to form a licensing division and hire superlawyer David Boies to press its claims against sellers of Linux. /excerpt Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: C libraries
[EMAIL PROTECTED] wrote: Incidently, that's exactly what the Subversion project aims to do; write a replacement for CVS. And, rather than trying to fix the brokeness of CVS's networking capability, they decided to chuck it all, and write a replacement. But, rather than write all that networking code from scratch, they're using the APR, which already has an inherent understanding of things like URL parsing, etc. Too funny that you should mention that, because that's exactly what I was reading up on. I've been using CVS and I like it, but was thinking about installing Subversion and putting it through its paces. But it'd take some planning since I'd have to run Apache 2.0, perhaps off some high-numbered port or something. I think the term portable runtime is a little misleading in this sense. You still need to compile your code with APR. It's portable I think, in that it's not restricted for any one particular use, like a web server. Oh, I see. I had made the assumption that it was some kind of C-based version of the JRE. Also, the Subversion architecture docs might be pretty informative about how they're using the APR as well. You can find subversion here: http://subversion.tigris.org/ It was these very docs that first led me to the APR a half hour ago. Thanks Paul, that clarifies a lot. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: home dir in cygwin
[EMAIL PROTECTED] wrote: I'm curious why you think that is arcane[1]? I was about to remark something amazingly similar to mod, but got distracted and Derek beat me to it[2] :) That knowledge is indispensable to anyone who needs to debug user environments (e.g. a sysadmin). Are you saying it's arcane just because you didn't know it, or because you do, but didn't expect anyone else to. (I'm just trying to figure out where you're coming from, no insult is meant by this line of questioning.) Because I didn't know it. And I had never heard of a getpwent() function, nor did I know that sysadmins often resorted to knowledge of C structs and pointers in the course of their work. (I don't run a Linux box, I just have an account on a friend's, so this man page isn't something I've ever seen before. And the machine I *do* run is MacOS X, which doesn't use an /etc/passwd file for user info.) Arcaneness is just relative, I guess. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: home dir in cygwin
[EMAIL PROTECTED] wrote: And the machine I *do* run is MacOS X, which doesn't use an /etc/passwd file for user info.) Really? I thought OS X was BSD? Where is user info stored? Is there an /etc/passwd file? NeXT machines used a database called NetInfo to store information that you'd normally think of going in the /etc/passwd file. I know I know, when I first heard about it, I was like what the heck?. Apparently the point is that the information in the database can be propagated across a network so that a user can log into any machine on the LAN using the login information stored on any of the systems. MacOS X uses NetInfo, though there *is* an /etc/passwd file (just blank). I must admit, I really have no idea how it works, since I have never seen a network of more than 2 or 3 Mac OS X boxes. But someone told me recently that the Mac is moving to an LDAP-style system, not sure Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Red Hat End-of-Life
[EMAIL PROTECTED] wrote: RANT=HIGH Okay, first, let me say that I love Debian, and I love apt. That being said: APT IS NOT A PACKAGE MANAGEMENT TOOL!!! It's DEPENDANCY RESOLUTION TOOL. There is a HUGE difference. Saying you like apt better than rpm is like saying my house is better than your sports car. There is no comparisson here, they are totally different. Now, compare dpkg to rpm. Which one of those do you prefer? Do you even know the difference? Do you care? If you want something to do dependancy resolution for RH, get up2date or current. Then, compare those to apt. /rant rant level=not that high Your lt;rantgt; tags aren't well-formed. /rant :) Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
shell script question
Hi, I am probably overlooking something obvious but it seems that when I try to execute a command-line for loop, the do command part is not executed from the current directory. Is that normal? Here is what I mean: [erikprice@host:/home/erikprice]$ for i in `ls`; do `which du` -khs $i; done bash: /bin/du -khs bak: No such file or directory bash: /bin/du -khs bin: No such file or directory bash: /bin/du -khs cvs: No such file or directory bash: /bin/du -khs dev: No such file or directory bash: /bin/du -khs docs: No such file or directory bash: /bin/du -khs down: No such file or directory bash: /bin/du -khs ip-up: No such file or directory bash: /bin/du -khs java: No such file or directory bash: /bin/du -khs mail: No such file or directory bash: /bin/du -khs pub: No such file or directory bash: /bin/du -khs public_html: No such file or directory bash: /bin/du -khs tmp: No such file or directory As you can see in the above, I've had to put `which du` in the do section (because for some reason the du command isn't found if I don't specify an absolute path), and the filename arguments passed to the do section aren't found. If I just type du -khs bak then it works fine. My shell is bash 2.05 and I set my $PATH in ~/.bashrc (Gentoo Linux). Thanks, Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: shell script question
[EMAIL PROTECTED] wrote: First, a pet peeve of mine: Use for i in * ; instead of for i in `ls` ; I always forget that it can be done that way, but in fact, in this case I was ls'ing a diff't directory. I just posted a simplified version to the list. Also, I recall from an earlier discussion on this list that find is generally better to use in situations like this than ls but ls takes less arguments, and I just wanted to quickly get an estimate of a directory's disk usage, not write a true full-blown shell script. I'll try to remember that I can glob instead. A corrected version of your original might be: for i in * ; do du -khs $i ; done The loop variable is placed in double-quotes to make sure the du command sees it as a single word. Otherwise, if one of your directories contained spaces or other shell meta-characters, it would get mangled by the shell before it got passed to du. The rest of the command (du and -khs) you want parsed as individual words so they get handled by the shell as the command to run and said command's arguments, respectively. Good point. Hope this helps, Yes it does. Thank you. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
cygwin
Does anyone on this list use Cygwin when they are using Windows? I use Win2k at work and was hoping to get that Linux feel with this program. Any advice or comments? Thanks, Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: cygwin
Erik Price wrote: Does anyone on this list use Cygwin when they are using Windows? I use Win2k at work and was hoping to get that Linux feel with this program. Any advice or comments? Judging from offlist responses, it sounds like a lot of people use or have used it, and that it can make working in Windows more bearable. Thanks to all who gave input. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
removing a cvs working dir
I've just gotten my feet wet with CVS, and have init'd a repository and imported a new project. It's neat. But one thing I am wondering -- at the end of the day, when I've added all of my files and committed the working directory to the repository, am I supposed to use a CVS command to remove the working directory or its contents? The only other version-control system I've used is VSS (they use it at my work), and that offers an option to remove the local copy of the file after committing. So that's why I'm wondering if CVS has similar, or if I should just use rm. Thanks, Erik -- Erik Price email: [EMAIL PROTECTED] jabber: [EMAIL PROTECTED] ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Moving files
Michael O'Donnell wrote: perl -e 'opendir DIR,.;@f = grep { ! /^\./ -f $_ } readdir(DIR);\ map {($n = $_)=~ s/\s+/_/g; rename ($_, $n) } @f;' Heh. Just for fun I rot13'd that Perl hack and, for my money, it's just as readable... ;- LOL crey -r 'bcraqve QVE,.;@s = terc { ! /^\./ -s $_ } ernqqve(QVE);\ znc {($a = $_)=~ f/\f+/_/t; eranzr ($_, $a) } @s;' On a more serious note, I (for one) would be grateful for a blow-by-blow analysis of what you've done, since I'm in trying to learn how to look at Perl code without my eyes automatically crossing... codeperl -e/code executes Perl accepting a script as a commandline argument. codeopendir DIR, .;/code opens the directory from which the script was executed and assigns it to the file handle named DIR. code@f = grep { !/^\./ -f $_ } readdir(DIR);/code readdir(DIR) opens the directory and passes the results (the file names) to the grep function. grep filters the results of an expression (I think), that expression being anything that does not begin with a dot AND is a file, and assigns those things to an array named f. (In Perl, the @ symbol signifies that a variable is an array, and the $_ variable is the default item [passed from the readdir() function].) codemap {($n = $_)=~ s/\s+/_/g; rename ($_, $n) }/code assign the default item [passed from the previous grep function] to the variable n and then substitute all whitespace in that item for an underscore, then rename the default item to the string contained in n, but do this for each item in the f array. This particular one-liner is very readable when properly indented and code-formatted, making use of few of the esoteric symbols that make reading Perl scripts hard. I like it quite a bit. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Moving files
Bob Bell wrote: One nit: the $_ in the anonymous block passed to map does not come from grep. Rather, it is a reference to each item (in turn) in the provided list (here, @f). Upon re-reading my explanation, I came to the same conclusion -- I was thinking that the script worked the way that I would have written it, rather than how it was written! ;) On some level it is still true, though, since the data in @f comes from the grep call. [ FWIW, I'm surprised Paul bothered to use @f, instead of just applying map to the results of grep directly ] Guess we're on the same page. Also: rather than substitute all whitespace in that item for an underscore, it is more accurate to say substitute each occurance of a sequence of whitespace characters in that item with a underscore, though I believe that's what you meant. A more precise way of saying it. Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Moving files
Derek Martin wrote: This particular one-liner is very readable when properly indented and code-formatted, making use of few of the esoteric symbols that make reading Perl scripts hard. I like it quite a bit. I disagree, in large part, though I've definitely seen worse. I find the syntax of the grep and map to be pretty cryptic, and as a result the purpose of them is obscure to anyone who isn't familiar with the Perl syntax used. The version I wrote is much less so, IMO. Agreed that your version is more straightforward, probably even more elegant (who am I to decide), but does not your script require the reader to know what the s/// operator does, or what shift() does? In other words, assuming that the reader of the script does know how to read Perl including the standard-library functions grep and map, then the script is perfectly readable, even using temporary variables such as @f and $n rather than taking the obvious Perl shortcuts of omitting them and implying the value (something that I think only Perl lets you get away with). A question for you -- do you find doSomething if (condition); to be less readable than if (condition) { doSomething; } ? For someone who has even only a few hours' experience with Perl, the former is generally more readable in a larger script with more lines. Of course, by itself in an email it's hard to convey how nice it is to see a one-line if statement. Just my opinions... Erik PS: FWIW, Python is a friendlier and IMO superior language for writing scripts where legibility is important, but you can't write a oneliner like the OP's Perl script using Python. I think a lot of Perl users like the way that it is quick to write. ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Moving files
Kevin D. Clark wrote: Erik Price [EMAIL PROTECTED] writes: PS: FWIW, Python is a friendlier and IMO superior language for writing scripts where legibility is important, but you can't write a oneliner like the OP's Perl script using Python. I think a lot of Perl users like the way that it is quick to write. Well, again, everybody is entitled to their opinions, but I find that I am quite successful at writing legible Perl scripts. I've been playing around with Python for a while now, but I still prefer Perl over Python. Strange, you sound like you are at odds with me but I never questioned anyone's ability to write legible Perl scripts. In fact, I always jump ahead to Randal's Perl column in Linux Magazine, because his code is often the simplest and easiest to read of all the source code published in that magazine. I did say, however, that Python is superior in my opinion for writing scripts where legibility is important. No offense, but I wasn't responding to you at all, but to Derek, who was saying something about Perl not being easy to read by programmers who don't know the idiosyncracies of Perl, or something. In that case, yes, Python's a lot more straightforward -- as some people like to say, it's executable pseudocode. BTW, where's your Python solution to this problem? Please make sure that it is functionally identical to the solution that I posted. I didn't read the details of File::Find (which is too bad since I've heard of it before and it looks like a great module), so I'm not sure if this does everything, but I managed to hash this script out. I think it does the same thing. Let me know if it doesn't. Also note that Python offers the list comprehensions and map and other elegant functional programming features that Perl has, but I didn't use them as some of the discussion on this list suggested that they aren't very readable. (There are definitely less verbose ways to write unspacify.py. Criticism welcome.) Erik #!/usr/bin/python import sys import os import os.path def unspacify(somestring): return somestring.replace(' ', '_') def unspacifyFile(filename): if os.path.isfile(filename): os.rename(filename, unspacify(filename)) # this next condition will never happen if this # function is called from unspacifyDirectory(), # but is included in case this function is invoked # directly (from another script) elif os.path.isdir(filename): os.rename(filename, unspacify(filename)) else: raise IOError def unspacifyDirectory(directoryname, recurse=False): if os.path.isdir(directoryname): thisdir = os.getcwd() os.chdir(directoryname) for file in os.listdir(.): if os.path.isdir(file) and recurse == True: unspacifyDirectory(file, False) try: unspacifyFile(file) except IOError, ioe: print Unreadable: + file continue os.chdir(thisdir) def usage(): print usage: unspacify.py [-r] targetfile if __name__ == '__main__': if sys.argv[1] == '-r' and os.path.isdir(sys.argv[2]): unspacifyDirectory(sys.argv[2], True) elif os.path.isdir(sys.argv[1]): unspacifyDirectory(sys.argv[1]) elif os.path.isfile(sys.argv[1]): try: unspacifyFile(sys.argv[1]) except IOError, ioe: print File Unreadable: + sys.argv[1] sys.exit(1) else: usage() sys.exit(1) sys.exit(0) ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: Notable bash $PATH behavior trivia
Useful, I didn't know that. Thanks. Erik Michael O'Donnell wrote: I just noticed that I was able to execute programs in the current directory without prefixing their names with ./ and without having . in my $PATH. After saying WTF? a number of times I finally figured out that it's related to my PATH being defined with a leading colon, sorta like this: export PATH=:/bin:/usr/bin:/usr:local/bin ...so those of you who (for security reasons) are careful to exclude . from your $PATH need also be careful about leading colons, apparently... ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: dd syntax question (was: ISO Ripping)
mike ledoux wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On Mon, Dec 23, 2002 at 11:55:35AM -0500, Erik Price wrote: Why does dd use options named if and of? I just paged through the man page but can't seem to find an explanation. Especially since you would think of refers to the original (source), not the destination. if = input file of = output file RIGHT. Of course. Thanks. (whew!) Erik ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: replacement for netscrape mail
On Friday, December 20, 2002, at 01:19 PM, Rodent of Unusual Size wrote: mozilla seems cool as a browser, but does it do mail? how about other alternatives? I've been using Mozilla as a browser since 1.0, and have had nothing but positive experiences with it (except for some reason on monster.com, where I see some strange rendering errors, but that is the *only* site where I see them). But just last week, on Wednesday, I decided to try Mozilla mail. I was using Outlook at work (the standard MUA where I work), and every time I sent a post to gnhlug-discuss, I had to manually hit CR at the end of each line or face the wrath of the line-wrap nazis. I was nervous that I wouldn't be able to import my old mail, that it wouldn't be compatible with the Exchains servers my company uses, and a host of other worries. Let me just say that it is a great mail client. No problems with importing old mail (though it took over an hour to fetch all my old mail). No problems with the Exchains servers (though I'm on POP3 now so I have to make my own backups of my mail). No complicated seven-step wizard to set up a rule for email filtering, and even then the filters didn't work half the time. CNET says Mozilla is actually a better mail client performance-wise, but doesn't offer the calendaring compatibility with Exchains. I don't use the calendaring anyway. Basically, I think it's great. Erik -- Erik Price (zombies roam) email: [EMAIL PROTECTED] jabber: [EMAIL PROTECTED] ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: replacement for netscrape mail
On Friday, December 20, 2002, at 08:43 PM, Erik Price wrote: No problems with importing old mail (though it took over an hour to fetch all my old mail). s/fetch/import/; -- Erik Price (zombies roam) email: [EMAIL PROTECTED] jabber: [EMAIL PROTECTED] ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: pipe/redirect dumb question
On Wednesday, December 11, 2002, at 07:00 PM, [EMAIL PROTECTED] wrote: An ordinary redirection opens a file descriptor with regular file semantics. Some shells implement process redirection which is similar to a pipe. The main difference between pipe file descriptors and file file descriptors is that pipes implement a sort of flow control. Draining a pipe causes the reader to block rather than receive an EOF. Filling up the pipe will cause the writer to block. Other differences are the way the file descriptors respond to various other syscalls. For instance, you can't do a 'seek' on a pipe. Thanks for this comprehensive answer. Originally I asked this question from a strictly pragmatic approach (does it make a difference if I pipe from a utility or redirect from a file, if it's the same data either way), but I had never considered the way piped data works. Specifically that it causes the reader/writer to block depending on the circumstances. Does the code that tells the reader or writer to block have to be written into the application, or is that somehow built into the shell? If it needs to be built into the application, well then say for instance I'm writing a Perl script. I've never programmed my Perl script to block if the writer gets full. So perhaps it's handled internally by Perl. But if I'm writing a C program, I shouldn't make the assumption that this will be done for me. Unless of course I'm totally off the mark here, and the rules of piping are handled by the shell or OS or something. Erik -- Erik Price (zombies roam) email: [EMAIL PROTECTED] jabber: [EMAIL PROTECTED] ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
Re: emacs vi (vim) approaches)
On Friday, November 15, 2002, at 04:55 PM, Tom Buskey wrote: I'm amazed at how many places you find emacs style keystrokes. Mozilla, exmh's sedit, interleaf, bash, ksh, tcsh. Others? It's similar to all the editors that used wordstar style keys on DOS - the Turbo editors, qedit. How many apps let you use vi keystrokes? ksh, bash (?), tcsh (?), vile? Since it's modal, I think it's harder for some apps to adjust... but IIRC, GNU readline lets you use vi commands... I know there is a vi option for bash, and perhaps for other tools that use readline like MySQL's mysql and Python's interactive interpreter. Erik -- Erik Price (zombies roam) email: [EMAIL PROTECTED] jabber: [EMAIL PROTECTED] ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss
cheap video card desired
Hi, I've had the good fortune of being able to run Linux on a separate hard disk at my new job, so when I'm not busy with some task or other, I reboot and tweak. (It's Debian 3.0) I'd like to do more of my development in Linux because I like to script a lot of my workflow (and I'd like to try Mutt) and I'm a bash addict. In fact, I never had a Windows box in my house, so the DOS prompt feels particularly inflexible after having bash in my MacOSX box for the past year (and on my school's servers before that). However, quite a bit of the work I do requires a web browser, and I've been using NetBeans for Java. If I had access to a GUI from my Linux box, I'd be able to switch over full-time (for the most part). But my video card is unsupported. It's a RealiZm Intense3D card, I guess (judging from the Windows Device Manager). I've tried dozens of settings in `dpkg-reconfigure xserver-xfree86`, but no avail. It's not supported. So I need to get a supported video card. Does anyone know of a good resource for investigating this? I certainly don't need a hot gaming card, just something equivalent to what I've got (it's 32(24)-bit, does 1152 x 864 at 19 inches) would be great. Since I'm a bonehead when it comes to PC hardware -- a casualty of growing up in a house of Apples -- can anyone provide a recommendation? And if you know of a store that sells them used, cheap, that'd be helpful too. Thanks, Erik PS: I still need to boot into Win for some of the company applications, so I need to make sure that there is a driver for Win2k too. -- Erik Price (zombies roam) email: [EMAIL PROTECTED] jabber: [EMAIL PROTECTED] ___ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss