...for the most reasoned response of this whole bunch.
I'm creating an Open Source project (jrwho, btw. You need to Google search "jrwho java" to find it). Nobody is downloading it; nobody cares. I have an audience of 1, a coworker, who is using my previous version and will likely use this one.
C'est la vie, I'm learning Java... that's my goal. Anybody else who wants it can expect to get their money's worth, and I mean it.:-P Should someone else want it, I may feel a little bad if I do not their expectations- but then again, anyone that feels compelled to make demands of my program can feel free to pay me to meet them. -the Pupp
Boy, a lotta chatter in here about all kinds of stuff... well, here is an attempt to answer the question.
First, a computer will probably never be "instant on" because there's a lot of stuff that needs to happen to get it going. Especially concerning pluggable hardware- USB disks, cameras, scanners, etc.- where the computer has to basically reset it, wait for it to answer back, load drivers, or what have you. Also, consider networking- it's notoriously slow and inherently unreliable. Even if you know that your DSL router is up every day, the computer has to assume that it may not be there, so it has to allow for certain timeouts. This sort of timeout logic takes place more than you think.
That said, a lot of the time is because the manufacturers have cobbled together stuff over time, and it's really poorly done. That, to me, is the bottom line. Look at Linux and UNIX- its startup routines basically were designed 20-30 years ago. The programmers took the easy way out, "Let's see... first I gotta do this, then I gotta do that... oh, and this depends on that so I'll start that first and make sure it's up and running before I move on..."
But in the latest version of Solaris (a version of UNIX), for example, they realized that a lot of the startup IS slow and inefficient, and they redesigned it. In this way, the computer can be up and you can be logging in while services are still starting.
To my mind, the only thing that needs to be up on the computer is the hard drive and monitor. And those don't change too often. For everything else, the machine should quietly start them, while still allowing you to login (of course, that would be difficult to do without a keyboard:-) ). I think startup on most machines could be reduced to 10 seconds if it was properly designed.
Someone correct me if I'm wrong, but wasn't the BeOS really fast on startup?
Here's how it worked for me:
1. Figure out what you like- no, what you *really* like.
2. Decide if you want to invest the time to do it, because it's going to take a lot of time.
3. Do it. Though you now know nothing about it- do it. All the hokey sayings apply: "The journey of 1000 miles begins with a single step," "There is no try. There is only do." (Yoda:-)
Learning anything technical is basically an exercise in some intelligence, a good deal more time, a great deal more perseverence, with an equal measure of proficiency in sniffing out answers. Remember, in the words of another great sage, "Google is your friend." Find code, and steal it!...Open source code, and with proper attribution, of course:-).
I attempted to learn Java/Swing multiple times before I finally "got" it. I remember how opaque and utterly confusing/huge/unknowable it seemed. But now I can sling Java code around at will. I have little fear of ripping and rewriting huge chunks of my code, if necessary. There was a lot of road kill along the way... but eventually I got there.
To sum it up: First, focus. Then, persevere. In your darkest, most confused and frustrated moments, persevere. You'll break through.
As someone (Einstein?) once said, and I paraphrase, "Any idiot can come up with an idea. It takes hard work to get things done."
...for the most reasoned response of this whole bunch.
:-P Should someone else want it, I may feel a little bad if I do not their expectations- but then again, anyone that feels compelled to make demands of my program can feel free to pay me to meet them.
I'm creating an Open Source project (jrwho, btw. You need to Google search "jrwho java" to find it). Nobody is downloading it; nobody cares. I have an audience of 1, a coworker, who is using my previous version and will likely use this one.
C'est la vie, I'm learning Java... that's my goal. Anybody else who wants it can expect to get their money's worth, and I mean it.
-the Pupp
First, a computer will probably never be "instant on" because there's a lot of stuff that needs to happen to get it going. Especially concerning pluggable hardware- USB disks, cameras, scanners, etc.- where the computer has to basically reset it, wait for it to answer back, load drivers, or what have you. Also, consider networking- it's notoriously slow and inherently unreliable. Even if you know that your DSL router is up every day, the computer has to assume that it may not be there, so it has to allow for certain timeouts. This sort of timeout logic takes place more than you think.
That said, a lot of the time is because the manufacturers have cobbled together stuff over time, and it's really poorly done. That, to me, is the bottom line. Look at Linux and UNIX- its startup routines basically were designed 20-30 years ago. The programmers took the easy way out, "Let's see... first I gotta do this, then I gotta do that... oh, and this depends on that so I'll start that first and make sure it's up and running before I move on..."
But in the latest version of Solaris (a version of UNIX), for example, they realized that a lot of the startup IS slow and inefficient, and they redesigned it. In this way, the computer can be up and you can be logging in while services are still starting.
To my mind, the only thing that needs to be up on the computer is the hard drive and monitor. And those don't change too often. For everything else, the machine should quietly start them, while still allowing you to login (of course, that would be difficult to do without a keyboard :-) ). I think startup on most machines could be reduced to 10 seconds if it was properly designed.
Someone correct me if I'm wrong, but wasn't the BeOS really fast on startup?
-Mike Schwager
1. Figure out what you like- no, what you *really* like.
2. Decide if you want to invest the time to do it, because it's going to take a lot of time.
3. Do it. Though you now know nothing about it- do it. All the hokey sayings apply: "The journey of 1000 miles begins with a single step," "There is no try. There is only do." (Yoda
Learning anything technical is basically an exercise in some intelligence, a good deal more time, a great deal more perseverence, with an equal measure of proficiency in sniffing out answers. Remember, in the words of another great sage, "Google is your friend." Find code, and steal it! ...Open source code, and with proper attribution, of course :-).
I attempted to learn Java/Swing multiple times before I finally "got" it. I remember how opaque and utterly confusing/huge/unknowable it seemed. But now I can sling Java code around at will. I have little fear of ripping and rewriting huge chunks of my code, if necessary. There was a lot of road kill along the way... but eventually I got there.
To sum it up: First, focus. Then, persevere. In your darkest, most confused and frustrated moments, persevere. You'll break through.
As someone (Einstein?) once said, and I paraphrase, "Any idiot can come up with an idea. It takes hard work to get things done."
-Mike Schwager