PDA

View Full Version : Processor generated QObject?



nroberts
30th November 2010, 23:36
I want to use the preprocessor to make the generation of a certain type of QObject derived class easier. Namely I want to make a QObject that has a slot with some arbitrary signature that translates a Qt signal into a boost signal (which I can use bind with).

The class structure is built just fine when I try this, it seems, but the moc output doesn't contain metaObject, qt_metacast, nor qt_metacall.

How might one go about generating classes capable of being connected to Qt signals with either templates (which I know can't have slots) or the preprocessor? I'm using VS2010 with the Qt plugin.

wysota
30th November 2010, 23:44
You mean you are using templates? Or how did you implement it?

nroberts
30th November 2010, 23:51
You mean you are using templates?

Eh? Preprocessor != tempaltes, no?


Or how did you implement it?

This no work:


#define MAKE_OBJECT \
struct my_object : QObject \
{ \
my_object(QObject * p) : QObject(p) {} \
Q_OBJECT \
public slots: \
void do_nothing {} \
};

MAKE_OBJECT

wysota
1st December 2010, 08:38
I doubt this will work with moc. Try this:

#ifdef MAKE_OBJECT
struct ...
#endif

and have MAKE_OBJECT defined in your project file.

nroberts
1st December 2010, 17:18
I doubt this will work with moc. Try this:

#ifdef MAKE_OBJECT
struct ...
#endif

and have MAKE_OBJECT defined in your project file.

That's not at all the same thing.

nroberts
1st December 2010, 19:18
If anyone comes looking for a solution to this issue I've come up with the start of an answer. I posted in on a different forum: http://stackoverflow.com/questions/4320002/generating-qt-q-object-classes-pragmatically/4328105#4328105

In short, it looks like I'll have to bypass the moc and generate moc output with the preprocessor. It looks possible.

I sure hope Qt becomes compatible with the preprocessor and/or templates in the future.

wysota
1st December 2010, 21:47
That's not at all the same thing.
Of course it's not. Neither qmake nor moc doesn't run preprocessor so you can't expect any of them to notice there is a Q_OBJECT macro in a class that doesn't exist at the time they are called. The preprocessor is ran only when the main compiler runs but then it's too late to spot that a meta-object is needed for the class. If preprocessor was run with every call to qmake and every call to moc, our compilation times would triple only so that one person could be satisfied. You can have the exact same result without using the C preprocessor so just do it instead of complaining. You can even run the preprocessor yourself prior to the moment when qmake checks for existance of Q_OBJECT macro, just be aware you'll possibly get a file the size of several megabytes because all includes will be inlined.

nroberts
27th December 2010, 19:47
Of course it's not.

Then your suggesting of it as an answer to my query is beyond ignorant, its purposefully misleading. I was beginning to wonder if that wasn't your true objective here.


Neither qmake nor moc doesn't run preprocessor so you can't expect any of them to notice there is a Q_OBJECT macro in a class that doesn't exist at the time they are called. The preprocessor is ran only when the main compiler runs but then it's too late to spot that a meta-object is needed for the class. If preprocessor was run with every call to qmake and every call to moc, our compilation times would triple only so that one person could be satisfied. You can have the exact same result without using the C preprocessor so just do it instead of complaining. You can even run the preprocessor yourself prior to the moment when qmake checks for existance of Q_OBJECT macro, just be aware you'll possibly get a file the size of several megabytes because all includes will be inlined.

This is simply false on many levels. The moc already implements a very small subset of the C++ preprocessor. The moc is described, in every single justification of it out there, as an EXTENSION to the C++ language. However, because it only implements a small subset of not only the preprocessor language but also fails to play well with templates, it actually forces users into a *subset* of the C++ language. This isn't a one user issue, it's a language compatibility issue.

Using meta-programming to create new types is a very common approach to modern C++ design. Qt kills it in every direction I've attempted to take.

Of course, my question here was an attempt to receive information I *didn't* know. How can I use modern C++ design methods with Qt? I wasn't asking for some self-important ass monkey to send me off on a bunch of wild goose chases and then claim it's all MY fault. There are features I and many others commonly use in C++ that appear to be impossible to use in conjunction with Qt.

The correct answer to my problem is apparently that what I want to do is impossible to do. Since you apparently knew this all along it is beyond irresponsible and disrespectful for you to waste my time with non-sequitur and red herring. At the very least you should have remarked that you don't know of a way to make it happen or just stayed away from questions you don't have enough knowledge and experience to adequately answer.

tbscope
27th December 2010, 19:55
You get better information if you stay polite.

You can of course create something yourself by doing whatever MOC does by yourself.
For someone like you, who needs this, this would not be a big problem.

nroberts
27th December 2010, 20:04
You get better information if you stay polite.

You can of course create something yourself by doing whatever MOC does by yourself.
For someone like you, who needs this, this would not be a big problem.

I'm sorry. I'm afraid I don't understand the point of your answer. Could you please explain it more clearly? Exactly what is the solution/workaround you're recommending?

tbscope
27th December 2010, 20:07
Well, if MOC doesn't want to handle preprocessor code, then you can do it manually.

nroberts
27th December 2010, 20:12
Well, if MOC doesn't want to handle preprocessor code, then you can do it manually.

So, your expert advice to auto-generate classes capable of being connected to Qt signals is to write them manually?

tbscope
27th December 2010, 20:14
Are you aware that a preprocessor and MOC are written manually?
You can write your own preprocessor or script to handle the files before they are compiled.

nroberts
27th December 2010, 20:18
Are you aware that a preprocessor and MOC are written manually?
You can write your own preprocessor or script to handle the files before they are compiled.

Oh, IC. Your expert answer to a question in the newbie section asking how to auto-generate Qt classes is to rewrite the MOC.

Sounds reasonable.

tbscope
27th December 2010, 20:25
Please don't be so hostile. I just want to help you.

And yes, if you want something as specific as you want, and it doesn't exist, the only thing you can do is create it yourself.

Basically, that's what you already got above.

Your question does not belong in the newbie or even advanced section. You question belongs in a "super geeky nerd" section.

Look at it from the other side.
What I think you have done is made some poor choices along the line.

Can you explain exactly what you want to do in clear and plain text. Don't use the following words: preprocessor, templates, moc
And be verbose.

nroberts
27th December 2010, 20:41
Please don't be so hostile. I just want to help you.

This is obviously false.



And yes, if you want something as specific as you want, and it doesn't exist, the only thing you can do is create it yourself.


I think you might have just beat the other poster in this thread for most ridiculous response ever, though it is pretty hard to compete with using ifdef to autogenerate classes. Not only is it completely redundant to say, "If it doesn't exist then make it," it is also quite possibly the very wrong thing to do, especially if the cost to make it is higher than worth. Several other options come to mind: live without it, don't use Qt, etc... All of which are quite redundant and beside the point of the real question though and amount to no more than simple efforts to be obnoxious.



Your question does not belong in the newbie or even advanced section. You question belongs in a "super geeky nerd" section.


BULL. The question is simple: how do you use the preprocessor or templates to generate Qt objects.

The answer is also quite simple and still I'm the only one in this entire thread that even mentioned it: you can't. The rest of your guys' nonsense is just that.



What I think you have done is made some poor choices along the line.


Which is simply an amazing presentation of mind-reading abilities.



Can you explain exactly what you want to do in clear and plain text. Don't use the following words: preprocessor, templates, moc
And be verbose.

The question is, and has always been, quite clear in my first post and I answered it myself (in spite of attempts to send me down blind alleys) quite a long time ago; even to the point of including exactly the problem I'm trying to solve.

tbscope
27th December 2010, 20:47
What I mean with helping you is to get to the point to have something that you want.
You're fixed on the preprocessor. Maybe there's another way to do what you want.
But to know this, I need to know exactly what you want, and that's still not clear for me.

By the way, there's a Qt mailing list where you can ask the Qt developers directly for support.
http://lists.qt.nokia.com/mailman/listinfo/qt-interest

SixDegrees
27th December 2010, 21:15
I can't decipher what it is you're trying to accomplish, but the C/C++ preprocessor is almost trivially simple; you can learn all there is to know about it in a couple of hours. If you can't figure out how to accomplish something using it, you either have to A) devote a small amount of time to learning how it works, or B) recognize that the preprocessor is almost certainly the wrong tool, and look for another solution.

For starters, perhaps you should also devote some time to A) being polite, and B) providing a reasonably detailed explanation of what the problem is you're trying to solve. Without more information, it's really impossible to suggest any reasonable solution other than to mention that there are many potential tools available for generating code - lex, yacc, perl, python and dozens of others, not to mention C++ and maybe - just maybe - the preprocessor.

