News:

Wondering if this will always be free?  See why free is better.

Main Menu

How was SMF made?

Started by dnelsalty, May 16, 2010, 05:39:15 PM

Previous topic - Next topic

dnelsalty

I was just wondering what had to be learned to make Forum Software such as SMF.

How do they make all of the admin controls and everything?

I just wanted to know because I want to learn how to build software similar but not for forums...

Thanks

Arantor

The relevant core skills are PHP, SQL, HTML, CSS, Javascript in that order. Any large dynamic project on the web will be based on similar technologies in a similar order - not necessarily PHP, there's quite a few back end languages, but it will be PHP/Python/ASP.NET/Ruby/something else, then SQL in almost all cases to talk to a database, HTML to display it, CSS to make it pretty and Javascript to enhance the interface.

Is it a web based project you have in mind or something else?

dnelsalty

Its web-based.

I want to make a CMS like DotNetNuke combined into something like webs.com

So you can edit all of your stuff online easy and pick from our templates, and the hosting will be provided.

Arantor

Definitely need something like the list I mentioned. Your key problem as I see it is dealing with user content, protecting against nasty stuff that can get in.

I'd point out that for a first project, I really wouldn't do something so ambitious, because all that'll happen is you'll get frustrated at not being able to translate what you visualise into code. (Let me put it this way, SimpleDesk is a much smaller app to visualise, even at 1.0, and there's nearly 10,000 lines of code in it. Coding is not a small task, and the more complex you want to do, the larger the code will get.)

SoLoGHoST

IMO, quite contrary to Arantor, though I understand where he is coming from when he says start small and end up big.  Though I disagree, the only way to learn is to dig into it as deep as you can get.  Learn it all at once, especially when you are just starting out.  Why?  Because that is when you have the most motivation to want to learn, after you build a few small projects, your motivation for big projects may not be so strong.  Trust me, Been there done that!  While you are motivated at an early stage, you need to dig into it as much as possible, go for as much as possible, if you don't get it all, you'll atleast get somewhere, and that somewhere will be better off than if you're goal was to start small.

Aim High, have high standards, and do this from the start and you'll be surprised at what you can do.  Don't get me wrong, trial and error will be like your best friend at first, but you'll get there if you are determined enough.

Good Luck ;)

Arantor

The phrase I was trying to think of was "don't run before you can walk". Aiming high is fine but the letdown when you realise your skills aren't up to the task is immense.

When you're trying to design something that requires tens of thousands of lines of code (and it will) before having even attempted to learn a suitable language is like trying to pick up a paintbrush for the first time and create a masterpiece - it doesn't work.

I've seen it before in people I've taught, I've worked with, people I've known. You cannot learn the skills overnight for something of that size and complexity and while I would encourage you to program, encouraging you to do something of that complexity as a first project is almost certainly a recipe for failure - and I am talking from experience here.

See, not only will you have to master multiple languages at once, multiple techniques, structures and styles of programming - ALL at once, you also need to learn some techniques and processes you'll never have even dreamed of before - CSRF protection methods, XSS protection, session protection, and in doing a CMS these are all a MUST-HAVE concept, from day one, and all of which are relatively advanced things to understand.

Sure, you'll pick them up, but I promise you, learning PHP+MySQL is hard enough without overloading all those very necessary ideas into the mix.

SoLoGHoST

Ok, don't get me started.  But, while these things may be difficult for you, they might not be for someone else to understand.  Just reading your post makes me feel discouraged at wanting to even attempt it... 10,000+ lines of code?  OMG, I'm running away already...lol.  Any motivation I once had is now much lower than before, from those words alone.

@ dnelsalty - Google is your best friend, and there are tons of PHP resources and tutorials.  Start working on it, use some tutorials you may find online that can help you understand basic concepts, and ask people for help when you get stuck.  There are tons of forums out there that offer free help.  SMF is 1 of them.  There's no harm in that.  And learn as you go.

Cheers :)

Arantor

Sorry, but that's the truth and the truth sometimes hurts. That's why I don't recommend a CMS for a first project, because that's the point: a CMS is a huge piece of work to do properly, to be able to keep everything correctly, to resist standard hacking techniques and so on.

And if you think 10k lines is bad... be aware of the 125k lines of PHP in SMF itself. (Yes, 2.0 RC3 = 125k lines of PHP, 10k lines of CSS, 4k lines of Javascript)

Kill Em All

