I went to Barcelona and laughed when a group of three guys couldn't decide if they wanted to try and roll me, or sell me weed. They saw the American glint in my eyes, daring them to make a move, and went with weed (which I did not buy.) They were probably like 50kg EACH to my 80kg of muscle. I think Spaniards are way tougher than French, on average.
When my friend was in Spain, someone started something at a bar. So he broke a bottle and threaten to cut him. The guy was like 2x his size, and backed down.
I honestly think there is no comparison between (non-Russia) Europeans and (fit, in shape) Americans. I agree with you about the dumb, fat, American tourists. We come in two sizes - big and strong, or big and fat.
I think there might be the underground superhero/villain, and hopefully a profitable project, but I think it's practice for Mars. The Martian ground offers conveniently available radiation shielding.
You are literally asking what is the best way to "isolate" something, and then allow "data transfer" from that thing. The thing you are asking to allow completely negates the first action. These things are literally opposites.
Did this question make anyone else sad? I always wonder if this means today was a slow news day.
You can have all the diamonds, gold, and tungsten, you want, when you pay the market price. The same is true for labor. Eventually, people will stop doing what they were doing, and start doing what you want them to do, if you pay them enough.
Eventually, everything evens out when prices become high enough, new producers come on-line, and new (consumable?) resources are discovered, or extraction method are invented. How long does it take for someone to become a security expert? Five years? At least with human resources, there isn't the same concern with extraction, and consumption, costs. If they're already good at software development, and building infrastructure, maybe a year?
Seriously, this is like BASIC economics - they can close the gap by paying them vastly more, thus encouraging software developers to specialize in security. Using contractors is the short term version of this.
When prices become high enough, I'll start bidding on security contracts. As it is, if companies would rather fill those positions with W2s, and not contractors, and leave the work undone.
This title is seriously demonstration a lack of economic knowledge.
We cannot agree on global declarations of human rights, property rights, units of measurement, or basically anything else.
So, no. We could not build a global mesh network. It's physically possible with technology from 10-15 years ago, but it is clearly impossible with the current political concept of "global."
I got my master's degree with this guy, and I had to take a Haskell course, or seminar, every semester. I was, and still am, pretty terrible at Haskell.
However, what I attempted to learn helped my Python out a lot. Map and filter are two of my favorites, and the other functional paradigms are occasionally useful to me as an actually working, productive, programmer. I'm happy I was exposed to those concepts, since they tend to come in handy. Yes, everything is Turing complete, and you can accomplish the same things without functional programming, or without high level language, or without computers, but that doesn't mean they are all equally useful to solving the problem at hand.
I recommend everyone become familiar with functional concepts in some way, if only to make them more well rounded. I don't advocate writing your next web application in Haskell though...
Yeah, this is a management problem. The technical safeguard I proposed won't work unless management buys in, which clearly they haven't already since this could be addressed by policy, but it hasn't been.
and the "fix" gets released with the larger code change set, to production...
The problem here is that the fix "gets released." I agree, that it seems like releases should at least have the criteria that at least one other person has reviewed the code being released. Otherwise, they have the criteria that one person decided to release it (by definition.)
I think you could create a system by which pull requests are approved by someone other than the person that created them, and then, after it's been approved, then the code is authorized to be merged into a release branch. Here's one such discussion of that. I'm not an expert on this, but I've heard of it, and I think this line of reasoning could help you.
I own Noventum Custom Software. Noventum is a small company (me + 1 full time W2, and 3 part time 1099s) that offers software development services to others. This isn't exactly a high growth startup, but we do have two intellectual property projects we're working on (that customers paid for, which we own the IP.)
I have two rules:
1.) Know how we're going to get paid before working on a software project, and where the money came from (past tense - already exists and can be talked about using concrete terms.)
2.) Don't work with people with zero business experience, even if they meet the first criteria.
Our model is based on very low risk, slow growth, tried and true business practices. All of our customers are successful companies that have come to rely on custom software for their businesses to function, and it's immediately clear how they plan on paying us. Mine is not the kind of business that other people invest in, or that brings a brand new, innovative, product to market quickly. I am building a team, and involved in activities that I believe will help me with the skills needed to actually have a product.
So, for you, what I would recommend is to start contracting, and gain business experience. If you're able to offer your services to others at hourly, or in fixed-rate, contracts you will start to develop all of the ancillary skills that are related to selling software, which are only tangentially related to the actual coding. There are many such skills, with the primary one being sales. Unless your organization has some ability to sell, it won't really matter how awesome your product is if no one knows about it, no one is buying it, and you have to work another job to pay your bills. Also correctly paying taxes, and managing the books for a business is another skill that I wish I was better at. Aesthetics are another skillset that I lack - it's important to make things look nice. All of these skills take time to develop, or even to be able to evaluate in others. If you have a mountain of cash, you'll burn through it learning what it means to manage salespeople, designers, and accountants, unless you have some skill in these areas.
The three successful product companies I've worked with/for all began contracting. This allowed them to get paid to learn their customers' needs, since the customers would then sign a contract with them to have these needs met. This is the approach I recommend.
I am also from New Mexico. Culturally, we don't look highly upon the 18 companies that VCs fund that go broke in order for there to be one home run. This model is not attractive to me, even if I understand the basic mathematics behind it, and consider it an effective method of wealth generation. Depending on your values, geographic location, tolerance for risk, and perception of the passage of time, there may be a better path than contracting for you.
This has been answered many times over the years. Joel Spolsky did a good job in his book Joel on Software, which I highly recommend you read if you're asking these kind of questions. His blog is good too.
The crackhead that burgled one of my tenants did it with a vice grips after leaving their window open an a Macbook visible from the window. The bars weren't attached with security bolts (one way) but rather regular bolts (two ways.) That burglar didn't even bother bring a ratchet to make removing the bolts happen quicker. Do you think he's going to be able to make security cameras stop responding with his in-depth knowledge of the BlueTooth protocol and years of experience working cyber security at a National Laboratory? I don't. The other time my tenant was burgled they left a bicycle locked to a wooden structure, which was ripped apart with a chain tied to a truck. The other other time a different (not the same) tenant was burgled they left a GPS, binoculars, and some other valuable thing visible in their car. That burglar used a cinder block.
Don't leave your valuables visible when you're not around to back them up with your 2nd amendment rights.
Seriously, this entire posting is retarded. Try and keep a shotgun handy (no aiming!) a big dog, and friends/tenants/roommates around to keep the diversity of the city outside your domicile. Nest security cameras aren't going to do anything against the nondescript minority/white guy in a hoodie that's ready to throw the dice and jack your shit with a brick.
This is why Albuquerque can't have nice things, and Breaking Bad was filmed here.
MySQL will not allow table names to be passed in as parameters to a stored procedure [1][2][3]. Without eval, there is no way to dynamically use a stored procedure to operate over multiple, different, tables without enumerating all the tables. The code needed for the "safe" approach is massively bigger, n * m, where m is the body of your stored procedure and n is the set of tables you want to operate over. It also requires such a massive degree of code duplication to make it significantly less safe.
We have a reporting system called MyDBR that requires everything to be done in MySQL or JavaScript. Likely, a stored procedure isn't the best answer for my problems, but it's better than JavaScript. Probably the "safest" answer is to throw away MyDBR and use an actual programming environment to accomplish what I'd like (sane reporting.)
The entire premise of this article seems odd to me. Who would forget these techniques, unless they never really learned them in the first place? And why would the author want to revisit them? I think because it was a slow news day.
This is the problem with other people's money (OPM.) I don't think it much matters if the money comes from crowd funding, tax payers, or more traditional investment, when money comes from someone other than a paying customer (that values your goods or services, now, more than their money, now) there is often times a disconnect.
Do you have equity? If not, then what incentive do you have for caring about the success of the venture you're involved with?
I own my own company now. Before I owned my own company, I realized that my success, and the success of the organization I worked for, were tied together. If I succeeded, and the company did not, that would be very short term for one of us. The same if the company succeed, and I did not. This is how Americans, with any understanding of economics, sense of connectedness, and general work ethic, view things. These understandings, like the one I outlined to you, and a myriad of other (relatively implicit) understandings, are why I choose to hire American workers at 3-5x what their outsourced counterparts would make. - [and I speak Russian.]
I want to succeed, and see everyone around me succeed, through our hard work and diligence. This is typically a value that Americans hold. This is not a value shared by other cultures, and other societies. Studying Russia, and Russian, has helped me analyze their culture, as well as question a number of the assumptions most people hold about ours.
As soon as I heard the intro song, I knew things were not going to end well...
Before the video:
"Brian, want to come to our startup pitch event?"
"Will each team have an intro song, and it will be crazy high energy for no reason?"
"No, that's dumb. We're not going to do that."
"OK cool, I'll come and drink some free beer. Thanks."
After the video:
"Brian, want to come to our startup pitch event?"
"Will each team have an intro song, and it will be crazy high energy for no reason, LIKE THIS?"
.
.
Thanks for sharing that with me. I am seriously going to use that video when people invite me to startup events.
I believe it doesn't matter how awesome you are at the latest and greatest programming language, or how skillfully you can apply a binary search to an interview problem, if you cannot understand why you are applying technology to help someone. If you can understand the need for software, then all of those other points are much easier to improve on, and apply.
For me, what made me a better programmer (past the bachelors, masters, in computer science, and six years of hardcore, full time, programming) was selling. Not taking management classes, and learning about selling but actually selling software. To sell, you have to understand someone else's need. You have to understand it well enough to sell yourself that you can help them, and then sell them on your belief. This is the good kind of sales. Everyone has seen amazing software products that were shelved, because they didn't meet the need of someone evaluating them. If you can understand how to help someone, with technology, and convince them you'll remove their pain, you'll be able to write your own ticket.
Hustle on the terrible online job boards. Compete with the low cost 3rd world at a fraction of what you're currently making. Then, once you can pitch without sounding completely retarded, try it in person. And you'll fail. Again and again. That's the cost of tuition. Eventually, you won't fail at selling. Talk with people that know how to evaluate an offer, and a technical solution. The problems you'll see, once you really understand your customers, are very rarely that complicated, novel, and difficult, and (for my company that is general development without much of a specialization past very general open source) don't usually require much beyond best practices and a very rudimentary knowledge of efficiency. This is because most of the people that can sell are absolutely terrible at coding, and the people that can code are absolutely terrible at selling.
“Would you tell me, please, which way I ought to go from here?' 'That depends a good deal on where you want to get to,' said the Cat. 'I don't much care where -' said Alice. 'Then it doesn't matter which way you go,' said the Cat. '- so long as I get SOMEWHERE,' Alice added as an explanation. 'Oh, you're sure to do that,' said the Cat, 'if you only walk long enough.”
I vote you learn how to sell. You'll be able to sell yourself to an employee much easier, if that is your eventual goal.
I was at the Lunar Lander challenge, for the X-Prize a few years ago.
The problem with being at a "safe distance" is that it is so far away that you can barely see anything, except when the rocket is REALLY high up. We watched the entire thing on gigantic TV monitors, despite being "there." It's still a cool experience - sort of like a music concert, except for science, but don't think being there will give you a good view (at least not if you're a safe distance away!)
That depends entirely on the level of disciple present in the colony.
Countrymen, the long experience of our late miseries I hope is sufficient to persuade everyone to a present correction of himself, And think not that either my pains nor the adventurers' purses will ever maintain you in idleness and sloth......the greater part must be more industrious, or starve...
You must obey this now for a law, that he that will not work shall not eat (except by sickness he be disabled). For the labors of thirty or forty honest and industrious men shall not be consumed to maintain a hundred and fifty idle loiterers.
You are talking about somewhere between $50-$100, right? You walk away from it, and realize that your time could (HOPEFULLY?) be better spent on more productive things.
When a small store gave me incorrect change, and was unpleasant about the correction of that error, I walked away and never came back. Anything else would have not been worth my time. Unless you want to turn this into a hobby, I suggest you take a similar approach. Whenever anyone asks me about that store, I tell them a similar story, and advise them to go to a different store. That alone cost the store far more than when they jacked from me on my change. It was the store owner that robbed me.
If you believe that code will help someone with understanding (yourself included) then it is necessary. It is needed to help with clarity. It may not be strictly required for the correctness of your program, but your goal should not be to express the correct solution as succinctly as possible. That approach leads to many other problems.
Occasionally I include solutions for problems which have not yet been uncovered. Those methods may not be called (dead code) and any kind of static analysis would report them as "unnecessary." If I make the decision that such code will help me, or help someone else, later then I believe it is totally necessary, and good to include. Worse-case is that it will be a good starting point for someone later, and they will throw it away and replace it with something better.
Never include unnecessary code. If there are incorrect implementations that you are replacing, remove the incorrect ones! Don't leave traps lying around for people to get caught in. Unexecuted code, or not succinct code, is not unnecessary. I constantly include semicolons, and brackets around one-line conditionals - those are defensive practices which are designed to prevent future problems, and aid in clarity.
This is why people are hiring you - to apply human intelligence and judgement to a problem. There are situations where doing not strictly necessary things is appropriate, and situations when doing not strictly necessary things is a waste of time. It's up to you to decide. Different actions are necessary for different metrics. One thing may be necessary for a correct solution, and another thing may be necessary to help someone else understand your correct solution. Everything should be useful (necessary?) under some kind of metric.
How often is it that you have a brand new system, in which you get to choose your language? Unless you are independently wealthy, or part of a funded started (indirectly independently wealthy, partially) the answer is probably not very often. Whenever someone has a brand new, completely open, technological problem, they have a green field.
This is not very common, at least for me. I have a BS + MS in computer science, worked for three years as an employee in two companies, and now own my own small software company (with two guys I pay to write code for me) and have been in business for myself for four years. I charge enough money to pay my people, and my bills, through revenue. That means, by definition, that my customers have to be able to pay. I live in a poor state, without a tidal wave of venture capital. Almost everyone here has a legacy system, which is generating them money, which they can use to pay us. Those systems come with constraints.
There have been three times in my 10+ years of experience creating software during which I was able to 100% choose everything technology related for a project. Once was part of a barely funded start up. The other was part of a successful business that contracted with my company to greatly expand their eCommerce, completely scrapping their existing system and letting me choose everything. The third is ongoing - a customer described their problem in a high level, and nothing existed to solve it. For the third example, I am bound by (light) constraints regarding the other system we are interfacing with, and it has to be web-based. Otherwise, my more than full time experience, has been as a maintenance programmer, or as a manager over a team of maintenance programmers. This guy is way more eloquent than I am about the subject, and way smarter + more successful. Think about what the very successful people have to say about these kind of things.
I think different people, in different states, have different approaches. The most poorly organized organizations, and ventures, had very few constraints. They didn't have to answer to anyone about their technological choices, and typically had money to "build something." Sometimes that results in beautiful leaps forward, for humanity as a whole. I think most of the time it doesn't. Maintenance programming means you are maintaining something useful, for someone that is interested in paying you. You'll also learn new skills, and new languages / technologies / tools, just out of necessity, rather than being freely chosen, with no constraints.
I went to Barcelona and laughed when a group of three guys couldn't decide if they wanted to try and roll me, or sell me weed. They saw the American glint in my eyes, daring them to make a move, and went with weed (which I did not buy.) They were probably like 50kg EACH to my 80kg of muscle. I think Spaniards are way tougher than French, on average.
When my friend was in Spain, someone started something at a bar. So he broke a bottle and threaten to cut him. The guy was like 2x his size, and backed down.
I honestly think there is no comparison between (non-Russia) Europeans and (fit, in shape) Americans. I agree with you about the dumb, fat, American tourists. We come in two sizes - big and strong, or big and fat.
I think there might be the underground superhero/villain, and hopefully a profitable project, but I think it's practice for Mars. The Martian ground offers conveniently available radiation shielding.
You are literally asking what is the best way to "isolate" something, and then allow "data transfer" from that thing. The thing you are asking to allow completely negates the first action. These things are literally opposites.
Did this question make anyone else sad? I always wonder if this means today was a slow news day.
You can have all the diamonds, gold, and tungsten, you want, when you pay the market price. The same is true for labor. Eventually, people will stop doing what they were doing, and start doing what you want them to do, if you pay them enough.
Eventually, everything evens out when prices become high enough, new producers come on-line, and new (consumable?) resources are discovered, or extraction method are invented. How long does it take for someone to become a security expert? Five years? At least with human resources, there isn't the same concern with extraction, and consumption, costs. If they're already good at software development, and building infrastructure, maybe a year?
Seriously, this is like BASIC economics - they can close the gap by paying them vastly more, thus encouraging software developers to specialize in security. Using contractors is the short term version of this.
When prices become high enough, I'll start bidding on security contracts. As it is, if companies would rather fill those positions with W2s, and not contractors, and leave the work undone.
This title is seriously demonstration a lack of economic knowledge.
There are no laws of physics in the way.
We cannot agree on global declarations of human rights, property rights, units of measurement, or basically anything else.
So, no. We could not build a global mesh network. It's physically possible with technology from 10-15 years ago, but it is clearly impossible with the current political concept of "global."
I got my master's degree with this guy, and I had to take a Haskell course, or seminar, every semester. I was, and still am, pretty terrible at Haskell.
However, what I attempted to learn helped my Python out a lot. Map and filter are two of my favorites, and the other functional paradigms are occasionally useful to me as an actually working, productive, programmer. I'm happy I was exposed to those concepts, since they tend to come in handy. Yes, everything is Turing complete, and you can accomplish the same things without functional programming, or without high level language, or without computers, but that doesn't mean they are all equally useful to solving the problem at hand.
I recommend everyone become familiar with functional concepts in some way, if only to make them more well rounded. I don't advocate writing your next web application in Haskell though...
This is what happens when you let a marketing person do your webpage...
Thanks for the feedback. I have since corrected this error.
Yeah, this is a management problem. The technical safeguard I proposed won't work unless management buys in, which clearly they haven't already since this could be addressed by policy, but it hasn't been.
and the "fix" gets released with the larger code change set, to production...
The problem here is that the fix "gets released." I agree, that it seems like releases should at least have the criteria that at least one other person has reviewed the code being released. Otherwise, they have the criteria that one person decided to release it (by definition.)
I think you could create a system by which pull requests are approved by someone other than the person that created them, and then, after it's been approved, then the code is authorized to be merged into a release branch. Here's one such discussion of that. I'm not an expert on this, but I've heard of it, and I think this line of reasoning could help you.
Good luck!
I own Noventum Custom Software. Noventum is a small company (me + 1 full time W2, and 3 part time 1099s) that offers software development services to others. This isn't exactly a high growth startup, but we do have two intellectual property projects we're working on (that customers paid for, which we own the IP.)
I have two rules:
1.) Know how we're going to get paid before working on a software project, and where the money came from (past tense - already exists and can be talked about using concrete terms.)
2.) Don't work with people with zero business experience, even if they meet the first criteria.
Our model is based on very low risk, slow growth, tried and true business practices. All of our customers are successful companies that have come to rely on custom software for their businesses to function, and it's immediately clear how they plan on paying us. Mine is not the kind of business that other people invest in, or that brings a brand new, innovative, product to market quickly. I am building a team, and involved in activities that I believe will help me with the skills needed to actually have a product.
So, for you, what I would recommend is to start contracting, and gain business experience. If you're able to offer your services to others at hourly, or in fixed-rate, contracts you will start to develop all of the ancillary skills that are related to selling software, which are only tangentially related to the actual coding. There are many such skills, with the primary one being sales. Unless your organization has some ability to sell, it won't really matter how awesome your product is if no one knows about it, no one is buying it, and you have to work another job to pay your bills. Also correctly paying taxes, and managing the books for a business is another skill that I wish I was better at. Aesthetics are another skillset that I lack - it's important to make things look nice. All of these skills take time to develop, or even to be able to evaluate in others. If you have a mountain of cash, you'll burn through it learning what it means to manage salespeople, designers, and accountants, unless you have some skill in these areas.
The three successful product companies I've worked with/for all began contracting. This allowed them to get paid to learn their customers' needs, since the customers would then sign a contract with them to have these needs met. This is the approach I recommend.
I am also from New Mexico. Culturally, we don't look highly upon the 18 companies that VCs fund that go broke in order for there to be one home run. This model is not attractive to me, even if I understand the basic mathematics behind it, and consider it an effective method of wealth generation. Depending on your values, geographic location, tolerance for risk, and perception of the passage of time, there may be a better path than contracting for you.
This has been answered many times over the years. Joel Spolsky did a good job in his book Joel on Software , which I highly recommend you read if you're asking these kind of questions. His blog is good too.
So what?
The crackhead that burgled one of my tenants did it with a vice grips after leaving their window open an a Macbook visible from the window. The bars weren't attached with security bolts (one way) but rather regular bolts (two ways.) That burglar didn't even bother bring a ratchet to make removing the bolts happen quicker. Do you think he's going to be able to make security cameras stop responding with his in-depth knowledge of the BlueTooth protocol and years of experience working cyber security at a National Laboratory? I don't. The other time my tenant was burgled they left a bicycle locked to a wooden structure, which was ripped apart with a chain tied to a truck. The other other time a different (not the same) tenant was burgled they left a GPS, binoculars, and some other valuable thing visible in their car. That burglar used a cinder block.
Don't leave your valuables visible when you're not around to back them up with your 2nd amendment rights.
Seriously, this entire posting is retarded. Try and keep a shotgun handy (no aiming!) a big dog, and friends/tenants/roommates around to keep the diversity of the city outside your domicile. Nest security cameras aren't going to do anything against the nondescript minority/white guy in a hoodie that's ready to throw the dice and jack your shit with a brick.
This is why Albuquerque can't have nice things, and Breaking Bad was filmed here.
MySQL will not allow table names to be passed in as parameters to a stored procedure [1] [2] [3]. Without eval, there is no way to dynamically use a stored procedure to operate over multiple, different, tables without enumerating all the tables. The code needed for the "safe" approach is massively bigger, n * m, where m is the body of your stored procedure and n is the set of tables you want to operate over. It also requires such a massive degree of code duplication to make it significantly less safe.
We have a reporting system called MyDBR that requires everything to be done in MySQL or JavaScript. Likely, a stored procedure isn't the best answer for my problems, but it's better than JavaScript. Probably the "safest" answer is to throw away MyDBR and use an actual programming environment to accomplish what I'd like (sane reporting.)
The entire premise of this article seems odd to me. Who would forget these techniques, unless they never really learned them in the first place? And why would the author want to revisit them? I think because it was a slow news day.
This is the problem with other people's money (OPM.) I don't think it much matters if the money comes from crowd funding, tax payers, or more traditional investment, when money comes from someone other than a paying customer (that values your goods or services, now, more than their money, now) there is often times a disconnect.
I'm pretty sure this 20 million is nothing compared to the 20 bajillion being "donated" by militaries to make autonomous, amoral, killing machines.
It must be another slow news day on slashdot.
Do you have equity? If not, then what incentive do you have for caring about the success of the venture you're involved with?
I own my own company now. Before I owned my own company, I realized that my success, and the success of the organization I worked for, were tied together. If I succeeded, and the company did not, that would be very short term for one of us. The same if the company succeed, and I did not. This is how Americans, with any understanding of economics, sense of connectedness, and general work ethic, view things. These understandings, like the one I outlined to you, and a myriad of other (relatively implicit) understandings, are why I choose to hire American workers at 3-5x what their outsourced counterparts would make. - [and I speak Russian.]
I want to succeed, and see everyone around me succeed, through our hard work and diligence. This is typically a value that Americans hold. This is not a value shared by other cultures, and other societies. Studying Russia, and Russian, has helped me analyze their culture, as well as question a number of the assumptions most people hold about ours.
As soon as I heard the intro song, I knew things were not going to end well...
Before the video:
"Brian, want to come to our startup pitch event?"
"Will each team have an intro song, and it will be crazy high energy for no reason?"
"No, that's dumb. We're not going to do that."
"OK cool, I'll come and drink some free beer. Thanks."
After the video:
"Brian, want to come to our startup pitch event?"
"Will each team have an intro song, and it will be crazy high energy for no reason, LIKE THIS?"
.
.
Thanks for sharing that with me. I am seriously going to use that video when people invite me to startup events.
I believe it doesn't matter how awesome you are at the latest and greatest programming language, or how skillfully you can apply a binary search to an interview problem, if you cannot understand why you are applying technology to help someone. If you can understand the need for software, then all of those other points are much easier to improve on, and apply.
For me, what made me a better programmer (past the bachelors, masters, in computer science, and six years of hardcore, full time, programming) was selling. Not taking management classes, and learning about selling but actually selling software. To sell, you have to understand someone else's need. You have to understand it well enough to sell yourself that you can help them, and then sell them on your belief. This is the good kind of sales. Everyone has seen amazing software products that were shelved, because they didn't meet the need of someone evaluating them. If you can understand how to help someone, with technology, and convince them you'll remove their pain, you'll be able to write your own ticket.
Hustle on the terrible online job boards. Compete with the low cost 3rd world at a fraction of what you're currently making. Then, once you can pitch without sounding completely retarded, try it in person. And you'll fail. Again and again. That's the cost of tuition. Eventually, you won't fail at selling. Talk with people that know how to evaluate an offer, and a technical solution. The problems you'll see, once you really understand your customers, are very rarely that complicated, novel, and difficult, and (for my company that is general development without much of a specialization past very general open source) don't usually require much beyond best practices and a very rudimentary knowledge of efficiency. This is because most of the people that can sell are absolutely terrible at coding, and the people that can code are absolutely terrible at selling.
“Would you tell me, please, which way I ought to go from here?'
'That depends a good deal on where you want to get to,' said the Cat.
'I don't much care where -' said Alice.
'Then it doesn't matter which way you go,' said the Cat.
'- so long as I get SOMEWHERE,' Alice added as an explanation.
'Oh, you're sure to do that,' said the Cat, 'if you only walk long enough.”
I vote you learn how to sell. You'll be able to sell yourself to an employee much easier, if that is your eventual goal.
I was at the Lunar Lander challenge, for the X-Prize a few years ago.
The problem with being at a "safe distance" is that it is so far away that you can barely see anything, except when the rocket is REALLY high up. We watched the entire thing on gigantic TV monitors, despite being "there." It's still a cool experience - sort of like a music concert, except for science, but don't think being there will give you a good view (at least not if you're a safe distance away!)
That depends entirely on the level of disciple present in the colony.
Countrymen, the long experience of our late miseries I hope is sufficient to persuade everyone to a present correction of himself, And think not that either my pains nor the adventurers' purses will ever maintain you in idleness and sloth...
You must obey this now for a law, that he that will not work shall not eat (except by sickness he be disabled). For the labors of thirty or forty honest and industrious men shall not be consumed to maintain a hundred and fifty idle loiterers.
John Smith, Jamestown
Unless the replicator is protected under the DMCA, and replicating a replicator comes with the very real punishment of death.
I did register the domain americanairlinessucksadick.com, but I let it expire rather than taking any action...
You are talking about somewhere between $50-$100, right? You walk away from it, and realize that your time could (HOPEFULLY?) be better spent on more productive things.
When a small store gave me incorrect change, and was unpleasant about the correction of that error, I walked away and never came back. Anything else would have not been worth my time. Unless you want to turn this into a hobby, I suggest you take a similar approach. Whenever anyone asks me about that store, I tell them a similar story, and advise them to go to a different store. That alone cost the store far more than when they jacked from me on my change. It was the store owner that robbed me.
If you believe that code will help someone with understanding (yourself included) then it is necessary. It is needed to help with clarity. It may not be strictly required for the correctness of your program, but your goal should not be to express the correct solution as succinctly as possible. That approach leads to many other problems.
Occasionally I include solutions for problems which have not yet been uncovered. Those methods may not be called (dead code) and any kind of static analysis would report them as "unnecessary." If I make the decision that such code will help me, or help someone else, later then I believe it is totally necessary, and good to include. Worse-case is that it will be a good starting point for someone later, and they will throw it away and replace it with something better.
Never include unnecessary code. If there are incorrect implementations that you are replacing, remove the incorrect ones! Don't leave traps lying around for people to get caught in. Unexecuted code, or not succinct code, is not unnecessary. I constantly include semicolons, and brackets around one-line conditionals - those are defensive practices which are designed to prevent future problems, and aid in clarity.
This is why people are hiring you - to apply human intelligence and judgement to a problem. There are situations where doing not strictly necessary things is appropriate, and situations when doing not strictly necessary things is a waste of time. It's up to you to decide. Different actions are necessary for different metrics. One thing may be necessary for a correct solution, and another thing may be necessary to help someone else understand your correct solution. Everything should be useful (necessary?) under some kind of metric.
How often is it that you have a brand new system, in which you get to choose your language? Unless you are independently wealthy, or part of a funded started (indirectly independently wealthy, partially) the answer is probably not very often. Whenever someone has a brand new, completely open, technological problem, they have a green field.
This is not very common, at least for me. I have a BS + MS in computer science, worked for three years as an employee in two companies, and now own my own small software company (with two guys I pay to write code for me) and have been in business for myself for four years. I charge enough money to pay my people, and my bills, through revenue. That means, by definition, that my customers have to be able to pay. I live in a poor state, without a tidal wave of venture capital. Almost everyone here has a legacy system, which is generating them money, which they can use to pay us. Those systems come with constraints.
There have been three times in my 10+ years of experience creating software during which I was able to 100% choose everything technology related for a project. Once was part of a barely funded start up. The other was part of a successful business that contracted with my company to greatly expand their eCommerce, completely scrapping their existing system and letting me choose everything. The third is ongoing - a customer described their problem in a high level, and nothing existed to solve it. For the third example, I am bound by (light) constraints regarding the other system we are interfacing with, and it has to be web-based. Otherwise, my more than full time experience, has been as a maintenance programmer, or as a manager over a team of maintenance programmers. This guy is way more eloquent than I am about the subject, and way smarter + more successful. Think about what the very successful people have to say about these kind of things.
I think different people, in different states, have different approaches. The most poorly organized organizations, and ventures, had very few constraints. They didn't have to answer to anyone about their technological choices, and typically had money to "build something." Sometimes that results in beautiful leaps forward, for humanity as a whole. I think most of the time it doesn't. Maintenance programming means you are maintaining something useful, for someone that is interested in paying you. You'll also learn new skills, and new languages / technologies / tools, just out of necessity, rather than being freely chosen, with no constraints.