Catch up on stories from the past week (and beyond) at the Slashdot story archive


Forgot your password?
DEAL: For $25 - Add A Second Phone Number To Your Smartphone for life! Use promo code SLASHDOT25. Also, Slashdot's Facebook page has a chat bot now. Message it for stories and more. Check out the new SourceForge HTML5 Internet speed test! ×

Journal Journal: C++ Programming Links

If you are programming and using C++ I might recommend the following links:

POCO Portable C++ Components
This is a recently added library. It is even released under the Boost Software License now. This library contains all the things you wished were standard in C++ minus one thing, a GUI library (which isn't feasible due to politics) It uses the latest features of the C++ Standard so it's a fully written C++ library and not a hacked up version of better C. It is pretty polished and worth checking out.

The true power in this library is the ability to use core C++ langauge in a hassle free way. It does not take advantage of the latest in C++ idioms but when you need a cross-platform library that will work this library is something to remember. And just because it does not use STL does not mean that you cannot use STL in your code. I have had the luck of working with some compilers though that makes using STL problematic. Unfortunately compliance and implementation defined versions of STL can make some code less portable and effecient when using some of the more interesting features of C++, enter PTypes. Note that I would consider myself a proponent of STL and generic programming. This library is useful but does have a hint of C flavor to it in its useage. The unfortunate aspect of this library is that while just about any intermediate C++ coder can hack the source, it isn't maintained anymore from what I have noticed. A real shame because it has unique way of doing ip streams for example. With the added players of Boost::asio, C++ Sockets, or POCO - I believe this library is nearing its cycle of new development. If you are new to C++ or not quite ready to grok the "big boy" libraries like Boost, this may prove to be a good starter library. Don't be fooled into thinking it isn't functional however, it is quite handy to know.

I did not realize that I left this off the list initially. This is a cross-platform database and communication library. Very functional and very easy to use. Lots of documentation both in the code itself and standalone. Subjectively I would consider this a middle ground between PTypes and ACE with regards to a learning curve and functionality. You have more prebuilt potential for middleware objects with DReel or ACE IMHO.

This is a bit of a chore to get up and running at times on different enviornments but works really well. Depending on the environment and team (as well as project needs/goals obviously) our decision usually boils down to ACE or PTypes. If writing any type of middleware with C++ you would most likely be interested in this or DReel for prepackaged libs.

I know that this is not a C++ library but this library is still useful, functional, and cross-platform enough to make my list of libs that I have at my disposal.

C++ Sockets
When all you need is sockets this fits the bill really nice.

I am not sure how you can be a C++ programmer and not have familiarity with Boost and as such not much of a need to list it here. The biggest reason I am commenting on it though is a reaction to the messageboard and newsgroup postings I see relating to it and preparing it for use. I realize Jam (and it's derivitave Boost.Jam) is a nice build tool but myself I typically build the necessary components of boost manually. Also keep in mind that Boost does not have to be compiled into library components. It does make life easier to just include the headers and necessary libs. For that reason I recommend you get familiar with the command line usage of your compiler, scripting, and know how to combine these things to build libs manually.

This is by far the slickest database library for C++ that I recommend. Easy to use, functional, powerful.

This is the STL version of ODBC database programming. Similar in comparison to ACE vs PTypes I would compare DTL vs OTL.

This is the cross-platform GUI equivalent of what Java has but for C++. 10+ years of support and it is still going stronger than ever. I always tend to fallback on this library for anything that needs a GUI in regards to desktop applications.

Though I do not use this library as much as wxWidgets or FLTK, it still deserves mention. It is a very simple toolkit to pick up though I do not care for the Windows 95/98 look that it often provides regardless of platform. If you are not familiar with it then I suggest at least taking a look at it (as is with any of the libs I listed)

This is by far the easiest, quickest, lightest widget toolkit I know of for C++. You can do quite a bit with it and do it quickly. This library works really great in an embedded/kiosk type system with very low resources. It is fast and it is light - just like the name implies. This library has some unique ways to accomplish things that other toolkits do not attempt. Here is very effective demonstration for people who have never heard of this library before.

Where are GTKmm for things like GTK? Well the fact that you are asking or even know means you are familiar with them. They are abundant in many open source projects so I consider them pretty well known. The libs that I have listed (some of which are arguably more well known than GTK for example) are libs that I do not see in abundance of use and I do not believe it is for technical reasons that they are not. Exposure is what I think keeps some of these libraries in niche cases.

If you seriously program using C++ then I recommend you look into these links if nothing more than to just know that they are there. Better yet is to code a simple project using any of the libraries and see for yourself what is useful and what is not. This is how my list came to be.

If you have any tips/advice/recommendations please comment. I am particularly interested in anything I have glaringly missed.

User Journal

Journal Journal: Linux/*BSD - Power Tools from a Developer/Admin Pespective 1

vim - and not its girlie cousin Vim -g, gvim for those who still don't get it. Emacs is ok I suppose but keep in mind the following list of tools can be done from inside of it...with LISP implementations of course.
tin - USENET still not completely useless regardless of how many outlook readers are out there. If tin isn't your style slrn is my second choice
mutt - while mail is sufficient I like it because of the vi interface
gcc - the entire compiler collection
ssh - if you can't figure out why then don't worry; you probably didn't make it past the previous suggestions.
screen - Keep your WDM and spend all your time tweaking it. If you do this you probably think MS VS is the best IDE in the world. I'll do you a favor if you can't ween yourself off of GUI's - fluxbox then ratpoison then screen.
w3m/links - You have to be able to surf. If you are new to the truly powerful ways of shell interfaces then you may want to ease into it with links -g; you do have to compile that in yourself though. (You did get this via tarz/bz2, right? Hmm, package managers - figures...)

Oh and if you must have a file browser because you don't like things such as find, grep, cd, etc:
mc although I resort to :Sex or :Ex if I 'need a gui' tool. It's left as an exercise to the reader to figure where and what those do...

That's about it. This should get me plenty of boos from the window zealots and the *nix wannabes.

User Journal

Journal Journal: Entertaining /. sub-culture

I learned an ingenious trick from the trolls this weekend here on Slashdot. Of particular interest is Serojin. I really do not know if I should be amazed at his creativity to abuse the /. moderation system or at the daftness of moderators to give this person up mods so that a signature line can be changed later to a rather "colorful" link as described by this shock-site information. More info here if you really do not understand /. trolling phenomena. I suppose that if I spent more time at anti-slash I could learn even more. Truth is I don't take any of this very serious and at the end of the day as I suppose entertainment is what it is really all about. Serojin would be happy to know that in the midst of me singling his account out to the 'others' a 'slash-bot' account by the name of Eponymous Cowboy marked me as the foe! Talk about irony. Amusing, totally amusing. Eponymous Cowboy - who is the real troll here?
Others even came to defense of Serojin and implied that I was the one that should think of my actions!
!!!WARNING: Don't click the sub-links if you are offended easily :WARNING!!!
Now that you have been warned please keep in mind _OR_ educate yourself that I did _NOT_ post the original links! (Get it Eponymous Cowboy? I was doing you a 'favor'; geesh!)
Here is a thread to demonstrate my point. Follow this if you are unable to see the big picture here. You can't make this stuff up!!!

Thanks to all who help make these comical gems exists; the serojins and the slashdotters alike.

If there is something you should take away from this journal entry it is the following: DO NOT POINT OUT FLAWS TO OTHERS LEST YOU BE BLAMED FOR THEM! Now if you truly do not care one way or the other then 'point out' away...

I'm off to see if I get modded to oblivion, like this, from this point on as well as lose my bi-weekly moderation points that I seem to get.
***UPDATE 5/30/2004: I have yet to be able to mod again after this incident. Should I feign surprise at this point?
***UPDATE 11/23/2004: I have been getting mod points like crazy for the last three weeks. I guess either my karma is back up or it is just a mod-point cycle and I am back on the upswing.

Slashdot Top Deals

Economists can certainly disappoint you. One said that the economy would turn up by the last quarter. Well, I'm down to mine and it hasn't. -- Robert Orben