text:
Stroustrup and Sutter: C++ to run and run
For the second year in a row organizers at the Software Development Conference & Expo West felt the super sessions hosted by C++ legends Bjarne Stroustrup and Herb Sutter were worth some ink on the event agenda. "There was a time in the late 1990s and early 2000s when they simply stopped advertising C++ sessions at this …
This topic is closed for new posts.
Friday 7th March 2008 12:59 GMT Anonymous Coward
High-energy physics
It might be worth mentioning that in addition to proper coders using C++, there is now a (relatively) huge group of other people who use the language regularly: high-energy physicists. As far as I know C++ has been used in the field for over 12 years, ever since the NA49 experiment at CERN decided to use it instead of Fortran as the base for its data analysis framework, and is now a de facto standard, having already reached the point where all major tools used in the field either have been or are being re-written in C++. Not bad, huh.
Friday 7th March 2008 12:59 GMT Graham Dresch
As somebody who grew up with assembler, I wish...
C++ and the whole ghastly OO methods that grew from it had never been invented.
Assembler - small, fast, efficient and difficult.
Algol60, Pascal, C - not so small, still fast and efficient, easier.
C++ - bloated, incomprehensible.
This is a personal view, and specifically excludes JAVA.
Friday 7th March 2008 13:08 GMT Francis Fish
yeah, well
C++ spawned Java because it was too hard to use. Java protects us from ourselves so well it's impossible to do anything useful without 200 XML config files and brain surgery.
C++ was a trojan horse that screwed perfectly good C and then kept backwards compatibility to make it unusable in its own right
MS C is simply a way of accessing their huge library of prebuilt functions
Don't care.
Friday 7th March 2008 13:37 GMT Robert Synnott
Anti-C++ sentiments
Write a large system in C. Then write the same system in C++ (proper C++, with the STL and maybe the odd template). You will find the C++ one to be less work, and probably less bug-prone.
It's by no means the perfect language; I prefer Common Lisp myself. It does what it was designed to do very, very well, though.
Friday 7th March 2008 13:46 GMT Barry Carr
"Of course, the Danish computer scientist is best known as the creator and original implementer of C++."
...and a piss-poor haircut.
Coat? Mine's the one with the scissors in the pocket
Friday 7th March 2008 13:59 GMT John Stag
Anybody who trashes C++ doesn't understand it.
This myth needs busting.
I too started in assembler, went through C and now I do C++.
C++ is no more "bloated" or "slow" than C is, but is a lot more flexible and allows you to do a lot more stuff. Most importantly of all, it manages memory several orders of magnitude better than C does (and bad memory management is where all those machine-owning buffer overflow vulnerabilities come from). Sticking with C really is a mistake.
As for people still using VC++ 6...
For C++ development you should really upgrade to the Visual C++ Express. It's free, it's a much better compiler, much more standards-compliant, and the IDE is very similar to VC6 (none of the terrible Visual Studio bloat).
I'm using the 2005 edition, I'll look at the 2008 edition when it gets to SP1.
Friday 7th March 2008 15:09 GMT Ru
@Robert Synnott
I recall reading an interesting little note on the implementation of OpenBSD. As far as writing secure software goes, C is dangerous but simple, whereas C++ is dangerous and complex. Hence the reason that their kernel level code is in C.
Take from that what you will.
Java vs C++
As Kevlin Henney once said in a training course I attended: "Java is C++ without the guns and knives".
I use Java all the time at work, but there are always features of C++ that I miss: proper destruction of variables when they go out of scope, for instance. Java is littered with finally blocks specifically to simulate the resource acquisition by instantiation metaphor.
Friday 7th March 2008 15:46 GMT Andy Larter
Pro C++
I've got to agree with John, there is no bloat involved with C++, and although the VS2008 IDE can be a pain to use, the compiler is fantastic.
Learning 'proper' C++ was the best thing I ever did.
My team works on a large project suite, all written in C++. I just did a check in the bug tracking system. We are tracking 1530 bugs and we've written about 2,000,000 lines of code. An average of about 1 bug per 1300 lines is a damn good average. Much better than I ever got when writing C.
As for driver development, I really don't know why kernel programmers choose C. The equivalent C++ is much simpler, more secure and less buggy. I've just checked the bugs reported for our file system filter driver....zero memory or resource related bugs. None..ever!
Friday 7th March 2008 16:55 GMT James Anderson
Has anyone ever tried to read Bjarnes book.
Bjarne Soutrups C++ book is one of the most unreadable technical books I have ever attempted.
Whatever the relative merits of the languages at least Larry Wall can explain why Perl is like it is and does what it does.
Friday 7th March 2008 16:55 GMT Kurt Guntheroth
C++ is too hard to learn
C++ is old enough to vote. What's up with that?
I love C++. I code in C++ every day. It's 20x faster than Java, easier to debug than C. It's very expressive and powerful.
But C++ is too hard to learn. Type conversion operators don't work like you'd expect. The name lookup rules are complex. Templates are powerful, but damn near impossible to debug. The body of knowledge on how to use exceptions effectively is still in its infancy. It takes two full-time years to learn the basics of C++. Anyone who think's he's "mastered" C++ in less time is delusional.
Did I.Q.s drop in academia since I went to school? Is there truly no way to improve on C++? Give me a break.
Friday 7th March 2008 16:55 GMT Brian Miller
C++ produces Stockholm Syndrome
You have been kidnapped by C++. You have become sympathetic to your captor, which is actually supposed to be your tool.
As for C++ spawning Java, that just isn't so. Java was supposed to be a platform-independent solution to web applications. As it really is, Java is about as platform-independent as any binary. If you have had to produce a Java product for HP-UX, AIX, Solaris, Linux, and Windows, you'll know exactly the pain that I've seen.
I think that the "popularity" of C++ is mainly due to the "popularity" of C, rather than the concept that C++ is better than other non-VM languages. C++ started out as a preprocessor hack, and a lot of the "power" and "versatility" of C++ is still in the C preprocessor.
C++ is...
Over the years I've coded pretty much everything. I started out life with 6502/Z80 assembler and Basic, went through Forth and APL, did Pascal and Modula-2. Had fun with C, C++, Haskell, Lisp, Java, C#, Perl, Python, loads of 4GLs, and a stack of minor stuff. Of all those languages, the one I like the most is C++.
Don't get me wrong, C++ has its weaknesses. Its a very hard language to learn completely. If you don't believe me go and get the Template Meta-programming book by Abrahams and Gurtovoy. It also remains the most flexible language around. Since its a superset of C you can do all the bit-fiddling and other stuff that allows you to write drivers and kernel level stuff. At the same time, with lots of use of things like STL and Boost you can get the high level programming capabilities that allow you to rapid prototype anything and everything, and write huge robust systems. For speed, C++ is beatable, but only in specific fields - for example vector maths Fortran can beat C++, so can APL. For some driver/kernel level stuff you'll be able to write assembler that is better than C++. But as a general purpose language C++ is faster in more things than any other language. And as a true cross-platform programming medium, only C is better.
Anyone who tries to tell me that Java is better cross-platform is having a laugh and has clearly never tried to port a complex java program between 2 different JVM vendors. Java manages the worst of both worlds. It is not portable, but in attempting to make it so, Sun have crippled the language. C# is more capable, but even less portable. I write C++ for multiple platforms, and would much prefer to do that with C++ than Java.
Anyway, I think some day a better language will come along. But nothing has been invented yet that is better than C++ as a general purpose tool.
Friday 7th March 2008 18:48 GMT Daniel B.
I C Dead Code
Ahhh C++. You know, that was my first intro to OOP, and is still my preferred language for OS-specific stuff, and native programming. Even if I embraced Java in recent times for business stuff (and well, my job requires it), I still regard C/C++ as my main language. As someone else already said, Java is C++ without the guns & knives. Plus, it's got C stuff, and I can even mesh in x86 assembly in there ;)
The basic reason I did switch most of my stuff to Java was the lack of easy-to-use GUI libraries (except Qt, which is very easy to use) and the whole exception throw/catch things that made my life easier. Of course, after switching I discovered somewhere that try/catch was also implemented in C++, oops! Ok, ease-of-use for talking LDAP (JNDI) and JDBC Pooling bought me. And the whole J2EE thingy... though Java 5 EE kind of put me back, but that's another story.
If Qt's win32 license wasn't so expensive ($1200/developer last I checked) I might have even done all my stuff on C++, as I would be able to do truly cross-platform stuff. Oh well...
Friday 7th March 2008 18:48 GMT Evil Graham
It's the Swiss Army language
Personally I love it, like I loved C when I learned that back in the 80s. I fully agree that Bjarne's book is as bad as the Kernighan and Ritchie C book was good, but that doesn't matter now that there are squillions of other books on the subject.
It has its faults for sure, but there's no other language that spans the range from bit-twiddling in registers right up to big-system programming.
Objective C is nice too, but unfortunately only really viable on Macs.
Friday 7th March 2008 18:48 GMT Joe Cooper
RE: multiple
@Duncan Ellis
I think what you're referring to is the fact that in C++ you can allocate classes on the stack. A stack allocation is zapped as soon as the stack is popped, which in C is when you hit a closing curly bracket.
In Java, only primitives like int and pointers are stack allocated. Objects are allocated on the heap. When you come to the closing curly bracket, the pointer is popped, and if that was the only reference to the object, the garbage collector will get it on next cycle.
@Brian Miller
I think you're overdramatizing the portability issues a bit.
Obviously you have to test it on every platform, but the fact that it's a common API and hides the very low level stuff is the biggest advantage.
With C++, even using a common API, you will run into all kinds of weirdness taking it between platforms because of different compilers.
And even if you're using the same compilers, you can run into machine-level bugs and oddities. And I don't just mean big and little endianess. Crickey.
Friday 7th March 2008 18:48 GMT Don Mitchell
C++ History and Some Thoughts
I was at Bell Labs around the time C++ was being developed. It was shifting sands then, and I didn't jump in for a while, because others were seeing the language change under their feet.
Doug McIlroy is one unsung hero of C++. He tried early on to write a projective geometry class and other experiments, and it was not possible becaues the language wasn't designed properly. Consequently, important changes were made before C++ was released to the outside world.
Most professional programmers complain about programming languages when they are gathered together. Generally, we are forced to use two classes of badly designed languages: 1) academic exercises like LISP or ML or Haskell that just don't meet the requirements of professional development, or 2) languages that meet certain needs but are naively designed by people who don't quite know enough computer science(Ruby, Python, etc). C was one of the few languages that was practical and written by someone who knew what a grammer is (OK, it has if-else ambiguity, they weren't as careful as the designers of ADA).
I haven't done much with Java. I remember years ago, Java as advertised as absolutely secure because it was interpreted instead of compiled. Laughable, but the computer science community believed it then. It's not quite as funny when Secunia warns us to update the JVM again to avoid some security hole or another.
Admittedly C++ is overly complex and has too many dark corners where even experienced coders have to go look up the reference book. You can write ugly inefficient code in C++ if you lack good style and taste (witness the implementation of the standard template library). In retrospect, some sensible subset of ADA might be better, but it would have to be modernized as well.
Friday 7th March 2008 18:48 GMT Oren
RE: Template Debugging
"Templates are powerful, but damn near impossible to debug. "
That's true, but it's mainly a compiler error (failure to emit useful error messages) as opposed to a language issues. My hope was that C++0X would mandate compilers do a better job in this regard.
am I the only one...
who read the headline as "Stroustrup and Suffer" ?
Personally I think life's too short to get worked up over the merits of different languages. You'll be arguing over compilers next...
Friday 7th March 2008 18:48 GMT Christian Berger
C++ is probably the only language
C++ is probably the only language which changes faster than you can learn it. :)
I mean seriously, if you really know what your compiler does and you keep a strict discipline you can most likely write excelent code in C++.
However keep in mind that most programmers are not geniuses. They don't understand that C++ just maps some semi-OOP into plain procedural code, and that it's up to you to make sure nothing bad happens.
It is extremely easy to make non-obvious mistakes which are hard to find. Just look at the whole issue of object copying which, in my opinion, is just brain damaged. I cannot imagine why someone would want to copy an object as the default thing the = operator does. Copying objects just is something that is less often needed than handing over a reference to an object.
The only reason C++ is used so widely is that the competition is so weak. I mean Java only runs on virtual machines. Delphi is mostly a vendor lock-in (although I think there's a GPL compiler available for the language). Other languages either have no compilers available, or are interpreted.
What C++ would need to become usefull again would be a radical simplification. Weed out everything and replace it with more powerfull features which work consistently.
I mean there is no reason why you can overload + with one object on it's side, but not with 2 integers. Neither is there a reason why you shouldn't be able to overload 5. Both things work in forth, for example.
Friday 7th March 2008 18:48 GMT Herby
If you want examples of C++
Just go to Bjarne's fine text. Then look for all the examples that include:
And fill in your own.
Wonderful moving target that language. If you don't like it, wait a while and go back. Nice to have all those versions (up to 10, eh?).
Maybe there IS a reason the Linux Kernel is written in C. If you change one file, you don't need to recompile the WHOLE kernel. "Minor tweaks", yeah, right!!
Friday 7th March 2008 18:48 GMT Chris Rimmer
"C++ started out as a preprocessor hack"
That's a common fallacy. Early C++ implementations by Stroustrup were full compilers whose back-end generated C instead of machine code. Very sensible, given that there were lots of C compilers around which could generate machine code for a wide variety of binary targets, and there was only a single C++ compiler writer.
", and a lot of the "power" and "versatility" of C++ is still in the C preprocessor."
That's not true. The power and versatility of C++ come from the support for OO and generic programming, and the powerful standard library. Preprocessor hacks are rare in most modern C++, and various features of C++ were put in with the deliberate aim of reducing use of the preprocessor to a minimum e.g. templates for functions like min()/max(), constant variables being constant expressions, and inline functions.
I agree that a large part of the popularity of C++ is because of the popularity of C. I think that a major reason for that is that Stroustrup (like K&R) doesn't force his ideas of good style down your throat, instead allowing you to make decisions for yourself based on your own constraints, though the structure of C++ is designed to allow you to express your designs very cleanly.
You do have to learn how though, and that does take a lot of effort. Trying to write C++ using only those skills you've learned while writing in C and similar languages will end up with you producing some very poor C++ code. The key is to understand what problems the various language features were designed to solve. Reading "Effective C++" by Scott Meyers, and "The Design and Evolution of C++" by Stroustrup helps a lot.
Friday 7th March 2008 22:13 GMT Mad Hacker
C++x? Maybe all classes will inherit from a base class now?
I think one of the biggest shortcomings of C++ was the oversight of making all classes inherit off of a single base class. That would solve so many hidden complexities.
Also, my computer is fast enough for 2 pass compilation, so let's drop .h files. I shouldn't have to define my interface in two separate files.
Oh and give me native smart pointers that take care of garbage collection.
Lastly, add a GUI layer so I don't have to recode all the GUI code based on proprietary libraries for every target platform. In fact, include OpenGL in that layer for good measure.
Oh and a unified hardware library so I can access USB and FireWire devices on different platforms without modifying my code.
Friday 7th March 2008 22:13 GMT Curtis W. Rendon
I have used C++
And it is bloated, and goddess help you debug it.
And save me from the high priests who can't stand any criticism of the language or OO.
I have written very large projects in C, and others in C++, and I slept better when the C projects deployed.
security?
"It's not quite as funny when Secunia warns us to update the JVM again to avoid some security hole or another."
Overall, the world is probably safer having only a handful of applications (the JVMs) in which to search for buffer overflows and other such nasty issues. The alternative seems to be individually worrying about the security of every single C++ application ever written.
Saturday 8th March 2008 03:49 GMT Matthew Barker
The price of complexity is...
...an expensive language-specific track at an industry convention...
From the article: "And yet they found a curious thing: every year for four years, C++ was the strongest track at the show. With zero advertising! That says something about the market. That says that there are problems that C++ is solving."
Faulty reasoning: It could also say that there are too many people still having difficulty getting a leg up on the language. Or maybe the convention conveners are getting a leg over on the attendees.
I see folks using all sorts of OO languages. C++ is the one I've seen folks wrestling the most with since I started using it in 1989.
On the "++" side, I do like it better than Perl, which has an even better bug-hiding system. And I have seen high-perf server systems, written by experienced C++ geeks, having portions rewritten in C to squeeze out better performance.
Still, like my grandmother used to say: most performance improvements are algorithmic. So it doesn't much matter what language you write in, as long as you can speak it.
Unfortunately, when the original coders have left the company, the comments are missing along with design docs and original requirements, it does matter very much when you want to maintain the code.
Saturday 8th March 2008 05:46 GMT Anonymous Coward
@Joe Cooper
Exactly right - thank you for clarifying my hastily written comment.
The idiom I like in C++ is acquiring resources by instantiating an object on the stack, which is then released by the destructor as it goes out of scope. This is very effective for everything from files to mutexes, and is a good use of object lifetimes that simply isn't supported in Java.
Oh well. Back to writing dispose() methods for Eclipse controls so their SWT implementations are cleared out properly.
Complexity (of the language)
Just compare the books written by the proponents of the language.
K & R: about 3/8 inch thick.
Bjarne's book: about 1 inch think.
These people are the originators of the language, so THEY ought to know how complex it is. Me? just compare the volumes to see what is more complex and harder to learn. Sure C++ will "do it all", but does anyone understand what is going on?
He says after finding a bug in a junky Fortran program (*SIGH*)
Sunday 9th March 2008 02:58 GMT Tom
Tchah! The youth of today!!
C++ to hard to learn?
When I've had the pleasure of helping people learn programming I have found that if you introduce then to any OO language they say its too hard to learn. Then they try another OO language and say 'thats much easier'. Generally because they've slowly started to understand OO concepts.
OO seems to be the exception to the programmers rule that 'I learned this language first so its the best'.
Me - I learned OO techniques in assembler and buckets of asterixes in C and sed scripting so any 'modern' OO is fine by me especially if theres a nice (free) IDE!
Remember - if a problems hard then its hard and sticking a GUI on it only makes you make mistakes faster.
Sunday 9th March 2008 02:58 GMT Anonymous Coward
The reason you're missing stack allocated objects is because you're using SWT, in which the garbage collector is not responsible for reclaiming memory. Unless you're writing an Eclipse extension, then it's your own fault for using SWT instead of Swing.
As for posts by others, the reason C++ is not used for much kernel development is that when you do, you end up using a tiny subset of C++ (STL is out, virtual inheritance is often out as well). This ultimately makes it seem like a pointless exercise (Linux for example, was briefly going down the C++ route but reverted to C). As for portability, a virtual machine written in C is far easier to port than a C++ compiler. Simpler and more consistent OOP languages such as Java and Objective-C are also far more easy to learn, and lack the constantly changing, almost impossible to implement complexity of C++.
Sunday 9th March 2008 02:58 GMT James
@Curtis W. Rendon
I suggest you change jobs if you sleep badly when your C++ projects deploy. That's not a sign of a bad language, but an imcompetent programmer.
Sunday 9th March 2008 02:58 GMT Brian
The thing to remember is that a programming language is a tool. For certain jobs one tool will be better than another. If I am writing an operating system, compiler or anything else where high performance is a must, the C/C++ is the way to go.
If I was making a front end GUI to perform simple Database queries, then I would probably use a different language, like Java, VB, C#.
All languages have good points and bad points.
Sunday 9th March 2008 02:58 GMT Jason Bloomberg
Nothing better ?
People who chain themselves up, climb into sacks, are hoisted up forty feet, get set on fire and arrive back unscathed with a "Tada!" say it's easy when you know how.
I've always hated C++ and never understood how it caught on or why there's been nothing that has replaced it. IMO, C++ is a horrible hack which is hard to learn and there's got to be a better alternative. Unfortunately many people seem to believe that C++ is the pinnacle of software achievement. Gawd help us.
Sunday 9th March 2008 02:58 GMT The Other Steve
Style/Taste
"You can write ugly inefficient code in C++ if you lack good style and taste"
In all fairness though, you'll write ugly, inefficient code in most any language if you lack those things. (Or if you don't know what you're doing, or hate the person who will have to maintain the code, possibly just by extension from general misanthropy.)
Sunday 9th March 2008 02:58 GMT David Heffernan
I was there at SD west
I was actually at these sessions at SD West. I think what a lot of you are missing is that a lot of design decisions in the development of C++ were to support legacy code. For example the support for plain C, C++0x changes are careful not to break old stuff.
Whilst this will keep C++ popular and thriving for a while I feel that, like every language in history, eventually it won't be able to both adapt to new demands and meet legacy compatibility concerns. At that point something else will take over in its space (portable code for high performance large systems).
I think you should all bear that in mind before you toss brickbats. I personally never write in C++ (don't like it), but you've got to respect a language that has been so successful and proven adept to coping with change,
Sunday 9th March 2008 03:00 GMT Joe Cooper
Of course, you know the garbage collector will queue them for deletion automatically once the references go out of scope.
If you're writing a desktop app or something that's just waiting for user input than that would be dandy to take advantage of. Save you lots of time; have confidence that the computer ~will~ zap those things when it gets around to it.
Only time I ever ran into trouble was with a video decoder that had to puke out three dozen BufferedImages a second; the garbage collecter would keep kicking in every second or two and visibly interrupting the video.
So what I did there was create a list of extended BufferedImages that were "recycleable"... A bit of a hack yes, but the only time I've ever had to do that.
And yes, manual memory management is definitely faster, and stack allocations are faster than heap allocations.
But if you're using Java, take advantage of it. Don't be recoding File classes to deallocate on command - very probably a waste of time unless your program is a very special case.
Monday 10th March 2008 01:42 GMT Subtilior
Effing
There is no other programming language as capable as C++ when you are creating complex software that needs to be highly efficient. Lisp comes close, except for the cons-ing overhead. C is fine for simple software. Other popular modern languages lose out when you need real world efficiency, whatever their other virtues.
Monday 10th March 2008 09:51 GMT JamesH
C++ a 'changing' language' ???
Bit confused - lots of comments saying that C++ is a shifting language, but as far as I know, the basic language has remained unchanged for years (and I have been using it for over 10 years)
Yes, there have been the addition of templates (but you dont HAVE to use them), and the STL, but the STL is NOT PART OF THE LANGUAGE. It's a set of headers and libaries that use the language.
OK, to get the real benefits you can learn and use STL (and Boost - which if you program in C++ and are ignoring - shame on you), but I say again, the basic language has not changed in YEARS.
As someone who came to C++ via first Basic and assembler, then Pascal, then C (plus a few other bits and pieces), I find it is faster to write robust code in C++ than anything I have used before - but its does take time to get good at it. I have not used Java to any great extent so will refrain from commenting on that argument!
Monday 10th March 2008 11:57 GMT auser
For a correct oop language...
you should try smalltalk. Java is the descendant of c and smalltalk, not c++. Actually as long as c++ doesn't have a standard typeof() functionality or some form of dynamic classing (like the nonstandard microsoft class interface extension), it's very painful to write dynamic programs. C++ is a statically linked language, with such misfeatures as having static classes, class pointers and class references with different syntax and no proper unified interface. Not to mention the lack of dynamic interface types and proper property support. (all available as proprietary extensions in various microsoft products and as completly incompatbible variants in other compilers)
The only truely supported standard language is c. You can write good oop code in c, and it's not really harder if you have a properly typed macro preprocessor (aka. template support).
ps: Why kernel developers avoid c++? Because in c++ you can't make all memory allocations explicit or if you do, you end up with plain c. And in a classic kernel, you have to jump through various loops to get even the smallest amount of memory allocated. This is true for most kernels, including the winnt line, linux or bsd.
Monday 10th March 2008 12:31 GMT John Vaudin
@JamesH
I've been using C++ for over 20 years, and believe me it has changed in that time! Multple inheritance, templates, exceptions, standard library etc.
It's all very well saying you don't have to use these things, but developers just love to use the latest thing. So, in large, long running projects, where lots of different developers have worked on it over many year, you end up with code written using every concievable paradigm that C++ supports - all in the same project! OK - I know you're going to say it's a failure of management - but it does happen - I've seen it. And it's a complete nightmare.
At least with something like Java the intended OO paradigm is faily clear-cut, so code tends to be more consistent. (Although I fear Java may be going to the same way as C++. When will people learn that adding features to anything has a downside?
It seems to me that C++ falls between two stools. On the one hand low-level code - kernels, device driver etc. seem better written in C, with it's much simpler run-time requirements, whereas user-level applications seem better written in Java or C# - with their safer memory handling and extensive class libraries and so on. Which leaves C++ to scratch about in the hard-realtime embedded comms market, where it probably does make sense. But it's going to become increasingly irrelevant to the mainstream IT world.
Monday 10th March 2008 14:25 GMT red floyd
@Andy Larter
The reason most kernel drivers are written in C is that there's no support in the kernel for the C++ runtime.
Monday 10th March 2008 15:49 GMT Ishkandar
C++ book
I think it was written in Danish and translated via Double-Dutch into English !! Having said that my copy of that book is still in its place of honour amongst my programming books.
Unfortunately I've left programming for pastures newer and more lucrative but I still go back and play with programming once in a while, now that I can afford to do what I want instead of doing what others want me to do !!
Aah. The good old days....
Monday 10th March 2008 16:27 GMT Kurt Guntheroth
If recycling will save the planet, then the recycled platitudes and fallacious arguments in this one thread should go a long way.
It's clever of "Tom" to say C++ must be easy to learn because C and sed(??!) were. When C++ was coming into widespread use, it was a common argument that, "I hearned Pascal and C in a few weeks, how hard could C++ be?" But the reality was different. If you knew Pascal, then learning C was just learning how to spell the keywords; the coding paradigms were the same. But with C++, you *also* had to learn OOP. And exceptions. And generic programming with templates. And STL. Learning C++ was like learning C half a dozen times. Everybody thought they'd just quickly master C++, but in reality it took even good programmers 2 years.
Then there's "auser" and the smalltalk wheeze. C++ isn't *really* object oriented because it isn't like smalltalk. C++ can't do dynamic programming (by which I assume he really means polymorphism, which C++ does fine, just not like smalltalk). It's easy to learn your first programming languatge. It's easy to learn your 10th programming language. But learning your second language is hard, because it isn't just like your first language. So that second language seems all wrong. Once you've learned a dozen languages, you know that.
Only these days we don't learn a dozen languages. Innovation has stagnated. C++ sucks in many ways, but it works reasonably well. And a C++ compiler is a humongous thing. Wirth turned out a compiler for Pascal in about 5000 lines of Pascal code. I don't know how big GCC is, but I'm guessing a million lines. Not an easily duplicated effort for a single researcher. That leaves microsoft in charge of innovation, with predictable results.
Monday 10th March 2008 16:44 GMT amanfromMars
The Font?
"Stroustrup added: "I still have code I wrote before it was called C++ that, with some minor tweaks, runs.""
POW WOW ...... XXXXtra Virgin Source. :-) Code Foundations. ....on a Theory for Everything is Virtual CodeXXXX? We Think Therefore.
Now as Preposterous as that may sound, it is a Perfectly Valid and Viable Question for the Present about the Future.
Tuesday 11th March 2008 08:44 GMT David Heffernan
Stroustrup books
At the sessions Herb Sutter was handing out copies of his and Stroustroup's books for particularly noteworthy contributions from the audience. Everyone chose Herb's books until there were a pile of unwanted Bjarne tomes left.
Tuesday 11th March 2008 08:44 GMT amanfromMars
KISS ... Keep IT Simple Stupendous
"Unfortunately I've left programming for pastures newer and more lucrative but I still go back and play with programming once in a while, now that I can afford to do what I want instead of doing what others want me to do !!
Aah. The good old days...." ... By Ishkandar Posted Monday 10th March 2008 15:43 GMT
Ishkandar,
What would be more lucrative than creating pastures new with Programming. For would that not be Real Leadership? Aah ...Good Old Beta Days every Day.
And the added bonus would be that it would be afforded you to do it, making it costless.
Tuesday 11th March 2008 15:39 GMT Ian Michael Gumby
C++ vs Java? huh?
Like a lot of others here, I've put in 20+ years in this industry.
Name a language, I've been asked to look at it and or use it.
There are languages that I'd like to call "perfect languages".
C is one of them.
C++ is not. No offense to those who love C++, but when you spend a lot of time and effort cleaning up after other people's fsck-ups, you learn to hate a language.
I've written big systems in C, and its works fine. Java is really for the masses and even still, I'm seeing some pretty poor code being generated and passed off as industry acceptable.
You want a nice OO language, look at Objective C. Its easy to learn and takes the best of smalltalk and C.
But hey! What do I know? I just use what I'm told to use and get paid for it. ;-)
Why Paris? Because this thread is a pretty lame argument about which language is better...
Tuesday 11th March 2008 15:57 GMT Neil
I used to love her, but i had to kill her.....
Surely one of the main reaossn there are so many C++ developers still out there is the amount of lagacy stuff that you can get for it. Importing a DLL into c# may be easy, but try doing that with a lib file and a header. I came from the ASM, C, C++ lineage, and currently enjoy the benefits of C#/.net. Going back to C++ reminds me of how painful some of it is, but also how simple and elegant some of it is too.
When I was taught C, the main benefit was apparently the fact that it was portable (I laugh in retrospect). My main grpe with C++ these days is that most people Ive met dont realise where C++ ends and MFC/Win32/whatever begins, negating most of its portability. A friend of mine told me that writing to a database was easy in C++. All the code was MFC-based. Try porting that to *nix, or whatever other system you can think of. Good C++ programmers will always be in demand, and bad ones will be too, as C++ is considered by almost everyone I know as a "low level" language, thus carries some Kudos with it these days. Bear in mind these people learnt nothing but Java at Uni, and pointers are hardcore, apparently.
I miss the hackery of my early C and C++ days. I think each language signifies an era in my life - assembler i did in Turbo Assembler. C in Turbo C in DOS. C++ in Turbo C++ on Win 95 (writing graphics apps in Mode 13H - those were the days - back when these was Windows sat on DOS). C++ Builder on Win 98, and C# on XP. Each iteration has added something to the last, but also lost something on the way. I keep meaning to find the time to go back and write some small assembler apps, just to reinforce some of those basic principles that we take for granted..........


text:
Margot Robbie denies 'crying' outside Cara Delevingne's house: 'I had something in my eye'
Margot Robbie has addressed comments that she was seen 'crying' outside of Cara Delevingne's LA home in September.
At the time, rumours began circulating that Robbie was concerned about the wellbeing of her Suicide Squad co-star Delevingne, as the model had also been spotted looking seemingly upset and displaying "erratic behaviour".
In early September, Delevingne was seen boarding Jay-Z's private jet before getting off 45 minutes later and was then seen leaving the airport wearing only socks.
Now, in a new interview with Vanity Fair, Robbie spoke out about the rumours and quashed the suggestion that she had been crying, denying that she was even at Delevingne's house at the time the photos were taken.
Robbie said that after the photos were published, her mother phoned her to ask whether both she and Delevingne were OK.
"I'm like, 'First of all, yes and yes,'" Robbie said. "And second of all, I'm not at Cara's house – I'm outside an Airbnb that I was renting for five days! And I'm not crying!"
Explaining further, Robbie added: "I had something in my eye. I'm trying to grab my face mask, trying to hold a coffee cup, and I couldn't get a hair outta my eye."
Margot Robbie with Cara Delevingne and Jared Leto at the 2016 Suicide Squad premiere. (Getty/David M. Benett)
Margot Robbie and Cara Delevingne have been close friends for several years, and both of them have had their fair share of paparazzi intrusions. While holidaying together in Argentina last month, a paparazzo tried to photograph them getting into a taxi together. At the time, more rumours swirled suggesting that Robbie had been hurt.
The former Neighbours star told Vanity Fair that while she wasn't injured in the incident, she "could have been", and said that her family in Australia have also been put in danger by photographers desperate for a photo.
"If my mom dies in a car accident because you wanted a photo of me going in the grocery shop, or you knock my nephew off a bike—for what? For a photo?" she said. "It's dangerous but still weirdly nothing feels like it changes."
The post Margot Robbie denies 'crying' outside Cara Delevingne's house: 'I had something in my eye' appeared first on PinkNews | Latest lesbian, gay, bi and trans news | LGBTQ+ news.
Madonna asks trolls to stop 'bullying' her for 'enjoying her life'
Strictly's John Whaite condemns David Beckham's 'disgusting' Qatar deal: 'Shame on him'
Britney fans have already vowed to 'boycott' the Zoey 101 sequel starring Jamie Lynn Spears
A teenager saw a trans woman showering in a women's locker room. It ended with riot police
Cheap avapro 100 canada
Where to get hytrin pills
Buy real verapamil online
Amaryl online india
Can u buy etodolac over the counter
Januvia costco
Low cost zetia
Can i buy oxytrol
How do i get eldepryl
Online doctor paxil cr

redpajama_set_name: RedPajamaCommonCrawl


Hatmaker is a pastor's wife, mother of five children, and a speaker in high demand, especially among Christian women's groups. She and her family starred in an HGTV series, "My Big Family Renovation" for six months as they remodeled their home.
Oh, yeah. She also writes books. Of Mess and Moxie is her twelfth.
ERB: I read your book last week and thoroughly enjoyed it. I was particularly intrigued by the central theme of grace. Why is the message of grace so important and so timely today? Why is it worth, as you say, fighting for?
JH: I just turned 41, and am likely halfway done with my life, more or less. What I see at this point is that everyone is doing their best. When I was in my twenties, I knew everything. I had all the right answers. Now I see that we are all trying hard. We are doing the best that we can. We are loving our people, and trying to use our gifts.
Read my advance copy of this book last night.
Read an excerpt of the book that contains this quote in context….


Auburn University and the SFWS offer abundant opportunities for students to participate in study abroad experiences. The experiential knowledge gained through study abroad is widely known to offer students a host of benefits that contribute to personal growth, improved skills, and enhanced academic learning and performance. According to the Graduate Management Admission Council, international experiences are pivotal for broadening a student's aptitude for cross-cultural communications, understanding global challenges, and developing leadership skills that will equate to advanced career opportunities.
In recent years our forestry students have traveled to Brazil to study fiber production systems and forestry operations of local plantations and pulp/lumber mills; wildlife ecology and management students were exposed to the historical and cultural issues impacting large mammal wildlife management and conservation in southern Africa; and natural resources management students visited Costa Rica where they examined the environmental services that watersheds provide, their connection to human well-being and livelihoods, and the market mechanism and payment programs designed to provide incentives for their maintenance.
To learn more about SFWS' course-specific travel opportunities contact the Director of Student Services, Dr. Jodie Kenney at jkenney@auburn.edu, 334-844-1050.
To learn more about Auburn University's study abroad programs, visit the Office of International Programs' Auburn Abroad website.


text:
Q: Which is the most efficient way to iterate a directory? Say I have a directory foo, with some number of subdirectories. Each of these subdirectories has between 0 and 5 files of variable length which I would like to process. My initial code looks like so:
    pool.query(`
      SET SEARCH_PATH TO public,os_local;
    `).then(() => fs.readdirSync(srcpath)
        .filter(file => fs.lstatSync(path.join(srcpath, file)).isDirectory())
        .map(dir => {
          fs.access(`${srcpath + dir}/${dir}_Building.shp`, fs.constants.R_OK, (err) => {
            if (!err) {
              openShapeFile(`${srcpath + dir}/${dir}_Building.shp`).then((source) => source.read()
.then(function dbWrite (result) {
              if (result.done) {
                console.log(`done ${dir}`)
              } else {
    const query = `INSERT INTO os_local.buildings(geometry,
                  id,
                  featcode,
                  version)
                  VALUES(os_local.ST_GeomFromGeoJSON($1),
                  $2,
                  $3,
                  $4) ON CONFLICT (id) DO UPDATE SET
                    featcode=$3,
                    geometry=os_local.ST_GeomFromGeoJSON($1),
                    version=$4;`
                return pool.connect().then(client => {
                  client.query(query, [geoJson.split('"[[').join('[[').split(']]"').join(']]'),
                    result.value.properties.ID,
                    result.value.properties.FEATCODE,
                    version
                  ]).then((result) => {
                    return source.read().then(dbWrite)
                  }).catch((err) => {
                    console.log(err,
                      query,
                      geoJson.split('"[[').join('[[').split(']]"').join(']]'),
                      result.value.properties.ID,
                      result.value.properties.FEATCODE,
                      version
                    )
                    return source.read().then(dbWrite)
                  })
                  client.release()
                })
              }
            })).catch(err => console.log('No Buildings', err))
            }
          })

          fs.access(`${srcpath + dir}/${dir}__ImportantBuilding.shp`, fs.constants.R_OK, (err) => {
            //read file one line at a time
            //spin up connection in pg.pool, insert data
          })

          fs.access(`${srcpath + dir}/${dir}_Road.shp`, fs.constants.R_OK, (err) => {
            //read file one line at a time
            //spin up connection in pg.pool, insert data
          })

          fs.access(`${srcpath + dir}/${dir}_Glasshouse.shp`, fs.constants.R_OK, (err) => {
            //read file one line at a time
            //spin up connection in pg.pool, insert data
          })

          fs.access(`${srcpath + dir}/${dir}_RailwayStation.shp`, fs.constants.R_OK, (err) => {
            //read file one line at a time
            //spin up connection in pg.pool, insert data
          })
        })

This mostly works, but it ends up having to wait for the longest file to be fully processed in every subdirectory, resulting in practice in there always being only 1 connection to the database.
Is there a way I could rearchitect this to make better use of my computational resources, while limiting the number of active postgres connections and forcing code to wait until connections become available? (I set them to 20 in the pg poolConfig for node-postgres)

A: Here is an example of getting directory contents using generators. You can start getting the first couple files right away and then use asynchronous code afterward to process files in parallel.
// Dependencies
const fs = require('fs');
const path = require('path');

// The generator function (note the asterisk)
function* getFilesInDirectory(fullPath, recursive = false) {
    // Convert file names to full paths
    let contents = fs.readdirSync(fullPath).map(file => {
        return path.join(fullPath, file);
    });

    for(let i = 0; i < contents.length; i++) {
        const childPath = contents[i];
        let stats = fs.statSync(childPath);
        if (stats.isFile()) {
            yield childPath;
        } else if (stats.isDirectory() && recursive) {
            yield* getFilesInDirectory(childPath, true);
        }
    }
}

Usage:
function handleResults(results) {
    ... // Returns a promise
}

function processFile(file) {
    ... // Returns a promise
}

var files = getFilesInDirectory(__dirname, true);
var result = files.next();
var promises = [];
while(!result.done) {
    console.log(result.value);
    file = files.next();
    // Process files in parallel
    var promise = processFile(file).then(handleResults);
    promises.push(promise);
}

promise.all(promises).then() {
    console.log(done);
}

A: If you need to have your files processed in turn for a certain amount of time, then you can use Streams, timers(for scheduling) and process.nextTick().
There is great manual for understanding streams in nodejs.

redpajama_set_name: RedPajamaStackExchange


Didn't have too much time. Just a little something something.
Stay on same colored platforms to get health, otherwise you lose health. Use mouse to drag and drop.
A great compo entry. The music was repetitive, but not annoying and the gameplay was simple to pick up and slightly addictive. With a graphics patch to make it more spacey it would make a cute mini-game! Great job!
Hi there, nice idea but there doesn't seem to be enough chance to recharge, not enough blue blocks from start for example - or they are moving too fast. I liked the soundtrack.
I rather enjoyed the unusual music. While the game wasn't challenging in its current state, I see a lot of potential with the central mechanic if it were harnessed further.
Simple, but not uninteresting. Had a spin on usual games of this kind.
What i really liked was the sound. That gave it some good mood.


text:
Olushola Okunlade Writes
Sterling One Foundation has won AS+A Communications' Award of Excellence for Corporate Social Responsibility in recognition of its positive impact across Nigeria.
As part of its annual award ceremony and commemoration of its Managing Director's 70th birthday, AS+A Communications awarded the Sterling One Foundation its Corporate Social Responsibility Award of Excellence at an event held in Lagos recently.
The award presented by the company's Managing Director, Mrs. Adenike Shobanjo, was in recognition of the foundation's developmental legacies in the areas of health, education, and environment, in partnership with its corporate partner, Sterling Bank.
Mrs. Shobanjo during her opening remarks explained that her company hosts this annual event because of how important it considers social impact work and the role that corporate organizations play in ensuring that the transformation it brings is widespread and has long-term effects.
While presenting the award to Sterling One Foundation, she applauded the efforts of Sterling Bank in setting up the Foundation and empowering them to make a lasting impact in society.
She further charged businesses operating in the country to prioritize corporate social responsibility for the development of the nation.
In her words, "There are influential, well-placed, and endowed Nigerians who sit in their closets without any care for the underprivileged. This event is to encourage them to come out and join us in building a just and egalitarian society."
"This award is in recognition of all the successes that Sterling has achieved over the years as a socially responsible organization, most especially in areas of health, education, and agriculture," said Shobanjo.
Accepting the award, the CEO of Sterling One Foundation, Mrs. Olapeju Ibekwe, thanked the organizers while stressing the organization's focus to contribute to the achievement of the Sustainable Development Goals (SDGs), as a way of improving the livelihood of Nigerians and Africans living in underserved communities.
She said that Sterling One Foundation's focus areas; education, health, climate action, gender equality, and food security are all critical areas that require urgent attention for progress to happen.
She went on to highlight that; "In 2023, the Sterling One Foundation plans to focus on expanding its education programs to reach more out-of-school children, train and fund at least 100,000 youths, plant 10 million economic trees and adopt key primary health centers in at least 10 states through key partnerships."
Related Topics:#csr#foundation#sterlingonefoundation
Airtel Bags SERAS Award For Education Intervention
Giving.NG Partners Shoprite Nigeria On 40 Days Of Giving Campaign
Unity Bank, Kitian Training Hub Partner To Empower Over 300 Youths With Digital Skills
Massive Opportunities Remain In Agric – Sterling Bank
UN Commends Sterling One Foundation On The Africa Social Impact Summit
Nestlé Improves Livelihood, Commissions Another WASH Project In Ogun State School
By Moninuola Sulaiman
Abdul Samad Rabiu, CFR, CON, Chairman, and Founder of BUA Group today received a delegation from the International Finance Corporation led by Sérgio Pimenta, Regional Vice President for Africa, at the BUA Cement HQ in Lagos State.
Left-Right: Abdul Samad Rabiu, Chairman, BUA, in a discussion with Sérgio Pimenta, Regional Vice President for Africa, International Finance Corporation (IFC) during a working visit of the IFC to BUA Cement HQ in Lagos.
The rise of digital commerce has given birth to new ways for e-commerce retailers to improve their businesses and deliver an exceptional customer experience.
This is due to the industry's constant adaptability to meet new demands and opportunities to create a seamless shopping experience by offering consumers a wide variety of products and services and finding new ways to connect with consumers through digital storefronts.
As a business owner or someone involved, staying current with market trends is critical to capitalize on upcoming opportunities and lessen the impact of potential disruptions.
Over the last three years, e-commerce has significantly grown, pushing millions more consumers to shop online. In 2023, the e-commerce industry is set to slowly take over the world, as revenue in the market is projected to reach US$9.02 billion in 2023.
Here are some of the most significant and disruptive e-commerce trends that could be adopted to enhance customer experience while also expanding businesses:
The Rise of Social Commerce
A trend that is expected to gain momentum in 2023 is the use of social media for e-commerce. Many businesses in Nigeria are already using platforms like Facebook and Instagram to sell their products, but this trend is expected to increase in the coming year as social media is a powerful tool for reaching potential customers and building brand awareness. Businesses that take advantage of this trend will be well-positioned for success.
The Rise of Omnichannel
Shoppers are no longer limited to a single device or channel as they research products, compare prices, complete a sale seamlessly across channels, and flip between devices without losing their place in the purchase journey. According to the National Communication Commission (NCC), 89% of internet users make purchases online, with another 24% planning to do so in the near future.
This trend has led many e-commerce platforms, like Jumia, to ensure that their channels can be accessed regardless of the platform or channel. As a result, consumers can log in to their accounts through the app or website on any device of their choice. This ease of shopping is expected to contribute to an increase in online sales.
Seamless Payment Options
Nigeria's economic policy is gradually shifting towards cashless payment, with digital and electronic banking being implemented nationwide. Furthermore, following the announcement of the new withdrawal limit by the Central Bank of Nigeria, more transactions are expected to be conducted electronically.
This demand for electronic transactions has attracted payment facilitators from all over the world as Nigeria's online commerce and financial technology industries are strengthened by a fast-growing youth population, expanding consumer power, and increased smartphone penetration. This is especially important for small businesses that use payment solution providers to ease the payment process for their customers. Payment Solutions Service Providers, like JumiaPay, can take advantage of these opportunities in the market.
Beyond this, payment solution providers, like JumiaPay, would also benefit from offering services for electricity bills payment, TV subscriptions, and airtime/data recharge to their consumers.
Consumer Personalization
Another important trend in 2023 is the increasing use of artificial intelligence and machine learning in e-commerce. These technologies can help businesses personalize their customer interactions, improve the accuracy of their recommendations, and make more informed decisions.
Personalizing a customer's online shopping experience is crucial to increasing online sales and bolstering e-commerce success. Users are growing weary of algorithm-powered interfaces instead of user-generated or user-inspired interfaces and longing for tailored and customized experiences. Customers want to believe someone is paying attention to them behind a computer screen. It doesn't have to be anything elaborate; it might be as straightforward as a customized email, a carefully chosen discount code, or something else.
Overall, the e-commerce industry in Nigeria is expected to see significant growth in 2023, driven by rising smartphone adoption, a growing middle class, and government support. Businesses that are able to keep up with these trends and adapt to the changing market will be well-positioned for success in the coming year.
…My Annual Letter to African Entrepreneurs January 1, 2023, Says Tony Elumelu, CFR
Written By Rashidat Olushola Okunlade
Chairman of Heirs Holdings, Tony O. Elumelu CFR, today announced the registration into the 2023 Tony Elumelu Foundation Entrepreneurship Programme.
The Tony Elumelu Foundation Entrepreneurship Programme 2023 commences today, the 1st day of January 2023 with the application portal on TEFConnect.net.
All aspiring entrepreneurs from all 54 African countries are encouraged to apply for the opportunity of a lifetime, to receive $5,000 non-refundable seed capital, world-class business management training, mentorship, and access to key networks and markets.
The Tony Elumelu Foundation (TEF) is the leading champion of entrepreneurship in Africa. Its objective is to empower women and men across the African continent, catalysing economic growth, driving poverty eradication, and ensuring job creation. TEF believes the private sector's role is critical for Africa's development and that the private sector must create both social and economic wealth.
The application is open to Africans from all 54 African countries with scalable business ideas or a business that has been operational for no more than 5 years.
Application Requirements:
a. Applicants must be 18 years of age and above.
b. All businesses must be business ideas or early-stage companies, in the range of 0 to 5 years old.
1. Non-refundable seed funding of $5,000
2. A world-class business training for 12 weeks
3. Access to TEF Alumni network with over 15,000 entrepreneurs across' Africa
4. Mentoring and networking opportunities via Africa's largest digital platform for entrepreneurs, TEFConnect.net. Click here to apply
Tony O. Elumelu CFR, Chairman of Heirs Holdings, an entrepreneur and philanthropist in his message said: "2022 was not an easy year. We escaped the pandemic, but none of us were untouched by global events. Prices have risen frighteningly, the cost of doing business has increased, customers are stretched, and we would all be forgiven for giving up, dialing down our entrepreneurial dreams, and maybe choosing an easier path. But I know you can take the challenges, take the long view, and show the resilience that all of us born in Africa inherit. I know you are still standing strong. You should be proud. I am proud of you. Resilience is that fiery passion that pushes you to never give up.
He urges African entrepreneurs to read his letter packed with lessons crucial to his success in 2022 which entrepreneurs would find helpful in their own entrepreneurial journey before applying.
Elumelu while sharing some of his success tips said: "I have learned a few lessons, that were crucial to my success, and I think you will find them helpful on your journey:
Don't be afraid to push the envelope: Did the tough environment cause me to retreat? No, on the contrary, now is the time to challenge your plans, go that bit further, and maintain the course. We took a big step at the Foundation. For the first time, my team and I journeyed to the Democratic Republic of Congo to announce the selection of African entrepreneurs, who successfully met all completion requirements for the 2022 Tony Elumelu Foundation Entrepreneurship Programme.
We wanted to show we are truly Pan-African, and highlight the role governments and policymakers must play in sharing, indeed lightening, your burden. We will be partnering more and more with African governments to promote entrepreneurship within their country.
Give back: I was born in Africa, raised in Africa, studied in Africa, worked in Africa, and achieved success in Africa. Beyond business success, always look for ways not only to give back but also to empower the generation coming behind us, so that they can go even further than we have. It can be big or small, as simple as giving advice, becoming a mentor, or broadcasting your success – yes broadcast, we need more beacons of African excellence, share your experience, and let your voice be heard.
Continue to define what success looks like to you: At the Tony Elumelu Foundation, we created an institution with a single focus: young African entrepreneurs. Twelve years ago, we knew that if we equipped young people with the tools and the opportunities to succeed, this was the only sustainable, dignified way to create a path to prosperity for all; substituting hand-outs for self-reliance and pioneering 21st-century philanthropy.
Earn your luck: I am a product of luck and hard work. I know first-hand that these factors are inextricable if you want to succeed. Entrepreneurship is years of hard work, long hours, and unquantifiable sacrifices. Your capacity to thrive and remain committed, despite temporary setbacks, will have a significant impact on realising your dreams.
A new year presents a clean slate – whether in your business, personal life, or relationships. It is your chance to set goals, commit to them, and prepare your mind for the discipline that is required for growth and success. This is why on this first day of 2023, we are once again opening the 2023 Tony Elumelu Foundation Entrepreneurship Programme Application portal on TEFConnect.net!
CIBN President Bayo Olugbemi, Team, Visit Redeemers' University, Ede
Energy2 years ago
Olusegun Mojeed Appointed As First Deputy Secretary General
MTN Nigeria Team Celebrates CEO, Karl Toriola On Birthday Anniversary


text:
Jeon Hyun Moo shed his tears at the last show of his radio program!
Source: MBC
MBC 'I Live Alone', behind story of his last radio show will be aired. He got to leave the program due to his throat problem although he lasted it for three years.
Just like other times, he introduced episodes and hosted the show like a veteran. However, it was a moment and showed his tears when he read a text from his mother. His mother said, "It was the only time that I could meet my ignorant son" and revealed her affection for the show.
The last episode of Jeon Hyun Moo's radio show will air on June 10.


These images document slices of bread staged with dried plants and dead insects. There are several aspects of this dead scenography. On the one hand, there is an infinity of variations, fantastic shapes and visual directions – that is, "movements" of lines - on the other hand, one is confronted with decaying materials.
These macro-scenes referentially belong to still life and the Vanitas artistic tradition. Still life (or nature morte) is a genre of painting in which painted elements include inanimate objects, often food, plants, dead animals, drinking glasses and vases. Today, still life is carried and actualized by artists working with photography, video, digital graphics, found objects, installations, etc.
Vanitas is associated with still life painting, but its content has strong symbolic connotations. The elements of Vanitas convey the meaninglessness of earthly life. Symbols like skulls, rotten fruit and animals, watches, extinguished candles or musical instruments are intended to remind us about the certainty of death, (Memento Mori), temporality of earthly pleasures and mortality of organic life. These are references my work cannot avoid, but I must admit that some references came after I began working with this project.
There is something existential about bread. And it has strong symbolic connotations. Bread is a basic food for many nations, and in times of hunger, can become a most precious THING.There are also examples of prisoners in concentration camps making Christian symbols like a cross and a holy rosary out of bread. In such cases, bread becomes "gold" and transforms the immense will to survive into faith.
Nature does not save effort to shape the micro and macro worlds. These are ingenious, thoughtful works of artisanship, if I can describe these masterpieces in this way. The richness of forms that nature gives conceptualizes a kind of cabinet of curiosities. My bread islands are micro cabinets of curiosities, there is so much to study on the surface of the bread, all one needs is just a magnifying glass.
In my work, the bread slices become islands. They become islands of still lifelessness. In this "lifelessness" of nature, there is a complexity of mini-forms of plants and insects that have been preserved despite their being dry and dead. These separated and individual islands are carefully composed from wild plants drawn from meadows to become lifeless micro gardens. The staged islands conceptualize graves of the beauty of wild plants which has no aesthetic value otherwise. Wild plants and their ordinary but wonderful micro-forms scare me because I do not understand why such a masterful craft is just carpet on which I walk and trample on every day with my dirty shoes.
Those fragile territories I staged, silently draw attention to themselves and maybe teach us to respect ordinary lives. Peter Mathiessen says in his book The Snow Leopard that to pluck wild flowers in Tibet is a sin. Usually one does not see weeds (wild flowers) because to see them requires one to kneel down.
I do not understand everything about these islands of lifelessness, for there is something illogical about those assemblages. The staged Vanity on piece of bread does not give clear messages. Perhaps, there is nothing, just staged weeds on bread.
There are some examples of interesting books with contemporary still life and Vanitas: Nature Morte. Contemporary artists reinvigorate the Still-Life tradition by Michael Petry; Dead or Alive by David Revere McFadden and Lowery Stokes Sims.


text:
The Académie des César inaugurates its new model
The day of her election at the head of the Academy of Arts and Techniques of Cinema, in September, she had promised to invent "A new model". Véronique Cayla, assisted by her vice-president, director Eric Toledano, laid the very first stone on Tuesday, November 10.
Véronique Cayla and Éric Toledano, a tandem to pacify the Caesars
In order to definitively establish parity and ensure democratic functioning, the General Assembly of the Association for the Promotion of Cinema (APC), which manages the Academy, will now be composed of only 164 members, including 82 men and women. 82 women, all elected by the 4,313 members of the institution, from different film professions. The Board of Directors will be made up of 21 joint pairs, one per professional branch, including Cédric Klapisch and Pascale Ferran for the production or Marina Foïs and Antoine Reinhartz for the interpretation.
The end of "de jure" members
The Academy of Caesar seems to definitely want to turn the page on the inter-self, since the modification of the statutes also and above all provides for the exclusion of so-called "de jure" members. Until then, personalities with notable status, such as those who received an Oscar or former presidents of the Academy, could sit on the Board of Directors of the APC on simple written request.
→ EXPLANATION. Endogamous and elitist? The Académie des Césars in the hot seat
Among the 18 "historic" members included the producer Thomas Langman, convicted in 2019 for harassment against his wife, and the director Roman Polanski, accused of rape, who crystallized most of the criticism. The decision being applicable immediately, the personalities concerned are summoned to abandon their functions. The members of the APC, gathered for the occasion, adopted these new statutes with an overwhelming majority of 134 votes out of 164 voters.
The need to calm the climate
Beyond the concrete and immediate change it brings, this vote therefore has a highly symbolic significance. In February, the announcement of the prize for best director, awarded to Roman Polanski, had upset the world of cinema already shaken by a deep crisis. For several weeks, the Academy had become the target of criticism, especially in a column signed by nearly 400 personalities in The world, who accused him of opaque functioning and had led to the collective resignation of the members of the Board of Directors and their president Alain Terzian, on the eve of the ceremony.
After a long period of consultation which mobilized the National Cinema Center, appointed as mediator, and the various members of the Academy, it was the Cayla-Tolédano pair that was elected in September to succeed the president by interim Margaret Menegoz. In July, the necessary renewal of the members of the association, which maintained the presence of "rights members" within the institution, had disappointed a large part of the world of cinema.
The Academy having now fulfilled its primary objective of a General Assembly "Totally democratic and equal", the presidency must continue its delicate mission, which is in fact a huge project: calming the climate to build serenely the next Caesar ceremony, which must be "More agile, more flexible, more dynamic", as Véronique Cayla had declared in September.
Tagged Academy, Caesar, cinema, Cinema Caesar, Culture, inaugurated, model, new
Researchers discover new species of monkey – Popa langur is critically endangered
Amazing super horse racing $ 237 million, more expensive than Ronaldo-Messi-Neymar


Single family home at great price!! Over 1400 square of living space, this Pottsville single features 3 bedrooms, dining room, walk out lower level, covered front porch and a nice view of the neighborhood. Schedule your showing today!


text:
Published on: February 2, 2011
Miley Cyrus' Parents Divorce
Miley Cyrus is one of the most famous teenagers in the world. With hit music albums and singles, popular movies, clothing lines, and sell out concerts – not to mention all of her movie success – the teen queen is a billionaire on paper and an entertainment juggernaut. Unfortunately, she no longer has a nuclear family to come home to as her parents today announced they were getting a divorce, says a New York Family Lawyer. Billy Ray and Tish Cyrus told the world that their marriage of nearly twenty years was coming to an end. The couple had five children together, reports a New York Family Lawyer.
Billy Ray Cyrus was a country music star for years before his daughter caught the attention of everyone as Hannah Montana on the Disney Channel, notes a New York Family Lawyer. Billy Ray starred on the hit show with his daughter – playing her dad! (A role that must have been quite a stretch.) From there Billy Ray helped guide his daughter's career to the point where the teen queen of the screen is one of the most recognizable figures on earth – all before her 18th birthday.
The couple appear to have split amicably as the released a press release jointly, notes a New York Family Lawyer. In it they thanked everyone for their support, thoughts, and prayers. They acknowledged the ugly truth of having to get a divorced but expressed their love for the children, says a New York Family Lawyer. It is unknown at this time how the divorce will affect Miley's career – if it does at all.
Divorces can often impact children in unforeseen ways and a skilled New York Family Attorney can help ease the process. If you are going through a divorce contact a New York Family Attorney today.
The firm of Stephen Bilkis & Associates with convenient locations thorughout the Metropolitan Area, including servicing Astoria, N.Y., can be of invaluable assistance to you if you find yourself a party to a case. Facing the Court without professional representation could lead to disastrous results.
Updated: February 2, 2011 12:00 am


"My job to work with colleagues to look at the types of jobs and people the business needs for the future and to find the right people that we can develop for both technical and leadership roles. I love my work and feel lucky that I am able meet and work with our best people every day.
At 16 I joined Royal Mail as an Apprentice and did my DofE – I'm a proud Silver Award holder. In fact, I still have my certificate commemorating the achievement!
We believe The Duke of Edinburgh's Award is something in which everyone should have the opportunity to get involved.


Click HERE for event page and registration information.
Details: All 2015 USA Cycling rules apply. Free-lap rule is in effect. Lapped riders may be pulled at the Officials' discretion. You must present a valid 2015 USA Cycling license at registration to enter any race. Only Category 5 men and Category 4 women who do not have a valid racing license may purchase a one-day license for $15.00 at registration. Promoters reserve the right to shorten, modify, cancel, or combine any race in the event of insufficient entries or bad weather. Day of race registration opens at 7:30 a.m. and closes 30 minutes before the start of each race. A late fee of $10.00 will apply to on-site registration. Helmets must be worn at all times. First race is regular fee, each additional race is $10.00. Minimun Field size for full pay-out of prize money. Mens events = 20 racers; Womens events = 10 racers.


Partial dentures are a simply and affordable solution for someone with missing teeth. They are used for replacing one or more missing teeth from the patient's upper or lower jaw. The partial denture is set and attached alongside the remaining natural teeth.
The partial denture fits gently against the remaining teeth and gum. Partial dentures assist in preventing the remaining natural teeth from losing position whilst potentially enhancing the aesthetic of the mouth and gum.
Peninsula Dental provides people from the Rosebud/Greater Mornington Peninsula area with custom-fabricated partial dentures. Contact us today to make a booking with our friendly team of dental professionals.
The partial dentures made by Peninsula Dental can be easily adjusted during production in case there are any changes. We utilise the highest quality materials when making our dentures to ensure quality and an incredibly lifelike aesthetic. We produce partial dentures that are designed to look similar to the remaining teeth in the mouth.
Are Partial Dentures for Me?
You have lost teeth and need a partial denture to fill the place of the missing teeth.
You require an affordable dental solution, or it may be the first time you have received a partial denture.
You need a partial denture for stabilising the pre-existing teeth and gum.
Looking for a dental clinic on the Mornington Peninsula that can determine whether Partial Dentures are right for you? Contact us today on (03) 5981 2255 or book online peninsuladentalcare.com.au for a consult so that we can assess your suitability and to further promote the health of your teeth and gums.


The Executive of the Brisbane Girls Debating Association resolved at the last Executive Meeting to invite applications for membership on an organisational Sub-Committee with the purpose of assisting the Executive in their roles. A full list of the requirement role as well as the responsibilties of the members is available here.
Please fill out the following form, or email the Exeutive at secretarybrisbanegirlsdebating@gmail.com with your Application to the Executive.
Applications will close on the 27th of September, one month from the invitation for Applications. Election to the sub-committee will be decided at the Executive Meeting to held on the 6th of October 2013.


text:
#ifndef FRAMEWORK_VULKAN_MATERIAL_H
#define FRAMEWORK_VULKAN_MATERIAL_H

#include "objects/shader_data.h"
#include "vulkan/vulkan_headers.h"
#include "util/gvr_log.h"

/**
 * Vulkan implementation of Material which keeps uniform data
 * in a VulkanUniformBlock.
 */
namespace gvr {

    class VulkanMaterial : public ShaderData
    {
    public:
        explicit VulkanMaterial(const char* uniform_desc, const char* texture_desc);
        explicit VulkanMaterial(const char* uniform_desc, const char* texture_desc, int bindingPoint, const char* blockName);
        virtual ~VulkanMaterial() {}
        void useGPUBuffer(bool flag){
            uniforms_.useGPUBuffer(flag);
        }
        virtual VulkanUniformBlock& uniforms() { return uniforms_; }
        virtual const VulkanUniformBlock& uniforms() const { return uniforms_; }
    protected:
        VulkanUniformBlock uniforms_;
    };
}

#endif //FRAMEWORK_VULKAN_MATERIAL_H

redpajama_set_name: RedPajamaGithub