<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Carlos Rene's Web Space</title>
	<atom:link href="http://www1.cs.columbia.edu/~carlosrene/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www1.cs.columbia.edu/~carlosrene</link>
	<description>Research Highlights</description>
	<lastBuildDate>Mon, 27 Jul 2009 23:12:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Reading List</title>
		<link>http://www1.cs.columbia.edu/~carlosrene/?p=637</link>
		<comments>http://www1.cs.columbia.edu/~carlosrene/?p=637#comments</comments>
		<pubDate>Sun, 12 Jul 2009 22:09:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Book Readings]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www1.cs.columbia.edu/~carlosrene/?p=637</guid>
		<description><![CDATA[This weekend I read &#8216;Foundations of Security: What every programmer needs to know&#8217; by Neil Daswani, et al. I got the book for free from him when I answered one of the group questions.  It&#8217;s a great book and great for a course on software security. The book is actually designed to be part [...]]]></description>
			<content:encoded><![CDATA[<p>This weekend I read &#8216;Foundations of Security: What every programmer needs to know&#8217; by Neil Daswani, et al. I got the book for free from him when I answered one of the group questions.  It&#8217;s a great book and great for a course on software security. The book is actually designed to be part of the Computer Security Certification curriculum at Stanford&#8217;s Center for Professional Development.  What I really like about this book is that it provides you with further reading refereneces in the case f new developing technology or exploits that would be worth a look. It&#8217;s a really great teaching book.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www1.cs.columbia.edu/~carlosrene/?feed=rss2&amp;p=637</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Security Theorem #1</title>
		<link>http://www1.cs.columbia.edu/~carlosrene/?p=635</link>
		<comments>http://www1.cs.columbia.edu/~carlosrene/?p=635#comments</comments>
		<pubDate>Wed, 08 Jul 2009 20:25:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://www1.cs.columbia.edu/~carlosrene/?p=635</guid>
		<description><![CDATA[Never allow control of your inputs! Why do you trust your users? They aren&#8217;t nice people, some are trying to break your software. So in essence don&#8217;t ever trust them. Always sanitize your inputs and verify that they conform to white-listed entries.
&#160;
]]></description>
			<content:encoded><![CDATA[<p style="clear: both">Never allow control of your inputs! Why do you trust your users? They aren&#8217;t nice people, some are trying to break your software. So in essence don&#8217;t ever trust them. Always sanitize your inputs and verify that they conform to white-listed entries.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www1.cs.columbia.edu/~carlosrene/?feed=rss2&amp;p=635</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problems I have with KVM</title>
		<link>http://www1.cs.columbia.edu/~carlosrene/?p=628</link>
		<comments>http://www1.cs.columbia.edu/~carlosrene/?p=628#comments</comments>
		<pubDate>Wed, 08 Jul 2009 19:16:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://www1.cs.columbia.edu/~carlosrene/?p=628</guid>
		<description><![CDATA[The idea of leveraging Linux as a hypervisor seems nice because you can utilize Linux constructs that are not on Xen. The problem of course is that there may be bugs lurking in the kernel that we are yet unaware off.
It&#8217;s not just a matter of the core Linux kernel -eventhough I can name a [...]]]></description>
			<content:encoded><![CDATA[<p style="clear: both">The idea of leveraging Linux as a hypervisor seems nice because you can utilize Linux constructs that are not on Xen. The problem of course is that there may be bugs lurking in the kernel that we are yet unaware off.</p>
<p style="clear: both">It&#8217;s not just a matter of the core Linux kernel -eventhough I can name a couple of exploits in the ipv6 stack- there are way more exploits in the kernel modules, specifically drivers.</p>
<p style="clear: both">&nbsp;</p>
<p style="clear: both">Basically Xen security is based on maintaining a small footprint and a limited ABI. Small footprint are beneficial in that as code grows it becomes increasingly hard to maintain as bug-free. As we know, we can&#8217;t have an exploit without an underlying bug. In order to create perfect software you would need infinite time and infinite money, neither of which a vast company like Microsoft has been able to produce -bug-free software-.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www1.cs.columbia.edu/~carlosrene/?feed=rss2&amp;p=628</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Difficulties in Operating Systems Homework #1</title>
		<link>http://www1.cs.columbia.edu/~carlosrene/?p=582</link>
		<comments>http://www1.cs.columbia.edu/~carlosrene/?p=582#comments</comments>
		<pubDate>Sat, 27 Jun 2009 23:19:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[TA Operating Systems (Fall08)]]></category>

		<guid isPermaLink="false">http://www1.cs.columbia.edu/~carlosrene/?p=582</guid>
		<description><![CDATA[Updated: June 28, 2009



Just a couple of clarifications for the programming &#038; non-programming problem set



Programming Set Mistakes:

Remember that compile-time warnings are errors!
Wtar: &#8216;wtar *&#8217; when given the globstar shell option. The meaning of &#8216;*&#8217; according to the bash-shell manual is a pattern matching symbol that matches any string, including the null string. When the globstar [...]]]></description>
			<content:encoded><![CDATA[<p style="clear: both">Updated: June 28, 2009</p>
<p style="clear: both">
<p style="clear: both">
<p style="clear: both">
<h3>Just a couple of clarifications for the programming &#038; non-programming problem set</h3>
</p>
<p style="clear: both">
<p style="clear: both">
<h3>Programming Set Mistakes:</h3>
</p>
<p style="clear: both">Remember that compile-time warnings are errors!</p>
<p style="clear: both"><strong><u>Wtar:</u></strong> &#8216;wtar *&#8217; when given the globstar shell option. The meaning of &#8216;*&#8217; according to the bash-shell manual is a pattern matching symbol that matches any string, including the null string. When the globstar shell option is enabled, and ‘*’ is used in a filename expansion context, two adjacent ‘*’s used as a single pattern will match all files and zero or more directories and subdirectories. If followed by a ‘/’, two adjacent ‘*’s will match only directories and subdirectories. </p>
<p>Thus your program will really be receiving as arguments: &#8220;wtar file1 file2 directory1&#8243; that will be given to the program&#8217;s main() function as argv[][] = { &#8220;wtar&#8221;, &#8220;file1&#8243;, &#8220;file2&#8243;, &#8220;directory1&#8243; } </p>
<p style="clear: both">
<h3>Non-programming Set Mistakes:</h3>
</p>
<ul style="clear: both">
<li>
<h3><strong>Monolithic Kernel:</strong></h3>
<p> OS design in which all system services (Virtual Memory, Signals, IPC&#8217;s, Sockets, Processes, Security Mechanism ~ User ID) are implemented in one large executable binary program that runs entirely in the privileged kernel space.</li>
<li>
<p style="clear: both"></p>
</li>
<li>
<h3><strong>Microkernel:</strong></h3>
<p> OS design in which a few system services (VM, IPC&#8217;s, Processes) are executed in privileged kernel space, while other system services such as (Sockets, Signals, etc..) in order to achieve reliability are run in un-privileged user-space.</li>
<li>
<p style="clear: both"></p>
</li>
<li>
<h3><strong>Exokernel:</strong></h3>
<p> An OS designed only for protection and multiplexing of hardware resources, allowing applications as much access to the underlying hardware as they are allocated.
<ul style="clear: both">
<li>Example is a Library-OS such as <a href="http://portal.acm.org/citation.cfm?id=1254810.1254817">Libra</a>. An OS design that removes redundant system services to improve application performance. For example: Java Virtual Machines provide their own threading model and memory protection, so general-purpose operating system implementations of these abstractions are redundant.</li>
</ul>
</li>
</ul>
<p style="clear: both">
<p style="clear: both">
<p>  <br class="final-break" style="clear: both" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www1.cs.columbia.edu/~carlosrene/?feed=rss2&amp;p=582</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Projects for Summer/Fall 09</title>
		<link>http://www1.cs.columbia.edu/~carlosrene/?p=286</link>
		<comments>http://www1.cs.columbia.edu/~carlosrene/?p=286#comments</comments>
		<pubDate>Tue, 23 Jun 2009 22:23:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://www1.cs.columbia.edu/~carlosrene/?p=286</guid>
		<description><![CDATA[As part of the Network Security Lab (Prof. Angelos Keromytis) I&#8217;m looking for interested Columbia Undergraduate (4901) or Masters (6901) students to work on several research projects related to either mobile computing or operating system security. This research will count as either COMS&#160;4901/6901&#160;Independent Research under Prof. Angelos Keromytis. Interested persons/groups are welcome to e-mail me [...]]]></description>
			<content:encoded><![CDATA[<p style="clear: both">As part of the <a href="http://www.nsl.cs.columbia.edu/">Network Security Lab</a> (<a href="http://www.cs.columbia.edu/~angelos/">Prof. Angelos Keromytis</a>) I&#8217;m looking for interested Columbia Undergraduate (<a href="http://www.cs.columbia.edu/mice/classes/showSessions.php?courseID=53&amp;term=fall&amp;schoolyear=2009&amp;public=1&amp;base=%2Fmice%2Fclasses%2F&amp;#">4901</a>) or Masters (<a href="http://www.cs.columbia.edu/mice/classes/showSessions.php?courseID=74&amp;term=fall&amp;schoolyear=2009&amp;public=1&amp;base=%2Fmice%2Fclasses%2F&amp;#">6901</a>) students to work on several research projects related to either mobile computing or operating system security. This research will count as either COMS&nbsp;<a href="http://www.cs.columbia.edu/mice/classes/showSessions.php?courseID=53&amp;term=fall&amp;schoolyear=2009&amp;public=1&amp;base=%2Fmice%2Fclasses%2F&amp;#">4901</a>/<a href="http://www.cs.columbia.edu/mice/classes/showSessions.php?courseID=74&amp;term=fall&amp;schoolyear=2009&amp;public=1&amp;base=%2Fmice%2Fclasses%2F&amp;#">6901</a>&nbsp;Independent Research under <a href="http://www.cs.columbia.edu/~angelos/">Prof. Angelos Keromytis</a>. Interested persons/groups are welcome to e-mail me or pass by my office (521 CSB) to talk. </p>
<p>&nbsp;</p>
<p style="clear: both"><strong><a href="http://www.cs.columbia.edu/~carlosrene/wp-content/uploads/file/Self-Healing_Software.pdf">Kernel Self-Healing</a></strong></p>
<div>
<ul style="clear: both">
<li>Use Checkpoint and Restart for securing Kernel.</li>
</ul>
</div>
<p style="clear: both"><a class="image-link" href="http://www1.cs.columbia.edu/~carlosrene/wp-content/uploads/2009/06/assurepresentation-full.png"><img class="linked-to-original" height="294" align="left" width="379" style=" display: inline; float: left; margin: 0 10px 10px 0;" alt="" src="http://www1.cs.columbia.edu/~carlosrene/wp-content/uploads/2009/06/assurepresentation-thumb.png" /></a> <br style="clear: both" /><br />
&nbsp;</p>
<div><strong>Checkpoint and Restart</strong>&nbsp;</div>
<ul style="clear: both">
<li>Feasibility of Process Migration using Checkpoint and Restart through different OS (Linux / Mac).</li>
</ul>
<p style="clear: both"><strong>Mobile Computing</strong></p>
<ul style="clear: both">
<li>Context-Aware Computing Additions on iPhone:
<ul style="clear: both">
<li>Camera Detection: Facial Recognition, etc&#8230;</li>
</ul>
</li>
<li>OpenGL User Interfaces</li>
</ul>
<p style="clear: both"><strong> Visualization </strong></p>
<ul style="clear: both">
<li>Table PC Visualization of IDS Information and Vulnerabilities
<ul style="clear: both">
<li>Optics for Projector: to remove depth of touch screen.</li>
</ul>
</li>
</ul>
<hr />
<p>&nbsp;</p>
<p style="clear: both">I&#8217;ll be updating this page with further information as it becomes available.</p>
<p style="clear: both">&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www1.cs.columbia.edu/~carlosrene/?feed=rss2&amp;p=286</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Locking down Wordpress</title>
		<link>http://www1.cs.columbia.edu/~carlosrene/?p=538</link>
		<comments>http://www1.cs.columbia.edu/~carlosrene/?p=538#comments</comments>
		<pubDate>Fri, 05 Jun 2009 19:03:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www1.cs.columbia.edu/~carlosrene/?p=538</guid>
		<description><![CDATA[
There&#8217;s been a string of breaking attempts here at Columbia, so I&#8217;ve decided to take a couple of precautions to lock down my wordpress blog. Here are a couple of useful links:

Wordpress Security Tips and Hacks

&#160;
]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-540" href="http://www1.cs.columbia.edu/~carlosrene/?attachment_id=540"><img alt="login-lockdown-a-wordpress-enhanced-login-security-plugin" title="login-lockdown-a-wordpress-enhanced-login-security-plugin" width="512" height="341" class="aligncenter size-full wp-image-540" src="http://www1.cs.columbia.edu/~carlosrene/wp-content/uploads/2009/06/login-lockdown-a-wordpress-enhanced-login-security-plugin.jpg" /></a></p>
<p>There&#8217;s been a string of breaking attempts here at Columbia, so I&#8217;ve decided to take a couple of precautions to lock down my wordpress blog. Here are a couple of useful links:</p>
<ul>
<li><a href="http://www.noupe.com/how-tos/wordpress-security-tips-and-hacks.html ">Wordpress Security Tips and Hacks</a></li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www1.cs.columbia.edu/~carlosrene/?feed=rss2&amp;p=538</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Status [June 4, 2009]</title>
		<link>http://www1.cs.columbia.edu/~carlosrene/?p=530</link>
		<comments>http://www1.cs.columbia.edu/~carlosrene/?p=530#comments</comments>
		<pubDate>Thu, 04 Jun 2009 14:07:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Status Updates]]></category>
		<category><![CDATA[Visualization]]></category>

		<guid isPermaLink="false">http://www1.cs.columbia.edu/~carlosrene/?p=530</guid>
		<description><![CDATA[&#160;
iPhone doesn&#8217;t have a Layout Manager, so I&#8217;m creating one.
]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>iPhone doesn&#8217;t have a Layout Manager, so I&#8217;m creating one.</p>
]]></content:encoded>
			<wfw:commentRss>http://www1.cs.columbia.edu/~carlosrene/?feed=rss2&amp;p=530</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Palm Pre&#8217;s First Reviews</title>
		<link>http://www1.cs.columbia.edu/~carlosrene/?p=508</link>
		<comments>http://www1.cs.columbia.edu/~carlosrene/?p=508#comments</comments>
		<pubDate>Thu, 04 Jun 2009 10:44:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www1.cs.columbia.edu/~carlosrene/?p=508</guid>
		<description><![CDATA[&#160;
Wired.com has one of the first reviews on the upcoming Palm Pre! The best part: &#34;Now led by a CEO with a pedigree from the company it hopes to challenge (Jon Rubinstein, who headed the division that created Apple&#8217;s iPod), Palm once again claims to be a contender.&#34;&#160;
I&#8217;m watching out for this one, a new [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-509" href="http://www1.cs.columbia.edu/~carlosrene/?attachment_id=509"><img alt="pr_palmpre_f" title="pr_palmpre_f" width="680" height="425" class="aligncenter size-full wp-image-509" src="http://www1.cs.columbia.edu/~carlosrene/wp-content/uploads/2009/06/pr_palmpre_f.jpg" /></a>&nbsp;</p>
<p><a href="http://www.wired.com/reviews/product/palmpre">Wired.com</a> has one of the first reviews on the upcoming Palm Pre! The best part: &quot;Now led by a CEO with a pedigree from the company it hopes to challenge (Jon Rubinstein, who headed the division that created Apple&#8217;s iPod), Palm once again claims to be a contender.&quot;&nbsp;</p>
<p>I&#8217;m watching out for this one, a new device to add to Columbia&#8217;s Mobile Computing Course!</p>
]]></content:encoded>
			<wfw:commentRss>http://www1.cs.columbia.edu/~carlosrene/?feed=rss2&amp;p=508</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Status [June 3, 2009]</title>
		<link>http://www1.cs.columbia.edu/~carlosrene/?p=495</link>
		<comments>http://www1.cs.columbia.edu/~carlosrene/?p=495#comments</comments>
		<pubDate>Wed, 03 Jun 2009 18:07:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Status Updates]]></category>

		<guid isPermaLink="false">http://www1.cs.columbia.edu/~carlosrene/?p=495</guid>
		<description><![CDATA[&#160;

I&#8217;m happy with my progress today, so I decided to go all out describing what I&#8217;ve done.
&#160;
&#160;
First thing I did was add some new things to the summer OS CVN course homework. It&#8217;s not like I&#8217;m dedicating much time to it, I just enjoy the teaching aspect of TA&#8217;ing and I needed to give them [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
<div>I&#8217;m happy with my progress today, so I decided to go all out describing what I&#8217;ve done.</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<p>First thing I did was add some new things to the summer OS CVN course homework. It&#8217;s not like I&#8217;m dedicating much time to it, I just enjoy the teaching aspect of TA&#8217;ing and I needed to give them the 2nd homework.&nbsp;So what I *quickly* did for homework 2 (already sent out) was include&nbsp;some Windows Kernel programming. Originally on homework 2 they learn how to use the Linux Kernel Debugger, NOW they also learn to use the WinDBG kernel debugger, where to get the Windows Kernel Symbol from MS, information and how to see what modules are loaded, how to do breakpoints (I&#8217;m applying what I learned from MSR last summer).</p>
<div>&nbsp;</div>
<div>The idea is to have them learn as much as possible about both environments. Eventually the next homework will include information on creating a Windows Kernel Module, other homework ideas: Windows User Mode Scheduling (for scheduling homework) &#8230;etc&#8230;</p>
<div>
<div>&nbsp;</div>
<hr />
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>For the Mobile Context-Aware Application, since I want to demo the app for Friday. I want to dedicate more time this week to get it done and off the stack. Though I have plenty of ideas that I would like to implement and eventually work on this as a long-term project that I want to add more machine learning into the phone.</div>
<div>&nbsp;</div>
<div>*Speaker Recognition*: I added code to record and save wave PCM files and I upload them as an HTTP post to my&nbsp;web-server&nbsp;(this is the&nbsp;back-end web-server&nbsp;I created on June 1st). Ideally I would like to do the processing &quot;on-site&quot; on the phone, but in the interest of a speedy prototype I&#8217;m going to use an Octave/Matlab on the back-end to process that data, since matlab has really great support for representing and working with this type of data than I would have with any other mechanism on the phone. Otherwise I would also need to implement and debug on the phone: it will just take much longer and I&#8217;m more worried about the debug time, especially on a slow device and then optimizing on that device. On the other hand, on my workstation I can just be lazy about memory allocation and CPU resources. I already have the Matlab code that does some limited Speaker recognition, though I need add some wrappers for my data format (the code uses some other data format) and see what else from the Matlab code I need to change.</div>
<div>&nbsp;</div>
<div>I&#8217;ve done some research into how the problem should be solved:&nbsp;The first problem is that of Segmentation (removing the stuff such as noise and data you don&#8217;t want to analyze). I&#8217;ve read about some work on using vowel sounds (as mentioned June 2, 09 email) as the easiest identifying data we can get from a speakers voice because vowels are usually&nbsp;easily&nbsp;identifiable on the frequency spectrum as a series low-freq &amp; high amplitude waves [6 - there are some nice images of what I'm talking about here also]. Once I&#8217;ve gotten a segmentation of the vowel sounds on Matlab, I&#8217;ll be able to do an easy FFT of the vowels small window/time size and eventually compare it to a small set of training vowels sounds for N speakers. I&#8217;m decided on focusing on the vowels sounds since I would like this algorithm to eventually run on the phone itself, and a small training set is obviously better for a mobile device.</div>
<div>&nbsp;</div>
<div>Armed with that FFT I&#8217;ll converted my raw data into an attribute/&quot;feature&quot; vector that I can compare to my training data using a Support Vector Machine. I don&#8217;t know if the features from the FFT will be linearly separable, but to be on the same side I&#8217;ll just use a radial basis kernel that converts it to an infinite dimensional space. Hopefully it will be&nbsp;separable in that new higher dimensional feature space.&nbsp;Running that in my back-end I can the notify the phone of new data and query the classification.</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>*Gesture recognition* (IMPLEMENTED, TWEAKING AND MORE TRAINING DATA, missing segmentation): As I mentioned in the last paragraph I&#8217;m using my web-server for prototype recognition code. The other sensors I&#8217;m using in the app is the accelerometer: I want to be able to distinguish what a user is doing with the phone: reading data from the screen, walking&#8230; etc&#8230;</div>
<div>&nbsp;</div>
<div>So, like the speaker recognition problem I have to do segmentation and feature extraction on the raw accelerometer data. I found a nifty paper by [7] in which they do (I talk about segmentation below) feature extraction by visualizing two orthogonal intersecting circles with 14 uniformly distributed cluster centroids and choosing the min {distance between accel vector v. cluster centroid}. And bingo! We&#8217;ve got a nice feature extraction algorithm with magnitude appended to it. I then convert these 14 directions into a string representation (like a genetic code) and send it over to my&nbsp;web-server&nbsp;as an HTTP Post message for processing.</div>
<div>&nbsp;</div>
<div>The benefit of converting it to a string is that there are tons, and tons of algorithms in Bio-Informatics to calculate similarities/alignment/etc of string sequences! For this case I&#8217;m using the Levenshtein distance[8] to penalize the difference between two sequences (testing v. training). With this information I&#8217;m able to classify gestures such as moving your phone in a circle fashion v. a triangle fashion. As evidence of this I&#8217;ve attached two images of recorded feature vectors in a 2-D space!!&nbsp;</div>
<div>&nbsp;</div>
<div>Keep in mind that the images include pre/post noise that we don&#8217;t really want, that needs to be segmented out! BUT there is another string comparison algorithm that is based on first aligning the strings and ignoring segments that are not in both strings called Pairwise Sequence Alignment [9] this algorithm is difficult to implement and I don&#8217;t quite understand it completely (maybe future work, but not for a quick prototype). But it would definitely solve our segmentation problem.</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>*Mobile Storage*: I created a model for the data I&#8217;m storing in the app using an Object Relational Database to store everything. I have to backup this database to the back-end server since I currently store it on the phone&#8217;s local storage.</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>*Also*, I&#8217;ve decided on&nbsp;separating&nbsp;all these components into&nbsp;separate&nbsp;apps, since one major app is becoming difficult to maintain especially since I&#8217;m researching how to do these things and whenever I change something I end up messing some other code or its just to much of a big prototype code-base.</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<hr />
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>For Kernel Assure, I already mentioned that I got KernInst library (C++ instrumentation wrapper library)&nbsp;/ kernInst daemon (instrumentation daemon) / kernInst kernel module compiled and loaded on my VM. But when I try to instrument with KPerfmon (a GUI to KernInst profiling) I get a weird error that is pretty cryptic message (which Google returns 0 results):</div>
<div>&nbsp;</div>
<div>***</div>
<div>
<div>kerninstd: ../../../kerninstd/function/src/funkshun.h:862: monotone_bitwise_dataflow_fn* function_t::getLiveRegFnForAnExitEdge(uint16_t, uint16_t, const calcEffectOfCall&amp;) const [with calcEffectOfCall = RegAnalysisHandleCall_FirstTime]: Assertion `branchDestAddr != (kptr_t)-1 &amp;&amp; &quot;expected basic block to end in a branch&quot;&#8217; failed.</div>
<div>***</div>
<div>&nbsp;</div>
<div>I&#8217;ve included the full kernel log as [1]. In essence I&#8217;ve got some options:</div>
<div>a) send the log to mjbrim@cs.wisc.edu (Michael Brim) [4,5] (still a PhD student there) and hopefully someone is still maintaining it &#8211; though the creator Ariel Tamches[3] already&nbsp;graduated (he should be working at VMWare CA &#8211; from the info of his wisc webpage)</div>
<div>&nbsp;</div>
<div>b) take a look at the inner details of the fault through reading the source code and using the authors Thesis [2] that describes on chapter 3-6 the inner details of the code/algorithm.</div>
<div>&nbsp;</div>
<div>c) run the daemon through the GDB debugger to see what is being called and maybe there is more source documentation on where its failing. Also get the stack trace, etc&#8230;</div>
<div>&nbsp;</div>
<div>I decided to proceed with (c) since I&#8217;m not to fond of bothering people until I&#8217;ve exhausted all possible options. If I do verbose debugging it filled my screen with 64,485 lines of debugging output. So instead I just ran it inside GDB and let it see where it faults. The *weird* thing is that when I ran it inside GDB it worked!! There is probably some race condition somewhere in which running the code slowly makes it work. <img src='http://www1.cs.columbia.edu/~carlosrene/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </div>
<div>&nbsp;</div>
<div>***</div>
<div>
<div>There are 2 modules</div>
<div>fillin_functionsWithKnownNumLevelsByAddr() bye: parsed 0 entries</div>
<div>kerninstd &#8212; finished with startup &#8212; entering main loop now</div>
<div>Reminder: press ^C in this window to exit kerninstd at any time&#8230;</div>
<div>The chosen accept port number is 32769</div>
<div>Kerninstd ready.</div>
<div>***</div>
</div>
</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>[9] &quot;Pairwise Sequence Alignment&quot;&nbsp;http://web.cecs.pdx.edu/~ps/CapStone03/dynvis/SimilarityApplet.html</div>
<div>[8] &quot;Levenshtein Distance&quot;&nbsp;http://en.wikipedia.org/wiki/Levenshtein_distance</div>
<div>[7] Schlomer, T., Poppinga, B., Henze, N., Boll, S. &quot;Gesture recognition on the Wii controller&quot;&nbsp;http://portal.acm.org/citation.cfm?doid=1347390.1347395</div>
<div>[6]&nbsp;http://hyperphysics.phy-astr.gsu.edu/hbase/music/vowel2.html#c3</div>
<div>[5]&nbsp;http://pages.cs.wisc.edu/~mjbrim/</div>
<div>[4] &quot;KernInst User&#8217;s Guide&quot;&nbsp;http://www.paradyn.org/kerninst/release-2.1.2/users_guide.pdf</div>
<div>[3] Ariel Tamches&nbsp;http://pages.cs.wisc.edu/~tamches/</div>
<div>[2] Tamches, A. &quot;KernInst Thesis&quot;&nbsp;http://pages.cs.wisc.edu/~tamches/mydissertation.pdf</div>
<div>[1] Cryptic Kernel Debug Output from KernInst profiling (I took it out since it was way long long output&#8230;)</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td width="50%">
<h3>Kernel Assure</h3>
</td>
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td width="50%">
<h3>Context-Aware Mobile Computing</h3>
</td>
</tr>
<tr>
<td width="50%" valign="top">
<h4>&nbsp;</h4>
<h4><u><strong>Today</strong></u>: Simulate<u><strong><br />
            </strong></u></h4>
</td>
<td>&nbsp;</td>
<td width="50%" valign="middle">
<h4>&nbsp;</h4>
<h4><u><strong>Today</strong></u>: Research Speaker Recognition Module. Do Gesture Recognition</h4>
<p>&nbsp;</p>
</td>
</tr>
<tr>
<td width="50%" valign="top">
<h4><u><strong>Tomorrow</strong></u>: Simulate bug and replay with VMWare Record &amp; Replay.</h4>
</td>
<td>&nbsp;</td>
<td width="50%" valign="top">
<h4><u><strong>Tomorrow</strong></u>:&nbsp;</h4>
</td>
</tr>
<tr>
<td valign="top">
<p>Useful Links:</p>
<ul>
<li><a href="http://www.paradyn.org/kerninst/release-2.1.2/users_guide.pdf">KernInst User&#8217;s Guide&nbsp;</a></li>
<li><a href="http://www.paradyn.org/kerninst/release-2.1.2/kapiProgGuide.html">KernInst API Programming Guide</a></li>
<li><a href="http://www.paradyn.org/kerninst/release-2.1.2/kapiRefGuide.html">KernInst API Reference Guide</a></li>
</ul>
<p>&nbsp;First step is to simulate a kernel exploit on 2.6.12.6</p>
<p>&nbsp;</p>
<table width="200" cellspacing="1" cellpadding="1" border="1" align="center">
<caption>KernInst Hierarchy</caption>
<tbody>
<tr>
<td style="text-align: center;">libkerninstapi</td>
</tr>
<tr>
<td style="text-align: center;">kerninstd</td>
</tr>
<tr>
<td style="text-align: center;">kerninst [module]</td>
</tr>
</tbody>
</table>
<p>&nbsp;Run the KernInst Daemon:</p>
<table width="100%" border="1" cellpadding="1" cellspacing="1">
<tbody>
<tr>
<td>
<p><code>kerninstd -system_map /boot/System.map-2.6.12.6</code></p>
<p>&nbsp;</p>
<p><code>Welcome to Kerninstd, v2.1.2</code></p>
<p><code>Using file /boot/System.map-2.6.12.6 as System.map</code></p>
<p><code>cpu0: 2663.14 MHz</code></p>
<p><code>Analyzing kernel image...</code></p>
<p><code>note: could not open skips.txt file; continuing</code></p>
<p><code>note: could not open returning_funcs.txt file; continuing</code></p>
<p><code>note: could not open function_numlevels.txt file; continuing</code></p>
<p><code>Found absolute jump to non-kernel segment @ 0xc010f88a to seg(0x0008):offset(00000f71)</code></p>
<p><code>Warning: fn kernel/init at 0xC0100288 has no exit points.</code></p>
<p><code>&nbsp;&nbsp; (Expected, and OK, if the function has an infinite loop; e.g. a daemon thread)</code></p>
<p><code>Warning: fn kernel/cpu_idle at 0xC0100A5C has no exit points.</code></p>
<p><code>&nbsp;&nbsp; (Expected, and OK, if the function has an infinite loop; e.g. a daemon thread)</code></p>
<p><code>Warning: fn kernel/die_nmi at 0xC01048C1 has no exit points.</code></p>
<p><code>&nbsp;&nbsp; (Expected, and OK, if the function has an infinite loop; e.g. a daemon thread)</code></p>
<p><code>Warning: fn kernel/doublefault_fn at 0xC010B58C has no exit points.</code></p>
<p><code>&nbsp;&nbsp; (Expected, and OK, if the function has an infinite loop; e.g. a daemon thread)</code></p>
<p><code>Warning: fn kernel/panic at 0xC01182D7 has no exit points.</code></p>
<p><code>&nbsp;&nbsp; (Expected, and OK, if the function has an infinite loop; e.g. a daemon thread)</code></p>
<p><code>Warning: fn kernel/__module_put_and_exit at 0xC013CFEE has no exit points.</code></p>
<p><code>&nbsp;&nbsp; (Expected, and OK, if the function has an infinite loop; e.g. a daemon thread)</code></p>
<p><code>Warning: fn kernel/kswapd at 0xC0152DA0 has no exit points.</code></p>
<p><code>&nbsp;&nbsp; (Expected, and OK, if the function has an infinite loop; e.g. a daemon thread)</code></p>
<p><code>Warning: fn kernel/recall_thread at 0xC020FE02 has no exit points.</code></p>
<p><code>&nbsp;&nbsp; (Expected, and OK, if the function has an infinite loop; e.g. a daemon thread)</code></p>
<p><code>Warning: fn kernel/nfs_callback_svc at 0xC021138C has no exit points.</code></p>
<p><code>&nbsp;&nbsp; (Expected, and OK, if the function has an infinite loop; e.g. a daemon thread)</code></p>
<p><code>Warning: fn kernel/reclaimer_0xC021393E at 0xC021393E has no exit points.</code></p>
<p><code>&nbsp;&nbsp; (Expected, and OK, if the function has an infinite loop; e.g. a daemon thread)</code></p>
<p><code>Warning: fn kernel/lockd at 0xC021620A has no exit points.</code></p>
<p><code>&nbsp;&nbsp; (Expected, and OK, if the function has an infinite loop; e.g. a daemon thread)</code></p>
<p><code>Warning: fn kernel/pnp_dock_thread at 0xC0241369 has no exit points.</code></p>
<p><code>&nbsp;&nbsp; (Expected, and OK, if the function has an infinite loop; e.g. a daemon thread)</code></p>
<p><code>There are 2 modules</code></p>
<p><code>fillin_functionsWithKnownNumLevelsByAddr() bye: parsed 0 entries</code></p>
<p><code>kerninstd: ../../../kerninstd/function/src/funkshun.h:862: monotone_bitwise_dataflow_fn* function_t::getLiveRegFnForAnExitEdge(uint16_t, uint16_t, const calcEffectOfCall&amp;) const [with calcEffectOfCall = RegAnalysisHandleCall_FirstTime]: Assertion `branchDestAddr != (kptr_t)-1 &amp;&amp; &quot;expected basic block to end in a branch&quot;' failed.</code></p>
<p><code>Aborted</code></p>
<p>&nbsp;</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
</td>
<td>&nbsp;</td>
<td valign="top">
<p>&nbsp;</p>
<p>&nbsp;</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www1.cs.columbia.edu/~carlosrene/?feed=rss2&amp;p=495</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Status [June 2, 2009]</title>
		<link>http://www1.cs.columbia.edu/~carlosrene/?p=475</link>
		<comments>http://www1.cs.columbia.edu/~carlosrene/?p=475#comments</comments>
		<pubDate>Tue, 02 Jun 2009 16:38:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Status Updates]]></category>

		<guid isPermaLink="false">http://www1.cs.columbia.edu/~carlosrene/?p=475</guid>
		<description><![CDATA[



Kernel Assure

&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;

Context-Aware Mobile Computing




&#160;
Today: Simulate
            

&#160;

&#160;
Today: Research Speaker Recognition Module
&#160;




Tomorrow: Simulate bug and replay with VMWare Record &#38; Replay.

&#160;

Tomorrow: Continue updating web-db interface.




Useful Links:

KernInst User&#8217;s Guide&#160;
KernInst API Programming Guide
KernInst API Reference Guide

&#160;First step is to simulate a kernel exploit on 2.6.12.6

&#160;

&#160;
Use the microphone to [...]]]></description>
			<content:encoded><![CDATA[<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td width="50%">
<h3>Kernel Assure</h3>
</td>
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td width="50%">
<h3>Context-Aware Mobile Computing</h3>
</td>
</tr>
<tr>
<td width="50%" valign="top">
<h4>&nbsp;</h4>
<h4><u><strong>Today</strong></u>: Simulate<u><strong><br />
            </strong></u></h4>
</td>
<td>&nbsp;</td>
<td width="50%" valign="middle">
<h4>&nbsp;</h4>
<h4><u><strong>Today</strong></u>: Research Speaker Recognition Module</h4>
<p>&nbsp;</p>
</td>
</tr>
<tr>
<td width="50%" valign="top">
<h4><u><strong>Tomorrow</strong></u>: Simulate bug and replay with VMWare Record &amp; Replay.</h4>
</td>
<td>&nbsp;</td>
<td width="50%" valign="top">
<h4><u><strong>Tomorrow</strong></u>: Continue updating web-db interface.</h4>
</td>
</tr>
<tr>
<td valign="top">
<p>Useful Links:</p>
<ul>
<li><a href="http://www.paradyn.org/kerninst/release-2.1.2/users_guide.pdf">KernInst User&#8217;s Guide&nbsp;</a></li>
<li><a href="http://www.paradyn.org/kerninst/release-2.1.2/kapiProgGuide.html">KernInst API Programming Guide</a></li>
<li><a href="http://www.paradyn.org/kerninst/release-2.1.2/kapiRefGuide.html">KernInst API Reference Guide</a></li>
</ul>
<p>&nbsp;First step is to simulate a kernel exploit on 2.6.12.6</p>
</td>
<td>&nbsp;</td>
<td valign="top">
<p>&nbsp;</p>
<p>Use the microphone to recognize the speaker using the acoustic features of speech. We are interested in &quot;open-set speaker identification&quot; that involves identifying the speaker among a closed set of L reference speakers or may be none of the L reference speakers.&nbsp;</p>
<p>&nbsp;</p>
<div>I decided to delve more into the mobile Context-Aware computing app since I worked yesterday on the backend and didn&#8217;t touch the app. Today I researched how to do Speaker Recognition with trained voice patterns attached to address book contacts (open-set identification).&nbsp;My goal is to create an idealized automatic speaker recognition system for my context awareness app, so that using the microphone it is able to distinguish nearby participants.</div>
<div>&nbsp;</div>
<div>I delved into the specific list of features [1] and most importantly the&nbsp;algorithm that performs the feature extraction: by calculating the mel-frequency cepstrum coefficients. Which is just a couple of big words for a algorithmic-variation of calculating the coefficients of a&nbsp;discrete Fourier Transform[2].</div>
<div>&nbsp;</div>
<div>I saw that there was a lot of previous research on the area, mostly closed-source systems, some Matlab[3] code that would perform the algorithm, ms-dos code (very 1993). [4] Obviously the CMU Speech Lab [5] that has the Spinx project: speech recognition, which is outside the current field I&#8217;m investigating since I&#8217;m just looking at the small&nbsp;niche: automatic speaker recognition.</div>
<div>&nbsp;</div>
<div>
<div>Problems that I&#8217;ve been having are the specific formats the phones encode their audio. If I could just get raw PCM recording then there are libraries that handle this format easily. I already have a very compact FFT library [6].</div>
<div>&nbsp;</div>
<div>[1] Mariani, J. &quot;Spoken Language Processing&quot; 2009.</div>
<div>[2]&nbsp;http://en.wikipedia.org/wiki/Mel_frequency_cepstral_coefficient</div>
<div>[3] &quot;Speaker Identification MATLAB files&quot;&nbsp;http://cnx.org/content/m14201/latest/</div>
<div>[4] &quot;Speech Filing System&quot; UCL Dept of Speech, Hearing &amp; Phonetic Sciences&nbsp;http://www.phon.ucl.ac.uk/resource/sfs/</div>
<div>[5] &quot;Speech at CMU&quot;&nbsp;http://www.speech.cs.cmu.edu/</div>
<div>[6] &quot;Kiss FFT: A mixed-radix Fast Fourier Transform based on the principle &#8211; Keep It Simple, Stupid&quot;&nbsp;http://sourceforge.net/projects/kissfft</div>
<div>[7] &quot;Speech Processing Workstation&quot;&nbsp;http://www.ele.auckland.ac.nz/~p4p_2004/archive/reports2003/pdfs/p60_hlai015.pdf</div>
<div>[8] &quot;Vowel Sounds&quot;&nbsp;http://hyperphysics.phy-astr.gsu.edu/hbase/music/vowel.html</div>
</p></div>
<p>&nbsp;</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www1.cs.columbia.edu/~carlosrene/?feed=rss2&amp;p=475</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Status [June 1, 2009]</title>
		<link>http://www1.cs.columbia.edu/~carlosrene/?p=411</link>
		<comments>http://www1.cs.columbia.edu/~carlosrene/?p=411#comments</comments>
		<pubDate>Mon, 01 Jun 2009 15:37:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Status Updates]]></category>

		<guid isPermaLink="false">http://www1.cs.columbia.edu/~carlosrene/?p=411</guid>
		<description><![CDATA[



Kernel Assure

&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;

Context-Aware Mobile Computing




&#160;
End of the Day: Installed kerninst on normal VM (no UML / Debian Lenny) instance (2.6.12.6 with g++-3.4).
            

&#160;

&#160;
End of the Day: Created mod_python + MySQL backend to store agent updates from any phone (iPhone/Android).
&#160;




Next: Simulate bug and replay with VMWare [...]]]></description>
			<content:encoded><![CDATA[<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td width="50%">
<h3>Kernel Assure</h3>
</td>
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td width="50%">
<h3>Context-Aware Mobile Computing</h3>
</td>
</tr>
<tr>
<td width="50%" valign="top">
<h4>&nbsp;</h4>
<h4><u><strong>End of the Day</strong></u>: Installed kerninst on normal VM (no UML / Debian Lenny) instance (2.6.12.6 with g++-3.4).<u><strong><br />
            </strong></u></h4>
</td>
<td>&nbsp;</td>
<td width="50%" valign="middle">
<h4>&nbsp;</h4>
<h4><u><strong>End of the Day</strong></u>: Created mod_python + MySQL backend to store agent updates from any phone (iPhone/Android).</h4>
<p>&nbsp;</p>
</td>
</tr>
<tr>
<td width="50%" valign="top">
<h4><u><strong>Next</strong></u>: Simulate bug and replay with VMWare Record &amp; Replay.</h4>
</td>
<td>&nbsp;</td>
<td width="50%" valign="top">
<h4><u><strong>Next</strong></u>: Continue updating web-db interface.</h4>
</td>
</tr>
<tr>
<td>
<p>&nbsp;</p>
<p>Must use a 32-bit VM since 64-bit Linux doesn&#8217;t seem to be supported. While following the BUILD_GUIDE on linux-2.6.27.12 compiling the kerninstdriver-linux I get:</p>
<table width="100%" cellspacing="1" cellpadding="1" border="1">
<tbody>
<tr>
<td><small>make[1]: Entering directory `/usr/src/linux-2.6.27.12&#8242;<br />
                        &nbsp; CC [M]&nbsp; /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.o<br />
                        In file included from /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst.h:74,<br />
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; from /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:9:<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-x86.h:55: error: expected &lsquo;=&rsquo;, &lsquo;,&rsquo;, &lsquo;;&rsquo;, &lsquo;asm&rsquo; or &lsquo;__attribute__&rsquo; before &lsquo;void&rsquo;<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-x86.h:56: error: expected &lsquo;=&rsquo;, &lsquo;,&rsquo;, &lsquo;;&rsquo;, &lsquo;asm&rsquo; or &lsquo;__attribute__&rsquo; before &lsquo;void&rsquo;<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-x86.h: In function &lsquo;get_int3_handler&rsquo;:<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-x86.h:132: error: &lsquo;do_int3&rsquo; undeclared (first use in this function)<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-x86.h:132: error: (Each undeclared identifier is reported only once<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-x86.h:132: error: for each function it appears in.)<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-x86.h: In function &lsquo;install_trap_mapping&rsquo;:<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-x86.h:164: error: &lsquo;kerninst_int3_handler&rsquo; undeclared (first use in this function)<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-x86.h: At top level:<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-x86.h:218: error: expected &lsquo;=&rsquo;, &lsquo;,&rsquo;, &lsquo;;&rsquo;, &lsquo;asm&rsquo; or &lsquo;__attribute__&rsquo; before &lsquo;void&rsquo;<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c: In function &lsquo;init_kerninst&rsquo;:<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:58: error: implicit declaration of function &lsquo;rdtsc&rsquo;<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c: In function &lsquo;kerninst_open&rsquo;:<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:150: warning: passing argument 1 of &lsquo;on_each_cpu&rsquo; from incompatible pointer type<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:150: error: too many arguments to function &lsquo;on_each_cpu&rsquo;<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:154: warning: passing argument 1 of &lsquo;on_each_cpu&rsquo; from incompatible pointer type<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:154: error: too many arguments to function &lsquo;on_each_cpu&rsquo;<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c: In function &lsquo;kerninst_release&rsquo;:<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:196: warning: passing argument 1 of &lsquo;on_each_cpu&rsquo; from incompatible pointer type<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:196: error: too many arguments to function &lsquo;on_each_cpu&rsquo;<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:200: warning: passing argument 1 of &lsquo;on_each_cpu&rsquo; from incompatible pointer type<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:200: error: too many arguments to function &lsquo;on_each_cpu&rsquo;<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c: In function &lsquo;kerninst_ioctl&rsquo;:<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:596: warning: passing argument 1 of &lsquo;on_each_cpu&rsquo; from incompatible pointer type<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:596: error: too many arguments to function &lsquo;on_each_cpu&rsquo;<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:635: warning: passing argument 1 of &lsquo;on_each_cpu&rsquo; from incompatible pointer type<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:635: error: too many arguments to function &lsquo;on_each_cpu&rsquo;<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:679: error: too many arguments to function &lsquo;on_each_cpu&rsquo;</small></td>
</tr>
</tbody>
</table>
<p>&nbsp;A quick fix is to add the following at the first error above line 55:</p>
<table width="100%" cellspacing="1" cellpadding="1" border="1">
<tbody>
<tr>
<td><small>//fastcall<br />
                        #undef DOINT3_ATTR<br />
                        #define DOINT3_ATTR __attribute__((regparm(3)))</small></td>
</tr>
</tbody>
</table>
<p>&nbsp;After which the second error in line 221 since struct pt_regs (asm/ptrace.h) has a different naming scheme depending on whether we are in kernel mode or user mode: update eip-&gt;ip. Don&#8217;t remember why this is though, the kernel just keeps changing to rapidly to hook onto every single time. I wonder if the kernInst people recommend a specific kernel? (2.6.12)?</p>
<table width="100%" cellspacing="1" cellpadding="1" border="1">
<tbody>
<tr>
<td><small>make[1]: Entering directory `/usr/src/linux-2.6.27.12&#8242;<br />
                        &nbsp; CC [M]&nbsp; /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.o<br />
                        In file included from /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst.h:74,<br />
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; from /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:9:<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-x86.h: In function &lsquo;get_int3_handler&rsquo;:<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-x86.h:132: warning: assignment from incompatible pointer type<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c: In function &lsquo;init_kerninst&rsquo;:<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:58: error: implicit declaration of function &lsquo;rdtsc&rsquo;<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c: In function &lsquo;kerninst_open&rsquo;:<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:150: warning: passing argument 1 of &lsquo;on_each_cpu&rsquo; from incompatible pointer type<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:150: error: too many arguments to function &lsquo;on_each_cpu&rsquo;<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:154: warning: passing argument 1 of &lsquo;on_each_cpu&rsquo; from incompatible pointer type<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:154: error: too many arguments to function &lsquo;on_each_cpu&rsquo;<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c: In function &lsquo;kerninst_release&rsquo;:<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:196: warning: passing argument 1 of &lsquo;on_each_cpu&rsquo; from incompatible pointer type<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:196: error: too many arguments to function &lsquo;on_each_cpu&rsquo;<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:200: warning: passing argument 1 of &lsquo;on_each_cpu&rsquo; from incompatible pointer type<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:200: error: too many arguments to function &lsquo;on_each_cpu&rsquo;<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c: In function &lsquo;kerninst_ioctl&rsquo;:<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:596: warning: passing argument 1 of &lsquo;on_each_cpu&rsquo; from incompatible pointer type<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:596: error: too many arguments to function &lsquo;on_each_cpu&rsquo;<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:635: warning: passing argument 1 of &lsquo;on_each_cpu&rsquo; from incompatible pointer type<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:635: error: too many arguments to function &lsquo;on_each_cpu&rsquo;<br />
                        /home/carlosrene/src/kerninst-2.1.2-Linux-src/kerninstdriver-linux/i386-unknown-linux2.6/../src/kerninst-main.c:679: error: too many arguments to function &lsquo;on_each_cpu&rsquo;</small></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<hr />
<h3 style="color: Red;">&nbsp;Decided best option is to revert to 2.6.12.6 kernel and gcc/g++ 3.4 (http://www.si.backports.org/debian/pool/main/g/gcc-3.4/?S=D) since there could be many other unknown bugs/behavior and I just want a working reference implementation.</h3>
<p>Remember that 2.6.12 kernels don&#8217;t support LsiLogic SCSI virtual PCI card, instead have to switch vm configuration to &quot;buslogic&quot; scsi card.</p>
<p>Then recompile everything with g++-3.4 and linux-2.6.12.6, skipping visualization tools and the kperfmon.</p>
<p>&nbsp;</p>
</td>
<td>&nbsp;</td>
<td valign="top">
<p>&nbsp;</p>
<p>Backend Server: I needed a backend server to save all my sensor data for the multiple devices I will be pushing. Decided on using <a href="https://wiki.ubuntu.com/Django">Django</a>. Install according to <a href="https://wiki.ubuntu.com/Django">https://wiki.ubuntu.com/Django</a> Then look at the <a href="http://docs.djangoproject.com/en/dev/intro/overview/">Django Overview</a>.</p>
<p>Final backend db: <a href="http://carlosrene.cs.columbia.edu:8080/admin/">http://carlosrene.cs.columbia.edu:8080/admin/</a></p>
<p>Stored in [ContextAware Backend 64-bit.vmx] with <a href="http://blog.juliankamil.com/article/27/vmware-fusion-port-forwarding-in-nat-mode">VMWare NAT Port Forwarding</a>.</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www1.cs.columbia.edu/~carlosrene/?feed=rss2&amp;p=411</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Best time to start a business</title>
		<link>http://www1.cs.columbia.edu/~carlosrene/?p=407</link>
		<comments>http://www1.cs.columbia.edu/~carlosrene/?p=407#comments</comments>
		<pubDate>Mon, 01 Jun 2009 02:31:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www1.cs.columbia.edu/~carlosrene/?p=407</guid>
		<description><![CDATA[From CNet:
&#34;Draper pointed to over two dozen companies that were founded in recessions and depressions including giants like General Electric, Chevron, and Coca-Cola. Also included were more tech-oriented companies like Skype (of which Draper was an investor), Microsoft, Hewlett-Packard, Kodak, and Adobe Systems.&#34;&#8230;&#160;&#34;each of these companies had done something to drastically change the way others [...]]]></description>
			<content:encoded><![CDATA[<p>From <a href="http://news.cnet.com/8301-17939_109-10250521-2.html?tag=newsEditorsPicksArea.0">CNet</a>:</p>
<p>&quot;Draper pointed to over two dozen companies that were founded in recessions and depressions including giants like General Electric, Chevron, and Coca-Cola. Also included were more tech-oriented companies like Skype (of which Draper was an investor), Microsoft, Hewlett-Packard, Kodak, and Adobe Systems.&quot;&#8230;&nbsp;&quot;each of these companies had done something to drastically change the way others in that industry were doing business, or that they had created completely new and different categories that solved real-world problems.&quot;</p>
<p><a rel="attachment wp-att-408" href="http://www1.cs.columbia.edu/~carlosrene/?attachment_id=408"><img alt="startups1" title="startups1" width="460" height="349" class="aligncenter size-full wp-image-408" src="http://www1.cs.columbia.edu/~carlosrene/wp-content/uploads/2009/05/startups1.png" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www1.cs.columbia.edu/~carlosrene/?feed=rss2&amp;p=407</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

