Register forum user name Search FAQ

Gammon Forum

Notice: Any messages purporting to come from this site telling you that your password has expired, or that you need to verify your details, confirm your email, resolve issues, making threats, or asking for money, are spam. We do not email users with any such messages. If you have lost your password you can obtain a new one by using the password reset link.

Due to spam on this forum, all posts now need moderator approval.

 Entire forum ➜ MUSHclient ➜ Suggestions ➜ c++ support

c++ support

It is now over 60 days since the last post. This thread is closed.     Refresh page


Pages: 1  2  3 4  5  6  

Posted by Flannel   USA  (1,230 posts)  Bio
Date Reply #30 on Tue 18 May 2004 08:59 PM (UTC)
Message
Im not even going to touch most of that.

Although, Ksilyan, Shadowfyr was talking about "using" assembly in your C code, like... well, systemspeakers without headers, you actually code the assembly in the C compiler, he's not talking about once it compiles.

Also, XP home isnt 'meant' for power users. Theres just so much wrong with a OS being deficient in basic functions.

Thats all Im going to say, I really dont want to get in the middle of this.

My important stuff follows:

Anyway, Shadowfyr, stuff on ambient.usermode:
http://www.developerfusion.com/show/20/7/
http://www.aboutvb.de/kom/artikel/komlistitemeventscode.htm
http://pages.cpsc.ucalgary.ca/~saul/vb_examples/tutorial7/

Theres plenty more, google "ambient.usermode" and enjoy.

As for Patron.... Im looking.

~Flannel

Messiah of Rose
Eternity's Trials.

Clones are people two.
Top

Posted by David Haley   USA  (3,881 posts)  Bio
Date Reply #31 on Tue 18 May 2004 09:08 PM (UTC)
Message
Quote:
well, systemspeakers without headers, you actually code the assembly in the C compiler, he's not talking about once it compiles.

Right- what I meant is that it's not C++ or C per se that lets you do it, but rather the compiler that lets you insert snippets of assembly.

Quote:
Theres just so much wrong with a OS being deficient in basic functions.

I think the link of causality is being reversed. They took out features to make it suitable for "normal people", therefore it's not meant for power users; it's not that the OS is "deficient" by accident or anything.

David Haley aka Ksilyan
Head Programmer,
Legends of the Darkstone

http://david.the-haleys.org
Top

Posted by Shadowfyr   USA  (1,791 posts)  Bio
Date Reply #32 on Tue 18 May 2004 09:29 PM (UTC)
Message
Actually Flannel, the point here is not that there are not a lot of sites about Ambient.UserMode. The issue is that they all only describe how to 'read' that property in order to change the behaviour of your code relative to the current mode. This is sort of pointless, since if you cannot actually 'set' this property on a container object, the only place you alternative behaviour becomes relevant is when importing your object into Microsoft Development Studio's form designer or other similar applications. It is a totally worthless property for your own programs, since unless you can actually set it, the alternative behaviour will *never* come into effect in your own applications.

As for Patron.. I can find at least 2-3 of the 'wrong' versions. One provides and example of creating an TCP/IP proxy (I used that to create my Phantom proxy for testing stuff in Mushclient), the other versions of it give examples of other 'tricks'. However, the problem is not finding a copy of the code for any 'one' of a dozen completey different, but unrelated programs called Patron, but finding the one that specifically belongs to the article about ambient properties. Someone else, besides me, already tried and completely failed to find the right one. I gave up after spending close to 48 hours trying to find the right Patron source.
Top

Posted by Shadowfyr   USA  (1,791 posts)  Bio
Date Reply #33 on Tue 18 May 2004 09:44 PM (UTC)
Message
Quote:
I think the link of causality is being reversed. They took out features to make it suitable for "normal people", therefore it's not meant for power users; it's not that the OS is "deficient" by accident or anything.


Which brings me back to a quite common complaint amoung both power users, system administrators and other 'professional' users of the OS and the software from Microsoft that runs on it. They only pay attention to the needs of the loser, country bumpkin types that need it to be 'easier' to use and tend to completely ignore the users that have a clue what they are doing. Users that 'need' the option of doing something which the process of simplyfing it for the unwashed masses does not merely hide in a special tool or location, but all too often disables, removes or prevents them from doing at all. This is a bit like a car manufacturer deciding that two peddles and an ignition switch was confusing to some people and making the car so the moment you sit down in the seat the engine starts and how fast you go (or even if you stop) depends on depressing a single peddle. Never mind how inconvient this may be to the poor automechanic that has his hand stuck in the engine when someone sits in the driver seat to read the odometer or something. Or the mess that certain stunts and types of driving would become if it was literally impossible to break *and* apply gas to the engine at the same time.

