Brasil is also in fairly good shape in some ways. In others you have a lot of work. For the most part though you just need honesty and time. You do not become 'first world' overnight.
Rote learning of definitions is not education. Trivia is nice, but you need to understand the hows and whys. I'm not expert of your education system, but that is one I've heard from others who seem to know something.
A stable government is a good start. Keep your government stable, educate the people and don't stand for crime. It will take time, but the rest falls into place over a few years.
A virtualization layer cannot do everything. However it can do a lot. Valgrind catches a lot of bugs in code because it is a virtualization layer.
Most importantly the layer can easily know where the stack return address is and prevent you from changing that. It also knows where the stack is, and what memory you have allocated, so it can prevent you from writing to anything else. It can also prevent you from running code in that area unless the memory was written with a function called dlopen (or other such), and it also can know in advance where dlopen is implemented so you can't write your own. (and why would you write your own when the system provides one, unless you wanted your code exploitable)
It is a matter of tradeoffs. Run your code in valgrind and you get 1/20th original speed. Run in a power powerful system and you go slower yet.
You need a business plan. Even if you want to stay small and private you should have one. A business plan is not about the plan it is about the research you do in order to write it! The plan is about forcing you to think about where the market it really going, and if sales really can grow as you want them to.
A stack of receipts is a useless indicator of how things will continue. An obvious example: a y2k consultant would have a large stack in December 1999, but clearly that business dried up literally overnight. The receipts would not tell you think, but a good business plan would. Not all business ventures on the verge of failure have obvious indicators they are going down fast. If you do the research on your plan you will know and have a plan to be making money elsewhere when it happens.
However in this case that is irrelevant. This guy wants to grow his business faster than he can raise money personally or from profits. He has no choice but get outside help. That means he needs something to show the bankers and venture capitalists. He is going to have a hard enough time getting to talk to them with a good business plan, they won't even look at him until after they have studied that plan. In fact his first task is to convince them to read his plan, which they won't want to take the time to do for an unknown. (which is why I said start a different business first so he is not an unknown)
Peter Lynch was not interested in what HE liked personally, he was interested in what people in general liked. That's why he invested in barbers who did a bad job of cutting his hair. (but only after a lot of thinking) That's why his favorite strategy was take his daughters to the mall. When his daughters bypassed GAP completely one day he knew in advance GAP was going to have a bad quarter.
Both studied those financial reports in depth. They both made sure the management was good. However before all that they went looking for companies that the people liked. All the nice numbers on paper and great management means nothing if the people don't like them. (though great management would never get into this situation)
Latter on Buffet had enough money that he make money doing strange things like invest in silver at the peak. (he then had it delivered and bankrupted the short traders he bought it from who had to scramble to get the physical stuff at any price)
No obligation, but it is stupid on Apple's part to not keep code in sync. One day soon Apple will realize that there are changes going into khtml that they cannot use because the code is so different. Apple will then be maintaining their browser entirely on their own.
It is Apple's right to fork GPL code like that. Sometimes there is even good reason to do so. However I don't see any good reason for it, and thus Apple should maintain compatibility.
If the ethernet is out on a modern computer it doesn't matter if there is power to the machine or not. Likewise if the computer doesn't have power it doesn't matter if there is a good ethernet connection to the computer. So why not combine them, there is no loss in reliability.
Try your local library. They likely have a copy. Mine does, and I checked it out one time. Basicly unreadable. The only reason to have it at all is if you can find the right section you can argue with the inspector. Not worth it in other words.
As I recall (but I'm not qualified to give any advice in this area) you are legal because your low voltage is physically separate from the high voltage.
My Geo metro is down to 2 cylinders (Still gets up to 70 mph as fast any anyone else, but mostly because people have no clue that you can accelerate in the acceleration lane), and some day it will die. I'd love to replace it with a diesel.
Currently VW's TDI looks good, but it is way over powered. (I drive 100+ miles/day) I need gas milage, power doesn't impress me anymore.
Read the article. There is a plan to use infrared from sources 500 feet (meters? I forget the units) away. However engineers are not confident that it will work. Blowers might work, except that you either need them on the tank (more weight to lift, and not areadynamic), or you put them on the platform and hope they never fail to retract after the main engines are lit.
In programing we have this concept of generics. Make your program as generic as you can so it can handle things like a different tax rate.
Laws use the same concept. Why write a wiretap law that only applies to your personal phone, a slightly different one that applies to your computer, and still another one for your cable modem. (And note that wifi internet is not covered above) You can instead write a generic tresspass law that applies to land, and computers. Go through a few iterations of debugging and you might even come up with a law that covers all the cases correctly.
Traffic violations are crime. Read the laws. If you don't like it vote for someone who will make it legal to park in front of a fire hydrant and eliminate the speed limit.
Yes, traffic violations are the most common crimes, and likely the most profitable. They are generally minor compared to "read" crime. They are still crime though.
Shells are a personal thing, and trivial to install and change. Make whichever you want default, but let the advanced users change shells. You might hire an old school Unix guy, like me, who likes his own personal shell. Make sure it is there. Not the default, but there for advanced users.
csh/tcsh is a must, because it is different and some people prefer it. (I still can't wrap my mind around bash, not that I've tried)
Install the adventure shell, because someone will want to try it.
The main reason to do this is some people like to be in charge. chsh is essentially a harmless command that gives your users a psychological feeling of power over the system without giving anything important up.
Start with a business plan. Your local library should have books to get it started. Spend all your time off work for the next several months (at least) polishing this document, and researching the options.
Investors have no interest in you until you show them a business plan they can believe. This means you have reasonable numbers for how long it will take to develop the product, how many people you will hire. How much it will cost to pay them (include benefits). What the overhead is in both people (you need an accountant, lawyer, and so on, some are outsourced, but you need to consider it), facilities (the building, the phones, the power bill, cleaners), and business expenses (insurance, marketing, travel to shows)
Make sure you devote enough time to understanding the market and the competition. Prove the competition won't have something better by the time you are done. Prove that people will be interested when you finally release. Prove that you will make plenty of money after you release.
Document your stages. You won't get all the money up front. You should plan on enough money for a few months, and then hire your developers to develop a prototype. Then show the prototype to get funding for the next round.
Notice I said hire developers. You are unlikely to have time to develop a product and run the business. You can help with development of the prototype, but don't loose sight of the fact that you are CEO, and expected to build the market so the product will sell when you release it, not create product. Plan on hiring experienced experts (ideally as co-investors) in starting/running a small business to help you.
Plan on putting something in yourself, and working for the basics (rent and food only) if you must take a salary at all.
Those with experience will often write a business plan that basically says "find a market and exploit it". What they are doing is getting funding to write the plan you need to write. Since you don't have experience in this, your first plan needs to skip this step.
Can you put your plan on a shelf? You will have much better luck if you have a business that you can start entirely out of your own pocket. When you have 10 employees and are making money the VCs will look at you as someone who knows how to run the business. (Even if you fail eventually, the experience is a positive) They are much more likely to take your plan and fund it if they trust you to run the company. In fact if you have no experience running a business they are likely to say "Good plan, but because you don't have experience running a business I can't trust you with my money". So start a business now, one you can expand slowly to several employees. Make sure you do a business plan for it though, so you don't fail.
No, now you can sue your school and have hope of winning if they do not protect your privacy until there is a court order.
There is a process in place to get information, it involves subpoenas and other such legal things. This is expensive for the RIAA, much easier to just ask the school who either way will have to turn the information over. The difference isn't major, but it is critical to rule of law (as opposed to anarchy).
The new guy completely re-wrote it from scratch. Part of the reason the code was so bad is it grew rather than be designed. Speed wasn't an issue (it was just a modified bootp server, the old guy started with a BSD bootp in fact), fixing bugs and the ability to add features was.
The old code was commented well, but stripping comments still would only be worth a few thousand lines, and the code would still be unreadable. I'm told be the junior's mentors that his code was more readable as well. (I didn't see his code, but I would tend to trust his mentor)
The senior guy took 9 months to write it, and had several more years of maintenance. The new guy re-wrote it in 3 months. Now granted the features where stable for the new guy, but the old guy never refactored his code to something maintainable, and I count that against him.
I don't care what you use. I care that my computers can interoperate with yours. I like Unix, and I'm cheap. FreeBSD (sysV is evil, and most linux distributions are sysV style) fits me perfectly.
When you send me a Microsoft word document because you assume I can open I we have a failing in interoperability.
More prevalent yes. However look at quality. Those who are good at one are bad at the other. If you read the link you will see that my claim is not incompatible with theirs, though some who write there will disagree.
I'd be considered a musician because I play mandolin. However I lack the talent to play it well. I enjoy it, so I keep on, but I will never be good. I'm generally a good programmer. (Not the best, but I'm better than most)
The musician in my original post (needed 20,000 lines to do what was redone in 3,000) was an excellent jazz musician. If touring wasn't so difficult he would make just as just as much playing on the road as he does as a programmer. To his credit, he can get by with code, and he is a better leader than most programmers, so he is worth more to management than most programmers even though overall he isn't a good programmer.
I've seen cases where a fresh from school programmer turned 20,000 lines of complex, hard to understand code into 3,000. The complex code was written by a programmer with 20 years experience. (Hence my belief that you cannot be both a good programmer and a good musician)
Surprisingly there wasn't a lot of swapping once we got logged in. Remember though we are only running one app that doesn't take a lot of memory, and we don't do anything extensive with XP. When the machine boots it swaps a bit out to disk, but it never has to bring most of that in because we don't use it.
As I discovered after installing it, Windows XP runs just fine in 64 Meg of RAM on a 400 Mhz PII. Course this was a lab system that only had to run the latest version of our backup software, and a VNC server. (ECC RAM is required more is out of the question) I do all my real work on machines running FreeBSD, but when you make your money from Microsoft Windows you have to test with it once in a while.
The proper thing would be to pass struct device_info * all over. Callers don't need to know the contents of device_info, just that it is a pointer. Then the compiler can prevent lots of bugs because it can make sure only device_info structures are passed in.
As is someone can do:
device_operation(device+1);// next device
which will work for standard file descriptors (though not a good idea there), but will not work with the above code. As written the compiler cannot do the right thing. My way the compiler can do the right thing. (well sometimes, if you are keeping an array of these things around)
Pointers are powerful. Casts are too easily abused, to create bugs that show up years latter.
Linus cannot revoke the license for Linux. He can't even change them, because he is not the only copyright holder. The copyright is held by a few thousand individual developers (and a few companies) who each have to agree to licenses changes, or their code removed before the license can change.
Brasil is also in fairly good shape in some ways. In others you have a lot of work. For the most part though you just need honesty and time. You do not become 'first world' overnight.
Rote learning of definitions is not education. Trivia is nice, but you need to understand the hows and whys. I'm not expert of your education system, but that is one I've heard from others who seem to know something.
A stable government is a good start. Keep your government stable, educate the people and don't stand for crime. It will take time, but the rest falls into place over a few years.
Microsoft has made several attempts to get Windows into the service model. So far almost nobody has bought it.
A virtualization layer cannot do everything. However it can do a lot. Valgrind catches a lot of bugs in code because it is a virtualization layer.
Most importantly the layer can easily know where the stack return address is and prevent you from changing that. It also knows where the stack is, and what memory you have allocated, so it can prevent you from writing to anything else. It can also prevent you from running code in that area unless the memory was written with a function called dlopen (or other such), and it also can know in advance where dlopen is implemented so you can't write your own. (and why would you write your own when the system provides one, unless you wanted your code exploitable)
It is a matter of tradeoffs. Run your code in valgrind and you get 1/20th original speed. Run in a power powerful system and you go slower yet.
You need a business plan. Even if you want to stay small and private you should have one. A business plan is not about the plan it is about the research you do in order to write it! The plan is about forcing you to think about where the market it really going, and if sales really can grow as you want them to.
A stack of receipts is a useless indicator of how things will continue. An obvious example: a y2k consultant would have a large stack in December 1999, but clearly that business dried up literally overnight. The receipts would not tell you think, but a good business plan would. Not all business ventures on the verge of failure have obvious indicators they are going down fast. If you do the research on your plan you will know and have a plan to be making money elsewhere when it happens.
However in this case that is irrelevant. This guy wants to grow his business faster than he can raise money personally or from profits. He has no choice but get outside help. That means he needs something to show the bankers and venture capitalists. He is going to have a hard enough time getting to talk to them with a good business plan, they won't even look at him until after they have studied that plan. In fact his first task is to convince them to read his plan, which they won't want to take the time to do for an unknown. (which is why I said start a different business first so he is not an unknown)
Peter Lynch was not interested in what HE liked personally, he was interested in what people in general liked. That's why he invested in barbers who did a bad job of cutting his hair. (but only after a lot of thinking) That's why his favorite strategy was take his daughters to the mall. When his daughters bypassed GAP completely one day he knew in advance GAP was going to have a bad quarter.
Both studied those financial reports in depth. They both made sure the management was good. However before all that they went looking for companies that the people liked. All the nice numbers on paper and great management means nothing if the people don't like them. (though great management would never get into this situation)
Latter on Buffet had enough money that he make money doing strange things like invest in silver at the peak. (he then had it delivered and bankrupted the short traders he bought it from who had to scramble to get the physical stuff at any price)
No obligation, but it is stupid on Apple's part to not keep code in sync. One day soon Apple will realize that there are changes going into khtml that they cannot use because the code is so different. Apple will then be maintaining their browser entirely on their own.
It is Apple's right to fork GPL code like that. Sometimes there is even good reason to do so. However I don't see any good reason for it, and thus Apple should maintain compatibility.
No, the ancients had a better ability at arithmetic. However all the boring calculation prevented them from seeing the forest for the trees too.
If the ethernet is out on a modern computer it doesn't matter if there is power to the machine or not. Likewise if the computer doesn't have power it doesn't matter if there is a good ethernet connection to the computer. So why not combine them, there is no loss in reliability.
Try your local library. They likely have a copy. Mine does, and I checked it out one time. Basicly unreadable. The only reason to have it at all is if you can find the right section you can argue with the inspector. Not worth it in other words.
As I recall (but I'm not qualified to give any advice in this area) you are legal because your low voltage is physically separate from the high voltage.
My Geo metro is down to 2 cylinders (Still gets up to 70 mph as fast any anyone else, but mostly because people have no clue that you can accelerate in the acceleration lane), and some day it will die. I'd love to replace it with a diesel.
Currently VW's TDI looks good, but it is way over powered. (I drive 100+ miles/day) I need gas milage, power doesn't impress me anymore.
Read the article. There is a plan to use infrared from sources 500 feet (meters? I forget the units) away. However engineers are not confident that it will work. Blowers might work, except that you either need them on the tank (more weight to lift, and not areadynamic), or you put them on the platform and hope they never fail to retract after the main engines are lit.
In programing we have this concept of generics. Make your program as generic as you can so it can handle things like a different tax rate.
Laws use the same concept. Why write a wiretap law that only applies to your personal phone, a slightly different one that applies to your computer, and still another one for your cable modem. (And note that wifi internet is not covered above) You can instead write a generic tresspass law that applies to land, and computers. Go through a few iterations of debugging and you might even come up with a law that covers all the cases correctly.
Traffic violations are crime. Read the laws. If you don't like it vote for someone who will make it legal to park in front of a fire hydrant and eliminate the speed limit.
Yes, traffic violations are the most common crimes, and likely the most profitable. They are generally minor compared to "read" crime. They are still crime though.
Shells are a personal thing, and trivial to install and change. Make whichever you want default, but let the advanced users change shells. You might hire an old school Unix guy, like me, who likes his own personal shell. Make sure it is there. Not the default, but there for advanced users.
csh/tcsh is a must, because it is different and some people prefer it. (I still can't wrap my mind around bash, not that I've tried)
Install the adventure shell, because someone will want to try it.
The main reason to do this is some people like to be in charge. chsh is essentially a harmless command that gives your users a psychological feeling of power over the system without giving anything important up.
Start with a business plan. Your local library should have books to get it started. Spend all your time off work for the next several months (at least) polishing this document, and researching the options.
Investors have no interest in you until you show them a business plan they can believe. This means you have reasonable numbers for how long it will take to develop the product, how many people you will hire. How much it will cost to pay them (include benefits). What the overhead is in both people (you need an accountant, lawyer, and so on, some are outsourced, but you need to consider it), facilities (the building, the phones, the power bill, cleaners), and business expenses (insurance, marketing, travel to shows)
Make sure you devote enough time to understanding the market and the competition. Prove the competition won't have something better by the time you are done. Prove that people will be interested when you finally release. Prove that you will make plenty of money after you release.
Document your stages. You won't get all the money up front. You should plan on enough money for a few months, and then hire your developers to develop a prototype. Then show the prototype to get funding for the next round.
Notice I said hire developers. You are unlikely to have time to develop a product and run the business. You can help with development of the prototype, but don't loose sight of the fact that you are CEO, and expected to build the market so the product will sell when you release it, not create product. Plan on hiring experienced experts (ideally as co-investors) in starting/running a small business to help you.
Plan on putting something in yourself, and working for the basics (rent and food only) if you must take a salary at all.
Those with experience will often write a business plan that basically says "find a market and exploit it". What they are doing is getting funding to write the plan you need to write. Since you don't have experience in this, your first plan needs to skip this step.
Can you put your plan on a shelf? You will have much better luck if you have a business that you can start entirely out of your own pocket. When you have 10 employees and are making money the VCs will look at you as someone who knows how to run the business. (Even if you fail eventually, the experience is a positive) They are much more likely to take your plan and fund it if they trust you to run the company. In fact if you have no experience running a business they are likely to say "Good plan, but because you don't have experience running a business I can't trust you with my money". So start a business now, one you can expand slowly to several employees. Make sure you do a business plan for it though, so you don't fail.
No, now you can sue your school and have hope of winning if they do not protect your privacy until there is a court order.
There is a process in place to get information, it involves subpoenas and other such legal things. This is expensive for the RIAA, much easier to just ask the school who either way will have to turn the information over. The difference isn't major, but it is critical to rule of law (as opposed to anarchy).
The new guy completely re-wrote it from scratch. Part of the reason the code was so bad is it grew rather than be designed. Speed wasn't an issue (it was just a modified bootp server, the old guy started with a BSD bootp in fact), fixing bugs and the ability to add features was.
The old code was commented well, but stripping comments still would only be worth a few thousand lines, and the code would still be unreadable. I'm told be the junior's mentors that his code was more readable as well. (I didn't see his code, but I would tend to trust his mentor)
The senior guy took 9 months to write it, and had several more years of maintenance. The new guy re-wrote it in 3 months. Now granted the features where stable for the new guy, but the old guy never refactored his code to something maintainable, and I count that against him.
Yeah right, do you really believe that they would put a $.30 optoisolater on a $4 ethernet card?
Thick ethernet (10base5) was designed for this situation. Thinnet (10base2), and 10BaseT was not. Nothing faster was either.
Use wireless, or glass fiber. It isn't that much more, and it eliminates worries.
I don't care what you use. I care that my computers can interoperate with yours. I like Unix, and I'm cheap. FreeBSD (sysV is evil, and most linux distributions are sysV style) fits me perfectly.
When you send me a Microsoft word document because you assume I can open I we have a failing in interoperability.
More prevalent yes. However look at quality. Those who are good at one are bad at the other. If you read the link you will see that my claim is not incompatible with theirs, though some who write there will disagree.
I'd be considered a musician because I play mandolin. However I lack the talent to play it well. I enjoy it, so I keep on, but I will never be good. I'm generally a good programmer. (Not the best, but I'm better than most)
The musician in my original post (needed 20,000 lines to do what was redone in 3,000) was an excellent jazz musician. If touring wasn't so difficult he would make just as just as much playing on the road as he does as a programmer. To his credit, he can get by with code, and he is a better leader than most programmers, so he is worth more to management than most programmers even though overall he isn't a good programmer.
I've seen cases where a fresh from school programmer turned 20,000 lines of complex, hard to understand code into 3,000. The complex code was written by a programmer with 20 years experience. (Hence my belief that you cannot be both a good programmer and a good musician)
Surprisingly there wasn't a lot of swapping once we got logged in. Remember though we are only running one app that doesn't take a lot of memory, and we don't do anything extensive with XP. When the machine boots it swaps a bit out to disk, but it never has to bring most of that in because we don't use it.
As I discovered after installing it, Windows XP runs just fine in 64 Meg of RAM on a 400 Mhz PII. Course this was a lab system that only had to run the latest version of our backup software, and a VNC server. (ECC RAM is required more is out of the question) I do all my real work on machines running FreeBSD, but when you make your money from Microsoft Windows you have to test with it once in a while.
The proper thing would be to pass struct device_info * all over. Callers don't need to know the contents of device_info, just that it is a pointer. Then the compiler can prevent lots of bugs because it can make sure only device_info structures are passed in.
As is someone can do:
which will work for standard file descriptors (though not a good idea there), but will not work with the above code. As written the compiler cannot do the right thing. My way the compiler can do the right thing. (well sometimes, if you are keeping an array of these things around)Pointers are powerful. Casts are too easily abused, to create bugs that show up years latter.
Linus cannot revoke the license for Linux. He can't even change them, because he is not the only copyright holder. The copyright is held by a few thousand individual developers (and a few companies) who each have to agree to licenses changes, or their code removed before the license can change.