application review request - php

just coming to the "end" of a project that will probably live for a long time...
Have looked at the FAQ and having not really found a definitive answer, I want to ask if its OK, to kindly ask if it is OK to ask for some thoughts on our system we are about to publish. (wow what a sentence! :)
So, before I post the link, because I don't want to be thought of as a spammer, is it ok?

This is a programming Q&A site. If you have a question related to programming, you may ask it. If you ask us for a vague review of a candy shop website, you may not ask it.

The answer is yes it's ok.

If you are really want a feedback from design/architecture, database schema, performance, reliability perspective, better would be to ask objectively, for instance post your schema, design, etc.
And since you've already developed the web site, this may be a bit late, but its always worthy reading, my fav SO question: What should a developer know before building a public web site? This covers 360 degrees of whats and hows of building a website.

Related

Can someone recommend a php mysql rating system that I can add to my site

I'm looking for a php/mysql-based rating and comment system that has a one time license fee per site. Can someone recommend something?
I could build my own -- I already started but then I was thinking there must be something out there already.
It would be nice if it included the ability to poll people too.
Thanks
I've been seeing a lot of sites using Disqus. You might give that a look.
It's not really clear what you need exactly, but facebook is offering comments for your site as well.
you could build your own threaded comment system with this class here:
http://www.jongales.com/blog/2009/01/27/php-class-for-threaded-comments/
You would just have to design your table structure, its not really that hard, as for polling would be something else, i dont think you'll find an integrated soultion since, they are two different beasts.

Startup community website - tips on getting known

I realise this is probably not the best place to post such as question but thought I'd try anyway. I'm developing a new community driven website in the same vein as SO. I'm just wondering the best way to get the website out there and visible.
I'm wondering if anyone knows of any websites used to promote new startups and such? I'm aware of SEO techniques, etc.
The reason I'm wondering is that since it's community driven there won't be much content to get indexed by search engines.
thanks,
Jonesy
I think you have already missed some things if you need to ask this question. The following article explains in depth on what you need to do to at least come closer to getting successful with a community site: http://jasonlbaptiste.com/featured-articles/if-you-build-it-they-wont-come/
By the way, the whole blog is worth reading.

Advice on using Wordpress or a PHP Framework?