After all, who cares about the 10% of the population that actually code or administrate systems? There are 500 times as many people that just need something they can plug into a wall socket and flip a switch. This is in fact the #1 reason why MS' past policies with security bit them in the ass. No unwashed masses computer user cared about firewalls or security holes, so system administrators and companies never got protected by them either. When MS added firewalls to the OS, it was still looked at not as a necessity, but merely an 'option' you could turn on when needed. Again, it bit them in the rear and the tech experts, who they didn't bother to initially listen to, shook their collective heads and proclaimed, "I told you so, maybe you will listen next time.." Nope, even MS' own internal memos have shown a general disregard for the very people that 'know' what the problems are and 'need' the sort of options MS removes in order to hyper-simplify every product they put out.
Top

Posted by David Haley   USA  (3,881 posts)  Bio
Date Reply #34 on Tue 18 May 2004 09:49 PM (UTC)
Message
For the vast majority, MS systems aren't designed for developers. If you want to be a "real power user" go run *nix or something. That being said, XP-pro and Win2k are fairly decent. You still haven't really said what's so hidden/hard to do with them.

I'm not sure what's so bad about it though; think about it. You are a business. Are you going to satisfy the 90% of people, or the 10% of people? Like I said, if you want something that gives you real power, go run a *nix server. Then you may start appreciating some of the "easy features" of Windows that you criticize so much now. :)


Supposedly, they are addressing much of this in Longhorn, which is apparently geared towards developers. I'm not sure quite what they mean by that - I haven't looked into it too much - but that's just the buzz I'm hearing.

David Haley aka Ksilyan
Head Programmer,
Legends of the Darkstone

http://david.the-haleys.org
Top

Posted by Nick Gammon   Australia  (23,162 posts)  Bio   Forum Administrator
Date Reply #35 on Tue 18 May 2004 10:34 PM (UTC)

Amended on Tue 18 May 2004 10:35 PM (UTC) by Nick Gammon

Message
Quote:

So hey Nick...while I'm wasting (everyones) time...what do you think of .net and C# and all that?


Hmmm - before I got a chance to reply the thread jumped a whole page size. :)

It's nice to see the old OS wars start up again, with some mild Microsoft-bashing thrown in.

My answer is that I haven't touched C# and .net and don't intend to, in the near future. Microsoft mean well in many cases, but they seem to be huge juggernaut that keep changing the operating system, interfaces, rules and everything else, just when people are getting used to them.

When I go to help people with their XP installations, for example, I have to hunt around to see under what nice "friendly" spot Microsoft have hidden their Network control panel, or their shared folders.

My problem is that I understand what the operating system is trying to do (eg. send data from one PC to another) but can't work out under what "wizard" or "helpful walk-through" thing they have hidden the configuration to it.

I had the same problem a few years ago with database access. First there was proprietary interfaces, then ODBC, then Microsoft added DAO, and then ADO, and then something else (Active Database?), each time changing the way you access a database, and just about when I was used to using the previous version. They may have thousands of programmers inventing all these new "better" way of doing database access, but I only have one brain, and can't keep up with their rule changes every year.

What Microsoft seem to be doing, intentionally or not, is to keep pushing you down a proprietary path. VB is a great example. Try running your VB programs (or MUSHclient plugins) on Linux. You can't, can you, because VB is proprietary. However C and C++ are not. I am guessing that C# and .net are also another attempt to bite at the "let's keep it proprietary" cherry.

Let's look at MUSHclient for an example. When I wrote that I had done (a year or so earlier) a programming course *run by Microsoft* in which they recommended using MFC (Microsoft Foundation Class library). It actually was a nice development environment, and made doing dialog boxes, menus etc. nice and easy.

However now that people as saying "how about MUSHclient on Linux?" or "MUSHclient on the Mac?" and I now see what has happened. MFC is Microsoft, and it is *not* simple to change to another way of doing things (eg. STL which I am gradually learning). Even STL (Standard Template Library) does not solve all the things that MFC does (like doing dialog boxes easily).

Someone had written something that did a similar thing to MFC and called it wxWindows, which I experimented with. Apparently Microsoft's lawyers got to them and it is now renamed wxWidgets. Seems you can't use the word "windows" these days any more. I suppose those things on the wall of my room will have to become "transparent viewing panels" now. ;)

An interesting comparison is the "help" given by Microsoft for the STL library compared to the help for their own MFC library.

Here is their description for "for_each":


for_each

template<class InIt, class Fun>
    Fun for_each(InIt first, InIt last, Fun f);

The template function evaluates f(*(first + N)) once for
each N in the range [0, last - first). It then returns f.

The call f(*(first + N)) must not alter *(first + N).

See the related sample program.



To be honest, that description does not get me very excited, or even give me much idea of how to use it. Compare that to my description given on the web page:


http://www.gammon.com.au/forum/?bbsubject_id=2899


My description there shows how to actually use for_each and gives examples of how useful it can be.

However Microsoft's help for its own MFC functions are much more detailed, with example programs, and example source supplied for complete solutions.




My point is that now I want to steer away from proprietary tools, and use "standard" tools. These would be:


  • C

  • C++

  • STL

  • Open source operating systems (eg. Linux, OpenBSD)

  • Open source web generation (eg. PHP)

  • Open source SQL databases


In recent projects, eg. writing a MUD server, whilst I compile on Visual C++ for ease of use, I make sure that the code compiles, and executes also under g++ on Linux, making any minor changes needed to ensure this happens. That way I know the server will also run on Linux, Mac OS/X and so on.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
Top

Posted by Nick Gammon   Australia  (23,162 posts)  Bio   Forum Administrator
Date Reply #36 on Tue 18 May 2004 10:45 PM (UTC)
Message
My other comment about high-level "solutions" is to invoke Gammon's Law:

Quote:

Gammon's Law

The solution cannot be simpler than the problem.


What this means is that you cannot make a really simple solution to a complex problem. I think some of the things you have been finding with VB have illustrated this. VB is great if you are writing a simple application - one that falls into the general area that they have simplified for you.

However as soon as you fall outside that "simplified area" you hit a brick wall of having to work out what VB "really does", or how to "get around" it, or how to call the low-level operating system call you would have used anyway if you had written the program in C in the first place.

What I have found on more than one occasion is that VB gives you the illusion that you will get the job done quickly, because you do indeed get 90% of the job done quickly. However that remaining 10% is what slows you right down.

So if you had a VB programmer and a C++ programmer pitted together to write an application you would probably find the VB programmer having a prototype up quickly that demonstrated a large amount of the end product, while the C++ programmer was working away with nothing to show, initially.

However towards the end, while the VB programmer was struggling to get from 91% to 95% completed, the C++ programmer would not hit that last road block, and finish the whole project, possibly earlier. Plus, the C++ solution would run faster, as it would not be interpreted, and would quite likely be portable to other operating systems a lot more easily.

Quote:

Shadowfyr:

.NET completely changed the underlying architecture of the languages in some ways. One of these adjustments basically means that creating certain types of custom COM objects, like user controls, no longer works the same way or can actually be impossible to do.


This is my point - Microsoft can, has, and will change things to suit their purpose. Whether it it to make things easier for programmers, keep things proprietary, or both.

However when did you last hear that a C++ program had to be rewritten because the C++ standard changed completely? Never.

Similarly with the STL library, you can use that now without worrying that it will be changed or become obsolete next year.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
Top

Posted by Shadowfyr   USA  (1,791 posts)  Bio
Date Reply #37 on Tue 18 May 2004 11:44 PM (UTC)

Amended on Tue 18 May 2004 11:46 PM (UTC) by Shadowfyr

Message
Is this really a surprise to anyone? A few comments from the famous Halloween Documents:

Halloween I>
Quote:
To us, open-source licensing and the rights it grants to users and third parties are primary, and specific development practice varies ad-hoc in a way not especially coupled to our license variations. In this Microsoft taxonomy, on the other hand, the central distinction is who has write access to a privileged central code base.


Quote:
Release early. Release often. And listen to your customers.

This is a classic play out of the Microsoft handbook. OSS advocates will note, however, that their release-feedback cycle is potentially an order of magnitude faster than commercial software's.

...

The difference here is, in every release cycle Microsoft always listens to its most ignorant customers. This is the key to dumbing down each release cycle of software for further assaulting the non-PC population. Linux and OS/2 developers, OTOH, tend to listen to their smartest customers. This necessarily limits the initial appeal of the operating system, while enhancing its long-term benefits. Perhaps only a monopolist like Microsoft could get away with selling worse products each generation -- products focused so narrowly on the least-technical member of the consumer base that they necessarily sacrifice technical excellence.


Halloween II>
Quote:
HTTP-DAV. DAV is complex and the protocol spec provides an infinite level of implementation complexity for various applications (e.g. the design for Exchange over DAV is good but certainly not the single obvious design). Apache will be hard pressed to pick and choose the correct first areas of DAV to implement.


This was ironically several months after Apache had already provided 'full' support for everything in HTTP-DAV. But shows their tactics. Make everything completely incompatible and platform dependent, so it will only work under Windows, then claim that everyone else's products are inferior, because they can't duplicate something that MS has obfuscated to the point no one else can ever use it. It has never worked, but MS still tries.

As for the wxWindows thing you mentioned. Didn't know that, but I am going to have a good laugh when 'Windows' is inevitably declaired a generic term that cannot be trademarked. There is more than enough evidence to support this and MS is doing everything they can to either bankrupt Linspire or delay the court case to prevent it. lol

Oh yeah.. the halloween docs are at: http://www.opensource.org/halloween/
Top

