<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-348256908341375413</id><updated>2012-02-16T00:16:45.768-08:00</updated><category term='linux'/><category term='msvc'/><category term='sport'/><category term='demoscene'/><category term='math'/><category term='reaper'/><category term='jesusonic'/><category term='java'/><category term='air'/><category term='cygwin'/><category term='tool'/><category term='web'/><category term='gfx'/><category term='tutorial'/><category term='music'/><category term='assembler'/><category term='googlecode'/><category term='voxel'/><category term='c'/><category term='batch'/><category term='test'/><category term='audio'/><category term='message'/><category term='git'/><category term='gnu-nano'/><category term='lp'/><category term='entertainment'/><category term='video'/><category term='maxima'/><category term='gcc'/><category term='windows'/><category term='dsp'/><category term='article'/><category term='code'/><category term='c++'/><category term='crypto'/><title type='text'>Lubomir I. Ivanov's blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>61</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-8438039845102883130</id><published>2012-02-10T08:37:00.000-08:00</published><updated>2012-02-10T08:40:56.126-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='message'/><title type='text'>GPL usage statistics as of Feb. 2012</title><content type='html'>Matthew Garrett (Redhat) has a interesting article about recent GPL usage: &lt;br&gt;&lt;br&gt;"...the probability of you using one of the GPL licenses is influenced by the community that you're part of. And it's not a huge leap to believe that an increasing number of developers are targeting the web, and the web development community has never been especially attached to the GPL."&lt;br&gt;&lt;br&gt;&lt;a href="http://mjg59.dreamwidth.org/10696.html"&gt;http://mjg59.dreamwidth.org/10696.html&lt;/a&gt;&lt;br&gt;--&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-8438039845102883130?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/8438039845102883130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=8438039845102883130&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/8438039845102883130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/8438039845102883130'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2012/02/gpl-usage-statistics-as-of-feb-2012.html' title='GPL usage statistics as of Feb. 2012'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-5017871933728883626</id><published>2012-02-10T08:26:00.000-08:00</published><updated>2012-02-10T08:48:26.407-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='article'/><title type='text'>mini rant about ACTA (part 01)</title><content type='html'>people have been protesting a lot recently about &lt;b&gt;ACTA&lt;/b&gt;, as its getting real close for it to be being voted now (&lt;b&gt;from wikipedia&lt;/b&gt;: "&lt;span class="Apple-style-span" style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px;"&gt;The treaty is according to Article 39 open for signature until 31 March 2012 for the participants involved in the negotiations as well as all members of the&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/World_Trade_Organization" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;" title="World Trade Organization"&gt;World Trade Organization&lt;/a&gt;&amp;nbsp;(WTO) of which the participants agree").&lt;/span&gt;&amp;nbsp;basically, the also so discussed, SOPA and PIPA were in fact less evil than this, due to the essence of ACTA itself and also to its magnitude - the number of the countries involved. in the wikipedia article about it, a world map is shown and the list of participants is slightly scary...but lets think about it for a while...&lt;br /&gt;&lt;br /&gt;i'm not much into politics and economics, but i can definitely make some speculations. for example:&lt;br /&gt;- japan being the so called "initiator" of the agreement may in fact be a muppet of the united states and its parties with massive interests like the MPAA.&lt;br /&gt;- perhaps SOPA and PIPA were designed only to draw some initial public fire and were never intended to pass at all.&lt;br /&gt;- and&amp;nbsp;also another crazy one might be &lt;b&gt;that ACTA is only&lt;/b&gt;&amp;nbsp;interested in the internet part and the whole "trade agreement" while the restrictions on medicine (etc..) are just for masking the "real deal"&lt;br /&gt;...but these are just my speculations and can easily go into a "conspiracy theories" column.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;its pretty safe&lt;/b&gt; to say that most european countries are interested into ways of limiting piracy of software, media and having a better control of what people do that may impair industries economically. the now heavily generalized term "open source" (not only for software, but for any public research for good or bad), they do not enjoy at all, but also they do realize that enforcing great restrictions on small parties on what they do with their time spent on medicine research, crops research or torrent downloading, will not be democratic at all.&lt;br /&gt;&lt;br /&gt;for example, a certain &lt;b&gt;political group&lt;/b&gt; that has the current power, knows that voting for/accepting this agreement will pretty much &lt;b&gt;"put their heads in the bag"&lt;/b&gt; - in a way they will be screwed on the next elections, as most young people or pretty much all people with possession of basic intellectual properties will never vote for them&amp;nbsp;ever&amp;nbsp;again. this is one of the main reasons i think ACTA will not pass in sane european governments. i really cannot say the same for other countries...but, if great deal of corruption is involved (where for example members of a political group will be well "compensated' for their efforts) i can see this passing - after all, everyone is mostly interested in power, more power and making more money while in power to ensure safety for their families for generations ahead.&lt;br /&gt;&lt;br /&gt;i remember reading about ACTA i while back and in general word about it was around for quite some time.&lt;br /&gt;&lt;br /&gt;in regard of free software and its distribution, this so called "trade agreement" will make a big impact. here is what FSF has to say on the subject (article from 2008):&lt;br /&gt;&lt;a href="http://www.fsf.org/campaigns/acta/"&gt;http://www.fsf.org/campaigns/acta/&lt;/a&gt;&lt;br /&gt;--&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-5017871933728883626?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/5017871933728883626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=5017871933728883626&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/5017871933728883626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/5017871933728883626'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2012/02/mini-rant-about-acta-part-01.html' title='mini rant about ACTA (part 01)'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-8195877204275608671</id><published>2012-02-09T07:56:00.000-08:00</published><updated>2012-02-09T13:39:01.485-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='entertainment'/><title type='text'>funny bit from "the armstrong and miller show"</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://0.gvt0.com/vi/1rNjga5z7hw/0.jpg"&gt;&lt;param name="movie" value="http://www.youtube.com/v/1rNjga5z7hw&amp;fs=1&amp;source=uds" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/1rNjga5z7hw&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;"You are obviously not a fireman."&lt;br /&gt;"No and I'm not a baker..."&lt;br /&gt;--&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-8195877204275608671?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/8195877204275608671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=8195877204275608671&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/8195877204275608671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/8195877204275608671'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2012/02/armstrong-and-miller-show-on-jobs.html' title='funny bit from &quot;the armstrong and miller show&quot;'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-7063791149558468195</id><published>2012-01-20T00:39:00.000-08:00</published><updated>2012-01-20T05:02:37.664-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='article'/><title type='text'>careerist folk</title><content type='html'>&lt;br /&gt;from time to time, i see people with impressive linkedin profiles - with at lot of past experience from major companies, a biography written in third person, graduated from multiple good universities with a masters degree, asking rather simple (and/or odd, fundamental) questions on mailing lists and forums.&lt;br /&gt;&lt;br /&gt;while such questions might be in reality not so simple (being related to complicated fields like dsp, electronics, programming), what puzzles me the most is that according to their linkedln profiles, they should already know the answers and&amp;nbsp;shouldn't be asking such questions at all in the first place.&lt;br /&gt;&lt;br /&gt;i can only draw the following conclusions:&lt;br /&gt;- they were just lucky not to be given work that required them to understand such matter.&lt;br /&gt;(or the more drastic ones)&lt;br /&gt;- they were very robust into their pursue of career, in such a way the they were able to march between the water drops, even if incompentence was at hand at a given moment in time.&lt;br /&gt;- such people had good connections and were able to work without strict demands from their employers.&lt;br /&gt;- they have mojo? most good looking women tend to have a lot of that.&lt;br /&gt;&lt;br /&gt;in the non-materialistic sense,&amp;nbsp;while knowledge might be more important than making money or being famous and respected, of course there is nothing wrong in pursuing a career in the field you enjoy. i often times wonder to what extend people (especially from academia), tend to push them self just to get that position at company x.&lt;br /&gt;&lt;br /&gt;in any way, i think one shouldn't judge a person just from a well written biography.&lt;br /&gt;&lt;br /&gt;--&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-7063791149558468195?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/7063791149558468195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=7063791149558468195&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/7063791149558468195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/7063791149558468195'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2012/01/careerists-folk.html' title='careerist folk'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-7082109507137591481</id><published>2011-12-22T17:59:00.000-08:00</published><updated>2011-12-26T12:10:21.955-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='message'/><title type='text'>happy holidays 2011/2012</title><content type='html'>happy holidays 2011/2012!&lt;br&gt;--&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-7082109507137591481?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/7082109507137591481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=7082109507137591481&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/7082109507137591481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/7082109507137591481'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2011/12/happy-holidays-20112012.html' title='happy holidays 2011/2012'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-6124552774912968931</id><published>2011-12-05T14:18:00.001-08:00</published><updated>2012-02-09T08:02:51.689-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sport'/><category scheme='http://www.blogger.com/atom/ns#' term='message'/><title type='text'>swimming is good for you</title><content type='html'>&lt;br /&gt;i've started going swimming regularly with some friends of mine. usually we get around going to the pool on tuesdays and thursdays, but it really depends on how busy people are, so we shift the schedule around... the pool itself is a medium sized public pool - there are showers,  a dressing room and etc. apart for adults there are usually a lot of kids (around 12 y/o) who train there at the same time and cause a lot of havoc :-).&lt;br /&gt;&lt;br /&gt;the length of a corridor is 25 meters and we usually end up doing at least 15 runs (or more) for one hour. the water contents may seem quite "chemical" for a newbie in comparison to salt water and its usually better to wear a hat and glasses (actually hats are obligatory), but people tend to get used to it very quickly. as a mostly "marine swimmer" (during the summer at least), i find it much more difficult to swim in these waters, but its very good for the musculature.&lt;br /&gt;&lt;br /&gt;overall i cannot really recommend swimming over playing football / basketball or some other activity during the winter, but its really a great exercise, especially if you are a programmer and a swimmer at the same time...this might end up being really good for your body if you are really up to it (and if you sit in front of the PC at least 8 hours a day).&lt;br /&gt;&lt;br /&gt;i usually go at night, so after the swimming session the night itself is a little bit exhausted, but very pleasant and fulfilling at the same time.&lt;br /&gt;&lt;br /&gt;--&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-6124552774912968931?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/6124552774912968931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=6124552774912968931&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/6124552774912968931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/6124552774912968931'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2011/12/swimming-is-good-for-you.html' title='swimming is good for you'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-4091891667416432492</id><published>2011-11-26T08:39:00.001-08:00</published><updated>2011-12-26T12:11:09.210-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='message'/><title type='text'>doom 3 source code released !</title><content type='html'>the ID software folks have just released the doom 3 source code under GPL. yay! &lt;br&gt;&lt;br&gt;&lt;a href='http://github.com/TTimo/doom3.gpl' target='_blank'&gt;http://github.com/TTimo/doom3.gpl&lt;/a&gt;&lt;br&gt;&lt;br&gt;how cool are these guys ? &lt;br&gt;&lt;br&gt;--&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-4091891667416432492?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/4091891667416432492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=4091891667416432492&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/4091891667416432492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/4091891667416432492'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2011/11/doom-3-source-code-released.html' title='doom 3 source code released !'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-6674730372801301048</id><published>2011-11-22T06:13:00.001-08:00</published><updated>2011-12-26T12:11:44.252-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='message'/><title type='text'>internet drama ?</title><content type='html'>looks like someone put my name and my company website (voxelproject.com) on a "pastebin" speculation about some internet drama: &lt;br&gt;&lt;a href='http://pastebay.com/145035' target='_blank'&gt;http://pastebay.com/145035&lt;/a&gt; &lt;br&gt;&lt;br&gt;someone (or some organization) named "voxelproject" did something to someone, which ended in someone else making the _wrong_ assumptions...or something like that. anyway, if you are not interested in such things - don't bother at all. &lt;br&gt;&lt;br&gt;to sum up the speculations related to me or my website in the above "pastebin" text - pretty much false, on many levels.if you saw neolit123 or voxelproject used elsewhere, its pretty much someone or some organization using the same aliases or trying to blame others.&lt;br&gt;&lt;br&gt;&lt;br&gt;-- &lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-6674730372801301048?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/6674730372801301048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=6674730372801301048&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/6674730372801301048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/6674730372801301048'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2011/11/internet-drama.html' title='internet drama ?'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-5691362984347145669</id><published>2011-11-11T08:23:00.001-08:00</published><updated>2011-12-26T12:11:25.285-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>quake ost (1996)</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;img border="0" height="256" width="256" src="http://1.bp.blogspot.com/-GfdZpbHBqdE/TsItUKtgDdI/AAAAAAAAASg/AgMNNHSoxj8/s1600/R-808460-1236219049.jpeg" /&gt;&lt;/div&gt;&lt;a href='http://www.discogs.com/Trent-Reznor-Quake/release/808460' target="_blank"&gt;http://www.discogs.com/Trent-Reznor-Quake/release/808460&lt;/a&gt;&lt;br&gt;&lt;br&gt;i like the soundtrack of the first quake a lot. used to play the game back in 1996...&lt;br&gt;never knew it was produced by trent reznor and not a big fan of his other work i general, but this one is really well done.&lt;br&gt;&lt;br&gt;--&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-5691362984347145669?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/5691362984347145669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=5691362984347145669&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/5691362984347145669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/5691362984347145669'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2011/11/httpwww.html' title='quake ost (1996)'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-GfdZpbHBqdE/TsItUKtgDdI/AAAAAAAAASg/AgMNNHSoxj8/s72-c/R-808460-1236219049.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-900115070382264740</id><published>2011-11-06T15:21:00.000-08:00</published><updated>2011-11-11T08:36:37.435-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gfx'/><category scheme='http://www.blogger.com/atom/ns#' term='assembler'/><category scheme='http://www.blogger.com/atom/ns#' term='c'/><category scheme='http://www.blogger.com/atom/ns#' term='demoscene'/><title type='text'>"elevated" demo explained</title><content type='html'>at Breakpoint 2009 (a demoscene convention), two groups RGBA and TBC released a demo, called "Elevated", which won the 4k (4 kilobytes) competition. the demo consisted of a terrain generation algorithm with shading, texturing, camera manipulation, synth based music and more. this demo is considered "the-best-ever" in this category by many people...&lt;br&gt;&lt;br&gt;&lt;a href='http://www.pouet.net/prod.php?which=52938' target='_blank'&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;img border="0" height="150" width="200" src="http://www.pouet.net/screenshots/52938.jpg" /&gt;&lt;/div&gt;&lt;/a&gt;&lt;br&gt;&lt;a href='http://www.youtube.com/watch?v=_YWMGuh15nE' target='_blank'&gt;youtube video&lt;/a&gt;&lt;br&gt;&lt;br&gt;i'm quite late, but apparently, one of the people involved in the project - Inigo "IQ" Quilez, the same year did a presentation on some of the techniques used for the demo. here is the PDF file for his presentation:&lt;br&gt;&lt;a href='http://www.iquilezles.org/www/material/function2009/function2009.pdf' target='_blank'&gt;presentation&lt;/a&gt;&lt;br&gt;&lt;br&gt; very impressive stuff, a portion of which is clearly for GFX gurus only. &lt;br&gt; &lt;br&gt;--&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-900115070382264740?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/900115070382264740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=900115070382264740&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/900115070382264740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/900115070382264740'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2011/11/at-breakpoint-2009-demoscene-convention.html' title='&quot;elevated&quot; demo explained'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-6354804292296344674</id><published>2011-10-23T21:32:00.000-07:00</published><updated>2011-10-23T21:33:11.310-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='c'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><title type='text'>articles on object-oriented design in c</title><content type='html'>here are, a couple of articles by Neil Brown (from june this year @ lwn.net), that explain some of the methods used in the linux kernel to provide virtual function tables and data inheritance in c. &lt;br&gt;&lt;br&gt;&lt;a href='http://lwn.net/Articles/444910/'/&gt;Object-oriented design patterns in the kernel, part 1&lt;/a&gt;&lt;br&gt;&lt;a href='http://lwn.net/Articles/446317/'/&gt;Object-oriented design patterns in the kernel, part 2&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-6354804292296344674?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/6354804292296344674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=6354804292296344674&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/6354804292296344674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/6354804292296344674'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2011/10/articles-on-object-oriented-design-in-c.html' title='articles on object-oriented design in c'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-5261490114947372982</id><published>2011-10-13T20:48:00.000-07:00</published><updated>2011-10-23T21:33:20.053-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='message'/><title type='text'>rip dennis ritchie</title><content type='html'>rip dennis ritchie (1941 - 2011)&lt;br&gt;&lt;br&gt;&lt;a href='http://www.nytimes.com/2011/10/14/technology/dennis-ritchie-programming-trailblazer-dies-at-70.html' target='_blank'&gt;http://www.nytimes.com/2011/10/14/technology/dennis-ritchie-programming-trailblazer-dies-at-70.html&lt;/a&gt; &lt;br&gt;&lt;a href='http://en.wikipedia.org/wiki/Dennis_Ritchie' target='_blank'&gt;http://en.wikipedia.org/wiki/Dennis_Ritchie&lt;/a&gt; &lt;br&gt;&lt;br&gt;&lt;br&gt;---&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-5261490114947372982?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/5261490114947372982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=5261490114947372982&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/5261490114947372982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/5261490114947372982'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2011/10/rip-dennis-ritchie.html' title='rip dennis ritchie'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-3002189926280381223</id><published>2011-09-22T11:52:00.000-07:00</published><updated>2011-09-22T14:19:50.624-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gcc'/><category scheme='http://www.blogger.com/atom/ns#' term='msvc'/><category scheme='http://www.blogger.com/atom/ns#' term='c'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><title type='text'>fast sse tanh written in c</title><content type='html'>here is fast hyperbolic tangent approximation based on continued fractions. &lt;br&gt;written in ansi c. works with gcc and msvc. &lt;br&gt;&lt;br&gt;provides some flexibility in regard of speed / accuracy.&lt;br&gt;&lt;br&gt;&lt;a href='http://sites.google.com/site/neolit123/home/fast_sse_tanh' target='_blank'&gt;link&lt;/a&gt;&lt;br&gt;&lt;br&gt;--&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-3002189926280381223?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/3002189926280381223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=3002189926280381223&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/3002189926280381223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/3002189926280381223'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2011/09/fast-sse-tanh-written-and-c.html' title='fast sse tanh written in c'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-3582247895246453420</id><published>2011-09-21T16:08:00.000-07:00</published><updated>2011-10-23T21:45:30.320-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='message'/><title type='text'>windows 8 "enabled" pcs may be prevented from booting linux</title><content type='html'>in a recent post matthew garrett (via greg.k.h) explains that windows 8 may utilize &lt;a href='http://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface'&gt;UEFI&lt;/a&gt; secure booting and lock away all linux boot managers (or at least attempt to do so).&lt;br&gt;&lt;br&gt;&lt;bq&gt; There is no centralised signing authority for these UEFI keys. If a vendor key is installed on a machine, the only way to get code signed with that key is to get the vendor to perform the signing. A machine may have several keys installed, but if you are unable to get any of them to sign your binary then it won't be installable. &lt;/bq&gt;&lt;br&gt;full read here: &lt;br&gt;&lt;a href='http://mjg59.livejournal.com/138973.html' target='_blank'&gt;http://mjg59.livejournal.com/138973.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;a video presentation of UEFI booting (ironically in WMV format): &lt;br&gt;&lt;a href='http://video.ch9.ms/build/2011/wmv/457.wmv' target='_blank'&gt;http://video.ch9.ms/build/2011/wmv/457.wmv&lt;/a&gt;&lt;br&gt;&lt;br&gt;my opinion is that such a firmware setup may greatly reduce the choices for home users to purchase some new system and essentially limit their freedom if they are already using one of such due to certain circumstances. also software updates in signed boot managers might get prevented as well and therefore a firmware update will be required.but i do think that UEFI is a great peace of technology and that BIOS should be eventually replaced - sooner or later.&lt;br&gt;&lt;br&gt;&lt;b&gt;update 23.09.2011&lt;/b&gt;: &lt;br&gt;looks like microsoft responded to the issue, but apparently they do not provide enough evidence to contradict the available facts for the consequences of setting up a secure boot interface: &lt;br&gt;&lt;a href='http://mjg59.dreamwidth.org/5850.html' target='_blank'&gt;http://mjg59.dreamwidth.org/5850.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;--&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-3582247895246453420?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/3582247895246453420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=3582247895246453420&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/3582247895246453420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/3582247895246453420'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2011/09/windows-8-enabled-pcs-may-be-prevented.html' title='windows 8 &quot;enabled&quot; pcs may be prevented from booting linux'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-3229687979776171959</id><published>2011-09-18T12:50:00.000-07:00</published><updated>2011-09-19T03:21:49.953-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='message'/><category scheme='http://www.blogger.com/atom/ns#' term='air'/><title type='text'>newer adobe air no longer supports linux</title><content type='html'>adobe air 2.7 was released around june this year and while it improves speed for android and ios, there are no runtimes for linux desktops. the last ones are version 2.6.&lt;br&gt;&lt;br&gt;here is the main reason:&lt;br&gt;&lt;br&gt;&lt;bq&gt; Adobe attributes this to the fact that a relatively few 0.5% of downloads of Adobe AIR were for Linux. This makes Adobe AIR 2.6 the last version of AIR to be available for Linux.&lt;/bq&gt;&lt;br&gt;&lt;a href='http://devworks.thinkdigit.com/Features/Adobe-releases-AIR-27-Drops-Linux-support_6977.html' target='_blank'&gt;from a more detailed post on the subject.&lt;/a&gt;&lt;br&gt;&lt;br&gt;the decision itself may be a bit questionable, but i wonder how much of a time investment would it be to update / maintain the linux runtimes (and sdk).&lt;br&gt;cross platform developers that target some of those 0.5% will now have to consider using the 2.6 sdk.&lt;br&gt;&lt;br&gt;--&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-3229687979776171959?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/3229687979776171959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=3229687979776171959&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/3229687979776171959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/3229687979776171959'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2011/09/newer-adobe-air-no-longer-supports.html' title='newer adobe air no longer supports linux'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-8163780990003830858</id><published>2011-09-17T03:30:00.000-07:00</published><updated>2011-09-19T03:22:03.895-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='googlecode'/><category scheme='http://www.blogger.com/atom/ns#' term='message'/><title type='text'>googlecode now allows git</title><content type='html'>&lt;a href="http://google-opensource.blogspot.com/2011/07/announcing-git-support-for-google-code.html" target="_blank"&gt;google's blog post&lt;/a&gt; (25 august 2011) &lt;br /&gt;&lt;br /&gt;if you maintain a googlecode repository you can now switch to git.&lt;br /&gt;(there is also mercurial support)&lt;br /&gt;&lt;br /&gt;here are some notes on how to start:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;b&gt;new local repository:&lt;/b&gt; &lt;br&gt;git clone https://username@code.google.com/p/projectname/ &lt;br&gt;&lt;i&gt;[enter googlecode pass and/or set it permanently in .netrc]&lt;/i&gt; &lt;br&gt;warning: You appear to have cloned an empty repository.&lt;br&gt;&lt;i&gt;[cd into dir and create some file test.txt] &lt;/i&gt; &lt;br&gt;git add . &lt;br&gt;git commit -m "first commit" &lt;br&gt;git log &lt;br&gt;git push origin master &lt;br&gt;git ls-remote origin &lt;br&gt;&lt;i&gt;[should show hash of remote refs/heads/master and HEAD] &lt;/i&gt; &lt;br&gt;&lt;br&gt;&lt;b&gt;to create a new branch:&lt;/b&gt; &lt;br&gt;git branch newbranch &lt;br&gt;git checkout newbranch &lt;br&gt;git push origin newbranch &lt;br&gt;git ls-remote origin &lt;br&gt;&lt;i&gt; [should show that newbranch is present as remote] &lt;/i&gt; &lt;br&gt;&lt;/code&gt;--&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-8163780990003830858?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/8163780990003830858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=8163780990003830858&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/8163780990003830858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/8163780990003830858'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2011/09/googlecode-now-allows-git.html' title='googlecode now allows git'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-6882393217187371790</id><published>2011-07-13T20:38:00.001-07:00</published><updated>2011-09-19T03:22:37.997-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='message'/><title type='text'>browsing privately with chromium</title><content type='html'>the privacy properties of google chrome have been questioned numerous times. it will install tracking and also the "google updater" on your system. SRWare (a small company from germany) for quite some time has been maintaining a browser called &lt;a href="http://www.srware.net/en/software_srware_iron_chrome_vs_iron.php" target="_blank"&gt;SRWare Iron&lt;/a&gt;, built on the chromium engine, that has a &lt;a href="http://www.srware.net/en/software_srware_iron_chrome_vs_iron.php" target="_blank"&gt;list&lt;/a&gt; of important privacy and security related differences with google chrome.&lt;br /&gt;&lt;br /&gt;if one likes using the chromium engine, until google changes their policy on the subject, i encourage the switch to SRWare Iron as an alternative.&lt;br /&gt;&lt;br /&gt;--&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-6882393217187371790?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/6882393217187371790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=6882393217187371790&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/6882393217187371790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/6882393217187371790'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2011/07/browsing-privately-with-chromium.html' title='browsing privately with chromium'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-3621994800374915352</id><published>2011-07-10T17:49:00.001-07:00</published><updated>2011-09-19T03:22:17.390-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><category scheme='http://www.blogger.com/atom/ns#' term='message'/><title type='text'>a nice blog with ambient music</title><content type='html'>&lt;a href="http://deletedscenesforgottendreams.blogspot.com/" target="_blank"&gt;http://deletedscenesforgottendreams.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;--&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-3621994800374915352?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/3621994800374915352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=3621994800374915352&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/3621994800374915352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/3621994800374915352'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2011/07/nice-blog-with-ambient-music.html' title='a nice blog with ambient music'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-2636327116483377247</id><published>2011-07-08T15:34:00.000-07:00</published><updated>2011-07-18T23:34:04.909-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='message'/><title type='text'>20 years of linux</title><content type='html'>as you may know, linux will soon have its 20th birthday (1991 - 2011). apparently its celebrated on &lt;a href="http://www.gatorlug.org/node/208" target='_blank'&gt;august 25&lt;/a&gt;. here is an hour long video filmed at linuxcon japan of gregkh and linus discussing the version history so far, the recent "jump" to version 3.0 and some of the future plans for the kernel.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=__fALdvvcM0" target='_blank'&gt;http://www.youtube.com/watch?v=__fALdvvcM0&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;edit:&lt;br /&gt;also in another &lt;a href="http://video.linux.com/video/1968" target='_blank'&gt;video (44:18)&lt;/a&gt;, andrew morton (akpm) gives an excellent answer to the question "what will happen to linux in another 20 years?" and i would like to quote a part of it:&lt;br /&gt;&lt;bq&gt;&lt;br /&gt;"...could be at one day, a completely new technology comes along, some little quantum based computer with a million quad cores, which comes along and completely makes linux obsolete. i suspect the first thing such a computer will do is emulate x86 and we will just keep going. [laughs]"&lt;br /&gt;&lt;/bq&gt;&lt;br /&gt;&lt;br /&gt;--&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-2636327116483377247?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/2636327116483377247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=2636327116483377247&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/2636327116483377247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/2636327116483377247'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2011/07/20-years-of-linux.html' title='20 years of linux'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-2245290553397204986</id><published>2011-05-26T05:36:00.000-07:00</published><updated>2011-10-15T15:17:07.023-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tool'/><category scheme='http://www.blogger.com/atom/ns#' term='batch'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>listing files in a remote git repository</title><content type='html'>here is a small batch script for windows (msysgit) that will list the files from a certain branch in a remote git repository. i wrote the initial script some time ago because i wanted git have this functionality with a single cmd line, but finished it just yesterday.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sites.google.com/site/neolit123/Home/git_lrt.zip"&gt;git_lrt.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;it works as follows:&lt;br /&gt;&lt;code&gt;git_lrt some-url some-branch&lt;br /&gt;git_lrt some-url some-branch &gt; logfile.log &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;if no branch is given 'master' will be used.&lt;br /&gt;&lt;br /&gt;what it does is (if you want to port to linux bash for example):&lt;br /&gt;- create local temp folder&lt;br /&gt;- init a git repository in there&lt;br /&gt;- add remote from url&lt;br /&gt;- fetch objects&lt;br /&gt;- list remote files for branch&lt;br /&gt;- clear local temp folder (&amp; repository)&lt;br /&gt;&lt;br /&gt;you may find the script useful to check the contents before cloning a small repository to your local windows hard drive. it seems there might be a possible vulnerability in msysgit where files that are part of the repository can be written to system folders. an example that mr. tale gives:&lt;br /&gt;&lt;a href="http://forum.cockos.com/showpost.php?p=748141&amp;postcount=1"&gt;cockos forum post&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;--&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-2245290553397204986?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/2245290553397204986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=2245290553397204986&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/2245290553397204986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/2245290553397204986'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2011/05/listing-files-in-remote-git-repository.html' title='listing files in a remote git repository'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-2913505487863389152</id><published>2011-03-28T22:47:00.000-07:00</published><updated>2011-03-28T22:54:54.869-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gcc'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='message'/><title type='text'>TDM releases TDM-GCC 4.5.2-1</title><content type='html'>a couple of days ago (03-27) TDM has released x86 and x64 builds of their compiler suite based on GCC 4.5.2:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tdm-gcc.tdragon.net/" target="_blank"&gt;http://tdm-gcc.tdragon.net&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-2913505487863389152?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/2913505487863389152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=2913505487863389152&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/2913505487863389152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/2913505487863389152'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2011/03/tdm-releases-tdm-gcc-452.html' title='TDM releases TDM-GCC 4.5.2-1'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-7510960906364047619</id><published>2011-03-18T14:14:00.000-07:00</published><updated>2011-03-18T15:23:34.793-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>stripping down the windows sdk 3.5</title><content type='html'>here are some notes on how to strip down the size of the windows sdk 3.5 if you only need the set of compiler and libraries. this is a straight copy-past from a recent forum post...&lt;br /&gt;&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;[post]&lt;br /&gt;you can strip down the 3.5 sdk as follows:&lt;br /&gt;&lt;br /&gt;&lt;bq&gt;&lt;br /&gt;- get setup.exe from here:&lt;br /&gt;&lt;a target='_blank' href='http://www.microsoft.com/downloads/en/details.aspx?FamilyId=E6E1C3DF-A74F-4207-8586-711EBE331CDC&amp;displaylang=en'&gt;link&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(notice what the title says: Windows SDK for Windows Server 2008&lt;br /&gt;_and_ .NET Framework 3.5)&lt;br /&gt;&lt;br /&gt;- destination "somedrive:\sdk_tmp"&lt;br /&gt;&lt;br /&gt;- install only the following components: &lt;br /&gt;  developer tools -&gt; windows headers and libraries&lt;br /&gt;  developer tools -&gt; compilers&lt;br /&gt;&lt;br /&gt;- copy "program files\microsoft visual studio x.x" to "somedrive:\msvc"&lt;br /&gt;- copy "somedrive:\sdk_tmp" to "somedrive:\sdk"&lt;br /&gt;- goto "somedrive:\sdk" and delete everything but "lib" and "include"&lt;br /&gt;&lt;br /&gt;- inspect the files "somedrive:\msvc\vc\bin\vcvars*.bat"&lt;br /&gt;&lt;br /&gt;- set path to "somedrive:\msvc\vc\bin"&lt;br /&gt;- set your environment variables "lib", "include", "windowssdkdir",&lt;br /&gt; "vsinstalldir" etc..&lt;br /&gt;&lt;br /&gt;- strip further libraries and compilers you don't need (e.g. for IA64).&lt;br /&gt;&lt;br /&gt;- uninstall the 3.5 sdk&lt;br /&gt;&lt;/bq&gt;&lt;br /&gt;&lt;br /&gt;depending on what you have deleted and kept you will end up with a footprint of 100-400mb, which is a realistic size for a set of cross-compilers and libraries.&lt;br /&gt;&lt;br /&gt;on low level debugging:&lt;br /&gt;- find a older build of windbg (6.11.1 or something) (~20mb)&lt;br /&gt;- include debug symbols with /Zi (or linker /debug) in your object code.&lt;br /&gt;- follow trivial debug procedures...&lt;br /&gt;reports in the category of addr2line should be available&lt;br /&gt;&lt;br /&gt;or use alternative debuggers / methods...&lt;br /&gt;&lt;br /&gt;[eop]&lt;br /&gt;&lt;br /&gt;lubomir&lt;br /&gt;--&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-7510960906364047619?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/7510960906364047619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=7510960906364047619&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/7510960906364047619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/7510960906364047619'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2011/03/stripping-down-windows-sdk-35.html' title='stripping down the windows sdk 3.5'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-1104581329694804370</id><published>2011-02-27T03:48:00.000-08:00</published><updated>2011-07-27T04:39:51.201-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='maxima'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><category scheme='http://www.blogger.com/atom/ns#' term='message'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><category scheme='http://www.blogger.com/atom/ns#' term='dsp'/><title type='text'>"optimal-l" filters</title><content type='html'>after having discussions with some very kind people on the topic of "&lt;a href='http://en.wikipedia.org/wiki/Optimum_%22L%22_filter' target='_blank'&gt;legendre / optimal-l&lt;/a&gt;" filters, we have ended up expanding its knowledge base a bit more. i have written a short article providing maxima files for calculating n-th order of the filter, also there are links to the original papers and list of the people involved.&lt;br /&gt;&lt;br /&gt;&lt;a href='http://sites.google.com/site/neolit123/home/legendre_filters' target='_blank'&gt;https://sites.google.com/site/neolit123/home/legendre_filters&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;lubomir&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-1104581329694804370?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/1104581329694804370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=1104581329694804370&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/1104581329694804370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/1104581329694804370'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2011/02/solving-optimal-l-mystery.html' title='&quot;optimal-l&quot; filters'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-2369066166422510382</id><published>2011-02-15T16:45:00.001-08:00</published><updated>2011-05-26T05:59:58.867-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tool'/><category scheme='http://www.blogger.com/atom/ns#' term='batch'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>win32: automatic backup script for 7za</title><content type='html'>here is a small batch script for windows that will periodically create a zip backup of a certain folder with &lt;a href="http://www.7-zip.org/"&gt;7za&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;on the top of the 'backup.cmd' it is possible to set:&lt;br /&gt;- source path (folder where 'backup.cmd' is by default)&lt;br /&gt;- target path&lt;br /&gt;- update period (minutes)&lt;br /&gt;- excluded files and sub-folders (7za option)&lt;br /&gt;- other compressor options&lt;br /&gt;(for more information about 7za options see: '7za -h')&lt;br /&gt;&lt;br /&gt;just check the above settings and place the file in the project folder you wish to backup.&lt;br /&gt;the result will be written at the 'target path' as 'foldername_date_timestamp.zip'.&lt;br /&gt;it can be easily modified so that another compressor is used.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sites.google.com/site/neolit123/Home/auto_backup_7za.zip"&gt;download link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-2369066166422510382?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/2369066166422510382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=2369066166422510382&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/2369066166422510382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/2369066166422510382'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2011/02/win32-automatic-backup-script-for-7za.html' title='win32: automatic backup script for 7za'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-8777628780303512702</id><published>2011-02-15T05:47:00.000-08:00</published><updated>2011-02-15T16:51:45.456-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lp'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>"free albums galore"</title><content type='html'>a selective collection of free albums for download.&lt;br /&gt;some nice jazz bits over there.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://freealbums.blogsome.com/"&gt;http://freealbums.blogsome.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-8777628780303512702?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/8777628780303512702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=8777628780303512702&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/8777628780303512702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/8777628780303512702'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2011/02/free-albums-galore.html' title='&quot;free albums galore&quot;'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-5239729808074163536</id><published>2011-01-31T14:19:00.000-08:00</published><updated>2011-01-31T15:24:49.618-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='article'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>web programming hustle</title><content type='html'>the following image tells a lot about web design, web programming, web development etc :-):&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;&lt;img src='http://www.werkkrew.com/uploads/frustrated.jpg' /&gt;&lt;br /&gt;&lt;br /&gt;true for those who have done much of that already or simply a warning for those who plan to start in the near future.&lt;br /&gt;&lt;br /&gt;the image comes from this (rather old but still sort of topical) blog post:&lt;br /&gt;&lt;a href="http://www.werkkrew.com/2008/08/05/web-development-sucks/"&gt;http://www.werkkrew.com/2008/08/05/web-development-sucks/&lt;/a&gt;&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-5239729808074163536?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/5239729808074163536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=5239729808074163536&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/5239729808074163536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/5239729808074163536'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2011/01/following-image-tells-lot-about-web.html' title='web programming hustle'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-7032110625735197213</id><published>2011-01-10T06:29:00.000-08:00</published><updated>2011-05-26T06:15:17.454-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gnu-nano'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='cygwin'/><category scheme='http://www.blogger.com/atom/ns#' term='message'/><title type='text'>re-packing gnu-nano-2.2.5 for use on certain win-xp setups</title><content type='html'>i'm a big fan of the &lt;a href='http://www.nano-editor.org' target='_blank'&gt;gnu nano&lt;/a&gt; editor...of course its purpose is to be simple and fun to use, while not competing with other editors like vim, emacs, codeblocks, geany, gedit, etc...etc.&lt;br /&gt;(i personally think that &lt;a href='http://www.pspad.com/' target='_blank'&gt;pspad&lt;/a&gt; on windows may be much stronger than a lot of these editors considering the install size / functionality trade off).&lt;br /&gt;&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;edit: also a nano-2.2.6 build is available at the bottom.&lt;br /&gt;i wanted to try nano for win32, so basically i went to &lt;a href='http://www.nano-editor.org/download.php' target='_blank'&gt;http://www.nano-editor.org/download.php&lt;/a&gt; and i've downloaded the latest windows build 'nano-2.2.6.zip'.&lt;br /&gt;&lt;br /&gt;running it however spat out a nasty message 'redirection is not supported'. after some investigation (installing / compiling / running / disassembling / testing stuff and sending emails...) i've put together a older version package of nano - 2.2.5 that runs ok on my system.&lt;br /&gt;&lt;br /&gt;here is a fuller story in the README.txt:&lt;br /&gt;&lt;br /&gt;&lt;bq&gt;&lt;br /&gt;this is the gnu-nano-2.2.5 from cygwin (dll 1.7.7-1), stripped down with just&lt;br /&gt;the cygwin terminal information and the basic needed dlls.&lt;br /&gt;&lt;br /&gt;the reason that i created this package is that on my desktop pc running &lt;br /&gt;windows xp sp2 i've got the message "redirection is not supported" and the&lt;br /&gt;program did not work.&lt;br /&gt;&lt;br /&gt;some disassembly debug on the included dll / exe's in the official &lt;br /&gt;package revealed that the message is related to cygwin1.dll.&lt;br /&gt;&lt;br /&gt;i've installed the latest cygwin, got the pdcurses for windows and compiled&lt;br /&gt;them. unlike compiling pdcurses with mingw, with the gcc-cygwin i've got&lt;br /&gt;"redirection is not supported" for all new test executables - which ment&lt;br /&gt;that something is wrong with cygwin/pdcurses, but not exactly sure what &lt;br /&gt;specifically.    &lt;br /&gt;&lt;br /&gt;unfortunately none of the people related to this issue which i've tried &lt;br /&gt;contacting replied so i've quickly decided to redistribute this&lt;br /&gt;'gnu-nano-2.2.5-winxp-fix.zip' package from my website. &lt;br /&gt;&lt;/bq&gt;&lt;br /&gt;&lt;br /&gt;so instead of persisting on this and eventually patching cygwin dll's (and wasting a lot of time in the process), which wouldn't actually be the greatest and of moral things to do, i'm redistributing the one compiled for the cygwin project with the appropriate license information from both parties.&lt;br /&gt;&lt;br /&gt;here is a bug report that i've set to gnu-nano @ savannah:&lt;br /&gt;&lt;a href='https://savannah.gnu.org/bugs/?32077' target='_blank'&gt;https://savannah.gnu.org/bugs/?32077&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;here is the DOWNLOAD of the package&lt;/b&gt;:&lt;br /&gt;&lt;a href='http://sites.google.com/site/neolit123/Home/gnu-nano-2.2.5-winxp-fix.zip' target='_blank'&gt;gnu-nano-2.2.5-winxp-fix.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;i still have no idea what the cause for this is, but i can confirm that the official nano-2.2.6 works ok on other people's windows installations.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;**** UPDATE **** &lt;/b&gt;&lt;br /&gt;i was able to compile 2.2.6 with ncurses under cygwin. here is a working snapshot, download this version instead of the one above if you would prefer:&lt;br /&gt;&lt;a href='http://sites.google.com/site/neolit123/Home/gnu-nano-2.2.6-ncurses-5.7.18.zip' target='_blank'&gt;gnu-nano-2.2.6-ncurses-5.7.18.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;lubomir&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-7032110625735197213?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/7032110625735197213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=7032110625735197213&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/7032110625735197213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/7032110625735197213'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2011/01/re-packing-gnu-nano-225-for-use-on.html' title='re-packing gnu-nano-2.2.5 for use on certain win-xp setups'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-1635758249483570939</id><published>2011-01-02T19:06:00.000-08:00</published><updated>2011-10-23T21:34:08.072-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='message'/><title type='text'>android dropped from /staging in december 2010.</title><content type='html'>&lt;a href="http://www.kroah.com/log/linux/android-kernel-problems.html?seemore=y" traget="_blank"&gt;(following this post by G.K.-H.)&lt;/a&gt;&lt;br /&gt;i guess i'm a bit too late, but it seems the android drivers were dropped from the linux kernel staging tree due to lack of maintenance, which basically means that google no longer has the chance (for now at least) to go upstream with android and keep it up to date with the latest kernel.&lt;br /&gt;&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;this pretty much leaves them maintaining a kernel snapshot which is becoming more and more incompatible with the official linux tree.&lt;br /&gt;&lt;br /&gt;i think that this might be a company decision to not spare the resource for the integration or perhaps hope that someone will magically do the work for them without even understanding the driver specifications, security models and etc.&lt;br /&gt;one other thing is that there has been public criticism that google (apart from andrew morton) does not contribute much to the kernel (and same goes for canonical).&lt;br /&gt;&lt;br /&gt;the above post by G.K.-H. explains some of their reasons but i think that the longer they wait with the android code the more difficult it would be to be merged, considering what they are constantly adding to the os.&lt;h4&gt;some notes on android&lt;/h4&gt;&lt;br /&gt;i must admit i haven't even seen an android phone (not much "smart phones" where i live), but i'm  fairly interested in the android platform specification wise. here are my impressions:&lt;br /&gt;&lt;br /&gt;- linux kernel based os&lt;br /&gt;nicely done. as mentioned above, unless they keep upstream they are going for the route of tv manufacturers, gaming consoles and embedded systems in general - taking snapshots of kernel.org and modding it and maintaing for years, which will eventually leave them behind as they will have to spend more resource to keep up with newer hardware (and in relevance cannot compete with the kernel.org development cycle).&lt;br /&gt;&lt;br /&gt;- c++ libs?&lt;br /&gt;not sure exactly what is included but looks like according to the &lt;a href="http://developer.android.com/sdk/ndk/overview.html#contents" target="_blank"&gt;Android NDK&lt;/a&gt; the c++ support is "minimal".&lt;br /&gt;&lt;br /&gt;- java api for gui in userspace&lt;br /&gt;this is great for a modern machine, as java is very easy to write on and will allow a lot of freedom for developers. not so good for older chips as the JVM is quite slow to be frank (like the flash AVM), it is however possible to use the Android NDK to compile native code. on the other hand the ram usage of the JVM is sometimes out of proportion...considering that the average hardware configuration &lt;a href="http://en.wikipedia.org/wiki/Comparison_of_Android_devices" target="_blank"&gt;might have 256 mb&lt;/a&gt; a slightly more complicated interface will probably take like 80% of the ram...and i'm not sure how well would a modern interface run with the JVM on a 800hz cpu.&lt;br /&gt;&lt;br /&gt;- it has a cool logo&lt;br /&gt;&lt;br /&gt;&lt;/hcon&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-1635758249483570939?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/1635758249483570939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=1635758249483570939&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/1635758249483570939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/1635758249483570939'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2011/01/android-dropped-from-staging-in.html' title='android dropped from /staging in december 2010.'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-4223008130588716815</id><published>2010-12-26T08:24:00.000-08:00</published><updated>2011-09-18T13:17:36.595-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='message'/><title type='text'>happy holidays 2010-2011</title><content type='html'>recently, i've been doing a lot of work on commercial web projects, so everything else has been on a bit of a hold including my contributions to the new &lt;a href="http://code.google.com/p/holos/"&gt;holos&lt;/a&gt; audio plugin library as a replacement for axonlib. a decent dose of good potential is present in there already.&lt;br /&gt;&lt;br /&gt;hopefully early 2011 will be more fruitful in regard of open source programming...&lt;br /&gt;on the other hand spending time on free projects without stable income can often times lead to starvation for the programmer and his relatives, which might be good reason to find the proper balance between the different types of work at hand.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-4223008130588716815?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/4223008130588716815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=4223008130588716815&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/4223008130588716815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/4223008130588716815'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2010/12/happy-holidays-2010-2011.html' title='happy holidays 2010-2011'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-7937379877766530106</id><published>2010-11-16T06:53:00.000-08:00</published><updated>2011-03-11T19:51:30.382-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='message'/><title type='text'>update 16.11.2010 (holos / axonlib)</title><content type='html'>long time no post...&lt;br /&gt;&lt;br /&gt;we (ccernn) have started working on a new library (holos) with the same concepts as &lt;a href="http://axonlib.googlecode.com" target="_blank"&gt;axonlib&lt;/a&gt; but with a slightly different structure and a bit more restrictive license. key reasons for that "switch" involve the need for some changes in the above mentioned: license, structure but also in the naming of the library.&lt;br /&gt;&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;&lt;img src="http://code.google.com/p/holos/logo?cct=0"/&gt;&lt;br /&gt;&lt;br /&gt;the following tagline sums it up:&lt;br /&gt;&lt;i&gt;"portable (win/linux) c++ framework/library for creating plugins/apps (exe/vst/ladspa)"&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;ccernn is currently working and experimenting on the integration of opengl as the default renderer for both linux and windows gui builds.&lt;br /&gt;i personally think that opengl with a set of basic features is quite accessible these days and that there are probably more benefits than downsides to use it for this particular purpose...also considering that the library is targeting the desktop user mostly this should not be an issue.&lt;br /&gt;&lt;br /&gt;there is also potential for some audio / midi integration for standalone executables.&lt;br /&gt;&lt;br /&gt;the license for holos, unlike the one for axonlib, can be simplified as follows: the library user cannot distribute object code (binaries) unless he provides links to all the source code that was used for the creation of such. the user can still sell the object code. this takes a slight turn from gpl (to allow vst's for example), but in general is based on the same principles. the license is written from scratch and is not an extension of gpl / lgpl. hopefully no legal issues will be present.&lt;br /&gt;&lt;br /&gt;we are also now using git as scm mirror of the repository - link bellow.&lt;br /&gt;&lt;br /&gt;once again, if time permits, i will try to help out with some ideas, bugfixes and library internals.&lt;br /&gt;&lt;br /&gt;you can find more information at these links:&lt;br /&gt;&lt;a href="http://holos.googlecode.com/" target="_blank"&gt;SVN repo&lt;/a&gt;&lt;br /&gt;&lt;a href="http://github.com/neolit123/holos/" target="_blank"&gt;GIT repo&lt;/a&gt;&lt;br /&gt;&lt;a href="http://holoslib.blogspot.com/" target="_blank"&gt;blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-7937379877766530106?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/7937379877766530106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=7937379877766530106&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/7937379877766530106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/7937379877766530106'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2010/11/update-16112010-holos-axonlib.html' title='update 16.11.2010 (holos / axonlib)'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-7561902380921635621</id><published>2010-06-09T09:27:00.000-07:00</published><updated>2011-01-10T10:59:21.761-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gcc'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>mingw: TDM releases TDM-GCC 4.5.0</title><content type='html'>twilight dragon media (TDM) has just released GCC 4.5.0 for windows (32 bit /64 bit).&lt;br /&gt;&lt;a href='http://tdm-gcc.tdragon.net/' target='_blank'&gt;http://tdm-gcc.tdragon.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;edit: i've noticed a 2x times increase in file size for tdm-4.5.0 compiled binaries over the same with tdm-4.4.1.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-7561902380921635621?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/7561902380921635621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=7561902380921635621&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/7561902380921635621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/7561902380921635621'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2010/06/mingw-tdm-releases-tdm-gcc-450.html' title='mingw: TDM releases TDM-GCC 4.5.0'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-5629659261060282807</id><published>2010-06-08T09:14:00.000-07:00</published><updated>2010-06-09T09:32:53.667-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='c'/><title type='text'>iso c99: some 64bit integer printing fun</title><content type='html'>a small article that gives tips on writing portable code for printing 64bit integers (printf):&lt;br /&gt;&lt;br /&gt;&lt;a href='http://sites.google.com/site/neolit123/home/i64_printf' target='_blank'&gt;i64_printf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;source code for download is included&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-5629659261060282807?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/5629659261060282807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=5629659261060282807&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/5629659261060282807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/5629659261060282807'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2010/06/iso-c99-some-64bit-integer-printing-fun.html' title='iso c99: some 64bit integer printing fun'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-378254005610842629</id><published>2010-05-24T00:53:00.000-07:00</published><updated>2010-05-27T18:01:06.878-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='c'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><title type='text'>iso c/c++: runtime and static assertion for gcc 4.4.0+</title><content type='html'>re: axonlib&lt;br /&gt;we've made some very good progress on the library. v.0.1.0 is about to be released soon. we now have image transparency, scalable images, a lot of widgets, a custom set of stdlib routines for string and memory, a rather fragmenting but fast custom memory allocator and other. also we are now not using heavy c++ types such as 'vector' any more, while 'iostream' is only used for debug builds.&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;i have made a little page to write some articles on programming methods, optimization techniques, assembler trick and other things i've learned over the years or just recently.&lt;br /&gt;&lt;br /&gt;&lt;a href='http://sites.google.com/site/neolit123/' target='blank'&gt;http://sites.google.com/site/neolit123/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;as far as programming goes i may be focusing more on assembler and c over c++ and higher level languages.&lt;br /&gt;&lt;br /&gt;the first article that is done now is about assertion:&lt;br /&gt;&lt;a href='http://sites.google.com/site/neolit123/home/lassert' target='blank'&gt;http://sites.google.com/site/neolit123/home/lassert&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;the original methods are part of axonlib but i release these to the public (under a fairly permissive license) as _none_ of the examples in the internet that i've tried out of interest worked properly and gave errors / warnings for either c or c++ code with the gcc compiler.&lt;br /&gt;&lt;br /&gt;[edit] actually the following seems to work as well with not much overhead:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#define STATIC_ASSERT(e) switch(0) { case 0: case (e): ; }&lt;br /&gt;/*&lt;br /&gt;resulting in two errors:&lt;br /&gt; file:line: error: duplicate case value&lt;br /&gt; file:line: error: previously used here&lt;br /&gt;*/&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;..and is a portable solution, but not very useful because the macro will expand to a switch call but in the same time (e) has to be a constant.&lt;br /&gt;&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-378254005610842629?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/378254005610842629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=378254005610842629&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/378254005610842629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/378254005610842629'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2010/05/iso-cc-runtime-and-static-assertion-for.html' title='iso c/c++: runtime and static assertion for gcc 4.4.0+'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-4336144619295444855</id><published>2010-04-04T14:49:00.000-07:00</published><updated>2010-05-15T10:01:00.831-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>send to cmd.exe</title><content type='html'>here is an useful trick. wonder if you can always right click a file under windows and open the file location in a command prompt?&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;on win xp. navigate to:&lt;br /&gt;"[Drive]:\Documents and Settings\[Username]\Sendto"&lt;br /&gt;&lt;br /&gt;on vista or 7 the folder should be at:&lt;br /&gt;"[Drive]:\users\[Username]\AppData\Roaming\Microsoft\Windows\SendTo"&lt;br /&gt;&lt;br /&gt;create a new file called "SendTo.cmd", place the following line of code inside it and save:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;@cmd /a /k cd /d %~d1%~p1&lt;/code&gt;&lt;br /&gt;what this commands does is:&lt;br /&gt;echo off, open cmd.exe with ansi output, carry out a command and remain, change directory to the first input file's drive and path&lt;br /&gt;&lt;br /&gt;now every time you right click a file or a folder and call "Send To -&gt; SendTo.cmd" you will have a command prompt with its parent folder open.&lt;br /&gt;&lt;br /&gt;for example:&lt;br /&gt;right clicking + "sendto.cmd" any file or sub-folder in "c:\windows\system32\"&lt;br /&gt;will open a command prompt showing:&lt;br /&gt;"c:\windows\system32&gt;"&lt;br /&gt;&lt;br /&gt;lubomir&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-4336144619295444855?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/4336144619295444855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=4336144619295444855&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/4336144619295444855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/4336144619295444855'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2010/04/send-to-cmdexe.html' title='send to cmd.exe'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-3857916401822459829</id><published>2010-03-09T07:31:00.000-08:00</published><updated>2010-05-27T17:54:54.468-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='test'/><category scheme='http://www.blogger.com/atom/ns#' term='c'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><title type='text'>gcc: speed-tests, inline assembly &amp; volatile declarations</title><content type='html'>here are some quick tests with gcc (3.x / 4.x) and &lt;a href='http://axonlib.googlecode.com' target='_blank'&gt;axonlib&lt;/a&gt;.&lt;br /&gt;note: "axAbs" (alt: fabs) and "axExp" (alt: expf) are part of "axMath.h"&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;&lt;b&gt;[*] gcc speed comparison (win32) &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;gcc-3.4.2 is the official mingw build, while gcc-4.4.1 is an unofficial build.&lt;br /&gt;&lt;br /&gt;test::&lt;br /&gt;&lt;br /&gt;n of iterations:&lt;br /&gt;10e+6&lt;br /&gt;&lt;br /&gt;calculation:&lt;br /&gt;expf(axAbs(-3.141592))&lt;br /&gt;&lt;br /&gt;flag: -O2&lt;br /&gt;gcc-3.4.2: 143 ms&lt;br /&gt;gcc-4.4.1: 6 ms&lt;br /&gt;&lt;br /&gt;flag: -O3&lt;br /&gt;gcc-3.4.2: 130ms  &lt;br /&gt;gcc-4.4.1: 5ms&lt;br /&gt;&lt;br /&gt;conclusion:&lt;br /&gt;gcc-4.4.1 generates faster code.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;[*] gcc: macros vs inline functions.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.codeproject.com/KB/cpp/Macros_vs_Inlines.aspx?msg=933125' target='_blank'&gt;an article with some more in depth information.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;test::&lt;br /&gt;&lt;br /&gt;n of iterations:&lt;br /&gt;10e+6&lt;br /&gt;&lt;br /&gt;calculation:&lt;br /&gt;axAbs(x) in the forms of macro vs inline and expf(x) for weight.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#define t0(x) \&lt;br /&gt;({ \&lt;br /&gt;&amp;nbsp;&amp;nbsp;register float _x; \&lt;br /&gt;&amp;nbsp;&amp;nbsp;__asm__ ( &amp;quot;andl $0x7fffffff, %0;&amp;quot; : &amp;quot;=r&amp;quot; (_x) : &amp;quot;0&amp;quot; ((float)x) ); \&lt;br /&gt;&amp;nbsp;&amp;nbsp;expf(_x); \&lt;br /&gt;})&lt;br /&gt;&lt;br /&gt;// -- vs --&lt;br /&gt;&lt;br /&gt;inline float t1(float x)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;__asm__ ( &amp;quot;andl $0x7fffffff, %0;&amp;quot; : &amp;quot;=r&amp;quot; (x)  : &amp;quot;0&amp;quot; (x) );&lt;br /&gt;&amp;nbsp;&amp;nbsp;return expf(x);&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;flag:&lt;br /&gt;-O2&lt;br /&gt;&lt;br /&gt;gcc-3.4.2:&lt;br /&gt;macro: 143ms &lt;br /&gt;inline: 145ms&lt;br /&gt;&lt;br /&gt;gcc-4.4.1:&lt;br /&gt;macro: 5ms &lt;br /&gt;inline: 6ms&lt;br /&gt;&lt;br /&gt;conclusion:&lt;br /&gt;inline functions are safer. not much difference in performance.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;[*] gcc: to "volatile" or not and its impact on performance.&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;a &lt;a href='http://en.wikipedia.org/wiki/Volatile_variable' target='_blank'&gt;volatile&lt;/a&gt; declared function or variable will not be optimized.&lt;br /&gt;&lt;br /&gt;&lt;a href='http://publications.gbdirect.co.uk/c_book/chapter8/const_and_volatile.html' target='_blank'&gt;quote:&lt;/a&gt;&lt;br /&gt;&lt;bq&gt;(on writing code for hardware control) Any self-respecting optimizing compiler would notice that the loop tests the same memory address over and over again. It would almost certainly arrange to reference memory once only, and copy the value into a hardware register, thus speeding up the loop. This is, of course, exactly what we don't want; this is one of the few places where we must look at the place where the pointer points, every time around the loop.&lt;/bq&gt;&lt;br /&gt;&lt;br /&gt;test:::&lt;br /&gt;asm volatile (..) vs asm (..)&lt;br /&gt;&lt;br /&gt;calculation:&lt;br /&gt;axExp(x)&lt;br /&gt;&lt;br /&gt;n of iterations:&lt;br /&gt;10e+7&lt;br /&gt;&lt;br /&gt;flag::&lt;br /&gt;-O2&lt;br /&gt;&lt;br /&gt;gcc-4.4.1:&lt;br /&gt;asm volatile: 298ms &lt;br /&gt;asm: 2ms&lt;br /&gt;&lt;br /&gt;gcc-3.4.2:&lt;br /&gt;asm volatile: 291ms &lt;br /&gt;asm: 13ms&lt;br /&gt;&lt;br /&gt;flag::&lt;br /&gt;-O3&lt;br /&gt;&lt;br /&gt;gcc-4.4.1:&lt;br /&gt;asm volatile: 297ms &lt;br /&gt;asm: 2ms&lt;br /&gt;&lt;br /&gt;gcc-3.4.2:&lt;br /&gt;asm volatile: 290ms &lt;br /&gt;asm: 12ms&lt;br /&gt;&lt;br /&gt;conclusion:&lt;br /&gt;functions declared as "volatile" perform much slower from both compilers.&lt;br /&gt;&lt;br /&gt;----------&lt;br /&gt;tested with athlon xp 1800+&lt;br /&gt;&lt;br /&gt;lubomir&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-3857916401822459829?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/3857916401822459829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=3857916401822459829&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/3857916401822459829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/3857916401822459829'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2010/03/gcc-speed-tests-inline-assembly.html' title='gcc: speed-tests, inline assembly &amp; volatile declarations'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-6906952625673794944</id><published>2010-02-25T18:45:00.000-08:00</published><updated>2010-02-28T18:14:50.878-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>c++: function callbacks between classes and accessing non-static members from static methods</title><content type='html'>i was looking for a way to use a class in c++ as a processing container, which does callbacks to methods in another class. an example in digital signal processing can be given as: a tone generator which normally operates at sample rate fs=44100 Hz, but is oversampled to fs * 2 via an oversampling container.&lt;br /&gt;&lt;br /&gt;now, of course the above can be inlined in a single method, which will be essentially faster, but leaves us with a composite method, instead of a case where both processes (tone generator and oversampler) are separated in classes and can be reused by other processes in a more object oriented class structure.&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;lets take a look at a case where the main processing method is in the parent class and the other processing method (a processing container) is in a sub class (or a class which is initiated inside the parent class).&lt;br /&gt;&lt;br /&gt;here is an example:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;// include a class from a header&lt;br /&gt;#include "childclass.h";&lt;br /&gt;// define parent class&lt;br /&gt;&lt;b&gt;class&lt;/b&gt; parentclass&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;private:&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// child class instance&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;childclass _childclass;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// some variable&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;float&lt;/b&gt; some_variable;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;public:&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// constructor&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parentclass()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// init stuff&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;some_variable = 5.f;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// the main method&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;virtual void&lt;/b&gt; processing_main_method(&lt;b&gt;const float&lt;/b&gt; input)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// call a method from the child class and pass the input variable&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_childclass.some_method(input);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;how about callbacks i.e. passing a method which to be called from another method? in the c programming language to achieve that function pointers are used.here is a nice article that covers mostly everything on the subject of function pointers on callbacks:&lt;br /&gt;&lt;a href='http://www.newty.de/fpt/callback.html' target='_blank'&gt;http://www.newty.de/fpt/callback.html&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;but what if we decide to make a callback from the child class to a method in the parent class? the logical way to achieve that is to declare a method in the parent class as static. &lt;a href='http://www.eelab.usyd.edu.au/ee_database/programming/c++/cplusplus-5.html' target='_blank'&gt;http://www.eelab.usyd.edu.au/ee_database/programming/c++/cplusplus-5.html&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;bq&gt;...member of a class can be declared static; be it in the public or private part of the class definition. Such a data member is created and initialized only once; in contrast to non-static data members, which are created for each object of the class. A static data member is created when the program starts executing; but is nevertheless part of the class.&lt;/bq&gt;&lt;br /&gt;&lt;br /&gt;(note: info on static functions in the same article - section 5.2)&lt;br /&gt;&lt;br /&gt;some code for our example:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;// ==============&lt;br /&gt;// program.cpp&lt;br /&gt;// ==============&lt;br /&gt;// include a class from a header&lt;br /&gt;#include "childclass.h";&lt;br /&gt;// define parent class&lt;br /&gt;&lt;b&gt;class&lt;/b&gt; parentclass&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;private:&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// child class instance&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;childclass _childclass;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// some variable&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;float&lt;/b&gt; some_variable;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;public:&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// constructor&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parentclass()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// init stuff&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;some_variable = 5.f;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// ************************&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// the callback method&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// ************************&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;static float&lt;/b&gt; processing_callback_method(&lt;b&gt;const float&lt;/b&gt; input)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// do something&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// the main method&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;virtual void&lt;/b&gt; processing_main_method(&lt;b&gt;const float&lt;/b&gt; input)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// call a method from the child class and pass the input variable&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// and also the local processing_callback_method&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_childclass.some_method(processing_callback_method, input);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// ===============&lt;br /&gt;// childclass.h&lt;br /&gt;// ===============&lt;br /&gt;// define child class&lt;br /&gt;&lt;b&gt;class&lt;/b&gt; childclass&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;private&lt;/b&gt;:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;float&lt;/b&gt; some_variable;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;public:&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// constructor&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;childclass()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// init stuff&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;some_variable = 5.f;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// ********************************************&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// the method that is called from parent&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// notice how the function pointer is passed&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// ********************************************&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;virtual float&lt;/b&gt; some_method(&lt;b&gt;float&lt;/b&gt; (*callback_function)(&lt;b&gt;float&lt;/b&gt;), &lt;b&gt;const float&lt;/b&gt; input)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// do something with input&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// ....&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// then do a callback&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;return&lt;/b&gt;(*callback_function)(input);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;here is a quick diagram of the above:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;.------------------------------------------.&lt;br /&gt;|[*mainclass]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;processing_main_method&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;processing_callback_method&amp;nbsp;&amp;nbsp;|&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;V&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;^&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&lt;br /&gt;|&amp;nbsp;&amp;nbsp;.--------|------------------|---.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&lt;br /&gt;|&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&lt;br /&gt;|&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'--&gt;&amp;nbsp;some_method&amp;nbsp;-&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&lt;br /&gt;|&amp;nbsp;&amp;nbsp;|[*subclass]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&lt;br /&gt;|&amp;nbsp;&amp;nbsp;'-------------------------------'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&lt;br /&gt;'------------------------------------------'&lt;/code&gt;&lt;br /&gt; &lt;br /&gt;so far so good...&lt;br /&gt;but now we face the issue that static methods cannot access non-static members. actually there is much sense in that if we think about it:&lt;br /&gt;&lt;br /&gt;&lt;bq&gt;Besides static data, C++ allows the definition of static functions. Similar to the concept of static data, in which these variables are shared by all objects of the class, static functions apply to all objects of the class.&lt;br /&gt;&lt;br /&gt;The static functions can therefore address only the static data of a class; non-static data are unavailable to these functions. If non-static data could be addressed, to which object would they belong? Similarly, static functions cannot call non-static functions of the class. All this is caused by the fact that static functions have no &lt;b&gt;this&lt;/b&gt; pointer.&lt;/bq&gt;&lt;br /&gt;&lt;br /&gt;the way to solve this would be to pass an instance to the parent class to the subclass function (some_method) and then pass this instance back to the static callback function (processing_callback_method). an example (with &lt;a href='http://theory.uwinnipeg.ca/programming/node87.html' target='_blank'&gt;void pointers&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;&lt;code&gt;// ==============&lt;br /&gt;// program.cpp&lt;br /&gt;// ==============&lt;br /&gt;// include a class from a header&lt;br /&gt;#include "childclass.h";&lt;br /&gt;// define parent class&lt;br /&gt;&lt;b&gt;class&lt;/b&gt; parentclass&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;private:&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// child class instance&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;childclass _childclass;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// some variable&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;float&lt;/b&gt; some_variable;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;public:&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// constructor&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parentclass()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// init stuff&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;some_variable = 5.f;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// *******************************&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// a non-static member function&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// *******************************&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;virtual float&lt;/b&gt; non_static_method(&lt;b&gt;const float&lt;/b&gt; input)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;return&lt;/b&gt; input * 2.f;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// ************************&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// the callback method&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// ************************&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;static float&lt;/b&gt; processing_callback_method(&lt;b&gt;void*&lt;/b&gt; _this, &lt;b&gt;const float&lt;/b&gt; input)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// cast the class&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;childclass* _pthis = (childclass*) _this;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// do something with a non-static member &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_pthis-&gt;some_variable = 1.f;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// call a non-static member function&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;return&lt;/b&gt; _pthis-&gt;non_static_method(input * 0.5f);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// the main method&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;virtual void&lt;/b&gt; processing_main_method(&lt;b&gt;const float&lt;/b&gt; input)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// call a method from the child class and pass the input variable&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// and also the local processing_callback_method&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_childclass.some_method(processing_callback_method, input);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// ===============&lt;br /&gt;// childclass.h&lt;br /&gt;// ===============&lt;br /&gt;// define child class&lt;br /&gt;&lt;b&gt;class&lt;/b&gt; childclass&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;private:&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;float&lt;/b&gt; some_variable;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;public:&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// constructor&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;childclass()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// init stuff&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;some_variable = 5.f;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// ********************************************&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// the method that is called from parent&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// notice how the function pointer is passed&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// but also an instance of the parent class &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// ********************************************&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;virtual float&lt;/b&gt; some_method(&lt;b&gt;void*&lt;/b&gt; _parent, &lt;b&gt;float&lt;/b&gt; (*callback_function)(&lt;b&gt;void*, float&lt;/b&gt;), &lt;b&gt;const float&lt;/b&gt; input)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// do something with input&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// ....&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// then do a callback&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;return&lt;/b&gt; (*callback_function)(_parent, input);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;so that is all.&lt;br /&gt;&lt;br /&gt;please note that i have not tested any of the code from above and its just provided as a guideline.&lt;br /&gt;&lt;br /&gt;lubomir&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-6906952625673794944?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/6906952625673794944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=6906952625673794944&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/6906952625673794944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/6906952625673794944'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2010/02/c-function-callbacks-between-classes.html' title='c++: function callbacks between classes and accessing non-static members from static methods'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-6388358502707913860</id><published>2010-02-08T21:21:00.000-08:00</published><updated>2010-02-25T20:18:26.039-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>project52: or how to write a track a week (for an year)</title><content type='html'>mr. corey layman (&lt;a href="http://developermusic.com"&gt;http://developermusic.com&lt;/a&gt;) has started a project - "an attempt to record and release a new song every week for one year"&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;check it out:&lt;br /&gt;&lt;a href="http://developermusic.com/blog/"&gt;http://developermusic.com/blog/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;amazing and quite inspiring as well :-)! if you are having a "writers block" or just looking for some inspiration you might want to check this guy out. this basically proves how creative people can be.&lt;br /&gt;&lt;br /&gt;great stuff&lt;br /&gt;lubomir&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-6388358502707913860?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/6388358502707913860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=6388358502707913860&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/6388358502707913860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/6388358502707913860'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2010/02/project52-or-how-to-write-track-week.html' title='project52: or how to write a track a week (for an year)'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-5983810236626336889</id><published>2010-02-08T21:07:00.000-08:00</published><updated>2010-02-25T12:17:21.274-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>a hiphop track</title><content type='html'>trig.com seems to be down so i've started uploading tracks to soundclound.com.&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;a quick hiphop beat:&lt;br /&gt;&lt;object height="81" width="100%"&gt; &lt;param name="movie" value="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fsoundcloud.com%2Fliteon%2Fthese-streets-beat&amp;amp;show_comments=false&amp;amp;auto_play=false&amp;amp;color=000000"&gt;&lt;/param&gt; &lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt; &lt;embed allowscriptaccess="always" height="81" src="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fsoundcloud.com%2Fliteon%2Fthese-streets-beat&amp;amp;show_comments=false&amp;amp;auto_play=false&amp;amp;color=000000" type="application/x-shockwave-flash" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt;   &lt;span&gt;&lt;a href="http://soundcloud.com/liteon/these-streets-beat"&gt;These Streets&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;dj premiere sample + some scratching.&lt;br /&gt;"going back to them roots". heh&lt;br /&gt;&lt;br /&gt;lubomir&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-5983810236626336889?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/5983810236626336889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=5983810236626336889&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/5983810236626336889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/5983810236626336889'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2010/02/hiphop-track.html' title='a hiphop track'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-3456499627173977818</id><published>2010-01-26T18:46:00.000-08:00</published><updated>2010-01-26T19:07:57.961-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='message'/><title type='text'>wip 27.02.10</title><content type='html'>some work in progress updates:&lt;br /&gt;- &lt;a target='_blank' href='http://voxelproject.com'&gt;voxelproject.com&lt;/a&gt; - i've been working with my colleagues on a couple of projects (3d + interior design + websites), which consume most of my time. i may post links and/or screenshots once things are completed.&lt;br /&gt;- &lt;a target='_blank' href='http://axonlib.googlecode.com'&gt;axonlib (vst fw/lib)&lt;/a&gt; - is progressing quite steadily, we are nearly at the stage of releasing a version 0.0.1 with documentation and working examples. ccernn has done a lot of work on the interface (widgets), graphics, classes,  and...well  everything else, while i've only completed a set of assembler optimized functions (math related) and cleared some warnings/issues here and there. i wish i had more free time for this project. perhaps the next month..&lt;br /&gt;&lt;br /&gt;lubomir&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-3456499627173977818?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/3456499627173977818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=3456499627173977818&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/3456499627173977818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/3456499627173977818'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2010/01/wip-270210.html' title='wip 27.02.10'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-5299657376643337247</id><published>2009-12-23T07:20:00.000-08:00</published><updated>2009-12-26T10:34:40.373-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Techno tribute mixes</title><content type='html'>last year i did a techno mix with some old tracks (around (y)1999-2000)&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.dogsonacid.com/showthread.php?threadid=590631' target='_blank'&gt;part 1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;part two from this year:&lt;br /&gt;&lt;a href='http://www.dogsonacid.com/showthread.php?threadid=659990' target='_blank'&gt;part 2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;happy holidays&lt;br /&gt;lubomir&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-5299657376643337247?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/5299657376643337247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=5299657376643337247&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/5299657376643337247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/5299657376643337247'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2009/12/techno-tribute-mixes.html' title='Techno tribute mixes'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-7398833043032202593</id><published>2009-12-19T14:38:00.000-08:00</published><updated>2009-12-26T10:35:20.657-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='audio'/><category scheme='http://www.blogger.com/atom/ns#' term='dsp'/><title type='text'>axonlib: A cross-platform VST effect framework</title><content type='html'>&lt;a href='http://cernthskei.wordpress.com/'&gt;ccernn&lt;/a&gt;, not so long ago, started the work on a cross-platform vst framework for linux and windows.&lt;br /&gt;&lt;br /&gt;&lt;a href='http://sites.google.com/site/ccernnaudio/axonlib/'&gt;axonlib home&lt;/a&gt;&lt;br /&gt;Its in an early version currently, but has proven quite stable already.&lt;br /&gt;&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;some screenshots:&lt;br /&gt;&lt;img src='http://dl.getdropbox.com/u/249632/ccernn.audio/previews/fx_cutter2.png'/&gt;&lt;br /&gt;&lt;img src='http://sites.google.com/site/ccernnaudio/vst-plugins/syn_perc0.png'/&gt;&lt;br /&gt;&lt;img src='http://img691.imageshack.us/img691/3915/liteonlofiscr.png'/&gt;&lt;br /&gt;&lt;br /&gt;I've joined in to help (as much as i can) with some cross platform tests, ideas and possibly with development once we set a version control repository.&lt;br /&gt;&lt;br /&gt;Lubomir&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-7398833043032202593?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/7398833043032202593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=7398833043032202593&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/7398833043032202593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/7398833043032202593'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2009/12/axonlib-cross-platform-vst-effect.html' title='axonlib: A cross-platform VST effect framework'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-1245260487820785851</id><published>2009-11-20T08:46:00.001-08:00</published><updated>2010-03-13T04:15:10.087-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lp'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>LPs by Dale Jacobs, FSB, Diana Express</title><content type='html'>I've decided to share 3 of my LP's, since they are out of press and very difficult to find on Ebay, Discogs. The "Coastal Zone" is brand new, while the other 2 are in fairly good condition. I've used a process to eliminate clicks and pops, while no artifacts were added. All audio files are 320kbps MP3. Photos of record sleeve artwork are included.&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;If you own the rights to an album in this list and think that it is not appropriate for it to be posted on the internet, drop me a notification email and i will remove it.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_PTQyuRdCwSU/SwbIONWzpQI/AAAAAAAAAKg/OpjvTmIwtW0/s1600/dalefront.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 400px;" src="http://4.bp.blogspot.com/_PTQyuRdCwSU/SwbIONWzpQI/AAAAAAAAAKg/OpjvTmIwtW0/s400/dalefront.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5406228549133903106" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Dale Jacobs - Coastal Zone&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Third and last album from the late Vancouver based jazz maestro, Dale Jacobs. Recorded for the New Music Records label in the year of 1989. Features Dale Jacobs on keyboards, Gorg McCrostie on guitars and John Ferraro on drums. The album takes you on a warm and relaxed journey of melodic keys, analogue synthesizer sounds, virtuoso guitars and precision drumming. In most of the tracks you may immediately recognize Dale Jacobs's slick signature sound.&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.megaupload.com/?d=1HB9W5XB' target='_blank'&gt;Download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_PTQyuRdCwSU/SwbLXPkbUWI/AAAAAAAAAKo/TcovF8Jf-0o/s1600/fsbback.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 400px;" src="http://4.bp.blogspot.com/_PTQyuRdCwSU/SwbLXPkbUWI/AAAAAAAAAKo/TcovF8Jf-0o/s400/fsbback.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5406232002881605986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;FSB - World Hit Parade&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Cover version of some nice tracks, recorder by the bulgarian group FSB (Formation Studio Balkanton) in 1981. Includes tracks by Toto, Beatles, Santana, Rolling Stones and others. Sound direction - Deyan Timnev.&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.megaupload.com/?d=FHN8VWY8' target='_blank'&gt;Download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh6.ggpht.com/_PTQyuRdCwSU/SwbGC1_YPmI/AAAAAAAAAKY/KgjqPae5Z_w/s512/dianafront.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 400px;" src="http://lh6.ggpht.com/_PTQyuRdCwSU/SwbGC1_YPmI/AAAAAAAAAKY/KgjqPae5Z_w/s512/dianafront.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_54062320028814343605986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Diana Express - Prayer For Rain&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;"Prayer for rain" is an album by the bulgarian group Diana Express, that includes the self titled cult song. Recorded in the "Balkanton" recording studios. Arrangement by Mitko Shterev, Keyboards - Mitko Shterev, Tsvetan Banov - percussions, Illiya Angelov - lead vocal and guitars, Zhivko Topalov - Bass, Maxim Goranov - lead guitar.&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.megaupload.com/?d=DWBTPX1R' target='_blank'&gt;Download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Recommended music blogs:&lt;br /&gt;&lt;a href='http://myjazzworld.baywords.com/'&gt;My Jazz World&lt;/a&gt;&lt;br /&gt;&lt;a href='http://quimsy.blogspot.com/'&gt;Quimsy's&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Lubomir&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-1245260487820785851?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/1245260487820785851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=1245260487820785851&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/1245260487820785851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/1245260487820785851'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2009/11/lps-by-dale-jacobs-fsb-diana-express.html' title='LPs by Dale Jacobs, FSB, Diana Express'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_PTQyuRdCwSU/SwbIONWzpQI/AAAAAAAAAKg/OpjvTmIwtW0/s72-c/dalefront.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-5905637416268263726</id><published>2009-11-14T16:39:00.000-08:00</published><updated>2009-11-20T21:33:34.895-08:00</updated><title type='text'>JSfxGEN - first public release</title><content type='html'>First public release (alpha) of the JSfxGEN modular DSP generator application.&lt;br /&gt;&lt;br /&gt;Googlecode homepage:&lt;br /&gt;&lt;a href='http://jsfxgen.googlecode.com' target='_blank'&gt;http://jsfxgen.google.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Discussion at the Cockos forums:&lt;br /&gt;&lt;a href='http://forum.cockos.com/showthread.php?t=46286' target='_blank'&gt;http://forum.cockos.com/showthread.php?t=46286&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Lubomir&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-5905637416268263726?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/5905637416268263726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=5905637416268263726&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/5905637416268263726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/5905637416268263726'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2009/11/jsfxgen-first-public-release.html' title='JSfxGEN - first public release'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-5135598181552872372</id><published>2009-10-29T10:15:00.000-07:00</published><updated>2009-10-30T02:13:03.531-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='voxel'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='message'/><title type='text'>VoxelProject.com update</title><content type='html'>I've recently created a new website for the company I've been running with some friends of mine - TheVoxelProject.&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;Basically, offering a very wide range of services including web/multimedia programming, design (any), 3d modeling, 3d animation, architectural visualizations, tv commercials and you name it.&lt;br /&gt;&lt;br /&gt;I'm in charge of the web/multimedia programming bit.&lt;br /&gt;We've managed to collect a pretty decent portfolio from past project. I especially like what the "3d" guys have been doing over the years.&lt;br /&gt;&lt;br /&gt;You can check it out here:&lt;br /&gt;&lt;a href='http://www.voxelproject.com/' target='_blank'&gt;Link&lt;br&gt;&lt;br /&gt;&lt;img src='http://www.voxelproject.com/site/vlogo_black.png'/&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Lubomir&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-5135598181552872372?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/5135598181552872372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=5135598181552872372&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/5135598181552872372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/5135598181552872372'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2009/10/voxelprojectcom-update.html' title='VoxelProject.com update'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-6597915988130007677</id><published>2009-08-01T13:01:00.000-07:00</published><updated>2009-10-01T06:06:02.383-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jesusonic'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='dsp'/><title type='text'>JSFXGEN - Modular environment for generating dsp code. (update 01.10.09)</title><content type='html'>I've started working on a "modular environment for generating dsp code" similar to synthmaker/max/synthedit. The target dsp platform is &lt;a href="http://www.cockos.com/reaper/sdk/js/js.php"&gt;JesuSonic&lt;/a&gt;.&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt; &lt;del&gt;First on the list is an online version made with flash/php?/javascirpt/html/xml.&lt;/del&gt;&lt;br /&gt;&lt;br /&gt;The idea is to be able to add different editable modules, design custom routings and possibly some graphic front-ends.&lt;br /&gt;I'm going to take my time with this one, while keeping it as simple-to-code and user-friendly as possible.&lt;br /&gt;&lt;br /&gt;Working project title for now is "jsfxgen".&lt;br /&gt;&lt;br /&gt;&lt;b&gt;update v0.1.0 (01.10.09)&lt;/b&gt;&lt;br /&gt;&lt;a href='http://4.bp.blogspot.com/_PTQyuRdCwSU/SsSl4CQlw0I/AAAAAAAAAIM/dxtFP1BJHsI/s1600-h/jsfxgen101screen.png'&gt; screenshot from 0.1.0&lt;/a&gt;&lt;br /&gt;new stuff:&lt;br /&gt;- moved to air/flex sdk for primary local version with save/load (online version is still possible)&lt;br /&gt;- integrated a build in editor with scrollbar, undo, line numbers, syntax highlighting.&lt;br /&gt;- variable based drag and drop routing between modules&lt;br /&gt;tbd:&lt;br /&gt;- solid xml data model for the modules&lt;br /&gt;- module export&lt;br /&gt;- open/save file format structure&lt;br /&gt;&lt;br /&gt;Lubomir&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-6597915988130007677?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/6597915988130007677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=6597915988130007677&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/6597915988130007677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/6597915988130007677'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2009/08/jsfxgen-modular-dsp-environment.html' title='JSFXGEN - Modular environment for generating dsp code. (update 01.10.09)'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-1144638314713912188</id><published>2009-07-30T10:46:00.000-07:00</published><updated>2009-09-05T19:47:08.263-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>K-Meleon Browser</title><content type='html'>As mentioned in &lt;a href="http://neolit123.blogspot.com/2009/01/short-grumble-about-ie-and-browsers-in.html"&gt;this  post&lt;/a&gt;, I've been using Firefox as my primary browser (as a user), however I'm starting to think that its much bloated compared to some other Gecko based browsers. For some websites, such as forums with a lot of images (and no plugins - java and flash), my computers simply freezes at 100% cpu usage for a moment, while Firefox loads the whole page...&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;&lt;b&gt;K-Meleon&lt;/b&gt;&lt;br /&gt;&lt;a src='http://en.wikipedia.org/wiki/K-Meleon'&gt;K-Meleon&lt;/a&gt; is an open source browser for Windows that requires less than twice of the resources of Firefox. Also it loads pages as fast as the new Opera 10. So far I find it to be the perfect solution for Windows.&lt;br /&gt;&lt;br /&gt;Most of the Firefox extensions can be simply unzipped and added to the K-Meleon plugins folder. A list of useful extensions can be found &lt;a href='http://pagesperso-orange.fr/jujuland46/JujuLand/KMES/KMES-Download.html#down_extensions'&gt;here&lt;/a&gt;.&lt;br /&gt;Ablockplus, syntax highlighting as you type, customizable menus from text files and many others are available.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Problems:&lt;/b&gt;&lt;br /&gt;So far I've seen only a couple of problems in comparison to Firefox. But the required html code adjustments, so that a page is normally viewable under K-Meleon are affordable. Opera and IE are much worse in most cases.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Conclusion:&lt;/b&gt;&lt;br /&gt;If you are tired from the slow Fox and you are looking for something lighter and user-friendly, simply give this one a try:&lt;br /&gt;&lt;a href='http://kmeleon.sourceforge.net/'&gt;http://kmeleon.sourceforge.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Lubomir&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-1144638314713912188?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/1144638314713912188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=1144638314713912188&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/1144638314713912188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/1144638314713912188'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2009/07/k-meleon-browser.html' title='K-Meleon Browser'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-5904885329879850016</id><published>2009-05-13T10:35:00.000-07:00</published><updated>2010-02-25T22:11:38.492-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tool'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='audio'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><title type='text'>dBFS calculator</title><content type='html'>Here is a simple dBFS calculator:&lt;br /&gt;&lt;br /&gt;You can download it in &lt;a href='http://dl.dropbox.com/u/1627980/dbfs_calculator.swf'&gt;Flash SWF format&lt;/a&gt; or as a &lt;a href='http://sites.google.com/site/neolit123/Home/dbfs_calc.zip'&gt;C source / Win32 binary&lt;/a&gt; (binary compiled with the DJGPP online-compiler).&lt;br /&gt;&lt;hcon&gt;&lt;object id="dbfs_calculator" width="200" height="200" &gt;&lt;br /&gt;&lt;param name="movie" value="http://dl.dropbox.com/u/1627980/dbfs_calculator.swf"&gt;&lt;param name="bgcolor" value="FAFAFA"&gt;&lt;br /&gt;&lt;embed id="dbfs_calculator" src="http://dl.dropbox.com/u/1627980/dbfs_calculator.swf" bgcolor="FAFAFA" width="200" height="200"&gt;&lt;br /&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;The summing of decibel values is a bit of a confusing subject, i believe because decibels are units with no dimension (ratio like %) and also that they are logarithmic.&lt;br /&gt;&lt;br /&gt;You can read this whole article for more information:&lt;br /&gt;&lt;a href='http://www.homeandprojectstudio.com/features/feature001.html'&gt;http://www.homeandprojectstudio.com/features/feature001.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;bq&gt;...Using dB FS (full-scale) in digital audio means that a change of +6 dB FS is the same as +10 dB spl (sound pressure level); in other words, twice as loud. How can this be? We know that each bit in a digital audio system increases the sampling resolution by approximately 6 dB. In essence, each bit represents an exponential increase in the sampling resolution, doubling the value with each bit. That’s why in a digital audio system, +6 dB FS, and not +10 dB spl, represents a doubling in sound levels. Not coincidentally, this corroborates the earlier statement that an increase of 6 dB is really a doubling of sound pressure, although not the perceived doubling of sound pressure. This is true for both analog and digital measurements.&lt;/bq&gt;&lt;br /&gt;The important bit here is to learn to distinguish different types of measurement (decibels). What you are seeing on the meters in your audio program is dbFS originally designed for ADCs (analog-to-digital converters) and assimilated by modern audio tools. dbFS is the reverse of dbSPL.&lt;br /&gt;&lt;br /&gt;The above article explains an easy way to sum dbSPL values and also provides a table to convert dbSPL to dbFS (16bit only):&lt;br /&gt;&lt;br /&gt;If you have 80dbSPL + 80dbSPL the result would be approx 83dbSPL (80+3), because the difference between the two is 0 units - from the "rule of thumb".&lt;br /&gt;&lt;br /&gt;--------&lt;br /&gt;&lt;br /&gt;a dbSPL calculator works with the following equation:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;result = 10*(log(10^(input1/10)+10^(input2/10))/log(10)&lt;/code&gt;&lt;br /&gt;where "input1" and "input2" are the dbSPL (!!) values you want to sum. 80db+80db=83db&lt;br /&gt;&lt;br /&gt;--------&lt;br /&gt;&lt;br /&gt;to sum two sinewaves in your audio program (with dbFS measures):&lt;br /&gt;&lt;br /&gt;&lt;code&gt;result = 20*(log(10^(input1/20)+10^(input2/20))/log(10)&lt;/code&gt;&lt;br /&gt;But why 20*? Here is a explanation quote from wikipedia:&lt;br /&gt;&lt;br /&gt;&lt;bq&gt;20 log rule, and similarly the formula for ratios of powers is the 10 log rule, and similarly for other factors. The factor of 20 is explained as: 10 is because it is in decibels (10ths of bels), and 2 is because it is a ratio of powers (squares of amplitudes): the product is 20.&lt;/bq&gt;&lt;br /&gt;So result for the sum of -9dbFS and -9dbFS, would be -2.97940008672037 for equal input/output impedance.&lt;br /&gt;&lt;br /&gt;Lubomir&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-5904885329879850016?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/5904885329879850016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=5904885329879850016&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/5904885329879850016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/5904885329879850016'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2009/05/dbfs-calculator.html' title='dBFS calculator'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-5294771939234374695</id><published>2009-05-11T13:07:00.000-07:00</published><updated>2010-03-03T16:00:59.274-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='audio'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><title type='text'>BBE Sonic Maximizer 482i circuit explained</title><content type='html'>&lt;b&gt;"Is the bbe sonic maximizer just a 2-band eq?"&lt;/b&gt;&lt;br /&gt;A similar question has been asked on some forums, so i've decided to find out by searching for a schematic of a BBE SM unit and found this link via google:&lt;br /&gt;&lt;hcon&gt;&lt;a href='http://www.radio-flier.com/PDF%20Files/BBE%20482i.pdf'&gt;http://www.radio-flier.com/PDF%20Files/BBE%20482i.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Without checking the website from which the pdf file originated i wrote a quick review of the schematic. &lt;br /&gt;And it seems i've doubled some things already written in there...apparently this pdf schematic extends the bbe schematic with the contents of the NJM2153 chip - the original schematic has only one big chip from a japanese manufacturer, which in a way hides all the processing in the unit.&lt;br /&gt;&lt;br /&gt;So more useful info on BBE SM here:&lt;br /&gt;&lt;a href='http://www.radio-flier.com/bbe_data.htm'&gt;http://www.radio-flier.com/bbe_data.htm&lt;/a&gt;&lt;br /&gt;Thanks to Tom Farrand for reconstructing the 482i sheet with the NJM2153! &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Here is my review:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Quote from the bbe website on the 482i:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;"The 482i Sonic Maximizer restores an audio signals natural brilliance and clarity by the use of two primary functions. First it adjusts a signal’s phase relationships between it’s low, mid and high frequencies while progressively adding longer delay times to lower frequencies, this creates a kind of “mirror curve created by the speaker neutralizing its phase distortion. Secondly the Sonic Maximizer augments higher and lower frequencies; loudspeakers tend to be less efficient in their extreme treble and bass ranges. The end result is a dynamic program-driven restoration without the ear fatigue that is normally experienced with the use of equalizers or exciters."&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;+ A look at this sheet of a 482i channel.&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.radio-flier.com/PDF%20Files/BBE%20482i.pdf'&gt;http://www.radio-flier.com/PDF%20Files/BBE%20482i.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;At first sight, it looks like a 3 band second-order splitter (multiband). this is achieved  with what they call "pseudo state variable filter". Phase shifting (band split) is present for each band !even! if "process" is set to 0 - i.e. fx is part of the signal chain (not bypassed). The band-splitting is not controlled by the process knob.&lt;br /&gt;&lt;br /&gt;The delay for the bands which BBE state is present, can be accomplished with a capacitor discharge, however I can't seem to find this in the sheet. Another way to do the delay, would be with separate buffer for this band, which stores the signal and plays it back with a delay. This type of design goal isn't something new and if you do it right, it can improve the sound trough certain speakers (a tweak for better acoustics). But how would you compensate for IIR phase shifts with a constant delay value? Phase correction with All-pass? This won't make the filter linear-phase.&lt;br /&gt;&lt;br /&gt;There is a low-band amplification with a potentiometer which is not a low-shelf filter - this is just a band boost. Same goes for the 'process' knob, it boosts the top-band. for the top-band signal path we see voltage-controled-amp (VCA), which has its control voltage trough a peak-detector. The peak-detector works with the non-filtered signal and increases/decreases the control voltage of the VCA. The summed voltage from the peak detector trough the VCA, should add more to the high frequency content and act like an exciter. Btw i've never seen a VCA the way its drawn in this sheet, so i can't say for certain if it does what I've described above.&lt;br /&gt;&lt;br /&gt;Another thing to take note here are the input/output buffers.&lt;br /&gt;- By looking at the input buffer, I believe this is just for impedance accomodation between the input (jack) and the next stages filter/pd, this is required in most cases. I have some doubts that the input buffer acts like an allpass filter and that the necessary impedance accomodation is made with just R30.&lt;br /&gt;- The output buffer looks more complicated: there is a what its called a frequency dependent inverting operational amplifier. What it does is - it doesn't amplifies frequencies above certain range (10khz for example), also it sums the three bands. This can be used to compensate for the harmonic boost of the high end. After that i see a one pole high-pass filter (RC), which i think they use only to band-limit lower frequencies (for example below 10hz) - the capacitor C20 takes care of that.&lt;br /&gt;&lt;br /&gt;There is no potentiometer on the output stage, because i see there is no "output gain" control for separate channels on the 482i.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Summary:&lt;/b&gt;&lt;br /&gt;There are a couple of mysteries (things i'm not certain of) in here, but the design does not look that complex. Also the price for a 482i is around 200$ (zsound) and it is a two channel unit - not very expensive, but still I believe you can custom build and improve the unit with a !lot! less than that. &lt;br /&gt;&lt;br /&gt;I've heard a lot of positive and negative comments on the BBE SM units. The negative were about its sharpness on the top end (mainly in the plugin version). This may be, because of the use of cheap IIR filters and bad control for the VCA input voltage values...&lt;br /&gt;From a recent discussion at music-dsp mailing list, we've agreed that by band-splitting and boosting a band (apply gain) instead of using a peak / shelf filter in the same range, you are essentially dealing with an inferior equalizer! this is due to the phase shifting at band crossovers. BBE states that they deal with this problem with one "progressive" delay shift?&lt;br /&gt;&lt;br /&gt;But to conclude, if something is designed well and has quality elements, low noise floor, low harmonic distortion - it may sound great and even improve the sound. This type of circuit does not have much "magic" to add, but as I've said it can improve the sound if designed well. Also I don't believe that the software version will sounds better than the hardware, if modeled accurately...&lt;br /&gt;&lt;br /&gt;Hope that helps for better understanding of this particular unit. :)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;---UPDATE---&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I believe I made some mistakes:&lt;br /&gt;&lt;br /&gt;I've managed to run the old "cakewalk sonic maximizer" plugin demo (dx) with a wrapper &amp; vst pa (from c.budde). The new bbe version from nomad factory has no demo?&lt;br /&gt;&lt;br /&gt;So if this is accurately modeled - indeed, there is a all-pass filter with F0 at 700hz (crossover freq)&lt;br /&gt;&lt;!--&lt;br /&gt;phase (bbe all-pass):&lt;br /&gt;&lt;img src='http://img300.imageshack.us/img300/374/phase.png'/&gt;&lt;br /&gt;&lt;br /&gt;groupdelay (bbe all-pass):&lt;br /&gt; &lt;img src='http://img300.imageshack.us/img300/4258/39145197.png'/&gt; --&gt;&lt;br /&gt;So the &lt;i&gt;"progressively adding longer delay times to lower frequencies, this creates a kind of “mirror curve created by the speaker neutralizing its phase distortion."&lt;/i&gt; statement is accurate in this case. All-passes can be used for this application, but this just a non-adjustable all-pass design, which cannot deal with phase distortion issues in !any! speaker.&lt;br /&gt;&lt;br /&gt;I must admit though, that changing the top-band and low-band voltage also affects the group-delay of the sum. signal chain is:  [in] -&gt; [acmd] -&gt; [band-split] -&gt; [sum] -&gt; [hp] -&gt; [out]&lt;br /&gt;&lt;br /&gt;Things are much more complicated than that :)&lt;br /&gt;&lt;br /&gt;Here is an article on the subject of all-pass crossovers and phase distortion issues:&lt;br /&gt;&lt;a href='http://www.linkwitzlab.com/phs-dist.htm'&gt;http://www.linkwitzlab.com/phs-dist.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Lubomir&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-5294771939234374695?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/5294771939234374695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=5294771939234374695&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/5294771939234374695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/5294771939234374695'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2009/05/bbe-sonic-maximizer-482i-circuit.html' title='BBE Sonic Maximizer 482i circuit explained'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-7087995928720864422</id><published>2009-03-21T15:03:00.000-07:00</published><updated>2009-05-13T11:16:02.906-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><category scheme='http://www.blogger.com/atom/ns#' term='audio'/><category scheme='http://www.blogger.com/atom/ns#' term='message'/><title type='text'>"Dynamic Range" - Pleasurize Music?</title><content type='html'>Just recently I've found out about this web page:&lt;br /&gt;&lt;a href='http://www.pleasurizemusic.com'&gt;http://www.pleasurizemusic.com&lt;/a&gt;&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;&lt;img src='http://www.pleasurizemusic.com/sites/default/files/DR_claim_1_100px.jpg'/&gt;&lt;br /&gt;&lt;br /&gt;This time behind the initiative are serious companies such as:&lt;br /&gt;&lt;i&gt;Tischmeyer Technology&lt;br /&gt;Alogorithmics&lt;br /&gt;SPL&lt;br /&gt;Brainworx&lt;br /&gt;Tomo AudioLabs&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;The initiative of the "Pleasurize Music Foundation" is proposing an open source VU/RMS meter, which can be used to calculate a "Dynamic Range" value of a audio track - offline or real-time with hosted plugin. The main idea is to standard-ise the use of a specific tool in any studio across the world, a tool that determines what the "Dynamic Range" of the tracks examined is and if these track are unnecessary loud. I strongly support this proposal!&lt;br /&gt;&lt;br /&gt;Here is more info I've gathered from personal experience:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;"Dynamic Range"&lt;/b&gt;&lt;br /&gt;From the website explained as:&lt;br /&gt;&lt;i&gt;...This is the average cumulative difference between peak and loudness (RMS) over a specific period of time (duration of a song or album) and is a whole number value given in decibels. Just the top 20% of the loudness are taken into consideration to ensure that songs with a long intro and an over compressed refrain doesn´t appear with a too high DR value.&lt;/i&gt;&lt;br /&gt;For the quick tests I did with the "Offline Meter" they are providing, the returned DR values seem completely adequate. Tracks which I think sound super-loud had DR values of 6 for example. Tracks with normal volumes were around 11-14 DR.&lt;br /&gt;Basically the manual of the tools says that an acoustical musical performance for example should be around DR=12, DR=14. For electronic club music I guess it can go a little bit lower around DR=10. But still! This means that the limiters will begin to kick in and DR=12 still will be absolutely reasonable value.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The "Offline Meter"&lt;/b&gt;&lt;br /&gt;&lt;img src='http://www.pleasurizemusic.com/sites/default/files/image/Offline_Norah_Jones_DR9.jpg'/&gt;&lt;br /&gt;The offline meter can be used outside of your DAW application (since it is a standalone exe). Loads and analyzes the tracks very fast! The DR value returned from the meter should be considered the "official" DR value for this track. Not the DR values returned from the "Realtime Meter"&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The Plug-in "Real-time Meter"&lt;/b&gt;&lt;br /&gt;&lt;img src='http://www.pleasurizemusic.com/sites/default/files/image/DR_Quincy.jpg'/&gt;&lt;br /&gt;So far the plugin version of the DR meter is only available in the VST format. They are saying that AU/RTAS versions are on the way too.&lt;br /&gt;The plug-in version loads almost instantaneously on my old PC. It has peak meter, RMS meter, mono switch, link switch, and DR value meter along side a very nice moving colored block which turns from green to red if the DR values begin to lower too much.&lt;br /&gt;The only remark I must make here is that apparently the RMS has "Display gain"  value of 3dB applied to it. So if you compare the RMS values with other meters (such as Voxengo Span for example) you will have to add 3db more to DR meter values to make them equal. So far I think they are using a 300ms window for RMS calculation which is ok.&lt;br /&gt;&lt;br /&gt;Both the plug-in and the offline versions are developed by Tischmeyer and Alogorithmics. Algorithmics alongside Isotope are probably one of the most respected DSP code algorithm suppliers. Tischmeyer Technology is an offspring of Tischmeyer Publishing GMBH with their excellent mastering studio located in Germany and publishing of mastering books and tutorials.&lt;br /&gt;&lt;br /&gt;So far so good. I've already started using the new meter. If you are interested give it a try, register on their website and spread the word on forums and blogs if you support the initiative.&lt;br /&gt;&lt;br /&gt;Regards&lt;br /&gt;Lubomir&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-7087995928720864422?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/7087995928720864422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=7087995928720864422&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/7087995928720864422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/7087995928720864422'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2009/03/dynamic-range-weapon-to-stop-loudness.html' title='&quot;Dynamic Range&quot; - Pleasurize Music?'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-2369995377268949341</id><published>2009-03-05T06:53:00.000-08:00</published><updated>2009-07-30T10:21:53.855-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='audio'/><category scheme='http://www.blogger.com/atom/ns#' term='dsp'/><title type='text'>Designing an analog VU meter in DSP</title><content type='html'>Here are some notes on how to design a VU meter DSP fx.&lt;br /&gt;I won't be getting much into the signal detection, but mostly into the visual of the plugin. If you wish to know more about it, please feel free to send me an email and I will be happy to respond to your questions.&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;Here is what we are going to use as an example. This is a very simple &lt;a href='http://neolit123.blogspot.com/2009/01/jesusonic-plugin-pack-reaper.html' target='_blank'&gt;JesuSonic&lt;/a&gt; fx:&lt;br /&gt;&lt;br /&gt;&lt;img src='http://sites.google.com/site/neolit123/Home/vu_new.jpg'/&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Setting some dimensions&lt;/b&gt;&lt;br /&gt;We begin by setting the width and height for the visualization.&lt;br /&gt;Its important to set the dimensions first, because they will determine the radius of the needle and the span of our scale.&lt;br /&gt;&lt;br /&gt;We are going to make a rather large VU meter - 425x260px, with needle radius of 200px. You should be able to create an arch withing these dimensions using the needle radius.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Designing the VU meter scale&lt;/b&gt;&lt;br /&gt;After the dimensions are set we can start creating our scale.&lt;br /&gt;You can very easily design the scale, try to approximate other scales, or use ready equations.&lt;br /&gt;&lt;br /&gt;In this example we are going to design our own scale by roughly approximating to an actual scale. There are a lot of photos of analog VU meter over the net. Different manufacturers have patented different scales. We will create our own (in a way).&lt;br /&gt;Similar to this one for example:&lt;br /&gt;&lt;br /&gt;&lt;img src='http://sites.google.com/site/neolit123/Home/VU_Meter.png'/&gt;&lt;br /&gt;&lt;br /&gt;We can use it as our base. In general its very difficult to make the approximation 100% accurate if you don't know the original function. Still there are ways to (try) to do so. For example &lt;a href='http://en.wikipedia.org/wiki/Lagrange_polynomial' target='_blank'&gt;LaGrange polynomials&lt;/a&gt; can help you with that. It may require a lot of points to be interpolated and the resulting function and the algorithm may became much more inefficient than a simple exp(). Also by using interpolation there might be some minor unavoidable and unwanted deviations between points.&lt;br /&gt;&lt;br /&gt;First thing to do is to set some scale markings in dB:&lt;br /&gt;-20, -10, -7, -5, -3, -2, -1, 0, +1, +2, +3&lt;br /&gt;&lt;br /&gt;Here is how to convert amp signal in dB and then get the value of X (dB -&gt; pixels on the X axis):&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;//code executed at bigger intervals - 1024 samples for example&lt;br /&gt;&lt;br /&gt;//amp2dB&lt;br /&gt;//take only abs(input) of input&lt;br /&gt;//6/log(2) is our dB scale&lt;br /&gt;in_db = log(abs(input))*6/log(2);&lt;br /&gt;&lt;br /&gt;//then&lt;br /&gt;&lt;br /&gt;//xl - is the value of X&lt;br /&gt;//in_db - is the value in decibels&lt;br /&gt;//use numbers 2.1 and 285 to tweak the equation&lt;br /&gt;xl = floor(exp(log(1.055)*2.1*in_db)*285);&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;xl is the result we are looking for here, after converting amp into dB.&lt;br /&gt;A very useful thing to do is to use some sort of a plotting program which can make calculations and draw some lines at the same time. I've used Adobe Flash which is quite fast to work with.&lt;br /&gt;&lt;br /&gt;&lt;img src='http://sites.google.com/site/neolit123/Home/vu1.png'/&gt;&lt;br /&gt;fig.1&lt;br /&gt;&lt;br /&gt;The vertical lines on the left and right represent our width. Point O is the center the circle. Point A lies on the circle therefore OA = r. Point S0 represents a point from our scale using the above equations. To draw the actual lines from the scale, two additional large arches may be used (colored in blue). If we connect O with S0 an intersection will occur between the new cirlces and OS0. These are points D01, D02. So lines such as D01D02 will be visible on our scale. When we know all the coordinates of the points we can make an arrayand draw these 'markings' on plugin initialization.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Drawing the needle in realtime&lt;/b&gt;&lt;br /&gt;After we have the result on the X axis we can start drawing the needle.&lt;br /&gt;Of course if you wish to use a bitmap as the needle you should use a different method here (i.e. calculate angle of rotation).&lt;br /&gt;&lt;br /&gt;&lt;img src='http://sites.google.com/site/neolit123/Home/vu2.png'/&gt;&lt;br /&gt;fig.2&lt;br /&gt;&lt;br /&gt;The math method used here to calculate point A's X,Y coordinates is by using proportional triangles and Pitagor theorem - as simple as it gets. Where: S0A / AO = P1A / AP2 etc. And since we know some of the lengths and coordinates of points we can get point A very easily.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;//get y from x and radius - r&lt;br /&gt;//Pitagor and proportional triangles used here&lt;br /&gt;l=sqrt(sqr(r)+sqr(212-xlt));&lt;br /&gt;h=((l-r)*r/l);&lt;br /&gt;m=sqrt(sqr(l-r)-sqr(h)); &lt;br /&gt;ylt=35+h;&lt;br /&gt;xlt &lt; 212 ? xlt=xlt+m : xlt=xlt-m; // check if x is &lt; of middle point 212&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The results - xlt &amp; ylt are the A's x,y coordinates and after we have them, we can draw a line between O and A in realtime.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Needle response&lt;/b&gt;&lt;br /&gt;Updating the needle per sample is not advisable so I suggest that you use some sort of a countdown before make the above calculations. After some trial and error you will get an acceptable 'response' speed. You should know that the magnetic-electric system (inductor+constant magnet) of an analog vu-meter has response of 300ms. This is quite slow but of course you can tweak it.&lt;br /&gt;&lt;br /&gt;Another characteristic of the needle response is the inertial fallback. This is due to the inductor exponential discharge. After executing the x,y calculation code you can add the fallback by simply subtracting pixels from X (original exp() scale) while multiplying the result by some factor for adding inertia (emulating the discharge).&lt;br /&gt;&lt;br /&gt;Limiting x and y of A may also be a good thing since the given log scale in dB can go as low as -350db. Or you can just limit the input gain value to -25,+3.5 db&lt;br /&gt;&lt;br /&gt;&lt;b&gt;RMS window&lt;/b&gt;&lt;br /&gt;Adding a RMS detector isn't very difficult to make in DSP either. Here is an example:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;//***per sample&lt;br /&gt;//cs - current sample counter&lt;br /&gt;//300 - window in ms&lt;br /&gt;//sum - peak values stored here&lt;br /&gt;if (cs == (0.001*300*44100)) {&lt;br /&gt;cs = 0;&lt;br /&gt;sum = 0;&lt;br /&gt;} else {&lt;br /&gt;cs += 1;&lt;br /&gt;//square the abs value of the input&lt;br /&gt;sum += sqr(abs(input));&lt;br /&gt;}&lt;br /&gt;//***execute at bigger intervals - at sample block for example&lt;br /&gt;//calculate value while converting into dB&lt;br /&gt;//*100/100 is to output the values in the X.XX format&lt;br /&gt;rms = floor(6/log(2)*log(sqrt(sum/cs))*100)/100;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;So 'rms' would be our RMS value for a 300ms window.&lt;br /&gt;&lt;br /&gt;Thats all...well mostly. If you have any question post a comment here or send me an email.&lt;br /&gt;&lt;br /&gt;I leave that task of making the VU meter look good to you.&lt;br /&gt;&lt;br /&gt;Lubomir&lt;br /&gt;&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-2369995377268949341?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/2369995377268949341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=2369995377268949341&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/2369995377268949341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/2369995377268949341'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2009/03/designing-analog-vu-meter-in-dsp.html' title='Designing an analog VU meter in DSP'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-2129313736427464182</id><published>2009-02-07T15:39:00.000-08:00</published><updated>2009-08-02T18:43:31.461-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><category scheme='http://www.blogger.com/atom/ns#' term='audio'/><category scheme='http://www.blogger.com/atom/ns#' term='test'/><category scheme='http://www.blogger.com/atom/ns#' term='dsp'/><title type='text'>Inter-sample peaks and audio compression</title><content type='html'>&lt;a href="http://www.gearslutz.com/board/tips-techniques/334385-intersample-peaks.html"&gt;Inter-sample peaks&lt;/a&gt; have been more of a problem recently with the constant struggle for louder sound. This post includes some tests of the consistency of ISP clear audio signals after performing compression .&lt;br /&gt;&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;The above article at Gearslutz explains inter-sample peaks quite well. Just to simplify it a little bit here is a time-domain plot of a sample. This could be part of any type of sound - bass guitar, synthesizer, but this is more of a 'designed' plot, since the chance of a similar sequence appearing is minimal (there are drastic changes in sample values).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_PTQyuRdCwSU/SY4im-wwrtI/AAAAAAAAAF0/MMgZEjxKSlk/s1600-h/isp_explain.png" target="_blank"&gt;view image&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The areas marked with 'ISP' are the actual problems. ISPs are a digital-to-analog (DAC) conversation issue. Your digital medium such as CD-A may contain tracks that does not clip at all on normal meters, but in theory there is a chance that at certain sample configurations such as the shown above, the reconstructed (via interpolation) analog audio signal, exceeds 0 db. Such peaks will be introduced as distortion in listening conditions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;"Would this type of distortion be really that audible?"&lt;/b&gt;&lt;br /&gt;It really depends on the playback system (DAC), the listener, the audio material. But it may be quite audible. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;"Well how to prevent it?"&lt;/b&gt;&lt;br /&gt;There are algorithms in some DSP limiters, that deal with the problem quite well. From my understanding of interpolation in mathematics, the only way to deal with such problems is to change values of the neighbor points (samples) forward and probably backwards in the time domain. Another important thing that must be done is to over-sample the signal so that more points are introduced in the plot.&lt;br /&gt;Here is the list of the know limiters that prevent ISP:&lt;br /&gt;&lt;br /&gt;Sonnox Limiter, Voxengo Elephant, TC Limiter, Izotope Ozone, PSP Xenon and others.&lt;br /&gt;&lt;i&gt;Note, that you must engage the oversampling mode of the limiter to enable the desired functionality.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;As you may know most of these limiters are commercial products. The only free tools you would find are the meters, such as: John Schwartz's &lt;a href="http://www.stillwellaudio.com/?page_id=33"&gt;Bitter&lt;/a&gt;, SSL's &lt;a href="http://www.solid-state-logic.com/music/X-ISM/index.asp"&gt;X-ISM&lt;/a&gt; and others. &lt;br /&gt;Still, if you are willing to buy a DSP limiter for your needs, I could not recommend a better limiter than &lt;a href="hhttp://www.voxengo.com/product/elephant/"&gt;Elephant&lt;/a&gt;. Its the cheapest, the most flexible and arguably the best sounding one.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Do the listed above tools really work for ISP?&lt;/b&gt;&lt;br /&gt;Well here is the tricky part. There are certain conditions in which the ISP prevention may not work for any of the above products. However most of these conditions are quite extreme.&lt;br /&gt;&lt;br /&gt;Recently I've conducted some tests with two very popular audio compression formats - MP3 and FLAC. The idea behind the test was a simple question: &lt;i&gt;Does audio compression over a ISP free signal, introduces back the ISPs?&lt;/i&gt; Well the answer to that question ended up slightly complicated.&lt;br /&gt;&lt;br /&gt;My first test was with a "designed" WAV file with series of samples that would positively introduce ISPs:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_PTQyuRdCwSU/SY4wYpQsMyI/AAAAAAAAAF8/t5Nj8WbZo3g/s1600-h/isptestf4fx6.png" target="_blank"&gt;view image&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I've used Elephant 2 to add 24db of gain to the signal, while oversampling to x2 and limiting at -0.1 db. Then created a MP3 file directly from Reaper with LAME encoder at 320kbps, normal quality. While decoding the resulted MP3 file into Cooledit I've noticed that there is no sample clipping or eventual inter-sample peaks. Then I repeated the same test with lower bitrate MP3 - still no problems were found, after the decoding. But then I've realized that this test is flawed for the following reasons:&lt;br /&gt;- the frequency response of the input signal wasn't really 'sufficient' for testing (it was just a waveform peaking around 2khz)&lt;br /&gt;- the average RMS level after limiting was still quite low.&lt;br /&gt;&lt;br /&gt;So I'vee decided to do a little bit more testing on the subject. This time with pink noise and some extreme settings.&lt;br /&gt;&lt;br /&gt;Without explaining more I will directly post the test results. There are two tests included (for FLAC, MP3) at different RMS levels.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;input: 20 sec pink noise (WN trought 6pole 'pink' filter, simple pseudo-random&lt;br /&gt;numbers generation, extended with XOR)&lt;br /&gt;limiter: voxengo elephant2, default settings, 4x os, roof -0.2db, test dependant&lt;br /&gt;input gain.&lt;br /&gt;decoding: outputs decodeded with reaper 2.55&lt;br /&gt;meter: SSL X-ISM&lt;br /&gt;&lt;br /&gt;### test 1 -12db rms:&lt;br /&gt;&lt;br /&gt;output wav (-12db_rms_24bit.wav): 24bit, 44100hz, no dither&lt;br /&gt;* result: no ISP &amp; no clipping&lt;br /&gt;&lt;br /&gt;output mp3 (-12db_rms_320kbps.mp3): lame 3.98, CBR 320kbps, normal q &lt;br /&gt;* result: no ISP &amp; no clipping on decode&lt;br /&gt;&lt;br /&gt;output mp3 (-12db_rms_96kbps.mp3): lame 3.98, CBR 96kbps, normal q&lt;br /&gt;* result: no ISP &amp; no clipping on decode&lt;br /&gt;&lt;br /&gt;output flac (-12db_rms_q8.flac): flac 1.2.1, 24bit, q8&lt;br /&gt;* result: no ISP &amp; no clipping on decode&lt;br /&gt;&lt;br /&gt;output flac (-12db_rms_q0.flac): flac 1.2.1, 24bit, q0&lt;br /&gt;* result: no ISP &amp; no clipping on decode&lt;br /&gt;&lt;br /&gt;### test 2 -6db rms:&lt;br /&gt;&lt;br /&gt;output wav (-6db_rms_24bit.wav): 24bit, 44100hz, no dither&lt;br /&gt;* result: no ISP &amp; no clipping&lt;br /&gt;&lt;br /&gt;output mp3 (-6db_rms_320kbps.mp3): lame 3.98, CBR 320kbps, normal q &lt;br /&gt;* result: ISP present &amp; clipping on decode&lt;br /&gt;&lt;br /&gt;output mp3 (-6db_rms_96kbps.mp3): lame 3.98, CBR 96kbps, normal q&lt;br /&gt;* result: ISP present &amp; clipping on decode&lt;br /&gt;&lt;br /&gt;output flac (-6db_rms_q8.flac): flac 1.2.1, 24bit, q8&lt;br /&gt;* result: ISP present &amp; no clipping on decode&lt;br /&gt;&lt;br /&gt;output flac (-6db_rms_q0.flac): flac 1.2.1, 24bit, q0&lt;br /&gt;* result: no ISP &amp; no clipping on decode&lt;br /&gt;&lt;br /&gt;### Tests summary:&lt;br /&gt;Lower RMS levels for both MP3 and FLAC decode with no clipping and ISP.&lt;br /&gt;Decoding of mp3 streams with higher RMS level introduce clipping,&lt;br /&gt;but when normalized, ISPs are not present. Higher RMS level flac q8 does&lt;br /&gt;not clip, but strangly ISP are present. Lower compression q0 for FLAC preforms&lt;br /&gt;very well for higher RMS values.  &lt;br /&gt;&lt;br /&gt;The tested compressors deal much better with lower RMS values. &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Test files can be downloaded from here:&lt;br /&gt;&lt;a href="http://www.zshare.net/download/552549062a7ffd5f/"&gt;mirror1&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.megaupload.com/?d=DE1RSASG"&gt;mirror2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Regarding the MP3 tests:&lt;br /&gt;Decoded MP3 audio signal would only clip if the RMS of the input is very high.&lt;br /&gt;&lt;br /&gt;There are ways to deal with this problem:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;lame -b 320 --clipdetect [file]&lt;br /&gt;...&lt;br /&gt;WARNING: clipping occurs at the current gain. Set your decoder to decrease&lt;br /&gt;         the  gain  by  at least 0.1dB or encode again using --scale [arg]&lt;br /&gt;         (For   a   suggestion  on  the  optimal  value  of  [arg]  encode&lt;br /&gt;         with  --scale 1  first)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;You can use the --scale command in LAME or tools like mp3gain  to fix this.&lt;br /&gt;But still this is sample clipping. There is a chance that no ISP will be present after normalizing the MP3 singal!&lt;br /&gt;&lt;br /&gt;Still I should point out that there are way to many parameters involved, when conduction these tests and the test results may vary a lot.&lt;br /&gt;&lt;br /&gt;I've also did a another much more extreme test with -1db RMS values (not included). Various limiters did not perform well in prevent ISP in these extreme conditions.&lt;br /&gt;Excessive levels does not do well for ISP prevention and for audio compression.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;"How to deal with compression of audio?"&lt;/b&gt;&lt;br /&gt;- always use ISP prevention over the track.&lt;br /&gt;- lower the limiter roof to -0.3, -0.5db, or even -1db&lt;br /&gt;- decode the resulted mp3 file with an audio editor and check for clipping&lt;br /&gt;- use statistics in your encoder (such as --clipdetect in LAME)&lt;br /&gt;- of course use the best encoder possible&lt;br /&gt;&lt;br /&gt;But still, as the above test proved moderate RMS levels, may not need any normalizations and lowering of the limiter roof at all.&lt;br /&gt;&lt;br /&gt;Lubomir&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-2129313736427464182?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/2129313736427464182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=2129313736427464182&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/2129313736427464182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/2129313736427464182'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2009/02/inter-sample-peaks-and-audio.html' title='Inter-sample peaks and audio compression'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-2330908221762621791</id><published>2009-01-31T07:59:00.000-08:00</published><updated>2011-07-08T15:49:26.160-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='crypto'/><category scheme='http://www.blogger.com/atom/ns#' term='message'/><title type='text'>Quantum cryptography</title><content type='html'>You can check the following lecture by Daniel Gottesman on quantum cryptography, if you are interested in the possibilities of using quantum-computers, q-bits and super-positioning in cryptography.&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;Quantum computers are yet to be designed since its very difficult to tame particles and their behavior. But already, there are some very baby-stage prototypes. If you have watched science-fiction shows like StarTrek, you may have noticed that they don't use binary computers (with ones and zeros - 01010010) they use something more advanced. Maybe quantum computers are the future. They are supposed to be times faster, than any normal computer.&lt;br /&gt;&lt;br /&gt;The lecture is 1hour, 15min long:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://video.google.com/videoplay?docid=7354798638676207127&amp;hl=en"&gt;video at video.google.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;"Daniel Gottesman - Perimeter Institute for Theoretical Physics Sensitive information can be valuable to others - from your personal credit card numbers to state and military secrets. Throughout history, sophisticated codes have been developed in an attempt to keep important data from prying eyes. But now, new technologies are emerging based on the surprising laws of quantum physics that govern the atomic scale. These powerful techniques threaten to crack some secret codes in widespread use today and, at the same time, offer new quantum cryptographic protocols which could one day profoundly alter the way we safeguard critical information."&lt;/i&gt;&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-2330908221762621791?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/2330908221762621791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=2330908221762621791&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/2330908221762621791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/2330908221762621791'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2009/01/quantum-cryptography.html' title='Quantum cryptography'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-7968677086376848264</id><published>2009-01-17T03:11:00.000-08:00</published><updated>2009-03-23T02:13:57.688-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><title type='text'>"Turn me up" vs the "LW"</title><content type='html'>The loudness war takes its victims every year. Lots of CDs are released with tracks limited to the extremes and with very high RMS levels. I've recently bought a couple of electronic music CD's. The music on both CD's is great, however the levels of one of them are pushed to the limits. I end up listening more to the less maximized CD - And I honestly enjoy it much more. The same artist from the maximized CD, was a favorite of mine in the days around 1998. His style hasn't changed much but the levels of his new music are just way too much.&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;&lt;b&gt;Some thoughts on the 'War'&lt;/b&gt;&lt;br /&gt;The 'loudness war' hasn't stopped for many years simply because, it always comes down to the end consumer. And the average consumer's needs for quality are not well defined. If you grab a 'squashed' CD and play to a group of ten people, there is a chance, that none of them will notice the levels and sound quality of the CD. The end consumer's needs are always a priority, but they want it really loud in most cases. Some people are more interested how the record sales will go, that the quality of their music.&lt;br /&gt;&lt;br /&gt;Artist with no technical background will always try to compete for the volume of their CD. But what about the engineer's involvement into the process? I think engineers are the ones, who are supposed to explain to the artist, that they are losing quality when the mix is pushed hard. The engineer should always give options to the artist: "Would you like it loud, with tonal balance or would you like it well balanced, not that loud, but without losing quality"? If the engineer, always gives these options to the client maybe the client will start to understand and care more about his own record.&lt;br /&gt;&lt;br /&gt;I'm more on the hunt to buy old records which aren't remastered, than taking my chances with modern music that is squashed ('in the face'/'wall of sound') nowadays.&lt;br /&gt;&lt;br /&gt;After all, sound quality is not a function of loudness!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;'But I like to do everything myself. What levels should I aim for?'&lt;/b&gt;&lt;br /&gt;In practice there isn't a single answer to that technical question, simply because the levels you end up with are dependent from the material you are mixing. You shouldn't compare a techno track with a chilled ambient track. The most important bit - learn to distinguish, an unnecessarily loud mix from a well balanced mix. Then try to match the levels of the well balanced mix.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;'My track sounds quiet and with less energy compared to other tracks'&lt;/b&gt;&lt;br /&gt;Do not fall into the trap. First of all, mix the levels of your track to sound normal! Have you noticed that we use the volume knob of amplifiers less these days. Technically this is not a good thing and speaks bad for the quality of the music we are listening to.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;'How do we stop the war?'&lt;/b&gt;&lt;br /&gt;As most wars, were started by 'leaders' in the history of human kind. The 'loudness war' should be stopped by the people who originally started it - those who are famous in the music industry. The 'leaders' aka the famous people/groups/bands of POP, METAL, ROCK, HOUSE, R&amp;B music and all other modern styles. Famous mastering engineers should officially declare 'I will not master this record' if the client wants it way too lound. If you get Madonna, Metallica, Benny Benassi, Beyonce and other to release their music with the levels taken into consideration maybe the whole industry will change.&lt;br /&gt;&lt;br /&gt;Soon...maybe next year? Not likely, If you ask me. It would be a very slow process to bring back the dynamics. Stop the war now or it will stop the record sales.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;'Turn me up'&lt;/b&gt;&lt;br /&gt;If you are an artist, a producer, engineer or just a person who appreciates quality music you can support 'Turn me up'.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.turnmeup.org" target="_blank"&gt;http://www.turnmeup.org&lt;/a&gt;&lt;br /&gt;&lt;img src="http://www.turnmeup.org/images/Turn_Me_Up_Logo_Small.gif"/&gt;&lt;br /&gt;&lt;br /&gt;Famous engineer/producer Charles Dye is behind 'Turn me up' and the idea of the project is simple. First of all its a non commercial project. If you are an artist, who is soon about to release a CD to the market, you can register for a 'Turn me up' certificate and put their logo on your CD. By doing so you can go easy on the levels and not compete with other loud mixes. If you are a mixing/mastering engineer you can offer the ideas of 'Turn me up' to your customers and not use much limiting when working on the tracks.&lt;br /&gt;&lt;br /&gt;You can visit their website and read some of the articles on the 'Loudness war' if you are interested.&lt;br /&gt;&lt;br /&gt;Lubomir&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-7968677086376848264?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/7968677086376848264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=7968677086376848264&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/7968677086376848264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/7968677086376848264'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2009/01/loudness-war-and-turn-me-up-campain.html' title='&quot;Turn me up&quot; vs the &quot;LW&quot;'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-2558861822414804438</id><published>2009-01-11T05:16:00.000-08:00</published><updated>2009-08-10T19:01:39.792-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='article'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Web browsers in the beginning of  2009</title><content type='html'>&lt;b&gt;The truth about Internet Explorer 7&lt;/b&gt; &lt;br /&gt;As a regular Windows XP user, I've been testing many web projects that I'm working on with IE6 (SP2). Since IE is a browser that many people are supposed to use, I regulary check if the project has compatibility with it.&lt;br /&gt;&lt;hcon open="[+]Show" close="[-]Hide"&gt;However recently I noticed that more and more new stuff isn't working quite well (or slightly out of order) with IE6. For example a button on a major site misplaced, flash player loading issues etc. So I've decided that I should upgrade to IE7. The download was 15MB. Installs ok. I did a test run. First impressions: very nice look on the buttons, text was blured by default with 'ClearType'. Some new cool settings...&lt;br /&gt;But as soon as I started testing to see if those issues mentioned above are fixed not much happened. Everything was exactly the same. Lots of JavaScript in the console and blog pages which look exactly the same in Opera, Chrome &amp;amp; FF in IE7 had strange misplacement effects appearing all over the place . So what exactly is the IE6 to IE7 update? I have to say its similar to the update XP &gt; Vista which I never intend to make for various reasons (But I've managed to configure Vista to run like XP on a laptop once). IE7 appears to be a fancy looking IE6. More and more developers are starting to completely ignore IE as a target browser. Well thats no good for the IE team because they would have to change a lot.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The 'innerHTML' issue in IE&lt;/b&gt;&lt;br /&gt;The &lt;a href="http://www.w3schools.com/htmldom%20prop_anchor_innerhtml.asp" target="_blank"&gt;innerHTML&lt;/a&gt; property originated from the developers of IE at Microsoft. Its an excellent solution and it can be used instead of writing complex DOM code. 'innerHTML' treats all the nodes inside an object as a whole. If you say for example that you have a nested html tag structure... With DOM you can return the parent tag as an object by id or tagname and then via the innerHTML property you can assign the contents of this tag to a string variable. This makes things extremely easy now since you can modify this string (ex: add more tags) and then assign the modified string back to the html tag via the innerHTML property which basically will result a new structure. Sounds great! I often compare innerHTML to the PHP &lt;a href="http://devzone.zend.com/article/688-SimpleXML" target="_blank"&gt;simpleXML &lt;/a&gt;extention which is also a great solution for parsing data without large sections of DOM code.&lt;br /&gt;&lt;br /&gt;So...MS invented this awesome property but does it work under Internet Explorer? The answer is no ). IE6 returns the infamous "Unknown runtime error", IE7 does the same. Are there any workaround? Yes they are some, but this is an actual bug (&lt;a href="http://webbugtrack.blogspot.com/2007/10/bug-124-setting-innerhtml-problem-no1.html" target="_blank"&gt;described here&lt;/a&gt;) and some of the workarounds aren't exactly working. 'innerHTML' isn't an 'official' property but its quite fast and awesome. To sum things up MS invented something very good then their own browser has problems with it, while all other browsers get along perfectly with it.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The chrome fox in the opera&lt;/b&gt;&lt;br /&gt;To test websites, I often run them on different browsers (Windows), so I have some ideas about how these browsers perform and what are their pluses and minuses. These are the browsers I'm testing with: Opera, IE, Firefox, Chrome. My desktop PC isn't the top of the benchmark table, but in a way that's a good thing (you can get better idea of the performance of certain software on lowend machines). It seems strange to me that some people at forums say: &lt;i&gt;I run Vista on my super new computer and the OS only takes 1GB of my RAM&lt;/i&gt;. Well...1GB for what exactly? Your OS should take around 200MB of RAM or so. Now the same applies to how browsers should work. A browser should not be a 'CPU hog' and should not take all your RAM away. There should be absolutely no reason for doing so unless its rendering some heavy graphics in realtime or if its compiling something. Also there should be options to disable the functionality which is creating this need for extra resources.&lt;br /&gt;&lt;br /&gt;I have to say that I'm a recent Opera to Firefox convert. I'm still a big Opera fan and I follow its development closely. Opera is the fastest and the most light browser out there but I had a lot of problems loading websites with some footprint AJAX. So I've switched to FF as my default (Most dev writes for FF as their default target btw). But then...I had the issue of huge memory leak with FF. So I had to fix this with a 'hidden' setting (in a way its not that easy for some users to find this setting without googling on the subject). I think the same solution to the problem is explained &lt;a href="http://internetducttape.com/2006/12/02/how-to-fix-the-firefox-memory-leak-firefox-hack/" target="_blank"&gt;here&lt;/a&gt;. This issue almost send me back to Opera.&lt;br /&gt;&lt;br /&gt;I also monitor the development Google's new Chrome browser. They have a great technology concept and a lot of unique features. So far, I'm seeing it as a faster and lighter alternative to FF. The 'import' settings from different browsers is cool too. And everything seems to open properly. But its quite stripped down and there is something very strange! If I open Youtube for example and then my mail account on another window the cpu usage goes up to 40%!?. There must be something really expensive and hidden going on (probably some sort of caching which is absolutely unnecessary). The options menu of Chrome are very simple so there is no function to disable this behavior. I have great respect for Google and I believe they will eventually add a function to disable extras.&lt;br /&gt;&lt;br /&gt;So to sum this up: IE needs lots of work (DOM2 compitabuility, lots of bugs), Opera definitely still needs some work to support the new technologies, FF uses way too much RAM by default, Chrome needs more settings so that the user can turn of the so called 'inovative' stuff.&lt;br /&gt;We end up with a slightly broken set of tools...I'm currently using a tweaked Firefox. But don't get me wrong all of the listed browsers can do their job but IMHO its just silly when you visit a site with IE and the site dev hasn't added support for it. Or when you use fresh installed FF and your RAM usage meter shows 400MB ram if you open a couple of video sites.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The future is bright&lt;/b&gt;&lt;br /&gt;I think that all browser author companies's goal should be:&lt;span style="color: rgb(00, 00, 255);"&gt; &lt;/span&gt;&lt;i style="color: rgb(0, 0, FF);"&gt;To show contents of the Web in exactly the same way, while sticking to the same standards and not to force website developers to write extra code for browser compatibility&lt;/i&gt;. And I'm seeing more and more of that which is a very good thing. The frustration of website developers (including myself)  may be eventually reduced to minimum. We shall see.&lt;br /&gt;&lt;br /&gt;Lubomir&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-2558861822414804438?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/2558861822414804438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=2558861822414804438&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/2558861822414804438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/2558861822414804438'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2009/01/short-grumble-about-ie-and-browsers-in.html' title='Web browsers in the beginning of  2009'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-3632501956963759779</id><published>2009-01-10T05:05:00.000-08:00</published><updated>2011-07-13T19:59:06.030-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='crypto'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>SJEA - Simple Java Encryption Algorithm</title><content type='html'>Not long ago (around 2007), I wrote this very simple encryption algorithm to help out a friend  with the master's degree in computing. After a while I realized this could turn out to be a great stand alone project.&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;It was collecting dust for quite some time (one year or so) and I've decided that I should work more on this and complete it as a accessible public package. So recently I've managed to tidy the source, make some examples, write the documentation and now its finished - SJEA (Simple Java Encryption Algorithm). I have to admit the name is a bit silly for the simple reason that the 'J' can be replaced very easily (with source porting) to 'C' as a 'Simple C Encryption Algorithm' SCEA or anything else to be honest.&lt;br /&gt;&lt;br /&gt;Going back to cryptography studies was pure fun. Back in the day around y2000 I was reading a lot on the subject and this resulted a lot of drafts. I guess this project will be the first I release under GPL. Now back on the topic.&lt;br /&gt;&lt;b&gt;SJEA v1.0&lt;/b&gt;SJEA started when I was looking for an alternative solution (a completely custom algorithm) to all the pre-made libraries in JAVA, C etc. Having something for granted is cool, but making your own tools may give you some great satisfaction. The idea of the project was that the result are good (not that easy to hack/decrypt with conventional tools) but the source (roots of the algorithm) easy to understand by people who are new to this type of study. So I've decided to have a go with &lt;a href="http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation" target="_blank"&gt;Block&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/XOR_cipher" target="_blank"&gt;XOR&lt;/a&gt; ciphers. I was dealing with such for quite a while, so it wasn't a problem to implement them into some sort of a starting template.&lt;br /&gt;&lt;br /&gt;The XOR method (the method behind all the calculation) is quite simple to understand:&lt;br /&gt;We have an input byte that we sum with a key (modifier) and then we have a result. But if we subtract the key from the end result we will get the original input byte.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;where A-input, B-mod, C-sum for a single byte entry&lt;br /&gt;A+B=C //encryption&lt;br /&gt;C-B=A //decryption&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;In SJEA the &lt;a href="http://upload.wikimedia.org/wikipedia/commons/c/c4/Ecb_encryption.png" target="_blank"&gt;'ECB' (Electronic codebook) window&lt;/a&gt; method can be found since we use a user password as our key. The password is used as a first layer of encryption. A vector byte-array is also present as a second layer. This complicates things a little (not that much) since even if you know the key modifier layer you wouldn't know the value of the vector.&lt;br /&gt;&lt;br /&gt;Here is the 2-layer encryption scheme:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(bytes)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;input:  AAAAAAAAAAAAAAAAAAAAA     + (sum)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vector:  01234567890ABCDEF0123     + (sum)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;password:  HELLOHELLOHELLOHELLOH     =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;result:  XXXXXXXXXXXXXXXXXXXXX&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The project can be aimed at the following audiences:&lt;br /&gt;- students of computing&lt;br /&gt;- future algorithm programmers&lt;br /&gt;- people who a learning into cryptography&lt;br /&gt;&lt;br /&gt;It may eventually grow into a lot bigger project with many different encryption examples.&lt;br /&gt;&lt;br /&gt;And here is a brand new website hosted by sourceforge.net:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sjea.sourceforge.net/" target="_blank"&gt;&lt;img style="width: 300px;" src="http://lh4.ggpht.com/_PTQyuRdCwSU/SWnoW0H70fI/AAAAAAAAAEg/zjsMDAMeyqM/sjeaweb.png" /&gt;&lt;br /&gt;http://sjea.sourceforge.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;or the googlecode page:&lt;br /&gt;&lt;a href="http://code.google.com/p/sjea/" target="_blank"&gt;http://code.google.com/p/sjea/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Lubomir&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-3632501956963759779?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/3632501956963759779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=3632501956963759779&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/3632501956963759779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/3632501956963759779'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2009/01/sjea-simple-java-encryption-algorithm.html' title='SJEA - Simple Java Encryption Algorithm'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_PTQyuRdCwSU/SWnoW0H70fI/AAAAAAAAAEg/zjsMDAMeyqM/s72-c/sjeaweb.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-8061379787472874073</id><published>2009-01-07T20:57:00.000-08:00</published><updated>2009-07-30T10:23:21.952-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>MP3 player in blog - done easy</title><content type='html'>I've extended the '&lt;a href="http://neolit123.blogspot.com/2009/01/showhide-information-in-blog-posts.html"&gt;hcon&lt;/a&gt;' JS lib to allow quick embedding of MP3 files.&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;The MP3 embed code is also stored here:&lt;br /&gt;&lt;code&gt;&amp;lt;script src='http://sites.google.com/site/neolit123/Home/hcon' type='text/javascript'/&amp;gt;&lt;/code&gt;&lt;br /&gt;The above line should be embedded in you blog template.&lt;br /&gt;&lt;br /&gt;How does it work:&lt;br /&gt;&lt;code&gt;&amp;lt;mp3 file=&amp;quot;http://locationtomyfile.com/file.mp3&amp;quot; title=&amp;quot;Song title goes in here&amp;quot;&amp;gt;&amp;lt;/mp3&amp;gt;&lt;/code&gt;&lt;br /&gt;Demo:&lt;br /&gt;&lt;mp3 file="http://iacmusic.com/uploads1/Little_Red_King_-_Gravel_Road_by_Little_Red_King-160.mp3" title="Little Red King - Gravel road"&gt;&lt;/mp3&gt;&lt;br /&gt;&lt;br /&gt;The code is using 'innerHTML' once again so it may not work under IE.&lt;br /&gt;If you wish to modify the JS (mp3 player URL, style etc) download it from &lt;a href="http://sites.google.com/site/neolit123/Home/hcon"&gt;here&lt;/a&gt;(rename to .js). More info about the player: &lt;a href="http://www.1pixelout.net/code/audio-player-wordpress-plugin/"&gt;http://www.1pixelout.net/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Enjoy&lt;br /&gt;Lubomir&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-8061379787472874073?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/8061379787472874073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=8061379787472874073&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/8061379787472874073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/8061379787472874073'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2009/01/mp3-player-in-blog-posts-done-easy.html' title='MP3 player in blog - done easy'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-6658519169133685700</id><published>2009-01-06T19:14:00.000-08:00</published><updated>2009-07-30T10:35:16.352-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Show/Hide information in blog posts</title><content type='html'>This is probably the easiest way I've found so far to show/hide contents in posts. There are other solutions floating around but I think this one is the most user-friendly.&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;To enable the show/hide functionality open you blog-template (customize-layout-edit html) scroll down to the bottom and copy/paste the following code just above the end [/body] tag:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;script src='http://sites.google.com/site/neolit123/Home/hcon' type='text/javascript'/&amp;gt;&lt;/code&gt;&lt;br /&gt;Save the template.&lt;br /&gt;This enables the use of a simple [hcon] tag to hide/show contents. Here is an example:&lt;br /&gt;&lt;code&gt;&amp;lt;hcon open="[+]Open..." close="[-]Close..."&amp;gt;Loooong text&amp;lt;hcon&amp;gt;More long text&amp;lt;/hcon&amp;gt;&amp;lt;/hcon&amp;gt;&lt;/code&gt;&lt;br /&gt;The 'open' and 'close' attributes are used to specify text names for the buttons. If no values are given [+]More... and [-]Less will be used by default. Also you can see that nesting is possible - as complex trees of [hcon] tags.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Here is a demo:&lt;/b&gt;&lt;br /&gt;&lt;hcon open="[+]Open..." close="[-]Close..."&gt;&lt;span style="font-family: courier new; "&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec lacus. Donec ultricies sem id nunc. Integer dignissim aliquam nisi. Phasellus varius. Suspendisse sit amet diam id libero pulvinar commodo. Vivamus a ante. Aenean non nisl. Morbi a turpis id sem gravida accumsan. Vestibulum sollicitudin, ligula sit amet consequat lacinia, neque ante condimentum neque, mollis bibendum quam lacus vel ipsum. Duis ac lectus a ante convallis commodo.&lt;/span&gt;&lt;div style="margin-left: 30px;"&gt;&lt;hcon&gt;&lt;span style="font-family: courier new;"&gt;&lt;i&gt;Praesent ac ligula. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Quisque lacus. Vivamus purus. Phasellus quam lectus, volutpat nec, tempor quis, facilisis nec, ligula. Nam fermentum eros eu enim. Maecenas est magna, bibendum eget, auctor vel, ultricies et, ligula. Maecenas id arcu et magna congue posuere. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse potenti. Phasellus interdum. Ut nisi augue, fermentum vel, tempor sed, accumsan vitae, augue. Duis eget tellus. Etiam vulputate aliquet massa. Suspendisse potenti. Curabitur interdum porttitor velit. Ut et arcu et est dapibus porta.&lt;/i&gt;&lt;/span&gt;&lt;/hcon&gt;&lt;/div&gt;&lt;/hcon&gt;&lt;br /&gt;Some notes:&lt;br /&gt;- You can download and modify the &lt;a href="http://sites.google.com/site/neolit123/Home/hcon"&gt;hcon file&lt;/a&gt; (rename to .js). Also upload it to a faster server.&lt;br /&gt;- Its working with the latest FF, Opera. With IE there seems to be a problem with innerHtml(the bug is described &lt;a href="http://webbugtrack.blogspot.com/2007/10/bug-124-setting-innerhtml-problem-no1.html"&gt;here&lt;/a&gt;).&lt;br /&gt;- Under the K-Meleon browser I've noticed that the "blockquote", "div", "h" tags break the [hcon]. Also the the nesting is not working correctly.&lt;br /&gt;- It also supports the [mp3] tag now: &lt;a href="http://neolit123.blogspot.com/2009/01/mp3-player-in-blog-posts-done-easy.html"&gt;Link&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lubomir&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-6658519169133685700?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/6658519169133685700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=6658519169133685700&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/6658519169133685700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/6658519169133685700'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2009/01/showhide-information-in-blog-posts.html' title='Show/Hide information in blog posts'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-6648141197523696598</id><published>2009-01-04T12:03:00.000-08:00</published><updated>2011-07-10T16:49:50.594-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jesusonic'/><category scheme='http://www.blogger.com/atom/ns#' term='reaper'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='dsp'/><title type='text'>JesuSonic plugins for Reaper</title><content type='html'>&lt;a href="http://jesusonic.com/" target="_blank"&gt;JesuSonic&lt;/a&gt; from &lt;a href="http://cockos.com/" target="_blank"&gt;Cockos&lt;/a&gt; proved to be a very efficient and flexible platform for designing DSP effects. The JS engine is bundled with &lt;a href="http://reaper.fm/" target="_blank"&gt;Reaper&lt;/a&gt; (aka the ultimate secret weapon DAW).&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;I have created a small pack of JS fx that I regulary update (or used to) at the &lt;a href="http://forum.cockos.com/showthread.php?t=27764" target="_blank "&gt;Cockos forum&lt;/a&gt;. The pack includes various filter implementations such as the the classic Moog, Butterworth, Chebyshev Type I and various fx that I have either ported/modified from other programming languages or designed from scratch.&lt;br /&gt;&lt;br /&gt;You can always check for the latest version of the pack at this page:&lt;br /&gt;&lt;a href="http://forum.cockos.com/showthread.php?t=27764" target="_blank"&gt;Link&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Lubomir&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-6648141197523696598?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/6648141197523696598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=6648141197523696598&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/6648141197523696598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/6648141197523696598'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2009/01/jesusonic-plugin-pack-reaper.html' title='JesuSonic plugins for Reaper'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-6307022979376211137</id><published>2009-01-04T11:48:00.000-08:00</published><updated>2009-06-19T01:48:35.250-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reaper'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Reaper beatmatching tutorial</title><content type='html'>This is a small tutorial in PDF format about beatmatching and mixing tracks in &lt;a href="http://reaper.fm" target="_blank"&gt;Reaper&lt;/a&gt;.&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;The approach is simple and the results are quite good. I've tried mixing tracks offline with programs like Cooledit, Cubase, Ableton but this method is the fastest so far. You can have a draft CD mix up and running in about 30 minutes. The tutorial also includes some ideas about mixing with EQ &amp; FX envelopes.&lt;br /&gt;&lt;br /&gt;&lt;img width='600' src='http://img60.imageshack.us/img60/343/reapertutorialme2.jpg'/&gt;&lt;br /&gt;&lt;br /&gt;View PDF:&lt;br /&gt;&lt;a href="http://sites.google.com/site/neolit123/Home/Reaper_Tutorial.pdf"&gt;Reaper_Tutorial.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Download 22mb (Example project files and mix are included):&lt;br /&gt;&lt;a href="http://www.megaupload.com/?d=TKDAE0IQ" target="_blank"&gt;Megaupload Link&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.sendspace.com/file/uwpzah" target="_blank"&gt;Sendspace Link&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There might be some typos, since I've wrote and compiled the tutorial quite fast.&lt;br /&gt;&lt;br /&gt;Lubomir&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-6307022979376211137?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/6307022979376211137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=6307022979376211137&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/6307022979376211137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/6307022979376211137'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2009/01/reaper-beatmatching-tutorial.html' title='Reaper beatmatching tutorial'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-2302527529719817183</id><published>2009-01-04T11:36:00.000-08:00</published><updated>2010-05-04T08:12:44.475-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Music at Soundcloud.com</title><content type='html'>here is my soundclound page with various "attempts" of making music:&lt;br /&gt;&lt;a href='http://soundcloud.com/liteon'&gt;http://soundcloud.com/liteon&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;mostly experimental stuff.&lt;br /&gt;i listen to a lot of jazz and on occasion some classical music, hiphop and electronic but not too much..&lt;br /&gt;never got into rock music (guitars) i'm afraid, but i like a lot of tracks by bands like pantera and ac/dc or anything that sounds good basically.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;trig.com&lt;/b&gt; is occasionally down but you can check my page there too if its loading ok (has more tracks): &lt;a href='http://trig.com/liteon'&gt;http://trig.com/liteon&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;lubomir&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-2302527529719817183?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/2302527529719817183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=2302527529719817183&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/2302527529719817183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/2302527529719817183'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2009/01/here-you-can-find-some-of-my-attempts.html' title='Music at Soundcloud.com'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348256908341375413.post-2130646473186968423</id><published>2009-01-04T11:21:00.000-08:00</published><updated>2011-10-24T21:33:09.768-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='message'/><title type='text'>Started the blog today</title><content type='html'>Hello,&lt;br /&gt;My name is Lubomir I. Ivanov (Любомир И. Иванов). I'm from Varna, Bulgaria (a city near the Black sea).&lt;br /&gt;&lt;hcon&gt;&lt;br /&gt;I mostly work on designing software applications for the Web and for CD/DVD's. However I'm interested in a lot of different areas. I'm a graduate of the Technical University of Varna and I keep relations with some people from the university, when discussions on bizarre technical subjects are required (perhaps i should add that i've worked there as asst. prof. for a while too).&lt;br /&gt;&lt;br /&gt;This blog is about some of my researches into Electronics, Mathematics, Physics, DSP, also about RIA: Flash/Flex and any "ventures" into sound and graphic design.&lt;br /&gt;&lt;br /&gt;I'll be posting any facts, papers and articles in here.&lt;br /&gt;&lt;br /&gt;Hope you find some of the information useful and/or interesting.&lt;br /&gt;&lt;br /&gt;Regards&lt;br /&gt;Lubomir&lt;br /&gt;&lt;/hcon&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348256908341375413-2130646473186968423?l=neolit123.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neolit123.blogspot.com/feeds/2130646473186968423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348256908341375413&amp;postID=2130646473186968423&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/2130646473186968423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348256908341375413/posts/default/2130646473186968423'/><link rel='alternate' type='text/html' href='http://neolit123.blogspot.com/2009/01/started-blog-today.html' title='Started the blog today'/><author><name>Lubomir</name><uri>http://www.blogger.com/profile/17514066819925841643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_PTQyuRdCwSU/SlV9z8pGhmI/AAAAAAAAAHM/0ThHglV003Q/S220/madagascar22.jpg'/></author><thr:total>0</thr:total></entry></feed>