nroberts
27th December 2010, 21:34
I can't decipher what it is you're trying to accomplish, but the C/C++ preprocessor is almost trivially simple; you can learn all there is to know about it in a couple of hours. If you can't figure out how to accomplish something using it, you either have to A) devote a small amount of time to learning how it works, or B) recognize that the preprocessor is almost certainly the wrong tool, and look for another solution.

The preprocessor is absolutely the right tool for the job and is fully capable of doing exactly what I want. The problem stems from having to use the MOC and its inability to play well with the preprocessor and with templates.

I think the real problem here is that "Newbie" on this forum isn't a place for new Qt users to get help from expert users, but where those answering are also newbies. Even the moderator seems particularly so. Nothing wrong with being a newbie but it is particularly frustrating to ask for help expecting knowledgeable people and running into a bunch of yahoo's claiming to be experts but spout nonsense. In other words, I come here as a complete newb to Qt and have found that the "experts" know less than I do at apparently every level. My bad for coming to the wrong place I suppose, but in my defense it is one of the support links on the Qt site proper.

That said, I'm pretty tired of people "answering" my question just to claim I'm being a) impolite or b) not specific enough. The question is quite clear and has actually been answered already. Anyone else doing so is just going to end up on my ignore list, and if you're here to actually get help....I am an expert; I just happen to be new to Qt. I also don't waste your time with my own ignorance. If you actually have something pertinent to my question that hasn't been brought up then I'm all for hearing it, but I'm tired of people just posting to flame.

wysota
27th December 2010, 21:53
The correct answer to my problem is apparently that what I want to do is impossible to do.
Hmm....

I doubt this will work with moc.
I rest my case.

As for the rest of the thread: nroberts, please stop trolling around. There are myriads of solutions to your problem. The real problem is that you insist on doing it as part of the main compilation step with the C preproc. I personally implemented something you want, it takes a class description such as:

implicitly shared nullable metatyped class MyClass {
string x;
int y;
sequence<QPoint> points;
};

and generates on the fly a C++ class with getters, setters and a bunch of other stuff that is later compiled with the rest of the program. This particular example is not meant to be used with moc but the generator can also generate a QAbstractItemModel subclass for the payload class that contains the Q_OBJECT macro and gets processed by moc later on. All is done automatically by properly scripting qmake. The trick is that it is an additional step of the compilation which is something you seem to want to avoid.

Please carefully read our answers instead of treating them as hostile. Note, we might have ignored your posts at all but instead we have chosen to try to help you and answer them. So please try to appreciate it, otherwise in the end you'll be the one who does not get satisfied with the outcome. You will go, we will stay, others will come in your place.

tbscope
27th December 2010, 21:54
When I learned to be an engineer, I was taught that impossible problems do not exist. One tool to solve an impossible problem is to rethink what you want to do. There are always multiple paths to achieve what you want.

So, if you explain in plain english, without refering to a specific technique, what you want to do, someone might give you an better solution. Even if you are a pro, please keep your feet on the ground and accept that even the village idiot might give you inspiration.

nroberts
27th December 2010, 22:07
After saying you doubt that would work with moc you then suggested



#ifdef MAKE_OBJECT
...
#endif


This is a purposefully unhelpful response from anyone who knows anything about C++. My actual assumption was that you were an idiot that didn't know anything about C++ or Qt rather than the apparently actual case...you knew exactly what I was trying to do and even had information that might help me that you withheld.

Only now, after weeks of bullshit, you post something mildly interesting in an apparent quest to prove your knowledge rather than being helpful, which you could have done a LONG time ago if you had really wanted. I'd ask for expansion on the idea you finally decided to mention but to tell the truth I'm so sick of your crap that I would rather just investigate the possibility myself. On the other hand, at this point I do have to take into account the very distinct possibility that you've just found a different way to send me off on a wild goose chase to waste even more of my time.

Of course, I'm not trying to avoid anything but a bunch of extra, pointless coding of small utility classes that should be easy to generate automatically. This is the first time you've even said anything that wasn't completely absurd AND redundant.

Added after 4 minutes:



So, if you explain in plain english, without refering to a specific technique, what you want to do, someone might give you an better solution.

Copied from my original post:



Namely I want to make a QObject that has a slot with some arbitrary signature that translates a Qt signal into a boost signal (which I can use bind with).

wysota
27th December 2010, 22:46
After saying you doubt that would work with moc you then suggested



#ifdef MAKE_OBJECT
...
#endif


This is a purposefully unhelpful response from anyone who knows anything about C++.
That's not true. That was a direct answer to a snippet you posted, namely:


#define MAKE_OBJECT \
struct my_object : QObject \
{ \
my_object(QObject * p) : QObject(p) {} \
Q_OBJECT \
public slots: \
void do_nothing {} \
};

MAKE_OBJECT
This wouldn't work because at the time when MAKE_OBJECT is expanded by cpp it is already too late to generate a meta-object for the class.

Using this instead:

#ifdef MAKE_OBJECT
struct my_object : QObject \
{ \
my_object(QObject * p) : QObject(p) {} \
Q_OBJECT \
public slots: \
void do_nothing {} \
};
#endif
and defining MAKE_OBJECT prior to calling qmake (i.e. DEFINES += MAKE_OBJECT) would probably work because there is a good chance that the meta-object would be generated (as Q_OBJECT macro is present in class definition) and then cpp would expand the macro and compile the proper code.

This is probably not what you want as what I understand now (at least I think so), you want to actually want the macro to have variables for signal/slot signatures. This wasn't evident at the time of your writing so you can only blame yourself for providing a code snippet unrelated to what you actually want to do instead of judging my C++ skills. They are yet to fail me.


My actual assumption was that you were an idiot that didn't know anything about C++ or Qt rather than the apparently actual case...
That's a good example that you should think twice before making such assumptions.


you knew exactly what I was trying to do
I did not, look at my first post in the thread. I'm still not sure I do.


and even had information that might help me that you withheld.
That's your personal opinion and it's false. I sometimes do withhold information because of my own reasons (mainly educational to push someone in the right direction and let him find the solution himself instead of providing off-the-shelf code for them) but not in this case.


Only now, after weeks of bullshit, you post something mildly interesting in an apparent quest to prove your knowledge rather than being helpful
Sorry to be blunt but I think others would also agree that if someone was trolling, it was not me. And you are really balancing on the edge with your posts. We're patient here but our patience has its limits and order needs to be kept so please constrain yourself a bit when it comes to choosing words you use.


I'd ask for expansion on the idea you finally decided to mention but to tell the truth I'm so sick of your crap that I would rather just investigate the possibility myself.
Without this crap you would have nothing to investigate. Bear that in mind.


On the other hand, at this point I do have to take into account the very distinct possibility that you've just found a different way to send me off on a wild goose chase to waste even more of my time.
I suggest you stop wasting your time and switch jobs, hobbies or whatever makes you be a software developer. Become an astronaut or a shoe salesman, I don't really care. If you keep being rude the job won't really matter -- you'll still just be a rude person.


Of course, I'm not trying to avoid anything but a bunch of extra, pointless coding of small utility classes that should be easy to generate automatically. This is the first time you've even said anything that wasn't completely absurd AND redundant.
Thank you. We're still waiting for your first time to say "thank you" and stop being rude.

To really answer "properly" the problem you described in a so obscured way: you need to handle the whole signal activation routine yourself. Infrastructure for it is usually provided by the meta-object generated by moc but all the code really required is already there (in Qt) without it, there is just no infrastructure to use it. This is something you have to provide yourself and to do that you need to dig deeply in Qt's code since there is a couple of undocumented methods that you need to use. Also read this article, it describes a very simplified mechanism (based on Qt3) for handling custom signals (which is more or less what you want to do): http://doc.qt.nokia.com/qq/qq16-dynamicqobject.html. And forget the C preprocessor, I don't have the slightest idea how you wanted to use it to solve your problem. I would rather go in the direction of using C++ templates rather than cpp (although that wouldn't work here as well as templates are expanded by the compiler so they can't contain Q_OBJECT macros).

nroberts
27th December 2010, 22:59
That's not true. That was a direct answer to a snippet you posted, namely:


#define MAKE_OBJECT \
struct my_object : QObject \
{ \
my_object(QObject * p) : QObject(p) {} \
Q_OBJECT \
public slots: \
void do_nothing {} \
};

MAKE_OBJECT
This wouldn't work because at the time when MAKE_OBJECT is expanded by cpp it is already too late to generate a meta-object for the class.

Using this instead:

