SitePoint Sponsor

User Tag List

Results 1 to 25 of 25
  1. #1
    Umm. PHP Guru....Naaaah jaswinder_rana's Avatar
    Join Date
    Jul 2004
    Location
    canada
    Posts
    3,193
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Exclamation New PHP Project!! Suggestions Please...

    I am learning PHP. i want to test my skills by creating a project. Now i don't know what i should be developing. I want to develop this project not only for learning but also for showing my skills too. so, in future if i apply for a job or something i can put this in my resume and can say i developed this project.

    Can somebody please suggest something?? i know this sounds funny but i am thinking for over 2 weeks now and could not decide what i should develop.

    Help Please.
    Note: My skills are between intermediate and advanced

  2. #2
    ********* Addict
    Join Date
    Apr 2000
    Location
    Posts
    272
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hey again!

    I suggest you visit one of the many freelancer sites around. Albeit the prices people seem to be willing to pay are pathetically low, you might get some ideas... you don't necessarily have to bid! I won't name any sites, but google should spit out some interesting ones.

    Pedro.

  3. #3
    Non-Member bronze trophy geniusgoalie's Avatar
    Join Date
    Sep 2004
    Location
    Buffalo, USA
    Posts
    979
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    hmmm... do a search in the "scripts and services" section for scripts that people want but are nonexistant. There are more than you would think!

  4. #4
    ********* Victim lastcraft's Avatar
    Join Date
    Apr 2003
    Location
    London
    Posts
    2,423
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Hi...

    Quote Originally Posted by jaswinder_rana
    Can somebody please suggest something??
    How about a spam hardened blog/wiki kit (with sample apps). Possible classes...
    1) Should have IP blocking and ISP reporting.
    2) Should have random text field names to cause robots headaches.
    3) Should have e-mail authentication for known users.
    4) Should have tests so that it can be refactored into what you want.
    5) Should be able to import known IP block lists.
    6) Should have Bayesian spam detection to block first posts.

    The point is you can start with just the useful classes and build up complete apps. later.

    yours, Marcus
    Marcus Baker
    Testing: SimpleTest, Cgreen, Fakemail
    Other: Phemto dependency injector
    Books: PHP in Action, 97 things

  5. #5
    Umm. PHP Guru....Naaaah jaswinder_rana's Avatar
    Join Date
    Jul 2004
    Location
    canada
    Posts
    3,193
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by lastcraft
    Hi...



    How about a spam hardened blog/wiki kit (with sample apps). Possible classes...
    1) Should have IP blocking and ISP reporting.
    2) Should have random text field names to cause robots headaches.
    3) Should have e-mail authentication for known users.
    4) Should have tests so that it can be refactored into what you want.
    5) Should be able to import known IP block lists.
    6) Should have Bayesian spam detection to block first posts.

    The point is you can start with just the useful classes and build up complete apps. later.

    yours, Marcus
    now that's a suggestion. thanks marcus. now i would sure try to do something like this. even though i don't know how it works lol. but, like i said i never made a project and i want to start. well you have to start somewhere. and i think its start for me now.

  6. #6
    SitePoint Addict trogdor1024's Avatar
    Join Date
    Oct 2004
    Location
    New Jersey
    Posts
    235
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Well, what's important to you in your life, or at work, or to your friends that might be a little easier if it had the power of the web behind it?

    The last project I did "just for fun" stemmed from me hearing my family practically batter each other over the head with the "what do you want for Christmas" or "for your birthday" or what does he want, what does she want?!?!?!?! So I developed the "Family Gift Registry" for my family so everyone can log into their own accounts and add whatever they want (no matter how small or ridiculously expensive). This way we have an idea what to get each other and we also learn about each others tastes. Plus we are somewhat geographically disbursed and the web-based thing really helps. My next rev is planned out and will include "Library" functionality (thought being I keep hearing other family members say "I just rented this movie the other night" and it burns me up if I already have it and could have lent it to them; vice versa when I find out they own something that I just rented)... this will allow them to see what others own (movies, books, cds, whatever) so we can help each other out a bit.

    Now, not that I suggest that you go out and program a registry site... just an example of how I came up with a side project to do that also added value to my life.

    A budget program is another avenue... everyone and their Mom does "the books" in their household slightly different; maybe suit a program to how you would do it.

  7. #7
    Umm. PHP Guru....Naaaah jaswinder_rana's Avatar
    Join Date
    Jul 2004
    Location
    canada
    Posts
    3,193
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    well trogdor1024 i have to agree that is some great project (atleast to me). and i really appreciate you came out to suggest me. thanks. that gives me some more choice to decide. one thing i have admit about i should some brain storming myself.

  8. #8
    Resident Java Hater
    Join Date
    Jul 2004
    Location
    Gerodieville Central, UK
    Posts
    446
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    You might want to extend on the idea Marcus provided and work on making the Spam filtering system independant of the Wiki system, and possibly do these as two separate projects. The wiki would be simply there to provide some sort of "use case" for the spam filtering system.

    Your spam filtering system ideally would be some sort of API based on a collection of classes for each main type of filter.

    Marcus sort of suggested / hinted the idea of keepting these separate in his last line of text. This way the spam filtering system is a set of useful classes that work as an API, and thus can be used in any project.

    I don't know if there are any good spam filtering classes out therefore this, but if there are they problably aren't too well written (nasty proceedual code with globals etc). The trick to this sort of stuff is to think out your overall design well. Espcially as it's going to be an API for filtering spam. Like anyone who writes an API or framework, it will be hard to get it right first time (interface wise for the classes and their methods). Very few people can write a good API from scratch, and therefore having a Wiki app as a test case would be a useful way to ensure your API interface is logically setup (it's almost like having a "customer" for a project in some sense if your someone with agile programming knowledge/experience).

    Don't be scared to ask people here for their advice when it comes to design. People won't design everything for you, however if you propose a design and ask for feedback, people will help you as it shows you have thought about things (it also gives people an idea how you are thinking, and therefore helps them help you). (There's nothing worst when people ask for help but really expect others to *do* everything because they are too lazy to think/learn)

    Anyway, good luck. Keep us posted how you get on. maybe you'd realise the classes open source if you complete them!

    On a side note, look at Harry's post on http://www.sitepoint.com/blog-post-view.php?id=220357 as that might spark off some ideas

  9. #9
    Resident Java Hater
    Join Date
    Jul 2004
    Location
    Gerodieville Central, UK
    Posts
    446
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    On another side note, remember try not to make the project too big. Focus first ona small bunch of spam filters then work on a mini wiki type app. If you try to see these two related projects and not one big project, I think it will be more manageable. Big projects never seem to work out I find when you are doing things for the "learning curve". The nice thing with the spam filtering idea is that each of the filtering systems can be written independantly so you hopefully won't have an unmanagably large project that is not easy to focus on.

    Out of interest, what sort of previous skills do you have with programming. I sort have talked down here assuming your fairly new to web programming and OO stuff because picked up on the word "learning" (So don't be offended if you have some PhD in computer science ;-) )

  10. #10
    ********* Victim lastcraft's Avatar
    Join Date
    Apr 2003
    Location
    London
    Posts
    2,423
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Hi...

    Quote Originally Posted by MiiJaySung
    You might want to extend on the idea...
    You said all of the things I wanted to say, but didn't have time. You pretty much read my mind. Alas...
    You must spread some Reputation around before giving it to MiiJaySung again.
    yours, Marcus
    Marcus Baker
    Testing: SimpleTest, Cgreen, Fakemail
    Other: Phemto dependency injector
    Books: PHP in Action, 97 things

  11. #11
    Umm. PHP Guru....Naaaah jaswinder_rana's Avatar
    Join Date
    Jul 2004
    Location
    canada
    Posts
    3,193
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    ok about my experieince i have experience with OO stuff and i feel more comforatable with OO than procedural. i am not advanced though coz i din't practice much. i don't like to use other people's API (as long as i can afford). its not i don't like there code or something its just i like to code myself. this way i can learn more.

    now if the question i am going to ask is not dumb then can you please answer.
    i know what BLOG is what i don't know what wiki is REST ASIDE spam filtering.

    can you give me a short description and/or point to a tutorial that i can read and get a hang of it.

    sometimes i feel i am posting in Advanced PHP Programming but my questions are not advanced. so, i am not sure is it still ok to post in this section because all people who post here are experts.

    and thanks for the suggestions.

  12. #12
    eschew sesquipedalians silver trophy sweatje's Avatar
    Join Date
    Jun 2003
    Location
    Iowa, USA
    Posts
    3,749
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    A future point of expansion for the SPAM might be to enable a HoneyPot somehow. Particullarly for Wiki's it would be nice to allow them to think it was working but silently drop their content.

    Also, it might be nice to have a "tar-pit" as well, say for blog comment. If you detect the spammer, never send a response back, but never disconnect as well. Make they user agent hang around waiting for the response so they don't get to spam as many people.

    Also,also, moderation sucks. If you get confidence in the system, it would be nice to have everything automated (at least as an option) instead of requiring user action.
    Jason Sweat ZCE - jsweat_php@yahoo.com
    Book: PHP Patterns
    Good Stuff: SimpleTest PHPUnit FireFox ADOdb YUI
    Detestable (adjective): software that isn't testable.

  13. #13
    ********* Victim lastcraft's Avatar
    Join Date
    Apr 2003
    Location
    London
    Posts
    2,423
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Hi...

    Quote Originally Posted by sweatje
    Also,also, moderation sucks. If you get confidence in the system, it would be nice to have everything automated (at least as an option) instead of requiring user action.
    Absolutely. Why WordPress insists you manually dlete 100+ spam messages is beyond me.

    Regarding tar pit nasties, issuing a redirect to a self redirecting page is nice (although they keep hitting you on that page you can add a one second delay as well) or redirecting to 192.168.254.254 can cause them some head scratching when they look at their logs. Streaming one random word a second forever is another of my favourites. Less load on you, but you need to have spare connections available if they are dumb enough never to timeout.

    As for an example Wiki see the Wikipedia amongst many others. basically they are web pages that can be edited on the web.

    yours, Marcus
    Marcus Baker
    Testing: SimpleTest, Cgreen, Fakemail
    Other: Phemto dependency injector
    Books: PHP in Action, 97 things

  14. #14
    Umm. PHP Guru....Naaaah jaswinder_rana's Avatar
    Join Date
    Jul 2004
    Location
    canada
    Posts
    3,193
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    sorry for being dumb but can you please elaborate more about wiki and the spamming of blogs or better yet send me to a tutorial so you don't have to write much.

  15. #15
    eschew sesquipedalians silver trophy sweatje's Avatar
    Join Date
    Jun 2003
    Location
    Iowa, USA
    Posts
    3,749
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    There were some interesting ideas about wiki tarpits discussed on the ruby general list a few weeks back:
    http://www.talkaboutprogramming.com/...es/117545.html

    Might be a good starting point.

  16. #16
    SitePoint Guru
    Join Date
    Nov 2002
    Posts
    841
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by lastcraft
    Absolutely. Why WordPress insists you manually dlete 100+ spam messages is beyond me.
    Indeed. Deleted over 700 this weekend. Just checked and I have over 500 more waiting today. Just displaying the moderation page gives my browser a workout. Have they not heard of the concept of a pager? All I can say is

    DELETE FROM wp_comments WHERE comment_author_url like '%poker%' OR comment_author_url like '%picture%' or comment_author_url like '%porn%' OR comment_author_url like '%pics%' or comment_author_url like '%video%' or comment_author_url like '%cream%' or comment_author_url like '%sex%' or comment_author_url like '%hold%'

    Deleted rows: 502 (Query took 0.0207 sec)

    someday there will be collateral damage.

    The cobblers children have no shoes.

  17. #17
    Resident Java Hater
    Join Date
    Jul 2004
    Location
    Gerodieville Central, UK
    Posts
    446
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    You said all of the things I wanted to say, but didn't have time. You pretty much read my mind. Alas
    You know what they say. Great minds think alike (probably why Apple don't get any market share as they "think different" ).

    Certainly support to query blacklisting servers (using XML RPC / SOAP) would be a "cool" little thing for things that are suspected spam.

  18. #18
    eschew sesquipedalians silver trophy sweatje's Avatar
    Join Date
    Jun 2003
    Location
    Iowa, USA
    Posts
    3,749
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Here was my own little "modification" to wordpress which significantly reduced the volume of email I have to moderate. I use a "three strikes your out" model. If I have to moderate you three times, something about you goes into my kill file.

    PHP Code:
    sweatje@dilbert wordpress $ grep -A 5 -B 5 jes wp-comments-post.php
     
    if ( '' == $comment )
            die( __('Error: please type a comment.') );
     
    // JES additions
    @include 'jes_comment_kill.php';
     
    $now = current_time('mysql');
    $now_gmt = current_time('mysql', 1);
     
     
    sweatje@dilbert wordpress $ cat jes_comment_kill.php
    <?php
    if ( 'sunny@moonlightshadow.us' == $email
            
    || preg_match('/poker|casino|loans|gambling|adipex|payday/i'$url)
            || 
    preg_match('/phentermine|consolidation|play-texas/i'$url)
            || 
    preg_match('/debt consolidation/i'$author)
            || 
    preg_match('/viagra/i'$comment)
            || 
    preg_match('/ownthis\.com|sindyhalliday|cialis|1freespot/i'$url)
            || 
    preg_match('/texas|hold|tramadol|blackjack|direct-tv/i'$url)
            )
                    die( 
    __('I do not accept comments from you.  Buzz off.') );

  19. #19
    SitePoint Zealot
    Join Date
    Jun 2003
    Location
    Elsewhere
    Posts
    107
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by jaswinder_rana
    sometimes i feel i am posting in Advanced PHP Programming but my questions are not advanced. so, i am not sure is it still ok to post in this section because all people who post here are experts.
    Don't worry too much about posting in this forum: if the people or the moderators here think that your post is not advanced enough, or could be better answered in a different forum, then your topic will be moved. After a couple of misplaced topics you'll learn where to post which topics.

    The only thing you should worry about: I've seen beginners post really simple questions here, and they sometimes end up with very advanced answers. So if you're not ready for lengthy discussions about which pattern to use and how to apply MVC to your application, maybe you should post your questions in the regular PHP forum.

    * I see you've just started off a discussion about spam filtering.... which proves my point quite nicely *

    But if you're not afraid of starting complex discussions, and you understand enough of what people here are discussing, then feel free to post your questions in this forum.

    WIKI: Software that allows many people to work together on a single website. Usually there are no real administrators who decide what people can post, so the community itself has to manage the content, adding new things, and removing old content or spam. Wikis are not easy to build; I'd rate them as 'pro' (one step up from advanced).

    SPAM FILTERING: Since anyone can post content on a wiki (or in a weblog's comments), people are starting to use them for commercial links and content. So anyone with a blog will find posts about certain medicines (Vi*g*a) etcetera in their comments. The blogging/wiki communities are now trying to find out how to counter these spam messages, which are often created by some automated process. One way is to make it harder for people or scripts to post content, another way is to filter all submitted content with a 'spam filter', and filtering out posts with suspicious words.

    As for a suggestion: I don't really have any (sorry). Maybe you can come up with something that works for you if you try to find out which things take too much time in your real life, or which don't work well (like trogdor1024's example).

    Good luck.

  20. #20
    ********* Victim lastcraft's Avatar
    Join Date
    Apr 2003
    Location
    London
    Posts
    2,423
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Hi...

    Quote Originally Posted by jaswinder_rana
    now if the question i am going to ask is not dumb then can you please answer.
    i know what BLOG is what i don't know what wiki is REST ASIDE spam filtering.
    Then just do the blog part. The code will be the same. Here are some possible classes that I would like to have...
    PHP Code:
    interface SpamRecorder {     // DataMapper for different storage types.
        
    function recordAttack(Attack $attack);
        function 
    importAttackList($list);
        function 
    findAll();
        function 
    findInLastFewDays($number_of_days);
        function 
    isBanned($number_of_days$ip);
    }

    class 
    Attack {
        function 
    __construct($time$ip) { }
        function 
    getIp() { }
        function 
    getTime() { }
    }

    class 
    EngineReporter {
        function 
    reportSpamPromotedSite($text) { }
    }

    class 
    GoogleReporter extends EngineReporter { }

    class 
    SpamDisemminator {
        function 
    asRss($recorder$number_of_days) { }
        function 
    importRss($url$recorder) { }
    }

    class 
    IspReporter {
        function 
    findDomain($ip) { }
        function 
    sendAbuseMailToIsp($domain$attack$template) { }
        function 
    reportNewAbuse($recorder$number_of_days$template) { }
    }

    class 
    ApacheConfigurationEditor {
        function 
    addDenyListToHtAccess($htaccess$recorder) { }
        function 
    addDenyListToConfiguration($configuration$recorder) { }
    }

    class 
    SpamServiceBuilder {
        function 
    createXmlRpcServer($recorder) { }
        function 
    createXmlRpcClient($url$recorder) { }
    }

    interface 
    SpamDetector {
        function 
    isSpam($text$threshold);
    }

    class 
    BayesianSpamDetector implements SpamDetector {
        function 
    isSpam($text$threshold) { }
        function 
    processSpam($sample) { }
        function 
    processLegitimate($sample) { }
    }

    class 
    KeyphraseSpamDetector implements SpamDetector {
        function 
    isSpam($text$threshold) { }
        function 
    addKeyphrase($phrase$score) { }

    Suggestions only of course.

    yours, Marcus
    Marcus Baker
    Testing: SimpleTest, Cgreen, Fakemail
    Other: Phemto dependency injector
    Books: PHP in Action, 97 things

  21. #21
    Umm. PHP Guru....Naaaah jaswinder_rana's Avatar
    Join Date
    Jul 2004
    Location
    canada
    Posts
    3,193
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks for the suggestions everybody. i know its going a bit advanced BUT i also know i have to be here someday and i have to start somehow.
    i know i posted my question here for some suggestions but i was a bit ready and expecting for it to be advanced.
    and thanks for the code bit everybody. i am writing everything down and i will start on something very soon.
    BUT, Please keep on suggesting.

    again can somebody please list some open source blogger/wiki and/or spam filter so i can understand what are these

  22. #22
    eschew sesquipedalians silver trophy sweatje's Avatar
    Join Date
    Jun 2003
    Location
    Iowa, USA
    Posts
    3,749
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    These are probably a good starting place:
    blog roundup
    http://www.sitepoint.com/blog-post-view.php?id=210101

    wiki roundup (though with a bias towards a particular implementation)
    http://www.sitepoint.com/blog-post-view.php?id=201603

    blog spam control
    http://www.sitepoint.com/blog-post-view.php?id=217519

  23. #23
    Non-Member
    Join Date
    Jan 2003
    Posts
    5,748
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hows about an abstract tracking system?

    Whereby you could easily track

    * products/orders
    * hotel rooms/reservations
    * ...

    If the component base is abstract enough, you'd then have a (very) re-usable code base to cater for the above suggestions, and more besides

  24. #24
    Umm. PHP Guru....Naaaah jaswinder_rana's Avatar
    Join Date
    Jul 2004
    Location
    canada
    Posts
    3,193
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    So, something like product ordering system and/or hotel reservation but abstract so one system can be used for both with just simple configurations changes. RIGHT??
    Quote Originally Posted by Dr Livingston
    Hows about an abstract tracking system?

    Whereby you could easily track

    * products/orders
    * hotel rooms/reservations
    * ...

    If the component base is abstract enough, you'd then have a (very) re-usable code base to cater for the above suggestions, and more besides

  25. #25
    Non-Member
    Join Date
    Jan 2003
    Posts
    5,748
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Exactly

    The whole system would need to be modular based, right down to the last digit, so to speak.

    Another use of a system would be the rental market, for DVDs - that would be easy to implement as well


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •