View previous topic :: View next topic |
Author |
Message |
axl Veteran
Joined: 11 Oct 2002 Posts: 1146 Location: Romania
|
Posted: Sat May 02, 2020 9:19 pm Post subject: |
|
|
tld wrote: | Technically yea, it's open source, but in reality LP/Redhat have total control over it. What's anyone going to do?...fork it? You'd have to be insane to even think you could ever "fix" that cluster f*** as it's design is broken from the ground up. One of the devs on the Devuan forums referred to it as "proprietary open source"...bingo. |
That, to me, sounds like a very complicated way to say that most people don't talk C. they should. You're in the belly of the beast. The only way that could be more complicated than gentoo is to go lfs. And if you play with things like that... being able to talk C sounds like a good idea.
And you don't need to fork anything. Personally I try to contribute on bugs.gentoo.org. I have patches; which to me seems like the way to go.
There is no shame in choosing a sysvinit distro just because you can't or wont go deeper. Not everybody has to use gentoo. Not everyone has to use systemd. I know it's technically possible to run a system without it, so I don't see any problem.
On the other hand, I don't understand why people generalize things like: blackhats look at sources. That's ... not only insulting, but stupid.
When a "dev" says: "proprietary opensource"... you kinda get the idea that it's not a dev saying it. That guy don't talk C. Doesn't have the time, or the mood or whatever. I don't care what his problem is. But he's not a dev. He's a packager.
A dev is a person that writes the code. I consider them the most important people. And I don't think we have or should have a say in how code is written. Neither should the packagers have a say. In some sense, every gentoo admin/root is a packager. Just like me, just like you. And I don't think I should tell devs how to write their code. I can say "thank you", and mold it as best I can to my system.
Systemd, by my reckoning, only comes into play on desktop systems. Not desktops... things with WM. Things with peripherals & users & X. Things where you need usb and bluetooth and wifi and have a variety of users. There... is very useful. It's not perfect... but it's a whole lot better than sysvinit. So... no gnome... no problem. I can't speak for other WM's because I don't use them, but I understand why gnome uses systemd. And I don't mind. It's wonderful.
On purpose build servers or embedded or vm's... systemd just doesn't matter. Can go around it with just init= parameter. it's no trouble at all. I've said this before: you can go around it like it's not even there. It's just that when you add graphical interface and all that usb/bluetooth/wifi/peripherals... you want a glue to hold it all together. And again, maybe systemd is not the best thing ever, but I would rather contribute instead of fighting it. Thank you for the code kind dev.
I wish some of you would be able to admit that it's mostly political. It's the idea of change that bothers people. And propaganda spewed by idiots. And people got caught up into it. And now... it will just not go away. Once you're in a camp... can't get out of it.
From my experience, it's great to be able to do both. Not be held back by either of these init systems. Maybe I'm a blackhat, or maybe I just did my homework. |
|
Back to top |
|
|
tld Veteran
Joined: 09 Dec 2003 Posts: 1845
|
Posted: Sat May 02, 2020 9:37 pm Post subject: |
|
|
axl wrote: | That, to me, sounds like a very complicated way to say that most people don't talk C. they should. | I cannot in million years imagine how you could interpret it that way. I can't make a shred of sense out of it. Almost everything we use is in c...it has nothing to do with that. The issue is that a) the code is COMPLETELY controlled by LP/Redhad who surely have NO interest in any one else's code or contributions and b) the fact that the code is a convoluted mess making is surely a nightmare to deal with. This by the way is by design to ensure that RH owns the world. I'm done with this discussion because I've seen you hijack threads spouting this sort of nonsense endlessly before and really don't want to participate.
Tom |
|
Back to top |
|
|
axl Veteran
Joined: 11 Oct 2002 Posts: 1146 Location: Romania
|
Posted: Sat May 02, 2020 9:45 pm Post subject: |
|
|
tld wrote: | axl wrote: | That, to me, sounds like a very complicated way to say that most people don't talk C. they should. | I cannot in million years imagine how you could interpret it that way. I can't make a shred of sense out of it. Almost everything we use is in c...it has nothing to do with that. The issue is that a) the code is COMPLETELY controlled by LP/Redhad who surely have NO interest in any one else's code or contributions and b) the fact that the code is a convoluted mess making is surely a nightmare to deal with. This by the way is by design to ensure that RH owns the world. I'm done with this discussion because I've seen you hijack threads spouting this sort of nonsense endlessly before and really don't want to participate.
Tom |
We had a poet in my country called Octavian Paler, which said (paraphrasing): two people can look at the same thing and see two different objects. I feel that's what is happening here. You can say "spout" and "by design" and be totally baseless. I'm gonna say incompetent. And until you show me an actual example of your brilliant patches that ware ignored... I can show you thousands that were accepted. Not mine... but the thing grows. It is used. So... yeah. Like I said... agree to disagree. |
|
Back to top |
|
|
axl Veteran
Joined: 11 Oct 2002 Posts: 1146 Location: Romania
|
Posted: Sat May 02, 2020 9:53 pm Post subject: |
|
|
tld wrote: | a) the code is COMPLETELY controlled by LP/Redhad |
if that were to be true, there wouldn't be a /etc/portage/patches
Quote: | who surely have NO interest in any one else's code or contributions |
care to provide any proof to this claim?
Quote: | and b) the fact that the code is a convoluted mess making is surely a nightmare to deal with. |
is it? which part? whenever I try to go into it, i find what I'm interested pretty easily.
Quote: | This by the way is by design to ensure that RH owns the world. |
do vaccinations cause autism too? are contrails chemtrails? is corona made in a laboratory too? if it's a conspiracy... just tell me.
Quote: | I'm done with this discussion because I've seen you hijack threads spouting this sort of nonsense endlessly before and really don't want to participate. |
sometimes I like to drink beer. and I get chatty. but hijacking? really? can't hold your end in a conversation? make a bunch of claims... but it's me. ok... I must be good at this then. ) |
|
Back to top |
|
|
shevy n00b
Joined: 28 Aug 2017 Posts: 16
|
Posted: Wed May 06, 2020 10:00 pm Post subject: |
|
|
axl wrote:
> do vaccinations cause autism too? are contrails chemtrails? is corona made in a laboratory too? if it's a conspiracy... just tell me.
I think you are attempting to distract from the points. For example, what does any of this have to do with IBM Red Hat or
systemd? As for "conspiracy", it's quite simple: if there is a financial interest, companies tend to have a focus on revenue and
profit. Just look at The Qt Company enabling an apartheid system, with a 1 year penalty for bug fixes to KDE users since
2020 (aka you don't get code fixes and patches in qt if you are not a paying customer).
I am curious how this plays out for KDE in the long run, since they either have to accept that, or fork. But let's go back to the
topic at hand, because there is too much off-topic content. Anyway, now I went off-topic myself ... it was just meant as a
small, almost innocent exampe.
axl wrote:
> sometimes I like to drink beer. and I get chatty. but hijacking? really? can't hold your end in a conversation?
> make a bunch of claims... but it's me. ok... I must be good at this then
I think you discredited the comment here, aka you thinking that C code is trivial to read. I can read C code, I can write
C code too, but I really really hate C. Or perhaps hate is a too strong. C++ is more complex than C and you can use
C in C++, evidently - but C++ is nicer to use (for me at the least, compared to C; but I know that many others think
so as well). Just the simple cout << is sooooo much nicer than C insisting on printf(). Took me a long time to memorize
all the different format specifiers - I hate that! I also hate the syntax for pointers and dereferencing. It's just not elegant
nor logical ... and int* foo versus int *foo or int * foo. I hate having to look so closely to the syntax. Comes with a
bad eyesight soo ... but I never have such a problem with ruby or python code, for comparison. (Ruby's syntax is
evidently a bit more convoluted than python, but ruby also allows for more intrinsic elegance than python can,
e. g. by making () optional whereas python requires them and many other small differences).
To think that 500.000 lines of C code are trivial to read ... sorry man. Perhaps for you, but I don't think this is in
general the case. I much prefer ruby code and python code really, to both C and C++. (You can write bad code
in any language, granted, but if we compare people with the same skills, I much prefer ruby and python over
C really.)
I should state that I don't use nor need systemd. I am definitely in the group of systemd-critics, but primarily due to reasons
that aren't often mentioned. tld did, however had, cover some of the primary reasons what my problems are with systemd -
I do not trust IBM Red Hat in the slightest. This has a long story, already predating systemd; and it also does not have
much at all to do with CIA/NSA affiliation either. Commercial entities can never be fully trusted, it is just that way.
(If anyone cares, though, my biggest complaint is how some distributions decided to not give users a choice here in
regards to systemd. To me this is simply not acceptable. I don't want to allow random upstream developers to dictate
what I have to use. Granted, I am of course dependent on upstream code written by lots of other people, but most of
us are anyway; I just want to be in the driver seat. I did not abandon Microsoft Windows just to go back into the
simple peon setup. Choice and flexibility is really really important, and this is a much bigger question than merely
the question of systemd alone.)
As for systemd-homie, I never fully understood why it was added. Even after trying to make sense what Poettering
wrote, I still don't fully get it. My use cases don't really require it, nor systemd either. (To clarify: I don't use shell
scripts myself, so I don't even understand why I would need systemd. Ruby manages my whole setup from A
to Z.)
I assume that one goal for systemd-homie, aside from catering to weed users due to its name alone , is to probably
make it simpler for some folks to encrypt and decrypt stuff. I can not say whether this is a valid use case, since
I don't need it, but it could be. If we look objectively at systemd, and remember that I don't like it, I think one idea
was to simplify linux in some ways - people just typically boot into a GUI directly these days. (I still use init 3
and oldschool console login there; but if I want to, I can use autologin and have KDE5 plasma, usually on slackware,
without these fancy display managements or need to login. Most of the time I go the old way of just typing in
user + password though.)
I still don't really understand why people need systemd-homie though. I did read several articles but they don't
really explain why it is needed. I am not even sure if the folks who wrote these articles actually REALLY have
a use case, or just use it because it exists. It's really strange to me.
By the way, I read other comments in the thread too, such they want to make it "easy to migrate between OS" and
so forth, but I don't understand that either. I backup everything onto external HDDs anyway, and the ruby script
I use for this allows me to literally do everything I need to. And if I need encryption, I add it (if need be, I'd dig
into ruby-c too, but my use case just doesn't really require it, so I am confused why systemd-homie is really
needed.)
My personal opinion is that systemd has been written by IBM Red Hat mostly because they have different
use cases and goals, e. g. sync between a batch of computers at some facility where they make money,
so simplification here is better; and shell scripts make that part hard (see also puppet in ruby). The gripe,
then, is why this is really needed for oldschool linux folks. I just don't really understand the "official"
"arguments" given by Poettering etc.. - they don't make any sense to me at all. I don't necessarily disagree
that there ARE simplifications in THAT particular setup, e. g. it is probably simpler to fix things in one
place (e. g. the large systemd codebase), and then everyone else can assume things work as they
"should". But this is then more an issue of how much functionality is stored in one place, and who then
controls/maintains all the code. Many people don't understand the problem of that, thinking that it is
only an issue of size of code base, but a good comparison can be given with the google chromium
codebase. How many non-google guys maintain it? Of course there are external devs, but I think we
can all agree that most of this is controlled by Google devs. Even if the code is MIT style (I think,
or BSD), you sort of have a diminishing "return of investment" by casual linux users here. That part
worries me a LOT. If anyone remembers the old problem of XML support and specification in
MS office versus openoffice - when you have a large code base, it is rare to see non-corporations
maintain all of it for many years. People need to make a living, I can undertand that. |
|
Back to top |
|
|
Tony0945 Watchman
Joined: 25 Jul 2006 Posts: 5127 Location: Illinois, USA
|
Posted: Wed May 06, 2020 11:52 pm Post subject: |
|
|
shevy wrote: | ust the simple cout << is sooooo much nicer than C insisting on
printf() |
You don't HAVE to use printf. you can always write your own library function. It mimics FORTRAN but easier to use. Alrhough I don't know why you think overloading the bit-shift operator is so intuitive. |
|
Back to top |
|
|
axl Veteran
Joined: 11 Oct 2002 Posts: 1146 Location: Romania
|
Posted: Thu May 07, 2020 7:34 pm Post subject: |
|
|
shevy wrote: | My personal opinion is that systemd has been written by IBM Red Hat mostly because they have different
use cases and goals, e. g. sync between a batch of computers at some facility where they make money,
so simplification here is better |
one way or another... it leads to a conspiracy. in a capitalist world, making money is not a conspiracy.
On the finer points. I am somewhat interested in kde too. Not because I use it, but because I hope it will lift some of the criticism from gnome.
About that C paragraph... devs will be devs. If I start doing something in whatever, I will do that in whatever I feel like it. If other people pick it up... it's what works. I often think of spidermonkey in this example. Why do we need spidermonkey. Because the dev who started that doesn't give a damn about anyone's else opinion and nobody else bothered to port it.
I didn't read however many lines of code systemd has. I just said that if something bothers me, I can grep those lines and find the place that I want to look over. Maybe change and tell no one, or maybe propose a patch. Grep is a miraculous thing.
Critics are good. Haters are not.
Choice is scary for new people. Choice is scary for noobs. A standardized way to start and stop services is a good thing. Say what you will about systemd, but it is pretty standard. openrc wasn't.
Another unsubstantiated claim. IMB/Redhat made systemd to make more money. How can that be true? How do they do that? Is systemd stealing your e-wallet? OR it cuts down on training costs. It's more standardized. Which in turn reduces the time required to teach people, bla bla bla. Some people put the carriage before the horse and just make a conspiracy theory out of it. And if companies figure out a better way to do it... why in the hell wouldn't we want to learn it too? Why should they have all the good stuff and not us?
One question: how can you confidently go to a job interview and just say: "I don't know systemd. I am philosophically against it". How is that a good excuse from a professional? I can't tell that to myself. Does anyone think I loved systemd when it came out? NO, I DIDN'T. I HATED IT. But then again it's my job to learn whatever there is out there. I can't go to a job interview and just rave about the old days. That is not an option.
Regarding the last paragraph, take what I am about to say with a grain of salt. because even I, a systemd fanboy, didn't actually try it out.
I mentioned before, I am using nfs for this purpose.
I offered to a friend the idea to get a pi. She got a pi4, fell in love with it, asked me to reinstall her laptop with both linux and windows. Fell in love with linux, now I have to reinstall her husband desktop with the same thing. And there's talk of common homes between several computers. There's a lot of chmod included in what I am doing with nfs. Which... I am hoping wont be necessary with homed.
Now to be frank, I don't know what homed does. But, and I said this before, it doesn't sound bad to me to have a portable home directory. One that is not dependent on passwd/shadow/group. One that just works on any newly installed system out of the box using a nas or smth.
Can you do it with passwd/shadow/group? OFC you can. But it's a pain the behind to keep things straight. If a uid is off by 1 ... here I go again chmod-ing again. And we are at one point where we don't need to do that anymore.
I promised myself, when I finish the backlog of things I have to do, I'll have a look at this homed thing. I am actually excited to try something new... given how much time I wasted just chown-ing and chmod-ing things according to "the old ways".
I don't have to like it. I don't have to use it. But I do owe it to myself to learn about it before I make a decision about it. And that is all I asked from the openrc guys. Just try it out. Learn about it. If you still don't like it... should be trivial to change the init. And I know it is trivial, because like I said before I have numerous systems where I just use busybox and nothing more. Not even openrc. Just a custom shell ... and that's it. So the option is still there. It's just that there it's not a button you can press to switch it.
And can we take a minute to contemplate about the subject. It's the nervous system of a system. It's amazing that we can talk about that. Systems barely have 70-80 years. Computers dont even have 100 years. Not to mention that C and unix is a 70's bell labs thing, not a alan turing 40's thing. linux is a 90's thing. which to me, means both that things change, and that when things are good they don't change. I ... just take 5 minutes to contemplate things.
By tomorrow, things will have changed again. It's a good thing to just take 5 and think about things. Instinct and habit are not always the best response. |
|
Back to top |
|
|
dmpogo Advocate
Joined: 02 Sep 2004 Posts: 3439 Location: Canada
|
Posted: Fri May 08, 2020 4:24 am Post subject: |
|
|
Tony0945 wrote: | shevy wrote: | ust the simple cout << is sooooo much nicer than C insisting on
printf() |
You don't HAVE to use printf. you can always write your own library function. It mimics FORTRAN but easier to use. Alrhough I don't know why you think overloading the bit-shift operator is so intuitive. |
+1 !
For me cout << is one of the ugliest notations around. Even visually, why is it pointing to the left ? |
|
Back to top |
|
|
mv Watchman
Joined: 20 Apr 2005 Posts: 6780
|
Posted: Sat May 09, 2020 5:53 am Post subject: |
|
|
dmpogo wrote: | Tony0945 wrote: | shevy wrote: | ust the simple cout << is sooooo much nicer than C insisting on
printf() |
You don't HAVE to use printf. you can always write your own library function. It mimics FORTRAN but easier to use. Alrhough I don't know why you think overloading the bit-shift operator is so intuitive. |
+1 !
For me cout << is one of the ugliest notations around. Even visually, why is it pointing to the left ? :) |
The point is not the notation - which has indeed many problems - but that it is typesafe. There exist quite a lot of alternatives in C++ (see e.g. osformat or absl::StrFormat or boost::format) which are like printf but typesafe. The standard printf() is conceptually broken. |
|
Back to top |
|
|
Ant P. Watchman
Joined: 18 Apr 2009 Posts: 6920
|
Posted: Sat May 09, 2020 6:09 am Post subject: |
|
|
The other problem with printf is that, in having its output vary depending on the contents of the format string, it costs a whole runtime sub-language interpreter. iostreams *are* ugly but like a lot of the C++ stdlib they're a compile-time abstraction. |
|
Back to top |
|
|
Tony0945 Watchman
Joined: 25 Jul 2006 Posts: 5127 Location: Illinois, USA
|
Posted: Sat May 09, 2020 12:49 pm Post subject: |
|
|
mv wrote: | The standard printf() is conceptually broken. |
As I said, it allowed for easy conversion of FORTRAN programs. You must remember that at the time that C was developed, COBOL and FORTRAN were the dominant languages with ALGOL as the outside competitor. An astonishing number of commercial programs were written in assembly language, eve machine language. Literally no one outside their developers understood them and they were tied to the machine. That's one reason why IBM developed core machine emulation. I heard of a 370 emulating a 360 emulating something else so that a machine language accounting program from 1948 could be run. This was some forty years after that program was written. The company I worked for at that time always recommended rewriting from scratch if a program was written in assembly language and the original developer(s) were not available to consult. GM Electromotive wanted us to modify a program for which no code existed but "we have a disassembly", 4800 lines of undocumented assembly language, all variables and locations denoted by a hex number, i.e, "H45A9". GM insisted so we took the contract on a time and material basis. Three good men (sorry, very few female programmers at that time) worked for a year until GM threw in the towel. We got a new fixed price contract to rewrite from scratch in C, delivering an agreed upon formal specification and test plan, high level design document, low level design document, formal test plan, and documented code. This took about three months or one man-year (a fourth test engineer was added to the team to write the test plan, spec and conduct the tests, never trust a developer to test his own code, we are all human).
End of shaggy dog story from the old boomer. |
|
Back to top |
|
|
GDH-gentoo Veteran
Joined: 20 Jul 2019 Posts: 1719 Location: South America
|
Posted: Sat May 09, 2020 1:46 pm Post subject: |
|
|
dmpogo wrote: | For me cout << is one of the ugliest notations around. Even visually, why is it pointing to the left ? | It is pointing to cout... as in "send to cout" I believe I read somewhere that that, and the fact that is happens to have a relatively low precedence with respect to other operators, so that one can generally write a computed right operand without parentheses, was the reason why it was chosen. An overloaded operator is a function call in disguise, and function overloading results in calling a function that is appropriate for the type of the right operand. And if no such function exists, overload resolution fails, and you get a "diagnostic message" (i.e. it doesn't compile, so you know you screwed up). In contrast, if a printf() argument has a type that is not correct for the corresponding conversion specification in the format string (e.g. because of a programmer error), the behaviour is undefined. |
|
Back to top |
|
|
dmpogo Advocate
Joined: 02 Sep 2004 Posts: 3439 Location: Canada
|
Posted: Sun May 10, 2020 8:48 am Post subject: |
|
|
GDH-gentoo wrote: | dmpogo wrote: | For me cout << is one of the ugliest notations around. Even visually, why is it pointing to the left ? | It is pointing to cout... as in "send to cout" I believe I read somewhere that that, and the fact that is happens to have a relatively low precedence with respect to other operators, so that one can generally write a computed right operand without parentheses, was the reason why it was chosen. An overloaded operator is a function call in disguise, and function overloading results in calling a function that is appropriate for the type of the right operand. And if no such function exists, overload resolution fails, and you get a "diagnostic message" (i.e. it doesn't compile, so you know you screwed up). In contrast, if a printf() argument has a type that is not correct for the corresponding conversion specification in the format string (e.g. because of a programmer error), the behaviour is undefined. |
You know, I program not even in C but in FORTRAN for work. Even though it also now has overloaded operators, me, being an old fart, prefers my operators to be explicit in what they are doing. Though I do not have any specific fondness for printf or formatted outputs in general.
And I grew up with Unix redirects and left to right writing system, so nothing will convince me that cout << is not backwards Destinations are somewhere to the right My mind first thinks about what to send and then
where to, and I prefer writing as I am thinking. |
|
Back to top |
|
|
Naib Watchman
Joined: 21 May 2004 Posts: 6067 Location: Removed by Neddy
|
Posted: Sun May 10, 2020 9:45 am Post subject: |
|
|
Except assignments are to the left . Maybe that was their thinking in that you set cout to some string and equally shift left to act a bit like a teleprinter. _________________
Quote: | Removed by Chiitoo |
|
|
Back to top |
|
|
szatox Advocate
Joined: 27 Aug 2013 Posts: 3452
|
Posted: Sun May 10, 2020 11:50 am Post subject: |
|
|
Quote: | so nothing will convince me that cout << is not backwards |
Hold my beer
It follows exactly the same rules as shell scripts do.
The trick is that an input function in one frame is the output function in the other. Cout "consumes" your input string, and cin "creates" new data in the referenced buffer.
Which means that
so commonly used in shell scripts in in fact an _input_ redirection, since the "command"/cin makes the data available withing our scope, and we point that data (with an arrow >> ) to a file/variable.
We're just used to thinking about it from command's point of view rather than our own... And when you actually found yourself inside that command, you're surprised that the image is not flipped anymore |
|
Back to top |
|
|
GDH-gentoo Veteran
Joined: 20 Jul 2019 Posts: 1719 Location: South America
|
Posted: Sun May 10, 2020 3:59 pm Post subject: |
|
|
Naib wrote: | Except assignments are to the left . | And class member accesses (i.e. '.' and '->'), so objects like std::cout will also generally be on the left side of things in most expressions.
dmpogo wrote: | And I grew up with Unix redirects and left to right writing system, so nothing will convince me that cout << is not backwards Destinations are somewhere to the right |
dmpogo_convenience.h
Code: | #include <ostream>
template <typename T, typename charT, typename traits>
inline auto &operator >>(const T &x, std::basic_ostream<charT, traits> &st) {
return st << x;
} | example.cpp
Code: | #include <iostream>
#include <cstring>
#include "dmpogo_convenience.h"
int main(int argc, char *argv[]) {
using std::cout;
"Happy now? " >> cout;
std::boolalpha >> cout;
(argc > 1 && !std::strcmp(argv[1], "yes")) >> cout;
'\n' >> cout;
return 0;
} | Execution
Code: | $ ./example yes
Happy now? true
$ ./example no
Happy now? false |
|
|
Back to top |
|
|
mv Watchman
Joined: 20 Apr 2005 Posts: 6780
|
Posted: Mon May 11, 2020 6:36 pm Post subject: |
|
|
GDH-gentoo wrote: | "Happy now? " >> cout; |
Code: | "No, I am not happy!\n" >> "Because >> is left-associative" >> cout; |
The left-associativity is the reason why << and >> can only be used with the stream on the left-hand side if you want to output more than one thingy. |
|
Back to top |
|
|
mv Watchman
Joined: 20 Apr 2005 Posts: 6780
|
Posted: Mon May 11, 2020 6:42 pm Post subject: |
|
|
Tony0945 wrote: | mv wrote: | The standard printf() is conceptually broken. |
As I said, it allowed for easy conversion of FORTRAN programs. |
I am not saying that it doesn't have historical reasons. But this does not mean that it is not broken. All my "early" C compilers had printf() only as an assembler-implemented function because there was no syntax for ellipsis in C. All this came only as an afterthought to the standard to "fix" the error of introducing printf() in the first place. It was a relief when ANSI-C introduced at least minimal function signatures which could be checked at compile time. But printf and ellipsis remained broken and are not properly fixed even today. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|