|
I'm feeling better thanks.
I've dealth with several issues over the past few days in light of what happened last week.
1) I learned that I'm not yet ready to get involved with this project. I'd rather join up later on when it has been decided what's going to be built and how. I'll look in again when the excitement has died down a little.
2) I really don't want to get involved with a win32 project. I was hoping that whatever project grew out of this would have need of a Linux port. Not looking that way with all the .NET suggestions (although I haven't gotten around to looking up mono recently), and the GUI libraries.
3) The biggie, though, is that I learned I don't really fit in around here. *sniff* *sniff* I don't have the CP loyalty that all you folks have. I'm all for using the right tool for the right job. As a site dedicated to helping people write better code, CP is terrific. I spend most of the day here. CP, is not, however, a site for managing a large-scale project like this. And rather than getting Chris to reinvent the proverbial wheel, I feel it's more efficient/productive to find the right tool and use it as best we can. If that means going offsite, so be it. If that means that someone needs to learn how to use CVS and SF, so be it. If that means we give up our beloved DHTML forums, so be it.
Anyways, sure I've moved on. I don't like to hold a grudge - it's too destructive. But I've expressed my opinions on how this project should progress, and it's clear what I suggested is not what you want. I can live with that, but I'm not interested in changing my opinion simply because other people tell me I should have an unconditional loyalty to this site. I'm content, now, to sit back and see where you take it. You've done surprisingly well so far - I'm impressed.
Once it's decided what the target is going to be, and if there's need of a port, I might be around to lend a hand.
If not, no big deal really. I have a half-dozen other hobby projects on the go at the moment. I'll survive.
J
"You can get anything you want at Alice's Restaurant."
|
|
|
|
|
Interesting! (I'm trying not to paraphrase Nish too much)
As you're at my table, so to speak, I allow myself to add a few cents of mine.
Jamie Hale wrote:
CP, is not, however, a site for managing a large-scale project like this. And rather than getting Chris to reinvent the proverbial wheel
Well, my current stance towards the whole thing is: can we do a project with the tools we have? Do we really need SourceForge, or a SF clone? That's what I mean with the Mozilla Mistake - making the chainsaw before you planted the tree.
Yes, this kind of contradicts the original title - but if Chris is willing to push CP to new limits, be it so.
Jamie Hale wrote:
I don't have the CP loyalty that all you folks have.
Interesting! (again)
Thinking about where my loyalty comes from:
a) I "know" some people around from CodeGuru times. I've seen CP grow. I've been a little part of it.
b) Throughout the .com craze, and despite the traffic explosion, CP remained a site by developers, for developers.
c) I am a windows developer. I earn my living by writing windows software. This kind of biases me against the "OpenSource community" because
c1) I'm a minion of satan for too many over there
c2) At the end of the day, if my Mom can't use it, it's not done yet.
c3) I'm vary of someone who claims to offer for free what I do to earn a living. And, to add insult to injury, if it's a student, he possibly lives off the taxes I pay.
c4) As a whole, the mindset is different - what is important about an application, what's "cool technology", etc.
c5) I don't buy their version of free. Either it's free beer, or it's not free. (I do know other meanings of free, but not applicable to software)
(that's generalized - I know that not all linux is "The Bazaar", and theer are fanatics and reasonable guys on both sides.)
Bets regards.
Peter
"Der Geist des Kriegers ist erwacht / Ich hab die Macht" StS
sighist | Agile Programming | doxygen
|
|
|
|
|
peterchen wrote:
Count me in, but we should do our homework before.
Jeeesh, for someone so critical about CPP you sure are obsessed about it *
As for SourceForge; SF is not Code Project. Why would we want to put CP things on something that is not CP? All of us would have to sign up as SF members, learn how SF works and it would loose all the cool orange. I do see the point that SF has all the right tools, but...
...this is a Code Project initiative. It is going to have the CP stamp, it is CP members, Chris is already bending over backwards to accomodate it, it is all CP so lets keep it in house and keep the spirit alive.
Afterall a well ordered but heartless project is not going to work, while a less-ordered but spirited project is at the very least going to be a blast.
We are CPians, CP is our base, all your base are belong to us
* hey! relax, that was a poke... peterchen.. put DOWN the flamethrow... yeeeeaaarrgghhhhh
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
|
|
|
|
|
Yep, Munich doesn't want to upgrade NT->XP, they wanna go IBM+Suse.
Wonder what it's going to cost:
>> Retraining Staff?
heck, these are Resis from the Wiesn, they get nervous when you reaarange the desktop icons, and when they see your toolbar alignment they say "my word looks different"
>> cost of applications? StarOffice won't run a town, will it?
>> New Administrators?
>> what if SCO sues them?
"Der Geist des Kriegers ist erwacht / Ich hab die Macht" StS
sighist | Agile Programming | doxygen
|
|
|
|
|
Rationale: I needed reference counted C++ objects in a large project that heavily relies on ATL anyway. So why not reuse the COM smart pointer classes?
(See my reply for copypastable code)
template <class ThreadModel = CComSingleThreadModel>
class CRefCountableBase
{
private:
LONG _ref;
public:
CRefCountableBase()
{
_ref = 0;
}
~CRefCountableBase()
{
_ASSERTE(_ref == 0);
}
ULONG AddRef()
{
return ThreadModel::Increment(&_ref);
}
ULONG Release()
{
LONG zero = ThreadModel::Decrement(&_ref);
if (zero == 0)
delete this;
return zero;
}
HRESULT QueryInterface(REFIID riid, void ** ppvObject)
{
return E_NOTIMPL;
}
template <class T>
static void CreateInstance(_com_ptr_t< _com_IIID<T, &GUID_NULL> > & ptr)
{
T * instance = new T;
if (instance == 0)
return;
ptr.Attach(instance, true);
}
};
typedef CRefCountableBase<CComSingleThreadModel> CRefCountableBaseST;
typedef CRefCountableBase<CComMultiThreadModel> CRefCountableBaseMT;
#define CPP_SMARTPTR_TYPEDEF(CLASS) \
typedef _com_ptr_t< _com_IIID<CLASS, &GUID_NULL> > CLASS ## Ptr;
"Der Geist des Kriegers ist erwacht / Ich hab die Macht" StS
sighist | Agile Programming | doxygen
|
|
|
|
|
// ==============================================================
// CRefcountableBase
// --------------------------------------------------------------
/// This class allows to reuse _com_ptr_t smart pointers for
/// generic C++ classes.
/// Inherit the class to be refcounted from CRefCountableBaseST
/// for single threaded, or CRefCountableBaseMT for thread-safe refcounting.
/// use CPP_SMARTPTR_TYPEDEF(CMyClass) to declare the CMyClassPtr smart pointer.
//
template <class ThreadModel = CComSingleThreadModel>
class CRefCountableBase
{
private:
LONG _ref;
public:
CRefCountableBase()
{
_ref = 0;
}
~CRefCountableBase()
{
_ASSERTE(_ref == 0);
}
ULONG AddRef()
{
return ThreadModel::Increment(&_ref);
}
ULONG Release()
{
LONG zero = ThreadModel::Decrement(&_ref);
if (zero == 0)
delete this;
return zero;
}
HRESULT QueryInterface(REFIID riid, void ** ppvObject)
{
return E_NOTIMPL;
}
template <class T>
static void CreateInstance(_com_ptr_t< _com_IIID<T, &GUID_NULL> > & ptr)
{
T * instance = new T;
if (instance == 0)
return;
ptr.Attach(instance, true);
}
};
typedef CRefCountableBase<CComSingleThreadModel> CRefCountableBaseST;
typedef CRefCountableBase<CComMultiThreadModel> CRefCountableBaseMT;
#define CPP_SMARTPTR_TYPEDEF(CLASS) \
typedef _com_ptr_t< _com_IIID<CLASS, &GUID_NULL> > CLASS ## Ptr;
|
|
|
|
|
|
I agree 100 % on your article on Agile Programming.
However, most people think I am crazy when I start talkning about Agile Programming or Xtreeme Programming. But I know I am right.
|
|
|
|
|