Archive

Archive for the ‘Development’ Category

Fundamental Computer Related Skills for Digital Artists

People (and not only students… who actually are also people ;-)) frequently ask me what fundamental computer related skills are necessary for developing a Digital Arts activity/career.

An excellent answer is given by Golan Levin in this video.

I summarize it here:

  1. learn a text based computer language (e.g. Java/Processing, C/C++/ObjC/OpenFrameworks, etc);
  2. learn a patch based computer language (e.g. PureData, MAX/MSP, etc);
  3. learn a web based computer language (e.g. PHP, Ruby on Rails, HTML5+CSS+javascript, etc);
  4. learn a micro-controller programming environment (e.g. Arduino, Raspberry Pi, BeagleBoard (which are actually true PCs in a board, and not simple controller boards);
  5. learn how to use a video editing suite (e.g.  iMovie, FinalCut, Premier, etc);
  6. learn how to model using a 3D modeling app (e.g. Google SketchUp, Blender, Maya, 3D Studio Max, Cinema4D, etc);
  7. learn how to manipulate audio (e.g. Audacity, Sonic Visualizer, Adobe Audition, Apple Logic, Protools, etc) – this one was added by me 😉

Anyway, these are the days where technology is, as it probably never was, at the service of creative (and artistic) minds. So, “just do it” [Nike, 1988], and “yes, we can” [Obama, 2008]! 😉

Locate and Find in Unix

The Unix Command Line: Misc.

A good description of the differences and usage of these two useful command line tools.

Categories: Development, Mac Tags: , , , ,

If you want reproducible science, the software needs to be open source

March 6, 2012 1 comment

Nature Editorial: If you want reproducible science, the software needs to be open source.

I couldn’t agree more with this idea of open source as mandatory for reproducible science.

Hardware design tools for the web – Upverter

November 18, 2011 Leave a comment

Social Making: Hardware design tools for the web – Upverter.

It’s like github for open source hardware

C++ Renaissance: the return of the King!

September 7, 2011 2 comments

C++ and Beyond 2011: Herb Sutter – Why C++? | Channel 9.

The above link points to an excellent talk by Herb Sutter (Microsoft Research) on the real advantages of C and C++ (and Objective C! – all known as “native” languages) in what concerns performance per $, per Watt, per transistor and per cycle.

And it’s not just on mobile platforms – he shows that “The world is built on… C/C++”: servers, desktops, mobile platforms and large scale data centers (talk about C++ being an eco-friendly language! :-)).

So, I’m glad to see the start of an age of the “return of the King”, which will not only last for the next decade, but will perdure even more when Moore’s law finally gets to an end.

Managed languages (i.e. Java, C#, etc) still have their place where “productivity” is key (which does not seem so much the priority nowadays – not even in the foreseeable future, so they say – and in case you still believe in the myth that those managed languages are as speedy as C/C++, have a look at this paper), but I’m glad that we finally got enough of it (it took almost 10 years of waste and stalling!!), where they were used as a hammer to solve any problem, which had first to be turned into something resembling a nail (just look at what happened to the Windows Vista fiasco and its C#/.Net managed code base… but not all was bad in Vista – a good lesson was learned… the hard way, but those are the lessons that usually become persistent for generations to come… hopefully ;-)).

In addition, we are on the verge of finally getting we already have the brand new C++ standard, C++11, which includes quite some exciting new features for C++, making it an even more exciting language to program with. Add to that the new impressive developments in the LLVM/Clang toolchain, and you start seeing the killer combos we are getting nowadays for native development.

So, these are exciting times for C/C++/ObjC folks, and computing in general. Glad to see Apple, Google and Microsoft (among others) really betting all their game on these native languages and investing a lot on taking the best out of them.

I’ve always believed in the power of C/C++/ObjC, even when a lot of people became fully fascinated with all those fancy new managed languages and looked at the folks still coding in native world as a bunch of old weirdos stuck into some  “obsolete” and “uncool” language universe.

Well, I started my programming career back in 1996 coding in assembly for DSP chips (TI C3x, C6x series and AD Shark – already floating point chips, which later on started having some basic C support). So my starting point may be a bit different from most of these younger folks. And maybe that’s why I anticipated that the days where efficiency would eventually become king once again would not be far – it was just a matter of “when”, instead of “if”.  Glad to see that the “when” is finally “here”. 🙂

Categories: Development, Programming Tags: , , ,

When Patents Attack!

When Patents Attack! | This American Life.

Excellent Radio Program/podcast about patents in the USA (which kind of follows a Michael Moore documentary style and approach ;-)).