#ifdef MAKE_OBJECT
struct my_object : QObject \
{ \
my_object(QObject * p) : QObject(p) {} \
Q_OBJECT \
public slots: \
void do_nothing {} \
};
#endif
and defining MAKE_OBJECT prior to calling qmake (i.e. DEFINES += MAKE_OBJECT) would probably work because there is a good chance that the meta-object would be generated (as Q_OBJECT macro is present in class definition) and then cpp would expand the macro and compile the proper code.

This is probably not what you want as what I understand now (at least I think so), you want to actually want the macro to have variables for signal/slot signatures. This wasn't evident at the time of your writing so you can only blame yourself for providing a code snippet unrelated to what you actually want to do instead of judging my C++ skills. They are yet to fail me.


That's a good example that you should think twice before making such assumptions.


I did not, look at my first post in the thread. I'm still not sure I do.


That's your personal opinion and it's false. I sometimes do withhold information because of my own reasons (mainly educational to push someone in the right direction and let him find the solution himself instead of providing off-the-shelf code for them) but not in this case.


Sorry to be blunt but I think others would also agree that if someone was trolling, it was not me. And you are really balancing on the edge with your posts. We're patient here but our patience has its limits and order needs to be kept so please constrain yourself a bit when it comes to choosing words you use.


Without this crap you would have nothing to investigate. Bear that in mind.


I suggest you stop wasting your time and switch jobs, hobbies or whatever makes you be a software developer. Become an astronaut or a shoe salesman, I don't really care. If you keep being rude the job won't really matter -- you'll still just be a rude person.


Thank you. We're still waiting for your first time to say "thank you" and stop being rude.

To really answer "properly" the problem you described in a so obscured way: you need to handle the whole signal activation routine yourself. Infrastructure for it is usually provided by the meta-object generated by moc but all the code really required is already there (in Qt) without it, there is just no infrastructure to use it. This is something you have to provide yourself and to do that you need to dig deeply in Qt's code since there is a couple of undocumented methods that you need to use. Also read this article, it describes a very simplified mechanism (based on Qt3) for handling custom signals (which is more or less what you want to do): http://doc.qt.nokia.com/qq/qq16-dynamicqobject.html. And forget the C preprocessor, I don't have the slightest idea how you wanted to use it to solve your problem. I would rather go in the direction of using C++ templates rather than cpp (although that wouldn't work here as well as templates are expanded by the compiler so they can't contain Q_OBJECT macros).

I'll thank you for the link but the rest of your redundant nonsense you can keep. Thank you for taking weeks to provide it and holding out this entire time, only willing to provide absolutely useless and absurd responses to a very simple and reasonable question.

squidge
27th December 2010, 23:34
Wow, just wow. Someone who's arrogance sets a new high on this forum and still wysota tries his best to help only to shot down in flames at every turn.

Maybe next time you post a question we should just completely ignore you. At least then you can't rip our heads off for trying to understand and answer your question.

In my opinion, there was nothing wrong with the answers given. After all, the first answer given by Wysota did exactly what you asked - "This doesn't work", "No, but this will", and the other answers were also very reasonable in my eyes (but of course, you will argue that fact)

You also seems to be forgetting that this forum is provided for free, as are the people who are answering your posts. If you wish for a more professional, tried and tested approach to your exact requirement, maybe you try out the paid support instead of the free volunteer support.

nroberts
27th December 2010, 23:47
I'll thank you for the link but the rest of your redundant nonsense you can keep. Thank you for taking weeks to provide it and holding out this entire time, only willing to provide absolutely useless and absurd responses to a very simple and reasonable question.

I just received an infraction for using bad words in this post. Would someone be so kind as to explain which of those words was inappropriate for civilized conversation?

You asked for thanks, I gave it even though I thought it undeserved.

Added after 5 minutes:


Wow, just wow. Someone who's arrogance sets a new high on this forum and still wysota tries his best to help only to shot down in flames at every turn.

Maybe next time you post a question we should just completely ignore you. At least then you can't rip our heads off for trying to understand and answer your question.

In my opinion, there was nothing wrong with the answers given. After all, the first answer given by Wysota did exactly what you asked - "This doesn't work", "No, but this will", and the other answers were also very reasonable in my eyes (but of course, you will argue that fact)

You also seems to be forgetting that this forum is provided for free, as are the people who are answering your posts. If you wish for a more professional, tried and tested approach to your exact requirement, maybe you try out the paid support instead of the free volunteer support.