Quote from: Arantor on May 16, 2010, 06:25:24 PM
And if you think 10k lines is bad... be aware of the 125k lines of PHP in SMF itself. (Yes, 2.0 RC3 = 125k lines of PHP, 10k lines of CSS, 4k lines of Javascript)
Do you seriously have every file memorized? haha, seriously, how do you possibly know that, I don't even think devs would keep track of that.


My Site: KEAGaming.com

Manual Installation of Mods
Prevent Spam and Forum Attacks
Please do not PM or email me for support unless offered, help should be publicly displayed to others.

Arantor

Because I have a script that I used to count it, the same one I used to produce dev stats for SimpleDesk :P

Kill Em All

Quote from: Arantor on May 16, 2010, 06:38:02 PM
Because I have a script that I used to count it, the same one I used to produce dev stats for SimpleDesk :P
Fancy. Someone is living the life. ;)


My Site: KEAGaming.com

Manual Installation of Mods
Prevent Spam and Forum Attacks
Please do not PM or email me for support unless offered, help should be publicly displayed to others.

SoLoGHoST

Ok, no offense, but If I want to learn how to play guitar because I heard Metallica - Enter Sandman song on the radio, and thought wow, I wanna play that song cause I love that song.  Hypothetically speaking.  Now I go get lessons and the Guitar teacher says, it's too difficult for you to learn, there are too many chords involved, you need to learn how to play "Twinkle Twinkle Little Star" first, and than a bunch of other useless songs.  Well, that's not what I want to learn, but if you say so.  So now I'm learning songs that don't make sense and my motivation for wanting to play has dropped tremendously because I'm not learning what actually motivated me to begin with.  Because there is a roadblock in the way, must learn Twinkle Twinkle Little Star, and I'm paying this guitar teacher to teach me how to play a song that I'm not interested in playing.  Why can't he just teach me to play Enter Sandman??  Hmmm.

Anyways, this was the first song I learned on the guitar, than I jumped right into Led Zeppelin - Stairway to Heaven, and this was all at the same time that I was learning how to pick and hold the guitar and it's strings with my fingers.  So, the motivation was there, the determination was there, and thus I learned it much faster than most people.

I'm not saying that everyone is like this, but in order to get somewhere, you need to throw yourself into it as much as possible and go for what motivated you to wanna do it to begin with.  Don't settle for any roadblocks that might get in your way with promises of leading you to your ultimate goal.  Take the Direct Approach and go for your ultimate goal right from the start!

There is no project too big for you to handle if you are determined and motivated enough.  The reality could be that you are dealing with 10,000 + lines of code, or even 200,000,000 + lines of code, but this shouldn't be the first thing on your mind.  In fact it shouldn't be on your mind at all.  Because dwelling over how hard/difficult something is doesn't help you to overcome it and do the thing that you really want to do in the end.

Kill Em All

haha, at first I'm like, wrong topic? lol Good approach to it.

Metallica is all down picking btw. :D


My Site: KEAGaming.com

Manual Installation of Mods
Prevent Spam and Forum Attacks
Please do not PM or email me for support unless offered, help should be publicly displayed to others.

Arantor

All right, on that mentality, you'd pick up a guitar with no knowledge of music other than what you think sounds good, and immediately attempt to compose a #1 hit record?

Dreams are great. I have dreams, things I aspire to doing, and put appropriate dedication into them, but at the same time there's steps along the way.

In your example, you learned a song first. Would you have been so successful if you'd immediately jumped into Stairway to Heaven?

I'd also note a key skill you didn't learn with the guitar teacher - self discipline. In order to master any skill, a degree of self discipline will be required, to keep at it. Simple determination isn't enough, nor is enthusiasm. You have to have the discipline to keep at it.

Do you think I approached every day of SimpleDesk's development with nauseating quantities of enthusiasm and determination? Hell no. There were days I wanted nothing to do with it, where I was fed up of coding for it, but I had the discipline to keep going. If I pointed out that during development of 1.0, I lost my father and had to deal with everything that went on with that, you still think I did what I did out of enthusiasm?


tl:dr; Even with the best will in the world, you need a degree of self-discipline. And without the intermediate stepping stones, it's very, very hard to build up that discipline.

I don't want to dampen anyone's enthusiasm but even the best will in the world needs a reality check occasionally.

SoLoGHoST

