<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-315920831118778783</atom:id><lastBuildDate>Wed, 08 Jan 2025 06:53:26 +0000</lastBuildDate><category>technology</category><category>tips</category><category>howto</category><category>globalcybersoft</category><category>beagleboard</category><category>iphone</category><category>clutter</category><category>management</category><category>barcampsaigon</category><category>linux</category><category>opengl</category><category>jira</category><category>linaro</category><category>marketing</category><category>olpc</category><category>poky</category><category>yocto</category><title>while (true) { ; }</title><description>Only a life lived for others is a life worth while</description><link>http://changetheworldwithyourpassion.blogspot.com/</link><managingEditor>noreply@blogger.com (Hieu Le Trung)</managingEditor><generator>Blogger</generator><openSearch:totalResults>107</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-8180846339499470534</guid><pubDate>Fri, 12 Feb 2016 15:42:00 +0000</pubDate><atom:updated>2016-02-12T22:42:01.342+07:00</atom:updated><title>Sentiment Analysis LOL</title><description>Try Sentiment Analysis from Achemy&lt;br /&gt;
&lt;br /&gt;
from alchemyapi import AlchemyAPI&lt;br /&gt;&lt;br /&gt;alchemyapi = AlchemyAPI()&lt;br /&gt;&lt;br /&gt;options = {}&lt;br /&gt;options[&#39;knowledgeGraph&#39;] = &#39;1&#39;&lt;br /&gt;response = alchemyapi.faceTagging(&quot;image&quot;, &quot;/home/hieult/Downloads/hieult3.jpg&quot;, options)&lt;br /&gt;&lt;br /&gt;print response</description><link>http://changetheworldwithyourpassion.blogspot.com/2016/02/sentiment-analysis-lol.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-5208347278842876102</guid><pubDate>Sun, 20 Dec 2015 05:34:00 +0000</pubDate><atom:updated>2015-12-20T12:34:03.014+07:00</atom:updated><title>C array</title><description>&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;True&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;#include &lt;stdio .h=&quot;&quot;&gt;&lt;/stdio&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p2&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;int main() {&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp;&amp;nbsp; char a[20];&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp;&amp;nbsp; a[3] = &#39;x&#39;;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp;&amp;nbsp; 4[a] = &#39;y&#39;;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp;&amp;nbsp; printf(&quot;a[3] = %c\n&quot;, a[3]);&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp;&amp;nbsp; printf(&quot;a[4] = %c\n&quot;, a[4]);&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp;&amp;nbsp; return 0;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
</description><link>http://changetheworldwithyourpassion.blogspot.com/2015/12/c-array.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-6909058363969149985</guid><pubDate>Wed, 26 Feb 2014 07:36:00 +0000</pubDate><atom:updated>2014-02-26T14:36:26.045+07:00</atom:updated><title>Rendering issue with Firefox 27.0.1</title><description>If you have issue with rendering on Firefox 27.0.1, go to about:config and change &quot;layers.acceleration.disabled&quot; to true to turn off acceleration.</description><link>http://changetheworldwithyourpassion.blogspot.com/2014/02/rendering-issue-with-firefox-2701.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-4693940655409927062</guid><pubDate>Sat, 14 Dec 2013 18:37:00 +0000</pubDate><atom:updated>2013-12-15T01:37:24.067+07:00</atom:updated><title>NFS server on Mac OS</title><description>&lt;ol&gt;
&lt;li&gt; Edit &lt;tt&gt;/etc/exports&lt;/tt&gt;:  &lt;b&gt;&lt;tt&gt;sudo vi /etc/exports&lt;/tt&gt;&lt;/b&gt;

        
          Add a line like the following (presuming your home network is using
          the 192.168 private network.  You could also use 172.17 or 10.):

          &lt;br /&gt;
&lt;blockquote&gt;
            &lt;tt&gt;/Users -network 192.168.0.0 -mask 255.255.0.0&lt;/tt&gt;
          &lt;/blockquote&gt;
&lt;/li&gt;
&lt;br /&gt;
&lt;li&gt; Enable &lt;i&gt;nfsd&lt;/i&gt;:  &lt;b&gt;&lt;tt&gt;sudo nfsd enable&lt;/tt&gt;&lt;/b&gt;&lt;/li&gt;
&lt;br /&gt;
&lt;li&gt; Test your work:  &lt;b&gt;&lt;tt&gt;showmount -e&lt;/tt&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
</description><link>http://changetheworldwithyourpassion.blogspot.com/2013/12/nfs-server-on-mac-os.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-8448796138800400181</guid><pubDate>Fri, 08 Nov 2013 15:56:00 +0000</pubDate><atom:updated>2013-11-08T22:56:02.782+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">jira</category><title>JIRA listener script to add assignee into Summary field</title><description>A little script to help the life better. This script is a Listener which update the summary of JIRA issue to add assignee info. I&#39;m using JIRA Agile and its board doesn&#39;t show the assignee name so I create this script to display it in the summary field.&lt;br /&gt;
&lt;br /&gt;
Code as following, save it with .groovy extension and then put it into atlassian-jira/WEB-INF/classes/com/xxx/listeners and then configure JIRA to use com.xxx.listeners.UpdateAssigneeSummaryListener as class&lt;br /&gt;
&lt;br /&gt;
import com.atlassian.jira.event.issue.AbstractIssueEventListener;&lt;br /&gt;import com.atlassian.jira.event.issue.IssueEvent;&lt;br /&gt;import org.apache.log4j.Category;&lt;br /&gt;import com.atlassian.jira.event.type.EventType;&lt;br /&gt;import com.atlassian.jira.issue.Issue;&lt;br /&gt;import com.atlassian.jira.issue.MutableIssue;&lt;br /&gt;import com.atlassian.jira.issue.IssueManager;&lt;br /&gt;import com.atlassian.jira.user.util.UserManager;&lt;br /&gt;import com.atlassian.jira.event.type.EventDispatchOption;&lt;br /&gt;import com.atlassian.jira.component.ComponentAccessor;&lt;br /&gt;&lt;br /&gt;class UpdateAssigneeSummaryListener extends AbstractIssueEventListener {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Category log = Category.getInstance(UpdateAssigneeSummaryListener.class)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; void workflowEvent(IssueEvent event) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Issue issue = event.getIssue();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Long eventTypeId = event.getEventTypeId();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((eventTypeId.equals(EventType.ISSUE_ASSIGNED_ID) || eventTypeId.equals(EventType.ISSUE_CREATED_ID)) &amp;amp;&amp;amp; issue.getResolutionDate() == null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; def test = (issue.getSummary() =~ /^\[([A-Za-z]+)\]/)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; def summary&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; def assignee = issue.getAssigneeId()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (test.getCount() != 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Replace the user in bracket.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; summary = (issue.getSummary() =~ /\[([A-Za-z]+)\]/).replaceFirst(&quot;[${assignee}]&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; summary = &quot;[${assignee}] ${issue.getSummary()}&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MutableIssue mutableIssue = (MutableIssue)issue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mutableIssue.setSummary(summary);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IssueManager issueManager = ComponentAccessor.getIssueManager();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UserManager userManager = ComponentAccessor.getUserManager();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; issueManager.updateIssue(event.getUser(), mutableIssue, EventDispatchOption.DO_NOT_DISPATCH, false)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;</description><link>http://changetheworldwithyourpassion.blogspot.com/2013/11/jira-listener-script-to-add-assignee.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-2841156698893734395</guid><pubDate>Tue, 22 Oct 2013 02:12:00 +0000</pubDate><atom:updated>2013-10-22T09:12:18.730+07:00</atom:updated><title>Should we move to KVM?</title><description>The virtualization wars between VMWare and KVM is not over. KVM is recently adapted by many companies such as IBM,.&lt;br /&gt;&lt;br /&gt;Should we migrate to KVM? It&#39;s free/low cost than VMWare but show better results than VMWare...Hmmm....&lt;br /&gt;&lt;br /&gt;http://openvirtualizationalliance.org/blog&lt;br /&gt;ftp://public.dhe.ibm.com/linux/pdfs/Clabby_Analytics_-_VMware_v_KVM.pdf&lt;br /&gt;http://www.scalecomputing.com/files/documentation/whitepaper-vmware-vs-scale-computing.pdf</description><link>http://changetheworldwithyourpassion.blogspot.com/2013/10/should-we-move-to-kvm.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-6077408551174950389</guid><pubDate>Tue, 03 Sep 2013 12:00:00 +0000</pubDate><atom:updated>2013-09-03T19:00:57.880+07:00</atom:updated><title>Upnp URL</title><description>&lt;a href=&quot;http://miniupnp.free.fr/&quot;&gt;http://miniupnp.free.fr/&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://linux-igd.sourceforge.net/&quot;&gt;http://linux-igd.sourceforge.net/&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.upnp-hacks.org/faq.html&quot;&gt;http://www.upnp-hacks.org/faq.html&lt;/a&gt;</description><link>http://changetheworldwithyourpassion.blogspot.com/2013/09/upnp-url.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-5699018028705936356</guid><pubDate>Tue, 27 Aug 2013 07:08:00 +0000</pubDate><atom:updated>2013-08-27T14:08:50.037+07:00</atom:updated><title>NRDP</title><description>Looks good to me.&lt;br /&gt;
&lt;a href=&quot;http://videotechnology.blogspot.com/2011/08/netflix-ready-device-platform-nrdp.html&quot;&gt;http://videotechnology.blogspot.com/2011/08/netflix-ready-device-platform-nrdp.html&lt;/a&gt;</description><link>http://changetheworldwithyourpassion.blogspot.com/2013/08/nrdp.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-2762908877664127155</guid><pubDate>Mon, 19 Aug 2013 13:26:00 +0000</pubDate><atom:updated>2013-08-19T20:26:23.250+07:00</atom:updated><title>How to fake the LSB release</title><description>On Fedora, edit the /etc/redhat-release as following&lt;br /&gt;
&lt;br /&gt;
[hieult@hieuletrung ti-sdk-am335x-evm-06.00.00.00]$ cat /etc/redhat-release&lt;br /&gt;Ubuntu 10.04 release 10.04 (lucid)&lt;br /&gt;
&lt;br /&gt;
Then install the lsb_release package&lt;br /&gt;
&lt;br /&gt;
On Ubuntu, edit the /etc/lsb-release as following&lt;br /&gt;
DISTRIB_ID=Ubuntu&lt;br /&gt;
DISTRIB_RELEASE=10.04&lt;br /&gt;
DISTRIB_CODENAME=lucid&lt;br /&gt;
DISTRIB_DESCRIPTION=&quot;Ubuntu lucid (development branch)&quot;</description><link>http://changetheworldwithyourpassion.blogspot.com/2013/08/how-to-fake-lsb-release.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-2225117469110698090</guid><pubDate>Mon, 19 Aug 2013 04:07:00 +0000</pubDate><atom:updated>2013-08-19T11:07:28.988+07:00</atom:updated><title>Howto: Porting the GNU Debugger</title><description>&lt;a href=&quot;http://www.embecosm.com/appnotes/ean3/html/index.html&quot;&gt;http://www.embecosm.com/appnotes/ean3/html/index.html&lt;/a&gt;</description><link>http://changetheworldwithyourpassion.blogspot.com/2013/08/howto-porting-gnu-debugger.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-818469110460246014</guid><pubDate>Sun, 18 Aug 2013 12:52:00 +0000</pubDate><atom:updated>2013-08-18T19:52:06.561+07:00</atom:updated><title>Add icon to new GNOME desktop toolbar (FC16)</title><description>Alt+Right Click to add icon to Gnome toolbar in new Gnome desktop version</description><link>http://changetheworldwithyourpassion.blogspot.com/2013/08/add-icon-to-new-gnome-desktop-toolbar.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-7519761404636228668</guid><pubDate>Sun, 18 Aug 2013 11:29:00 +0000</pubDate><atom:updated>2013-08-18T18:29:30.206+07:00</atom:updated><title>Debug corrupt stack</title><description>From&amp;nbsp;&lt;a href=&quot;http://fragglet.livejournal.com/19646.html&quot;&gt;http://fragglet.livejournal.com/19646.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h1 class=&quot;b-singlepost-title&quot; style=&quot;background-color: white; font-family: Arial, Verdana, Helvetica, sans-serif; line-height: 1.2; margin: 0.5em 0px; padding: 0px;&quot;&gt;
How to coerce gdb into giving a backtrace&lt;/h1&gt;
&lt;article class=&quot;b-singlepost-body&quot; style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 14px; line-height: 19px; margin: 0.7em 0px 1.3em; position: relative;&quot;&gt;When debugging with gdb, I sometimes encounter a problem in getting it to recognise a stack trace. Sometimes it only gives a few function calls, or none at all. Here&#39;s an example:&lt;br /&gt;&lt;blockquote style=&quot;color: #666666; font-style: italic; margin: 0px 0px 1.5em 1.5em;&quot;&gt;
&lt;pre style=&quot;line-height: 1em; white-space: pre-wrap; word-wrap: break-word;&quot;&gt;(gdb) bt
#0  0xb7886424 in __kernel_vsyscall ()
#1  0xb7559163 in ?? () from /lib/i686/cmov/libc.so.6
#2  0xb74f1387 in ?? () from /lib/i686/cmov/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;br /&gt;This obviously isn&#39;t a very useful backtrace. At this point it can be useful to have a look at the registers and the contents of the stack.&lt;br /&gt;&lt;blockquote style=&quot;color: #666666; font-style: italic; margin: 0px 0px 1.5em 1.5em;&quot;&gt;
&lt;pre style=&quot;line-height: 1em; white-space: pre-wrap; word-wrap: break-word;&quot;&gt;(gdb) info registers
eax            0xfffffe00 -512
ecx            0x80 128
edx            0x2 2
ebx            0xb75c33a0 -1218694240
esp            0xbfe55018 0xbfe55018    &lt;b&gt;&amp;lt;= stack pointer on x86 &lt;/b&gt;
ebp            0xbfe55048 0xbfe55048
esi            0x0 0
edi            0x0 0
eip            0xb7886424 0xb7886424 &lt;__kernel_vsyscall&gt;
eflags         0x202 [ IF ]
cs             0x73 115
ss             0x7b 123
ds             0x7b 123
es             0x7b 123
fs             0x0 0
gs             0x33 51
(gdb) x/64x $sp
0xbfe55018: &lt;b&gt;0xbfe55048&lt;/b&gt; 0x00000002 0x00000080 0xb7559163
0xbfe55028: 0xb75c33a0 0xb75c1ff4 0x09ec0470 0xb74f1387
0xbfe55038: 0xb77c4afd 0xb782199c 0xb782199c 0x09ec0478
0xbfe55048: &lt;b&gt;0xbfe55078&lt;/b&gt; 0xb77c4bf4 0x09ec0478 0xb782199c
0xbfe55058: 0x0000ffff 0xb75c3438 0xbfe55098 0xb789a240
0xbfe55068: 0x00000000 0xb782199c 0x0000ffff 0xb75c3438
0xbfe55078: &lt;b&gt;0xbfe55098&lt;/b&gt; 0xb7818736 0x09ec0478 0x00000000
0xbfe55088: 0xb77c50cd 0xb782199c 0xb7818709 0xb782199c
0xbfe55098: &lt;b&gt;0xbfe550b8&lt;/b&gt; 0xb77c54ad 0x00000000 0x00000000
0xbfe550a8: 0x0000000b 0xb75c3438 0xb77c5449 0xb782199c
0xbfe550b8: &lt;b&gt;0xbfe550c8&lt;/b&gt; 0xb77bb7dd 0xb782199c 0x0000000b
0xbfe550c8: &lt;b&gt;0xbfe550e8&lt;/b&gt; 0xb77bb84e 0x0000ffff 0xb789a240
0xbfe550d8: 0x00000000 0xb77bb830 0xb77bb839 0xb782199c
0xbfe550e8: &lt;b&gt;0xbfe55108&lt;/b&gt; 0xb77bc08f 0x0000000b 0x00000000
0xbfe550f8: 0x00000000 0x00000010 0xb75c1ff4 0x3efafafb
0xbfe55108: &lt;b&gt;0xbfe556c8&lt;/b&gt; 0xb7886400 0x0000000b 0x00000033
&lt;/__kernel_vsyscall&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;br /&gt;The values in bold are the frame pointers, forming a linked list back up the stack. If you compiled with&amp;nbsp;&lt;tt&gt;-fomit-frame-pointer&lt;/tt&gt;&amp;nbsp;things will be harder to figure out. In this case it certainly doesn&#39;t look like the stack is corrupt. Perhaps gdb is just confused.&lt;br /&gt;&lt;div style=&quot;margin-bottom: 1.5em;&quot;&gt;
&lt;br /&gt;Pick a location slightly further up the stack and set the&amp;nbsp;&lt;tt&gt;$sp&lt;/tt&gt;&amp;nbsp;variable, and suddenly backtrace works!&lt;/div&gt;
&lt;blockquote style=&quot;color: #666666; font-style: italic; margin: 0px 0px 1.5em 1.5em;&quot;&gt;
&lt;pre style=&quot;line-height: 1em; white-space: pre-wrap; word-wrap: break-word;&quot;&gt;(gdb) set $sp=0xbfe55048
(gdb) bt
#0  0xb7886424 in __kernel_vsyscall ()
#1  0xb782199c in ?? () from /usr/lib/libSDL-1.2.so.0
#2  0xb7818736 in ?? () from /usr/lib/libSDL-1.2.so.0
#3  0xb77c54ad in ?? () from /usr/lib/libSDL-1.2.so.0
#4  0xb77bb7dd in SDL_QuitSubSystem () from /usr/lib/libSDL-1.2.so.0
#5  0xb77bb84e in SDL_Quit () from /usr/lib/libSDL-1.2.so.0
#6  0xb77bc08f in ?? () from /usr/lib/libSDL-1.2.so.0
#7  &lt;signal called=&quot;called&quot; handler=&quot;handler&quot;&gt;
#8  0xb74ede80 in ?? () from /lib/i686/cmov/libc.so.6
#9  0xb74efc8c in malloc () from /lib/i686/cmov/libc.so.6
#10 0xb7764eec in ?? () from /usr/lib/libSDL_mixer-1.2.so.0
#11 0xb7765b98 in Mix_SetPanning () from /usr/lib/libSDL_mixer-1.2.so.0
#12 0x080828b1 in I_SDL_StartSound (id=-1218694088, channel=-1218699276, 
    vol=120, sep=38) at i_sdlsound.c:671
#13 0x08073e9b in S_StartSound (origin_p=0xb624f990, sfx_id=22)
    at s_sound.c:656
#14 0x08061459 in T_MoveFloor (floor=0xb63271b8) at p_floor.c:220
#15 0x0806d0ea in P_RunThinkers () at p_tick.c:119
#16 0x0806d161 in P_Ticker () at p_tick.c:153
#17 0x08052fb6 in G_Ticker () at g_game.c:1151
#18 0x0804dbf4 in D_DoomLoop () at d_main.c:437
#19 0x0804ecc0 in D_DoomMain () at d_main.c:1506
#20 0x08054d1c in main (argc=5, argv=0xbfe55d04) at i_main.c:152&lt;/signal&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;br /&gt;
And&amp;nbsp;&lt;a href=&quot;http://intquestion.wordpress.com/2008/09/14/how-to-debug-a-corrupted-stack/&quot;&gt;http://intquestion.wordpress.com/2008/09/14/how-to-debug-a-corrupted-stack/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Is the art to set the sp point to correct address and then we can get a backtrace?&lt;br /&gt;
&lt;br /&gt;
We need to understand the stack pointer :-)&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHn9RhU85H_QLFXKqCppcn90Y98mZZ1-W7bwlbzW_XAjG3hUE57ZbT3FtOD7t9pGof__thsAv2vOW3CzPkVACzbFLr1-g1r-9JkWjtFR6SZjphTAAvFCWc4t1iUADIFJL7unmtOHn-_u12/s1600/Capture.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHn9RhU85H_QLFXKqCppcn90Y98mZZ1-W7bwlbzW_XAjG3hUE57ZbT3FtOD7t9pGof__thsAv2vOW3CzPkVACzbFLr1-g1r-9JkWjtFR6SZjphTAAvFCWc4t1iUADIFJL7unmtOHn-_u12/s1600/Capture.PNG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/article&gt;</description><link>http://changetheworldwithyourpassion.blogspot.com/2013/08/debug-corrupt-stack.html</link><author>noreply@blogger.com (Anonymous)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHn9RhU85H_QLFXKqCppcn90Y98mZZ1-W7bwlbzW_XAjG3hUE57ZbT3FtOD7t9pGof__thsAv2vOW3CzPkVACzbFLr1-g1r-9JkWjtFR6SZjphTAAvFCWc4t1iUADIFJL7unmtOHn-_u12/s72-c/Capture.PNG" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-6109414154703695513</guid><pubDate>Tue, 02 Jul 2013 10:39:00 +0000</pubDate><atom:updated>2013-07-02T17:39:23.277+07:00</atom:updated><title>Spin Lock vs. Read-Write Lock</title><description>&lt;a href=&quot;http://locklessinc.com/articles/locks/&quot;&gt;http://locklessinc.com/articles/locks/&lt;/a&gt;</description><link>http://changetheworldwithyourpassion.blogspot.com/2013/07/spin-lock-vs-read-write-lock.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-5366649958737043456</guid><pubDate>Sun, 16 Jun 2013 01:42:00 +0000</pubDate><atom:updated>2013-06-17T07:26:58.936+07:00</atom:updated><title>Make TMP36 work on Beaglebone Black</title><description>Here is how to use the &lt;span class=&quot;st&quot;&gt;Adadfruit &lt;em&gt;&lt;/em&gt;&lt;/span&gt;temperature sensor TMP36 (&lt;a href=&quot;https://www.sparkfun.com/products/10988&quot;&gt;https://www.sparkfun.com/products/10988&lt;/a&gt;) on Beaglebone black for reading temperature&lt;br /&gt;
1) Wiring the TMP36 to BBB&lt;br /&gt;
Refer the following picture for TMP36 pin output&lt;br /&gt;
&lt;img height=&quot;300&quot; id=&quot;irc_mi&quot; src=&quot;http://www.adafruit.com/adablog/wp-content/uploads/2009/06/tmp36pinout.jpg&quot; style=&quot;margin-top: 34px;&quot; width=&quot;320&quot; /&gt;&lt;br /&gt;
Then we need to&lt;br /&gt;
- Connect 1st pin to port 32 of P9 expansion slot (3.3V output)&lt;br /&gt;
- Connect 3rd pin to port 1 of P9 expansion slot&lt;br /&gt;
- Connect 2nd pin to port 39 (AIN0) of the P9 expansion slot&lt;br /&gt;
You can connect the 2nd pin to AIN another port, refer following image for how it is designed&lt;br /&gt;
&lt;br /&gt;
&lt;img height=&quot;393&quot; id=&quot;irc_mi&quot; src=&quot;https://s3.amazonaws.com/vcbeerwp-media/db0/wblob/18B7FC83AD99E6/17/1D0/Tncn1ugMRMDnj3WkenZF2Iyhn6htwsK7IMZM9BJbIvE/beaglebone_headers.png&quot; style=&quot;margin-top: 0px;&quot; width=&quot;354&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
2) Enable AIN on the BBB&lt;br /&gt;
We need to enable the AIN driver, by doing following command on the BBB console&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
# echo cape-bone-iio &amp;gt; /sys/devices/bone_capemgr.*/slots&lt;/blockquote&gt;
The above might need a kernel module BONE_CAPE or bone_iio_helper&lt;br /&gt;
&lt;br /&gt;
3) Read the input&lt;br /&gt;
Now we can read the AIN input by cat it, for example&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
root@arm:~# cat /sys/devices/ocp.2/helper.14/AIN0 &lt;br /&gt;
287                                                                             &lt;/blockquote&gt;
But the AIN0 give me some weird value, I need to use the voltage0_raw under &quot;/sys/bus/iio/devices/iio\:device0/in_voltage0_raw&quot;;&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
root@arm:~# cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw &lt;br /&gt;
1767      &lt;/blockquote&gt;
with a C application&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;cpp&quot; name=&quot;code&quot;&gt;#include &amp;lt;stdlib.h&amp;gt;
#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;sys/stat.h&amp;gt;
#include &amp;lt;fcntl.h&amp;gt;
#include &amp;lt;unistd.h&amp;gt;

