Quote:
Originally Posted by sdturner02
daveT,
If I had to guess, I would say that most of the people who offered up helpful feedback know what it's like to launch a project. As Joe Biden would say, "It's a big f'n deal."
Yeah... I wish it was a tad bit more robust before I uploaded it, but I'm okay with the initial release. I only knew I needed to change my mind on many things, but I didn't know what changes that entailed, thus I believe posting your projects in this forum is an excellent idea:
Quote:
As an aside, I think this is an outstanding forum for people to comfortably make their projects public. I hope the feedback you got was motivation for other people to post their own projects. I personally think it's much more interesting to see a site or app if I know a little bit about the person who built it.
Maybe we could start a new thread dedicated to just showing off projects? Any interest from anyone?
If it has to be an individual dedicated containment thread, I don't know about that, but that's not my decision.
Quote:
As far as the database tables, going from 70 to 20 seems like a huge jump. I remember reading somewhere that a good exercise is to think about what your database is intending to reflect in real life. If it logically matches up with what it represents in real life, you're on the right track.
It's not, really. The employment history pages each have ten tables associated with it. I can now do this:
create table employerOne
(user_id, company_name, position, city, state*, country)
*It's just a name. Of course it can be a province, region, or whatever.
and
create table employerOneDuties
(user_id, company_name, duty_number, duty)
and calling that should be pretty easy now.
Quote:
Also, how the hell did you end up with 70 tables in the first place? Haha. You don't have to answer that, but that does seem like a little more than should be needed for the current size of your project.
What I didn't want to start with was having different pages calling different tables and other things like that. Poor planning on my part. There really isn't a good excuse for it, I know. I just didn't want to think about the final product and database issues until I had a finalized plan. I also wanted to denormalize after I did a bit of research into tuning PostgreSQL.
Obviously this was a huge beginner mistake.
This concern birthed from when I was building the marketing program at work. I was using Python to call from the database. I had to manually export the information from the company database which was poorly designed and denormalized to the point of disuse. I even had to break apart a lot of the data to create new key/value columns to run basic queries like "How many [SKU#] did we sell last month?" The company's system was awful.
I normalized and denormalized until I had the data-set into something I could work with as many of the queries I had to run where complex. Even the easy queries were rather difficult over the denormalized data-set. It's much easier to denormalize after full normalization than it is to sort of normalize from fully denormalized data.
Quote:
Last q at the moment, what's your opinion of Clojure now you've spent some time with it? Been kinda bored lately, thinking about picking up something new.
This is a complex question and there is no easy answer to this. You have to understand that I am completely brainwashed into thinking Lisp is the ultimate programming language, say thanks to the OCW I took.
It's sort of like someone who loves assembly. Many CS students learned assembly and/or Lisp in one form or another, but they are glad to be rid of both languages for good as soon as they complete their final. I think people who like Lisp are naturally drawn to what the language is, and perhaps a tad sick in the head.
The way I see it. Moving to Clojure from Scheme is akin to moving from C to C++ and Java. The more higher level languages offer many new abstractions that makes life a little bit easier, but at the end of the day, you are still in a C-like world.
I think that Clojure and Scala are in the same boats of adaption, and I don't think either one will "win" in the end because they come from opposite ends of the spectrum to solve similar problems and offer functional programming tools to the developers.
I love Clojure because I love Lisp. I have no idea what someone who normally used PHP will think of it.
Some Good/Bad:
- Flexible: There isn't any one-way to do anything. You aren't forced to use classes for X, functions for Y. It's almost a total free-for-all in how flexible the design is. Clojure & Lisp eschew design patterns in the OO sense. This could be bad if you are used to working in robust frameworks like RoR. When I've read about about how many people have fought RoR and read
http://devblog.avdi.org/2011/08/22/y...de-is-my-hell/, I'm glad.
- Extremely intelligent and dedicated community. This is good because it's unlikely you'll end up with messes like WordPress lurking around, but it's bad because well... there never will be a WordPress.
Look at Light Table.
It's also good because in SO, you are bound to find amazing generalized answers for many of your issues. It's bad if you are out to gain rep. I posted two questions, both scoring a 4, and my rep is just shy of 50.
- Impossible to self-learn from the free resources out there. There are so many ideas distinct to Clojure that it is not possible to know how to look for the answers on Google. Even if you do know the correct terms, there is usually a lack of information. Clojure really is a solo adventure.
- Information is 80% good / bad. Can't say that about JS or PHP, can you?
- Lack of libs and plug-ins. Since the community is so small, there is a distinct lack of libs and plug-ins. One example is the HTML -> PDF converter. There are a handful of converters, but they are all pretty tough to use.
There is only one super-user security library, and although is written by Chaz Emerick, who wrote the much lauded O'reilly book for Clojure, he is not a security expert, and in fact, he calls the situation nuts that he is the one who wrote it.
There are no user login, logout, password-retrieval libraries, though I did start working on one myself.
- The language is growing very fast. If you took a look at
www.4clojure.com and see the source, you'd see that there are tons of java.util/ in the code base, though it is slowly updating itself. If you find more modern source, you'll see that there is almost no java.util/ in the source. The community has done an excellent job of turning everything into Clojure.
I think that if you aren't used to looking at Lisp code, Clojure is an okay place to start, but I would strongly suggest picking up the basics from another Lisp to get a feel for first-class functions, let expressions, and other syntactic issues and the unique constructs (and by golly, don't *ever* write a macro until you have no other choice). Clojure goes beyond what either Scheme or CL go.
I think that Clojure is well worth the effort if you are willing to do it. Just don't expect to dive in and do something awesome or satisfactory like you can in Python / PHP / Ruby. Lisp is a steep learning curve. Even after a whole year, I don't have a solid handle on Lisp and all it's power.