rartichoke
If you have a great dev box with a ton of ram then using docker or a VM is irrelevant. You can just set the whole thing up in a ram drive and things are nearly instant, assuming you're using virtualization for short lived tests on some provisioned server that matches your prod env.
With an older machine and a 32bit OS (ie. 2 gigs of ram) you can't do anything except run 2x 512mb VMs side by side within a host or a single ~1GB VM on its own so it's a real let down to see they decided to use docker instead of just plain LXCs which do work with a 32bit OS.
It's nice but it still doesn't fix the issue with people who have medium end machines where you develop in a VM full time and want to be able to run a VM within a VM.
For example with fairly old but still reasonable hardware you cannot run virtualbox inside of an existing virtualbox instance.
If you have a windows box and develop full time in a linux VM you cannot run vagrant inside of that linux VM because unless you have a modern CPU it lacks the instruction sets required to run virtualization within virtualization.
Now using docker instead of a VM would work but docker only supports 64 bit operating systems so anyone stuck with a 32bit host OS still can't use vagrant and has to resort to using raw linux containers without docker which is really cumbersome.
I've also noticed that really in depth questions with a lot of code examples and explanations doesn't help either because then they get no responses or votes.
It's funny when you're asked to supply detail but when you supply detail no one replies because they can't be bothered to spend 4 minutes reading the setup/code details.
Do you have a real code example from a non-trivial domain?
I hope that market segment with half a dozen choices never becomes fully main stream. I like choice in moderation (ie. web frameworks with opinions) but movies are just entirely different.
There's just too many interesting genres and type of movies to filter a list of 100,000 movies down to a handful. It's a very complicated problem to solve and might be unsolvable until we have huge break throughs in how machines process human input.
Example, how would you solve this problem: Customer A watches 5 comedies in a row then is proposed a choice of 3 movies. 1 comedy, 1 sci-fi and 1 romance.
If customer A picks the sci-fi movie you cannot conclude that he didn't like the comedy or romance choices. He just happened to prefer watching a sci-fi movie that night. You don't even know the outside conditions too. Maybe his friend is over sitting in the room while they pick the movie, you simply cannot know.
I'd drop them instantly without thinking twice if a better solution existed with equal or better selection, cheaper prices and more promising short term goals.
Things are broken up by genre or new releases just like they used to be in video stores because it's pretty intuitive way to browse movies. "I feel like watching something funny, show me all comedies". Netflix also takes it 1 step further and tries to sort it by relevance based on previous watches.
Their interface for DVD players is quite good too. The search is smart and it only takes seconds to go from the DVD player being off to watching a stream from Netflix.
I rarely load up Netflix knowing exactly what I want to watch. I have ideas based on genre what I want and Netflix lets me browse reasonably. I've been a sub for almost as long as they've been around and I still find good stuff. The only thing that lacks is newer releases on stream but you can blame the media providers for that.
My cable provider sometimes offers free access for a month to their on demand/pay per month movie service and it's a joke. Things are listed alphabetically with 90 pages to go through or it's by genre but you're stuck going through 28 pages of alphabetical results where you see nothing but the movie title and a 1 sentence plot. It's an awful user experience.
Then you eventually learn to see things on your own. I don't need to read a popular programming pattern book to know how to structure my code. I know how to structure it based on feedback of using it on a regular basis while having a solid base of information to work off of.
If something feels off, I fix it where the solution is it no longer feels off. Until it feels off I'll likely leave it as is because at this point I haven't experienced the problem.
If something isn't a problem to me then it's not a problem. It's only a problem when it causes me to react in a negative way or is causing the system to react in a way that is bad.
I wouldn't recognize first hand that red on green is a problem for color blind people because I'm not color blind. If this hypothetical app had to work for color blind people then I would open a ticket and flag it as a feature request and then get feedback from someone who is color blind.
That's a good example of it's not a problem until it's a problem.
You can still constantly learn and keep up with things while taking DHH's advice btw. I have been coding and working with his mentality for quite some time now despite working with rails for only a year.
Memorizing about 20 patterns for 3 months before you really write any code is way worse than just hacking together something and improving it because after enough time you know what's wrong.
The "you just know" thing is really powerful. I'm not a professional artist but I just know that if you had a yellow background and you drew something in the foreground with the same yellow code it wouldn't work because you couldn't see it.
When writing shitty code I just know it's bad because I find myself having to copy/paste something 8 times or maybe it's close enough to a copy/paste that it still feels wrong so then I fix it.
That can't be more true.
You mentioned wanting to allow farmers to make an account and add in their details of various stuff along with having their own profile.
That is much different than a typical e-commerce setup. Most product sites have products. Which account added the product doesn't matter. There's no "show me all shoes filtered by the user of Mary", it's "show me all shoes by price filtered by size, etc.".
I also encourage you to research shipping cost calculators that let you use them seamlessly in your custom site.
Also I'm not trying to discourage you from executing your idea. You're free to do whatever you want but I'm just saying you'll have to spend a decent amount of $ to get exactly what you want up and working as a reasonable solution.
I'm not trying to bust your chops but I'd be curious as to what makes you think your idea is less technical than an e-commerce site. What basis did you use to make that conclusion?
What if I set a goal for 2 years from now. Suddenly I'm forced into maintaining a friendship with my accountability partner because if I don't then I run the risk of being blackmailed.
There's a very big difference between "internet friend I've known for 4 years and I would consider him a decently close friend" and "I'm willing to hold this guy accountable for $1,000".
I think you guys under estimate at how hard it will be to find an accountability partner who is actually worthy. Your family members will have a bias to not let you lose the money. Really close friends (the people you can trust) might too but the questionably close friends aren't quite trustworthy enough to let them decide on your $500, etc..
You're asking for a custom site with custom data that is searchable in many different ways. You're asking someone to come up with an entire implementation to your idea.
I can't give you an accurate quote with such little info but what you're looking at is likely going to be north of free. I'd expect somewhere in the few thousand dollar range.
It needs to be someone who you would trust with an arbitrary amount of money because as soon as there's an ounce of distrust then the entire idea falls apart.
I'm not going to put up $250 if I think there's even a 0.0000001% chance the accountability partner will improperly log that I didn't do it.
The guy you interviewed probably spent ~4 hours preparing for the interview and then all of the time in the actual interview.
Let's say he takes 7 hours out of his life to interview for your place. The least he deserves is a legit reason why he was declined because your company still benefits from not hiring him. You get to refine your interview process based on real feedback.
The interviewee's time is just as valuable as yours. A wall of text complaint sounds pretty good. There's probably a lot of good feedback in there unless it happened to be filled with insults and other garbage in which case you should have been able to figure this out quickly and then not replied.
Once I recover from burn out I'll likely look into an alternative to Chef.
It actually killed my motivation to program in general so it's not like I'm some ansible fanboy too. I don't use anything now because I haven't deployed a line of code in about 2 months.
If it's on some obscure bug tracker that I don't have an account for then the odds of me reporting it are almost zero because chances are there's an alternative to what your software does if it happens to be a show stopper and most of the time if it's a wide spread project there will be fixes to the bug in other places.
It's annoying to make an account, go through all of that stuff and then realize most of the time nothing happens with your report.
Also the current dev has no idea what the old dev's payment was like either and I feel like this could be a huge deciding factor in the quality of work provided by the old dev.
Do you really want to have your expense/profit reports, customer lists, etc. hosted on some app?
I don't even use Google spreadsheet because of this sole reason and I don't plan to switch. I would like to switch but yeah, I just don't trust private financial data in the hands of any service provider.
I can't speak for other frameworks but rails has turbolinks and also seamlessly handles the ability to send back pre-compiled html results to the client as a response to an xhr.
Basically you get the best of both worlds and it's all unobtrusive so all of your content is crawlable and you get a great user experience without having to do hacks or extra work.
Certain server side frameworks such as rails let you build apps that feel very similar to client side js apps without having to use them.
What's wrong with creating an app generator that spits out enough stuff to get you going on a certain app?
If I don't have to spend 15 minutes making a bunch of small changes and additions every time I make a new project then I will be more likely create more projects.
It's part of the reason why building a SOA is painful. If you have 25 services that means you need to start 25 new apps. It might take 20 hours of boilerplate garbage that you have to do just to start developing the business logic.
With generators you can turn that into almost no time at all, you would be bound by how fast your hard drive can write the files to disk or how fast you can pull things from github.
Btw I also use generators for public facing things. Why? Because typing 1 command which generates 6-7 files and also gets me going on what needs to be replaced is a lot faster than starting from absolutely nothing.
It doesn't matter if I end up replacing 100% of the view code or 90% of the controller code. Also if I feel like I will be doing a lot of CRUD'ish things in similar ways then I will spend 15 minutes once up front and create custom generator templates for that specific project.
It's nice to be able to type 1 command out and get a fully working scaffold with your custom theme and changes already applied complete with elastic search integration and faceted navigation, etc.. I do this all the time when applicable.
I enjoy using generators btw.
A lot of them already use shared hosting from previous sites and want to stay with them because it happens to work in their case.
So now you're stuck using some old version of PHP and mysql. What if you haven't bothered spending a ton of time with PHP lately and for the last few years you've been working with node and rails on projects you deem "worthy"?
Should I spend dozens of hours researching best practices for an obsolete version of PHP and make sure I do it right? Or should I lecture someone on reasons why they should allow me to host their site somewhere else and then setup a VPS for them? No frikken way.
Also when you need money, you accept work. That is how the world works. For some people/situations it's not worth throwing away $400 on some job because of annoying clients. You deal with it and put the money in your bank.
I sometimes come across low paying clients who try to take advantage of you at every chance. They also come to me with hosting and have even changed hosts without even asking me while having no tech knowledge (then call me to fix the million errors they have).
For these clients I usually just throw together some fast low quality hand rolled PHP sites if they are not very demanding sites. There won't be tests, I'll haphazardly inline some CSS because when you get paid almost nothing the last thing you're thinking about is wonderful to work with abstractions that are maintainable.
You're only thinking about getting the job done as fast as possible and getting out because you have no interest in doing business with them again and due to their personality you don't want to be recommended to their friends.
If you compare that code to the code I write for my own side projects or proper clients it's night and day. You wouldn't even know they are the same person.