Posted by Ked   Russia  (524 posts)  Bio
Date Reply #38 on Wed 19 May 2004 03:07 PM (UTC)
Message
My problem is that I understand what the operating system is trying to do (eg. send data from one PC to another) but can't work out under what "wizard" or "helpful walk-through" thing they have hidden the configuration to it.

Amen to that, I've got an OEM version of WinXP Home with a new desktop, and since the WTO talks around here haven't died yet and as a result - getting a pirated version of Win98 for 3$ is a problem right now, I decided to stick with what I have. I fumed almost to the point of setting the chair under me on fire when I tried to set up my old network connections.

My point is that now I want to steer away from proprietary tools, and use "standard" tools. These would be:

...Open source operating systems (eg. Linux, OpenBSD)


Amen to that also, I am utterly fed up with Microsoft and what it puts out these days. I've basically replaced the 2 out of 3 software products I rely on heavily - Mozilla Firefox for IE, and OpenOffice for MSOffice, the only thing that's keeping me from paying those 28$ for a Linux installation and jumping off this train without a driver is Mushclient.
Top

Posted by Poromenos   Greece  (1,037 posts)  Bio
Date Reply #39 on Wed 19 May 2004 06:48 PM (UTC)
Message
Why do you have to pay $28? And you can use VMware or WINE to run MUclient, I am sure it will run perfectly... Of course, you will also need to emulate windows, but it's not that big a deal, i think :)

Vidi, Vici, Veni.
http://porocrom.poromenos.org/ Read it!
Top

Posted by Shadowfyr   USA  (1,791 posts)  Bio
Date Reply #40 on Wed 19 May 2004 08:13 PM (UTC)

Amended on Wed 19 May 2004 08:14 PM (UTC) by Shadowfyr

Message
It won't run perfectly. Unless you are using one of several expensive products that exist to support 'full' windows emulation, WINE and most others lack COM support. For most of us, COM and the scripting that depends on it is the #1 reason for using Mushclient.

I have given some thought to what you might be able to do with some sort of system that used TCP/IP to talk to a script, the same way that COM now does. However, this would require special script engines that supported it. You would basically be hacking an existing Linux script system to impliment it, or designing one of your own. As big a pain in the ass that everything else Microsoft make is, COM is one things they came up with that simplifies life a lot. Too bad it is also often the #1 security flaw on the machine, especially when talking about the wider ranging DCOM. lol Doing even half of what you can do with ease using scripting under Windows is likely to be far more than trivial under Linux. :(
Top

Posted by Poromenos   Greece  (1,037 posts)  Bio
Date Reply #41 on Thu 20 May 2004 07:21 AM (UTC)
Message
It may not run perfectly under WINE, but it definitely will under VMware... Why not use that?

Vidi, Vici, Veni.
http://porocrom.poromenos.org/ Read it!
Top

Posted by Ked   Russia  (524 posts)  Bio
Date Reply #42 on Thu 20 May 2004 12:23 PM (UTC)
Message
I've never heard of VMware before. I'll look into it, thanks. As for the need to pay 28$... If you know a way to get it for free then I'd appreciate it, however according to my calculations it would be cheaper and a whole lot more convenient to pay that much to order it online than to download the distribution and then burn it on CDs. Besides, it's a Russian company, a good distribution (from what I've heard), and not much money at all. I don't mind paying 30$ for an OS with life-time free upgrades, I do mind paying 200$ every 2 years though. As long as Windows went for nearly free here, I was more or less happy to use it, now that it looks like it's going to cost as much as it does in the States Windows has lost me as one of its users.
Top

Posted by Ked   Russia  (524 posts)  Bio
Date Reply #43 on Thu 20 May 2004 01:07 PM (UTC)
Message
Ack, VMware actually costs over 200 dollars. I'd rather get myself another hard drive for that money to install an extra OS on and wait for Mushclient possibly getting ported while I am getting accustomed to a new environment.
Top

Posted by Poromenos   Greece  (1,037 posts)  Bio
Date Reply #44 on Thu 20 May 2004 02:45 PM (UTC)
Message
There are sites where people download the distros and burn them and sell them to you for like $3 or $6 or something... Also, your local computer shop should be able to copy linux for a small fee... And yes, VMware may be $200 but you can download a trial version and see if you like it, and maybe extend the trial *wink* :p

Vidi, Vici, Veni.
http://porocrom.poromenos.org/ Read it!
Top

The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).

To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.


203,563 views.

This is page 3, subject is 6 pages long:  [Previous page]  1  2  3 4  5  6  [Next page]

It is now over 60 days since the last post. This thread is closed.     Refresh page

Go to topic:           Search the forum


[Go to top] top

Information and images on this site are licensed under the Creative Commons Attribution 3.0 Australia License unless stated otherwise.