//const char AIN_DEV[] = &quot;/sys/devices/ocp.2/helper.14/AIN0&quot;;
const char AIN_DEV[] = &quot;/sys/bus/iio/devices/iio\:device0/in_voltage0_raw&quot;;

double CtoF(double c)
{
  return (c * 9.0 / 5.0) + 32.0;
}

double temperature(char *string)
{
  int value = atoi(string);
  double millivolts = (value / 4096.0) * 1800;
  double temperature = (millivolts - 500.0) / 10.0;
  return temperature;
}

int main()
{
  int fd = open(AIN_DEV, O_RDONLY);

  while (1)
  {
    char buffer[1024];
    int ret = read(fd, buffer, sizeof(buffer));
    if (ret != -1)
    {
      buffer[ret] = &#39;\0&#39;;
      double celsius = temperature(buffer);
      double fahrenheit = CtoF(celsius);
      printf(&quot;digital value: %s  celsius: %f  fahrenheit: %f\n&quot;, buffer, celsius, fahrenheit);
      lseek(fd, 0, 0);
    }
    sleep(1);
  }

  close(fd);
  return 0;
}
&lt;/pre&gt;
&lt;br /&gt;
The convert formula is as following&lt;br /&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;1&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Read the digital value from the ADC interface.&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#cat &lt;/code&gt;&lt;br /&gt;
&lt;div class=&quot;cpp&quot; name=&quot;code&quot;&gt;
/sys/devices/ocp.2/helper.14/AIN0&lt;/div&gt;
&lt;code&gt;
1670&lt;br /&gt;
&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Convert the digital value to millivolts.&lt;br /&gt;
(value / 4096) * 1800mV&lt;/td&gt;
&lt;td&gt;(1670 / 4096) * 1800mV =&amp;nbsp;733.8867mV&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Convert the millivolts to Celsius&amp;nbsp;temperature.&lt;br /&gt;
(millivolts&amp;nbsp;- 500mV) / 10&lt;/td&gt;
&lt;td&gt;(733.8867mV – 500mv) / 10 = 23.38867°C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Convert Celsius&amp;nbsp;to&amp;nbsp;Fahrenheit.&lt;br /&gt;
(Celsius&amp;nbsp;* 9.0 / 5.0) + 32.0&lt;/td&gt;
&lt;td&gt;(23.38867°C * 9 / 5) + 32 = 74.09961°F&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
And here is my wiring&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYj3GXU5p9gWQgl7IDeQMVUobrxWcKMYce6cBYW1cDmPEoPfGP1aOKp1pizSAOTqrWsZCWqMiywfSzSCkmACjh4FIqh40AKVmGsDEPlRfpr2czM_7aFZCZ__dH23QmQk3H_wMwmB5BWLud/s1600/IMG_0735.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYj3GXU5p9gWQgl7IDeQMVUobrxWcKMYce6cBYW1cDmPEoPfGP1aOKp1pizSAOTqrWsZCWqMiywfSzSCkmACjh4FIqh40AKVmGsDEPlRfpr2czM_7aFZCZ__dH23QmQk3H_wMwmB5BWLud/s320/IMG_0735.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Ref:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;
TMP36 datasheet: &lt;a href=&quot;http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/Temp/TMP35_36_37.pdf&quot;&gt;http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/Temp/TMP35_36_37.pdf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Reading ADC: &lt;a href=&quot;http://hipstercircuits.com/reading-analog-adc-values-on-beaglebone-black/&quot;&gt;http://hipstercircuits.com/reading-analog-adc-values-on-beaglebone-black/ &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Build kernel for BBB: &lt;a href=&quot;http://www.eewiki.net/display/linuxonarm/BeagleBone+Black&quot;&gt;http://www.eewiki.net/display/linuxonarm/BeagleBone+Black &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;AM335x ADC driver guide: &lt;a href=&quot;http://processors.wiki.ti.com/index.php/AM335x_ADC_Driver%27s_Guide&quot;&gt;http://processors.wiki.ti.com/index.php/AM335x_ADC_Driver%27s_Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Beaglebone P8, P9 pin output (can be used for BBB): &lt;a href=&quot;http://elinux.org/BeagleBone&quot;&gt;http://elinux.org/BeagleBone&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;</description><link>http://changetheworldwithyourpassion.blogspot.com/2013/06/make-tmp36-work-on-beaglebone-black.html</link><author>noreply@blogger.com (Anonymous)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYj3GXU5p9gWQgl7IDeQMVUobrxWcKMYce6cBYW1cDmPEoPfGP1aOKp1pizSAOTqrWsZCWqMiywfSzSCkmACjh4FIqh40AKVmGsDEPlRfpr2czM_7aFZCZ__dH23QmQk3H_wMwmB5BWLud/s72-c/IMG_0735.JPG" height="72" width="72"/><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-2499001773217516560</guid><pubDate>Sun, 02 Jun 2013 18:28:00 +0000</pubDate><atom:updated>2013-06-03T01:29:47.198+07:00</atom:updated><title>Beaglebone Black</title><description>What I bought&lt;br /&gt;
- Beaglebone Black&lt;br /&gt;
- Breadboard&lt;br /&gt;
- Wire&lt;br /&gt;
- TMP36&lt;br /&gt;
- MQ-3&lt;br /&gt;
- and a zigbee wireless sensor...&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://sphotos-a.xx.fbcdn.net/hphotos-prn1/936286_10151632920854648_2082581886_n.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://sphotos-a.xx.fbcdn.net/hphotos-prn1/936286_10151632920854648_2082581886_n.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
</description><link>http://changetheworldwithyourpassion.blogspot.com/2013/06/beaglebone-black.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-7185851607322945228</guid><pubDate>Sat, 22 Sep 2012 17:09:00 +0000</pubDate><atom:updated>2012-09-23T12:06:37.186+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">poky</category><category domain="http://www.blogger.com/atom/ns#">yocto</category><title>Setup poky development environment</title><description>The following is to setup development environment for working on poky project.&lt;br /&gt;
1) Setup a working directory&lt;br /&gt;
mkdir data/poky -p&lt;br /&gt;
&lt;br /&gt;
2) Check out the poky source code&lt;br /&gt;
cd data/poky&lt;br /&gt;
git init
&lt;br /&gt;
git remote add yocto &lt;a class=&quot;external free&quot; href=&quot;git://git.yoctoproject.org/poky.git&quot; rel=&quot;nofollow&quot;&gt;git://git.yoctoproject.org/poky.git&lt;/a&gt;&lt;br /&gt;
git remote update&lt;br /&gt;
git branch -b denzil yocto/denzil&lt;br /&gt;
&lt;br /&gt;
3) Check out meta-intel for BSP developmen &lt;br /&gt;
mkdir data/poky/meta-intel -p&lt;br /&gt;
cd data/poky/meta-intel&lt;br /&gt;
git init&lt;br /&gt;
git remote add meta-intel &lt;a href=&quot;git://git.yoctoproject.org/meta-intel.git&quot;&gt;git://git.yoctoproject.org/meta-intel.git&lt;/a&gt;&lt;br /&gt;
git remote update&lt;br /&gt;
git branch -b denzil meta-intel/denzil&lt;br /&gt;
&lt;br /&gt;
4) Checkout poky-extras for kernel development&lt;br /&gt;
mkdir data/poky/poky-extras -p&lt;br /&gt;
cd data/poky/poky-extras&lt;br /&gt;
git init&lt;br /&gt;
git remote add poky-extras git://git.yoctoproject.org/poky-extras&lt;br /&gt;
git remote update&lt;br /&gt;
git checkout -b denzil poky-extras/denzil&lt;br /&gt;
&lt;br /&gt;
5) Clone the kernel source code&lt;br /&gt;
cd data&lt;br /&gt;
&lt;div class=&quot;literallayout&quot;&gt;
git clone --bare git://git.yoctoproject.org/linux-yocto-3.2 linux-yocto-3.2.git&lt;/div&gt;
&lt;br /&gt;
6) Then clone a local copy to make change on that kernel&lt;br /&gt;
&lt;div class=&quot;literallayout&quot;&gt;
git clone linux-yocto-3.2.git my-linux-yocto-3.2-work&lt;/div&gt;
&lt;br /&gt;
6) Now we can start a yocto build and development. The layout should be&lt;br /&gt;
&amp;nbsp;[hieult@hieuletrung data]$ tree -L 2&lt;br /&gt;
.&lt;br /&gt;
├── linux-yocto-3.2.git&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── branches&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── config&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── description&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── HEAD&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── hooks&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── info&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── objects&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── packed-refs&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; └── refs&lt;br /&gt;
├── my-linux-yocto-3.2-work&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── arch&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── block&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── COPYING&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── CREDITS&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── crypto&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── Documentation&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── drivers&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── firmware&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── fs&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── include&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── init&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── ipc&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── Kbuild&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── Kconfig&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── kernel&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── lib&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── MAINTAINERS&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── Makefile&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── mm&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── net&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── README&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── REPORTING-BUGS&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── samples&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── scripts&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── security&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── sound&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── tools&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; ├── usr&lt;br /&gt;
│&amp;nbsp;&amp;nbsp; └── virt&lt;br /&gt;
└── poky&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ├── bitbake&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ├── documentation&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ├── LICENSE&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ├── meta&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ├── meta-demoapps&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ├── meta-hob&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ├── meta-intel&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ├── meta-skeleton&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ├── meta-yocto&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ├── oe-init-build-env&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ├── poky-extras&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ├── README&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ├── README.hardware&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; └── scripts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
URL:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;BSP development
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#developing-a-board-support-package-bsp&quot;&gt;http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#dev-manual-bsp-appendix&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#developing-a-board-support-package-bsp&quot;&gt;http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#developing-a-board-support-package-bsp&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Kernel development&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#dev-manual-kernel-appendix&quot;&gt;http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#dev-manual-kernel-appendix&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#modifying-the-kernel-source-code&quot;&gt;http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#modifying-the-kernel-source-code&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;/pre&gt;
</description><link>http://changetheworldwithyourpassion.blogspot.com/2012/09/setup-poky-development-environment.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-5817522473709801064</guid><pubDate>Sun, 16 Sep 2012 07:10:00 +0000</pubDate><atom:updated>2012-09-16T14:36:46.338+07:00</atom:updated><title>Get Firefox</title><description>Instead of go to &lt;a href=&quot;http://www.getfirefox.com/&quot;&gt;www.getfirefox.com&lt;/a&gt;, we can go to &lt;a href=&quot;http://releases.mozilla.org/pub/mozilla.org/firefox/&quot;&gt;http://releases.mozilla.org/pub/mozilla.org/firefox/&lt;/a&gt; and grab a correct version.</description><link>http://changetheworldwithyourpassion.blogspot.com/2012/09/get-firefox.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-6653898894907448386</guid><pubDate>Sat, 04 Aug 2012 05:28:00 +0000</pubDate><atom:updated>2012-08-04T22:38:09.843+07:00</atom:updated><title>Ubuntu 12.04 NVIDIA 6 screens issue</title><description>If you&#39;ve installed Ubuntu 12.04 and has 6 screens issue on nvidia geforce card, follow this guideline &lt;a href=&quot;http://ubuntuforums.org/showthread.php?t=1967161&amp;amp;page=2&quot;&gt;http://ubuntuforums.org/showthread.php?t=1967161&amp;amp;page=2&lt;/a&gt; to fix the issue&lt;br /&gt;
&lt;br /&gt;
It works for me on Geforce G210M</description><link>http://changetheworldwithyourpassion.blogspot.com/2012/08/ubuntu-1204-nvidia-6-screens-issue.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-8560816899949280887</guid><pubDate>Mon, 30 Jan 2012 11:07:00 +0000</pubDate><atom:updated>2012-01-30T18:07:59.908+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">globalcybersoft</category><category domain="http://www.blogger.com/atom/ns#">management</category><title>What motivate me?</title><description>Working in GCS for many years, I found some facts about GCSers at the moment. When you first join GCS&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;You don&#39;t know what should you do, still being with the university mindset or previous company.&lt;/li&gt;
&lt;li&gt;Be assigned into a project and keep working daily.&lt;/li&gt;
&lt;li&gt;You found that when you need to submit leave form go to QMS and only for leave form.&lt;/li&gt;
&lt;li&gt;You don&#39;t know the requirement for your current role (i.e. Engineer). - If you know that it&#39;s still very ambiguous because it&#39;s not example specific and there&#39;s no mapping into your daily work.&lt;/li&gt;
&lt;li&gt;CP4 is something really interested but HOW can you do that?&lt;/li&gt;
&lt;li&gt;What motivate you to do good job? Salary?&lt;/li&gt;
&lt;li&gt;Yes, everything is very confuse and you&#39;ll need a good leader to guide you :)&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;I think to solve this:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;When a person first join GCS, we should have someone describe on their current role, the requirement for that role, who is his/her mentor, who will he/she report to, list of tools/resources that available to his/her job (Wiki?).&lt;/li&gt;
&lt;li&gt;If he/she joins a project, the project should have a Getting Start Wiki so that everyone can know where to go and what should they do in project.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;There&#39;s an issue with current EMB hiring model, that the new hired resource might not join a project but for a resource pool. For this we might think about R&amp;amp;D project, I think we should create an &quot;Open Source department&quot; so that,&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;we improve open-source project which is mostly used by us i.e. Android, Beagleboard, or some other open-source libraries...&lt;/li&gt;
&lt;li&gt;the employee join this model can gain knowledge on specific library which can help him in his future work&lt;/li&gt;
&lt;/ul&gt;
For senior engineer, with current development environment inside GCS, we currently don&#39;t have a correct model/workflow yet so&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;if we developed on, we should collect all senior and teach them that new workflow so that they can follow up like orientation for new employee.&lt;/li&gt;
&lt;li&gt;they&#39;ve long lived so mindset might different from new one, motivation might be missing already :)&lt;/li&gt;
&lt;li&gt;ask them HOW!&lt;/li&gt;
&lt;li&gt;re-evaluate their skill so that we can match them with new model.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Is it true for you and your current work?</description><link>http://changetheworldwithyourpassion.blogspot.com/2012/01/what-motivate-me.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-1795016024583092281</guid><pubDate>Wed, 25 Jan 2012 11:41:00 +0000</pubDate><atom:updated>2012-01-25T18:41:36.444+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">linux</category><category domain="http://www.blogger.com/atom/ns#">olpc</category><title>OLPC on QEMU</title><description>Follow this guideline http://wiki.sugarlabs.org/go/QEMU&lt;br /&gt;
&lt;br /&gt;
If it&#39;s not clear, here is it.&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Install qemu: yum install qemu&lt;/li&gt;
&lt;li&gt;Create a disk image: qemu-image create olpc.img&lt;/li&gt;
&lt;li&gt;Download School Server (XS) iso: wget http://xs-dev.laptop.org/xs/OLPC_XS_LATEST.iso&lt;/li&gt;
&lt;li&gt;Start qemu and install XS: qemu -hda olpc.img -cdrom OLPC_XS_LATEST.iso -m 512
&lt;/li&gt;
&lt;/ol&gt;</description><link>http://changetheworldwithyourpassion.blogspot.com/2012/01/olpc-on-qemu.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-3316106747829319222</guid><pubDate>Wed, 25 Jan 2012 09:58:00 +0000</pubDate><atom:updated>2012-01-25T17:57:18.588+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">linaro</category><category domain="http://www.blogger.com/atom/ns#">linux</category><title>Linaro development on Fedora</title><description>Linaro currently mostly works on Ubuntu as its guideline. Here is some tips, not so much, for working on Fedora with Linaro&lt;br /&gt;
&lt;br /&gt;
Follow this &lt;a href=&quot;https://wiki.linaro.org/Platform/Android/Toolchain&quot;&gt;https://wiki.linaro.org/Platform/Android/Toolchain&lt;/a&gt; if you&#39;re working with Android&lt;br /&gt;
&lt;br /&gt;
or a build from scratch &lt;a href=&quot;https://wiki.linaro.org/WorkingGroups/ToolChain/Using/GCCNative&quot;&gt;https://wiki.linaro.org/WorkingGroups/ToolChain/Using/GCCNative&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
Or this &lt;a href=&quot;https://wiki.linaro.org/WorkingGroups/ToolChain/Using/CrosstoolNg&quot;&gt;https://wiki.linaro.org/WorkingGroups/ToolChain/Using/CrosstoolNg&lt;/a&gt; if you want a stand-alone toolchain that can be worked on other platform&lt;br /&gt;
&lt;br /&gt;
Then you can use the toolchain to build the kernel, rootfs i.e. &lt;a href=&quot;http://www.linaro.org/linaro-blog/2011/09/15/building-a-linaro-android-build-from-source/&quot;&gt;http://www.linaro.org/linaro-blog/2011/09/15/building-a-linaro-android-build-from-source/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Why don&#39;t we integrate it into Yocto or buildroot? Hmmm...&lt;br /&gt;
&lt;br /&gt;
BTW, the linaro-image-tools didn&#39;t work with Python 2.5 ;-(</description><link>http://changetheworldwithyourpassion.blogspot.com/2012/01/linaro-development-on-fedora.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-5849512995166459820</guid><pubDate>Mon, 23 Jan 2012 19:06:00 +0000</pubDate><atom:updated>2012-01-25T16:53:49.053+07:00</atom:updated><title>NULL vs. 0</title><description>&lt;pre&gt; char * p = 0; /* IS WRONG! DAMMIT! */
 int i = NULL; /* THIS IS WRONG TOO! */
