<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DkANQH45fSp7ImA9WhRUE0k.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722</id><updated>2012-01-23T20:53:11.025+02:00</updated><title>bioeng-student</title><subtitle type="html">I try to collect hot stuff relevant to biomedical engineering here</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://bioeng-student.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>57</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Bioeng-student" /><feedburner:info uri="bioeng-student" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CE4GQX48fip7ImA9WhRWGUs.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-4597905235058238461</id><published>2012-01-07T19:20:00.011+02:00</published><updated>2012-01-07T21:02:00.076+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-07T21:02:00.076+02:00</app:edited><title>Compiling and Installing WFDB version 10.5 on Debian Squeeze</title><content type="html">&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Today I tried to compile and install the WFDB tools from the &lt;a href="http://www.physionet.org/physiotools"&gt;PhysioToolkit&lt;/a&gt; (&lt;a href="http://www.physionet.org/"&gt;PhysioNet&lt;/a&gt;) on my &lt;a href="http://www.debian.org/"&gt;Debian&lt;/a&gt; &lt;a href="http://www.debian.org/releases/squeeze/"&gt;Squeeze&lt;/a&gt; system. I am documenting this experience here!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Download the source package from &lt;a href="http://www.physionet.org/physiotools/wfdb.tar.gz"&gt;http://www.physionet.org/physiotools/wfdb.tar.gz&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Install the needed Debian packages first. I needed the following Debian packages&lt;/li&gt;&lt;ul&gt;&lt;li&gt;libcurl4-gnutls-dev (for NETFILES feature support in WFDB, which allows you to work on portions of the PhysioBank data records online, without having to download the entire record on your computer)&lt;/li&gt;&lt;li&gt;libexpat1-dev (for XML parsing, some files did not compile successfully while installig the WFDB library because this package was missing)&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Follow the steps under "&lt;em&gt;if you download the sources (recommended):&lt;/em&gt;" in the &lt;a href="http://www.physionet.org/physiotools/wfdb-linux-quick-start.shtml"&gt;official quick start guide&lt;/a&gt;. If you are on a 64-bit system (like me!) then do NOT install the WAVE application now&lt;/li&gt;&lt;li&gt;If you installed the WFDB library in a non-standard path (as I did), then probably you will need to adjust the $PATH and $LD_LIBRARY_PATH environment variables. I added the following snippet to my ~/.profile, (this will be automatically executed every time you login with your account -- run 'DOT SPACE ~/.profile' to execute the profile script immediately!) -- I also needed to manually copy the 'man' folder from the "(path to WFDB installation)/share/man" to '/usr/share/man' for manual enteries to be installed into the system!   &lt;/li&gt;&lt;div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;# add WFDB binaries to PATH&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;PATH="&lt;i&gt;(path to WFDB installation)&lt;/i&gt;/bin:$PATH"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;# add WFDB libraries to LD_LIBRARY_PATH&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;LD_LIBRARY_PATH="&lt;i&gt;(path to WFDB installation)&lt;/i&gt;/lib64"&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;li&gt;Now you are ready to install the optional WAVE application in case you are running a 64-bit system. For this, I followed the instructions in &lt;a href="http://wuzhaojun.wordpress.com/2010/09/18/install-physiotools-on-64-bit-ubuntu/"&gt;this post&lt;/a&gt;. Finally, you will need to further modify your ~/.profile to append the following&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;# add WFDB-32 binaries to PATH&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;PATH="&lt;i&gt;(path to WFDB-32 installation)&lt;/i&gt;/bin:$PATH"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;# add WFDB-32 libraries to LD_LIBRARY_PATH&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;LD_LIBRARY_PATH="$&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; "&gt;LD_LIBRARY_PATH:&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; "&gt;&lt;i&gt;(path to WFDB-32 installation)&lt;/i&gt;/lib"&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-4597905235058238461?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/k-KllfWsF-Id7PMnlOMh9YAZd2c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/k-KllfWsF-Id7PMnlOMh9YAZd2c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/k-KllfWsF-Id7PMnlOMh9YAZd2c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/k-KllfWsF-Id7PMnlOMh9YAZd2c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/FsOkr_9wJ8s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/4597905235058238461/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=4597905235058238461" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/4597905235058238461?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/4597905235058238461?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/FsOkr_9wJ8s/compiling-and-installing-wfdb-version.html" title="Compiling and Installing WFDB version 10.5 on Debian Squeeze" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2012/01/compiling-and-installing-wfdb-version.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EAQng_fSp7ImA9WhdUF0s.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-8355333545778933930</id><published>2011-10-04T22:26:00.003+02:00</published><updated>2011-10-04T22:54:03.645+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-04T22:54:03.645+02:00</app:edited><title>Research by Dr. Moustafa Youssef</title><content type="html">Today I had the opportunity to attend a session given by &lt;a href="http://www.cs.umd.edu/~moustafa/"&gt;Dr. Moustafa Youssef&lt;/a&gt; on his research. The key point in his talk was about detecting the presence of humans inside a wireless network area by detecting variations in the wireless signal strength (Received Signal Strength Indicator, RSSI) at the receiver side. Dr. Moustafa introduced his &lt;a href="http://dl.acm.org/citation.cfm?id=1067170.1067193"&gt;Horus system&lt;/a&gt; based on this concept! Imagine the scenario in which your home wireless network acts as an intrusion detection system while you are sleeping at night. Dr. Moustafa and his group developed an all-software solution that provides this functionality by utilizing the hardware of the deployed wireless network and your laptop! If you are really interested, you can watch his Google Tech Talk &lt;a href="http://www.youtube.com/watch?v=HOD0O0mJ_Iw"&gt;here&lt;/a&gt;. The same concept is eventually being applied in hospital settings as well as discussed in &lt;a href="http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5670365"&gt;this paper&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-8355333545778933930?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/v4QEm4N9AWdiS9kOfvh-nwBAJ4E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/v4QEm4N9AWdiS9kOfvh-nwBAJ4E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/v4QEm4N9AWdiS9kOfvh-nwBAJ4E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/v4QEm4N9AWdiS9kOfvh-nwBAJ4E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/5NKhDuAth5U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/8355333545778933930/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=8355333545778933930" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/8355333545778933930?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/8355333545778933930?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/5NKhDuAth5U/research-by-dr-moustafa-youssef.html" title="Research by Dr. Moustafa Youssef" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2011/10/research-by-dr-moustafa-youssef.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8FRHw5eip7ImA9WhdUFkk.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-875254473647619463</id><published>2011-10-03T13:41:00.009+02:00</published><updated>2011-10-03T15:00:15.222+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-03T15:00:15.222+02:00</app:edited><title>The Adaptive Noise Canceller as a High-Pass Filter</title><content type="html">&lt;div&gt;In 1975 Widrow et. al. introduced a &lt;a href="http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=01451965"&gt;scientific paper&lt;/a&gt; about Adaptive Noise Cancellers (ANCs). Since then, ANCs have been used extensively in different applications. This article is about the use of an ANC as a simple, yet powerful, high-pass filter.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-7eZKQMsEkpQ/TomrjtWDw3I/AAAAAAAAACg/U6VcGRsJ5Xg/s1600/LMSHP.png"&gt;&lt;img style="margin: 0px auto 10px; width: 400px; height: 250px; text-align: center; display: block; cursor: pointer;" id="BLOGGER_PHOTO_ID_5659243036723626866" border="0" alt="" src="http://1.bp.blogspot.com/-7eZKQMsEkpQ/TomrjtWDw3I/AAAAAAAAACg/U6VcGRsJ5Xg/s400/LMSHP.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As shown in the figure, a reference DC signal &lt;strong&gt;x(n)&lt;/strong&gt;=1 is fed to a single-coefficient ANC. The noise estimate &lt;strong&gt;y(n)&lt;/strong&gt; is the multiplication of the DC signal &lt;strong&gt;x(n)&lt;/strong&gt; times the single coefficient, or weight, &lt;strong&gt;w(n)&lt;/strong&gt;. The noise estimate is then subtracted from the input signal &lt;strong&gt;d(n)&lt;/strong&gt; to obtain a noise-free sample &lt;strong&gt;e(n)&lt;/strong&gt; which can be considered the output of the ANC. &lt;strong&gt;e(n)&lt;/strong&gt; is also fed back into the Least Mean Squares (LMS) Algorithm block, which calculates a new value for the weight &lt;strong&gt;w(n+1)&lt;/strong&gt; based on the correlation between the reference signal &lt;strong&gt;x(n)&lt;/strong&gt; and the error signal &lt;strong&gt;e(n)&lt;/strong&gt; using the equation&lt;br /&gt;&lt;blockquote&gt;w(n+1) = w(n) + mu * e(n) * x(n)&lt;/blockquote&gt; where &lt;strong&gt;mu&lt;/strong&gt; is the adaptation step, usually a very small factor in the order of 0.01.&lt;br /&gt;&lt;br /&gt;Widrow et. al. proved in their 1975 paper that this structure is equivalent to a high-pass filter with a corner frequency determined by &lt;strong&gt;mu&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;The ANC is indeed a very simple, yet powerful, structure that has many applications in different disciplines. Recently, I've used the ANC as proposed by Widrow et. al. with some modifications for adaptive cancellation of power-line interference signals from the electrocardiogram (ECG), as shown in &lt;a href="http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&amp;amp;arnumber=5716090"&gt;this paper&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-875254473647619463?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/i1Is1DuWAms8710WjnA3AZEakxM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/i1Is1DuWAms8710WjnA3AZEakxM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/i1Is1DuWAms8710WjnA3AZEakxM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/i1Is1DuWAms8710WjnA3AZEakxM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/T0HqlSV86Ac" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/875254473647619463/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=875254473647619463" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/875254473647619463?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/875254473647619463?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/T0HqlSV86Ac/adaptive-noise-canceller-as-high-pass.html" title="The Adaptive Noise Canceller as a High-Pass Filter" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-7eZKQMsEkpQ/TomrjtWDw3I/AAAAAAAAACg/U6VcGRsJ5Xg/s72-c/LMSHP.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2011/10/adaptive-noise-canceller-as-high-pass.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMFQHg5fip7ImA9WhRWGEg.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-4906198815911738750</id><published>2011-06-12T14:02:00.006+02:00</published><updated>2012-01-06T14:20:11.626+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-06T14:20:11.626+02:00</app:edited><title>Physiological Signals Datasets</title><content type="html">In this post I will be gathering some links about the physiological signals datasets that are publicly available on the web. This post will be updated from time to time!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:180%;"&gt;Physiobank&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;One of the largest platforms that makes it easy to contribute physiological signals is the &lt;a href="http://physionet.incor.usp.br/physiobank/"&gt;PhysioBank&lt;/a&gt; platform. Following are some of the interesting datasets available under PhysioBank. The easiest way to access these datasets is through the &lt;a href="http://physionet.incor.usp.br/cgi-bin/ATM"&gt;PhysioBank ATM web interface&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;ANSI/AAMI EC13 Test Waveforms&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;The ANSI/AAMI EC13 standard for electrocardiographic monitors specifies &lt;a href="http://physionet.incor.usp.br/physiobank/database/aami-ec13/"&gt;those test signals&lt;/a&gt; for evaluating the performance of the electrocardiographic monitors.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;Multi-Parameter Databases&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://physionet.incor.usp.br/physiobank/database/#multi"&gt;Those databases&lt;/a&gt; include different physiological signals typical of a patient monitoring device, such as ECG, Respiration, Continuous Blood Pressure, Plethysmogram, ... etc.&lt;br /&gt;&lt;br /&gt;An important subset of those databases are the &lt;span style="font-weight: bold;"&gt;Polysmnographic&lt;/span&gt; databases useful for sleep staging. Physionank contains the &lt;a href="http://physionet.incor.usp.br/physiobank/database/slpdb/"&gt;MIT-BIH Polysomnographic Database&lt;/a&gt;, the &lt;a href="http://physionet.incor.usp.br/physiobank/database/sleep-edf/"&gt;Sleep-EDF Database&lt;/a&gt;, the &lt;a href="http://physionet.incor.usp.br/physiobank/database/shhpsgdb/"&gt;Sleep Heart Health Study Polysomnography Database&lt;/a&gt;, and &lt;a href="http://physionet.incor.usp.br/physiobank/database/ucddb/"&gt;St. Vincent's University Hospital / University College Dublin Sleep Apnea Database&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;MIT-BIH Arrhythmia Database&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;The most famous &lt;a href="http://physionet.incor.usp.br/physiobank/database/mitdb/"&gt;ECG arrhythmia database&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-4906198815911738750?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BC-5vgnHGazqjLqLc4VywhXOM3Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BC-5vgnHGazqjLqLc4VywhXOM3Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/BC-5vgnHGazqjLqLc4VywhXOM3Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BC-5vgnHGazqjLqLc4VywhXOM3Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/vsdS8Rapj8w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/4906198815911738750/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=4906198815911738750" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/4906198815911738750?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/4906198815911738750?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/vsdS8Rapj8w/physiological-signals-datasets.html" title="Physiological Signals Datasets" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2011/06/physiological-signals-datasets.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QHRXkzeip7ImA9WhZWEUw.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-5172115311686891336</id><published>2011-05-11T14:57:00.003+02:00</published><updated>2011-05-11T15:08:54.782+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-11T15:08:54.782+02:00</app:edited><title>Worker Threads!</title><content type="html">Many times you need to call a function/method that does some really heavy work. However, you don't want this function call to block your main application. You want to maintain a responsive GUI, for example!&lt;br /&gt;&lt;br /&gt;This famous problem has a solution using multi-threading. From my background in the C++ Qt framework, I know the basic principles involved. And there is a very famous Qt example that explains how this "Worker Thread" solution can be implemented: &lt;a href="http://doc.qt.nokia.com/latest/threads-mandelbrot.html"&gt;The Madelbrot Example&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Today I wanted to solve the same problem but in the C# (.Net Framework) context. Fortunately, the MSDN had a similar example that illustrates the solution to this problem, making use of the &lt;a href="http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&amp;l=EN-US&amp;k=k%28SYSTEM.COMPONENTMODEL.BACKGROUNDWORKER%29&amp;rd=true"&gt;BackgroundWorker &lt;/a&gt;class:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hybbz6ke.aspx"&gt;http://msdn.microsoft.com/en-us/library/hybbz6ke.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-5172115311686891336?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hJdlK5iu3xLVbodlF5p8-37Y1rw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hJdlK5iu3xLVbodlF5p8-37Y1rw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hJdlK5iu3xLVbodlF5p8-37Y1rw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hJdlK5iu3xLVbodlF5p8-37Y1rw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/kznyeob_W7U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/5172115311686891336/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=5172115311686891336" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/5172115311686891336?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/5172115311686891336?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/kznyeob_W7U/worker-threads.html" title="Worker Threads!" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2011/05/worker-threads.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMNQno5fyp7ImA9WhZWEUw.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-1381684647536432057</id><published>2011-05-11T14:47:00.002+02:00</published><updated>2011-05-11T14:54:53.427+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-11T14:54:53.427+02:00</app:edited><title>Reading and Writing .Net Applications Settings</title><content type="html">Sometimes you have to deal with the .Net framework in a way or another. I was forced to use a .Net C# closed-source library. And that library was automatically reading file paths from ConfigurationManager.AppSettings[]. So, I needed a way to read and modify those settings. Fortunately, &lt;a href="http://www.ajaxline.com/node/258"&gt;this post&lt;/a&gt; saved my life!&lt;br /&gt;&lt;br /&gt;To read:&lt;br /&gt;&lt;blockquote&gt;string value = ConfigurationManager.AppSettings["oldPlace"];&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;To modify/write:&lt;br /&gt;&lt;blockquote&gt;System.Configuration.Configuration config =ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);&lt;br /&gt;&lt;br /&gt;            config.AppSettings.Settings["oldPlace"].Value = "3";     &lt;br /&gt;            config.Save(ConfigurationSaveMode.Modified);&lt;br /&gt;            ConfigurationManager.RefreshSection("appSettings");&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;More information can be retrieved from the MSDN:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings.aspx"&gt;http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-1381684647536432057?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/j-0167YNlt5wD0-VP46z6Z48D98/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/j-0167YNlt5wD0-VP46z6Z48D98/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/j-0167YNlt5wD0-VP46z6Z48D98/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/j-0167YNlt5wD0-VP46z6Z48D98/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/C_FpcBoZAKA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/1381684647536432057/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=1381684647536432057" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/1381684647536432057?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/1381684647536432057?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/C_FpcBoZAKA/reading-and-writing-net-applications.html" title="Reading and Writing .Net Applications Settings" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2011/05/reading-and-writing-net-applications.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYEQnwzeyp7ImA9WhZXGEo.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-3475976972615956178</id><published>2011-05-08T18:33:00.005+02:00</published><updated>2011-05-08T18:45:03.283+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-08T18:45:03.283+02:00</app:edited><title>Precision and Recall</title><content type="html">One of the most important metrics used in evaluating the performance of binary classifiers is the Precision-Recall curve.&lt;br /&gt;&lt;br /&gt;From Wikipedia:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;It is possible to interpret precision and recall not as ratios but as probabilities:&lt;br /&gt;* Precision is the probability that a (randomly selected) retrieved document is relevant.&lt;br /&gt;* Recall is the probability that a (randomly selected) relevant document is retrieved in a search.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This page contains some illustrations to better understand the definitions of Precision and Recall:&lt;br /&gt;&lt;a href="http://newadonis.creighton.edu/hsl/searching/Recall-Precision.html"&gt;http://newadonis.creighton.edu/hsl/searching/Recall-Precision.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also, this paper relates Precision-Recall curves to the Receiver Operator Characteristic curves:&lt;br /&gt;&lt;a href="http://www.biostat.wisc.edu/~page/rocpr.pdf"&gt;http://www.biostat.wisc.edu/~page/rocpr.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Finally, this page is further explaining the concepts and elaborating on the F-measure metric that tries to combine Precision and Recall into one measure:&lt;br /&gt;&lt;a href="http://streamhacker.com/2010/05/17/text-classification-sentiment-analysis-precision-recall/"&gt;http://streamhacker.com/2010/05/17/text-classification-sentiment-analysis-precision-recall/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-3475976972615956178?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/A6vNc5EXVt660mAD3LGItLpojAk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/A6vNc5EXVt660mAD3LGItLpojAk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/A6vNc5EXVt660mAD3LGItLpojAk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/A6vNc5EXVt660mAD3LGItLpojAk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/kWa44fh1lQ8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/3475976972615956178/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=3475976972615956178" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/3475976972615956178?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/3475976972615956178?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/kWa44fh1lQ8/precision-and-recall.html" title="Precision and Recall" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2011/05/precision-and-recall.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MHQ3g9fyp7ImA9WhZXFk0.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-7127980613283629352</id><published>2011-05-05T17:03:00.004+02:00</published><updated>2011-05-05T17:30:32.667+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-05T17:30:32.667+02:00</app:edited><title>Splitting a video into frames using ffmpeg</title><content type="html">I needed a quick way to split a video sequence into its individual frames and save those frames as images. &lt;a href="http://www.ffmpeg.org/"&gt;FFmpeg&lt;/a&gt; seemed like a good handy solution. And the short answer is to do this:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;ffmpeg -i inputfile.avi -f image2 image-%07d.png&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This was a solution proposed in &lt;a href="http://stackoverflow.com/questions/3917601/ffmpeg-split-avi-into-frames-with-known-frame-rate"&gt;this&lt;/a&gt; thread. And for more information you can refer to the &lt;a href="http://www.ffmpeg.org/ffmpeg.html"&gt;detailed documentation&lt;/a&gt; of FFmpeg.&lt;br /&gt;&lt;br /&gt;PS: FFmpeg is available on Windows and you can get the installers &lt;a href="http://hawkeye.arrozcru.org/"&gt;here&lt;/a&gt;. If you just need the executable then download one of the static builds.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-7127980613283629352?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/w0XB9QW3irl5bzvxt6y-lHQvuS0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/w0XB9QW3irl5bzvxt6y-lHQvuS0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/w0XB9QW3irl5bzvxt6y-lHQvuS0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/w0XB9QW3irl5bzvxt6y-lHQvuS0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/s_lVp6fshDQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/7127980613283629352/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=7127980613283629352" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/7127980613283629352?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/7127980613283629352?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/s_lVp6fshDQ/splitting-video-into-frames-using.html" title="Splitting a video into frames using ffmpeg" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2011/05/splitting-video-into-frames-using.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MAQ34zeCp7ImA9WxJWEEo.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-1531218657197629039</id><published>2009-06-15T15:53:00.006+03:00</published><updated>2009-06-15T16:10:42.080+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-15T16:10:42.080+03:00</app:edited><title>Deadline Email Notifications using Bugzilla Whining Feature</title><content type="html">Bugzilla is a great project. Yet, customizing it to your needs is an overwhelming task!&lt;br /&gt;&lt;br /&gt;I was assigned a task that our Bugzilla server should automatically notify the task assignees upon the deadline. After a lot of search and reading, here is what I reached at...&lt;br /&gt;&lt;br /&gt;First, since our ISP did block our Sendmail server, we needed another way to send emails from Bugzilla... and this post saved my life:&lt;br /&gt;&lt;style type="text/css"&gt;  &lt;!--   @page { margin: 2cm }   P { margin-bottom: 0.21cm }   A:link { so-language: zxx }  --&gt;  &lt;/style&gt;  &lt;p align="justify"&gt;&lt;a href="http://www.dawood.in/bugzilla_alerts_using_gmail.html"&gt;http://www.dawood.in/bugzilla_alerts_using_gmail.html&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt;  &lt;!--   @page { margin: 2cm }   P { margin-bottom: 0.21cm }   TT.western { font-family: Monospace; font-size: 10pt; font-weight: bold }   TT.cjk { font-size: 10pt }  -&lt;/style&gt;The perl module Email::Send::SMTP::TLS was installed using the CPAN command: &lt;p align="justify"&gt;&lt;tt class="western"&gt;perl -MCPAN -e 'install Email::Send::SMTP::TLS'&lt;/tt&gt;&lt;/p&gt; &lt;p align="justify"&gt;Then, from the administration, the email service was set to SMTP::TLS as per the instructions in the previous link.&lt;/p&gt; &lt;p align="justify"&gt;Finally, the bugzilla code was modified as per the instructions, as follows&lt;/p&gt; &lt;p align="justify"&gt;&lt;tt class="western"&gt;/usr/share/perl5/Bugzilla/Mailer.pm&lt;/tt&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-left: 0.03cm; text-indent: -0.05cm;" align="justify"&gt;&lt;tt class="western"&gt;if ($method eq "SMTP" || $method eq "SMTP::TLS") {&lt;/tt&gt;&lt;/p&gt; &lt;p style="margin-left: 0.03cm; text-indent: -0.05cm;" align="justify"&gt;&lt;tt class="western"&gt;        &lt;/tt&gt;&lt;tt class="western"&gt;my $smtp_server;&lt;/tt&gt;&lt;/p&gt; &lt;p style="margin-left: 0.03cm; text-indent: -0.05cm;" align="justify"&gt;&lt;tt class="western"&gt;        &lt;/tt&gt;&lt;tt class="western"&gt;my $smtp_port;&lt;/tt&gt;&lt;/p&gt; &lt;p style="margin-left: 0.03cm; text-indent: -0.05cm;" align="justify"&gt;&lt;tt class="western"&gt;        &lt;/tt&gt;&lt;tt class="western"&gt;($smtp_server,$smtp_port) = split /:/,Bugzilla-&gt;params-&gt;{"smtpserver"};&lt;/tt&gt;&lt;/p&gt; &lt;p style="margin-left: 0.03cm; text-indent: -0.05cm;" align="justify"&gt;&lt;tt class="western"&gt;        &lt;/tt&gt;&lt;tt class="western"&gt;push @args, Host  =&gt; $smtp_server,&lt;/tt&gt;&lt;/p&gt; &lt;p style="margin-left: 0.03cm; text-indent: -0.05cm;" align="justify"&gt;&lt;tt class="western"&gt;                    &lt;/tt&gt;&lt;tt class="western"&gt;#username =&gt; Bugzilla-&gt;params-&gt;{"smtp_username"},&lt;/tt&gt;&lt;/p&gt; &lt;p style="margin-left: 0.03cm; text-indent: -0.05cm;" align="justify"&gt;&lt;tt class="western"&gt;                    &lt;/tt&gt;&lt;tt class="western"&gt;User =&gt; Bugzilla-&gt;params-&gt;{"smtp_username"},&lt;/tt&gt;&lt;/p&gt; &lt;p style="margin-left: 0.03cm; text-indent: -0.05cm;" align="justify"&gt;&lt;tt class="western"&gt;                    &lt;/tt&gt;&lt;tt class="western"&gt;#password =&gt; Bugzilla-&gt;params-&gt;{&lt;/tt&gt;&lt;tt class="western"&gt;"smtp_password"},&lt;/tt&gt;&lt;/p&gt; &lt;p style="margin-left: 0.03cm; text-indent: -0.05cm;" align="justify"&gt;&lt;tt class="western"&gt;                    &lt;/tt&gt;&lt;tt class="western"&gt;Password =&gt; Bugzilla-&gt;params-&gt;{"smtp_password"&lt;/tt&gt;&lt;tt class="western"&gt;},&lt;/tt&gt;&lt;/p&gt; &lt;p style="margin-left: 0.03cm; text-indent: -0.05cm;" align="justify"&gt;&lt;tt class="western"&gt;                    &lt;/tt&gt;&lt;tt class="western"&gt;Hello =&gt; $hostname,&lt;/tt&gt;&lt;/p&gt; &lt;p style="margin-left: 0.03cm; text-indent: -0.05cm;" align="justify"&gt;&lt;tt class="western"&gt;                    &lt;/tt&gt;&lt;tt class="western"&gt;Debug =&gt; Bugzilla-&gt;params-&gt;{'smtp_deb&lt;/tt&gt;&lt;tt class="western"&gt;ug'};&lt;/tt&gt;&lt;/p&gt; &lt;p style="margin-left: 0.03cm; text-indent: -0.05cm;" align="justify"&gt;&lt;tt class="western"&gt;        &lt;/tt&gt;&lt;tt class="western"&gt;push @args, Port =&gt; $smtp_port if($smtp_port);&lt;/tt&gt;&lt;/p&gt; &lt;p style="margin-left: 0.03cm; text-indent: -0.05cm;" align="justify"&gt;&lt;tt class="western"&gt;    &lt;/tt&gt;&lt;tt class="western"&gt;}&lt;/tt&gt;&lt;/p&gt;&lt;p style="margin-left: 0.03cm; text-indent: -0.05cm;" align="justify"&gt;&lt;tt class="western"&gt;&lt;br /&gt;&lt;/tt&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;Now I have a Bugzilla system that can send emails... well, what about automated notifications? The whining feature came into play...&lt;br /&gt;&lt;br /&gt; &lt;meta equiv="CONTENT-TYPE" content="text/html; charset=utf-8"&gt;  &lt;title&gt;&lt;/title&gt;  &lt;meta name="GENERATOR" content="OpenOffice.org 3.0  (Unix)"&gt;  &lt;style type="text/css"&gt;  &lt;!--   @page { margin: 2cm }   P { margin-bottom: 0.21cm }   A:link { so-language: zxx }   TT.western { font-family: Monospace; font-size: 10pt; font-weight: bold }   TT.cjk { font-size: 10pt }  --&gt;  &lt;/style&gt;  &lt;p align="justify"&gt;The whining feature was used to automatically notify the users about deadlines. The was inspired by the instructions in the following links (instructions of Marc):&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://markmail.org/message/2y67gfpa2ocu7ewa"&gt;http://markmail.org/message/2y67gfpa2ocu7ewa&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://groups.google.com/group/mozilla.support.bugzilla/browse_thread/thread/87159cba2d617553"&gt;http://groups.google.com/group/mozilla.suppo&lt;/a&gt;&lt;a href="http://groups.google.com/group/mozilla.support.bugzilla/browse_thread/thread/87159cba2d617553"&gt;rt.bugzilla/browse_thread/thread/87159cba2d617553&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p align="justify"&gt;The whining feature relies on Saved Searches. A 'saved search' is to be created and the search should be done for every member of a group. To execute the saved search for everybody, a group should be created that contains all the users of Bugzilla. This could be done by using the user RegExp '.*'.&lt;/p&gt; &lt;p align="justify"&gt;Then, the Save Search 'Tasks due soon' was created. It searches all the products for bugs that are open (NEW, ASSIGNED, REOPENED). Then the advanced search (boolean charts) was used to search for only the bugs for which the current user is assigned (Assignee 'is equal to' '%user%') or cc'ed (CC 'is equal to' '%user%'). This was done using the bugzilla Pronoun Substitution feature (&lt;a href="http://www.bugzilla.org/docs/2.20/html/query.html"&gt;http://www.bugzilla.org/docs/2.20/html/query.html&lt;/a&gt;). In addition, the bug should have its deadline due soon or overdue (Deadline 'is less than' '+3d'). The final saved search looks like this:&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NPXhFbPLVwI/SjZHUT7kN3I/AAAAAAAAABA/vIXL4no0s3g/s1600-h/1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 112px;" src="http://2.bp.blogspot.com/_NPXhFbPLVwI/SjZHUT7kN3I/AAAAAAAAABA/vIXL4no0s3g/s400/1.png" alt="" id="BLOGGER_PHOTO_ID_5347540021822109554" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;   &lt;p align="justify"&gt;&lt;br /&gt;Finally, from the Whining feature in administration, all the pieces were put together as follows:&lt;/p&gt;&lt;p align="justify"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_NPXhFbPLVwI/SjZHYzCk4FI/AAAAAAAAABI/gUR25Uq3QEg/s1600-h/2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 119px;" src="http://4.bp.blogspot.com/_NPXhFbPLVwI/SjZHYzCk4FI/AAAAAAAAABI/gUR25Uq3QEg/s400/2.png" alt="" id="BLOGGER_PHOTO_ID_5347540098892488786" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;/p&gt; &lt;p align="justify"&gt;In sum, the saved search entitled 'Tasks due soon' should be run 'Each day' 'at 15:00' for every member of the group 'everybody' and the search results should be sent 'one message per bug' to the '%user%'.&lt;/p&gt; &lt;p align="justify"&gt;One question may arise, since we are running the search for all the users, how did we guarantee that the email will be sent to the bug assignee only and not to everybody? This was done using the Pronoun Substitution feature of Bugzilla. Basically, '%user%' is being automatically substituted for by the current user for which the search is done. So, if the current user is not the assignee or on the CC of the bug, there will be no search results, and consequently, there will be no emails sent!&lt;/p&gt; &lt;p align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p align="justify"&gt;We are not done yet! One final thing needs to be done. Add the &lt;tt class="western"&gt;whine.pl&lt;/tt&gt; to your hourly &lt;tt class="western"&gt;cron&lt;/tt&gt;, so that &lt;tt class="western"&gt;cron&lt;/tt&gt; would automatically run the &lt;tt class="western"&gt;whine.pl&lt;/tt&gt; script and Bugzilla start whining. This was done by adding a script '&lt;tt class="western"&gt;bugzilla3&lt;/tt&gt;' under '&lt;tt class="western"&gt;/etc/cron.hourly/&lt;/tt&gt;' on a Debian Lenny system. The script was adopted from the '&lt;tt class="western"&gt;bugzilla3&lt;/tt&gt;' script under '&lt;tt class="western"&gt;/etc/cron.daily/&lt;/tt&gt;'. Its code is:&lt;/p&gt; &lt;p align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;tt class="western"&gt;#!/bin/sh&lt;/tt&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;tt class="western"&gt;set -e&lt;/tt&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;tt class="western"&gt;umask 022&lt;/tt&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;tt class="western"&gt;doit()&lt;/tt&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;tt class="western"&gt;{&lt;/tt&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;tt class="western"&gt;        &lt;/tt&gt;&lt;tt class="western"&gt;if [ -f /usr/share/bugzilla3/lib/whine.pl ] ; then&lt;/tt&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;tt class="western"&gt;                    &lt;/tt&gt;&lt;tt class="western"&gt;su www-data -c /usr/share/bugzilla3/lib/whine.pl&lt;/tt&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;tt class="western"&gt;        &lt;/tt&gt;&lt;tt class="western"&gt;fi&lt;/tt&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;tt class="western"&gt;}&lt;/tt&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;tt class="western"&gt;# process the main configuration: /etc/bugzilla3&lt;/tt&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;tt class="western"&gt;doit&lt;/tt&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;tt class="western"&gt;exit 0&lt;/tt&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p align="justify"&gt;That is all!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-1531218657197629039?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/frWBk6clqUUhNprGbaxpo58i4fY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/frWBk6clqUUhNprGbaxpo58i4fY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/frWBk6clqUUhNprGbaxpo58i4fY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/frWBk6clqUUhNprGbaxpo58i4fY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/CmhhhC7p3sY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/1531218657197629039/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=1531218657197629039" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/1531218657197629039?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/1531218657197629039?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/CmhhhC7p3sY/deadline-email-notifications-using.html" title="Deadline Email Notifications using Bugzilla Whining Feature" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_NPXhFbPLVwI/SjZHUT7kN3I/AAAAAAAAABA/vIXL4no0s3g/s72-c/1.png" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2009/06/deadline-email-notifications-using.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYCQXw_eCp7ImA9WxVbEEw.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-6262117844171295301</id><published>2009-03-25T22:26:00.002+02:00</published><updated>2009-03-25T22:32:40.240+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-25T22:32:40.240+02:00</app:edited><title>Sound in GNU Octave on Debian Lenny</title><content type="html">I was very disappointed by the poor sound capabilities of the GNU Ocatve project compared to MATLAB. The &lt;span style="font-family: courier new;"&gt;playaudio()&lt;/span&gt; function was inconvenient with nasty '&lt;span style="font-family: courier new;"&gt;/dev/dsp device or resource busy&lt;/span&gt;' messages. This was until I installed the octave-audio package in Debian and had the powerful&lt;span style="font-family: courier new;"&gt; sound()&lt;/span&gt; and &lt;span style="font-family: courier new;"&gt;soundsc()&lt;/span&gt; functions working.&lt;br /&gt;&lt;br /&gt;The nasty thing is that those functions didn't work out of the box. They needed to call a &lt;span style="font-family: courier new;"&gt;play&lt;/span&gt; command from the shell. Finally, I discovered that this command is part of the &lt;span style="font-family: courier new;"&gt;sox&lt;/span&gt; package on Debian. I &lt;span style="font-family: courier new;"&gt;apt-get install sox&lt;/span&gt; and now, &lt;span style="font-family: courier new;"&gt;sound()&lt;/span&gt; and &lt;span style="font-family: courier new;"&gt;soundsc()&lt;/span&gt; are working perfectly!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-6262117844171295301?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Anrzp4agf5x5ON86wzfdEmWQ8Ug/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Anrzp4agf5x5ON86wzfdEmWQ8Ug/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Anrzp4agf5x5ON86wzfdEmWQ8Ug/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Anrzp4agf5x5ON86wzfdEmWQ8Ug/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/i_hdII2gd7M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/6262117844171295301/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=6262117844171295301" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/6262117844171295301?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/6262117844171295301?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/i_hdII2gd7M/sound-in-gnu-octave-on-debian-lenny.html" title="Sound in GNU Octave on Debian Lenny" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>3</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2009/03/sound-in-gnu-octave-on-debian-lenny.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcARXoyeip7ImA9WxVUGEQ.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-3544040914543275756</id><published>2009-03-19T23:55:00.004+02:00</published><updated>2009-03-24T14:17:24.492+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-24T14:17:24.492+02:00</app:edited><title>Installing OpenOffice.org 3.0 on Debian Lenny (stable)</title><content type="html">There is no OpenOffice.org 3.0 in lenny-backports till now and I need it! So, I grabbed it from sid (unstable). This discussion helped me a lot:&lt;br /&gt;&lt;a href="http://www.linuxquestions.org/questions/debian-26/openoffice-3-in-debian-lenny-679610/"&gt;http://www.linuxquestions.org/questions/debian-26/openoffice-3-in-debian-lenny-679610/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In short, you need to&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;add to your repositories (/etc/apt/sources.list)&lt;br /&gt;&lt;pre class="code"&gt;deb http://www.backports.org/debian lenny-backports main contrib non-free&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Also add to your repositories&lt;br /&gt;&lt;pre class="code"&gt;deb http://http.us.debian.org/debian sid main&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;To stay with the stable and not install packages from unstable by default, we need to add the following to /etc/apt/apt.conf &lt;span style="font-size:78%;"&gt;&lt;span style="font-family:courier new;"&gt;APT::Default-Release "stable";&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Then do &lt;span style="font-size:78%;"&gt;&lt;span style="font-family:courier new;"&gt;aptitude install openoffice.org/unstable&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Voila! Hope it does not break your system!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;UPDATE: OpenOffice.org is now available in Lenny-backports. Now you do not need step 2. So, instead type&lt;/span&gt; aptitude install openoffice.org/lenny-backports&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-3544040914543275756?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VfM3qKpRbkuaCzM7b1MoQhZGyMc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VfM3qKpRbkuaCzM7b1MoQhZGyMc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/VfM3qKpRbkuaCzM7b1MoQhZGyMc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VfM3qKpRbkuaCzM7b1MoQhZGyMc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/Qvv-Z6xnZWg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/3544040914543275756/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=3544040914543275756" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/3544040914543275756?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/3544040914543275756?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/Qvv-Z6xnZWg/installing-openofficeorg-30-on-debian.html" title="Installing OpenOffice.org 3.0 on Debian Lenny (stable)" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2009/03/installing-openofficeorg-30-on-debian.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MCQHY9eip7ImA9WxVVEEQ.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-792613467451501625</id><published>2009-03-03T17:38:00.002+02:00</published><updated>2009-03-03T17:51:01.862+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-03T17:51:01.862+02:00</app:edited><title>The long-waited Qt 4.5 Released :)</title><content type="html">Qt 4.5 is now officially released.&lt;br /&gt;&lt;a href="http://www.heise.de/english/newsticker/news/133888"&gt;http://www.heise.de/english/newsticker/news/133888&lt;/a&gt;&lt;br /&gt;&lt;a href="http://doc.trolltech.com/4.5/"&gt;http://doc.trolltech.com/4.5/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;With the LGPL v2.1 licensing option added, I expect the widespread adoption of Qt into commercial applications!&lt;br /&gt;&lt;br /&gt;Qt 4.5 is even better suited for the medical field, combining reliability, performance, flexibility, nice look-and-feel, among other advantages.&lt;br /&gt;&lt;br /&gt;Qt 4.5 now has -graphicssystem command-line option to switch the graphics engine of Qt applications to raster or even OpenGL without any change to the code. Yes, your application can draw itself using OpenGL without requiring you to change a single line of code, check:&lt;br /&gt;&lt;a href="http://labs.trolltech.com/blogs/2008/10/22/so-long-and-thanks-for-the-blit/"&gt;http://labs.trolltech.com/blogs/2008/10/22/so-long-and-thanks-for-the-blit/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Moreover, you can have a custom widget plotting itself using OpenGL without requiring the rest of the application to use OpenGL, check:&lt;br /&gt;&lt;a href="http://labs.trolltech.com/blogs/2008/06/27/accelerate-your-widgets-with-opengl/"&gt;http://labs.trolltech.com/blogs/2008/06/27/accelerate-your-widgets-with-opengl/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The LGPL v2.1 has one drawback regarding the use of templates in C++, check:&lt;br /&gt;&lt;a href="http://lab.obsethryl.eu/content/lgpl-21-qt-45-and-c-templates"&gt;http://lab.obsethryl.eu/content/lgpl-21-qt-45-and-c-templates&lt;/a&gt;&lt;br /&gt;However, it is &lt;a href="http://labs.trolltech.com/blogs/2009/01/14/nokia-to-license-qt-under-lgpl/"&gt;stated on the Qt Labs Blogs&lt;/a&gt; that Nokia is working on an LGPL exception to overcome this problem. Let's wait and see :)&lt;br /&gt;&lt;br /&gt;With a framework so powerful and flexible like Qt, one can ask: Are we watching the dawn of Qt and the sunset of Java and .Net??&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-792613467451501625?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YU6gXQXKwMo9jTCpXjKk6jeNYYc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YU6gXQXKwMo9jTCpXjKk6jeNYYc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YU6gXQXKwMo9jTCpXjKk6jeNYYc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YU6gXQXKwMo9jTCpXjKk6jeNYYc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/AHS9m_yzzq0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/792613467451501625/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=792613467451501625" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/792613467451501625?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/792613467451501625?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/AHS9m_yzzq0/long-waited-qt-45-released.html" title="The long-waited Qt 4.5 Released :)" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2009/03/long-waited-qt-45-released.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMARHs5eyp7ImA9WxVXGEk.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-1463380822330335403</id><published>2009-02-17T05:04:00.002+02:00</published><updated>2009-02-17T05:14:05.523+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-17T05:14:05.523+02:00</app:edited><title>Adding PDF headers, footers, and watermarks in GNU/Linux</title><content type="html">Recently I needed to add a header/footer to an existing PDF file. With some help from this link, I figured it out:&lt;br /&gt;&lt;a href="http://coding.derkeiler.com/Archive/Perl/comp.lang.perl.misc/2005-04/msg00151.html"&gt;http://coding.derkeiler.com/Archive/Perl/comp.lang.perl.misc/2005-04/msg00151.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;First, use OpenOffice.org Writer (for example) to generate a single-page PDF file that has the needed header/footer/watermark.&lt;br /&gt;&lt;br /&gt;Second, use pdftk's background option. Quoting from the man page of pdftk:&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-family: courier new;"&gt;pdftk in.pdf background back.pdf output out.pdf&lt;/blockquote&gt;&lt;br /&gt;the &lt;span style="font-family: courier new;"&gt;back.pdf&lt;/span&gt; is the file you created that has the needed header/footer/watermark. The &lt;span style="font-family: courier new;"&gt;in.pdf&lt;/span&gt; is the file you need to apply header/footer/watermark to. The result, of course, is saved into &lt;span style="font-family: courier new;"&gt;out.pdf&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;You can also use the dual option &lt;span style="font-family: courier new;"&gt;stamp&lt;/span&gt; instead of &lt;span style="font-family: courier new;"&gt;background&lt;/span&gt;. This will overlay the &lt;span style="font-family: courier new;"&gt;back.pdf&lt;/span&gt; on top of every page of &lt;span style="font-family: courier new;"&gt;in.pdf&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-1463380822330335403?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wBFuHV-3S7wRn40wkQDgoLnNXPI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wBFuHV-3S7wRn40wkQDgoLnNXPI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wBFuHV-3S7wRn40wkQDgoLnNXPI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wBFuHV-3S7wRn40wkQDgoLnNXPI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/lSjR1Aaviag" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/1463380822330335403/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=1463380822330335403" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/1463380822330335403?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/1463380822330335403?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/lSjR1Aaviag/adding-pdf-headers-footers-and.html" title="Adding PDF headers, footers, and watermarks in GNU/Linux" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>3</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2009/02/adding-pdf-headers-footers-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EHSH44fyp7ImA9WxVXFkQ.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-3884917063092151239</id><published>2009-02-15T12:54:00.002+02:00</published><updated>2009-02-15T13:00:39.037+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-15T13:00:39.037+02:00</app:edited><title>Debian Lenny is out... at last!</title><content type="html">Debian 5.0 (codenamed "Lenny") is out. Check:&lt;br /&gt;&lt;a href="http://www.desktoplinux.com/news/NS4199843436.html"&gt;http://www.desktoplinux.com/news/NS4199843436.html&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:Arial,Helvetica;font-size:100%;"&gt;&lt;blockquote&gt;It appears that Debian 5.0 (aka "Lenny") will soon take its big binocular&lt;span&gt;&lt;span style="font-family:Arial,Helvetica;font-size:100%;"&gt;&lt;span&gt;&lt;span style="font-family:Arial,Helvetica;font-size:100%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.desktoplinux.com/files/misc/pixar_toy_story_lenny_cap-thm.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 125px; height: 94px;" src="http://www.desktoplinux.com/files/misc/pixar_toy_story_lenny_cap-thm.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; eyes out into the wider world. The Debian project has completed the first release-candidate of Lenny's installer, which features much-improved support for ARM-based devices, along with much faster installation from "live" CDs&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The next stable release of Debian is codenamed "Squeeze". Check:&lt;br /&gt;&lt;a href="http://www.debiantoday.com/debian-lenny-successor-gets-named/"&gt;http://www.debiantoday.com/debian-lenny-successor-gets-named/&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/wikipedia/en/thumb/c/cf/Squeezetoyalien.jpg/180px-Squeezetoyalien.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 180px; height: 135px;" src="http://upload.wikimedia.org/wikipedia/en/thumb/c/cf/Squeezetoyalien.jpg/180px-Squeezetoyalien.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;blockquote&gt;Prepare yourself for &lt;strong style="font-weight: normal;"&gt;Squeeze&lt;/strong&gt;, that’s right the little green guy. Continuing with the Toy Story names the Debian project has decided to name the next release in the line up after the three eyed green alien who fears “the claw” at Pizza Planet in the movie Toy Story&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-3884917063092151239?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KTODZsepcnkn3r6D9h3Zh0qjQ5A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KTODZsepcnkn3r6D9h3Zh0qjQ5A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KTODZsepcnkn3r6D9h3Zh0qjQ5A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KTODZsepcnkn3r6D9h3Zh0qjQ5A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/S5-aSALNCE4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/3884917063092151239/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=3884917063092151239" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/3884917063092151239?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/3884917063092151239?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/S5-aSALNCE4/debian-lenny-is-out-at-last.html" title="Debian Lenny is out... at last!" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2009/02/debian-lenny-is-out-at-last.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQCRno6fip7ImA9WxVXEko.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-6528275456716998646</id><published>2009-02-10T14:11:00.005+02:00</published><updated>2009-02-10T17:06:07.416+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-10T17:06:07.416+02:00</app:edited><title>Free Books on "Design Patterns in C++" and Qt</title><content type="html">Today is my lucky day :)&lt;br /&gt;&lt;br /&gt;I found two free books about Qt and Design Patterns.&lt;br /&gt;&lt;br /&gt;The first book is&lt;br /&gt;&lt;a href="http://www.amazon.com/gp/product/0131872494"&gt;C++ GUI Programming with Qt 4&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The first edition of this book could be downloaded _legally_ for free here:&lt;br /&gt;&lt;a href="http://www.qtrac.eu/C++-GUI-Programming-with-Qt-4-1st-ed.zip"&gt;http://www.qtrac.eu/C++-GUI-Programming-with-Qt-4-1st-ed.zip&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.qtrac.eu/marksummerfield.html"&gt;http://www.qtrac.eu/marksummerfield.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The second book is a magnificent one. It is the first book I see to explain C++ and Design Patterns in a Qt-ish style!&lt;br /&gt;&lt;br /&gt;The book is free as in freedom! It is released online under the Open Publication License (OPL) here:&lt;br /&gt;&lt;a href="http://oop.mcs.suffolk.edu/opensource/"&gt;http://oop.mcs.suffolk.edu/opensource/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is NOT a book, it is a complete PROJECT that I think people should actively contribute to... The bugzilla server for this project and many useful materials could be found here:&lt;br /&gt;&lt;a href="http://cartan.cas.suffolk.edu/moin/OopDocbook"&gt;http://cartan.cas.suffolk.edu/moin/OopDocbook&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For convenience, you can download the whole book compiled into chm format here:&lt;br /&gt;&lt;a href="http://lawand.wordpress.com/site-map/computer-science/e-books/introduction-to-design-patterns-in-cpp-with-qt-4/"&gt;http://lawand.wordpress.com/site-map/computer-science/e-books/introduction-to-design-patterns-in-cpp-with-qt-4/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy the cute Qt!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-6528275456716998646?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/n4cuAWNBBuFgq52iAnwFCUZP7fk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/n4cuAWNBBuFgq52iAnwFCUZP7fk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/n4cuAWNBBuFgq52iAnwFCUZP7fk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/n4cuAWNBBuFgq52iAnwFCUZP7fk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/MC6fkCIuRjc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/6528275456716998646/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=6528275456716998646" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/6528275456716998646?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/6528275456716998646?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/MC6fkCIuRjc/free-books-on-design-patterns-in-c-and.html" title="Free Books on &quot;Design Patterns in C++&quot; and Qt" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2009/02/free-books-on-design-patterns-in-c-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIMRXY6eip7ImA9WxVRGUw.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-4468534868372200139</id><published>2009-01-25T21:08:00.000+02:00</published><updated>2009-01-25T21:09:44.812+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-25T21:09:44.812+02:00</app:edited><title>An open source self-balancing robot</title><content type="html">What a nice project!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mtoussaint.de/tobb/index.html"&gt;http://www.mtoussaint.de/tobb/index.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-4468534868372200139?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/byG7iR5RMfnLwLFmFp0TIDtQH4Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/byG7iR5RMfnLwLFmFp0TIDtQH4Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/byG7iR5RMfnLwLFmFp0TIDtQH4Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/byG7iR5RMfnLwLFmFp0TIDtQH4Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/NmF8RkWmcM8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/4468534868372200139/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=4468534868372200139" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/4468534868372200139?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/4468534868372200139?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/NmF8RkWmcM8/open-source-self-balancing-robot.html" title="An open source self-balancing robot" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2009/01/open-source-self-balancing-robot.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIFRHo6eyp7ImA9WxVRGU0.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-7360380112753250016</id><published>2009-01-25T18:53:00.000+02:00</published><updated>2009-01-25T18:55:15.413+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-25T18:55:15.413+02:00</app:edited><title>Interesting: The Evolution of Tech Companies’ Logos</title><content type="html">I just got this from a friend :)&lt;br /&gt;&lt;a href="http://www.neatorama.com/2008/02/07/the-evolution-of-tech-companies-logos/"&gt;http://www.neatorama.com/2008/02/07/the-evolution-of-tech-companies-logos/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-7360380112753250016?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/i25NbS6bydGqMN-7DPfqJfCmh3o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/i25NbS6bydGqMN-7DPfqJfCmh3o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/i25NbS6bydGqMN-7DPfqJfCmh3o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/i25NbS6bydGqMN-7DPfqJfCmh3o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/V5ukabTE0Z4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/7360380112753250016/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=7360380112753250016" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/7360380112753250016?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/7360380112753250016?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/V5ukabTE0Z4/interesting-evolution-of-tech-companies.html" title="Interesting: The Evolution of Tech Companies’ Logos" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2009/01/interesting-evolution-of-tech-companies.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkAERns9fCp7ImA9WxVTEkk.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-350126921331927087</id><published>2008-12-25T22:36:00.004+02:00</published><updated>2008-12-25T23:31:47.564+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-25T23:31:47.564+02:00</app:edited><title>union, struct, and bit fields in C and C++</title><content type="html">It took me some long time to comprehend the issues involved in using unions, structs, and bit fields in C and C++.&lt;br /&gt;&lt;br /&gt;First, for the definition of unions and structs, take a look at this link:&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/comphelp/v8v101/index.jsp?topic=/com.ibm.xlcpp8a.doc/language/ref/strct.htm"&gt;http://publib.boulder.ibm.com/infocenter/comphelp/v8v101/index.jsp?topic=/com.ibm.xlcpp8a.doc/language/ref/strct.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Unions could be used together with structs to reinterpret the same location in memory with different interpretations (similar in spirit to the C++ reinterpret_cast). For examples on this see:&lt;br /&gt;&lt;a href="http://www.anyexample.com/programming/cplusplus/example_of_using_union_in_cplusplus.xml"&gt;http://www.anyexample.com/programming/cplusplus/example_of_using_union_in_cplusplus.xml&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;C++ extends the unions and structs, for example see:&lt;br /&gt;&lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialC++Structures.html"&gt;http://www.yolinux.com/TUTORIALS/LinuxTutorialC++Structures.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bit fields are used to define special-sized integers. This is useful for packing data (e.g. flags) together into one memory location. This, however, is a bad habit and should be avoided as the compiler-generated code to access bit fields is usually inefficient! For more examples on this, see:&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Bit_field"&gt;http://en.wikipedia.org/wiki/Bit_field&lt;/a&gt;&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/macxhelp/v6v81/index.jsp?topic=/com.ibm.vacpp6m.doc/language/ref/clrc03defbitf.htm"&gt;http://publib.boulder.ibm.com/infocenter/macxhelp/v6v81/index.jsp?topic=/com.ibm.vacpp6m.doc/language/ref/clrc03defbitf.htm&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.cs.cf.ac.uk/Dave/C/node13.html"&gt;http://www.cs.cf.ac.uk/Dave/C/node13.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.daniweb.com/forums/thread55765.html"&gt;http://www.daniweb.com/forums/thread55765.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/oldnewthing/archive/2008/11/26/9143050.aspx"&gt;http://blogs.msdn.com/oldnewthing/archive/2008/11/26/9143050.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://osr507doc.sco.com/en/tools/ANSI_F.3.9_Structs.unions.html"&gt;http://osr507doc.sco.com/en/tools/ANSI_F.3.9_Structs.unions.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Finally, unions and structs could be anonymous! You do not have to give a name to a union. In this case its members become directly accessible within the same scope. Wikipedia calls this "untagged union". For an example see:&lt;br /&gt;&lt;a href="http://www.velocityreviews.com/forums/t286529-union-with-anonymous-struct.html"&gt;http://www.velocityreviews.com/forums/t286529-union-with-anonymous-struct.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-350126921331927087?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-yZx1zy21kWZlKcIgn7R3WIY258/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-yZx1zy21kWZlKcIgn7R3WIY258/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-yZx1zy21kWZlKcIgn7R3WIY258/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-yZx1zy21kWZlKcIgn7R3WIY258/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/nmq6nguHg30" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/350126921331927087/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=350126921331927087" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/350126921331927087?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/350126921331927087?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/nmq6nguHg30/union-struct-and-bit-fields-in-c-and-c.html" title="union, struct, and bit fields in C and C++" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2008/12/union-struct-and-bit-fields-in-c-and-c.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8BR3s-fSp7ImA9WxVTEEg.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-7160350017536081032</id><published>2008-12-23T19:24:00.003+02:00</published><updated>2008-12-23T19:54:16.555+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-23T19:54:16.555+02:00</app:edited><title>Debugging, Profiling, Memory Leaks and more!</title><content type="html">I have been searching for open source tools to assist in detecting memory leaks and application profiling. Also, static code analysis was another goal.&lt;br /&gt;&lt;br /&gt;For static code analysis I found:&lt;br /&gt;CppCheck (&lt;a href="http://en.wikipedia.org/wiki/Cppcheck"&gt;http://en.wikipedia.org/wiki/Cppcheck&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;I used it to its full power by invoking (at the top level of the project):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cppcheck --recursive --all --errorsonly --style&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Also, SPlint (&lt;a href="http://en.wikipedia.org/wiki/SPlint"&gt;http://en.wikipedia.org/wiki/SPlint&lt;/a&gt;) seems promising, though it is for C code only (no C++).&lt;br /&gt;&lt;br /&gt;A comprehensive list of static code analysis could be found in Wikipedia:&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis"&gt;http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;About application profiling, the GNU Profiler (gprof) does a good job. It is light-weight and has support in GCC. This is an excellent article about using gprof:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Programmer's Toolkit: Profiling programs using gprof(&lt;a href="http://linuxgazette.net/100/vinayak.html"&gt;http://linuxgazette.net/100/vinayak.html&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;Of course, you can best visualize the output of gprof using the (kprof) KDE front-end.&lt;br /&gt;&lt;br /&gt;Memory leak detection has many options. Of the best is using Valgrind(&lt;a href="http://valgrind.org/"&gt;http://valgrind.org/&lt;/a&gt;). However, I found an interesting and promising feature that has been added to the gcc. This feature is called Mudflap. It is easy to use as a compiler flag and adds memory debugging support directly into your application using libmudflap. More interesting information could be found here:&lt;br /&gt;&lt;a href="http://gcc.gnu.org/wiki/Mudflap_Pointer_Debugging"&gt;http://gcc.gnu.org/wiki/Mudflap_Pointer_Debugging&lt;/a&gt;&lt;br /&gt;&lt;a href="http://gcc.fyxm.net/summit/2003/mudflap.pdf"&gt;http://gcc.fyxm.net/summit/2003/mudflap.pdf&lt;/a&gt;&lt;br /&gt;It is so promising that it will be integrated into the QNX IDE:&lt;br /&gt;&lt;a href="http://qnxdevtools.blogspot.com/2008/02/mudflap.html"&gt;http://qnxdevtools.blogspot.com/2008/02/mudflap.html&lt;/a&gt;&lt;br /&gt;It can print the memory leaks on program exit via the (&lt;span style="font-family:courier new;"&gt;-print-leaks&lt;/span&gt;) option&lt;br /&gt;&lt;br /&gt;Memory debugging tools are so many. There is a list on Wikipedia article:&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Memory_debugger"&gt;http://en.wikipedia.org/wiki/Memory_debugger&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The task of memory leak detection is achievable using lightwieght tools. These tools basically replaces the default C library malloc() and free() with special debugging implementations. Notable is mtrace(), the memory debugger built in the GNU C library:&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Mtrace"&gt;http://en.wikipedia.org/wiki/Mtrace&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A good article about memory leak detection in C++:&lt;br /&gt;&lt;a href="http://www.linuxjournal.com/article/6556"&gt;http://www.linuxjournal.com/article/6556&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And finally, all what you can dream of are collected in one article, in the GRASS wiki here:&lt;br /&gt;&lt;a href="http://josef.fsv.cvut.cz/WIKI/grass-osgeo/index.php/GRASS_Debugging"&gt;http://josef.fsv.cvut.cz/WIKI/grass-osgeo/index.php/GRASS_Debugging&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hope you find this useful!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-7160350017536081032?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Sbxu41_B2hpJUwjGRbZPt0Ircyk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Sbxu41_B2hpJUwjGRbZPt0Ircyk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Sbxu41_B2hpJUwjGRbZPt0Ircyk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Sbxu41_B2hpJUwjGRbZPt0Ircyk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/XYtzEI_S8vc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/7160350017536081032/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=7160350017536081032" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/7160350017536081032?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/7160350017536081032?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/XYtzEI_S8vc/debugging-profiling-memory-leaks-and.html" title="Debugging, Profiling, Memory Leaks and more!" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2008/12/debugging-profiling-memory-leaks-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4AQXY5eyp7ImA9WxRaGUs.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-5425172500627212329</id><published>2008-12-22T18:37:00.001+02:00</published><updated>2008-12-22T18:39:00.823+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-22T18:39:00.823+02:00</app:edited><title>Guide to start using Linux in ARABIC</title><content type="html">This an excellent piece of work. This book, written in ARABIC, will get you started with using Ubuntu Linux in no time! Get started now:&lt;a href="http://ia310803.us.archive.org/2/items/Practical_Guide_to_use_ubuntu_linux_Arabic_344/Practical_Guide_to_use_ubuntu_linux_arabic.pdf"&gt;&lt;br /&gt;http://ia310803.us.archive.org/2/items/Practical_Guide_to_use_ubuntu_linux_Arabic_344/Practical_Guide_to_use_ubuntu_linux_arabic.pdf&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-5425172500627212329?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fKpAHZA3VkUaHoxMZjwia_z8Guk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fKpAHZA3VkUaHoxMZjwia_z8Guk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fKpAHZA3VkUaHoxMZjwia_z8Guk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fKpAHZA3VkUaHoxMZjwia_z8Guk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/Y8nCYlnviH0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/5425172500627212329/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=5425172500627212329" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/5425172500627212329?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/5425172500627212329?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/Y8nCYlnviH0/guide-to-start-using-linux-in-arabic.html" title="Guide to start using Linux in ARABIC" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2008/12/guide-to-start-using-linux-in-arabic.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8NQXc8fyp7ImA9WxRVFEQ.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-186652364043060127</id><published>2008-11-12T15:49:00.000+02:00</published><updated>2008-11-12T15:51:30.977+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-12T15:51:30.977+02:00</app:edited><title>Egyptian Universities Library!!</title><content type="html">I couldn't believe it... Check the EUL website NOW&lt;br /&gt;&lt;a href="http://www.eul.edu.eg"&gt;www.eul.edu.eg&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-186652364043060127?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_hXncQjBdBRdSld-Vq6F6ZqHbps/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_hXncQjBdBRdSld-Vq6F6ZqHbps/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_hXncQjBdBRdSld-Vq6F6ZqHbps/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_hXncQjBdBRdSld-Vq6F6ZqHbps/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/nQyYJGgG-Jo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/186652364043060127/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=186652364043060127" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/186652364043060127?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/186652364043060127?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/nQyYJGgG-Jo/egyptian-universities-library.html" title="Egyptian Universities Library!!" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2008/11/egyptian-universities-library.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4FQX44eSp7ImA9WxRXEUo.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-6688096722319363034</id><published>2008-10-16T19:40:00.000+02:00</published><updated>2008-10-16T19:41:50.031+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-16T19:41:50.031+02:00</app:edited><title>The possesive 's</title><content type="html">Very informative!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.bbc.co.uk/worldservice/learningenglish/grammar/learnit/learnitv57.shtml"&gt;http://www.bbc.co.uk/worldservice/learningenglish/grammar/learnit/learnitv57.shtml&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-6688096722319363034?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ggch5_ZeLDUBcqvC5HyuMLQkbdQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ggch5_ZeLDUBcqvC5HyuMLQkbdQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ggch5_ZeLDUBcqvC5HyuMLQkbdQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ggch5_ZeLDUBcqvC5HyuMLQkbdQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/_0cRfOdKm1A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/6688096722319363034/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=6688096722319363034" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/6688096722319363034?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/6688096722319363034?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/_0cRfOdKm1A/possesive-s.html" title="The possesive 's" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2008/10/possesive-s.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0IDSXcyeyp7ImA9WxRQGU8.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-6857957293261052337</id><published>2008-10-13T20:05:00.002+02:00</published><updated>2008-10-13T20:12:58.993+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-13T20:12:58.993+02:00</app:edited><title>Some stuff about finance and investment</title><content type="html">This post may seem a bit strange. I had an opportunity to read some articles about some weird stuff of the financial world! Those guys of finance are crazy, and we are to blame that we leave our destiny in the hands of such a bunch of crazy financial people! Here are some links about possible ways of investment:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://ezinearticles.com/?Debentures-Vs.-Stocks-And-Bonds&amp;amp;id=392416"&gt;http://ezinearticles.com/?Debentures-Vs.-Stocks-And-Bonds&amp;amp;id=392416&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://transformyourself.com.jm/faq_fixed_income_investing.html"&gt;http://transformyourself.com.jm/faq_fixed_income_investing.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://financial-dictionary.thefreedictionary.com/Debenture+stock"&gt;http://financial-dictionary.thefreedictionary.com/Debenture+stock&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-6857957293261052337?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8cql_nTMp_QyF6gIx57TVqxk_N8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8cql_nTMp_QyF6gIx57TVqxk_N8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8cql_nTMp_QyF6gIx57TVqxk_N8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8cql_nTMp_QyF6gIx57TVqxk_N8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/OCjFJT31wY8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/6857957293261052337/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=6857957293261052337" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/6857957293261052337?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/6857957293261052337?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/OCjFJT31wY8/some-stuff-about-finance-and-investment.html" title="Some stuff about finance and investment" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2008/10/some-stuff-about-finance-and-investment.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8EQn8yfyp7ImA9WxRQEUk.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-3244075570575087370</id><published>2008-10-04T21:14:00.001+02:00</published><updated>2008-10-04T21:16:43.197+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-04T21:16:43.197+02:00</app:edited><title>Comics about SW Development</title><content type="html">I saw this link posted by a friend, and I followed it. I'm posting it here because it is very realistic and happens to anyone working in the SW industry.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://contikistrip.kjempekjekt.com/index.php?p=1"&gt;http://contikistrip.kjempekjekt.com/index.php?p=1&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-3244075570575087370?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CTPAVPprBrDMPwiF714VIEwAUDY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CTPAVPprBrDMPwiF714VIEwAUDY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/CTPAVPprBrDMPwiF714VIEwAUDY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CTPAVPprBrDMPwiF714VIEwAUDY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/azFHcpqlFMc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/3244075570575087370/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=3244075570575087370" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/3244075570575087370?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/3244075570575087370?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/azFHcpqlFMc/comics-about-sw-development.html" title="Comics about SW Development" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2008/10/comics-about-sw-development.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8FRXYyeyp7ImA9WxRRFUw.&quot;"><id>tag:blogger.com,1999:blog-6839450239155226722.post-6915090350573668541</id><published>2008-09-27T14:20:00.002+02:00</published><updated>2008-09-27T14:33:34.893+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-27T14:33:34.893+02:00</app:edited><title>Buffer Overflow Exploits</title><content type="html">I have recently read the news about Google Chrome Buffer Overflow vulnerability (see &lt;a href="http://seclists.org/bugtraq/2008/Sep/0070.html"&gt;this link&lt;/a&gt;). Admittedly, I was ignorant enough not to understand how a buffer overflow can cause severe security breaches! Wikipedia came to the rescue, as well as some research into the topic of Assembly-language programming. At last I can understand how SEVERE such an attack could be!&lt;br /&gt;&lt;br /&gt;You can dig for it too ;-)&lt;br /&gt;check the Wikipedia article,&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Buffer_overflow"&gt;http://en.wikipedia.org/wiki/Buffer_overflow&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and the excellent book of Programming from the Ground Up, for much better understanding of Assembly:&lt;br /&gt;&lt;a href="http://savannah.nongnu.org/projects/pgubook/"&gt;http://savannah.nongnu.org/projects/pgubook/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6839450239155226722-6915090350573668541?l=bioeng-student.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/if0aHoJJKMHHAhZvyKSvQFt-Xjo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/if0aHoJJKMHHAhZvyKSvQFt-Xjo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/if0aHoJJKMHHAhZvyKSvQFt-Xjo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/if0aHoJJKMHHAhZvyKSvQFt-Xjo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bioeng-student/~4/1sHkVqwms0A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bioeng-student.blogspot.com/feeds/6915090350573668541/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6839450239155226722&amp;postID=6915090350573668541" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/6915090350573668541?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6839450239155226722/posts/default/6915090350573668541?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bioeng-student/~3/1sHkVqwms0A/buffer-overflow-exploits.html" title="Buffer Overflow Exploits" /><author><name>BioEng Student</name><uri>http://www.blogger.com/profile/18249832615346551685</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bioeng-student.blogspot.com/2008/09/buffer-overflow-exploits.html</feedburner:origLink></entry></feed>

