You have to be innovative... and in a way that interest your target user base. FB initially targeted college kids, and did a damn good job of it too... that helped it build up a huge user base. From there it expanded to a bigger audience.
Now about being innovative, if you're making the same thing that FB already has, well... odds are people won't be too interested in joining yet another social site (Google+ has pretty much flopped because it doesn't offer enough novelty to make people want to join). If on the other hand, you have something new that people like to offer, then you might have something (i.e. Snapchat and all their video/image filters).
First off, I'm sorry if this is in the wrong section. I didn't see a section for Python and did a search for it but that just returned really old posts.
I'm trying to create a Python calculator to create quotes and estimates. It would be similar to a mortgage calculator but have much more variables to deal with. I tried finding something "out of the box" because I figure I'm not the only one who needs this but couldn't find anything so my only other option would be to write it myself.
If anyone knows of a program, software or where to start trying to build my own, I'd really appreciate it.
It's always the client's (contracting party) responsibility to provide any agreement required. I'd still review all the terms closely to make sure everything is acceptable to both parties. The terms can be negotiable if one of the parties strongly disagrees with something.
FYI... for that small of a contract, you can probably just look for something online that has broad terms that fit the need and attach some requirements to that, that way everybody knows what to expect when the contract ends.
Don't pay lawyers to do it! There are plenty of pro-forma contracts available on contracting sites (e.g. ContractorUk.com). If you are offering a service then you offer YOUR terms and conditions - that is all a contract is. If the client is not willing to accept your T&C's then it is their responsibility to offer an alternative - which you are within your rights to reject, accept or offer suggestions for amendments.
Software Development contracts are no different to any other service provided by any other supplier... negotiation may be more prevalent is all.
Who do you want to be in control - the client, or yourself? It also depends on where you are - in the UK you need to be fully conversant with IR35 (personal services company taxation) and it's virtually certain that a client-provided contract will be inadequate. If you're a contractor, you should be a member of your "local" trade association - in the UK that would be IPSE[^] and any decent association will provide sound template contracts.
I always offer my "standard" contract (based very closely on the IPSE one) and clients are normally happy with this. If they are reluctant, just tell them that you can use their contract but will need to charge them for an independent contract review. Even if they insist on using theirs and refuse to stump up the review fees, it's usually worth paying for the review yourself anyway - certainly in the UK in the current climate.
FYI, my standard contract simply refers to a "schedule" for the actual scope of the project, timescales, and fees. That's again based on a boilerplate but customising the contract and schedule normally takes only 1/2 hour or so, even on a larger contract.
Now, if you mean a GPS receiver terminal... well, it really depends on what you want it for and what you want on it. The cost of receivers nowadays is all over the place, you can go from something really cheap like a GPS receiver module or integrated circuit to something that's commercial consumer driven to something that's military equipment. Every one of those options will have a cost that's completely different, depends on wants/needs (also known as requirements ).
Practical example; say I write a Memento-pattern for one of your applications, to provide Undo/Redo functionality. There's nothing stopping me from coding the same pattern in my own application. That is not a "ripp off", it is merely doing the same thing again, but in a different application.
'nother example; someone wrote a copy-protection scheme, and it needs maintenance. How could I perform maintenance, without seeing the code? Once it is seen, it can be reproduced.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]