I am currently building a blog type website for myself. I have used wordpress in the past and really enjoy it, but when it comes to building more than just a blog I usually get bogged down in writing hacks for it.
The site I'm building is going to pretty much be a blog, but with a 'question and answer' side to it (NOT A FORUM - purely Q&A). Therefore, bbPress and buddyPress doesn't quite hit the mark. I have used CI for awhile now, but when it comes to security I fall short. CI does not have an auth library, however, Kohana does.
My question is: I would like to have full control over my site, but I'm worried about my lack of knowledge in the security department. Would I be better off using Wordpress as a base, or would it be beneficial for me in the long run to use something like Kohana?
Your advice is greatly appreciated.
First of all, I would like to say that you can't compare Wordpress and Kohana. One is a content management system and the other is a programming framework.
As for your question: Since you've stated you're not that experienced with security I suggest you stick with Wordpress; It's maintained by developers who know what they're doing.
If you want to go ahead and create something yourself then make sure you keep up-to date with all the current security issues and how to resolve them. Here are a few resources you might be interested in: PHPSEC, OWASP and PHP Security. You should probably read those anyway (as you're writing Wordpress plugins).
Good luck with your choice either way.
Hmm, if you can write the "hacks" for wordpress, than modify it to your needs.
If you think you can write the security better, than use Zend Framework since it has a Auth lib.
http://framework.zend.com/
I dont realy know about kohana
Hmmm... for the Questions and Answers, have a look at Qhub. I'm aboutto implement it for a client of mine who's an adoption counselor. She gets tons of questions via emails and it's always the same ones over and over. I saw it on Design Reviver a while back and I thought it was a great idea. Plus I got in contact with one of the co-founders of Qhub and they told me that they are implementing some more privacy and privileges controls which is really good news since I only want my client to be able to answer the questions.
I would use WP with Qhub to be honest. If it's a blog-type site and you're already comfortable with WP, why not stick with it?
Hope this helps!
Check out the TDO Mini Forms plugin. I think it may serve your needs perfectly!

What would be a good sample project to ask a prospective programmer to code during the hiring process?

My understanding is that asking for a work sample is a good way to determine if someone has the skillset you are looking for, as some people just interview well. So I want to ask potential developers to write some sample code for me.
I'm looking for ideas on what kind of small project would be something they could do in an hour or two, and would show that they have a good grasp of OOP, good coding practices, etc. And what to look for once they finish - how to evaluate it fairly and usefully.
For context, I'm a small business owner, interviewing prospective developers, for PHP development on internal projects. I can code PHP but am not an expert (some of the work is refactoring code I've written to be better structured and consistent), and so I'm also looking for what to look for when evaluating the samples, given that I'm not a trained or super experienced programmer.
Especially for people who have done hiring of this type before and used this method.
I was also thinking I could give them some code to refactor, and see how they do on it. Has anyone ever given a refactoring test as part of the hiring process?
Clarification:
I'm not talking about coding during an interview. I'm talking about coding instead of an interview. For context the inspiration for this question came from this article in FastCompany about how work samples are better predictors of job success than interviews:
Why It May Be Wiser To Hire People Without Meeting Them
http://www.fastcompany.com/magazine/136/made-to-stick-hold-the-interview.html
I would create a not necessarily good application and embed some bugs. I would come up with some simple functionality to be added to the program.
Does the applicant find some bugs?
How does the applicant's code integrate into the existing code?
Does the applicant get stuck on something that doesn't really matter?
Does the applicant adapt to the coding standard of the existing code?
After this exercise, discuss the code with the applicant. This may be more valuable than the actual code.
NOTE: with regards to #bpapa answer I would make sure that problem is novel and obviously not to be used in production.
Personally I would refuse to do this when asked. An interview is one thing, and doing programming questions on paper to asses technical knowledge is fine, but actually writing some kind of application for somebody is billable and I wouldn't do it for free. Even if it only is supposed to take an hour.
I think you should focus more on what the person has done in the past, and ask technical questions that you know the answers to (since you said you have limited PHP knowledge and want a PHP developer).
I would heed Joel's advice that giving homework assignments for interviews just weeds out the best programmers (paraphrased from his book). The better programmers have a lot of options and so won't want to go through the exercise of a programming assignment. They just won't apply. That will leave you with the mid-competency people. Unfortunately, in my experience those are the ones most likely to try to look better than they are and if you aren't an expert yourself, the ones most likely to mislead you.
Here's an alternate option. Have them point you at some work they have already done. Not necessarily the code, but the site. During the interview, ask them questions about how they coded it. What data structures did they use? How were the classes or functions organized? What problems did they have to overcome?
Then as traditional programming questions in the interview that they could answer for you ont he spot. This way you can gauge their understanding and their syntax. The two don't have to be the same question.
If you are not an expert then I would suggest you be careful about trying to evaluate other developers. You should probably figure out a better way to assess the dev skills of someone else if you are not that comfortable with your own level.
I am not sure there is a good solution for you.
I'd make the coding samples very straightforward and not have it take an hour or two. Simple coding exercises that take a few minutes should be sufficient - combined with other discussions about best practices, frameworks, design questions, etc.
I like the problems at streamtech. They are pretty easy and can often be done in rather short time, but they show that the applicant is capable of structured thinking and translating this to structured code.
As for evaluation---I would use this as an opportunity to learn. Do the problem yourself first, then compare to the applicant's code. Look up any constructs that you don't know, then ask yourself which version is more obviously correct.
I think the best thing you can do is try to have a real expert sit in on the interview with you. Hire a third party if you need to. I'm not sure it's possible to be able to give a quality assessment of someone who is a more experienced developer than yourself.
The other thing to consider is that really good developers may pick up on the fact that they are more experienced than yourself, and if you indicate that you are one of the developers it may actually put them off (not trying to be offensive, I just mean in the context of you implying that you are not very experienced.)
Give them an address or such as a plain text file and ask them to create a simple script to turn it into XML. I used that once and it worked wonders.
If you want to test them on the spot, ask them to reverse a string. From an organisational standpoint, perseverance, determination and enthusiasm are just as important as being technically adept, IMHO.
Well, everyone seems to be discouraging the coding effort for an interveiw. I'll disagree with the disagreers. To answer your question--if you want an example of what to have them code--drop a simple calculator on the table in front of them and ask them to write a program to create the calculator virtually. Give them half and hour and see how far they get. Some may finish in that time.
Have you ever tried pair programming before? Two people sit down at one machine, they share keyboard and mouse, and talk about what they're doing as they go. I think this is absolutely the best approach, because it will, eventually (after everyone's panic subsides), really indicate how well you two work together.
If you're not a great programmer, this person should be able to teach you and put you at ease. If they're not that good, but you work together well, that might be more desirable than a brilliant but unpleasant person.
At the end of the session, just delete your work. No big deal.
I've never been a part of the hiring process... but in interviews I've done, I was asked once to implement a doubly linked list, and another to work out an algorithm, the classic, how many integer points within a given shape, in this case three points forming a triangle, once in O(n^2) and then again in O(n).
I don't think the way to do it is to make them program something, but to make sure they know how to figure it out. You give them a problem or ask them a question, and tell them to think out loud, and observe their thought process. This doesn't exactly show if they have clean code, but depending on the problem it gives you insight as to wether or not they know what their talking about.
Having a small, well defined task can help you take examine people on a level playing field with a relatively small investment of time on their part. You don't need something complicated to see what people can do.
In the past, I've asked people to write a small web application that exercises a few fundamental concepts. We keep the particulars of what the application is supposed to do really simple.
I would also try to avoid tasks that require a lot of supplemental knowledge (viz, don't ask them to solve a problem from your particular problem domain).
Edit:
Regarding "small, well defined tasks": What I try to shoot for is something that includes a very thorough description of some simple business logic as part of a larger programming task. For example, one of the programming assignments I've given in the past involves setting up a simple Java web application and implementing a few features. We made sure to describe thoroughly how the features were supposed to work to remove ambiguity. This was for a couple reasons:
The point is really to see if the candidate can build a simple application from scratch, not to see whether they can guess correctly about what we want.
If you define the task really well, you get to see more about how thorough someone is with the type of work that they're likely to be doing in a business situation.
We wanted something flexible enough to give to candidates at varying levels of experience.
I should note here that I think programming assignments are most effectively used to check for competency. If you give a really hard assignment, or one that isn't well-defined, odds are that you're not going to get results that tell you what you want to know (unless you're testing specifically for how the candidate handles difficult assignments or ambiguity).
I argree with bpapa about it being an interview instead of a test run, maybe instead consider asking some questions about how they would undergo certain talks to do with the programming...
I once had to sit a Visual Basic MCP exam at the end of which they didn't even bother to give me the result.
Happily though when I asked the question as to whether I would be given the result I was sitting at the Commit/Cancel screen.
So I hit cancel thanked them for wasting my time and walked out.
To answer the question:
For PHP, I think a shopping cart, address book and forum would be good projects. Those usually cover a wide spectrum of web-programming topics - sessions, registration, database, form processing and authentication.
Personally speaking:
It looks like you looking more of an architecture person than a coding guru. I wouldn't penalize the applicant because he cannot come up with the name of an obscure function or need to refer elsewhere. The key thing is that he has the initiative and know where to look (heaven knows how many times I need to look up PHP.NET). A good question for an architecture guy, IMHO, is to tell him you have a data-set, but you have three different ways of displaying them and each view has different operations. If his answer is just a gigantic SWITCH-CASE, then he may be the wrong choice.
Usually weak programmers does not understand recursion pretty well, that's from my observations as far as now, now this does not have anything to do with PHP directly and probably a recursive factorial or fibonacci series wouldn't be a big deal, but let's say to load a tree control with data from a database with some parent-child relationship might be a good sample.
Also as you're not an expert as you said, think off something you can handle confidently.
It usually depends on the language you are hiring for. For example, when I went and gave an interview for PHP, I was asked to write a blog script, using custom MVC framework, whereas when I interviewed for an opening as a JS dev, I was asked to code a certain plugin in jQuery. Its more dependent on you are hiring the guy for ultimately. You dont want to ask someone to write you a music recommendation engine and then have him work on a payments gateway processor.

Q & A site similar to stackoverflow in PHP

I am developing a Q & A Site for my students. I find stackoverflow an amazing example and would like to have something similar(if not this feature rich) for my course.
I am a sytem programmer not much familiar with web-application development. How do I begin. Database scheme, features, AJAXness etc. Can I get some existing codebase I can build on top of? Something opensource?
Language of choice is PHP. Any pointers are welcome.
Thank you in advance.
Edited: Added info
It would be reasonably trivial to create something similar as a learning exercise, but the real value behind the stackoverflow site is the polish, attention to detail and vision that's gone into the site and associated branding/marketing, etc.
Irrespective, you'll probably find that you get more answers if you do the ground work yourself and then post questions for any specific architecture/design/implementation issues you get stuck on.
It shouldn't be hard to replicate using PHP/MySQL. It's not a very complicated site. plan out how you want all of the tables/classes to be laid out (Questions, Answers, Users, Tags,Rep,Badges,etc.) and start coding.
Is there any particular part that you are confused about or looking for advice about?

Categories