Click here to Skip to main content
15,887,214 members

peterchen - Professional Profile



Summary

    Blog RSS
46,918
Author
2,896
Authority
98,630
Debator
37
Editor
232
Enquirer
4,330
Organiser
5,438
Participant
Peter is tired of being called "Mr. Chen", even so certain individuals insist on it. No, he's not chinese.

Peter has seen lots of boxes you youngsters wouldn't even accept as calculators. He is proud of having visited the insides of a 16 Bit Machine.

In his spare time he ponders new ways of turning groceries into biohazards, or tries to coax South American officials to add some stamps to his passport.

Beyond these trivialities Peter works for Klippel[^], a small german company that wants to make mankind happier by selling them novel loudspeaker measurement equipment.


Where are you from?[^]



Please, if you are using one of my articles for anything, just leave me a comment. Seeing that this stuff is actually useful to someone is what keeps me posting and updating them.
Should you happen to not like it, tell me, too

Groups

Below is the list of groups in which the member is participating

United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
This is a Collaborative Group
This member has Member status in this group

41 members
United States United States
This _private_ forum is set up to be a place where political and social issues, including American politics and global warming, can be discussed in a reasonably civil manner. Anyone who has been an active member* of Code Project for six months is welcome to apply for membership but this forum does not tolerate trolling posts, or posters who wish to be disagreeable. Those who choose to become uncivil, insulting, or childish will be warned and, for repeated violations, removed from membership.

* That means that you have posted regularly or had at least one article published.