There's all kinds of picking involved Kill Em All, triple picking, down and up picking.  Nothing Else Matters, don't need a pick at all for that song, all fingerpicking (cept for the lead), Fade to Black definitely need a pic for that, and One.  Master of Puppets uses a lot of double picking throughout that entire song.  Four Horsemen uses a lot of triple picking and is fun to play.

@ Arantor - I learned Stairway to Heaven and Enter Sandman both together as my first songs.  Enter Sandman was a lot easier to pick up since it used a pic and was just real easy.  Stairway to Heaven was all finger-picking and my fingers weren't quite trained for it, so I had to discipline myself for it.  But these were songs that I learned how to play and aquire the discipline for it by myself.  As well as the knowledge for it.  Sorry to hear that you lost your father.  Nothing last forever though.  I lost my mother back in 2004, only met my father 1 time in my life when I was 18.  I lost my wife, just recently.  I don't need any sympathy, and I'm not saying that you need any either.

I think we all go through our ups and downs while developing, and I think you are missing my point again.  I'm not saying that the person should be enthusiastic the entire time while developing or even will be.  I'm saying that that person should take the most direct approach to the goal that that person has in mind.  And should reach high, and dig into it as deep as possible.  There are online help forums for every single area of Developing, that if he/she should have any questions on, I'm sure he/she would be able to get help on it.  If there is an error along the way, it will come to surface sooner or later, nothing to worry about.  Errors happen to everyone.  And you don't have to be a MASTER of ANYTHING to create something that's a Masterpiece.  But you should be able to understand things and try to catch on quickly as it will only help you in the long run.  But most of all, don't act like you know everything and remember, the only stupid question is the one that's not asked.  Don't let anyone try and make you feel that you should be embarrassed or ashamed to ask questions, no matter how stupid they are.  The worst thing that could happen is that you would be banned for a forum for asking a question that was considered stupid, in most cases that would never happen, but if that ever did, there are a million and one other forums of the same type where you can ask questions on.

There's no harm in asking any questions you might have, no matter how stupid they might seem.  True Wisdom comes from knowing that you know absolutely nothing!  That's where it all begins...

Anyways, I'm sure Arantor will have a lot to say on this....

Cheers and I'm done with this topic, hopefully it helps you atleast a little dnelsalty.


Arantor

*shrug* I've said all I had to say, glad to know that you think that much of me you automatically assume I'd make a huge argument.

I get it, you're all for diving headlong into it and learning as you go. I get that very clearly, even though too many years of experience disagree with you. Hope it works out for you.

SoLoGHoST

Actually it has worked out for me Arantor, and it can work out for anyone else as well...

I wasn't going to reply to this, but just to clear this up, didn't assume you'd make an argument of it, just assumed that you'd have something to say on it, such as debate on.  But I really don't feel like debating anymore on this topic, since I've said all I had to say as well.

Cheers :)

Kindred

Sorry.... coding is not at all like music.

With Music, you can "get it", even without having any musical background...  however, most teenagers (in the US, at least) have a good grounding in music and music theory from elementary and secondary school music classes. In the same vein, very few have ANY grounding in logical coding.

Also...   learning how to code is not like you example... with music, you COULD pick up a guitar and learn a specific set of strokes and fingerings for one song. With coding, if you don't know the background functions and coding methods, you can't do diddly.
You CAN learn a single program (which is what many admins do, they learn just enough to tweak their sites' program(s)) but you would NEVER be able to build a project... especially one as potentially HUGE as a CMS without having a good, strong, understanding of the background. 
Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

Kill Em All

Quote from: Kindred on May 16, 2010, 10:24:28 PM
Sorry.... coding is not at all like music.
I disagree. Music is a art, and I consider coding an art also to a certain degree. There was even a study done some where I think that musicians tend to be good at coding.


My Site: KEAGaming.com

Manual Installation of Mods
Prevent Spam and Forum Attacks
Please do not PM or email me for support unless offered, help should be publicly displayed to others.

mrtrc266

#19
Have no clue as to what anyone is talking about but I do think credits should go to where credits are deserved.

http://onlinemodders.com/forums/
OM Theme Design By: OnlineModders © 2010

Seems to be very similar to the theme Express Design By DzinerStudio
http://demo.dzinerstudio.com/

Which is the same theme I use here...
http://www.worldteamofpoker.com

Theme copyrights should be more like the following I believe....
Express Design By DzinerStudio
or
Theme by DzinerStudio
or
Express Design By DzinerStudio - Customized by By: OnlineModders © 2010

Advertisement: