It's not exactly "giving up" per say, the path is more like continuous seemingly unrelated (but really related) iterations for the sake of finally gaining traction (with something, anything) but more concretely becoming a better and better and better developer in the meanwhile.

I have tried a lot of times not only because nothing worked (to my liking) but overwhelmingly because I learn by doing. So here goes.

I used to print t-shirts. I learned the entire t-shirt printing process from studying online. Not just hobby stuff, I actually grew to a warehouse with professional-grade equipment.

I decided I would try and create a website for my t-shirt printing business.

1) I built a complete back-end php/mysql system to manage and process orders. My dream was to have it fully automated on-line but that was pretty damned hard. So I just used it internally.

2) I decided to make an ecommerce website that sold my own t-shirt designs. Thinking I could design, produce, and fulfill tshirt orders from my own custom-made ecommerce system (not to mention actually marketing it online to you know ... get sales) is pretty damned hard.

3) A while later I realized it would be great if I could sell custom "tackle twill" hoodies online because most people don't realize how insanely great a tackle twill hoody can look. Everyone is used to seeing boring solid color College type hoodies. (i also did embroidery). I set out on building this great system that let customers design their hoodies online from a set of pre-defined fonts, colors, patterns, and apparel choices. It was GREAT for the level of developer I was at the time, but needless to say... it wasn't that great. Never finished it because it was too complex and not nearly on par with the competition.

I was doing all this as a hobby since I spent all my time printing shirts.
Then after a couple years I decided to go full-time web developing.

4) Took a year to seriously learn how to code, learned kohana and jquery and built a website that created websites. Pretty much like weebly, but a thousand times more complex (which is really bad!). It works pretty well and powers http://larasgift.com (I have a couple of clients). But all in all, making websites for people is a huge pain in the ass.

5) Created a website that was to be an improvement to wikipedia. It is/was a cool idea, but obviously who the hell am i kidding with that idea ... (how do i make money?)

6) Created http://pluspanda.com because through building the weebly clone, I realized local businesses don't really need whole entire websites. The internet is about word-of-mouth, referrals, and ... testimonials! (that's still live, just having trouble finding an acute market)

Here I learned that my coding was getting better but my productivity was suffering. Too much time wasted on stupid things. So after some deliberation I commited to learning Rails. I couldn't get Rails to work in Windows so what the hell, installed Ubuntu and become a command-line zen-master.

So now I'm riding the Rails on Ubuntu, source-controlling it with git so that i can deploy via capistrano and loving life chilling with the Linode production server.

7) http://tastyink.com was my first rails app that I built to learn Rails. I think this is a SOLID idea that I'm still working on but it's too complex of an idea to sell so I figured I needed a more dead simple IN to these local businesses which led to ...

8) http://aplanofattack.com

These are the main projects that I've actually commited to trying, there are a handful of other projects not worth mentioning and of course freelance work every now and then.

The point is ......

I know I have an endless journey to become half as good as lots of people here on HN, but at the same time, I think I'm a pretty damned good developer nowadays =). I can sit inside a command line, configure a VPS, understand git, ruby, php, mysql, javascript, css etc. Not bad ...

Everyone tells me all the time "just stick to one project and stop abandoning everything"! I know that is sound advice. I know it! I just don't think of it as abandonment. I think of it as refinement. All of my projects have actually been perfectly inline with a core concept: Helping local businesses leverage the interent. It started at as some massively and painfully overcomplex website building engine 2000 (never make your apps complex!!) and slowly, slowly, I've iterated to very core and very simple "services" that business can use and understand quickly and easily.

I'm getting there!

Hope this helps.