SitePoint Sponsor

User Tag List

Page 1 of 2 12 LastLast
Results 1 to 25 of 48

Hybrid View

  1. #1
    Programming Team silver trophybronze trophy
    Mittineague's Avatar
    Join Date
    Jul 2005
    Location
    West Springfield, Massachusetts
    Posts
    17,189
    Mentioned
    191 Post(s)
    Tagged
    2 Thread(s)

    Calling all Coders! Enter the August Programming Competition here.

    Do you think you can write a...

    SitePoint Private Message Utility Application

    I can put my Private Messages into custom folders. And I can select Private Messages and move or delete them.
    But I wanted to be able to search them, save some, and clean things up now that I'm starting to get quite a few and my limit is approaching. And I didn't want to spend a lot of time doing so.

    I can export my Private Messages to Text, CSV, and XML files. So, I can archive my Private Messages and clean up the older ones saved on the forum if I want to. But do I want to save them all? And once I have them, what do I do with them so they're useful?

    My first impulse was to write my own utility application to run on a localhost server. But then I thought "Hey, SitePoint has a lot of members that write code! Maybe someone else could write a better application than I could?" quickly followed by "Why not have a contest?"

    The idea was passed along to those at SitePoint Headquarters, and they approved! So who can enter? Any and every SitePoint forum member!

    But be warned, the task is probably a bit much for a newbie developer. The time constraints and high standards may make meeting the requirements too daunting for even more advanced developers.

    That said, to make things as easy as possible, competitors can choose what format(s) the utility application works with and what language is used to write it in - with the stipulation that the judges can read and test it. The judges have experience with many languages and various versions and variants of those languages. For example:
    Awk, Bash, Basic variants, C/C++, Java, Lisp variants, Lua, Pascal variants, Perl, PHP, Python, Ruby, XSLT
    - So the chances are better than good that the language of your choice will be OK. Just let us know first to be sure.

    Those interested are encouraged to look at their own exported files. For easy reference they are as follows:

    TEXT FILE FORMAT: (whitespace includes newlines and tabs)
    Code:
    SitePoint Forums;http://www.sitepoint.com/forums
    Private Message Dump for User SampleMember; Jul 11, 2010 13:57 -->
    
    ################################################################################
    Folder :	Sent Items
    ################################################################################
    
    ================================================================================
    From :	SampleMember
    To :	FormAlly
    Date :	2006-11-14 01:24
    Summary :	added iframe
    --------------------------------------------------------------------------------
    If you can give me a link to the site I'll take a look at what's being added and look at what kind of user input stuff it has that should be checked. Not that I'm an expert, but it's worth a try.
    SampleMember
    CSV FILE FORMAT: (whitespace includes newlines)
    Code:
    Date,Folder,Summary,From,To,Message
    "2006-11-14 01:24","Sent Items","added iframe",SampleMember,FormAlly,"If you can give me a link to the site I'll take a look at what's being added and look at what kind of user input stuff it has that should be checked. Not that I'm an expert, but it's worth a try.
    SampleMember"
    XML FILE FORMAT: (whitespace includes newlines and tabs)
    Code XML:
    <?xml version="1.0" encoding="ISO-8859-1"?>
     
    <!-- SitePoint Forums;[url]http://www.sitepoint.com/forums[/url] -->
    <!-- Private Message Dump for User SampleMember; Jul 11, 2010 13:54 -->
     
    <privatemessages>
    <folder name="Sent Items">
    <privatemessage>
    			<datestamp>2006-11-14 01:24</datestamp>
    			<title>added iframe</title>
    			<fromuser>SampleMember</fromuser>
    			<fromuserid>83449</fromuserid>
    			<touser>FormAlly</touser>
    			<message><![CDATA[If you can give me a link to the site I'll take a look at what's being added and look at what kind of user input stuff it has that should be checked. Not that I'm an expert, but it's worth a try.
    SampleMember]]></message>
    		</privatemessage>

    Don't have any Private Messages to export and work with or prefer to not use your own? The attached SampleMember files are available for your convenience. Every effort has been made to make them as "real" as possible.
    privatemessages-SampleMember-Jul 11, 2010.txt
    privatemessages-SampleMember-Jul 11, 2010.csv
    privatemessages-SampleMember-Jul 11, 2010.xml

    Now the details, the utility application:

    Must:
    • state platform requirements
    • follow a standard coding style convention - i.e. human readable with good naming - in English.
    • have enough comments to make it easier for someone unfamilliar with the code.
    • be able to be run on a typical localhost server
    • be 100% error free (suppressing errors doesn't count!)
    • interfaced via a web page that has valid accessible mark-up,
      ....... any javascript and CSS in external files only
    • SELECT file(s)
    • READ data from the exported Text and/or CSV and/or XML files and those created by the application,
    • SEARCH Private Messages by:
      ....... folder, date(s), from, to
      ....... summary, message - by using both single words or phrases
    • DISPLAY results in a table or table-like rendering
    • SORT results in both ascending and descending date and time order
    • SAVE any selected results to a new separate file (Text and/or CSV and/or XML).
    • be fully functional without javascript being enabled
    • still be easily readable without CSS being enabled
    • be such that others are freely able to use your code for personal use for free


    Optional:
    • code can be written in any language the judges can read and test
      ....... Post here to let us know and find out if it's OK first
    • testing can be done using either developer's own exported Private Message files or the attached SampleMember files
    • mark-up can be
      ....... HTML
      ....... XHTML
    • javascript, if used, can include freely available open-source libraries
    • images, if used, must be your own or in the public domain
    • any reasonable directory structure is acceptable


    Time Span:
    • Participants will have 14 days to submit their Beta version. That is, until August 14 midnight GMT
      - Only one submission per member will be accepted.
    • Approximately 5 days later the winner and any deserving honourable mention will be announced.


    Additional Criteria:
    • in the event of any "ties" Bonus Points* will be taken into consideration
    • Submissions should NOT be attached to posts. Please send me a Private Message with a URL where I can download them. Or send me a Private Message and I will give you an email address where you can send them.


    Incentives:
    • Code to be made available to other members for their personal use.
    • Winner will be featured in an Interview thread
    • Winner will receive a SitePoint book and admittance to a *Live Course of their choice Free
    • Those receiving Honourable Mention will receive admittance to a *Live Course of their choice Free


    *Bonus Points for:
    • Secure access
    • Pagination of results
    • Most efficient run time
    • Most efficient memory use
    • Having the utility application also work with (but not dependent on) database(s)
    • Rendering smilies as images


    Sign up now, the clock is ticking!

    Last edited by Mittineague; Jul 31, 2010 at 20:24.

  2. #2
    SitePoint Enthusiast Mr.Alexander's Avatar
    Join Date
    Apr 2010
    Location
    Toronto, Canada
    Posts
    46
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Sounds like a great competition, hopefully I can participate.

  3. #3
    SitePoint Member
    Join Date
    Aug 2010
    Posts
    1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Awesome, I think JSON output would be a benefit, especially considering the JavaScript community around Sitepoint.

    Any UI requirements (besides table of messages)? i.e. should it look like Sitepoint Forums?

  4. #4
    Programming Team silver trophybronze trophy
    Mittineague's Avatar
    Join Date
    Jul 2005
    Location
    West Springfield, Massachusetts
    Posts
    17,189
    Mentioned
    191 Post(s)
    Tagged
    2 Thread(s)
    I've been working on my own version that works with all 3 exported file formats.
    But that is NOT required. As long as it works with at least one of them it's fine.

    So far I have the initial page which shows a list of the available files with checkboxes
    The - "Must SELECT file(s)" - requirement.
    and submit buttons for each format.

    The second page has several inputs including a "sort by"
    The - "Must SEARCH Private Messages by:
    ....... folder, date(s), from, to
    ....... summary, message - by using both single words or phrases" and "Must SORT results in both ascending and descending date and time order" - requirements.
    with a submit button and a "go back" return link.

    The third page displays any Private Messages that matched the input from the second page. Any or all that matched can be selected. A new file can be given a filename and saved in an existing or new folder.
    The - "Must DISPLAY results in a table or table-like rendering" and "Must SAVE any selected results to a new separate file (Text and/or CSV and/or XML)." - requirements.
    with a submit button and "go back" return links

    IMHO working with only one format and putting something together without any of the "Bonus Point" features will still be quite a task. I suggest you write something basic first and then add the "bells and whistles" if you have enough time. The submission is a Beta after all, not a Release Candidate! It doesn't have to look like the SitePoint forum. The main concern is that it be easily readable. Anything more than that is a plus in your favor.

    Another thing that merits repeating for all interested is to please sign up here BEFORE writing any code!. I wouldn't want someone to spend a lot of time putting together something the judges can't read and test.

    For example, if I was entering I would leave a post like

    Hi, I'm interested in writing a utility app in PHP. The requirements are
    * PHP with PCRE enabled (default as of PHP 4.2+)
    * Text and/or CSV requires PHP 4+
    * XML requires PHP 5 with SimpleXML enabled (default)
    Is this OK?

  5. #5
    SitePoint Wizard Stomme poes's Avatar
    Join Date
    Aug 2007
    Location
    Netherlands
    Posts
    10,278
    Mentioned
    50 Post(s)
    Tagged
    2 Thread(s)
    I've been working on my own version that works with all 3 exported file formats.
    But that is NOT required. As long as it works with at least one of them it's fine.
    This is big news... the text above made it sound like Text was required and the others were possible additions! Thanks.

  6. #6
    Programming Team silver trophybronze trophy
    Mittineague's Avatar
    Join Date
    Jul 2005
    Location
    West Springfield, Massachusetts
    Posts
    17,189
    Mentioned
    191 Post(s)
    Tagged
    2 Thread(s)
    Quote Originally Posted by Stomme poes View Post
    This is big news... the text above made it sound like Text was required and the others were possible additions! Thanks.
    I'm glad it came up soon then. Using "and/or" is one of my grammatical idiosyncrasies (eg. like using (...) and "..."). I know what I mean, so I figure others will too. As old as I'm getting to be I should know better, but that's another idiosyncrasy

    But no, working with one, two, or all three formats is fine. TBH I just finished writing my own text file parser class and I'll be impressed if anyone takes that route.

    Also, I've though of another Bonus Point
    I have no trouble reading bbCode tags, but if anyone wants to change them to HTML tags for the rendered display, go for it!

  7. #7
    SitePoint Author silver trophybronze trophy
    wwb_99's Avatar
    Join Date
    May 2003
    Location
    Washington, DC
    Posts
    10,633
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)
    If I were to submit one, it would be

    * ASP.NET 4 MVC based
    * Run with a few open source libraries to handle details of file parsing and search (will be statically included, no config for the judges)
    * If I were to use a database, it would be MSSQL express.

    Would that be acceptable?

  8. #8
    Programming Team silver trophybronze trophy
    Mittineague's Avatar
    Join Date
    Jul 2005
    Location
    West Springfield, Massachusetts
    Posts
    17,189
    Mentioned
    191 Post(s)
    Tagged
    2 Thread(s)
    Quote Originally Posted by wwb_99 View Post
    If I were to submit one, it would be

    * ASP.NET 4 MVC based
    * Run with a few open source libraries to handle details of file parsing and search (will be statically included, no config for the judges)
    * If I were to use a database, it would be MSSQL express.

    Would that be acceptable?
    One of the judges has given their thumbs up Go for it!!

  9. #9
    SitePoint Wizard bronze trophy
    Join Date
    Jul 2006
    Location
    Augusta, Georgia, United States
    Posts
    4,151
    Mentioned
    16 Post(s)
    Tagged
    3 Thread(s)
    My builds platform requirements will be as follows:

    PHP 5 w/ SimpleXML, DomDocument & XSLTProcessor (1.0)

    acceptable?
    The only code I hate more than my own is everyone else's.

  10. #10
    Programming Team silver trophybronze trophy
    Mittineague's Avatar
    Join Date
    Jul 2005
    Location
    West Springfield, Massachusetts
    Posts
    17,189
    Mentioned
    191 Post(s)
    Tagged
    2 Thread(s)
    Quote Originally Posted by oddz View Post
    My builds platform requirements will be as follows:

    PHP 5 w/ SimpleXML, DomDocument & XSLTProcessor (1.0)

    acceptable?
    SimpleXML and DomDocument are enabled by default - no problem there
    XSLTProcessor is included but not enabled by default - easy enough for tech savvy members but it might be beyond other's capabilities.

    If you can get it to work OK without XSLTProcessor and have that as an enhancement for those that have (or can get) it enabled that would be perfect.

    Otherwise if you include instructions on how to enable it - ie. a README - I think that should be OK too.

    The primary intent of the Must be able to be run on a typical localhost server requirement is that the application should be easy enough so that members can upload it and run it - without any additional Installation process that might be too complicated for them to deal with.

  11. #11
    SitePoint Member
    Join Date
    Jul 2010
    Location
    Raleigh, NC
    Posts
    6
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I'll give the contest a go. My current plan is to use Turbogears 2.1 which is a full-stack, Python web framework.

    Looking forward to hopefully getting something submitted.

  12. #12
    SitePoint Wizard bronze trophy
    Join Date
    Jul 2006
    Location
    Augusta, Georgia, United States
    Posts
    4,151
    Mentioned
    16 Post(s)
    Tagged
    3 Thread(s)
    hmmm…

    I was thinking of using XSL for mostly the entire thing. Just use PHP to create "dynamic xpath" queries and inject some control and request variables into the template. I'll see what I can dig up on enabling it though considering my approach has a heavy reliance on it.
    The only code I hate more than my own is everyone else's.

  13. #13
    billycundiff{float:left;} silver trophybronze trophy RyanReese's Avatar
    Join Date
    Oct 2008
    Location
    Whiteford, Maryland, United States
    Posts
    13,623
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)
    Do..I want to do this or not...after I come home from Nationals I'll come see if I can whip something up and how long it'll take me..said the same thing about the sitepoint book writing stuff and I never got around to that either
    Always looking for web design/development work.
    http://www.CodeFundamentals.com

  14. #14
    Programming Team silver trophybronze trophy
    Mittineague's Avatar
    Join Date
    Jul 2005
    Location
    West Springfield, Massachusetts
    Posts
    17,189
    Mentioned
    191 Post(s)
    Tagged
    2 Thread(s)
    I use Notepad++ for developing. I wrote one in PHP that works with all 3 formats - Text, CSV, and XML in about 20 hours. The text format being the hardest for me.

    Having it work with all 3 formats is NOT a requirement. As long as it works with one format it's fine.

    Of course mine isn't designed very classy looking, but it's completely functional.

    My suggestion is to "sign up" here to see if it's OK before you write any code. Once approved, take your time and do a good job at it. Use any remaining time before the closing deadline to polish it up. And submit it close to, but careful, not after, the deadline.

  15. #15
    SitePoint Wizard Stomme poes's Avatar
    Join Date
    Aug 2007
    Location
    Netherlands
    Posts
    10,278
    Mentioned
    50 Post(s)
    Tagged
    2 Thread(s)
    I'll give the contest a go. My current plan is to use Turbogears 2.1 which is a full-stack, Python web framework.
    Python's jawsome. I want to see this.

  16. #16
    Programming Team silver trophybronze trophy
    Mittineague's Avatar
    Join Date
    Jul 2005
    Location
    West Springfield, Massachusetts
    Posts
    17,189
    Mentioned
    191 Post(s)
    Tagged
    2 Thread(s)
    OK!

    So far it looks like 3 have been given the go ahead!

    wwb_99
    ASP.NET 4
    oddz
    PHP 5
    KamiQuasi
    Python



    I was expecting to see PHP, PHP, PHP, PHP ..... so it's a very pleasant surprise for me to see there's interest in other languages.

  17. #17
    SitePoint Enthusiast
    Join Date
    Aug 2005
    Posts
    32
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I simply open the xml file in Open Office Calc, delete the ones I don't want to keep and re-save the file. Results are comparable to most solutions that are likely to be developed.

    Development time: less than 1 second.
    Dependencies: Open Office or MS Excel.
    Installation time: 0 - 2 minutes depending on whether open office or excel is installed.

  18. #18
    SitePoint Enthusiast
    Join Date
    Aug 2005
    Posts
    32
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Actually the purpose is to have better functionality than what's found in vBulletin. AFAIK there's no way to search PMs for Date: To: From: Title: or Message: content. If there is, please let me know.
    a) If extending vb's functionality is your primary goal, then perhaps a vbulletin plugin would be more appropriate?

    b) vbulletin 4 allows you to search by those parameters. vbulletin 3.7 is going to be the last release of the vb3 series... its practically end of life at this point.

    vb4 pm search.PNG

  19. #19
    SitePoint Guru
    Join Date
    Jun 2006
    Posts
    638
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Question: what localhost server should this run on? linux, windows or both?

  20. #20
    SitePoint Author silver trophybronze trophy
    wwb_99's Avatar
    Join Date
    May 2003
    Location
    Washington, DC
    Posts
    10,633
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)
    Getting stuff flying, a few questions about the requirements:

    # SAVE any selected results to a new separate file (Text and/or CSV and/or XML).
    1) What format--the SitePoint messaging format or the app's native format?
    2) Define selected--is it "user has checked these messages" or "export search result"?

    be fully functional without javascript being enabled
    1) Define "fully functional"--I can see a few scenarios where you would be able to search/export results but some fancy stuff would require js to make it go.

    WRT "typical localhost"

    Do we mean "typical local use setup" or "typical shared hosting provider". Especially for .NET apps there are some *big* differences as you need to consider non-trusted scenarios which can severely limit what you can do with your app.

  21. #21
    Non-Member buzzerchat's Avatar
    Join Date
    Aug 2010
    Posts
    75
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    why not use jquery and ajax with php, think about it.

  22. #22
    Programming Team silver trophybronze trophy
    Mittineague's Avatar
    Join Date
    Jul 2005
    Location
    West Springfield, Massachusetts
    Posts
    17,189
    Mentioned
    191 Post(s)
    Tagged
    2 Thread(s)
    Quote Originally Posted by buzzerchat View Post
    why not use jquery and ajax with php, think about it.
    If you want to write one in PHP with jquery and ajax go for it.
    As long as it will still work with javascript not enabled you're in.

  23. #23
    SitePoint Addict NetNerd85's Avatar
    Join Date
    Aug 2005
    Location
    Australia
    Posts
    298
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Mittineague View Post
    If you want to write one in PHP with jquery and ajax go for it.
    As long as it will still work with javascript not enabled you're in.
    Counts me out. I live in the future now and we have javascript. Let me know when you want to catch up
    a new day, a new beginning
    never follow the crowd, the crowd is poor!

  24. #24
    Programming Team silver trophybronze trophy
    Mittineague's Avatar
    Join Date
    Jul 2005
    Location
    West Springfield, Massachusetts
    Posts
    17,189
    Mentioned
    191 Post(s)
    Tagged
    2 Thread(s)
    Quote Originally Posted by NetNerd85 View Post
    Counts me out. I live in the future now and we have javascript. Let me know when you want to catch up
    Well, I'm disappointed. I was hoping to see it.

    Actually javascript isn't the future, I've been messing with it for over a decade now. (since way back in my "stupid javascript tricks" days ) What the requirement is meant to test is a developer's skill at Progressive Enhancement. Not exactly the future either I guess, but IMHO it should be more commonplace now.

  25. #25
    SitePoint Guru Chroniclemaster1's Avatar
    Join Date
    Jun 2007
    Location
    San Diego, CA
    Posts
    784
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Mittineague View Post
    Well, I'm disappointed. I was hoping to see it.

    Actually javascript isn't the future, I've been messing with it for over a decade now. (since way back in my "stupid javascript tricks" days ) What the requirement is meant to test is a developer's skill at Progressive Enhancement. Not exactly the future either I guess, but IMHO it should be more commonplace now.
    Ditto. Some people's lack of pride and professionalism simply stuns me (sadly it no longer amazes me).
    Whatever you can do or dream you can, begin it.
    Boldness has genius, power and magic in it. Begin it now.

    Chroniclemaster1, Founder of Earth Chronicle
    A Growing History of our Planet, by our Planet, for our Planet.


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
  •