&lt;/pre&gt;
and anybody who writes code like the above either needs to get out of the 
kernel, or needs to get transported to the 21st century.&lt;br /&gt;
&lt;br /&gt;
&lt;tt&gt;NULL&lt;/tt&gt; is a pointer, while &lt;tt&gt;0&lt;/tt&gt; can never be.&lt;br /&gt;
&lt;br /&gt;
LOL :-)</description><link>http://changetheworldwithyourpassion.blogspot.com/2012/01/null-vs-0.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-2936592510542001545</guid><pubDate>Wed, 18 Jan 2012 14:09:00 +0000</pubDate><atom:updated>2012-01-18T21:09:49.861+07:00</atom:updated><title>Tet 2012</title><description>Tet holiday is coming here, what should I do?&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Read a book&lt;/li&gt;
&lt;li&gt;Find a project to contribute: OLPC, clutter, openkinect, glib, gtk, ...&lt;/li&gt;
&lt;li&gt;Continue with beagleboard&lt;/li&gt;
&lt;li&gt;Continue with CUDA&lt;/li&gt;
&lt;li&gt;Doing work for GCS &lt;/li&gt;
&lt;li&gt;xxx&lt;/li&gt;
&lt;/ol&gt;
Hmmmmmmmmm...let see</description><link>http://changetheworldwithyourpassion.blogspot.com/2012/01/tet-2012.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-6367299439940232500</guid><pubDate>Tue, 10 Jan 2012 06:48:00 +0000</pubDate><atom:updated>2012-01-10T13:55:35.071+07:00</atom:updated><title>Valgrind XYZ</title><description>&lt;pre&gt;To understand how things work, this is how valgrind starts up:

  - The valgrind launcher (/usr/bin/valgrind) is run.
  - The launcher decides which tool you want execs it to
    replace the launcher.
  - The tool binary loads at a high address then acts as
    an ELF loader and loads the target program into the
    same process, using LD_PRELOAD to try and inject a
    small amount of code into it.

