http://cr.yp.to/im2000.html..."Internet Mail 2000"... no really.:^) Basically, you (user) don't receive the email. You receive a notification: "your email is available". Now: you have to download the email from the site that notified you.
Imagine: I am a spammer. I must now host a server which has the capability to receive $millions of hits from all my wonderful spam-receiving customers. This is the first thing which begins shifting the burden of sending of email back onto the sender.
Obviously it's not perfect, if I were a spammer, I'd probably have all my malware-infected robots be the hosts for sent emails. Buuut... they'd only be active when that malware-infected computer is on. Notifications could obviously be cheaper to send (b/c it's not so bandwidth intensive, just "hey, joe@joe.com has an email available at bob@spammer.com/msgid/12345/hash-password/a1e2ff"...but, this scheme has the potential to conserve enormous amounts of bandwidth internet wide (mail is "fetched if desired", not "sent no matter what"). If too many reports of spam are coming from a particular server, blacklist that server. Boom. There are a finite # of IP addresses on the internet, and forcing a spammer to maintain servers so their messages are successfully delivered should eventually drive them further and further out of address space.
This speaks really to "trust v. ip address", how much do you trust a residential DSL IP to deliver mail? (not much). How much do you trust Yahoo Mail's IP? (a lot, all kidding aside).
So, what's the transition? Since it is such a drastic change (rather than sending mail, sending notifications), and directly impacts $zillions of installed mail clients, I couldn't wrap my head around a valid transition path until it hit me... use email!;^)
Since most mailers nowadays support highlighting of http links, just send "Subject: regular", but make the body: "Internet Mail 2000 message. http://sending.server.com/msg/12345/hash/abc123"... totally painless transition (apart from vulnerable browsers), until mail programs can be re-architected to fix it. ( if: is_im2k(): fetch( $url_from_message )
Best extension I found is an RSS reader in mozilla. Try it out. You bookmark your RSS feeds in a folder of your choosing, and it puts them in a side-bar.
http://www.google.com/search?q=mozilla+rss
It's stuff like this that is making me realize that (many) things can be just "a part of the browser"... *if* your browser is sufficiently advanced and you have 1+ ghz to spare.:^)
It exists (existed). I bought CorelDraw + PhotoPaint for linux on ~day 1 for ~$200-300, because it's worth it.
Now I've found inkscape, and inkscape roxors my soxors. Not at the level of CorelDraw, but *VERY* reasonable, usable features (useful features, not stuff like "warp a node mesh with funny linear transforms"). CorelDraw is definitely professional grade software (99% feature set), InkScape is ~pro-am~ (80% feature set).
Porting WordPerfect over is like trying to sell tickets on the titanic, why would you choose WordPerfect over StarOffice, OpenOffice, AbiWord, KWord, MSOffice via CrossOver, etc? Most of which are available for free, by default, or for low cost? (for basic word processing).
Corel *could* have been a fantastic company and/or a fantastic investment. They had:
Corel Linux (debian)
Word Perfect
Corel Draw
Photo Paint
+misc other corel software...which gives them a decent stab at providing a complete alternative platform.
Actually, I take that back, after looking at it in hindsight. They would have been competing with Mac, but with none of the intrinsic advantages, and breaking compatibility with any other misc. Win/Mac applications (which I'm sure that desktop publishers rely on quite a few of those).
"""This is never going to get off the ground, and is a hindrance to the adoption of linux by musicians, when in reality things like jack, ardour, and alsa make it an excellent platform for creative types, a la Pd, miller puckette's wonderful synthesis program."""...which proves why you are a musician and not a programmer (and why I am not a musician). Core problem: You have to understand and define the problem-space, which is what these Lily people have done. The fact that what you are reading about (seeing right now) is a bunch of "\note {c4 b2}" should have absolutely no impact on you at all.
Have you looked at HTML lately? HTML is ugly junk, but computers understand it and can render it so it looks pretty. And MS-FrontPage will let you point and click to make it easily. This whole rendering and editing had to be programmed by somebody, and that's what it looks like this LilyPond software is: a core base which they expect GUI's to be built on top of.
"""emailing answering machine recordings.. I don't think so."""
Actually, we have this at my office, sweet cisco IP phones where any voice mail received gets sent to your email as well. *AWESOME*... I hate checking stinking voicemail with numeric passwords and prompts. This gives me a.wav file, double-click and it starts in winamp. Nukes my playlist, but I'm sure I could reconfigure winders to fix it, but I just don't care.:^)
For extra bonus points, you can use those voice-specific compression schemes (Speex/Ogg?) and someone would have to be talking for a long time in order to fill up your email inbox.
I'm running Linux kernel 2.4.somethign on a 486 dx100 laptop with 24mb of ram and 500mb of disk space. I have run GUI on it (opera for browser) and used it also as a thin-client to my big beast of a box desktop, however I usually use it to type up code when I want to watch TV, so most of my time is spent text editing and SSH'd into another box.
I've currently got 350 mb installed, 50mb free (needed swap space), and all of perl, php, X, vim, etc. Kindof funny because I'm not used to worrying about disk-space but suddenly it becomes a factor.
Try debian. Base install is ~15-50mb big, and you can add up from there as necessary (apt-get install kde will give you all of kde, apt-get install kcalc will give you just enough to get the job done.:^)
My favorite "Nifty" was when I spent the time to learn about "xargs" (I pronounce it zargs), and brush up on "for" syntax.
ls | xargs -n 1 echo "ZZZ> "
Basically indents (prefixes) everything with a "ZZZ" string. Not really useful, right? But since it invokes the echo command (or whatever command you specify) $n times (where $n is the number of lines passed to it) this saves me from having to write a lot of crappy little shell scripts sometimes.
A more serious example is:
find -name \*.jsp | sed 's/^/http:\/\/127.0.0.1/server/g' | xargs -n 1 wget...will find all your jsp's, map them to your localhost webserver, and invoke a wget (fetch) on them. Viola, precompiled JSP's.
Another:
for f in `find -name \*.jsp` ; do echo "==> $f" >> out.txt ; grep "TODO" $f >> out.txt ; done...this searches JSP's for "TODO" lines and appends them all to a file with a header showing what file they came from (yeah, I know grep can do this, but it's an example. What if grep couldn't?)...and finally...
( echo "These were the command line params"
echo "---------"
for f in $@ ; do
echo "Param: $f"
done ) | mail -s "List" you@you.com...the parenthesis let your build up lists of things (like interestingly formatted text) and it gets returned as a chunk, ready to be passed on to some other shell processing function.
Shell scripting has saved me a lot of time in my life, which I am grateful for.:^)
This is horrible UI. Alt-Enter is "Toggle FullScreen" in *everything*. DOS prompt? Alt-Enter. NWN? Alt-Enter. Tribes2? Alt-Enter. Quake3? Alt-Enter.
This key command is consistent between Windows as well as Linux, and I can absolutely verify that the above applications support it. (Well, not sure about Q3, but I'm pretty sure if it supported it, that's what they'd use).
However... remember that support (of that nature) doesn't scale. There is a strong incentive for only "good" software projects to survive b/c they need to:
- be good enough in the first place that people stick with it
- sort out the infrastructure for dealing with comments / questions / complaints from people
- ruthlessly avoid the need to give support in the first place
Witness: Faq's, IRC (user-user) channels, open contribution policies, user/developer mailing lists, open bug trackers. Support is out there, it is self-serve, and good projects have it (they *have* to have it).
There is potential for a company that acts as an intermediary on a for-pay basis (oh, let me check on that Mr. Customer... google, faq's, archives... Hrm, I don't see your answer, let me paypal $20 of your $50 support call to the developer and hope he responds to my question and updates his faq).
That's what O.S. is missing. Somebody intelligent to monetize what is out there, and not be afraid to do it.
@a = ( quick, brown, fox );
for ( @a )
{
s/o/ZZZ/g;
chop;
print;
print "\n";
}
This is slightly contrived, but within the for loop there is an invisible variable "$_", which is commonly referred to as "it" or "this"... the chop (remove last character) operates on it. The substitution changes the "o's" to "ZZZ's". Print picks up on it (when invoke with no parameters or with the $_ parameter).
In practice, perl really is hard to use and is fragile, so I guess you're right.:^)
Change to latest versions of KDE... it has the option to "log in as a different user", basically "startx -display:+1"... starts a new X-session on the next virtual terminal (alt-f7,f8,f9, etc) without losing currently running programs and allowing people to switch users.
This is on debian unstable, it's a really nice feature. And maybe it isn't x-screensaver but k-screensaver, but whatever it is, it works pretty good.:^)
His motto is "Anyone who doesn't know machine language has no business using a computer."
Just say to him "Well Grandpa, my motto is anyone who can't describe, with exacting detail, all the functions of every organ in the human body doesn't deserve to live."
Actually, it's no different from saying somebody who doesn't know the functions of every organ in the body doesn't deserve to be a doctor. Doctor != Layperson. Grandpa != Computer person.
A computer person (anybody serious about using computers for generic processing) should definitely know assembly (or JVM bytecode, etc). People who use VB to write frontends are (in my opinion) really "business specialists" who also happen to know the beginnings of computer science.
I use this at work for a few bookmarks. It gets you around.htaccess protection fairly adequately (ie: beta.site.com is.htpassword protected, and I don't want to type stupid/stupid to log in every time).
Bookmark it as: http://stupid:stupid@beta.site.com and you are done.
ftp links are sometimes given in the same way (and http_proxy environment settings under linux).
Mind you, this is super-insecure given current computing environments and security issues (1: plaintext, 2: forgery issues), but it does have it's uses in a controlled environment.
I moderately disagree, having played AA on linux a few times. During most of the missions / excercises / training, you are rigorously "enforced" into better than average FPS behaviour. IE: if during the basic training you screw around, you get busted, and eventually thrown in "jail" (Leavenworth?).
Same with the multiplayer... each time you hit your squaddies (especially if you kill them), you get negative points (karma?)... tough to explain because I didn't completely understand it, but it definitely is a cut above the normal "Screw it, throw a grenade and let $diety sort it out."
Combine this with 24x7 (I think) admin support for reporting and kick-banning griefers / turds and you have a very solid game.
There is definitely a skill gap (which is *good*, means that good skill => wins more often), and it seems to attract the type of clan / ex military people who get a kick out of that stuff and play with headsets and teamsound, etc.
For bonus points use the FUSE kernel module (File System User Space, http://www.ussg.iu.edu/hypermail/linux/kernel/0111.1/0803.html) to get your tape drive to fast forward / rewind and implement a full filesystem.
Then, use tar to copy files to it. Then you'd be cool.
In the simple case, Ogre is an engine, Cube is a thing.
"""...posted some new screenshots of their upcoming curling simulation, Granite 2004, which uses OGRE for rendering. We have to say it's looking very nice indeed. """
Ogre doesn't do anything by itself except spit out Javadocs or Doxygen, or whatever. Cube is like quake. It runs, it does stuff, you can use it to build other things. At it's core it has a 3d engine that you could probably use for other projects (this is what Ogre is), but even without any extra work, it's a game in it's own right.
Ogre is going to have all the: "call this function to set up view-frustrum culling" or "call this function to update the in-game camera position" or "call this function to have your game instantiate an object oriented 3d object which the physics engine that you write can manipulate". (All apologies for my crappy explanations, any Ogre developers;^)
Basically, each project's end-product is targetting different levels. Ogre is designed to be general purpose 3d rendering library, Cube is designed to be nifty, fun, extensible, editable game thingy.
Once upon a time while using windows, I needed to add up some numbers that were scattered on a web page. Enter Calc. Problem is that Calc would disappear when clicking on explorer, then calc would cover some numbers when brought to front, can't scroll IE unless it has focuse, etc.
Enter: Actual Title Buttons (google, I'm lazy). It's a fine little shareware program that adds "Always on top" and "translucent windows" as available buttons for individual windows.
Turn on always on top, and translucency, and all of a sudden I can see both the numbers I'm adding up, and the webpage at the same time. I also have a much bigger target when toggling back and forth with the mouse between IE and Calc, because I can click on the window of each, rather than needing to task-switch through the title bar.
Perhaps a contrived example, but it turned out to be a surprisingly natural solution, since I knew it was something that could be done. And since most (99%) of all computers today have decent GL / transparency support, why not take advantage of it? You could always use the ION or RatPoison window managers, as I did for a while (nothing better than one of those for browsing full-screen internet... screen edge to screen edge of web-bliss!)
Hoping this is not a troll, but according to Mr. Stallman / GNU.org, the BSD license (well, 'modern', non-advertising BSD) is explicitly compatible with GPL:
http://www.gnu.org/philosophy/license-list.html# GP LCompatibleLicenses
However, Vice-Versa doesn't work (GPL "trumps" the BSD-ness of the other work, since the BSD is so permissive on what is possible to do with the code).
Here's a quick refresher for anyone who doesn't "get" the GPL: Don't think "Free Software" (like gratis, non-paying). Think "Libre Software" (like freedom). This is also said: "Free as in speech, not as in beer".
But the GPL is *not* freedom for the programmer, it's freedom for the source-code. Straight from the GPL...
""" For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. """
The BSD license basically says: "Do what you want, just don't sue me"
And a recommendation for all budding software haxors out there... GET COPYRIGHT OF CONTRIBUTOR CODE SIGNED OVER TO YOU (as project admin / fearless leader). The FSF requires this for all their sponsored projects, and it doesn't even have to be exclusive rights to the contributions.
Basically, once software is GPL, if you accept a typo-bugfix under the GPL, and don't receive assignation of copyright for it (not really, because of various "minor edits" stuff, IANAL), then the whole project (even if you're the 99% contributor and author of everything else) is forever and eternally available under the GPL, and you can't close it back off or change the license without *getting* that assignation of copyright (often stated: "the genie is out of the bottle").
From an individual project perspective, if you don't care about the code, use BSD (but remember that people can jack it and use it without giving you credit). If you want to make sure that the code you've written is always available no matter how it's used in the future, use LGPL (hey, *your* code is always available). If you have an agenda, go with the GPL (because GPL forces users of your code to also use GPL).
Honestly, pure GPL is really annoying a lot of times, witness the readline libraries. Want decent text-input handling? Boom, whole application is now GPL. My app doesn't deal with input handling, it isn't a text-editor. I (personally) consider input handling to be a "solved problem", but I can't use GNU-readline in my FooBar software v1.0 without releasing all my source code.
Personally, I usually don't have a problem with that, but I consider it most impolite to future programmers who want to use the bricks that I've built by stating: Even though you built this house yourself (using GNU/Brick 4.3), you still have to let me come in whenever I want and take a crap on those fancy toilet seats that you put in.
BSD => no restrictions.
LGPL => source code to your contributions (your bricks) will always be available.
GPL => use my GNU/library so I can crap on your new (GNU?) toilet seat.
IANASOSPL (I am not a successful open source project leader). I come from a technical background, with the computer science degree.
I agree with some of the existing sentiment: Care! If you want your project to succeed, and your users also want it to succeed, it will succeed.
In your situation, don't be 100% afraid of branches forks, and don't let yourself get pushed around by techy people who "know the right way to do things". Let them maintain their own branches (support the most serious ones if you can) or encourage them to fork it (in a good way! Sometimes the most important projects fork and re-merge, it's a part of evolution).
If it is truly better than your way, reap the benefits and re-integrate, either you at the helm, or that other hacker now in control.
The CEO of a company doesn't know how to write code, or manufacture widgets, but he knows that it needs to be done. You should feel the same way abour your project. Past a certain point, it might "need" a certain feature, or technical requirement that you don't feel the need for, or can't implement yourself. Remember humility and ask them to take the lead and implement the feature. If *you* can't figure out how to use it, or if it breaks too many other things, or becomes too complicated, then that fails your acceptance criterion. Try to work with them in order to get it compatible with the "mainline" distribution. Otherwise, provide links to their work or host patches or alternate versions as well. See UseMod wiki as a great example of this: (http://www.usemod.com/cgi-bin/wiki.pl?WikiPatches )
Read kernel traffic! (http://www.kerneltraffic.org/kernel-traffic/), it is the most shining example of the open source process at work. Big-name technical people have the interesting technical spotlight shone on them (weekly, no less!) by Zack Brown (THANKS, ZACK!). It is an excellent example of disparate people working together on a vital portion of linux systems, and how even though one person might not have all the answers, together, they are able to come to an acceptable solution.
Most of all, have fun! Fun is fun, especially when you can get paid to have it at work, and still be doing something that is helping you with your job!:^)
Take a pentium 800mhz from 2-3 years ago. Compare it with a pentium 2.4ghz from this year. Thats an increase (for UP people) of 300% (three times.) Don't forget to subract your 7%, so you're back to a 293% relative performance increase (not really, but shut up).
Now, increase SMP performance by 10% or whatever. It makes sense. For the hobbyist, 7% performance degradation per annum is not going to make a difference, so long as there are significant improvements that can keep linux relevant.
I've heard of a project called "TurboKDE" which is taking KDE1.0 and hyping it up, where the KDE1.0 runs like 2-3 times faster than latest ones b/c of increasing complexity.
If you're running your 300mhz P2, then run a 2.2 kernel, if that workload is better. USB support is (I believe) back-ported, so you don't really have too many excuses not to. Can't buy it in stores? Don't need to, download it from kernel.org. Buy from CheapBytes.
Side-note: The internet is not permanent! When searching for demos of old video games (like SystemShock2) so I can try them on WineX, I ran into so many dead links it's not funny. Nothing replaces owning a personal copy of something on a CD.
Are you the best programmer on the planet? (no) Are you twice as good as somebody you know (ie: because you know perl, can you whip the pants off of somebody who only knows C)? Probably yes.
Therefore, we have proved that Compared to that person who is 1/2 as good as you, there is someone who is probably twice as good as you, giving a spread of 2 * 2 => 4.
Throw in less debugging and less maintenance, and good programmers can be worth their weight in gold. I *know* web stuff. Cookies, HTML, servers, CSS, etc. SQL, PHP, Perl, Cron, Bash, etc. Put me up somebody fresh out of college (in my field of expertise), with no work experience, and I'll thrash them mightily.
Pay a n00b programmer 40-50k. Pay me 80-100k (ow!, twice as much!). I am at least twice as productive as n00b programmer *when just programming*, not factoring in maintenance and debugging.
Please explain this to any MBA's that you see. Using word's they might understand: "Life's too short to drink cheap beer." There's not enough time in the day to fix all the crap that crappy programmers write.
Check out 90% of the projects on SF.net (bad sample, but everybody with a project on SF.net is at least more motivated than the average joe, even if they don't have all the mad skillz).
Check this one:
..."Internet Mail 2000" ... no really. :^) Basically, you (user) don't receive the email. You receive a notification: "your email is available". Now: you have to download the email from the site that notified you.
...but, this scheme has the potential to conserve enormous amounts of bandwidth internet wide (mail is "fetched if desired", not "sent no matter what"). If too many reports of spam are coming from a particular server, blacklist that server. Boom. There are a finite # of IP addresses on the internet, and forcing a spammer to maintain servers so their messages are successfully delivered should eventually drive them further and further out of address space.
... use email! ;^)
... totally painless transition (apart from vulnerable browsers), until mail programs can be re-architected to fix it. ( if: is_im2k(): fetch( $url_from_message )
http://cr.yp.to/im2000.html
Imagine: I am a spammer. I must now host a server which has the capability to receive $millions of hits from all my wonderful spam-receiving customers. This is the first thing which begins shifting the burden of sending of email back onto the sender.
Obviously it's not perfect, if I were a spammer, I'd probably have all my malware-infected robots be the hosts for sent emails. Buuut... they'd only be active when that malware-infected computer is on. Notifications could obviously be cheaper to send (b/c it's not so bandwidth intensive, just "hey, joe@joe.com has an email available at bob@spammer.com/msgid/12345/hash-password/a1e2ff"
This speaks really to "trust v. ip address", how much do you trust a residential DSL IP to deliver mail? (not much). How much do you trust Yahoo Mail's IP? (a lot, all kidding aside).
So, what's the transition? Since it is such a drastic change (rather than sending mail, sending notifications), and directly impacts $zillions of installed mail clients, I couldn't wrap my head around a valid transition path until it hit me
Since most mailers nowadays support highlighting of http links, just send "Subject: regular", but make the body: "Internet Mail 2000 message. http://sending.server.com/msg/12345/hash/abc123"
Anyway, think about it.
--Robert
Best extension I found is an RSS reader in mozilla. Try it out. You bookmark your RSS feeds in a folder of your choosing, and it puts them in a side-bar.
... *if* your browser is sufficiently advanced and you have 1+ ghz to spare. :^)
http://www.google.com/search?q=mozilla+rss
It's stuff like this that is making me realize that (many) things can be just "a part of the browser"
--Robert
Invisible IRC
See also http://shouldexist.org, for ideas that (well), should exist. :^)
Based on scoop (the same engine that runs Kuro5hin), and been running for a few years now. There's some neat stuff within there.
--Robert
It exists (existed). I bought CorelDraw + PhotoPaint for linux on ~day 1 for ~$200-300, because it's worth it.
...which gives them a decent stab at providing a complete alternative platform.
Now I've found inkscape, and inkscape roxors my soxors. Not at the level of CorelDraw, but *VERY* reasonable, usable features (useful features, not stuff like "warp a node mesh with funny linear transforms"). CorelDraw is definitely professional grade software (99% feature set), InkScape is ~pro-am~ (80% feature set).
Porting WordPerfect over is like trying to sell tickets on the titanic, why would you choose WordPerfect over StarOffice, OpenOffice, AbiWord, KWord, MSOffice via CrossOver, etc? Most of which are available for free, by default, or for low cost? (for basic word processing).
Corel *could* have been a fantastic company and/or a fantastic investment. They had:
Corel Linux (debian)
Word Perfect
Corel Draw
Photo Paint
+misc other corel software
Actually, I take that back, after looking at it in hindsight. They would have been competing with Mac, but with none of the intrinsic advantages, and breaking compatibility with any other misc. Win/Mac applications (which I'm sure that desktop publishers rely on quite a few of those).
--Robert
"""This is never going to get off the ground, and is a hindrance to the adoption of linux by musicians, when in reality things like jack, ardour, and alsa make it an excellent platform for creative types, a la Pd, miller puckette's wonderful synthesis program.""" ...which proves why you are a musician and not a programmer (and why I am not a musician). Core problem: You have to understand and define the problem-space, which is what these Lily people have done. The fact that what you are reading about (seeing right now) is a bunch of "\note {c4 b2}" should have absolutely no impact on you at all.
Have you looked at HTML lately? HTML is ugly junk, but computers understand it and can render it so it looks pretty. And MS-FrontPage will let you point and click to make it easily. This whole rendering and editing had to be programmed by somebody, and that's what it looks like this LilyPond software is: a core base which they expect GUI's to be built on top of.
--Robert
"""emailing answering machine recordings.. I don't think so."""
... I hate checking stinking voicemail with numeric passwords and prompts. This gives me a .wav file, double-click and it starts in winamp. Nukes my playlist, but I'm sure I could reconfigure winders to fix it, but I just don't care. :^)
Actually, we have this at my office, sweet cisco IP phones where any voice mail received gets sent to your email as well. *AWESOME*
For extra bonus points, you can use those voice-specific compression schemes (Speex/Ogg?) and someone would have to be talking for a long time in order to fill up your email inbox.
--Robert
I'm running Linux kernel 2.4.somethign on a 486 dx100 laptop with 24mb of ram and 500mb of disk space. I have run GUI on it (opera for browser) and used it also as a thin-client to my big beast of a box desktop, however I usually use it to type up code when I want to watch TV, so most of my time is spent text editing and SSH'd into another box.
:^)
:^)
I've currently got 350 mb installed, 50mb free (needed swap space), and all of perl, php, X, vim, etc. Kindof funny because I'm not used to worrying about disk-space but suddenly it becomes a factor.
Try debian. Base install is ~15-50mb big, and you can add up from there as necessary (apt-get install kde will give you all of kde, apt-get install kcalc will give you just enough to get the job done.
It all depends on what you want.
--Robert
My favorite "Nifty" was when I spent the time to learn about "xargs" (I pronounce it zargs), and brush up on "for" syntax.
...will find all your jsp's, map them to your localhost webserver, and invoke a wget (fetch) on them. Viola, precompiled JSP's.
...this searches JSP's for "TODO" lines and appends them all to a file with a header showing what file they came from (yeah, I know grep can do this, but it's an example. What if grep couldn't?) ...and finally...
...the parenthesis let your build up lists of things (like interestingly formatted text) and it gets returned as a chunk, ready to be passed on to some other shell processing function.
:^)
ls | xargs -n 1 echo "ZZZ> "
Basically indents (prefixes) everything with a "ZZZ" string. Not really useful, right? But since it invokes the echo command (or whatever command you specify) $n times (where $n is the number of lines passed to it) this saves me from having to write a lot of crappy little shell scripts sometimes.
A more serious example is:
find -name \*.jsp | sed 's/^/http:\/\/127.0.0.1/server/g' | xargs -n 1 wget
Another:
for f in `find -name \*.jsp` ; do echo "==> $f" >> out.txt ; grep "TODO" $f >> out.txt ; done
( echo "These were the command line params"
echo "---------"
for f in $@ ; do
echo "Param: $f"
done ) | mail -s "List" you@you.com
Shell scripting has saved me a lot of time in my life, which I am grateful for.
--Robert
This is horrible UI. Alt-Enter is "Toggle FullScreen" in *everything*. DOS prompt? Alt-Enter. NWN? Alt-Enter. Tribes2? Alt-Enter. Quake3? Alt-Enter.
This key command is consistent between Windows as well as Linux, and I can absolutely verify that the above applications support it. (Well, not sure about Q3, but I'm pretty sure if it supported it, that's what they'd use).
--Robert
However... remember that support (of that nature) doesn't scale. There is a strong incentive for only "good" software projects to survive b/c they need to:
... Hrm, I don't see your answer, let me paypal $20 of your $50 support call to the developer and hope he responds to my question and updates his faq).
- be good enough in the first place that people stick with it
- sort out the infrastructure for dealing with comments / questions / complaints from people
- ruthlessly avoid the need to give support in the first place
Witness: Faq's, IRC (user-user) channels, open contribution policies, user/developer mailing lists, open bug trackers. Support is out there, it is self-serve, and good projects have it (they *have* to have it).
There is potential for a company that acts as an intermediary on a for-pay basis (oh, let me check on that Mr. Customer... google, faq's, archives
That's what O.S. is missing. Somebody intelligent to monetize what is out there, and not be afraid to do it.
--Robert
Obviously you've never used perl. :^)
... the chop (remove last character) operates on it. The substitution changes the "o's" to "ZZZ's". Print picks up on it (when invoke with no parameters or with the $_ parameter).
:^)
@a = ( quick, brown, fox );
for ( @a )
{
s/o/ZZZ/g;
chop;
print;
print "\n";
}
This is slightly contrived, but within the for loop there is an invisible variable "$_", which is commonly referred to as "it" or "this"
In practice, perl really is hard to use and is fragile, so I guess you're right.
--Robert
Change to latest versions of KDE ... it has the option to "log in as a different user", basically "startx -display :+1" ... starts a new X-session on the next virtual terminal (alt-f7,f8,f9, etc) without losing currently running programs and allowing people to switch users.
:^)
This is on debian unstable, it's a really nice feature. And maybe it isn't x-screensaver but k-screensaver, but whatever it is, it works pretty good.
Good luck, glad to hear a success story.
--Robert
Get a rolly keyboard.s /5a7f/
http://www.thinkgeek.com/computing/input/keyboard
Use a tablet or touch-pad.
http://store.yahoo.com/directron/tables.html
...or go expensive?
--Robert
His motto is "Anyone who doesn't know machine language has no business using a computer."
Just say to him "Well Grandpa, my motto is anyone who can't describe, with exacting detail, all the functions of every organ in the human body doesn't deserve to live."
Actually, it's no different from saying somebody who doesn't know the functions of every organ in the body doesn't deserve to be a doctor. Doctor != Layperson. Grandpa != Computer person.
A computer person (anybody serious about using computers for generic processing) should definitely know assembly (or JVM bytecode, etc). People who use VB to write frontends are (in my opinion) really "business specialists" who also happen to know the beginnings of computer science.
--Robert
I use this at work for a few bookmarks. It gets you around .htaccess protection fairly adequately (ie: beta.site.com is .htpassword protected, and I don't want to type stupid/stupid to log in every time).
Bookmark it as: http://stupid:stupid@beta.site.com and you are done.
ftp links are sometimes given in the same way (and http_proxy environment settings under linux).
Mind you, this is super-insecure given current computing environments and security issues (1: plaintext, 2: forgery issues), but it does have it's uses in a controlled environment.
--Robert
I moderately disagree, having played AA on linux a few times. During most of the missions / excercises / training, you are rigorously "enforced" into better than average FPS behaviour. IE: if during the basic training you screw around, you get busted, and eventually thrown in "jail" (Leavenworth?).
... tough to explain because I didn't completely understand it, but it definitely is a cut above the normal "Screw it, throw a grenade and let $diety sort it out."
Same with the multiplayer... each time you hit your squaddies (especially if you kill them), you get negative points (karma?)
Combine this with 24x7 (I think) admin support for reporting and kick-banning griefers / turds and you have a very solid game.
There is definitely a skill gap (which is *good*, means that good skill => wins more often), and it seems to attract the type of clan / ex military people who get a kick out of that stuff and play with headsets and teamsound, etc.
--Robert
For bonus points use the FUSE kernel module (File System User Space, http://www.ussg.iu.edu/hypermail/linux/kernel/0111 .1/0803.html) to get your tape drive to fast forward / rewind and implement a full filesystem.
:^)
Then, use tar to copy files to it. Then you'd be cool.
--Robert
In the simple case, Ogre is an engine, Cube is a thing.
...posted some new screenshots of their upcoming curling simulation, Granite 2004, which uses OGRE for rendering. We have to say it's looking very nice indeed.
;^)
"""
"""
Ogre doesn't do anything by itself except spit out Javadocs or Doxygen, or whatever. Cube is like quake. It runs, it does stuff, you can use it to build other things. At it's core it has a 3d engine that you could probably use for other projects (this is what Ogre is), but even without any extra work, it's a game in it's own right.
Ogre is going to have all the: "call this function to set up view-frustrum culling" or "call this function to update the in-game camera position" or "call this function to have your game instantiate an object oriented 3d object which the physics engine that you write can manipulate". (All apologies for my crappy explanations, any Ogre developers
Basically, each project's end-product is targetting different levels. Ogre is designed to be general purpose 3d rendering library, Cube is designed to be nifty, fun, extensible, editable game thingy.
--Robert
Once upon a time while using windows, I needed to add up some numbers that were scattered on a web page. Enter Calc. Problem is that Calc would disappear when clicking on explorer, then calc would cover some numbers when brought to front, can't scroll IE unless it has focuse, etc.
Enter: Actual Title Buttons (google, I'm lazy). It's a fine little shareware program that adds "Always on top" and "translucent windows" as available buttons for individual windows.
Turn on always on top, and translucency, and all of a sudden I can see both the numbers I'm adding up, and the webpage at the same time. I also have a much bigger target when toggling back and forth with the mouse between IE and Calc, because I can click on the window of each, rather than needing to task-switch through the title bar.
Perhaps a contrived example, but it turned out to be a surprisingly natural solution, since I knew it was something that could be done. And since most (99%) of all computers today have decent GL / transparency support, why not take advantage of it? You could always use the ION or RatPoison window managers, as I did for a while (nothing better than one of those for browsing full-screen internet... screen edge to screen edge of web-bliss!)
--Robert
Hoping this is not a troll, but according to Mr. Stallman / GNU.org, the BSD license (well, 'modern', non-advertising BSD) is explicitly compatible with GPL:
# GP LCompatibleLicenses
http://www.gnu.org/philosophy/license-list.html
However, Vice-Versa doesn't work (GPL "trumps" the BSD-ness of the other work, since the BSD is so permissive on what is possible to do with the code).
Here's a quick refresher for anyone who doesn't "get" the GPL: Don't think "Free Software" (like gratis, non-paying). Think "Libre Software" (like freedom). This is also said: "Free as in speech, not as in beer".
But the GPL is *not* freedom for the programmer, it's freedom for the source-code. Straight from the GPL...
"""
For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
"""
The BSD license basically says: "Do what you want, just don't sue me"
And a recommendation for all budding software haxors out there... GET COPYRIGHT OF CONTRIBUTOR CODE SIGNED OVER TO YOU (as project admin / fearless leader). The FSF requires this for all their sponsored projects, and it doesn't even have to be exclusive rights to the contributions.
Basically, once software is GPL, if you accept a typo-bugfix under the GPL, and don't receive assignation of copyright for it (not really, because of various "minor edits" stuff, IANAL), then the whole project (even if you're the 99% contributor and author of everything else) is forever and eternally available under the GPL, and you can't close it back off or change the license without *getting* that assignation of copyright (often stated: "the genie is out of the bottle").
From an individual project perspective, if you don't care about the code, use BSD (but remember that people can jack it and use it without giving you credit). If you want to make sure that the code you've written is always available no matter how it's used in the future, use LGPL (hey, *your* code is always available). If you have an agenda, go with the GPL (because GPL forces users of your code to also use GPL).
Honestly, pure GPL is really annoying a lot of times, witness the readline libraries. Want decent text-input handling? Boom, whole application is now GPL. My app doesn't deal with input handling, it isn't a text-editor. I (personally) consider input handling to be a "solved problem", but I can't use GNU-readline in my FooBar software v1.0 without releasing all my source code.
Personally, I usually don't have a problem with that, but I consider it most impolite to future programmers who want to use the bricks that I've built by stating: Even though you built this house yourself (using GNU/Brick 4.3), you still have to let me come in whenever I want and take a crap on those fancy toilet seats that you put in.
BSD => no restrictions.
LGPL => source code to your contributions (your bricks) will always be available.
GPL => use my GNU/library so I can crap on your new (GNU?) toilet seat.
Any questions?
--Robert
IANASOSPL (I am not a successful open source project leader). I come from a technical background, with the computer science degree.
s )
:^)
I agree with some of the existing sentiment: Care! If you want your project to succeed, and your users also want it to succeed, it will succeed.
In your situation, don't be 100% afraid of branches forks, and don't let yourself get pushed around by techy people who "know the right way to do things". Let them maintain their own branches (support the most serious ones if you can) or encourage them to fork it (in a good way! Sometimes the most important projects fork and re-merge, it's a part of evolution).
If it is truly better than your way, reap the benefits and re-integrate, either you at the helm, or that other hacker now in control.
The CEO of a company doesn't know how to write code, or manufacture widgets, but he knows that it needs to be done. You should feel the same way abour your project. Past a certain point, it might "need" a certain feature, or technical requirement that you don't feel the need for, or can't implement yourself. Remember humility and ask them to take the lead and implement the feature. If *you* can't figure out how to use it, or if it breaks too many other things, or becomes too complicated, then that fails your acceptance criterion. Try to work with them in order to get it compatible with the "mainline" distribution. Otherwise, provide links to their work or host patches or alternate versions as well. See UseMod wiki as a great example of this: (http://www.usemod.com/cgi-bin/wiki.pl?WikiPatche
Read kernel traffic! (http://www.kerneltraffic.org/kernel-traffic/), it is the most shining example of the open source process at work. Big-name technical people have the interesting technical spotlight shone on them (weekly, no less!) by Zack Brown (THANKS, ZACK!). It is an excellent example of disparate people working together on a vital portion of linux systems, and how even though one person might not have all the answers, together, they are able to come to an acceptable solution.
Most of all, have fun! Fun is fun, especially when you can get paid to have it at work, and still be doing something that is helping you with your job!
--Robert
Does that mean the next unix desktop is going to be using AA-Lib!?!? :^)
--Robert
Check this out:
:^)
Take a pentium 800mhz from 2-3 years ago. Compare it with a pentium 2.4ghz from this year. Thats an increase (for UP people) of 300% (three times.) Don't forget to subract your 7%, so you're back to a 293% relative performance increase (not really, but shut up).
Now, increase SMP performance by 10% or whatever. It makes sense. For the hobbyist, 7% performance degradation per annum is not going to make a difference, so long as there are significant improvements that can keep linux relevant.
I've heard of a project called "TurboKDE" which is taking KDE1.0 and hyping it up, where the KDE1.0 runs like 2-3 times faster than latest ones b/c of increasing complexity.
If you're running your 300mhz P2, then run a 2.2 kernel, if that workload is better. USB support is (I believe) back-ported, so you don't really have too many excuses not to. Can't buy it in stores? Don't need to, download it from kernel.org. Buy from CheapBytes.
Side-note: The internet is not permanent! When searching for demos of old video games (like SystemShock2) so I can try them on WineX, I ran into so many dead links it's not funny. Nothing replaces owning a personal copy of something on a CD.
That is all.
--Robert
There is an easy counterpoint to this:
Are you the best programmer on the planet? (no) Are you twice as good as somebody you know (ie: because you know perl, can you whip the pants off of somebody who only knows C)? Probably yes.
Therefore, we have proved that Compared to that person who is 1/2 as good as you, there is someone who is probably twice as good as you, giving a spread of 2 * 2 => 4.
Throw in less debugging and less maintenance, and good programmers can be worth their weight in gold. I *know* web stuff. Cookies, HTML, servers, CSS, etc. SQL, PHP, Perl, Cron, Bash, etc. Put me up somebody fresh out of college (in my field of expertise), with no work experience, and I'll thrash them mightily.
Pay a n00b programmer 40-50k. Pay me 80-100k (ow!, twice as much!). I am at least twice as productive as n00b programmer *when just programming*, not factoring in maintenance and debugging.
Please explain this to any MBA's that you see. Using word's they might understand: "Life's too short to drink cheap beer." There's not enough time in the day to fix all the crap that crappy programmers write.
Check out 90% of the projects on SF.net (bad sample, but everybody with a project on SF.net is at least more motivated than the average joe, even if they don't have all the mad skillz).
--Robert