In general, I have strong reservations on how patents are issued in the US. In particular, software patents are something that really surpass my comprehension and so far in Europe we have been safe from such a plague (not sure for how long, though… the lobby is strong and our european politicians are kind of weak…).

Patent trolls subverted the patent original idea of protecting IP for inventors who come up with original and non-trivial proposals, and I’m inclined to think that such patent troll people/entities/corporations do more harm than good to innovation in a global worldwide scale…

I should at some point try to understand what is the portuguese scene in what regards patents and promote debate and discussion on these important topics that have such a strong impact on research, innovation and entrepreneurship. I’ll keep you posted.

For anyone interested on this topics, a good resource to follow is Techdirt blog/forum.

Bill Buxton Shows Us His Favorite Tech

Bill Buxton Shows Us His Favorite Tech | Show Us Your Tech | Channel 9.

Really nice interview with Bill Buxton, during CHI2011 conference, where he exhibited his impressive collection of gadgets that range from watches, to all sorts of joysticks and hand held devices.

By the way, Microsoft Research and Bill Buxton are compiling this impressive and valuable collection on a website that is a mandatory study reference for anyone studying/working on HCI, Interfaces and Interaction. The site includes detailed photos, descriptions and comments by Bill himself and videos of the working user interfaces and how some of the devices operate are being uploaded into the website.

So, before you dare to present any “novel” interface/interaction design/HCI solution to the world, just follow Bill’s advice and check first if someone else already proposed that same approach some years ago (and save yourself from some embarrassment ;-)).

The Boost.Threads Library (C++ –> C++0x?)

Threads in C++ has been a long topic of pain and moaning, mainly because the C++ standard does not provide (until recently, at least) a platform independent and efficient support for threads built-in the language (POSIX pthreads lib is not C++; being a C library, it requires some careful use when dealing with multithreaded C++ objects which usually include constructors and destructors).

Options to circumvent this lack of multiplatform thread support ins C++ include using other C++ libraries such as Nokia Qt, Poco, or Boost.

Boost is a set of free peer-reviewed portable C++ libraries (more info here and here) that implements for some time now the Boost.Threads library, which is a highly optimized (and growingly flexible) platform independent thread library (i.e. should work in Linux, OSX, Windows, etc), and that seems to be the candidate best positioned to be included into the next C++ standard revision (i.e. C++0x). When that happens, the need for 3rd party libs in C++ for platform independent thread support will be finally over.

You can learn a bit more about how Boost.Threads will handle threads in the following articles:

The Boost.Threads Library | Dr Dobb’s Journal.

What’s New in Boost Threads? | Dr Dobb’s Journal

Categories: Development, FOSS, Programming Tags: , , , , ,

python_select is deprecated (in MacPorts)

July 7, 2011 1 comment

After some head banging with MacPorts in order to try to install python_select, I’ve found an explanation why python_select, although being displayed as being installed and active by MacPorts, still does not get installed in /opt/local/bin (and therefore, it borks when trying to run it from the command line): #29531 (_select ports no longer provide _select binary) – MacPorts.

So now it seems that python_select was deprecated and we should use instead (e.g. to select python2.6):

% sudo port select python python26

Windows software development roadmap (and SDKs, APIs, etc)

Ever wondered what win32, MFC, WPF, .Net and those acronyms are all about?

Here is a nice article that sheds some light into the software development roadmap for the Microsoft World (past, present and future): Windows 8 for software developers: the Longhorn dream reborn?.