&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;Run &quot;ld --verbose&quot; to see the default linker script, and note the line
   . = 0x08048000 + SIZEOF_HEADERS;
This is the problem.  ld estimates SIZEOF_HEADERS, and sometimes guesses
low by 1 Elf32_Phdr (or by 2 in extremely rare cases).  A workaround is
to capture the default linker script &quot;ld --verbose &amp;gt;script.lds&quot;, delete
the header and trailer lines [delimited by &#39;=====&#39;], change the initial
address to &quot;. = 0x08048000 + 52 + 8*32;&quot; where 52 is sizeof(Elf32_Ehdr)
and 32 is sizeof(Elf32_Phdr), then use the resulting script to replace 
the default: &quot;ld -T script.lds ...&quot;
&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;http://plash.beasts.org/wiki/Story16Notes&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;Here are some things to do:
o Study the info pages that come with ld.
  See ld.info, Node: Builtin Functions, SIZEOF_HEADERS. 
o Compare the elf linker scripts (probably in
  /usr/i486-suse-linux/lib/ldscripts/ on your system) against standard
  ones.  eg. from ftp.varesearch.com/pub/support/hjl/binutils/  If they
  are different, try the standard scripts.
o Delete SIZEOF_HEADERS from your linker script, and replace with a fixed
  number.  Try 1024.
o If all this fails, post a bug report to binutils@sourceware.cygnus.com
&amp;nbsp;&lt;/pre&gt;</description><link>http://changetheworldwithyourpassion.blogspot.com/2012/01/valgrind-xyz.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-315920831118778783.post-2827756861055141993</guid><pubDate>Mon, 02 Jan 2012 12:26:00 +0000</pubDate><atom:updated>2012-01-02T19:26:08.937+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">globalcybersoft</category><category domain="http://www.blogger.com/atom/ns#">management</category><title>Strength of a workplace</title><description>Is it true when the &quot;First, Break all the rules&quot; said that, a strength of a workplace can be inside 12 following questions&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Do I know what is expected of me at work?&lt;/li&gt;
&lt;li&gt;Do I have the materials and equipment I need to do my work right?&lt;/li&gt;
&lt;li&gt;At work, do I have opportunity to do what I do best every day?&lt;/li&gt;
&lt;li&gt;In the last seven days, have I received recognition or praise for doing good work?&lt;/li&gt;
&lt;li&gt;Does my supervisor, or someone at work, seem to care about me as a person?&lt;/li&gt;
&lt;li&gt; Is there someone at work who encourages my development?&lt;/li&gt;
&lt;li&gt;At work, do my opinions seem to count?&lt;/li&gt;
&lt;li&gt;Does the mission/purpose of my company make me feel my job is important?&lt;/li&gt;
&lt;li&gt;Are my co-workers committed to doing quality work?&lt;/li&gt;
&lt;li&gt;Do I have a best friend at work?&lt;/li&gt;
&lt;li&gt;In the last six months, has someone at work talked to me about my progress?&lt;/li&gt;
&lt;li&gt;This last year, have I had opportunities at work to learn and grow?&lt;/li&gt;
&lt;/ol&gt;
Hmm, nothing about benefits or salary...is it true for my current company, GCS? Maybe there&#39;s something to think about...&lt;br /&gt;
&lt;br /&gt;</description><link>http://changetheworldwithyourpassion.blogspot.com/2012/01/strength-of-workplace.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total><georss:featurename>Lê Quang Định, phường 12, Ho Chi Minh City, Prey Nokor, Vietnam</georss:featurename><georss:point>10.808393994414805 106.69501304626465</georss:point><georss:box>10.804494494414806 106.69007754626465 10.812293494414805 106.69994854626465</georss:box></item></channel></rss>