If you wish to ignore my questions that would be fine with me and in many cases that may be more helpful. This isn't the only thread in which wysota has responded to my requests for help in unhelpful manners. For example, I asked another question regarding receiving events when the user is finished editing in the property browser library. Someone without the moderator/expert tag helped me by explaining that it wasn't possible given the API and showed some sections of source that might be helpful. Wysota jumped in with, "You're doing it all wrong!!!" and then proceeded to tell us to connect to signals that did what I quite specifically said I had already tried and did not want in the OP.

I've actually asked Wysota to ignore my questions. He/she doesn't want to apparently even though it's quite clear they are unwilling or unable to actually help me.

wysota
27th December 2010, 23:51
I just received an infraction for using bad words in this post. Would someone be so kind as to explain which of those words was inappropriate for civilized conversation?

You asked for thanks, I gave it even though I thought it undeserved.

Read the whole thread from the start. The infraction was just a culmination of what you managed to gather throughout the whole thread despite being asked and warned many times. If you were to receive an infraction for each and every insultive or vulgar post you made you would have probably gathered enough points to be the first person banned in the five year history of the site. If you wish to continue this discussion about infractions then please do that using private messaging system as requested by the rules of this site. Should you be unfamiliar with them, I strongly advise to read them carefully before engaging in discussions with the site staff: http://www.qtcentre.org/rules

squidge
27th December 2010, 23:56
I would suggest that words such as "bullsh**" are inappropriate for a civilized conversation. Certainly if I used such words at my workplace, I would be summoned to the managers office for a caution. There is no reason to use them on a forum such as this, either.