For member complaints and suggestions, contact the forum administrator at ...
cp[soapbox1[0 at gmail.com
Remove the [ characters and replace them by a period.
This is a Social Group
This member has Member status in this group

192 members

Reputation

Weekly Data. Recent events may not appear immediately. For information on Reputation please see the FAQ.

Privileges

Members need to achieve at least one of the given member levels in the given reputation categories in order to perform a given action. For example, to store personal files in your account area you will need to achieve Platinum level in either the Author or Authority category. The "If Owner" column means that owners of an item automatically have the privilege. The member types column lists member types who gain the privilege regardless of their reputation level.

ActionAuthorAuthorityDebatorEditorEnquirerOrganiserParticipantIf OwnerMember Types
Have no restrictions on voting frequencysilversilversilversilver
Bypass spam checks when posting contentsilversilversilversilversilversilvergoldSubEditor, Mentor, Protector, Editor
Store personal files in your account areaplatinumplatinumSubEditor, Editor
Have live hyperlinks in your profilebronzebronzebronzebronzebronzebronzesilverSubEditor, Protector, Editor
Have the ability to include a biography in your profilebronzebronzebronzebronzebronzebronzesilverSubEditor, Protector, Editor
Edit a Question in Q&AsilversilversilversilverYesSubEditor, Protector, Editor
Edit an Answer in Q&AsilversilversilversilverYesSubEditor, Protector, Editor
Delete a Question in Q&AYesSubEditor, Protector, Editor
Delete an Answer in Q&AYesSubEditor, Protector, Editor
Report an ArticlesilversilversilversilverSubEditor, Mentor, Protector, Editor
Approve/Disapprove a pending ArticlegoldgoldgoldgoldSubEditor, Mentor, Protector, Editor
Edit other members' articlesSubEditor, Protector, Editor
Create an article without requiring moderationplatinumSubEditor, Mentor, Protector, Editor
Approve/Disapprove a pending QuestionProtector
Approve/Disapprove a pending AnswerProtector
Report a forum messagesilversilverbronzeProtector, Editor
Approve/Disapprove a pending Forum MessageProtector
Have the ability to send direct emails to members in the forumsProtector
Create a new tagsilversilversilversilver
Modify a tagsilversilversilversilver

Actions with a green tick can be performed by this member.


 
GeneralRe: Proposal: Code Snippet Library Pin
Jason Henderson3-Jun-03 17:39
Jason Henderson3-Jun-03 17:39 
GeneralRe: Proposal: Code Snippet Library Pin
peterchen3-Jun-03 20:44
peterchen3-Jun-03 20:44 
GeneralRe: Proposal: Code Snippet Library Pin
Jason Henderson4-Jun-03 16:14
Jason Henderson4-Jun-03 16:14 
GeneralRe: Proposal: Code Snippet Library Pin
Paul Watson6-Jun-03 2:52
sitebuilderPaul Watson6-Jun-03 2:52 
GeneralRe: Proposal: Code Snippet Library Pin
Jason Henderson6-Jun-03 3:01
Jason Henderson6-Jun-03 3:01 
GeneralRe: Proposal: Code Snippet Library Pin
Stephane Rodriguez.4-Jun-03 19:23
Stephane Rodriguez.4-Jun-03 19:23 
GeneralRe: Proposal: Code Snippet Library Pin
peterchen4-Jun-03 20:45
peterchen4-Jun-03 20:45 
GeneralRe: Proposal: Code Snippet Library Pin
Paul Watson6-Jun-03 4:03
sitebuilderPaul Watson6-Jun-03 4:03 
Ok IMO there are two tracks to this project.

One is to rehash all the existing snippet library ideas and produce a good but rather unoriginal system. I will get bored on that track and be lazy, the result will be nice and useful but... well we are doing this in our spare time and I want a bit more than just "nice" and "useful" for my spare time Smile | :)

Two is more ambitious, harder to do but ultimately more fulfilling. Two however will cover the above quite easily.

Let me explain.

I see three usage scenarios which are key in understanding what it is we are to produce.


  1. Personal/Standalone coder. This is Christian Graus. He does not want P2P, he does not want other peoples code, he does not want sharing and rating and community features. He does not want to know about the XML backbone or setting up a code-server or fannying about with webservices. He does not want to even have to login to the application to use it. He wants to be able to store his often used pieces of code and to be able to drag them into his applications with the least amount of fuss possible. For him a standalone client or a VS/.NET Add-In are perfect. No admin consoles for the code-server, no registration and such. Just right-click-store-code, right-click-insert code. The system should let him store just a piece of code without even a title required as well as let him title, categorise and keyword code to make searching easy.
  2. CodeTeam This is a bunch of guys in a company who want to share code amongst each other over a LAN. The company may say "Here is the preferred code for sorting an array in JavaScript" and it will be available to all. The "code-tree" will be editable by all on the network, code can be added and removed, used and abused etc. This sytem will have simple community features. No ratings, blocking and such. Also each client can have their own personal code-tree independant of the Company code-tree. Also a company may want to setup a template for the data-structure of code snippets to ensure items on the Company code-tree are of a certain quality (title, description, author, usage etc.) This scenario though does not include the web-facing component as it is meant to be kept all in house.
  3. CodeCommunity This is CP on steriods Big Grin | :-D This is the more ambitious idea of mine. Basically someone will setup a community server and then multiple clients can connect to the server and start sharing code. Each client can of course have their own personal code-tree on their machine. The Community code-tree though will be moderated. Someone submits a new item then it goes into the Un-edited reader contributions section Wink | ;) An editor using the client app would then review the snippet and either leave it un-edited (and not officially part of the CCT) or move it into an official Category/Folder. The author of the snippet can edit their item, but then it is reviewed before the edit goes "live". etc. etc. So CodeCommunity is like a internet application version of CP. A bit like Artifact in that way, but without the waffley bits, confusing setup and odd way of doing things. Also a client can connect to multiple CodeCommunity servers as well as to a Company code-tree and have their own personal code-tree. I was thinking a namespace/domain type system would work for that.


Ok so those three scenarios tell me that we need a Client app (standalone and VS.NET Add-In), a Storage service and a Community interface. The Community bit can be built later as really what it is in my mind is simply a web-interface (web-services I assume) to the Storage service. The Storage service will be the key naturally.

Don't shudder when I say I think XML will be a good mechanism for storing the snippets. It is overhyped but it is pretty damned useful and it will make sending snippets over the wires easier, especially through web-services.

Not only that but, and here is another grand idea, XML is, no sh*t, extensible. Code snippets rarely follow a rigid format. Some will have all the fields under the sun filled out, others will just be a code block and thats it. I get frustrated with snippet libraries that ask me for "target platform" when it comes to a piece of HTML, what the heck am I supposed to fill in there? It should not even ask me that. So we can have XML templates. One for C++/C#/VB/Fortran code, another for CSS, another for HTML etc. When someone creates a new snippet it either asks them which template or preferably it knows which template to use based on the category/folder they are creating in or from inspecting the code in the clipboard.

The display would then inspect the snippet, see that it is a HTML templated snippet and display accordingly. We can even offer interfaces which allow people to perform certain actions on specific snippet types. e.g. If HTML then run macro XYZ when item is selected.

I am very much up for a flexible system. One that does not make C++ coders happy but makes HTML coders curse the day it was born.

Also another key of using XML is with the CodeCommunity aspect; It makes it dead easy for CodeProject to merge in snippets from CodeGuru (hypothetically speaking of course, we don't need their steeennkiiing code) or for the snippets to be re-published to an entirely different system. Maybe someone wants to create a client which runs on WinCE, they are free and able to easily do so because the code-tree is exposed by a common web-service interface which streams out XML which they can then XSL or de-serialise or whatever they want to their WinCE client.

It would blow my mind if Chris made all the articles on Code Project available like that. That would be a huge step up IMO. (Of course ad-revenue generation will have to be carefully though through. But when you syndicate your content you can charge for it without ads. Who knows, but I like the idea and the devilish details can sod off till later.)

Ok so that is my idea. The Client, the Storage and the Community interface. A person can choose just to install the Client and a personal Storage and never share with anyone. Or they can download the Storage service, put it on a company server and then have co-workers in the company download the Clients and share in-house. Or Bob can download the Storage and Community interface, setup a server and have a bunch of users with Clients connect and share.

Notes/Ideas:

  • Snippet items must definitley be stored as seperate physical files. This may be bad for performance but it will ensure Christian Graus can say "Sod it, I hate this app" then go into the store folder, copy all his code out as files and then kill the app. No proprietary single-file storage mechanism, no "exporting" to get at your code etc. Search performance can easily be managed by managing a search index file where with each edit, delete or update the index is updated. It also makes it easy to email files to co-workers or friends who do not have the app. The system must not lock people into using it for their code, it needs to be open like that.
  • Storage of binary files (maybe a screenshot of the code in action or a compiled assembly DLL)
  • Syntax colouring
  • Do we need versioning? I like the idea but it might prove to be more complex than benefitial
  • Multi-categorisation: Most definitley snippets should be able to live in different categories/folders and right from the start. Retro-fitting a one-to-many system to a many-to-many system is never fun
  • Online/offline handling must be seamless. No crashing if a community server goes down, cached items still available etc.
  • Bookmarking of items and "Download to Personal Code-Tree" functionality
  • For the CodeCommunity and CodeTeam systems a robust security model is needed so that we can assign Editors, Administrators etc.
  • Put watchers on items and be notified when they change
  • I am not too keen on the P2P idea because it will result in a free-for-all fight in the code-tree structure. I don't mind using P2P for discovery and load distribution. Clients can directly connect to each other if needed. It might be overkill having P2P though.
  • Super Simple Installation Mode: This is for Christian Graus. When he double clicks that Setup.exe it must only ask him where to put the files and thats it. No "Please rovide a CodeCommunity username and password" or "Would you like to share?" etc. I can see CG cancelling a setup if it bothers him with irrelevant questions. Hard core okes must not be bothered. I want their respect for this system, if we can do that then we have done an amazing thing Smile | :)



I must put together a Visio file of how I see the architecture working. Client, Storage and Community/Web-interface.

So there you go. I have plenty more thoughts on the matter but that is the basic idea I have.

Paul Watson
Bluegrass
Cape Town, South Africa

Chris Losinger wrote:
i hate needles so much i can't even imagine allowing one near The Little Programmer
GeneralRe: Proposal: Code Snippet Library Pin
Jason Henderson7-Jun-03 17:56
Jason Henderson7-Jun-03 17:56 
GeneralRe: Proposal: Code Snippet Library Pin
Paul Watson7-Jun-03 23:07
sitebuilderPaul Watson7-Jun-03 23:07 
GeneralRe: Proposal: Code Snippet Library Pin
Jason Henderson7-Jun-03 18:58
Jason Henderson7-Jun-03 18:58 
GeneralRe: Proposal: Code Snippet Library Pin
Paul Watson7-Jun-03 23:28
sitebuilderPaul Watson7-Jun-03 23:28 
GeneralRe: Proposal: Code Snippet Library Pin
Jason Henderson7-Jun-03 19:00
Jason Henderson7-Jun-03 19:00 
GeneralSecond Foundation Pin
Paul Watson7-Jun-03 23:45
sitebuilderPaul Watson7-Jun-03 23:45 
GeneralRe: Second Foundation Pin
Jason Henderson8-Jun-03 9:36
Jason Henderson8-Jun-03 9:36 
GeneralRe: Proposal: Code Snippet Library Pin
peterchen9-Jun-03 23:57
peterchen9-Jun-03 23:57 
GeneralRe: Proposal: Code Snippet Library Pin
Steve McLenithan8-Jul-03 1:15
Steve McLenithan8-Jul-03 1:15 
GeneralRe: Proposal: Code Snippet Library Pin
woodsprite24-Jul-09 12:27
woodsprite24-Jul-09 12:27 
GeneralWhy not SourceForge? Pin
peterchen2-Jun-03 4:42
peterchen2-Jun-03 4:42 
GeneralRe: Why not SourceForge? Pin
Jamie Hale2-Jun-03 5:14
Jamie Hale2-Jun-03 5:14 
GeneralAuthoring Pin
Paul Watson2-Jun-03 6:41
sitebuilderPaul Watson2-Jun-03 6:41 
GeneralRe: Authoring Pin
Jamie Hale2-Jun-03 6:48
Jamie Hale2-Jun-03 6:48 
GeneralRe: Authoring Pin
jhaga2-Jun-03 7:00
professionaljhaga2-Jun-03 7:00 
GeneralRe: Authoring Pin
peterchen2-Jun-03 9:02
peterchen2-Jun-03 9:02 
GeneralRe: Authoring Pin
jhaga2-Jun-03 10:41
professionaljhaga2-Jun-03 10:41 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.