Forgot your password?

Comment: Amiga - SIGGRAPH `89 (Score 1) 204

by Stele (#47271989) Attached to: X Window System Turns 30 Years Old

I was a senior in high school and wound up at SIGGRAPH in Boston in 1989. I was doing graphic design and programming for a small company that did medical imaging on the Amiga and we were in the Amiga pavilion. Nearby were some guys who had developed an X11 server and tools to build common X11 programs, with an optical three-button mouse. I think it was Dale Luck's company - I found a relevant announcement:!topic/comp.sys.amiga/ks3jiuCT5oQ

In 1992 I went to work for a company doing graphics software for the film industry. I was supposed to be writing Amiga software, but when I showed up they pointed to a $30K SGI 3000 system they had just bought and said "learn that". That began my crash course all things UNIX, X11, Motif, and gl. One of the cool things about SGIs was their gl api (the precursor to OpenGL) that integrated with the X server, so you could log into another SGI box and run 3D graphics programs with amazing speed remotely.

Comment: Re:A new programming language (Score 0) 411

by Stele (#47149845) Attached to: Apple WWDC 2014: Tim Cook Unveils Yosemite

I like it. It seems to lose some of the annoying features of objective-c and bring in some of the nice features of python.
E.G. for i in 0..3 { stuff }; or: for i in list_of_things { stuff }; like python.
and tuples allowing multiple return values, like in python
and getting rid of the need for semicolons, like python

Too bad they didn't just invest their energy into compiling Python to their runtime.

Comment: Re:I think it's great (Score 1) 435

by Stele (#46882793) Attached to: C++ and the STL 12 Years Later: What Do You Think Now?

To tell the truth the only thing I'm still using from boost is intrusive_ptr (an intrusive reference-counted smart pointer), which I use practically everywhere to help automate memory management and make integration with Python easier.

But with boost you can mix/match as needed, and use only as little of it as you need.

Transitioning some of the os-centric stuff (like threading primitives) from boost to C++11 just avoids having to add boost to your dependency chain. It's nice to only have to rely on what's in the language or the standard library, since you'll know it'll always be there - and presumably, is as efficient as possible.

Comment: I think it's great (Score 5, Insightful) 435

by Stele (#46879135) Attached to: C++ and the STL 12 Years Later: What Do You Think Now?

Unlike a lot of commenters here, I actually use C++ every day, and have been for about 20 years. I think the evolution of the language has been great.

I write software for the digital visual effects industry, and it has to be fast, portable, and adaptable. To that end I tend to write as light-weight low-level code as possible, strongly separated from the UI, since I never know where I may end up needing to use it. For instance, when we decided to put a bunch of our filters on iOS, it pretty much worked as-is.

One key to writing nice clean portable code is to avoid dragging in too many dependencies. At the lowest level, about the only external dependencies I used are a few things from boost. But with C++11, a lot of that functionality has moved into the core language (or the standard library). Threading and synchronization primitives such as atomic_int, thread, and mutex are now part of the language, and no longer need to be brought in from boost. This makes everything much cleaner, especially with build/test integration.

lambdas are another thing I really like. Instead of writing messy functors (for auto-threading image processing kernels for example) I can drop the code in-line using a lambda. Much more readable and cuts down on complexity.

The new move-semantics have also made nice improvements to code design and performance, allowing you to move whole objects around with practically zero cost as if they were references.

On the UI side of things I usually use Qt, and there have been C++11-related improvements there as well, such as signals and slots now being type-safe.

I've never been canoeing before, but I imagine there must be just a few simple heuristics you have to remember... Yes, don't fall out, and don't hit rocks.