wysota
28th December 2010, 00:14
I've actually asked Wysota to ignore my questions. He/she doesn't want to apparently even though it's quite clear they are unwilling or unable to actually help me.
I don't know where you were raised. But I was brought up in a country where at that time freedom of speech was not taken for granted and this made us learn the value of it the hard way. So don't try to censore me or anyone else here the same way as we are not trying to censore you despite an ability and right to do so. You have the right to express your opinion and we have the right to say ours. If you want, you can just ignore our posts, there is even an option in the user control panel to do that automatically but please don't tell us what we should do. And don't be surprised if you don't get any response from anyone after urging for so long to be ignored by everyone trying to help you. We did not invite you here, we will not ask you to stay. We welcomed you here as we welcome everyone and we will certainly not throw you out. You are blaming everyone around you but yourself. Look that it is you who is requesting help and it is us who is providing it, not the other way round. I don't see you rushing to help anyone spreading your valuable knowledge of C++ and alike yet I see you throwing accusations and having trouble with your own code and even with stating the real problem (you still haven't said what the purpose of doing all you are doing was, you still hold to a potential solution you see ignoring everything else). You are acting like a spoiled child demanding everyone around it to follow its rules and likings. It's not how it works here. The following is a really valuable lecture for someone like you, I really advise you to spend 15 minutes of your precious time and read it: How To Ask Questions The Smart Way (http://www.catb.org/~esr/faqs/smart-questions.html).

nroberts
28th December 2010, 00:30
I would suggest that words such as "bullsh**" are inappropriate for a civilized conversation. Certainly if I used such words at my workplace, I would be summoned to the managers office for a caution. There is no reason to use them on a forum such as this, either.

You serious? I guess people in the UK are a little more touchy. Where I work we just try to keep the F bombs to a minimum. If managers tried to 'caution' people for saying "bullshit", which is hardly even swearing, they'd have a hard time keeping anyone. Don't think it would cross their minds to do so though.

Added after 15 minutes:


If you want, you can just ignore our posts, there is even an option in the user control panel to do that automatically...

You're in error again. I've tried. Annoying moderators can't be ignored.

Also, crying "free speech" when someone says, "Please stop bugging me; I don't find your responses helpful," is not only seriously pathetic it is also a major stab at free speech itself. I actually have every right to ask that you please stop filling all my question threads with rubbish. You are of course free to do otherwise, but to then claim some moral high ground is pretty darn hypocritical. To additionally claim that the person who's requesting this is somehow disrespecting your right to free speech is way, way beyond rude. It actually confirms everything I've come to see you as. If you actually think "free speech" means nobody gets to ask you to please be kind and just stfu then you have absolutely no idea how valuable the right really is. If you think that request amounts to "censoring" then no, I don't believe you: you've never experienced censoring.

I actually am helping others. In fact, this very thread would have if it hadn't been filled up with a bunch of rubbish since I posted a link quite a while ago that explains what would be my attempt to solve the problem. I didn't have to do that. I received more helpful and reasonable responses somewhere else and backlinked here so that others could find that same information; I've done it with all of my questions here so far. I answer questions I feel I can without wasting everyone's time.

wysota
28th December 2010, 01:15
You serious? I guess people in the UK are a little more touchy. Where I work we just try to keep the F bombs to a minimum. If managers tried to 'caution' people for saying "bullshit", which is hardly even swearing, they'd have a hard time keeping anyone. Don't think it would cross their minds to do so though.
Unfortunately Internet is open for everyone, not only for you and your managers. There are a lot of youngsters reading this forum and different things considered "impolite" or "swearing" in different countries and cultures. Since most people here are Europeans, let's try to stick to European standards.


You're in error again. I've tried. Annoying moderators can't be ignored.
Well... too bad :) Fortunately for you all the other people you asked (so far) to ignore your posts are not moderators. I will try to ignore your threads in future although to be honest I don't keep all the nicknames in this forum in my memory so I can't guarantee I'll remember who you are. I doubt you want me to stick a "this rude guy who doesn't want me to answer his questions" note to your username for more people to see.


Also, crying "free speech" when someone says, "Please stop bugging me; I don't find your responses helpful," is not only seriously pathetic it is also a major stab at free speech itself. I actually have every right to ask that you please stop filling all my question threads with rubbish.
You do not "own" the thread hence everyone has equal rights for it. You might find my response unhelpful but if someone has a similar problem in future, my post may help him/her.


You are of course free to do otherwise, but to then claim some moral high ground is pretty darn hypocritical.
I don't think asking to be polite is "claiming some moral high ground". Unless of course you punch everyone saying "good morning" straight into face for being hypocritical or so...


If you actually think "free speech" means nobody gets to ask you to please be kind and just stfu then you have absolutely no idea how valuable the right really is.

I think free speech is me letting you say all the things you say and requesting you not to tell me what I should say or not. Freedom of speech also yields responsibility for what you say so really please mark your words. I would certainly consider hearing "stfu" from a person I hardly know (or don't know at all) impolite.


I received more helpful and reasonable responses somewhere else and backlinked here so that others could find that same information
You did that a long time ago, so why did you re-open this discussion today and why didn't you limit yourself to just posting the link instead of spitting on everyone around? (off: Might it be that those helpful responses weren't so helpful after all?) If you are used to some other manners, a harsher language or a general approval to the level of language you are using then I'm sorry, we have different rules here and we will not change them only because of you. Read this thread or any other thread where we have been exchanging posts and compare my words to yours. Read my other posts - I sometimes use hard words, putting the truth straight into face but I'm never personally offensive towards anyone. Read the link I gave you, especially the section called "Dealing with rudeness".

I don't know where your rudeness comes from, maybe you didn't understand some of my answers? That could very well be, English is not my primary language although usually I don't have trouble communicating with people. From the bottom of my heart I assure you each and every time I have been giving you a correct answer to the best of my knowledge at the time the question was asked. After receiving more information I might give a different or more detailed solution but it doesn't mean I was withholding any information and surely not doing it on purpose, what you have continuously been accusing me of. I still consider my answers (both here and in the thread about the property browser) to the point and helpful. I will not force you to follow any of my advice and I will not allow myself to be pulled into wording duels about excrements and actions involving one's mother or own genealogy. If you don't want me responding to your posts then simply don't repond to mine and the discussion will die out naturally.

squidge
28th December 2010, 10:52
You serious? I guess people in the UK are a little more touchy. Where I work we just try to keep the F bombs to a minimum. If managers tried to 'caution' people for saying "bullshit", which is hardly even swearing, they'd have a hard time keeping anyone.I think it depends on where you are in the company. If you work in the warehouse, it would probably be accepted much more than if you used such vulgarity in the office. Dropping an F-Bomb in the office is certainly to get you an instant disciplinary. Drop a few during the day and they will not argue about suspension without pay. I don't know much about the warehouse, but the employee handbook for people who work in the office environment clearly states that swear words (regardless of how tame the user claims them to be) are unnecessary and must not be used. I would state the same thing for this forum (although obviously I can not enforce it); you can easily get your point across without using such words.