Today I struggled with a string replace that didn't do what I expected it to do.
Consider the following code:
"xyz".gsub("y","a\\'b")
=> "xazbz"
Because gsub can be used with a regular expression the replace value can use regular expression backrefs.
I assumed (assumption is the mother of all fuckups) when using a plain string as search term, (which cannot result in back refs) it didn't use backrefs..
Well I was wrong..
A solution is to use the block-variant:
"xyz".gsub("y") { "a\\'b" }
=> "xa\\'bz"
I think the behavior of gsub is wrong...
When you don't have a regular expression you cannot have backrefs and you can have a dumb string replace.... What's your opinion about this?
I'm a developer and I enjoy programming.. :)
One of my play-projects is a tool called Devise. It's build for the demo group "Edge of Panic".
(We've made several releases (see bottom of this page))
I've did 3d coding for Edge of Panic a few years ago (look at the ugly recursive ball scene in the Breakpoint 2010 demo), but the the last two years I'm way to busy with my company to work on the 3d engine (which btw resulted in the development http://edbee.net/).
Though I'm very busy, I've managed to find some spare time to work on Devise.
Devise is used for creating timing events and triggers in the demo. The tool imports both midi-data of the music track and the audio data and visualizes these items. The events can be moved, resized altered etc.
Events can be as simple as on or off, or can contain spline data and in the future it should be possible to write code in the event bars.
The next image shows a screenshot of this tool (written in C++ Qt)
Last week we had a BBQ which was used to demonstrate the state of the engine. Watch the movie below:
Lights and other events are synced on the music. This syncing is done with the help of the devise tool.
Notice the transparency in combination with deferred lighting. Our engine is improving (great work blackstar!) :)